From 581476d6417f02d1713853a728e44777d36ae551 Mon Sep 17 00:00:00 2001 From: Dekel Peled Date: Wed, 22 Jan 2020 16:27:20 +0200 Subject: [PATCH] net/mlx5: fix pop VLAN action validation Validation function of 'POP VLAN' action includes check for other 'POP VLAN' actions present in flow. It doesn't check for 'PUSH VLAN' actions present in flow. This patch adds check for 'PUSH VLAN' actions present in flow. Fixes: b41e47da2592 ("net/mlx5: support pop flow action on VLAN header") Cc: stable@dpdk.org Signed-off-by: Dekel Peled Acked-by: Ori Kam Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 9dc08cec97..de4b765a0e 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -1640,17 +1640,10 @@ flow_dv_validate_action_pop_vlan(struct rte_eth_dev *dev, NULL, "pop vlan action not supported for " "egress"); - /* - * Check for inconsistencies: - * fail strip_vlan in a flow that matches packets without VLAN tags. - * fail strip_vlan in a flow that matches packets without explicitly a - * matching on VLAN tag ? - */ - if (action_flags & MLX5_FLOW_ACTION_OF_POP_VLAN) + if (action_flags & MLX5_FLOW_VLAN_ACTIONS) return rte_flow_error_set(error, ENOTSUP, - RTE_FLOW_ERROR_TYPE_UNSPECIFIED, - NULL, - "no support for multiple vlan pop " + RTE_FLOW_ERROR_TYPE_ACTION, action, + "no support for multiple VLAN " "actions"); if (!(item_flags & MLX5_FLOW_LAYER_OUTER_VLAN)) return rte_flow_error_set(error, ENOTSUP, -- 2.20.1