net/mlx5e: Offload TC e-switch rules with egress LAG device
When parsing TC FDB actions, if the egress device is a bond/team net-device which enslaved the uplink representor of the e-switch, use the uplink representor as the destination in the HW rule. Signed-off-by: Rabie Loulou <rabiel@mellanox.com> Signed-off-by: Aviv Heller <avivh@mellanox.com> Reviewed-by: Roi Dayan <roid@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
491c37e49b
commit
7ba58ba7ba
@ -2574,6 +2574,15 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv, struct tcf_exts *exts,
|
||||
if (switchdev_port_same_parent_id(priv->netdev,
|
||||
out_dev) ||
|
||||
is_merged_eswitch_dev(priv, out_dev)) {
|
||||
struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
|
||||
struct net_device *uplink_dev = mlx5_eswitch_uplink_get_proto_dev(esw, REP_ETH);
|
||||
struct net_device *uplink_upper = netdev_master_upper_dev_get(uplink_dev);
|
||||
|
||||
if (uplink_upper &&
|
||||
netif_is_lag_master(uplink_upper) &&
|
||||
uplink_upper == out_dev)
|
||||
out_dev = uplink_dev;
|
||||
|
||||
out_priv = netdev_priv(out_dev);
|
||||
rpriv = out_priv->ppriv;
|
||||
attr->dests[attr->out_count].rep = rpriv->rep;
|
||||
|
Loading…
x
Reference in New Issue
Block a user