Thread (59 messages) 59 messages, 10 authors, 2017-01-20

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help