Currently, the set VLAN ID header modify action has already got the action pointer with offset from the header modify action array, but the configuration saves the detail to the memory of action with the offset again. It causes double offset to set the VLAN ID action to the wrong place in the header modify array.
Remove the offset when get the action pointer to fix that issue. Fixes: 5f163d520cff ("net/mlx5: support modify VLAN ID on existing VLAN header") Cc: sta...@dpdk.org Signed-off-by: Suanming Mou <suanmi...@mellanox.com> Acked-by: Dekel Peled <dek...@mellanox.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 359a037..5950274 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -637,7 +637,7 @@ struct field_modify_info modify_tcp[] = { const struct rte_flow_action_of_set_vlan_vid *conf = (const struct rte_flow_action_of_set_vlan_vid *)(action->conf); int i = resource->actions_num; - struct mlx5_modification_cmd *actions = &resource->actions[i]; + struct mlx5_modification_cmd *actions = resource->actions; struct field_modify_info *field = modify_vlan_out_first_vid; if (i >= MLX5_MAX_MODIFY_NUM) -- 1.8.3.1