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]>


Reply via email to