When an user runs a flow create cmd to configure an RSS rule without specifying the empty rss actions in testpmd, this mean that the flow gets the default RSS functions. However, the testpmd is not set the default RSS key incorrectly when RSS key is specified in flow create cmd.
Now, it uses rte_eth_dev_rss_hash_conf_get to correctly the default rss key. Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API") Cc: sta...@dpdk.org Signed-off-by: Lijun Ou <ouli...@huawei.com> --- 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 4e2006c..7eddde4 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -4168,6 +4168,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; @@ -4178,6 +4179,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