X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_ether%2Frte_ether.h;h=1d62d8e5b7047aaea36ab37cc8444fcd7d3f5720;hb=99c12dcca65d;hp=079790847e0f03f98232d55991887f2c3eb6968d;hpb=c974021a59493dce58aea1076d07243728e36e4d;p=dpdk.git diff --git a/lib/librte_ether/rte_ether.h b/lib/librte_ether/rte_ether.h index 079790847e..1d62d8e5b7 100644 --- a/lib/librte_ether/rte_ether.h +++ b/lib/librte_ether/rte_ether.h @@ -145,7 +145,7 @@ static inline int is_zero_ether_addr(const struct ether_addr *ea) */ static inline int is_unicast_ether_addr(const struct ether_addr *ea) { - return ((ea->addr_bytes[0] & ETHER_GROUP_ADDR) == 0); + return (ea->addr_bytes[0] & ETHER_GROUP_ADDR) == 0; } /** @@ -160,7 +160,7 @@ static inline int is_unicast_ether_addr(const struct ether_addr *ea) */ static inline int is_multicast_ether_addr(const struct ether_addr *ea) { - return (ea->addr_bytes[0] & ETHER_GROUP_ADDR); + return ea->addr_bytes[0] & ETHER_GROUP_ADDR; } /** @@ -175,7 +175,7 @@ static inline int is_multicast_ether_addr(const struct ether_addr *ea) */ static inline int is_broadcast_ether_addr(const struct ether_addr *ea) { - const uint16_t *ea_words = (const uint16_t *)ea; + const unaligned_uint16_t *ea_words = (const unaligned_uint16_t *)ea; return (ea_words[0] == 0xFFFF && ea_words[1] == 0xFFFF && ea_words[2] == 0xFFFF); @@ -193,7 +193,7 @@ static inline int is_broadcast_ether_addr(const struct ether_addr *ea) */ static inline int is_universal_ether_addr(const struct ether_addr *ea) { - return ((ea->addr_bytes[0] & ETHER_LOCAL_ADMIN_ADDR) == 0); + return (ea->addr_bytes[0] & ETHER_LOCAL_ADMIN_ADDR) == 0; } /** @@ -208,7 +208,7 @@ static inline int is_universal_ether_addr(const struct ether_addr *ea) */ static inline int is_local_admin_ether_addr(const struct ether_addr *ea) { - return ((ea->addr_bytes[0] & ETHER_LOCAL_ADMIN_ADDR) != 0); + return (ea->addr_bytes[0] & ETHER_LOCAL_ADMIN_ADDR) != 0; } /** @@ -224,7 +224,7 @@ static inline int is_local_admin_ether_addr(const struct ether_addr *ea) */ static inline int is_valid_assigned_ether_addr(const struct ether_addr *ea) { - return (is_unicast_ether_addr(ea) && (! is_zero_ether_addr(ea))); + return is_unicast_ether_addr(ea) && (! is_zero_ether_addr(ea)); } /** @@ -277,7 +277,7 @@ static inline void ether_addr_copy(const struct ether_addr *ea_from, * A pointer to buffer contains the formatted MAC address. * @param size * The format buffer size. - * @param ea_to + * @param eth_addr * A pointer to a ether_addr structure. */ static inline void @@ -331,6 +331,7 @@ struct vxlan_hdr { #define ETHER_TYPE_VLAN 0x8100 /**< IEEE 802.1Q VLAN tagging. */ #define ETHER_TYPE_1588 0x88F7 /**< IEEE 802.1AS 1588 Precise Time Protocol. */ #define ETHER_TYPE_SLOW 0x8809 /**< Slow protocols (LACP and Marker). */ +#define ETHER_TYPE_TEB 0x6558 /**< Transparent Ethernet Bridging. */ #define ETHER_VXLAN_HLEN (sizeof(struct udp_hdr) + sizeof(struct vxlan_hdr)) /**< VXLAN tunnel header length. */ @@ -382,7 +383,6 @@ static inline int rte_vlan_insert(struct rte_mbuf **m) struct ether_hdr *oh, *nh; struct vlan_hdr *vh; -#ifdef RTE_MBUF_REFCNT /* Can't insert header if mbuf is shared */ if (rte_mbuf_refcnt_read(*m) > 1) { struct rte_mbuf *copy; @@ -393,7 +393,7 @@ static inline int rte_vlan_insert(struct rte_mbuf **m) rte_pktmbuf_free(*m); *m = copy; } -#endif + oh = rte_pktmbuf_mtod(*m, struct ether_hdr *); nh = (struct ether_hdr *) rte_pktmbuf_prepend(*m, sizeof(struct vlan_hdr));