summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaor Dickman <maord@nvidia.com>2023-03-14 08:42:33 +0300
committerJakub Kicinski <kuba@kernel.org>2023-03-16 08:12:09 +0300
commitd5d006bb27ad9d408074eef7e091fbd87335f913 (patch)
tree1df4b552fd0b3346749717394bb6cdc6e738534d
parent244fd698207f0baec062da4737e31c76b1be2371 (diff)
downloadlinux-d5d006bb27ad9d408074eef7e091fbd87335f913.tar.xz
net/mlx5e: Enable TC offload for ingress MACVLAN over bond
Support offloading of TC rules that filter ingress traffic from a MACVLAN device, which is attached to bond device. 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-15-saeed@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
index b4af006dc494..19c4a83982ca 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
@@ -433,6 +433,7 @@ mlx5e_rep_check_indr_block_supported(struct mlx5e_rep_priv *rpriv,
{
struct mlx5e_priv *priv = netdev_priv(rpriv->netdev);
struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
+ struct net_device *macvlan_real_dev;
if (f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS &&
f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS)
@@ -450,7 +451,11 @@ mlx5e_rep_check_indr_block_supported(struct mlx5e_rep_priv *rpriv,
return false;
}
- if (macvlan_dev_real_dev(netdev) == rpriv->netdev)
+ macvlan_real_dev = macvlan_dev_real_dev(netdev);
+
+ if (macvlan_real_dev == rpriv->netdev)
+ return true;
+ if (netif_is_bond_master(macvlan_real_dev))
return true;
}