freebsd-skq/sys/dev/netmap
Luigi Rizzo f0ea3689a9 This new version of netmap brings you the following:
- netmap pipes, providing bidirectional blocking I/O while moving
  100+ Mpps between processes using shared memory channels
  (no mistake: over one hundred million. But mind you, i said
  *moving* not *processing*);

- kqueue support (BHyVe needs it);

- improved user library. Just the interface name lets you select a NIC,
  host port, VALE switch port, netmap pipe, and individual queues.
  The upcoming netmap-enabled libpcap will use this feature.

- optional extra buffers associated to netmap ports, for applications
  that need to buffer data yet don't want to make copies.

- segmentation offloading for the VALE switch, useful between VMs.

and a number of bug fixes and performance improvements.

My colleagues Giuseppe Lettieri and Vincenzo Maffione did a substantial
amount of work on these features so we owe them a big thanks.

There are some external repositories that can be of interest:

    https://code.google.com/p/netmap
        our public repository for netmap/VALE code, including
        linux versions and other stuff that does not belong here,
        such as python bindings.

    https://code.google.com/p/netmap-libpcap
        a clone of the libpcap repository with netmap support.
	With this any libpcap client has access to most netmap
	feature with no recompilation. E.g. tcpdump can filter
	packets at 10-15 Mpps.

    https://code.google.com/p/netmap-ipfw
        a userspace version of ipfw+dummynet which uses netmap
        to send/receive packets. Speed is up in the 7-10 Mpps
        range per core for simple rulesets.

Both netmap-libpcap and netmap-ipfw will be merged upstream at some
point, but while this happens it is useful to have access to them.

And yes, this code will be merged soon. It is infinitely better
than the version currently in 10 and 9.

MFC after:	3 days
2014-02-15 04:53:04 +00:00
..
if_em_netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
if_igb_netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
if_lem_netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
if_re_netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
ixgbe_netmap.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
netmap_freebsd.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_generic.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_kern.h This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_mbq.c It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
netmap_mbq.h It is 2014 and we have a new version of netmap. 2014-01-06 12:53:15 +00:00
netmap_mem2.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_mem2.h This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_offloadings.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_pipe.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap_vale.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap.c This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00