[dpdk-stable] [PATCH v3] net/i40e: fix set rss hash function invalid
Steve Yang
stevex.yang at intel.com
Mon Jun 21 10:03:42 CEST 2021
i40e can support following rss hash function types: default/toeplitz,
symmetric toeplitz, and simple_xor. However, when filter engine parses
pattern action, it only supports symmetric toeplitz & default.
Add simple_xor and toeplitz hash functions support when parsing pattern
action.
Fixes: ef4c16fd9148 ("net/i40e: refactor RSS flow")
Cc: stable at dpdk.org
Signed-off-by: Steve Yang <stevex.yang at intel.com>
---
v3:
- add Cc stable line.
v2:
- add the fix line.
- support simple_xor and toeplitz hash functions explicitly.
drivers/net/i40e/i40e_hash.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/net/i40e/i40e_hash.c b/drivers/net/i40e/i40e_hash.c
index b1cb24f437..0cef21c88f 100644
--- a/drivers/net/i40e/i40e_hash.c
+++ b/drivers/net/i40e/i40e_hash.c
@@ -1105,13 +1105,21 @@ i40e_hash_parse_pattern_act(const struct rte_eth_dev *dev,
NULL,
"RSS Queues not supported when pattern specified");
- if (rss_act->func == RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ)
+ switch (rss_act->func) {
+ case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ:
rss_conf->symmetric_enable = true;
- else if (rss_act->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
- return rte_flow_error_set(error, -EINVAL,
- RTE_FLOW_ERROR_TYPE_ACTION_CONF,
- NULL,
- "Only symmetric TOEPLITZ supported when pattern specified");
+ break;
+ case RTE_ETH_HASH_FUNCTION_DEFAULT:
+ case RTE_ETH_HASH_FUNCTION_TOEPLITZ:
+ case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR:
+ break;
+ default:
+ return rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ACTION_CONF,
+ NULL,
+ "RSS hash function not supported "
+ "when pattern specified");
+ }
if (!i40e_hash_validate_rss_types(rss_act->types))
return rte_flow_error_set(error, EINVAL,
--
2.27.0
More information about the stable
mailing list