mlxsw: spectrum: Reduce dependency between bridge and router code
Commit f40be47a3e
("mlxsw: spectrum_router: Do not force specific
configuration order") added a call from the routing code to the bridge
code in order to handle the case where VNI should be set on a FID
following the joining of the router port to the FID.
This is no longer required, as previous patches made VXLAN devices
explicitly take a reference on the FID and set VNI on it.
Therefore, remove the unnecessary call and simply have the RIF take a
reference on the FID without checking if VNI should also be set on it.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
578e55124c
commit
da1f9f8cb7
|
@ -468,10 +468,6 @@ int mlxsw_sp_bridge_vxlan_join(struct mlxsw_sp *mlxsw_sp,
|
||||||
struct netlink_ext_ack *extack);
|
struct netlink_ext_ack *extack);
|
||||||
void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp,
|
void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp,
|
||||||
const struct net_device *vxlan_dev);
|
const struct net_device *vxlan_dev);
|
||||||
struct mlxsw_sp_fid *mlxsw_sp_bridge_fid_get(struct mlxsw_sp *mlxsw_sp,
|
|
||||||
const struct net_device *br_dev,
|
|
||||||
u16 vid,
|
|
||||||
struct netlink_ext_ack *extack);
|
|
||||||
extern struct notifier_block mlxsw_sp_switchdev_notifier;
|
extern struct notifier_block mlxsw_sp_switchdev_notifier;
|
||||||
|
|
||||||
/* spectrum.c */
|
/* spectrum.c */
|
||||||
|
|
|
@ -7428,7 +7428,7 @@ mlxsw_sp_rif_vlan_fid_get(struct mlxsw_sp_rif *rif,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return mlxsw_sp_bridge_fid_get(rif->mlxsw_sp, br_dev, vid, extack);
|
return mlxsw_sp_fid_8021q_get(rif->mlxsw_sp, vid);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlxsw_sp_rif_vlan_fdb_del(struct mlxsw_sp_rif *rif, const char *mac)
|
static void mlxsw_sp_rif_vlan_fdb_del(struct mlxsw_sp_rif *rif, const char *mac)
|
||||||
|
@ -7519,7 +7519,7 @@ static struct mlxsw_sp_fid *
|
||||||
mlxsw_sp_rif_fid_fid_get(struct mlxsw_sp_rif *rif,
|
mlxsw_sp_rif_fid_fid_get(struct mlxsw_sp_rif *rif,
|
||||||
struct netlink_ext_ack *extack)
|
struct netlink_ext_ack *extack)
|
||||||
{
|
{
|
||||||
return mlxsw_sp_bridge_fid_get(rif->mlxsw_sp, rif->dev, 0, extack);
|
return mlxsw_sp_fid_8021d_get(rif->mlxsw_sp, rif->dev->ifindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlxsw_sp_rif_fid_fdb_del(struct mlxsw_sp_rif *rif, const char *mac)
|
static void mlxsw_sp_rif_fid_fdb_del(struct mlxsw_sp_rif *rif, const char *mac)
|
||||||
|
|
|
@ -2358,20 +2358,6 @@ void mlxsw_sp_bridge_vxlan_leave(struct mlxsw_sp *mlxsw_sp,
|
||||||
mlxsw_sp_fid_put(fid);
|
mlxsw_sp_fid_put(fid);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct mlxsw_sp_fid *mlxsw_sp_bridge_fid_get(struct mlxsw_sp *mlxsw_sp,
|
|
||||||
const struct net_device *br_dev,
|
|
||||||
u16 vid,
|
|
||||||
struct netlink_ext_ack *extack)
|
|
||||||
{
|
|
||||||
struct mlxsw_sp_bridge_device *bridge_device;
|
|
||||||
|
|
||||||
bridge_device = mlxsw_sp_bridge_device_find(mlxsw_sp->bridge, br_dev);
|
|
||||||
if (WARN_ON(!bridge_device))
|
|
||||||
return ERR_PTR(-EINVAL);
|
|
||||||
|
|
||||||
return bridge_device->ops->fid_get(bridge_device, vid, extack);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mlxsw_sp_switchdev_vxlan_addr_convert(const union vxlan_addr *vxlan_addr,
|
mlxsw_sp_switchdev_vxlan_addr_convert(const union vxlan_addr *vxlan_addr,
|
||||||
enum mlxsw_sp_l3proto *proto,
|
enum mlxsw_sp_l3proto *proto,
|
||||||
|
|
Loading…
Reference in New Issue