Spanning Tree Protocol (STP) Application of the Inter-Chassis Communication Protocol (ICCP)
Extracted elements (28)
During initial setup, a PE device SHOULD advertise TLVs in the order: STP System Config TLV, remaining Configuration TLVs, then State TLVs. This ordering allows peers to begin updating STP state as early as possible, since state updates depend on configuration information.
The RG acts as a single root bridge (using the numerically lowest BridgeIdentifier as the virtual root's MAC address) so that STP within the customer network always breaks loops by partitioning the multihomed STP network into separate islands, each attached to one PE, forcing all PEs to be active simultaneously. This differs from generic VPLS where the root bridge resides in the customer network and multihomed PEs operate in active-standby mode.
If a PE device supports MAC Address Withdrawal (RFC 4762, Section 6.2), it SHOULD send an LDP Address Withdraw Message with the list of MAC addresses towards the core upon receiving an STP Topology Changed Instances TLV. No such message need be sent to PEs in the same RG since they flush MAC tables upon receipt of the TLV.
If a system receives an RG Connect Message with an STP Connect TLV with a differing Protocol Version, it MUST follow the application versioning procedures outlined in Section 4.4.1 of RFC 7275.
A virtual root bridge identifier MUST be set to the MAC address advertised by the PE device with the numerically lowest BridgeIdentifier in the RG, to protect against possible misconfigurations.
An implementation MUST advertise configuration prior to advertising corresponding state. If a PE receives an STP State TLV for an unknown instance, it MUST request synchronization of configuration and state from its peer.
Each pair of STP Synchronization Data TLVs MUST occur in the same fragment. When total TLV size exceeds fragment maximum, TLVs MUST be divided into multiple sets each delimited by a pair of Synchronization Data TLVs across multiple fragments.
The Request Number value of 0 is reserved for unsolicited synchronization and MUST NOT be used in the STP Synchronization Request TLV.
Upon receiving an STP Topology Changed Instances TLV, the receiving RG member MUST initiate the Topology Change event, send BPDUs with the Topology Change flag set to 1 out of designated ports, and flush MAC addresses relevant to the listed instances.
Upon recovery from a previous fault, a PE device SHOULD NOT reclaim the role of the virtual root for the STP network even if it has the numerically lowest BridgeIdentifier among the RG, to minimize traffic disruption.
When an RG is configured on a system supporting ICCP STP, such systems MUST send an RG Connect Message with an STP Connect TLV to each RG member PE. After the application connection is established, every PE device MUST communicate its system-level configuration to peers via STP System Config TLV.
Whenever any STP parameter on the CE or PE side changes, the system MUST transmit an updated TLV for the affected STP instances. When administrative or operational state changes, the system MUST transmit an updated State TLV to its peers.
The STP Configuration Digest TLV (Type=0x2006) carries a 16-octet Configuration Digest encoding the VLAN-to-instance mapping as specified in IEEE 802.1Q Section 13.8 item d. Length is always set to 16.
The STP Connect TLV (Type=0x2000) is included in the RG Connect Message to signal initiation of an ICCP STP application connection. It contains a Protocol Version field (this document defines version 0x0001) and an Acknowledgement bit (A-bit) indicating whether the sender has received a corresponding STP Connect TLV from the recipient.
The STP Disconnect TLV (Type=0x2001) is used in the RG Disconnect Message to indicate termination of the ICCP STP application connection. It may contain an optional STP Disconnect Cause Sub-TLV (Type=0x200C) carrying a variable-length UTF-8 encoded reason string.
The STP Region Name TLV (Type=0x2003) carries the MST Region Name as specified in IEEE 802.1Q Section 3.142. The STP Revision Level TLV (Type=0x2004) carries the 2-octet Revision Level as specified in IEEE 802.1Q Section 13.8 item c.
The STP Synchronization Data TLV (Type=0x200B) delimits the start (S=0) and end (S=1) of a synchronization data set in response to a Synchronization Request. It carries a 2-octet Request Number matching the request; Request Number 0 is used for unsolicited advertisements.
The STP Synchronization Request TLV (Type=0x200A) allows a PE device to request retransmission of configuration or state data from its peer. It includes a 2-octet Request Number (non-zero), C-bit (config request), S-bit (state request), 14-bit Request Type, and an InstanceID List.
The STP System Config TLV (Type=0x2002) announces the local node's STP System Parameters to RG peers. It carries an 8-octet ROID (Redundant Object Identifier) and a 6-octet MAC address representing the sender's BridgeIdentifier; total Length is always 14.
The STP Topology Changed Instances TLV (Type=0x2007) reports the list of CIST/MSTI InstanceIDs whose topologies have changed per TCN messages. Each InstanceID is padded to a 16-bit boundary with 4 reserved bits (R=0) in the high nibble.
IANA allocated 13 codepoints in the 'ICC RG Parameter Types' subregistry of 'Pseudowire Name Spaces (PWE3)' from the IETF Review range 0x2000–0x2FFF: 0x2000 STP Connect TLV through 0x200C STP Disconnect Cause TLV.
An attack on the ICCP channel (running in the provider's network) can break not only provider traffic delivery but also STP routing within the customer's network. DoS attacks on the channel as described in RFC 7275 can break STP within the customer network; implementations MUST provide mitigation mechanisms, such as blocking the port between a PE device and a malicious CE device.
The ICCP STP application connection transitions to operational state when both PEs have sent and received STP Connect TLVs with A-bit=1. A PE sets A-bit=0 initially, then MUST resend with A-bit=1 upon receiving a Connect TLV from its peer, triggering the operational state.
The STP CIST Root Time Parameters TLV (Type=0x2008) encodes MaxAge (16 bits), MessageAge (16 bits), FwdDelay (16 bits), HelloTime (16 bits), and RemainingHops (8 bits) for 9 octets total. All time values are in seconds with 1-second granularity.
The STP Connect TLV wire format includes U=F=0 bits, Type=0x2000 (16 bits), Length (16 bits), Protocol Version (16 bits), A-bit (1 bit), Reserved (15 bits), and optional Sub-TLVs. No optional Sub-TLVs are defined for version 0x0001.
The STP Disconnect Cause Sub-TLV (Type=0x200C) carries a variable-length Disconnect Cause String encoded in UTF-8 format for operational diagnostic purposes.
The STP Instance Priority TLV (Type=0x2005) encodes a 4-bit Pri (Instance Priority) field and a 12-bit InstanceID field in 2 octets. InstanceID ranges 1–4094 for MSTIs and 0 for CIST.
The STP MSTI Root Time Parameter TLV (Type=0x2009) encodes a 4-bit Pri, a 12-bit InstanceID, and an 8-bit RemainingHops field (3 octets total). InstanceID ranges 1–4094 per IEEE 802.1Q Section 12.8.1.2.2.