[dpdk-dev] [PATCH v2] net/i40e: fix set rss hash function invalid

Xing, Beilei beilei.xing at intel.com
Mon Jun 21 09:14:00 CEST 2021



> -----Original Message-----
> From: Yang, SteveX <stevex.yang at intel.com>
> Sent: Friday, June 11, 2021 2:55 PM
> To: dev at dpdk.org
> Cc: Xing, Beilei <beilei.xing at intel.com>; Yang, SteveX
> <stevex.yang at 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.yang at 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



More information about the dev mailing list