STP Configuration Module

This configuration module enables support for Spanning Tree Protocol (STP) to avoid loops by dynamically blocking ports. Many platforms already support and enable STP by default; this module provides explicit control over those settings

Platform Support

The following table describes per-platform support of individual STP features:

Operating system

STP

MSTP

RSTP

Per-VLAN
RSTP

Enable
per port

Arista EOS[1]

Aruba AOS-CX[2]

Cumulus Linux 4.x[3]

Cumulus 5.x (NVUE)[3]

Dell OS10[4]

FRR[5]

Tip

MSTP/RSTP ports fall back to regular STP upon receiving a plain STP BPDU.

Global Parameters

  • stp.protocol (one of stp, mstp, rstp or pvrst) – Global STP flavor to run on supporting nodes, default stp

  • stp.stub_port_type (one of normal, edge, network, auto or none) – Port type to configure on ports with only hosts connected, default none

Node Parameters (global or per VLAN)

  • stp.priority (int 0…61440 in increments of 1024) – STP priority for root election, by default, all nodes have equal priority 32656. In case of equal priority, the bridge with the lowest MAC address becomes root; note that MAC addresses are assigned randomly in Netlab

  • stp.port_type (one of normal, edge, network or auto) – STP port type for all interfaces connected to this node

Interface Parameters

  • stp.port_priority (int 0…15) – STP port priority for selecting between multiple ports; ports are blocked based on priority (lower value = higher priority). The priority is sent over the wire (4 bits) as the most significant part of the port ID; it is used by the node receiving it (!) to decide which port(s) to unblock. Note that on many platforms, the value that ends up in the configuration is a multiple (x16) of this attribute

  • stp.port_type (one of normal, edge, network or auto) – STP port type for this interface, default normal