Skip to content

Commit

Permalink
net/hns3: fix RSS key with null
Browse files Browse the repository at this point in the history
[ upstream commit e995c91 ]

Since the patch '1848b117' has initialized the variable 'key' in
'struct rte_flow_action_rss' with 'NULL', the PMD will use the
default RSS key when create the first RSS rule with NULL RSS key.
Then, if create a repeated RSS rule with the above, it will not
identify duplicate rules and return an error message.

To solve the preceding problem, determine whether the current RSS keys
are the same based on whether the length of key_len of rss is 0.

Fixes: 1848b11 ("app/testpmd: fix RSS key for flow API RSS rule")

Signed-off-by: Lijun Ou <oulijun@huawei.com>
  • Loading branch information
oulijun authored and kevintraynor committed Feb 21, 2022
1 parent d703307 commit 9b1f69f
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions drivers/net/hns3/hns3_flow.c
Expand Up @@ -1238,6 +1238,7 @@ static bool
hns3_action_rss_same(const struct rte_flow_action_rss *comp,
const struct rte_flow_action_rss *with)
{
bool rss_key_is_same;
bool func_is_same;

/*
Expand All @@ -1254,11 +1255,16 @@ hns3_action_rss_same(const struct rte_flow_action_rss *comp,
func_is_same = (with->func != RTE_ETH_HASH_FUNCTION_DEFAULT) ?
(comp->func == with->func) : true;

return (func_is_same &&
if (with->key_len == 0 || with->key == NULL)
rss_key_is_same = 1;
else
rss_key_is_same = comp->key_len == with->key_len &&
!memcmp(comp->key, with->key, with->key_len);

return (func_is_same && rss_key_is_same &&
comp->types == (with->types & HNS3_ETH_RSS_SUPPORT) &&
comp->level == with->level && comp->key_len == with->key_len &&
comp->level == with->level &&
comp->queue_num == with->queue_num &&
!memcmp(comp->key, with->key, with->key_len) &&
!memcmp(comp->queue, with->queue,
sizeof(*with->queue) * with->queue_num));
}
Expand Down

0 comments on commit 9b1f69f

Please sign in to comment.