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 604E0A046B for ; Thu, 25 Jul 2019 07:40:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2B2BD1C27B; Thu, 25 Jul 2019 07:40:28 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 3DEE91C279 for ; Thu, 25 Jul 2019 07:40:25 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jul 2019 22:40:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,305,1559545200"; d="scan'208";a="170142060" Received: from npg-dpdk-cvl-simeisu-116d153.sh.intel.com ([10.67.116.153]) by fmsmga008.fm.intel.com with ESMTP; 24 Jul 2019 22:40:23 -0700 From: simei To: qi.z.zhang@intel.com, jingjing.wu@intel.com, adrien.mazarguil@6wind.com Cc: dev@dpdk.org, simei.su@intel.com Date: Thu, 25 Jul 2019 12:57:26 +0800 Message-Id: <1564030646-73951-3-git-send-email-simei.su@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1564030646-73951-1-git-send-email-simei.su@intel.com> References: <1564030646-73951-1-git-send-email-simei.su@intel.com> Subject: [dpdk-dev] [PATCH 2/2] app/testpmd: add symmetric toeplitz hash support 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" From: Simei Su This patch adds command line support for Symmetric Toeplitz hash configuration. Signed-off-by: Simei Su --- app/test-pmd/cmdline.c | 12 +++++++++--- app/test-pmd/cmdline_flow.c | 12 +++++++++++- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index e7c4bee..29babe1 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -1078,7 +1078,7 @@ static void cmd_help_long_parsed(void *parsed_result, "get_hash_global_config (port_id)\n" " Get the global configurations of hash filters.\n\n" - "set_hash_global_config (port_id) (toeplitz|simple_xor|default)" + "set_hash_global_config (port_id) (toeplitz|simple_xor|symmetric_toeplitz|default)" " (ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|" "ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload)" " (enable|disable)\n" @@ -12131,6 +12131,9 @@ struct cmd_get_hash_global_config_result { case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR: printf("Hash function is Simple XOR\n"); break; + case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ: + printf("Hash function is Symmetric Toeplitz\n"); + break; default: printf("Unknown hash function\n"); break; @@ -12204,6 +12207,9 @@ struct cmd_set_hash_global_config_result { else if (!strcmp(res->hash_func, "simple_xor")) info.info.global_conf.hash_func = RTE_ETH_HASH_FUNCTION_SIMPLE_XOR; + else if (!strcmp(res->hash_func, "symmetric_toeplitz")) + info.info.global_conf.hash_func = + RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ; else if (!strcmp(res->hash_func, "default")) info.info.global_conf.hash_func = RTE_ETH_HASH_FUNCTION_DEFAULT; @@ -12233,7 +12239,7 @@ struct cmd_set_hash_global_config_result { port_id, UINT16); cmdline_parse_token_string_t cmd_set_hash_global_config_hash_func = TOKEN_STRING_INITIALIZER(struct cmd_set_hash_global_config_result, - hash_func, "toeplitz#simple_xor#default"); + hash_func, "toeplitz#simple_xor#symmetric_toeplitz#default"); cmdline_parse_token_string_t cmd_set_hash_global_config_flow_type = TOKEN_STRING_INITIALIZER(struct cmd_set_hash_global_config_result, flow_type, @@ -12247,7 +12253,7 @@ struct cmd_set_hash_global_config_result { .f = cmd_set_hash_global_config_parsed, .data = NULL, .help_str = "set_hash_global_config " - "toeplitz|simple_xor|default " + "toeplitz|simple_xor|symmetric_toeplitz|default " "ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|" "ipv6|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|" "l2_payload enable|disable", diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 201bd9d..9f1dc46 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -205,6 +205,7 @@ enum index { ACTION_RSS_FUNC_DEFAULT, ACTION_RSS_FUNC_TOEPLITZ, ACTION_RSS_FUNC_SIMPLE_XOR, + ACTION_RSS_FUNC_SYMMETRIC_TOEPLITZ, ACTION_RSS_TYPES, ACTION_RSS_TYPE, ACTION_RSS_KEY, @@ -2276,7 +2277,8 @@ static int comp_vc_action_rss_queue(struct context *, const struct token *, .next = NEXT(action_rss, NEXT_ENTRY(ACTION_RSS_FUNC_DEFAULT, ACTION_RSS_FUNC_TOEPLITZ, - ACTION_RSS_FUNC_SIMPLE_XOR)), + ACTION_RSS_FUNC_SIMPLE_XOR, + ACTION_RSS_FUNC_SYMMETRIC_TOEPLITZ)), }, [ACTION_RSS_FUNC_DEFAULT] = { .name = "default", @@ -2293,6 +2295,11 @@ static int comp_vc_action_rss_queue(struct context *, const struct token *, .help = "simple XOR hash function", .call = parse_vc_action_rss_func, }, + [ACTION_RSS_FUNC_SYMMETRIC_TOEPLITZ] = { + .name = "symmetric_toeplitz", + .help = "Symmetric Toeplitz hash function", + .call = parse_vc_action_rss_func, + }, [ACTION_RSS_LEVEL] = { .name = "level", .help = "encapsulation level for \"types\"", @@ -3312,6 +3319,9 @@ static int comp_vc_action_rss_queue(struct context *, const struct token *, case ACTION_RSS_FUNC_SIMPLE_XOR: func = RTE_ETH_HASH_FUNCTION_SIMPLE_XOR; break; + case ACTION_RSS_FUNC_SYMMETRIC_TOEPLITZ: + func = RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ; + break; default: return -1; } diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index cb83a3c..c608ada 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -3383,7 +3383,7 @@ set_hash_global_config Set the global configurations of hash filters:: - set_hash_global_config (port_id) (toeplitz|simple_xor|default) \ + set_hash_global_config (port_id) (toeplitz|simple_xor|symmetric_toeplitz|default) \ (ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|ipv6-frag| \ ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload|) \ (enable|disable) -- 1.8.3.1