af_packet: add PMD for AF_PACKET-based virtual devices
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 17 Nov 2014 15:57:58 +0000 (10:57 -0500)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 24 Nov 2014 15:39:49 +0000 (16:39 +0100)
commit364e08f2bbc0be5cb29de696aa8d4684e4fd3116
tree1fc7a84bb863e5dc58f73b6e3f68662a5c5a6ea7
parent70cb6992067dd56aea4bdda659c9ced55541279b
af_packet: add PMD for AF_PACKET-based virtual devices

This is a Linux-specific virtual PMD driver backed by an AF_PACKET
socket.  This implementation uses mmap'ed ring buffers to limit copying
and user/kernel transitions.  The PACKET_FANOUT_HASH behavior of
AF_PACKET is used for frame reception.  In the current implementation,
Tx and Rx queues are always paired, and therefore are always equal
in number -- changing this would be a Simple Matter Of Programming.

Interfaces of this type are created with a command line option like
"--vdev=eth_af_packet0,iface=...".  There are a number of options available
as arguments:

 - Interface is chosen by "iface" (required)
 - Number of queue pairs set by "qpairs" (optional, default: 1)
 - AF_PACKET MMAP block size set by "blocksz" (optional, default: 4096)
 - AF_PACKET MMAP frame size set by "framesz" (optional, default: 2048)
 - AF_PACKET MMAP frame count set by "framecnt" (optional, default: 512)

Signed-off-by: John W. Linville <linville@tuxdriver.com>
[Thomas: disable because of incompatibility with some kernels]
config/common_linuxapp
lib/Makefile
lib/librte_eal/linuxapp/eal/Makefile
lib/librte_pmd_af_packet/Makefile [new file with mode: 0644]
lib/librte_pmd_af_packet/rte_eth_af_packet.c [new file with mode: 0644]
lib/librte_pmd_af_packet/rte_eth_af_packet.h [new file with mode: 0644]
mk/rte.app.mk