net: bridge: mst: Multiple Spanning Tree (MST) mode
Allow the user to switch from the current per-VLAN STP mode to an MST mode. Up to this point, per-VLAN STP states where always isolated from each other. This is in contrast to the MSTP standard (802.1Q-2018, Clause 13.5), where VLANs are grouped into MST instances (MSTIs), and the state is managed on a per-MSTI level, rather that at the per-VLAN level. Perhaps due to the prevalence of the standard, many switching ASICs are built after the same model. Therefore, add a corresponding MST mode to the bridge, which we can later add offloading support for in a straight-forward way. For now, all VLANs are fixed to MSTI 0, also called the Common Spanning Tree (CST). That is, all VLANs will follow the port-global state. Upcoming changes will make this actually useful by allowing VLANs to be mapped to arbitrary MSTIs and allow individual MSTI states to be changed. Signed-off-by:Tobias Waldekranz <tobias@waldekranz.com> Acked-by:
Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by:
Jakub Kicinski <kuba@kernel.org>
Showing
- include/uapi/linux/if_bridge.h 1 addition, 0 deletionsinclude/uapi/linux/if_bridge.h
- net/bridge/Makefile 1 addition, 1 deletionnet/bridge/Makefile
- net/bridge/br.c 5 additions, 0 deletionsnet/bridge/br.c
- net/bridge/br_input.c 15 additions, 2 deletionsnet/bridge/br_input.c
- net/bridge/br_mst.c 87 additions, 0 deletionsnet/bridge/br_mst.c
- net/bridge/br_private.h 37 additions, 0 deletionsnet/bridge/br_private.h
- net/bridge/br_stp.c 6 additions, 0 deletionsnet/bridge/br_stp.c
- net/bridge/br_vlan.c 19 additions, 1 deletionnet/bridge/br_vlan.c
- net/bridge/br_vlan_options.c 5 additions, 0 deletionsnet/bridge/br_vlan_options.c
Please register or sign in to comment