net/mlx5e: TC, Set flow attr ip_version earlier
authorRoi Dayan <roid@nvidia.com>
Tue, 9 Nov 2021 12:07:49 +0000 (14:07 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 3 Dec 2021 00:53:16 +0000 (16:53 -0800)
Setting flow attr ip_version is not related to parsing tc flow actions.
It needs to be set after parsing flower matches which changes the spec.
So move it outside parse_tc_fdb_actions() and set it in
__mlx5e_add_fdb_flow().

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Oz Shlomo <ozsh@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

index c7f1c93709cdfb1dbb4fd52d5e65958e993a2dd8..3e3419190c55c37e5c764b0741117f94b10c87e2 100644 (file)
@@ -4251,9 +4251,6 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
                return -EOPNOTSUPP;
        }
 
-       /* always set IP version for indirect table handling */
-       attr->ip_version = mlx5e_tc_get_ip_version(&parse_attr->spec, true);
-
        if (MLX5_CAP_GEN(esw->dev, prio_tag_required) &&
            attr->action & MLX5_FLOW_CONTEXT_ACTION_VLAN_POP) {
                /* For prio tag mode, replace vlan pop with rewrite vlan prio
@@ -4488,6 +4485,9 @@ __mlx5e_add_fdb_flow(struct mlx5e_priv *priv,
        if (err)
                goto err_free;
 
+       /* always set IP version for indirect table handling */
+       flow->attr->ip_version = mlx5e_tc_get_ip_version(&parse_attr->spec, true);
+
        err = parse_tc_fdb_actions(priv, &rule->action, flow, extack);
        if (err)
                goto err_free;