module ieee802-dot1q-rstp { yang-version 1.1; namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-rstp"; prefix rstp; import ietf-yang-types { prefix yang; } import ietf-interfaces { prefix if; } import ieee802-dot1q-types { prefix dot1qtypes; } import ieee802-dot1q-bridge { prefix dot1q; } organization "IEEE 802.1 Working Group"; contact "WG-URL: http://www.ieee802.org/1/ WG-EMail: stds-802-1-l@ieee.org Contact: IEEE 802.1 Working Group Chair Postal: C/O IEEE 802.1 Working Group IEEE Standards Association 445 Hoes Lane Piscataway, NJ 08854 USA E-mail: stds-802-1-chairs@ieee.org"; description "This module provides management of 802.1Q Bridge components that support the Rapid Spanning Tree Algorithm and Protocol (RSTP). Copyright (C) IEEE (2024). This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; revision 2024-01-06 { description "Comment on P802.1Qdy/D1.0, supporting material, Mick Seaman. The following reference statement identifies each referenced IEEE Standard as updated by applicable amendments."; reference "IEEE Std 802.1Q Bridges and Bridged Networks: IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023, IEEE Std 802.1Qcj-2023, IEEE Std 802.1Qdj-2024, IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2024."; } feature rstp { description "Rapid Spanning Tree Algorithm and Protocol supported."; reference "Clause 13, 13.4, and 13.24 of IEEE Std 802.1Q."; } augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { description "Augment Bridge with RSTP configuration."; reference "13.24, 13.25, and 13.26 of IEEE Std 802.1Q." container rstp { if-feature "rstp"; leaf force-protocol-version { type enumeration { enum emulate-stp { value 0; } enum withdrawn { value 1; // previously assigned to IEEE Std 802.1G-1996 (withdrawn) } enum rstp-rapid-spanning-tree-protocol { value 2; } enum rstp-mstp { value 3; } enum rstp-spb { value 4; } default "rstp-rapid-spanning-tree-protocol(2)"; } config true; description "By default RSTP will provide rapid reconfiguration, but will interoperate with Bridges using STP as specified in IEEE Std 802.1D (now withdrawn). Force Protocol Version can force emulation of aspects of STP behavior, slowing reconfiguration and ageing of FDB entries. Force Protocol Version can be configured to enable MSTP and SPB behavior (if implemented) - interoperability with Bridges that support only RSTP or STP will be maintained." reference "13.7.2 and item a) of 13.26 of IEEE Std 802.1Q." } leaf cist-bridge-id { type uint64; config false; description "The Bridge Identifier used by this Bridge for the CIST. Eight octets with the four most significant bits of the first encoding the manageable cist-bridge-id-priority, the next twelve bits being zero, and last six ocets encoding the Bridge Address."; reference "13.26.2, 14.1.2, and item e) in 13.26 of IEEE Std 802.1Q."; } leaf cist-bridge-id-priority { type dot1qtpes:priority-type; config true; description "The priority component of this Bridge's Bridge Identifier for the CIST, encoded in the four most-significant bits of the first octet of the eight octet Bridge Identifier. The value of this object MUST be retained across reinitializations of the management system."; reference "13.26.2, 14.2.5, and item e) in 13.26 of IEEE Std 802.1Q."; } leaf cist-root-id { type uint64; config false; description "The CIST Root Identifier, i.e. the Bridge Identifier of the Common and Internal Spanning Tree calculated by RSTP and of the logical continuation of that connectivity calculate by MSTP, as determined by this node."; reference "13.9, 14.1.2, and item f) in 13.26 of IEEE Std 802.1Q."; } leaf external-root-path-cost { type uint32; config false; description "The External Root Path Cost (MSTP) or Root Path Cost (RSTP) calculated by this Bridge after the addition of the receiving Port Path Cost."; reference "13.9, 13.10, 13.5.3, and item i) in 13.26 of IEEE Std 802.1Q."; } leaf cist-root-port-number { type dot1qtypes:port-number-type; config false; description "The port number of the Root Port for the RSTP and for the CIST Root Port (MSTP), i.e. the Port Identifier for the port that offers the lowest cost path from this Bridge to the (CIST) Root."; reference "13.4, 13.5, 13.26.9, and item h) in 13.26 of IEEE Std 802.1Q."; } leaf max-age { type uint8; units "seconds"; config false; description "For the CIST, the whole seconds (most-significant octet) part of the maximum age of the spanning tree information (Max Age) currently used by this Bridge. Set to the bridge-max-age if the Bridge is the CIST Root, and to the whole seconds part of the value received on the CIST Root Port otherwise."; reference "13.15, 13.20, 13.25, item l) in 13.28, and item g) in 13.26 of IEEE Std 802.1Q."; } leaf hello-time { type rt-types:timer-value-seconds16; units "seconds"; config false; description "The interval (Hello Time) between the periodic transmission of Configuration Bridge PDUs on Designated Ports. Set to bridge-hello-time if the Bridge is currently acting as the CIST Root, and to the value received on the CIST Root Port otherwise."; reference "Table 13-5, 13.25.3, and 13.28.11 of IEEE Std 802.1Q."; } leaf forward-delay { type uint8; units "seconds"; config false; description "If a Port is using STP rather than RSTP, either as a result of setting force-protocol-version to be less than 2 or because STP BPDUs have been received, this Forward Delay parameter determines the time spent in the Listening and Learning Port States when transitioning from Discarding to Forwarding, and also controls rapid ageing of FDB entries after a topology change. Set to bridge-forward-delay if the Bridge is currently acting as the CIST Root, and to the whole seconds part of the value received on the CIST Root Port otherwise. If RSTP, MSTP, or SPB is used, Port State transitions and FDB flushing are rapid and not controlled by this parameter."; reference "Table 13-5, 13.25.2, 13.28.10, and item g) in 13.26.4 of IEEE Std 802.1Q."; } leaf bridge-max-age { type uint8 { range "6..40"; default "20"; } units "seconds"; config true; description "The value of the whole seconds part of Max Age when this Bridge is acting as the CIST Root. The fractional part, conveyed in the less-significant octet of each BPDU's Max Age field, will be zero. The value of this object MUST be retained across reinitializations of the management system."; reference "Table 13-5, 13.26.4, and item g) in 13.26 of IEEE Std 802.1Q."; } leaf bridge-hello-time { type uint8 { default "2"; } units "seconds"; config false; description "The value that this Bridge uses for HelloTime when acting as the CIST Root."; reference "Table 13-5, 13.25.3, and 13.28.11 of IEEE Std 802.1Q."; } leaf bridge-forward-delay { type uint8 { range "4..30"; default "15"; } units "seconds"; config true; description "The value of the whole seconds part of Message Age when this Bridge is acting as the CIST Root. The fractional part, conveyed in the less-significant octet of each BPDU's Max Age field, will be zero. The value of this object MUST be retained across reinitializations of the management system."; reference "Table 13-5, 13.26.4, and item g) in 13.26 of IEEE Std 802.1Q."; } leaf tx-hold-count { type int32 { range "1..10"; default "6"; } config true; description "Limits the rate of BPDU transmission. If the variable txCount (which is incremented on each transmission and decremented once a second) reaches TxHoldCount, transmission is delayed. The value of this object MUST be retained across reinitializations of the management system."; reference "Table 13-5, 13.27.75, 13.26.12, and item b) in 13.26 of IEEE Std 802.1Q."; } leaf migrate-time { type int32 { default "3"; } units "seconds"; config false; description "Management can force the transmission of RST (or MST or SPT) BPDUs for MigrateTime to check that all STP Bridges have been removed from a specified port's attached LAN, so RST/MST/SPT BPDU transmission can persist. Fixed value of 3 seconds."; reference "Table 13-5, 13.27.38, and item c) in 13.26 of IEEE Std 802.1Q."; } leaf time-since-topology-change { type uint32; units "seconds"; config false; description "The time (in seconds) since the Topology Change timer, tcWhile, for any port on this Bridge was last running - i.e. since Topology Change Notification (TCN) Messages were last transmitted."; reference "13.25.9 of IEEE Std 802.1Q."; } leaf topology-change-count { type yang:counter64; units "topology change count"; config false; description "The number of times (since the management entity was last reset or initialized) that at least one port's Topology Change timer (tcWhile) has been non-zero. Discontinuities in the value of the counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'discontinuity-time'."; reference "13.25.9 of IEEE Std 802.1Q."; } } } augment "/if:interfaces/if:interface/dot1q:bridge-port" { description "Augment Bridge Port with RSTP configuration"; reference "13.24, 13.25, and 13.27 of IEEE Std 802.1Q." container rstp { if-feature "rstp"; leaf cist-port-state { type enumeration { enum discarding { value 1; } enum learning { value 2; } enum forwarding { value 3; } } config false; description "The port's Port State, summarizing the application of learning to received frames, and the forwarding of relayed frames, for all frames (for RSTP) or for frames assigned to the CIST (for MSTP). The Port State is Discarding if both learning and forwarding are both false, Learning if only learning, and Forwarding if both learning and forwarding are true. The Discarding state encompasses all reasons for not forwarding, including MAC_Operational false (if:oper-status not up) and MAC_Enabled false (if:admin-status not up)."; reference "8.4, 13.4, item aw) and item ba) in 13.27 of IEEE Std 802.1Q."; } leaf cist-port-role { type enumeration { enum disabled-port { value 1; } enum root-port { value 2; } enum designated-port { value 3; } enum alternate-port { value 4; } enum backup-port { value 5; } } config false; description "The port's Port Role for the CIST. Disabled Port, Root Port, Designated Port, Alternate Port, or Backup Port."; reference "13.4, 13.5, 13.12, 13.24, 13.27.66, and item bn) in 13.27 of IEEE Std 802.1Q."; } leaf restricted-role { type boolean { default "false(2)"; } config false; reference "13.20, 13.27.65, 13.29.34, 16.2, 16.3, 26.5, 27.6, 27.20, item t) in 13.27 of IEEE Std 802.1Q."; } leaf restricted-tcn { type boolean { default "false(2)"; } config false; reference "13.20, 13.27.64, 13.29.25, 16.2, 16.3, item s) in 13.27 of IEEE Std 802.1Q."; } leaf cist-port-id { type uint16; config false; description "The Port Identifier used by this Bridge Port for the CIST. Two octets with the four most-significant bits of the first encoding the manageable cist-port-id-priority, and the next twelve bits encoding the port's port-number."; reference "13.27.46, 14.1.2, item bd) in 13.27 of IEEE Std 802.1Q."; } leaf cist-port-priority { type dot1qtpes:priority-type; config true; description "The priority component of this Port's Port Identifier for the CIST, encoded in the four most-significant bits of the first octet of the two octet Port Identifier. The value of this object MUST be retained across reinitializations of the management system."; reference "13.27.47, 14.2.7, and item be) in 13.27 of IEEE Std 802.1Q."; } leaf external-port-path-cost { type int32 { range "0..200000000"; } config true; description "The administratively assigned value for the port's contribution to the External Root Path Cost for the Bridge, when the port is the CST Root Port (for RSTP and MSTP) or the CIST Master Port (for MSTP and ISIS-SPB). The value of this object MUST be retained across reinitializations of the management system."; reference "13.27.25, Table 13-4, and item g) of 13.27 of IEEE Std 802.1Q."; } leaf cist-root-id { type uint32; config false; description "The CIST Root Identifier in Configuration BPDUs transmitted by the Designated Bridge for the attached LAN."; reference "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf cist-external-path-cost { type int32; config false; description "The External Path Cost advertised in BPDUS by the Designated Bridge for the attached LAN."; reference "27.6, 14.1.2, 13.27.20, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf designated-bridge-id { type uint32; config false; description "The Bridge Identifier of the Bridge that this port considers to be the Designated Bridge for the attached LAN."; reference "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf designated-port-id { type binary { length "2"; } config false; description "The Port Identifier of the Bridge Port that this port considers to be the Designated Port for the attached LAN."; reference "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf port-protocol-migration-check { type boolean; config true; description "Writing true(1) to port-protocol-migration-check (mcheck) forces transmission of RST (or MST or SPT) BPDUs for migrate-time to check that all STP Bridges have been removed from the port's attached LAN, so RST/MST/SPT BPDU transmission can persist. Has no effect if force-protocol-version is emulate-stp(0) or withdrawn(1). Always returns false(2) when read."; reference "13.27.38, 13.32, and item j) in 13.27 of IEEE Std 802.1Q."; } leaf admin-edge-port { type boolean { default "false(2)"; } config true; description "Set if the port is to be identified as an Edge Port immediately on initialization without a delay to detect other Bridges attached to the LAN. Recommended default false(2). The operational value, oper-edge-port, will become false(2) if a BPDU has been received. The value of this object MUST be retained across reinitializations of the management system."; reference "13.33, and item a) in 13.27 of IEEE Std 802.1Q."; } leaf oper-edge-port { type boolean; config false; description "Set if the port is currently identified as an Edge Port. Initialized to the value of admin-edge-port, and controlled by the Bridge Detection state machine."; reference "13.33, and item l) in 13.27 of IEEE Std 802.1Q."; } leaf auto-edge-port { type boolean { default "true(1)"; } config true; description "Administratively set true(1) to allow the value of oper-edge-port is to be maintained automatically, with continuous monitoring of the presence or absence of other Bridges attached to the LAN. The value of this object MUST be retained across reinitializations of the management system."; reference "13.33, 13.27.18, and item c) in 13.27 of IEEE Std 802.1Q."; } leaf auto-isolate-port { type boolean { default "false(2)"; } config true; description "Administratively set true(1) to allow automatic setting of isolate-port, causing a Designated Port to transition to Discarding if both admin-edge-port and auto-edge-port are false, but the other Bridge presumed attached to the same point-to-point LAN appears unable to transmit BPDUs, indicating failure of a Spanning Tree Protocol Entity or of transmission and/or reception. The value of this object MUST be retained across reinitializations of the management system."; reference "13.23, 13.27.19, 13.33, and item d) in 13.27 of IEEE Std 802.1Q."; } leaf isolate-port { type boolean; config false; description "Set by the Bridge Detection state machine when the Spanning Tree Protocol Entity of a neighboring Bridge has apparently failed."; reference "13.23, 13.27.27, 13.33, and item i) in 13.27 of IEEE Std 802.1Q."; } } } notification new-root { description "The new-root notification indicates that the sending agent has become the new root of the Spanning Tree; the notification is sent by a Bridge soon after its election as the new root, e.g., upon expiration of the Topology Change Timer, immediately subsequent to its election."; } notification topology-change { description "A topology-change notification is sent by a Bridge when any of its configured ports transitions from the Learning state to the Forwarding state, or from the Forwarding state to the Blocking state. The notification is not sent if a ieee8021SpanningTreeNewRoot notification is sent for the same transition."; } }