net/mlx5: fix mark enabling for Rx
authorRaja Zidane <rzidane@nvidia.com>
Sun, 16 Jan 2022 15:23:47 +0000 (15:23 +0000)
committerRaslan Darawsheh <rasland@nvidia.com>
Wed, 26 Jan 2022 16:41:11 +0000 (17:41 +0100)
commit082becbf1f35bda03a9ad80fcd7fe4afe3aea7be
tree7a92db971939668434ac030e0fc384d0052cdff4
parent2eb92b0fbbabcb1fb49d2006de7682cca80ebea7
net/mlx5: fix mark enabling for Rx

To optimize datapath, the mlx5 pmd checked for mark action on flow
creation, and flagged possible destination rxqs (through queue/RSS
actions), then it enabled the mark action logic only for flagged rxqs.

Mark action didn't work if no queue/rss action was in the same flow,
even when the user use multi-group logic to manage the flows.
So, if mark action is performed in group X and the packet is moved to
group Y > X when the packet is forwarded to Rx queues, SW did not get
the mark ID to the mbuf.

Flag Rx datapath to report mark action for any queue when the driver
detects the first mark action after dev_start operation.

Fixes: 8e61555657b2 ("net/mlx5: fix shared RSS and mark actions combination")
Cc: stable@dpdk.org
Signed-off-by: Raja Zidane <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_flow.c
drivers/net/mlx5/mlx5_flow.h
drivers/net/mlx5/mlx5_flow_dv.c
drivers/net/mlx5/mlx5_flow_verbs.c
drivers/net/mlx5/mlx5_rx.h