DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: orika@nvidia.com, ferruh.yigit@amd.com,
	andrew.rybchenko@oktetlabs.ru, Gavin Li <gavinl@nvidia.com>
Cc: dev@dpdk.org, jiaweiw@nvidia.com, jerinj@marvell.com,
	bruce.richardson@intel.com, konstantin.v.ananyev@yandex.ru,
	"Ajit Khaparde" <ajit.khaparde@broadcom.com>,
	"Morten Brørup" <mb@smartsharesystems.com>,
	"Jie Hai" <haijie1@huawei.com>, "Long Li" <longli@microsoft.com>,
	"Dariusz Sosnowski" <dsosnowski@nvidia.com>,
	"Hemant Agrawal" <hemant.agrawal@nxp.com>,
	"Maxime Coquelin" <maxime.coquelin@redhat.com>
Subject: Re: [RFC V1 1/1] net: extend VXLAN header to support more extensions
Date: Tue, 06 Feb 2024 23:51:28 +0100	[thread overview]
Message-ID: <16740437.geO5KgaWL5@thomas> (raw)
In-Reply-To: <20240130112520.1971315-2-gavinl@nvidia.com>

30/01/2024 12:25, Gavin Li:
> In this patch, all the VXLAN extension header will be merged with VXLAN as
> union if the overlapped field has different format among protocols. The
> existing VXLAN-GPE will be marked as deprecated and new extensions of
> VXLAN should be added to VXLAN instead of a new RTE item.

So VXLAN GPE, GBP, and original ones will all use the same struct.
Asking confirmation to other reviewers:
- do we want to deprecate specific VXLAN GPE?
- do we want to plan for VXLAN GPE removal?

[...]
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> +* ethdev: The flow item ``RTE_FLOW_ITEM_TYPE_VXLAN_GPE`` is replaced with ``RTE_FLOW_ITEM_TYPE_VXLAN``.
> +  The item ``RTE_FLOW_ITEM_TYPE_VXLAN_GPE``, the struct ``rte_flow_item_vxlan_gpe``, its mask ``rte_flow_item_vxlan_gpe_mask``,
> +  and the header struct ``rte_vxlan_gpe_hdr`` with the macro ``RTE_ETHER_VXLAN_GPE_HLEN``
> +  will be removed in DPDK 25.11.

[...]
> @@ -38,8 +38,65 @@ struct rte_vxlan_hdr {
>  			rte_be32_t vx_vni;   /**< VNI (24) + Reserved (8). */
>  		};
>  		struct {
> -			uint8_t    flags;    /**< Should be 8 (I flag). */
> -			uint8_t    rsvd0[3]; /**< Reserved. */
> +			union {
> +				uint8_t    flags;    /**< Should be 8 (I flag). */
> +				/* Flag bits defined by GPE */
> +				struct {
> +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> +					uint8_t flag_o:1,
> +						flag_b:1,
> +						flag_p:1,
> +						flag_i_gpe:1,
> +						flag_ver:2,
> +						rsvd_gpe:2;
> +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> +					uint8_t rsvd_gpe:2,
> +						flag_ver:2,
> +						flag_i_gpe:1,
> +						flag_p:1,
> +						flag_b:1,
> +						flag_o:1;
> +#endif
> +				};
> +				/* Flag bits defined by GBP */
> +				struct {
> +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> +					uint8_t rsvd_gbp1:3,
> +						flag_i_gbp:1,
> +						rsvd_gbp2:3,
> +						flag_g:1;
> +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> +					uint8_t flag_g:1,
> +						rsvd_gbp1:3,
> +						flag_i_gbp:1,
> +						rsvd_gbp2:3;
> +#endif
> +				};
> +			};
> +			union {
> +				uint8_t    rsvd0[3]; /**< Reserved. */
> +				/* Overlap with rte_vxlan_gpe_hdr which is deprecated.*/
> +				struct {
> +					uint8_t rsvd0_gpe[2]; /**< Reserved. */
> +					uint8_t proto;	   /**< Next protocol. */
> +				};
> +				struct {
> +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> +					uint8_t rsvd0_gbp1:3,
> +						policy_applied:1,
> +						rsvd0_gbp2:2,
> +						dont_learn:1,
> +						rsvd0_gbp3:1;
> +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> +					uint8_t rsvd0_gbp1:1,
> +						dont_learn:1,
> +						rsvd0_gbp2:2,
> +						policy_applied:1,
> +						rsvd0_gbp3:3;
> +#endif
> +					uint16_t policy_id;
> +				};
> +			};
>  			uint8_t    vni[3];   /**< VXLAN identifier. */
>  			uint8_t    rsvd1;    /**< Reserved. */
>  		};

Naming looks OK.
Any different opinion?



  reply	other threads:[~2024-02-06 22:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-30 11:25 [RFC V1 0/1] " Gavin Li
2024-01-30 11:25 ` [RFC V1 1/1] " Gavin Li
2024-02-06 22:51   ` Thomas Monjalon [this message]
2024-02-07  4:49     ` Ajit Khaparde
2024-02-08 23:54   ` Ferruh Yigit
2024-02-09 10:12     ` Thomas Monjalon
2024-02-09 12:11       ` Ferruh Yigit
2024-02-09 13:44         ` Thomas Monjalon
2024-02-09 14:58           ` Ferruh Yigit
2024-02-09 15:32             ` Thomas Monjalon
2024-02-09 15:58               ` Ferruh Yigit
2024-02-19  3:16               ` Gavin Li
2024-02-19  3:44               ` Gavin Li
2024-02-19  4:03                 ` Gavin Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=16740437.geO5KgaWL5@thomas \
    --to=thomas@monjalon.net \
    --cc=ajit.khaparde@broadcom.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=dsosnowski@nvidia.com \
    --cc=ferruh.yigit@amd.com \
    --cc=gavinl@nvidia.com \
    --cc=haijie1@huawei.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerinj@marvell.com \
    --cc=jiaweiw@nvidia.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=longli@microsoft.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mb@smartsharesystems.com \
    --cc=orika@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).