summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorTobias Waldekranz <tobias@waldekranz.com>2022-03-16 16:08:48 +0100
committerJakub Kicinski <kuba@kernel.org>2022-03-18 00:49:58 +0100
commit7ae9147f4312903b97eae231c48571bbd95dc63f (patch)
treefb9de8088ce277d63ab836a2a7905e28dea2dd05 /include/net
parentnet: bridge: mst: Notify switchdev drivers of VLAN MSTI migrations (diff)
downloadlinux-7ae9147f4312903b97eae231c48571bbd95dc63f.tar.xz
linux-7ae9147f4312903b97eae231c48571bbd95dc63f.zip
net: bridge: mst: Notify switchdev drivers of MST state changes
Generate a switchdev notification whenever an MST state changes. This notification is keyed by the VLANs MSTI rather than the VID, since multiple VLANs may share the same MST instance. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/switchdev.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/net/switchdev.h b/include/net/switchdev.h
index 53dfa0f7cf5b..aa0171d5786d 100644
--- a/include/net/switchdev.h
+++ b/include/net/switchdev.h
@@ -19,6 +19,7 @@
enum switchdev_attr_id {
SWITCHDEV_ATTR_ID_UNDEFINED,
SWITCHDEV_ATTR_ID_PORT_STP_STATE,
+ SWITCHDEV_ATTR_ID_PORT_MST_STATE,
SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS,
SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS,
SWITCHDEV_ATTR_ID_PORT_MROUTER,
@@ -32,6 +33,11 @@ enum switchdev_attr_id {
SWITCHDEV_ATTR_ID_VLAN_MSTI,
};
+struct switchdev_mst_state {
+ u16 msti;
+ u8 state;
+};
+
struct switchdev_brport_flags {
unsigned long val;
unsigned long mask;
@@ -50,6 +56,7 @@ struct switchdev_attr {
void (*complete)(struct net_device *dev, int err, void *priv);
union {
u8 stp_state; /* PORT_STP_STATE */
+ struct switchdev_mst_state mst_state; /* PORT_MST_STATE */
struct switchdev_brport_flags brport_flags; /* PORT_BRIDGE_FLAGS */
bool mrouter; /* PORT_MROUTER */
clock_t ageing_time; /* BRIDGE_AGEING_TIME */