All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, AlvinX" <alvinx.zhang@intel.com>
To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>,
	"ajit.khaparde@broadcom.com" <ajit.khaparde@broadcom.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"Singh, Aman Deep" <aman.deep.singh@intel.com>
Subject: Re: [dpdk-dev] [PATCH v4] ethdev: add IPv4 and L4 checksum RSS offload types
Date: Tue, 13 Jul 2021 09:38:51 +0000	[thread overview]
Message-ID: <DM6PR11MB3898160CB29751CCFC9A1EFF9F149@DM6PR11MB3898.namprd11.prod.outlook.com> (raw)
In-Reply-To: <182898c1-3553-aa97-d2b5-27410a1fd00d@oktetlabs.ru>

> -----Original Message-----
> From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Sent: Tuesday, July 13, 2021 3:55 PM
> To: Zhang, AlvinX <alvinx.zhang@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; ajit.khaparde@broadcom.com
> Cc: dev@dpdk.org; Singh, Aman Deep <aman.deep.singh@intel.com>
> Subject: Re: [PATCH v4] ethdev: add IPv4 and L4 checksum RSS offload types
> 
> On 7/13/21 4:13 AM, Alvin Zhang wrote:
> > This patch defines new RSS offload types for IPv4 and
> > L4(TCP/UDP/SCTP) checksum, which are required when users want to
> > distribute packets based on the IPv4 or L4 checksum field.
> >
> > For example "flow create 0 ingress pattern eth / ipv4 / end actions
> > rss types ipv4-chksum end queues end / end", this flow causes all
> > matching packets to be distributed to queues on basis of IPv4
> > checksum.
> >
> > Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
> > Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> 
> I've failed to find mail where I've added the tag. I've replied with "LGTM" for v2
> which has IPv4 checksum only and many comments on L4 checksum added in v3.
> So, I think it is incorrect to inherit "LGTM" as Reviewed-by.
> 
 
I'll correct it at next version.         
    
> > Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> > Acked-by: Aman Deep Singh <aman.deep.singh@intel.com>
> > ---
> >
> > v3: Add L4 checksum RSS offload type
> > v4: Add doc and help string, update commit log
> > ---
> >  app/test-pmd/cmdline.c  | 12 +++++++++---
> >  app/test-pmd/config.c   |  2 ++
> >  lib/ethdev/rte_ethdev.h |  2 ++
> >  3 files changed, 13 insertions(+), 3 deletions(-)
> >
> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > 0268b18..93543d8 100644
> > --- a/app/test-pmd/cmdline.c
> > +++ b/app/test-pmd/cmdline.c
> > @@ -2254,6 +2254,10 @@ struct cmd_config_rss {
> >  		rss_conf.rss_hf = ETH_RSS_ECPRI;
> >  	else if (!strcmp(res->value, "mpls"))
> >  		rss_conf.rss_hf = ETH_RSS_MPLS;
> > +	else if (!strcmp(res->value, "ipv4-chksum"))
> > +		rss_conf.rss_hf = ETH_RSS_IPV4_CHKSUM;
> > +	else if (!strcmp(res->value, "l4-chksum"))
> > +		rss_conf.rss_hf = ETH_RSS_L4_CHKSUM;
> >  	else if (!strcmp(res->value, "none"))
> >  		rss_conf.rss_hf = 0;
> >  	else if (!strcmp(res->value, "level-default")) { @@ -2325,7 +2329,7
> > @@ struct cmd_config_rss {
> >  	.help_str = "port config all rss "
> >  		"all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|"
> >
> 	"nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none|level-default|"
> > -		"level-outer|level-inner|<flowtype_id>",
> > +		"level-outer|level-inner|ipv4-chksum|l4-chksum|<flowtype_id>",
> >  	.tokens = {
> >  		(void *)&cmd_config_rss_port,
> >  		(void *)&cmd_config_rss_keyword,
> > @@ -2438,7 +2442,8 @@ struct cmd_config_rss_hash_key {
> >  				 "ipv6-tcp-ex#ipv6-udp-ex#"
> >  				 "l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#"
> >  				 "l2-src-only#l2-dst-only#s-vlan#c-vlan#"
> > -				 "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls");
> > +				 "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#"
> > +				 "ipv4-chksum#l4-chksum");
> >  cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
> >  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL);
> >
> > @@ -2451,7 +2456,8 @@ struct cmd_config_rss_hash_key {
> >  		"l2-payload|ipv6-ex|ipv6-tcp-ex|ipv6-udp-ex|"
> >  		"l3-src-only|l3-dst-only|l4-src-only|l4-dst-only|"
> >  		"l2-src-only|l2-dst-only|s-vlan|c-vlan|"
> > -		"l2tpv3|esp|ah|pfcp|pppoe|gtpu|ecpri|mpls "
> > +		"l2tpv3|esp|ah|pfcp|pppoe|gtpu|ecpri|mpls|"
> > +		"ipv4-chksum|l4-chksum "
> >  		"<string of hex digits (variable length, NIC dependent)>",
> >  	.tokens = {
> >  		(void *)&cmd_config_rss_hash_key_port, diff --git
> > a/app/test-pmd/config.c b/app/test-pmd/config.c index 43c79b5..14968bf
> > 100644
> > --- a/app/test-pmd/config.c
> > +++ b/app/test-pmd/config.c
> > @@ -140,6 +140,8 @@
> >  	{ "gtpu", ETH_RSS_GTPU },
> >  	{ "ecpri", ETH_RSS_ECPRI },
> >  	{ "mpls", ETH_RSS_MPLS },
> > +	{ "ipv4-chksum", ETH_RSS_IPV4_CHKSUM },
> > +	{ "l4-chksum", ETH_RSS_L4_CHKSUM },
> >  	{ NULL, 0 },
> >  };
> >
> > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index
> > faf3bd9..63b0321 100644
> > --- a/lib/ethdev/rte_ethdev.h
> > +++ b/lib/ethdev/rte_ethdev.h
> > @@ -537,6 +537,8 @@ struct rte_eth_rss_conf {
> >  #define ETH_RSS_PPPOE		   (1ULL << 31)
> >  #define ETH_RSS_ECPRI		   (1ULL << 32)
> >  #define ETH_RSS_MPLS		   (1ULL << 33)
> > +#define ETH_RSS_IPV4_CHKSUM	   (1ULL << 34)
> > +#define ETH_RSS_L4_CHKSUM	   (1ULL << 35)	/* TCP/UDP/SCTP */
> 
> It does not reply on my questions at all.
  
You have said:       
> >> I don't think so. IMHO, it should report all RSS capabilities      
> >> regardless generic vs flow API RSS action.       
> >      
> May be it is OK to report subset in      
> dev_info->flow_type_rss_offloads, but I'm very uncomfortable with the       
> approach. Superset sounds more logical to me, but has drawbacks as        
> well.         

Here I have another question:              
There are flow type definition and RSS offload type definition,         
#define RTE_ETH_FLOW_RAW                 1       
#define RTE_ETH_FLOW_IPV4                2     
#define RTE_ETH_FLOW_FRAG_IPV4           3       
#define RTE_ETH_FLOW_NONFRAG_IPV4_TCP    4        

#define ETH_RSS_IPV4               (1ULL << 2)      
#define ETH_RSS_FRAG_IPV4          (1ULL << 3)         
#define ETH_RSS_NONFRAG_IPV4_TCP   (1ULL << 4)        
  
are they the different expressions of the same concept?             

If yes, why they have been decoupled by the commit: fce6b66893.   
Then what the flow type of ETH_RSS_PORT, it's UDP, TCP, or SCTP?      

If not, the PMDs can report supported RSS flow type by dev_info->flow_type_rss_offloads,   
but have no way to report supported RSS offload types.          

Thanks Alvin

> 
> Nack

  reply	other threads:[~2021-07-13  9:39 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-03  3:12 [dpdk-dev] [PATCH] ethdev: add RSS offload type for L3 checksum Alvin Zhang
2021-06-03  7:14 ` Andrew Rybchenko
2021-06-03  7:28   ` Zhang, AlvinX
2021-06-03  8:03 ` [dpdk-dev] [PATCH v2] ethdev: add IPv4 checksum RSS offload type Alvin Zhang
2021-06-03  8:17   ` Andrew Rybchenko
2021-06-04  2:23     ` Zhang, AlvinX
2021-06-07 18:31   ` Ajit Khaparde
2021-06-15  8:19   ` [dpdk-dev] [PATCH v3] ethdev: add IPv4 and L4 checksum RSS offload types Alvin Zhang
2021-06-15  8:26     ` Jerin Jacob
2021-06-16 15:18       ` Zhang, Qi Z
2021-06-22  8:20         ` Singh, Aman Deep
2021-07-01 14:26     ` Andrew Rybchenko
2021-07-06  6:14       ` Zhang, AlvinX
2021-07-06  7:05       ` Zhang, AlvinX
2021-07-06  7:18         ` Zhang, Qi Z
2021-07-06  8:04           ` Andrew Rybchenko
2021-07-07  3:23             ` Zhang, Qi Z
2021-07-07  9:49               ` Andrew Rybchenko
2021-07-07 13:00                 ` Zhang, Qi Z
2021-07-07 13:10                   ` Andrew Rybchenko
2021-07-08  1:07                     ` Zhang, Qi Z
2021-07-08  7:45                       ` Andrew Rybchenko
2021-07-10  8:38                         ` Thomas Monjalon
2021-07-13  1:13     ` [dpdk-dev] [PATCH v4] " Alvin Zhang
2021-07-13  7:54       ` Andrew Rybchenko
2021-07-13  9:38         ` Zhang, AlvinX [this message]
2021-07-13 10:24           ` Andrew Rybchenko
2021-07-14  2:38             ` Zhang, AlvinX
2021-08-18  2:32       ` [dpdk-dev] [PATCH v5] " Alvin Zhang
2021-08-29 12:07         ` Zhang, Qi Z
2021-08-31  9:44         ` [dpdk-dev] [PATCH v6] " Alvin Zhang
2021-08-31  9:52           ` [dpdk-dev] [PATCH v7] " Alvin Zhang
2021-09-06  0:28             ` Zhang, Qi Z
2021-09-14 14:00             ` Ferruh Yigit
2021-09-15  1:36               ` Zhang, AlvinX
2021-09-15  5:47             ` [dpdk-dev] [PATCH v8] " Alvin Zhang
2021-09-21  8:26               ` Ferruh Yigit
2021-09-28 13:09               ` Ferruh Yigit
2021-09-29  2:27                 ` Zhang, AlvinX

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=DM6PR11MB3898160CB29751CCFC9A1EFF9F149@DM6PR11MB3898.namprd11.prod.outlook.com \
    --to=alvinx.zhang@intel.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=aman.deep.singh@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --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.