X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Fnet%2Frte_ether.h;h=b83e0d3fce4b28376bf0abab601532e9025e0e9c;hb=28dde5da503ed09f10cdfb295e390b114df7330a;hp=8d126d4c81257423b10e6f473140f774255ba85e;hpb=c2c4f87b12590d96f549c4ef04a04d29d3b8fb97;p=dpdk.git diff --git a/lib/net/rte_ether.h b/lib/net/rte_ether.h index 8d126d4c81..b83e0d3fce 100644 --- a/lib/net/rte_ether.h +++ b/lib/net/rte_ether.h @@ -225,6 +225,15 @@ rte_ether_addr_copy(const struct rte_ether_addr *__restrict ea_from, * Macro to print six-bytes of MAC address in hex format */ #define RTE_ETHER_ADDR_PRT_FMT "%02X:%02X:%02X:%02X:%02X:%02X" +/** + * Macro to extract the MAC address bytes from rte_ether_addr struct + */ +#define RTE_ETHER_ADDR_BYTES(mac_addrs) ((mac_addrs)->addr_bytes[0]), \ + ((mac_addrs)->addr_bytes[1]), \ + ((mac_addrs)->addr_bytes[2]), \ + ((mac_addrs)->addr_bytes[3]), \ + ((mac_addrs)->addr_bytes[4]), \ + ((mac_addrs)->addr_bytes[5]) #define RTE_ETHER_ADDR_FMT_SIZE 18 /** @@ -254,38 +263,19 @@ rte_ether_format_addr(char *buf, uint16_t size, * 0 if successful * -1 and sets rte_errno if invalid string */ -__rte_experimental int rte_ether_unformat_addr(const char *str, struct rte_ether_addr *eth_addr); -/* Windows Sockets headers contain `#define s_addr S_un.S_addr`. - * Temporarily disable this macro to avoid conflict at definition. - * Place source MAC address in both `s_addr` and `S_un.S_addr` fields, - * so that access works either directly or through the macro. - */ -#pragma push_macro("s_addr") -#ifdef s_addr -#undef s_addr -#endif - /** * Ethernet header: Contains the destination address, source address * and frame type. */ struct rte_ether_hdr { - struct rte_ether_addr d_addr; /**< Destination address. */ - RTE_STD_C11 - union { - struct rte_ether_addr s_addr; /**< Source address. */ - struct { - struct rte_ether_addr S_addr; - } S_un; /**< Do not use directly; use s_addr instead.*/ - }; + struct rte_ether_addr dst_addr; /**< Destination address. */ + struct rte_ether_addr src_addr; /**< Source address. */ rte_be16_t ether_type; /**< Frame type. */ } __rte_aligned(2); -#pragma pop_macro("s_addr") - /** * Ethernet VLAN Header. * Contains the 16-bit VLAN Tag Control Identifier and the Ethernet type