BSDCan2015 - ZI
BSDCan 2015
The Technical BSD Conference
Speakers | |
---|---|
Luigi Rizzo |
Schedule | |
---|---|
Day | Tutorials #2 - 11 June - 2015-06-11 |
Room | DMS 1120 |
Start time | 13:00 |
Duration | 03:00 |
Info | |
ID | 595 |
Event type | Workshop |
Track | Tutorial |
Language used for presentation | English |
Fast packet processing with the netmap framework
This tutorial targets vendors, engineers, and researchers looking for OS support for high speed NICs; efficient software packet processing techniques; high speed networking in VMs. We will show how to achieve these results using netmap.
Netmap is a platform-independent framework for high-speed packet I/O from userspace/kernel, similar in spirit (but with many features that make it unique) to proposals such as DPDK, PFRING-DNA, OpenOnLoad, SnabbSwitch and other vendor specific libraries. Netmap uses the same API to access physical NICs, virtual switches (the VALE software switch) or fast interprocess communication channels (netmap pipes).
Unlike other solutions, netmap provides a file descriptor for synchronization (select/poll, epoll, kqueue), thus not requiring active threads to monitor the device's status.
All netmap features are device- and OS-independent, and implemented as a single FreeBSD/Linux kernel module. Optional device driver support exploits the hardware's full capabilities (14.88 Mpps on a 10 Gbit/s NIC with a single core at less than 1 GHz). We have extensive application support: QEMU/KVM and Click have native netmap support, we recently added netmap support for bhyve, and pcap clients can access netmap without even recompiling through the netmap-enabled libpcap.