The two header files net/ethenet.h and rte_ether.h are source incompatiable right now. They both define a bunch of constants and struct ether_addr; the effective values are the same but the structure element name is different.
/usr/include/net/ether.h /* This is a name for the 48 bit ethernet address available on many systems. */ struct ether_addr { u_int8_t ether_addr_octet[ETH_ALEN]; } __attribute__ ((__packed__)); lib/librte_ether/rte_ether.h struct ether_addr { uint8_t addr_bytes[ETHER_ADDR_LEN]; /**< Address bytes in transmission order */ } __attribute__((__packed__)); I would like to just have rte_ether.h include netinet/ether.h to get rid of the useless duplication, and fix all the code in DPDK. But this will break out-of-tree source compatibility so best to wait for DPDK 2.3. Is there a good place to put this in 2.2 release notes?