On Mon, Jun 15, 2026 at 12:01:58PM +0100, Anatoly Burakov wrote:
> Due to recent refactors and code unification, there are now the following
> properties of RSS queue list that can be checked by common infrastructure:
> 
> - Monotony (i.e. queue indices always increase, never decrease)
> - No duplication (i.e. can't have the same index specified twice)
> - Contiguousness (i.e. can't have holes in the queue list)
> 
> The latter is an optional feature that can be enabled with a flag. However,
> previous hash code only enforced contiguousness for queue *regions* but not
> queue *lists*, whereas after the refactor, all queue lists were required to
> be contiguous. This is an unnecessary restriction, and it breaks backwards
> compatibility.
> 
> Fix it by only specifying contiguousness requirement for the VLAN branch
> where we are actually looking for a queue *region* not queue *list*.
> 
> 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 (with corrected fixline commit id).
Thanks,
/Bruce


>  drivers/net/intel/i40e/i40e_hash.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/intel/i40e/i40e_hash.c 
> b/drivers/net/intel/i40e/i40e_hash.c
> index 3c1302469c..8b80d0a91c 100644
> --- a/drivers/net/intel/i40e/i40e_hash.c
> +++ b/drivers/net/intel/i40e/i40e_hash.c
> @@ -1238,7 +1238,6 @@ i40e_hash_parse(struct rte_eth_dev *dev,
>               },
>               .max_actions = 1,
>               .driver_ctx = dev->data->dev_private,
> -             .rss_queues_contig = true,
>               /* each pattern type will add specific check function */
>       };
>       const struct rte_flow_action_rss *rss_act;
> @@ -1265,6 +1264,8 @@ i40e_hash_parse(struct rte_eth_dev *dev,
>       /* VLAN path */
>       if (is_vlan) {
>               ac_param.check = i40e_hash_validate_queue_region;
> +             /* queue regions must be contiguous */
> +             ac_param.rss_queues_contig = true;
>               ret = ci_flow_check_actions(actions, &ac_param, 
> &parsed_actions, error);
>               if (ret)
>                       return ret;
> -- 
> 2.47.3
> 

Reply via email to