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: sta...@dpdk.org Signed-off-by: Jiawei Wang <jiaw...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- drivers/net/mlx5/mlx5_flow_dv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 154e509707..9753af2cb1 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -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, -- 2.18.1