From: Jijiang Liu Date: Thu, 23 Oct 2014 13:18:52 +0000 (+0800) Subject: ether: add VXLAN header X-Git-Tag: spdx-start~10241 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=20f4f53aeac94cdadbb849a8bc817e3c4d90a3b7;p=dpdk.git ether: add VXLAN header Signed-off-by: Jijiang Liu Acked-by: Helin Zhang Tested-by: Yong Liu Acked-by: Thomas Monjalon --- diff --git a/lib/librte_ether/rte_ether.h b/lib/librte_ether/rte_ether.h index 2e08f233ed..100cc525c3 100644 --- a/lib/librte_ether/rte_ether.h +++ b/lib/librte_ether/rte_ether.h @@ -286,6 +286,16 @@ struct vlan_hdr { uint16_t eth_proto;/**< Ethernet type of encapsulated frame. */ } __attribute__((__packed__)); +/** + * VXLAN protocol header. + * Contains the 8-bit flag, 24-bit VXLAN Network Identifier and + * Reserved fields (24 bits and 8 bits) + */ +struct vxlan_hdr { + uint32_t vx_flags; /**< flag (8) + Reserved (24). */ + uint32_t vx_vni; /**< VNI (24) + Reserved (8). */ +} __attribute__((__packed__)); + /* Ethernet frame types */ #define ETHER_TYPE_IPv4 0x0800 /**< IPv4 Protocol. */ #define ETHER_TYPE_IPv6 0x86DD /**< IPv6 Protocol. */ @@ -294,6 +304,9 @@ struct vlan_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_VXLAN_HLEN (sizeof(struct udp_hdr) + sizeof(struct vxlan_hdr)) +/**< VxLAN tunnel header length. */ + #ifdef __cplusplus } #endif