On 03/06/2026 20:33, Andy Roulin wrote:
Add support for the IFLA_BR_STP_MODE bridge attribute that allows
userspace to explicitly select the STP mode:
- auto (0): default, try /sbin/bridge-stp helper in init_net
- user (1): directly enable userspace STP without the helper,
works in any network namespace
- kernel (2): directly enable kernel STP without the helper
A shared file-scope stp_modes[] table indexed by BR_STP_MODE_* drives
both directions: parsing uses parse_one_of(), printing goes through a
stp_mode_to_str() helper that returns "(unknown)" for modes not yet
known to iproute2, keeping the JSON type of stp_mode consistently a
string.
Example usage:
ip link set br0 type bridge stp_mode user
ip link set br0 type bridge stp_state 1
Link:
https://lore.kernel.org/netdev/[email protected]/
Assisted-by: Claude:claude-opus-4-7
Reviewed-by: Ido Schimmel <[email protected]>
Signed-off-by: Andy Roulin <[email protected]>
---
Notes:
v2:
* Use a single file-scope stp_modes[] table indexed by
BR_STP_MODE_* for both parse and show, instead of an ad-hoc
strcmp ladder in parse and a separate local table in show
(David Ahern).
* Switch parsing to the shared parse_one_of() helper. Drop the
fallback that accepted numeric values on the parse side.
* Print path always returns a string: keep the JSON type of
stp_mode stable and fall back to "(unknown)" for unrecognized
values via a stp_mode_to_str() helper matching the style of
validate_to_str() in ip/ipmacsec.c (Ido Schimmel).
v1: https://lore.kernel.org/netdev/[email protected]/
ip/iplink_bridge.c | 33 +++++++++++++++++++++++++++++++++
man/man8/ip-link.8.in | 32 ++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+)
Reviewed-by: Nikolay Aleksandrov <[email protected]>