[dpdk-dev] [PATCH v2] drivers/net:new PMD using tun/tap host interface

Wiles, Keith keith.wiles at intel.com
Sun Sep 18 18:20:12 CEST 2016


Regards,
Keith

> On Sep 18, 2016, at 8:25 AM, Yuanhan Liu <yuanhan.liu at linux.intel.com> wrote:
> 
> On Fri, Sep 16, 2016 at 11:22:13AM -0500, Keith Wiles wrote:
>> 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 <keith.wiles at intel.com>
> 
> 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



More information about the dev mailing list