MSTPCTL-UTILS-INTERFACES(5)

πŸ“¦ version 0.2.0, in nixos 26.05, nixpkgs unstable, ubuntu stonking

✨ MSTPCTL-UTILS-INTERFACES ✨ (section 5, bestie, "File formats" vibes)

okay so this is mstpctl-utils-interfaces β€” the page that tells you how the mstpctl-utils girls extend the interfaces(5) file format. yes she's a section 5 girlie, a literal file-format queen πŸ’…


🌸 NAME 🌸

mstpctl-utils-interfaces</p> β€” the mstpctl-utils extensions for the interfaces(5) file format, no cap 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

So /etc/network/interfaces is where all your network interface configuration info lives for ifup(8) and ifdown(8). This manpage is literally just about the mstpctl extensions to the standard interfaces(5) file format. periodt.

The main character of this whole thing is the mstpctl_ports option. With it you're saying "hey, this interface is a bridge, and here's what ports it has." Spanning Tree protocol parameters can also be specified. Currently multiple spanning trees are NOT supported by this extension (even though mstpd/mstpctl supports MSTP without restrictions). Which means every setting here gets applied to the CIST tree. iykyk πŸ™ˆ

Let's see it with an example, because reading is hard and examples slay:

auto br0
iface br0 inet static
    address 12.0.0.3
    netmask 255.255.255.0
    mstpctl_ports swp1 swp2 swp3 swp4
    mstpctl_stp on
    mstpctl_maxwait auto
    mstpctl_maxage 20
    mstpctl_fdelay 15
    mstpctl_maxhops 20
    mstpctl_txholdcount 6
    mstpctl_forcevers rstp
    mstpctl_portpathcost swp1=0 swp2=0
    mstpctl_portadminedge swp1=no swp2=no swp4=yes
    mstpctl_portautoedge swp1=yes swp2=yes
    mstpctl_portp2p swp1=no swp2=no
    mstpctl_portrestrrole swp1=no swp2=no
    mstpctl_bpduguard swp1=no swp2=no swp4=yes
    mstpctl_portrestrtcn swp1=no swp2=no
    mstpctl_treeprio 8
    mstpctl_treeportprio swp3=8
    mstpctl_hello 2
    mstpctl_portnetwork swp1=no
    mstpctl_portbpdufilter swp4=yes

like?? look at her go πŸ’–


πŸ‘‘ IFACE OPTIONS πŸ‘‘

All the interface options below configure STP parameters on an STP enabled bridge, and you drop them into /etc/network/interfaces. Let's go one by one, bestie, no skipping πŸ’…

  • mstpctl_ports interface specification β€” this option must exist to specify the bridge and the ports which need to be added to the bridge.
mstpctl_ports swp1 swp4

Regular expressions can be used to select a number of interfaces:

mstpctl_ports regex (eth|vif).*

This means: evaluate (as in egrep(1)) the expressions that follow after "regex" until either the end or a "noregex" statement is reached. 🧚

  • mstpctl_stp yes|no β€” turn spanning tree protocol on/off. default is no.
  • mstpctl_maxwait time|auto β€” set the max time in seconds to wait for initial STP convergence before allowing ifup to exit. default is auto (=fdelay*2+1).
  • mstpctl_maxage time β€” set max message age to time seconds. default is 20.
  • mstpctl_fdelay time β€” set bridge forward delay to time seconds. default is 15.
  • mstpctl_maxhops max_hops β€” set bridge maximum hops to max_hops. default is 20.
  • mstpctl_forcevers mstp|rstp|stp β€” forces the bridge to use a specific STP protocol version. mstp is the default.
  • mstpctl_txholdcount tx_hold_count β€” set bridge transmit hold count to tx_hold_count. default is 6.
  • mstpctl_treeprio priority β€” set bridge tree priority, where priority is between 0 and 15. Bridge priority affects the bridge id, and the lowest priority bridge will be the root. Note that traditionally bridge priority is a multiple of 4096 and ranges from 0 to 15*4096 = 61440. mstpd is different β€” it throws out that useless "multiple of 4096" rule and expresses bridge priority in natural units (0-15). Default is 8.
  • mstpctl_portpathcost port cost β€” set path cost for a port, default is 0 (= auto). port is the name of the interface to which this setting applies.
  • mstpctl_portadminedge port yes|no β€” Enables/disables the admin edge state of the port. default is no.
  • mstpctl_portautoedge port yes|no β€” Enables/disables the auto transition to/from edge state of the port. default is yes.
  • mstpctl_portp2p port yes|no|auto β€” Enables/disables the point2point detection mode of the port. default is auto.
  • mstpctl_portrestrrole port yes|no β€” Enables/disables the restrictions on the port's ability to take root role. default is no (i.e. no restrictions on the port's role).
  • mstpctl_portrestrtcn port yes|no β€” Enables/disables the restrictions on the port's ability to propagate received topology change notification. default is no (i.e. no restrictions on the TCN propagation).
  • mstpctl_bpduguard port yes|no β€” Enables/disables the bpduguard configuration of the port. default is no.
  • mstpctl_treeportprio port priority β€” sets the port's priority to priority. The priority value is a number between 0 and 15. Note that traditionally port priority is a multiple of 16 and ranges from 0 to 15*16 = 240. mstpd is different β€” it throws out that useless "multiple of 16" rule and expresses port priority in natural units (0-15). Default is 8.
  • mstpctl_hello time β€” set hello time to time seconds. default is 2.
  • mstpctl_ageing time β€” sets the ethernet (MAC) address ageing time, in seconds. Used only when protocol version is forced to STP, default is 300s.
⚠️ bestie heads up, this parameter is different from all the others: it is only an informational parameter. By setting it in the mstpd you do NOT change the real bridge's Ageing Time. It's supposed to be set as information to the mstpd that the real Ageing Time in the real bridge was changed. so like, don't be out here thinking it does the thing 😭
  • mstpctl_portnetwork port yes|no β€” Enables/disables the bridge assurance capability for a port. default is no.
  • mstpctl_portbpdufilter port yes|no β€” Enables/disables the bridge BPDU filter capability for a port. default is no.

πŸŽ€ FILES πŸŽ€

  • /etc/network/interfaces β€” definitions of network interfaces. See interfaces(5) for more information. she's the blueprint fr fr πŸ’–

πŸ’œ AUTHOR πŸ’œ

This manpage was written by Satish Ashok <sashok@cumulusnetworks.com> based on brctl-utils-interfaces(5). iconic behaviour, thank you for your service 🫢


🌈 SEE ALSO 🌈

brctl(8), interfaces(5), ifup(8), iwconfig(8), run-parts(8).

go read those too, they're all in the same friend group πŸ¦‹


and that's the whole page, bestie ✨ this absolute gem is from mstpctl-utils, dated April 29 2013, and she lives in section MSTPCTL-UTILS-INTERFACES(5). slay, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from