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 9F93EA04B5; Thu, 10 Sep 2020 03:53:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B66051B9B7; Thu, 10 Sep 2020 03:53:49 +0200 (CEST) Received: from huawei.com (szxga07-in.huawei.com [45.249.212.35]) by dpdk.org (Postfix) with ESMTP id B8B24255 for ; Thu, 10 Sep 2020 03:53:48 +0200 (CEST) Received: from DGGEMS402-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 33C79F12D9C0D07CB2DF; Thu, 10 Sep 2020 09:53:47 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS402-HUB.china.huawei.com (10.3.19.202) with Microsoft SMTP Server id 14.3.487.0; Thu, 10 Sep 2020 09:53:40 +0800 From: Lijun Ou To: , , , CC: , Date: Thu, 10 Sep 2020 09:51:18 +0800 Message-ID: <1599702678-11142-1-git-send-email-oulijun@huawei.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v3] app/testpmd: fix the default RSS key configuration 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" When a user runs a flow create cmd to configure an RSS rule with specifying the empty rss actions in testpmd, this mean that the flow gets the default RSS functions from the valid NIC default RSS hash key. However, the testpmd is not set the default RSS key incorrectly when RSS key is not specified in flow create cmd. the cmdline as flows: 1. first, startup testpmd: testpmd> show port 0 rss-hash key RSS functions: all ipv4-frag ipv4-other ipv6-frag ipv6-other ip RSS key: 6D5A56DA255B0EC24167253D43A38FB0D0CA2BCBAE7B30B477CB2DA38030F 20C6A42B73BBEAC01FA 2. create a rss rule testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss \ types ipv4-udp end queues end / end 3. show rss-hash key testpmd> show port 0 rss-hash key RSS functions: all ipv4-udp udp RSS key: 74657374706D6427732064656661756C74205253532068617368206B65792C206F 76657272696465 Now, it uses rte_eth_dev_rss_hash_conf_get to correctly the default rss key. the cmdline and result as flows: testpmd> show port 0 rss-hash key RSS functions: all ipv4-frag ipv4-other ipv6-frag ipv6-other ip RSS key: 6D5A56DA255B0EC24167253D43A38FB0D0CA2BCBAE7B30B477CB2DA38030F20C 6A42B73BBEAC01FA testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss \ types ipv4-udp end queues end / end testpmd> show port 0 rss-hash key RSS functions: all ipv4-udp udp RSS key: 6D5A56DA255B0EC24167253D43A38FB0D0CA2BCBAE7B30B477CB2DA38030F 20C6A42B73BBEAC01FA Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API") Cc: stable@dpdk.org Signed-off-by: Lijun Ou --- V2->V3: -fix checkpatch warning. V1->V2: -fix the commit. --- app/test-pmd/cmdline_flow.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 6263d30..e6648da 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -4312,6 +4312,7 @@ parse_vc_action_rss(struct context *ctx, const struct token *token, action_rss_data->queue[i] = i; if (!port_id_is_invalid(ctx->port, DISABLED_WARN) && ctx->port != (portid_t)RTE_PORT_ALL) { + struct rte_eth_rss_conf rss_conf = {0}; struct rte_eth_dev_info info; int ret2; @@ -4322,6 +4323,13 @@ parse_vc_action_rss(struct context *ctx, const struct token *token, action_rss_data->conf.key_len = RTE_MIN(sizeof(action_rss_data->key), info.hash_key_size); + + rss_conf.rss_key_len = sizeof(action_rss_data->key); + rss_conf.rss_key = action_rss_data->key; + ret2 = rte_eth_dev_rss_hash_conf_get(ctx->port, &rss_conf); + if (ret2 != 0) + return ret2; + action_rss_data->conf.key = rss_conf.rss_key; } action->conf = &action_rss_data->conf; return ret; -- 2.7.4