net/mlx5: fix the validation of the sample encap action
Checks
Commit Message
The flow sample/mirror action includes sub-actions for the
duplicated packet.
In SW steering case, dv_flow_en=1, there is a FW limitation
that forces configuring also encap action when port action
for the wire port is configured in the duplicated packet's
sub-actions.
The driver did a wrong validation for the above limitation
and forced other actions instead of encap for the wire port.
Force only encap action in case of wire port.
This patch fixes the wrongly checking for the sample encap action.
Fixes: a8697f50f50f ("net/mlx5: fix E-Switch mirror flow rule validation")
Cc: stable@dpdk.org
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_dv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
Hi,
> -----Original Message-----
> From: Jiawei(Jonny) Wang <jiaweiw@nvidia.com>
> Sent: Tuesday, November 7, 2023 5:08 PM
> To: Suanming Mou <suanmingm@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Matan Azrad <matan@nvidia.com>; Ori Kam
> <orika@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>;
> stable@dpdk.org
> Subject: [PATCH] net/mlx5: fix the validation of the sample encap action
>
> The flow sample/mirror action includes sub-actions for the
> duplicated packet.
> In SW steering case, dv_flow_en=1, there is a FW limitation
> that forces configuring also encap action when port action
> for the wire port is configured in the duplicated packet's
> sub-actions.
>
> The driver did a wrong validation for the above limitation
> and forced other actions instead of encap for the wire port.
> Force only encap action in case of wire port.
>
> This patch fixes the wrongly checking for the sample encap action.
>
> Fixes: a8697f50f50f ("net/mlx5: fix E-Switch mirror flow rule validation")
> Cc: stable@dpdk.org
>
> Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -8721,7 +8721,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
RTE_FLOW_ERROR_TYPE_ACTION, NULL,
"mirror to rep port with encap is not supported");
} else {
- if ((sub_action_flags & ~MLX5_FLOW_ACTION_ENCAP) &&
+ if (!(sub_action_flags & MLX5_FLOW_ACTION_ENCAP) &&
(action_flags & MLX5_FLOW_ACTION_JUMP))
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_ACTION, NULL,