net/mlx5e: Enable TC offload for egress MACVLAN
authorDima Chumak <dchumak@nvidia.com>
Wed, 4 Aug 2021 07:33:13 +0000 (10:33 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 24 Sep 2021 18:46:56 +0000 (11:46 -0700)
Support offloading of TC rules that mirror/redirect egress traffic to a
MACVLAN device, which is attached to mlx5 representor net device.

Signed-off-by: Dima Chumak <dchumak@nvidia.com>
Reviewed-by: Vlad Buslov <vladbu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

index 07ab02f..0e03cef 100644 (file)
@@ -39,6 +39,7 @@
 #include <linux/rhashtable.h>
 #include <linux/refcount.h>
 #include <linux/completion.h>
+#include <linux/if_macvlan.h>
 #include <net/tc_act/tc_pedit.h>
 #include <net/tc_act/tc_csum.h>
 #include <net/psample.h>
@@ -3907,6 +3908,9 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
                                                return err;
                                }
 
+                               if (netif_is_macvlan(out_dev))
+                                       out_dev = macvlan_dev_real_dev(out_dev);
+
                                err = verify_uplink_forwarding(priv, flow, out_dev, extack);
                                if (err)
                                        return err;