Re: [PATCH v2 net-next 01/10] net: bridge: mst: Multiple Spanning Tree (MST) mode

From: Tobias Waldekranz
Date: Mon Mar 07 2022 - 09:54:16 EST


On Wed, Mar 02, 2022 at 00:01, Nikolay Aleksandrov <razor@xxxxxxxxxxxxx> wrote:
> On 1 March 2022 11:03:12 CET, Tobias Waldekranz <tobias@xxxxxxxxxxxxxx> wrote:
>>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@xxxxxxxxxxxxxx>
>>---
>> include/uapi/linux/if_link.h | 1 +
>> net/bridge/Makefile | 2 +-
>> net/bridge/br_input.c | 17 +++++++-
>> net/bridge/br_mst.c | 83 ++++++++++++++++++++++++++++++++++++
>> net/bridge/br_netlink.c | 14 +++++-
>> net/bridge/br_private.h | 26 +++++++++++
>> net/bridge/br_stp.c | 3 ++
>> net/bridge/br_vlan.c | 20 ++++++++-
>> net/bridge/br_vlan_options.c | 5 +++
>> 9 files changed, 166 insertions(+), 5 deletions(-)
>> create mode 100644 net/bridge/br_mst.c
>>
>
> Hi,
> As I mentioned in another review, I'm currently traveling and will have pc access
> end of this week (Sun), I'll try to review the set as much as I can through my phone in the
> meantime. Thanks for reworking it, generally looks good.
> A few comments below,
>
>
>>diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
>>index e315e53125f4..7e0a653aafa3 100644
>>--- a/include/uapi/linux/if_link.h
>>+++ b/include/uapi/linux/if_link.h
>>@@ -482,6 +482,7 @@ enum {
>> IFLA_BR_VLAN_STATS_PER_PORT,
>> IFLA_BR_MULTI_BOOLOPT,
>> IFLA_BR_MCAST_QUERIER_STATE,
>>+ IFLA_BR_MST_ENABLED,
>
> Please use the boolopt api for new bridge boolean options like this one.

Ahh, I was not aware of that. Will change it in v3. Thanks.