> -----Original Message----- > From: Yang, SteveX <stevex.y...@intel.com> > Sent: Friday, June 11, 2021 2:55 PM > To: dev@dpdk.org > Cc: Xing, Beilei <beilei.x...@intel.com>; Yang, SteveX > <stevex.y...@intel.com> > Subject: [PATCH v2] net/i40e: fix set rss hash function invalid > > 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") Why didn't CC stable? > > Signed-off-by: Steve Yang <stevex.y...@intel.com> > --- > 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