Re: [PATCH v2] drivers/net:new PMD using tun/tap host interface
From: Yuanhan Liu <hidden>
Date: 2016-09-20 03:54:10
On Mon, Sep 19, 2016 at 03:56:03PM +0000, Wiles, Keith wrote:
All of the below errors are from Linux header files and not the Tap
driver.
Yes, but you are referencing them, so ...
Yes I am referencing them, but still they are not interacting with the tap
driver.
Yes, they are not. But the tap driver code references them. I mean, you
might have done that wrongly. e.g., the build passes if I removed few
includes for linux header files:
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index 4621c55..2a6bcd0 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -47,9 +47,7 @@
#include <arpa/inet.h>
#include <net/if.h>
#ifdef __linux__
-#include <linux/if.h>
#include <linux/if_tun.h>
-#include <linux/if_ether.h>
#else
#include <netinet/if_ether.h>
#endif
It would seem like you could delete all of the code in the tap driver and still get these errors. Which you could try if you want, just ifdef the code and see if it still happens. On my ubuntu 16.04 machine I do not get these errors. I need to know how to reproduce the failure to fix it.
Interesting! I really did no magic to reproduce it. As said, I can
reproduce it pretty easily with ubuntu 16.04 and fedora 20, just with
default build:
$ make install T=$RTE_SDK
Anyway, the error is straightforward after all: both files (net/if.h and
linux/if.h) define same structures and macros. Including both of them
would result errors like I reported.
--yliu