All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Guo, Jia" <jia.guo@intel.com>
To: "Zhang, AlvinX" <alvinx.zhang@intel.com>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v4 2/2] net/iavf: support outer IP hash for GTPC
Date: Thu, 10 Sep 2020 05:14:04 +0000	[thread overview]
Message-ID: <19133970cdf64d5882531d3933bac5af@intel.com> (raw)
In-Reply-To: <20200910033652.30632-2-alvinx.zhang@intel.com>

Hi, Alvin

> -----Original Message-----
> From: Zhang, AlvinX <alvinx.zhang@intel.com>
> Sent: Thursday, September 10, 2020 11:37 AM
> To: Guo, Jia <jia.guo@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zhang@intel.com>
> Subject: [PATCH v4 2/2] net/iavf: support outer IP hash for GTPC
> 
> From: Alvin Zhang <alvinx.zhang@intel.com>
> 
> Add patterns and headers for GTPC, now outer IP hash can be configured as
> input sets for GTPC packet.
> 
> Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
> ---
> 
> V2: Modify codes according to comments.
> V3: Refact all codes.
> V4: Fix compatibility issues.
> 
>  drivers/net/iavf/iavf_generic_flow.c | 18 ++++++++++++++++++
> drivers/net/iavf/iavf_generic_flow.h |  6 ++++++
>  drivers/net/iavf/iavf_hash.c         | 13 +++++++++++++
>  3 files changed, 37 insertions(+)
> 
> diff --git a/drivers/net/iavf/iavf_generic_flow.c
> b/drivers/net/iavf/iavf_generic_flow.c
> index 321a4dc..00e7f15 100644
> --- a/drivers/net/iavf/iavf_generic_flow.c
> +++ b/drivers/net/iavf/iavf_generic_flow.c
> @@ -315,6 +315,15 @@ enum rte_flow_item_type
> iavf_pattern_eth_qinq_ipv6_icmp6[] = {
>  	RTE_FLOW_ITEM_TYPE_END,
>  };
> 
> +/* IPv4 GTPC */
> +enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpc[] = {
> +	RTE_FLOW_ITEM_TYPE_ETH,
> +	RTE_FLOW_ITEM_TYPE_IPV4,
> +	RTE_FLOW_ITEM_TYPE_UDP,
> +	RTE_FLOW_ITEM_TYPE_GTPC,
> +	RTE_FLOW_ITEM_TYPE_END,
> +};
> +
>  /* IPV4 GTPU (EH) */
>  enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[] = {
>  	RTE_FLOW_ITEM_TYPE_ETH,
> @@ -333,6 +342,15 @@ enum rte_flow_item_type
> iavf_pattern_eth_ipv4_gtpu_eh[] = {
>  	RTE_FLOW_ITEM_TYPE_END,
>  };
> 
> +/* IPv6 GTPC */
> +enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpc[] = {
> +	RTE_FLOW_ITEM_TYPE_ETH,
> +	RTE_FLOW_ITEM_TYPE_IPV6,
> +	RTE_FLOW_ITEM_TYPE_UDP,
> +	RTE_FLOW_ITEM_TYPE_GTPC,
> +	RTE_FLOW_ITEM_TYPE_END,
> +};
> +
>  /* IPV6 GTPU (EH) */
>  enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[] = {
>  	RTE_FLOW_ITEM_TYPE_ETH,
> diff --git a/drivers/net/iavf/iavf_generic_flow.h
> b/drivers/net/iavf/iavf_generic_flow.h
> index f365cc3..dbc7294 100644
> --- a/drivers/net/iavf/iavf_generic_flow.h
> +++ b/drivers/net/iavf/iavf_generic_flow.h
> @@ -182,10 +182,16 @@
>  extern enum rte_flow_item_type iavf_pattern_eth_vlan_ipv6_icmp6[];
>  extern enum rte_flow_item_type iavf_pattern_eth_qinq_ipv6_icmp6[];
> 
> +/* IPv4 GTPC */
> +extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpc[];
> +
>  /* IPv4 GTPU (EH) */
>  extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[];  extern
> enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh[];
> 
> +/* IPv4 GTPC */

/* IPv6 GTPC */

> +extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpc[];
> +
>  /* IPv6 GTPU (EH) */
>  extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[];  extern
> enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu_eh[]; diff --git
> a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index
> d0f0057..4e8ee5c 100644
> --- a/drivers/net/iavf/iavf_hash.c
> +++ b/drivers/net/iavf/iavf_hash.c
> @@ -135,6 +135,9 @@ struct iavf_hash_flow_cfg {  #define proto_hdr_gtpu
> { \
>  	VIRTCHNL_PROTO_HDR_GTPU_IP, 0, {BUFF_NOUSED} }
> 
> +#define proto_hdr_gtpc { \
> +	VIRTCHNL_PROTO_HDR_GTPC, 0, {BUFF_NOUSED} }
> +
>  #define TUNNEL_LEVEL_OUTER		0
>  #define TUNNEL_LEVEL_INNER		1
> 
> @@ -267,6 +270,14 @@ struct virtchnl_proto_hdrs
> outer_ipv6_udp_gtpu_tmplt = {
>  	TUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv6, proto_hdr_udp,
> proto_hdr_gtpu}  };
> 
> +struct virtchnl_proto_hdrs ipv4_udp_gtpc_tmplt = {
> +	TUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv4, proto_hdr_udp,
> proto_hdr_gtpc}
> +};
> +
> +struct virtchnl_proto_hdrs ipv6_udp_gtpc_tmplt = {
> +	TUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv6, proto_hdr_udp,
> proto_hdr_gtpc}
> +};
> +
>  /* rss type super set */
> 
>  /* IPv4 outer */
> @@ -377,6 +388,7 @@ struct virtchnl_proto_hdrs
> outer_ipv6_udp_gtpu_tmplt = {
>  	{iavf_pattern_eth_ipv4_ah,
> 	IAVF_RSS_TYPE_IPV4_AH,		&ipv4_ah_tmplt},
>  	{iavf_pattern_eth_ipv4_l2tpv3,
> 	IAVF_RSS_TYPE_IPV4_L2TPV3,	&ipv4_l2tpv3_tmplt},
>  	{iavf_pattern_eth_ipv4_pfcp,
> 	IAVF_RSS_TYPE_IPV4_PFCP,	&ipv4_pfcp_tmplt},
> +	{iavf_pattern_eth_ipv4_gtpc,			ETH_RSS_IPV4,

Since the input set hint is the supper set, so I suppose you use the supper set "ETH_RSS_IPV4 | ETH_RSS_GTPC" here, and considerate if we need to enable GTPC hash at this patch,
if not it  could be process when parsing pattern. Want to know other's opinion. 

> 		&ipv4_udp_gtpc_tmplt},
>  	/* IPv6 */
>  	{iavf_pattern_eth_ipv6,
> 	IAVF_RSS_TYPE_OUTER_IPV6,	&outer_ipv6_tmplt},
>  	{iavf_pattern_eth_ipv6_udp,
> 	IAVF_RSS_TYPE_OUTER_IPV6_UDP,	&outer_ipv6_udp_tmplt},
> @@ -404,6 +416,7 @@ struct virtchnl_proto_hdrs
> outer_ipv6_udp_gtpu_tmplt = {
>  	{iavf_pattern_eth_ipv6_ah,
> 	IAVF_RSS_TYPE_IPV6_AH,		&ipv6_ah_tmplt},
>  	{iavf_pattern_eth_ipv6_l2tpv3,
> 	IAVF_RSS_TYPE_IPV6_L2TPV3,	&ipv6_l2tpv3_tmplt},
>  	{iavf_pattern_eth_ipv6_pfcp,
> 	IAVF_RSS_TYPE_IPV6_PFCP,	&ipv6_pfcp_tmplt},
> +	{iavf_pattern_eth_ipv6_gtpc,			ETH_RSS_IPV6,
> 		&ipv6_udp_gtpc_tmplt},
>  };
> 
>  struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {
> --
> 1.8.3.1


  reply	other threads:[~2020-09-10  5:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-08  9:50 [dpdk-dev] [PATCH v3 1/3] common/iavf: add GTPC support alvinx.zhang
2020-09-08  9:50 ` [dpdk-dev] [PATCH v3 2/3] net/iavf: support outer IP hash for GTPC alvinx.zhang
2020-09-08  9:50 ` [dpdk-dev] [PATCH v3 3/3] net/iavf: support outer IP hash for GTPU alvinx.zhang
2020-09-10  3:26   ` [dpdk-dev] [PATCH v4] " alvinx.zhang
2020-09-10  5:24     ` Guo, Jia
2020-09-10  9:24       ` Zhang, AlvinX
2020-09-14  9:03     ` [dpdk-dev] [PATCH v5] net/iavf: support outer IP hash for no inner GTPU alvinx.zhang
2020-09-14 10:33       ` Zhang, Qi Z
2020-09-15  1:54         ` Zhang, AlvinX
2020-09-15  2:43       ` [dpdk-dev] [PATCH v6] " alvinx.zhang
2020-09-15  2:58         ` Zhang, Qi Z
2020-09-10  3:36 ` [dpdk-dev] [PATCH v4 1/2] common/iavf: add GTPC support alvinx.zhang
2020-09-10  3:36   ` [dpdk-dev] [PATCH v4 2/2] net/iavf: support outer IP hash for GTPC alvinx.zhang
2020-09-10  5:14     ` Guo, Jia [this message]
2020-09-10  9:29       ` Zhang, AlvinX
2020-09-14  9:12     ` [dpdk-dev] [PATCH v5] " alvinx.zhang
2020-09-14 10:48       ` Zhang, Qi Z

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=19133970cdf64d5882531d3933bac5af@intel.com \
    --to=jia.guo@intel.com \
    --cc=alvinx.zhang@intel.com \
    --cc=dev@dpdk.org \
    --cc=qi.z.zhang@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.