[dpdk-dev] [PATCH 03/18] ethdev: introduce new tunnel VXLAN-GPE

Mohammad Abdul Awal mohammad.abdul.awal at intel.com
Tue Feb 27 16:25:44 CET 2018


On 26/02/2018 15:09, Xueming Li wrote:
> diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h
> index 45daa91..fe02ad8 100644
> --- a/lib/librte_net/rte_ether.h
> +++ b/lib/librte_net/rte_ether.h
> @@ -310,6 +310,31 @@ struct vxlan_hdr {
>   /**< VXLAN tunnel header length. */
>   
>   /**
> + * VXLAN-GPE protocol header.
> + * Contains the 8-bit flag, 8-bit next-protocol, 24-bit VXLAN Network
> + * Identifier and Reserved fields (16 bits and 8 bits).
> + */
> +struct vxlan_gpe_hdr {
> +	uint8_t vx_flags; /**< flag (8). */
> +	uint8_t reserved[2]; /**< Reserved (16). */
> +	uint8_t proto; /**< next-protocol (8). */
> +	uint32_t vx_vni;   /**< VNI (24) + Reserved (8). */
> +} __attribute__((__packed__));
> +
> +/* VXLAN-GPE next protocol types */
> +#define VXLAN_GPE_TYPE_IPv4 1 /**< IPv4 Protocol. */
> +#define VXLAN_GPE_TYPE_IPv6 2 /**< IPv6 Protocol. */
> +#define VXLAN_GPE_TYPE_ETH  3 /**< Ethernet Protocol. */
> +#define VXLAN_GPE_TYPE_NSH  4 /**< NSH Protocol. */
> +#define VXLAN_GPE_TYPE_MPLS 5 /**< MPLS Protocol. */
> +#define VXLAN_GPE_TYPE_GBP  6 /**< GBP Protocol. */
> +#define VXLAN_GPE_TYPE_VBNG 7 /**< vBNG Protocol. */
> +
> +#define ETHER_VXLAN_GPE_HLEN (sizeof(struct udp_hdr) + \
> +			      sizeof(struct vxlan_gpe_hdr))
> +/**< VXLAN-GPE tunnel header length. */
> +
> +/**
>    * Extract VLAN tag information into mbuf
>    *
>    * Software version of VLAN stripping
Should we define the VXLAN-GPE protocol and related macros in a separate 
file (say lib/librte_net/rte_vxlan_gpe.h)?
I can see that VXLAN header also defined in the rte_ether.h file but we 
should consider moving that VXLAN definition in a separate header file 
(rte_vxlan.h) as well.

Regards,
Awal.


More information about the dev mailing list