Re: [PATCH v2] drivers/net:new PMD using tun/tap host interface
From: Wiles, Keith <hidden>
Date: 2016-09-18 16:20:15
Regards, Keith
On Sep 18, 2016, at 8:25 AM, Yuanhan Liu [off-list ref] wrote: On Fri, Sep 16, 2016 at 11:22:13AM -0500, Keith Wiles wrote:quoted
The rte_eth_tap.c PMD creates a device using TUN/TAP interfaces on the local host. The PMD allows for DPDK and the host to communicate using a raw device interface on the host and in the DPDK application. The device created is a Tap device with a L2 packet header. v2 - merge all of the patches into one patch. Fix a typo on naming the tap device. Update the maintainers list Signed-off-by: Keith Wiles <redacted>Hi, FYI, my robot caught some build errors with this patch applied.
All of the below errors are from Linux header files and not the Tap driver. How are you building DPDK, which config file are you using, OS version, .... Some details would be nice to understand how these errors are being generated and how I can recreate them.
--yliu
---
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:71:2: error: redefinition of enumerator 'IFF_UP'
IFF_UP = 1<<0, /* sysfs */
^
/usr/include/net/if.h:45:17: note: expanded from macro 'IFF_UP'
# define IFF_UP IFF_UP
^
/usr/include/net/if.h:44:5: note: previous definition is here
IFF_UP = 0x1, /* Interface is up. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:72:2: error: redefinition of enumerator 'IFF_BROADCAST'
IFF_BROADCAST = 1<<1, /* __volatile__ */
^
/usr/include/net/if.h:47:24: note: expanded from macro 'IFF_BROADCAST'
# define IFF_BROADCAST IFF_BROADCAST
^
/usr/include/net/if.h:46:5: note: previous definition is here
IFF_BROADCAST = 0x2, /* Broadcast address valid. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:73:2: error: redefinition of enumerator 'IFF_DEBUG'
IFF_DEBUG = 1<<2, /* sysfs */
^
/usr/include/net/if.h:49:20: note: expanded from macro 'IFF_DEBUG'
# define IFF_DEBUG IFF_DEBUG
^
/usr/include/net/if.h:48:5: note: previous definition is here
IFF_DEBUG = 0x4, /* Turn on debugging. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:74:2: error: redefinition of enumerator 'IFF_LOOPBACK'
IFF_LOOPBACK = 1<<3, /* __volatile__ */
^
/usr/include/net/if.h:51:23: note: expanded from macro 'IFF_LOOPBACK'
# define IFF_LOOPBACK IFF_LOOPBACK
^
/usr/include/net/if.h:50:5: note: previous definition is here
IFF_LOOPBACK = 0x8, /* Is a loopback net. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:75:2: error: redefinition of enumerator 'IFF_POINTOPOINT'
IFF_POINTOPOINT = 1<<4, /* __volatile__ */
^
/usr/include/net/if.h:53:26: note: expanded from macro 'IFF_POINTOPOINT'
# define IFF_POINTOPOINT IFF_POINTOPOINT
^
/usr/include/net/if.h:52:5: note: previous definition is here
IFF_POINTOPOINT = 0x10, /* Interface is point-to-point link. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:76:2: error: redefinition of enumerator 'IFF_NOTRAILERS'
IFF_NOTRAILERS = 1<<5, /* sysfs */
^
/usr/include/net/if.h:55:25: note: expanded from macro 'IFF_NOTRAILERS'
# define IFF_NOTRAILERS IFF_NOTRAILERS
^
/usr/include/net/if.h:54:5: note: previous definition is here
IFF_NOTRAILERS = 0x20, /* Avoid use of trailers. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:77:2: error: redefinition of enumerator 'IFF_RUNNING'
IFF_RUNNING = 1<<6, /* __volatile__ */
^
/usr/include/net/if.h:57:22: note: expanded from macro 'IFF_RUNNING'
# define IFF_RUNNING IFF_RUNNING
^
/usr/include/net/if.h:56:5: note: previous definition is here
IFF_RUNNING = 0x40, /* Resources allocated. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:78:2: error: redefinition of enumerator 'IFF_NOARP'
IFF_NOARP = 1<<7, /* sysfs */
^
/usr/include/net/if.h:59:20: note: expanded from macro 'IFF_NOARP'
# define IFF_NOARP IFF_NOARP
^
/usr/include/net/if.h:58:5: note: previous definition is here
IFF_NOARP = 0x80, /* No address resolution protocol. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:79:2: error: redefinition of enumerator 'IFF_PROMISC'
IFF_PROMISC = 1<<8, /* sysfs */
^
/usr/include/net/if.h:61:22: note: expanded from macro 'IFF_PROMISC'
# define IFF_PROMISC IFF_PROMISC
^
/usr/include/net/if.h:60:5: note: previous definition is here
IFF_PROMISC = 0x100, /* Receive all packets. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:80:2: error: redefinition of enumerator 'IFF_ALLMULTI'
IFF_ALLMULTI = 1<<9, /* sysfs */
^
/usr/include/net/if.h:65:23: note: expanded from macro 'IFF_ALLMULTI'
# define IFF_ALLMULTI IFF_ALLMULTI
^
/usr/include/net/if.h:64:5: note: previous definition is here
IFF_ALLMULTI = 0x200, /* Receive all multicast packets. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:81:2: error: redefinition of enumerator 'IFF_MASTER'
IFF_MASTER = 1<<10, /* __volatile__ */
^
/usr/include/net/if.h:68:21: note: expanded from macro 'IFF_MASTER'
# define IFF_MASTER IFF_MASTER
^
/usr/include/net/if.h:67:5: note: previous definition is here
IFF_MASTER = 0x400, /* Master of a load balancer. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:82:2: error: redefinition of enumerator 'IFF_SLAVE'
IFF_SLAVE = 1<<11, /* __volatile__ */
^
/usr/include/net/if.h:70:20: note: expanded from macro 'IFF_SLAVE'
# define IFF_SLAVE IFF_SLAVE
^
/usr/include/net/if.h:69:5: note: previous definition is here
IFF_SLAVE = 0x800, /* Slave of a load balancer. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:83:2: error: redefinition of enumerator 'IFF_MULTICAST'
IFF_MULTICAST = 1<<12, /* sysfs */
^
/usr/include/net/if.h:73:24: note: expanded from macro 'IFF_MULTICAST'
# define IFF_MULTICAST IFF_MULTICAST
^
/usr/include/net/if.h:72:5: note: previous definition is here
IFF_MULTICAST = 0x1000, /* Supports multicast. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:84:2: error: redefinition of enumerator 'IFF_PORTSEL'
IFF_PORTSEL = 1<<13, /* sysfs */
^
/usr/include/net/if.h:76:22: note: expanded from macro 'IFF_PORTSEL'
# define IFF_PORTSEL IFF_PORTSEL
^
/usr/include/net/if.h:75:5: note: previous definition is here
IFF_PORTSEL = 0x2000, /* Can set media type. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:85:2: error: redefinition of enumerator 'IFF_AUTOMEDIA'
IFF_AUTOMEDIA = 1<<14, /* sysfs */
^
/usr/include/net/if.h:78:24: note: expanded from macro 'IFF_AUTOMEDIA'
# define IFF_AUTOMEDIA IFF_AUTOMEDIA
^
/usr/include/net/if.h:77:5: note: previous definition is here
IFF_AUTOMEDIA = 0x4000, /* Auto media select active. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:86:2: error: redefinition of enumerator 'IFF_DYNAMIC'
IFF_DYNAMIC = 1<<15, /* sysfs */
^
/usr/include/net/if.h:80:22: note: expanded from macro 'IFF_DYNAMIC'
# define IFF_DYNAMIC IFF_DYNAMIC
^
/usr/include/net/if.h:79:5: note: previous definition is here
IFF_DYNAMIC = 0x8000 /* Dialup device with changing addresses. */
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:169:8: error: redefinition of 'ifmap'
struct ifmap {
^
/usr/include/net/if.h:111:8: note: previous definition is here
struct ifmap
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:203:8: error: redefinition of 'ifreq'
struct ifreq {
^
/usr/include/net/if.h:126:8: note: previous definition is here
struct ifreq
^
In file included from /yeti/vm/ubuntu-initrd-16.04-x86_64-build/dpdk/drivers/net/tap/rte_eth_tap.c:50:
/usr/include/linux/if.h:252:8: error: redefinition of 'ifconf'
struct ifconf {
^
/usr/include/net/if.h:176:8: note: previous definition is here
struct ifconf
^
19 errors generated.
make[6]: *** [rte_eth_tap.o] Error 1
make[5]: *** [tap] Error 2
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [net] Error 2
make[3]: *** [drivers] Error 2
make[2]: *** [all] Error 2
make[1]: *** [pre_install] Error 2
make: *** [install] Error 2
error: build failed