net: bridge: mst: Notify switchdev drivers of VLAN MSTI migrations
Whenever a VLAN moves to a new MSTI, send a switchdev notification so that switchdevs can track a bridge's VID to MSTI mappings. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
87c167bb94
commit
6284c723d9
@@ -69,13 +69,26 @@ static void br_mst_vlan_sync_state(struct net_bridge_vlan *pv, u16 msti)
|
||||
|
||||
int br_mst_vlan_set_msti(struct net_bridge_vlan *mv, u16 msti)
|
||||
{
|
||||
struct switchdev_attr attr = {
|
||||
.id = SWITCHDEV_ATTR_ID_VLAN_MSTI,
|
||||
.orig_dev = mv->br->dev,
|
||||
.u.vlan_msti = {
|
||||
.vid = mv->vid,
|
||||
.msti = msti,
|
||||
},
|
||||
};
|
||||
struct net_bridge_vlan_group *vg;
|
||||
struct net_bridge_vlan *pv;
|
||||
struct net_bridge_port *p;
|
||||
int err;
|
||||
|
||||
if (mv->msti == msti)
|
||||
return 0;
|
||||
|
||||
err = switchdev_port_attr_set(mv->br->dev, &attr, NULL);
|
||||
if (err && err != -EOPNOTSUPP)
|
||||
return err;
|
||||
|
||||
mv->msti = msti;
|
||||
|
||||
list_for_each_entry(p, &mv->br->port_list, list) {
|
||||
|
||||
Reference in New Issue
Block a user