From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 853C6A0588; Fri, 17 Apr 2020 03:51:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4A72B1DDC4; Fri, 17 Apr 2020 03:51:06 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 954671D964 for ; Fri, 17 Apr 2020 03:51:04 +0200 (CEST) IronPort-SDR: peXjd+mj03uAhkhLGnWHa6lm8+Z+AP80HK+1VJu90BuXkfD4OX/pExxQLNafGaMa+eSqYj/76Y pQ5qhKJ94L3Q== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Apr 2020 18:51:03 -0700 IronPort-SDR: d0ZBa7neoTqn+WaCz5R4A0H8pGtrDGxZOJ2JXbVgdMgO/l7n9LuR2S2pEVAULkQsMvoV6X6azV i4SO9BWhmshw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,393,1580803200"; d="scan'208";a="428062020" Received: from unknown (HELO [10.67.68.151]) ([10.67.68.151]) by orsmga005.jf.intel.com with ESMTP; 16 Apr 2020 18:51:01 -0700 To: Ferruh Yigit , "Iremonger, Bernard" , "orika@mellanox.com" , "Ye, Xiaolong" , "Zhang, Qi Z" Cc: "dev@dpdk.org" , "Wu, Jingjing" , "Cao, Yahui" , "Su, Simei" References: <20200318170401.7938-5-jia.guo@intel.com> <20200416191944.23284-1-jia.guo@intel.com> <20200416191944.23284-4-jia.guo@intel.com> <103d4a2c-6145-8f19-2fb3-4c5b09704528@intel.com> From: Jeff Guo Message-ID: <409bcd20-a652-857c-4f6d-e402944dbf23@intel.com> Date: Fri, 17 Apr 2020 09:50:59 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Subject: Re: [dpdk-dev] [dpdk-dev v6 3/3] app/testpmd: add new types to RSS hash commands X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" hi, ferruh On 4/16/2020 11:52 PM, Ferruh Yigit wrote: > On 4/16/2020 4:15 PM, Jeff Guo wrote: >> hi, bernard >> >> >> On 4/16/2020 7:16 PM, Iremonger, Bernard wrote: >>> Hi Jeff, >>> >>>> -----Original Message----- >>>> From: Guo, Jia >>>> Sent: Thursday, April 16, 2020 8:20 PM >>>> To: Iremonger, Bernard ; >>>> orika@mellanox.com; Ye, Xiaolong ; Zhang, Qi Z >>>> >>>> Cc: dev@dpdk.org; Wu, Jingjing ; Cao, Yahui >>>> ; Su, Simei ; Guo, Jia >>>> >>>> Subject: [dpdk-dev v6 3/3] app/testpmd: add new types to RSS hash >>>> commands >>>> >>>> Add some new types, such as eth/l2-src-only/l2-dst-only/svlan/cvlan/ >>>> l2tpv3/esp/ah/pfcp types into RSS hash commands, it could be used to >>>> configure these rss input set by cmdline. >>>> >>>> Example testpmd commands was: >>>> testpmd>flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end \ >>>> actions rss types l2tpv3 end key_len 0 queues end / end >>>> >>>> Signed-off-by: Jeff Guo >>>> --- >>>> v6->v5: >>>> add some missing part and refine commit log >>>> --- >>>> app/test-pmd/cmdline.c | 34 +++++++++++++++++++++++++++++----- >>>> app/test-pmd/config.c | 15 ++++++++++++--- >>>> 2 files changed, 41 insertions(+), 8 deletions(-) >>>> >>> The dpdk/doc/guides/testpmd_app_ug/testpmd_funcs.rst file needs to be updated for the new RSS values. >>> Section 4.6.16. port config -RSS >> >> ok, i think the doc is definitely need, and also the rss rule flow >> setting. please expect it in the next version. Thanks. > Hi Jeff, > > I have merged Bernard's "configure RSS hash" patch already to next-net, when > sending next version, can you please rebase on top of latest next-net? > > Thanks, > ferruh Sure. Thanks. >> >>>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index >>>> 863b567c1..4164767b8 100644 >>>> --- a/app/test-pmd/cmdline.c >>>> +++ b/app/test-pmd/cmdline.c >>>> @@ -2270,9 +2270,13 @@ cmd_config_rss_parsed(void *parsed_result, >>>> int ret; >>>> >>>> if (!strcmp(res->value, "all")) >>>> -rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_TCP | >>>> -ETH_RSS_UDP | ETH_RSS_SCTP | >>>> -ETH_RSS_L2_PAYLOAD; >>>> +rss_conf.rss_hf = ETH_RSS_ETH | ETH_RSS_S_VLAN | >>>> +ETH_RSS_C_VLAN | ETH_RSS_IP | ETH_RSS_TCP | >>>> +ETH_RSS_UDP | ETH_RSS_SCTP | >>>> ETH_RSS_L2_PAYLOAD | >>>> +ETH_RSS_L2TPV3 | ETH_RSS_ESP | ETH_RSS_AH | >>>> +ETH_RSS_PFCP; >>>> +else if (!strcmp(res->value, "eth")) >>>> +rss_conf.rss_hf = ETH_RSS_ETH; >>>> else if (!strcmp(res->value, "ip")) >>>> rss_conf.rss_hf = ETH_RSS_IP; >>>> else if (!strcmp(res->value, "udp")) >>>> @@ -2299,6 +2303,22 @@ cmd_config_rss_parsed(void *parsed_result, >>>> rss_conf.rss_hf = ETH_RSS_L4_SRC_ONLY; >>>> else if (!strcmp(res->value, "l4-dst-only")) >>>> rss_conf.rss_hf = ETH_RSS_L4_DST_ONLY; >>>> +else if (!strcmp(res->value, "l2-src-only")) >>>> +rss_conf.rss_hf = ETH_RSS_L2_SRC_ONLY; >>>> +else if (!strcmp(res->value, "l2-dst-only")) >>>> +rss_conf.rss_hf = ETH_RSS_L2_DST_ONLY; >>>> +else if (!strcmp(res->value, "s-vlan")) >>>> +rss_conf.rss_hf = ETH_RSS_S_VLAN; >>>> +else if (!strcmp(res->value, "c-vlan")) >>>> +rss_conf.rss_hf = ETH_RSS_C_VLAN; >>>> +else if (!strcmp(res->value, "l2tpv3")) >>>> +rss_conf.rss_hf = ETH_RSS_L2TPV3; >>>> +else if (!strcmp(res->value, "esp")) >>>> +rss_conf.rss_hf = ETH_RSS_ESP; >>>> +else if (!strcmp(res->value, "ah")) >>>> +rss_conf.rss_hf = ETH_RSS_AH; >>>> +else if (!strcmp(res->value, "pfcp")) >>>> +rss_conf.rss_hf = ETH_RSS_PFCP; >>>> else if (!strcmp(res->value, "none")) >>>> rss_conf.rss_hf = 0; >>>> else if (!strcmp(res->value, "default")) @@ -2467,7 +2487,9 @@ >>>> cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type = >>>> "ipv4-other#ipv6#ipv6-frag#ipv6-tcp#ipv6- >>>> udp#" >>>> "ipv6-sctp#ipv6-other#l2-payload#ipv6-ex#" >>>> "ipv6-tcp-ex#ipv6-udp-ex#" >>>> - "l3-src-only#l3-dst-only#l4-src-only#l4-dst- >>>> only"); >>>> + "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"); >>>> cmdline_parse_token_string_t cmd_config_rss_hash_key_value = >>>> TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, >>>> NULL); >>>> >>>> @@ -2478,7 +2500,9 @@ cmdline_parse_inst_t cmd_config_rss_hash_key = >>>> { >>>> "ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|" >>>> "ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|" >>>> "l2-payload|ipv6-ex|ipv6-tcp-ex|ipv6-udp-ex|" >>>> -"l3-src-only|l3-dst-only|l4-src-only|l4-dst-only " >>>> +"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 " >>>> "", >>>> .tokens = { >>>> (void *)&cmd_config_rss_hash_key_port, diff --git >>>> a/app/test-pmd/config.c b/app/test-pmd/config.c index >>>> 71aeb5413..c8196e47a 100644 >>>> --- a/app/test-pmd/config.c >>>> +++ b/app/test-pmd/config.c >>>> @@ -75,10 +75,15 @@ static const struct { }; >>>> >>>> const struct rss_type_info rss_type_table[] = { >>>> -{ "all", ETH_RSS_IP | ETH_RSS_TCP | >>>> -ETH_RSS_UDP | ETH_RSS_SCTP | >>>> -ETH_RSS_L2_PAYLOAD }, >>>> +{ "all", ETH_RSS_ETH | ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP | >>>> +ETH_RSS_SCTP | ETH_RSS_L2_PAYLOAD | ETH_RSS_L2TPV3 | >>>> +ETH_RSS_ESP | ETH_RSS_AH | ETH_RSS_PFCP}, >>>> { "none", 0 }, >>>> +{ "eth", ETH_RSS_ETH }, >>>> +{ "l2-src-only", ETH_RSS_L2_SRC_ONLY }, >>>> +{ "l2-dst-only", ETH_RSS_L2_DST_ONLY }, >>>> +{ "s-vlan", ETH_RSS_S_VLAN }, >>>> +{ "c-vlan", ETH_RSS_C_VLAN }, >>>> { "ipv4", ETH_RSS_IPV4 }, >>>> { "ipv4-frag", ETH_RSS_FRAG_IPV4 }, >>>> { "ipv4-tcp", ETH_RSS_NONFRAG_IPV4_TCP }, @@ -108,6 +113,10 >>>> @@ const struct rss_type_info rss_type_table[] = { >>>> { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, >>>> { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, >>>> { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, >>>> +{ "l2tpv3", ETH_RSS_L2TPV3 }, >>>> +{ "esp", ETH_RSS_ESP }, >>>> +{ "ah", ETH_RSS_AH }, >>>> +{ "pfcp", ETH_RSS_PFCP }, >>>> { NULL, 0 }, >>>> }; >>>> >>>> -- >>>> 2.20.1 >>> Regards, >>> >>> Bernard.