Hi Ori, > -----Original Message----- > From: Ori Kam <or...@nvidia.com> > Sent: Tuesday, January 25, 2022 12:35 AM > To: Wang, Jie1X <jie1x.w...@intel.com>; dev@dpdk.org > Cc: Yang, SteveX <stevex.y...@intel.com>; Singh, Aman Deep > <aman.deep.si...@intel.com>; Yigit, Ferruh <ferruh.yi...@intel.com>; NBU- > Contact-Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>; > andrew.rybche...@oktetlabs.ru; Wu, Jingjing <jingjing...@intel.com>; Xing, > Beilei <beilei.x...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com> > Subject: RE: [PATCH 1/6] ethdev: add L2TPv2 RSS offload type > > Hi Jie > > > -----Original Message----- > > From: Jie Wang <jie1x.w...@intel.com> > > Sent: Monday, January 24, 2022 8:56 AM > > Subject: [PATCH 1/6] ethdev: add L2TPv2 RSS offload type > > > > This patch defines new RSS offload type for L2TPv2, which are required > > when users want to distribute packets based on the L2TPv2 field. > > > > Signed-off-by: Jie Wang <jie1x.w...@intel.com> > > --- > > app/test-pmd/cmdline.c | 10 ++++++---- > > app/test-pmd/config.c | 3 ++- > > doc/guides/rel_notes/release_22_03.rst | 5 +++++ > > lib/ethdev/rte_ethdev.h | 3 +++ > > 4 files changed, 16 insertions(+), 5 deletions(-) > > > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index > > 6e10afeedd..3914fb9a75 100644 > > --- a/app/test-pmd/cmdline.c > > +++ b/app/test-pmd/cmdline.c > > @@ -2178,7 +2178,7 @@ cmd_config_rss_parsed(void *parsed_result, > > RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP | > RTE_ETH_RSS_SCTP | > > RTE_ETH_RSS_L2_PAYLOAD | RTE_ETH_RSS_L2TPV3 | > RTE_ETH_RSS_ESP | > > RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | > RTE_ETH_RSS_GTPU | > > - RTE_ETH_RSS_ECPRI; > > + RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_L2TPV2; > > else if (!strcmp(res->value, "eth")) > > rss_conf.rss_hf = RTE_ETH_RSS_ETH; > > else if (!strcmp(res->value, "vlan")) @@ -2256,6 +2256,8 @@ > > cmd_config_rss_parsed(void *parsed_result, > > rss_conf.rss_hf = (rss_hf | RTE_ETH_RSS_LEVEL_INNERMOST); > > } else if (!strcmp(res->value, "default")) > > use_default = 1; > > + else if (!strcmp(res->value, "l2tpv2")) > > + rss_conf.rss_hf = RTE_ETH_RSS_L2TPV2; > > else if (isdigit(res->value[0]) && atoi(res->value) > 0 && > > atoi(res->value) < 64) > > rss_conf.rss_hf = 1ULL << atoi(res->value); @@ -2314,7 > +2316,7 @@ > > cmdline_parse_inst_t 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|ipv4-chksum|<flowtype_id>", > > + "level-outer|level-inner|ipv4-chksum|l2tpv2|<flowtype_id>", > > .tokens = { > > (void *)&cmd_config_rss_port, > > (void *)&cmd_config_rss_keyword, > > @@ -2429,7 +2431,7 @@ cmdline_parse_token_string_t > cmd_config_rss_hash_key_rss_type = > > "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#l2tpv2"); > > cmdline_parse_token_string_t cmd_config_rss_hash_key_value = > > TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, > NULL); > > > > @@ -2442,7 +2444,7 @@ cmdline_parse_inst_t 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|l2tpv2 " > > "<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 > > 1722d6c8f8..ec922bd304 100644 > > --- a/app/test-pmd/config.c > > +++ b/app/test-pmd/config.c > > @@ -90,7 +90,7 @@ const struct rss_type_info rss_type_table[] = { > > { "all", RTE_ETH_RSS_ETH | RTE_ETH_RSS_VLAN | RTE_ETH_RSS_IP | > RTE_ETH_RSS_TCP | > > RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | > RTE_ETH_RSS_L2_PAYLOAD | > > RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH > | > > RTE_ETH_RSS_PFCP > > | > > - RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | > RTE_ETH_RSS_MPLS}, > > + RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | > RTE_ETH_RSS_MPLS | > > RTE_ETH_RSS_L2TPV2}, > > { "none", 0 }, > > { "eth", RTE_ETH_RSS_ETH }, > > { "l2-src-only", RTE_ETH_RSS_L2_SRC_ONLY }, @@ -143,6 +143,7 @@ > > const struct rss_type_info rss_type_table[] = { > > { "mpls", RTE_ETH_RSS_MPLS }, > > { "ipv4-chksum", RTE_ETH_RSS_IPV4_CHKSUM }, > > { "l4-chksum", RTE_ETH_RSS_L4_CHKSUM }, > > + { "l2tpv2", RTE_ETH_RSS_L2TPV2 }, > > { NULL, 0 }, > > }; > > > > diff --git a/doc/guides/rel_notes/release_22_03.rst > > b/doc/guides/rel_notes/release_22_03.rst > > index 6d99d1eaa9..30695f11b7 100644 > > --- a/doc/guides/rel_notes/release_22_03.rst > > +++ b/doc/guides/rel_notes/release_22_03.rst > > @@ -55,6 +55,11 @@ New Features > > Also, make sure to start the actual text at the margin. > > ======================================================= > > > > +* **Added new RSS offload types for L2TPv2 in RSS flow.** > > + > > + Added macros RTE_ETH_RSS_L2TPV2, now L2TPv2 field can be used as > > + input set for RSS. > > + > > Which fields exactly? I assume it is tunnel id but can it be something else? >
It's session ID, I'll update it in v2. > > > > Removed Items > > ------------- > > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index > > fa299c8ad7..43f582c90c 100644 > > --- a/lib/ethdev/rte_ethdev.h > > +++ b/lib/ethdev/rte_ethdev.h > > @@ -645,6 +645,9 @@ struct rte_eth_rss_conf { > > #define RTE_ETH_RSS_L4_CHKSUM RTE_BIT64(35) > > #define ETH_RSS_L4_CHKSUM RTE_ETH_RSS_L4_CHKSUM > > > > +#define RTE_ETH_RSS_L2TPV2 RTE_BIT64(36) > > +#define ETH_RSS_L2TPV2 RTE_ETH_RSS_L2TPV2 > > + > > I know it was not done until now, but I think it is important to explain > exactly on > what fields this hash is being done. > Yes, I'll add some comments to explain it in v2. > > > /* > > * We use the following macros to combine with above RTE_ETH_RSS_* for > > * more specific input set selection. These bits are defined starting > > -- > > 2.25.1 > > Best, > Ori