Recent advance in netmap/VALE(mSwitch)

3,940 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,940
On SlideShare
0
From Embeds
0
Number of Embeds
537
Actions
Shares
0
Downloads
64
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Recent advance in netmap/VALE(mSwitch)

  1. 1. Recent advance in netmap/ VALE(mSwitch) Michio Honda, Felipe Huici (NEC Europe Ltd.) Giuseppe Lettieri and Luigi Rizzo (Universita di Pisa) Kernel/VM@Jimbo-cho, Japan on Dec. 8 2013 michio.honda@neclab.eu / @michioh
  2. 2. Outline •  netmap API basics –  Architecture –  How to write apps •  VALE (mSwitch) –  Architecture –  System design –  Evaluation –  Use cases
  3. 3. NETMAP API BASICS
  4. 4. netmap overview •  A fast packet I/O mechanism between the NIC and the user-space –  Remove unnecessary metadata (e.g., sk_buff) allocation –  Amortized systemcall costs, reduced/removed data copies Page  4   From  h,p://info.iet.unipi.it/~luigi/netmap/
  5. 5. Performance •  Saturate 10 Gbps pipe with low CPU frequency From  h,p://info.iet.unipi.it/~luigi/netmap/
  6. 6. netmap API (initialization) •  open(“/dev/netmap”) returns a file descriptor •  ioctl(fd, NIOCREG, arg) puts an interface in netmap mode •  mmap(…, fd, 0) maps buffers and rings Page  6   From  h,p://info.iet.unipi.it/~luigi/netmap/
  7. 7. netmap API (TX) •  TX –  Fill up to avail buffers, starting from slot cur –  ioctl(fd, NIOCTXSYNC) queues the packets •  poll() can be used for blocking I/O Page  7   From  h,p://info.iet.unipi.it/~luigi/netmap/
  8. 8. netmap API (RX) •  RX –  ioctl(fd, NIOCTXSYNC) reports newly received packets –  Process up to avail buffers, starting from slot cur •  poll() can be used for blocking I/O Page  8   From  h,p://info.iet.unipi.it/~luigi/netmap/
  9. 9. Other features •  Multi queue support –  One netmap ring is initialized for a single physical ring •  e.g., different pthreads can be assigned to different netmap/ physical rings •  Host stack support –  NIC is put into netmap mode,

×