On Wed, Jun 17, 2026 at 11:40:26AM +0100, Anatoly Burakov wrote:
> After the recent refactor, global RSS configuration started rejecting the
> RSS types parameter because it was not used for anything.
> 
> However, because testpmd will specify RSS types by default if omitted from
> the flow command (i.e. `actions rss queues 0 1 end` vs `actions rss queues
> 0 1 end types end`), RSS action based flows that are created without
> mentioning RSS types will still have RSS types as non-zero, causing flow
> creation failures not directly related to the pattern.
> 
> Fix it by printing a warning but allowing spurious RSS types as opposed to
> rejecting it outright.
> 
> Fixes: 0185303c2e24 ("net/i40e: refactor RSS flow parameter checks")
> 
> Signed-off-by: Anatoly Burakov <[email protected]>
> ---

Acked-by: Bruce Richardson <[email protected]>

Applied to dpdk-next-net-intel.
Thanks,
/Bruce

>  drivers/net/intel/i40e/i40e_hash.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/intel/i40e/i40e_hash.c 
> b/drivers/net/intel/i40e/i40e_hash.c
> index 8b80d0a91c..5a6543a9ec 100644
> --- a/drivers/net/intel/i40e/i40e_hash.c
> +++ b/drivers/net/intel/i40e/i40e_hash.c
> @@ -1089,12 +1089,18 @@ i40e_hash_validate_rss_common(const struct 
> rte_flow_action_rss *rss_act,
>                               "Symmetric hash function not supported without 
> specific patterns");
>       }
>  
> -     /* hash types are not supported for global RSS configuration */
> -     if (rss_act->types != 0) {
> -             return rte_flow_error_set(error, EINVAL,
> -                             RTE_FLOW_ERROR_TYPE_ACTION_CONF, rss_act,
> -                             "RSS types not supported without a pattern");
> -     }
> +     /*
> +      * When RSS types is not specified in testpmd, it will set up a default
> +      * RSS types value for the flow. Even though no hash engine part calling
> +      * this particular function will use RSS types parameter for anything,
> +      * we cannot reject having it because it is extra effort for testpmd
> +      * user to avoid specifying it.
> +      *
> +      * So, instead, accept types value even though we are not using it for
> +      * anything, but produce a warning for the user.
> +      */
> +     if (rss_act->types != 0)
> +             PMD_DRV_LOG(WARNING, "RSS types specified but will not be 
> used");
>  
>       /* check RSS key length if it is specified */
>       if (rss_act->key_len != 0 && rss_act->key_len != I40E_RSS_KEY_LEN) {
> -- 
> 2.47.3
> 

Reply via email to