Please consider changing "struct ether_addr" in rte_ether.h to "struct rte_ether_addr", in order to avoid conflicts with the same structure name /usr/include/net/ethernet.h.
Sometimes, there is need to include /usr/include/net/ethernet.h, but it conflicts with the same structure name in rte_ether.h. Was there a reason this structure wasn't given the standard rte_ prefix? Thanks, lew