[PATCH 22.11] net/mlx5: fix control flow leakage for external SQ

Kevin Traynor ktraynor at redhat.com
Fri Nov 21 15:16:28 CET 2025


On 18/11/2025 16:51, Viacheslav Ovsiienko wrote:
> [ upstream commit 3bf9f0f9f0beb8dcd4f3b316c3216a87bc9ab49f ]
> 
> There is the private API rte_pmd_mlx5_external_sq_enable(),
> that allows application to create the Send Queue (SQ) on its own
> and then enable this queue usage as "external SQ".
> 
> On this enabling call some implicit flows are created to provide
> compliant SQs behavior - copy metadata register, forward queue
> originated packet to correct VF, etc.
> 
> These implicit flows are marked as "external" ones, and there is
> no cleanup on device start and stop for this kind of flows.
> Also, PMD has no knowledge if external SQ is still in use by
> application and implicit cleanup can not be performed.
> 
> As a result, on multiple device start/stop cycles application
> re-creates and re-enables many external SQs, causing implicit
> flow tables overflow.
> 
> To resolve this issue the rte_pmd_mlx5_external_sq_disable()
> API is provided, that allows to application to notify PMD
> the external SQ is not in usage anymore and related implicit
> flows can be dismissed.
> 
> Fixes: 26e1eaf2dac4 ("net/mlx5: support device control for E-Switch default rule")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
> Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
> ---
>  drivers/net/mlx5/mlx5_flow.h    |  12 ++--
>  drivers/net/mlx5/mlx5_flow_hw.c | 106 +++++++++++++++++++++++++++++++-
>  drivers/net/mlx5/mlx5_trigger.c |   2 +-
>  drivers/net/mlx5/mlx5_txq.c     |  54 ++++++++++++++--
>  drivers/net/mlx5/rte_pmd_mlx5.h |  18 ++++++
>  drivers/net/mlx5/version.map    |   1 +
>  6 files changed, 181 insertions(+), 12 deletions(-)
> 
Hi Slava,

I applied this to 24.11 branch with a small rebase, but it's causing
build errors, so I think it will need a dedicated 24.11 backport.

thanks,
Kevin.




More information about the stable mailing list