[dpdk-dev] [PATCH] librte_pmd_packet: add PMD for AF_PACKET-based virtual devices

Zhou, Danny danny.zhou at intel.com
Fri Jul 11 21:04:19 CEST 2014


Does it support specifying multiple NIC interfaces using command line option like "--vdev=eth_packet0,iface=..."? Say "iface=eth0,eth1,eth2...", tried but it doesn't work.

> -----Original Message-----
> From: Zhou, Danny
> Sent: Saturday, July 12, 2014 2:01 AM
> To: 'John W. Linville'
> Cc: dev at dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] librte_pmd_packet: add PMD for
> AF_PACKET-based virtual devices
> 
> Tried on 3.12, both of them are undefined. Anyway, will comment them out and see
> what performance it could achieve.
> 
> > -----Original Message-----
> > From: John W. Linville [mailto:linville at tuxdriver.com]
> > Sent: Saturday, July 12, 2014 1:41 AM
> > To: Zhou, Danny
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] librte_pmd_packet: add PMD for
> > AF_PACKET-based virtual devices
> >
> > On Fri, Jul 11, 2014 at 05:20:42PM +0000, Zhou, Danny wrote:
> > > Looks like you used a pretty new kernel version with new socket
> > > options that old
> > kernel like my 3.12 does not support. When I tried this patch, it just
> > cannot build, and compiler complains like below. Which Linux distribution does this
> patch work for?
> > How to ensure it works for old kernels?
> > >
> > > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c: In
> > > function
> > rte_pmd_init_internals:
> > > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:524
> > > :1
> > > 7: error: PACKET_FANOUT_FLAG_ROLLOVER undeclared (first use in this
> > > function)
> > > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:524
> > > :1
> > > 7: note: each undeclared identifier is reported only once for each
> > > function it appears in
> > > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:557
> > > :3
> > > 3: error: PACKET_QDISC_BYPASS undeclared (first use in this
> > > function)
> >
> > Both of them are isolated, so for playing with it you could just comment those out.
> > It looks like PACKET_FANOUT_FLAG_ROLLOVER should have been in 3.10,
> > while PACKET_QDISC_BYPASS didn't show-up until 3.14...
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git annotate
> > include/uapi/linux/if_packet.h | grep PACKET_FANOUT_FLAG_ROLLOVER
> > 77f65ebdca506	(Willem de Bruijn	2013-03-19 10:18:11 +0000	64)#define
> > PACKET_FANOUT_FLAG_ROLLOVER	0x1000
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git show -s --format=short
> > 77f65ebdca506 commit 77f65ebdca506870d99bfabe52bde222511022ec
> > Author: Willem de Bruijn <willemb at google.com>
> >
> >     packet: packet fanout rollover during socket overload
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git describe --contains 77f65ebdca506
> > v3.10-rc1~66^2~423
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git annotate
> > include/uapi/linux/if_packet.h | grep PACKET_QDISC_BYPASS
> > d346a3fae3ff1	(Daniel Borkmann	2013-12-06 11:36:17 +0100	56)#define
> > PACKET_QDISC_BYPASS		20
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git show -s --format=short
> > d346a3fae3ff1 commit
> > d346a3fae3ff1d99f5d0c819bf86edf9094a26a1
> > Author: Daniel Borkmann <dborkman at redhat.com>
> >
> >     packet: introduce PACKET_QDISC_BYPASS socket option
> >
> > /home/linville/git/linux
> > [linville-x1.hq.tuxdriver.com]:> git describe --contains d346a3fae3ff1
> > v3.14-rc1~94^2~564
> >
> > Is there an example of code in DPDK that requires specific kernel
> > versions?  What is the preferred method for coding such dependencies?
> >
> > John
> > --
> > John W. Linville		Someday the world will need a hero, and you
> > linville at tuxdriver.com			might be all we have.  Be ready.


More information about the dev mailing list