net/mlx5e: Enable TC offload for egress MACVLAN over bond
authorMaor Dickman <maord@nvidia.com>
Tue, 14 Mar 2023 05:42:34 +0000 (22:42 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 16 Mar 2023 05:12:09 +0000 (22:12 -0700)
Support offloading of TC rules that mirror/redirect egress traffic to a
MACVLAN device, which is attached to bond device which master mlx5 devices.

Signed-off-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Link: https://lore.kernel.org/r/20230314054234.267365-16-saeed@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/mirred.c

index 07cc655..291193f 100644 (file)
@@ -234,6 +234,9 @@ parse_mirred(struct mlx5e_tc_act_parse_state *parse_state,
        if (mlx5_lag_mpesw_do_mirred(priv->mdev, out_dev, extack))
                return -EOPNOTSUPP;
 
+       if (netif_is_macvlan(out_dev))
+               out_dev = macvlan_dev_real_dev(out_dev);
+
        out_dev = get_fdb_out_dev(uplink_dev, out_dev);
        if (!out_dev)
                return -ENODEV;
@@ -250,9 +253,6 @@ parse_mirred(struct mlx5e_tc_act_parse_state *parse_state,
                        return err;
        }
 
-       if (netif_is_macvlan(out_dev))
-               out_dev = macvlan_dev_real_dev(out_dev);
-
        err = verify_uplink_forwarding(priv, attr, out_dev, extack);
        if (err)
                return err;