ieee802-dot1q-rstp

This module provides management of IEEE Std 802.1Q Bridge components that support the Rapid Spanning Tree Algorithm and Protocol...

  • Version: 2025-02-04

    ieee802-dot1q-rstp@2025-02-04


    
      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-types {
          prefix ieee;
        }
    
        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 IEEE Std 802.1Q Bridge components
    that support the Rapid Spanning Tree Algorithm and Protocol (RSTP).
    The managed objects specified also support those aspects of Multiple
    Spanning Tree Algorithm and Protocol (MSTP) and Shortest Path Bridging
    (SPB) operation that provide plug-and-play interoperability with RSTP.
    
    References specify constraints on, and consequences of, settings of
    leaf values and the creation and deletion of list entries. The values
    of all configured objects are retained across system reinitialization.
    
    Copyright (C) IEEE (2025).
    
    This version of this YANG module is part of IEEE Std 802.1Q; see the
    standard itself for full legal notices.";
    
        revision "2025-02-04" {
          description
            "Published as part of IEEE Std 802.1Qdy-2025.
    
    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-2025.";
    
        }
    
    
        typedef id-priority {
          type uint8 {
            range "0..15";
          }
          default "8";
          description
            "Priority for Bridge and Bridge Port identifiers. Lower numeric
    values indicate the better identifier.";
        }
    
        typedef id-port-number {
          type uint16 {
            range "0..4095";
          }
          description
            "A system assigned Bridge Port number, unique in the context of
    a Bridge component, used in a Port Identifier.";
        }
    
        grouping bridge-id {
          description
            "A 64-bit Bridge Identifier and its components: a manageable
    priority in the four most-significant bits, a system ID extension in
    the next 12 bits, and the Bridge Address in the remaining 48 bits.";
          reference
            "13.26.2, 14.1.2, 14.2.5, and item e) in 13.26 of IEEE Std 802.1Q.";
    
          leaf bridge-id {
            type uint64;
            config false;
            description
              "The Bridge Identifier as used in protocol and tree computation.";
          }
    
          leaf bridge-priority {
            type id-priority;
            description
              "The manageable bridge priority.";
          }
    
          leaf system-id-extension {
            type uint16 {
              range "0..4095";
            }
            config false;
            description
              "The system ID extension.";
            reference
              "13.26.2, 13.41.5, 13.42, 14.2.5, and 14.4 of IEEE Std 802.1Q.";
    
          }
    
          leaf bridge-address {
            type ieee:mac-address;
            config false;
            description "A Bridge Address.";
          }
        }  // grouping bridge-id
    
        grouping port-id {
          description
            "A 16-bit Port Identifier and its components: a priority in the four
    most-significant bits, and a twelve-bit Bridge Port number.";
          reference
            "13.2, 13.18, Table 13-3, and 14.2.7 of IEEE Std 802.1Q.";
    
          leaf port-id {
            type uint16;
            config false;
            description
              "The Port Identifier as used in protocol and tree computation.";
          }
    
          leaf port-priority {
            type id-priority;
            description
              "The manageable port priority, encoded in the four most-significant
    bits of octet 26 of Configuration BPDUs for the CIST and in the
    four most-significant bits of octet 15 of the MSTI Configuration
    Message for an MSTI.";
            reference
              "13.2, 13.18, Table 13-3, 14.2.7, and item e) in 14.4.1
              of IEEE Std 802.1Q.";
    
          }
    
          leaf port-number {
            type id-port-number;
            config false;
            description
              "The system assigned Port Number, encoded in the twelve
    least-significant bits of octets 26 and 27 of Configuration BPDUs.";
            reference
              "12.3, 12.4.2, 13.2, and 14.2.7 of IEEE Std 802.1Q.";
    
          }
        }  // grouping port-id
    
        typedef port-state {
          type enumeration {
            enum "discarding" {
              value 1;
              description
                "Received frames are not submitted to the Learning Process or
    to the Forwarding Process. The Forwarding Process does not relay
    frames to the port for transmission. The Discarding state
    includes an inability to receive or transmit frames or BPDUs
    because MAC_Operational is false (if:oper-status not up).";
            }
            enum "learning" {
              value 2;
              description
                "Received frames are submitted to the Learning Process, but not
    to the Forwarding Process. The Forwarding Process does not
    relay frames to the port for transmission.";
            }
            enum "forwarding" {
              value 3;
              description
                "Received frames are submitted to the Learning Process and the
    Forwarding Process. The Forwarding Process can relay frames to
    the port for transmission.";
            }
          }
          description
            "The Port State for frames assigned to a given spanning tree,
    governing submission of frames received by the port to the Learning
    and Forwarding Processes and relay of frames to the port by the
    Forwarding Process.";
          reference
            "8.4, 8.6, 8.7, 13.4, and items aw) and ba) in 13.27
            of IEEE Std 802.1Q.";
    
        }
    
        typedef port-role {
          type enumeration {
            enum "disabled-port" {
              value 1;
              description
                "The port's MAC_Operational status is false (if:oper-status not
    up), or admin-bridge-port-enabled is false.";
            }
            enum "root-port" {
              value 2;
              description "The Root Port.";
            }
            enum "designated-port" {
              value 3;
              description "A Designated Port.";
            }
            enum "alternate-port" {
              value 4;
              description "An Alternate Port.";
            }
            enum "backup-port" {
              value 5;
              description "A Backup Port.";
            }
          }
          description
            "The Port Role assigned by the Bridge's spanning tree protocol entity
    for a given spanning tree.";
          reference
            "13.4, 13.5, 13.12, 13.24, 13.27.66, and item bn) in 13.27
            of IEEE Std 802.1Q.";
    
        }
    
        grouping bridge-component-parameters {
          description
            "This grouping comprises per-Bridge component parameters.";
          container rstp {
            presence
              "The presence of this container indicates that RSTP is
    supported.";
            description
              "Per-Bridge component parameters common to RSTP, MST, and SPB.";
            leaf force-protocol-version {
              type enumeration {
                enum "emulate-stp" {
                  value 0;
                  description
                    "Forces transmission of STP BPDUs. Slows reconfiguration and
    ageing of FDB entries.";
                }
                enum "rstp" {
                  value 2;
                  description
                    "RST BPDUs are transmitted. MCID, MSTI, and SPT information
    is not transmitted and is ignored on receipt, treating a
    neighboring Bridge as in a separate MST or SPT region even
    if MSTP and/or SPB are implemented.";
                }
                enum "rstp-mstp" {
                  value 3;
                  description
                    "If MSTP is implemented, full MSTP behavior is enabled and
    transmitted BPDUs include RSTP and MSTP information.";
                }
                enum "rstp-mstp-spb" {
                  value 4;
                  description
                    "Shortest Path Bridging (SPB) and MSTP (if implemented) are
    both enabled. Transmitted BPDUs can include RSTP, MSTP,
    and SPB information.";
                }
              }
              description
                "Each Bridge implementing RSTP, MSTP, or SPT is plug-and-play
    interoperable with neighboring Bridges using a different subset
    of those protocols. Force Protocol Version applies to all ports,
    and can restrict protocol use. Each Bridge Port also detects a
    neighbor(s) using STP (IEEE Std 802.1D-1998, now withdrawn)
    and uses STP BPDUs and slow reconfiguration to interwork with
    those neighbors independently of Force Protocol Version.
    Force Protocol Version value 1 was previously assigned to
    IEEE Std 802.1G-1996 (now withdrawn) and is not to be used.";
              reference
                "5.4, 5.4.1.1, 5.4.5, 13.7.2, 13.26, 13.28.21, 13.29.13, and
                13.29.28 of IEEE Std 802.1Q.";
    
            }
    
            container bridge-id {
              description
                "The Bridge Identifier used by this Bridge for the single spanning
    tree (the Common Spanning Tree, CST) supported by RSTP, and for
    that tree and its extension (the CIST) through MST and SPT Regions
    supported by MSTP and SPB.";
              reference
                "13.26.2, 14.1.2, 14.2.5, and item e) in 13.26 of IEEE Std 802.1Q.";
    
              uses bridge-id;
            }  // container bridge-id
    
            container root-id {
              config false;
              description
                "The Root Bridge of the single spanning tree (the CST) supported
    by RSTP, and its extension  (the CIST) through MST and SPT Regions
    supported by MSTP and SPB, as currently determined by this node.";
              reference
                "13.9, 14.1.2, and item f) in 13.26 of IEEE Std 802.1Q.";
    
              uses bridge-id;
            }  // container root-id
    
            leaf root-path-cost {
              type uint32;
              config false;
              description
                "The Root Path Cost for the single spanning tree (the CST)
    supported by RSTP and the External Root Path Cost for its
    extension (the CIST) through MST and SPT Regions supported by
    MSTP and SPB. Includes the Port Path Cost of the Bridge's Root
    Port unless the Bridge is the Root Bridge or its Root Port is not
    a Boundary Port of its MST or SPT Region.";
              reference
                "13.9, 13.10, 13.5.3, and item i) in 13.26 of IEEE Std 802.1Q.";
    
            }
    
            leaf root-port {
              type union {
                type if:interface-ref;
                type empty;
              }
              config false;
              description
                "A reference to the Root Port for the single spanning tree
    (the CST) supported by RSTP or its extension (the CIST) through
    MST and SPT Regions supported by MSTP and SPB, empty if this
    Bridge is the Root Bridge.";
              reference
                "13.5 and 13.26.9 of IEEE Std 802.1Q.";
    
            }
    
            leaf max-age {
              type uint8;
              units "seconds";
              config false;
              description
                "The maximum age of the spanning tree information (Max Age)
    currently used by this Bridge for the common spanning tree
    supported by RSTP, MSTP, and SPB. Set to the bridge-max-age if
    the Bridge is the Root Bridge, and to the whole seconds part of
    the value received on the 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 uint8;
              units "seconds";
              config false;
              description
                "The interval (Hello Time) between the periodic transmission
    of Configuration Bridge PDUs on Designated Ports. Set to
    2 seconds if the Bridge is currently acting as the Root
    Bridge, and to the whole seconds part of the value received on
    the Root Port for the common spanning tree supported by RSTP,
    MSTP, and SPB 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 because STP BPDUs are being received or
    force-protocol-version is set to emulate-stp (0), Forward Delay
    determines the time to transition from Discarding to Learning
    and from Learning to Forwarding, and to age FDB entries after a
    topology change. Set to bridge-forward-delay if the Bridge is the
    CIST Root, and to the whole seconds part of the value received on
    the CIST Root Port otherwise. Does not affect RSTP, MSTP, and SPB
    rapid Port State transitions and FDB flushing.";
              reference
                "Table 13-5, 13.25.2, 13.28.10, and item a) in 13.26.4 of
                IEEE Std 802.1Q.";
    
            }
    
            leaf bridge-max-age {
              type uint8 {
                range "6..40";
              }
              units "seconds";
              default "20";
              description
                "The value of Max Age when this Bridge is the Root Bridge for the
    common spanning tree supported by RSTP, MSTP, and SPB.";
              reference
                "Table 13-5, 13.26.4, and item g) in 13.26 of IEEE Std 802.1Q.";
    
            }
    
            leaf bridge-forward-delay {
              type uint8 {
                range "4..30";
              }
              units "seconds";
              default "15";
              description
                "The value of Forward Delay when this Bridge is the Root Bridge
    for the common spanning tree supported by RSTP, MSTP, and SPB.";
              reference
                "Table 13-5, 13.26.4, and item a) in 13.26.4 of IEEE Std 802.1Q.";
    
            }
    
            leaf tx-hold-count {
              type uint8 {
                range "1..10";
              }
              default "6";
              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.";
              reference
                "Table 13-5, 13.27.75, 13.26.12, and item b) in 13.26 of
                IEEE Std 802.1Q.";
    
            }
    
            leaf last-topology-change {
              type yang:date-and-time;
              config false;
              description
                "The time at which the Topology Change timer, tcWhile, for any
    Bridge Port was last running: when Topology Change Notification
    (TCN) Messages were last transmitted.";
              reference
                "13.25.9 of IEEE Std 802.1Q.";
    
            }
          }  // container rstp
        }  // grouping bridge-component-parameters
    
        grouping bridge-port-parameters {
          description
            "This grouping comprises per-interface parameters.";
          container rstp {
            presence
              "The presence of this container indicates that RSTP is
    supported";
            description
              "Per-Bridge Port interface parameters common to RSTP, MSTP, and SPB.";
            leaf admin-bridge-port-enabled {
              type boolean;
              default "true";
              description
                "The Administrative Bridge Port State for the port. If false, the
    port is excluded from the active topology for all spanning trees
    and Ethernet Switched Paths (ESPs), and BPDUs are not transmitted
    or received.";
              reference
                "8.4, 8.6.1, 8.13.9, 13.12, and 13.27.45 of IEEE Std 802.1Q.";
    
            }
    
            leaf port-state {
              type port-state;
              config false;
              description
                "The Port State for RSTP, and for the CIST for MSTP and SPB.";
              reference
                "8.4, 8.6, 8.7, 13.4, item aw) and item ba) in 13.27
                of IEEE Std 802.1Q.";
    
            }
    
            leaf port-role {
              type port-role;
              config false;
              description
                "The Port Role for the single spanning tree (the CST) supported
    by RSTP, and for its extension (the CIST) through MST and SPT
    Regions supported by MSTP and SPB.";
              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";
              description
                "Set to prevent selection of the port as Root Port for the CIST
    or any MSTI, even if it has the best spanning tree priority
    vector, at the risk of causing a lack of spanning tree
    connectivity, thus preventing Bridges external to a core region
    of the network influencing the spanning tree active topology.
    The port will be selected as an Alternate Port rather than a
    Root Port.";
              reference
                "13.20, 13.27.64, 13.29.34, 16.2, 16.3, 26.5, 27.6, 27.20,
                item s) in 13.27 of IEEE Std 802.1Q.";
    
            }
    
            leaf restricted-tcn {
              type boolean;
              default "false";
              description
                "Set to prevent propagation of topology changes and topology change
    notifications to other ports. Set to prevent a Bridge external to
    a core region of the network causing address flushing. If set can
    cause temporary loss of connectivity after a topology change.";
              reference
                "13.20, 13.27.65, 13.29.25, 16.2, 16.3, item t) in 13.27
                of IEEE Std 802.1Q.";
    
            }
    
            container port-id {
              description
                "The Port Identifier used by this Bridge Port by RSTP for the
    CST and by MSTP and SPB for the CIST.";
              reference
                "13.27.46, 14.1.2, items bd) and be) in 13.27
                of IEEE Std 802.1Q.";
    
              uses port-id;
            }  // container port-id
    
            leaf fix-port-path-cost {
              type uint32 {
                range "0..200000000";
              }
              default "0";
              description
                "Zero if the port-path-cost is to be determined by the Bridge,
    and the value to be used otherwise.";
              reference
                "13.10, 13.18, and Table 13-4 of IEEE Std 802.1Q.";
    
            }
    
            leaf port-path-cost {
              type uint32 {
                range "1..200000000";
              }
              config false;
              description
                "The port's contribution to the Bridge's External Root Path Cost,
    when the port is the CST Root Port (for RSTP and MSTP) or the
    CIST Master Port (for MSTP and ISIS-SPB).";
              reference
                "13.5.3, 13.27.25, Table 13-4, and item g) of 13.27
                of IEEE Std 802.1Q.";
    
            }
    
            leaf designated-protocol-version {
              type uint8;
              config false;
              description
                "The Protocol Version Identifier in BPDUs transmitted by the
    Designated Bridge for the attached LAN.";
              reference
                "14.2.2, 14.3, and Figure 14-1 of IEEE Std 802.1Q.";
    
            }
    
            action port-protocol-migration-check {
              description
                "Executing 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).";
              reference
                "13.27.38, 13.32, and item j) in 13.27 of IEEE Std 802.1Q.";
    
            }  // rpc port-protocol-migration-check
    
            container root-id {
              config false;
              description
                "The CIST Root Identifier in Configuration BPDUs transmitted by
    the Designated Bridge for the attached LAN.";
              reference
                "14.1.2, 13.27.20, 13.10, and item ar) in 13.27
                of IEEE Std 802.1Q.";
    
              uses bridge-id;
            }  // container root-id
    
            leaf root-path-cost {
              type uint32;
              config false;
              description
                "The CIST External Path Cost advertised in BPDUS by the
    Designated Bridge for the CIST for the attached LAN.";
              reference
                "14.1.2, 13.27.20, item ar) in 13.27, and 27.6
                of IEEE Std 802.1Q.";
    
            }
    
            container designated-bridge-id {
              config false;
              description
                "The Bridge Identifier of the Bridge that this port considers to
    be the Designated Bridge for the attached LAN for RSTP, and the
    CIST Regional Root for MSTP and SPB.";
              reference
                "14.1.2, 13.27.20, 13.10, item ar) in 13.27, and Figure 14-1
                of IEEE Std 802.1Q.";
    
              uses bridge-id;
            }  // container designated-bridge-id
    
            container designated-port-id {
              config false;
              description
                "The Port Identifier of the Bridge Port that this port considers
    to be the Designated Port for the CIST for the attached LAN.";
              reference
                "13.27.20, 13.10, item ar) in 13.27, and octets 26 and 27 of
                Figure 14-1 of IEEE Std 802.1Q.";
    
              uses port-id;
            }  // container designated-port-id
    
            leaf admin-edge-port {
              type boolean;
              default "false";
              description
                "Set if the port is to be identified as an Edge Port on
    initialization without a delay to detect other Bridges attached
    to the LAN. Recommended default false(2). The operational value,
    oper-edge-port, becomes false(2) if a BPDU has been received.";
              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";
              description
                "Administratively set true(1) to allow oper-edge-port
    to be maintained automatically, with continuous monitoring of
    the presence or absence of other Bridges attached to the LAN.
    If admin-edge-port and auto-edge-port are both false and the port
    is attached to a point-to-point LAN, the port is presumed to
    provide connectivity to another Bridge, and a failure to receive
    BPDUs when the port is attempting to become Forwarding is taken
    to be an indication of the failure of that other bridge's Spanning
    Tree Protocol Entity (or its transmission and/or reception),
    isolate-port will be set and the port will remain Discarding.";
              reference
                "13.33, 13.27.18, and item c) in 13.27 of IEEE Std 802.1Q.";
    
            }
    
            leaf disputed-port {
              type boolean;
              config false;
              description
                "Set when more than one Bridge Port apparently believes itself to
    be the CIST Designated Port for the LAN and has incorrectly
    transitioned to a Learning or Forwarding port state.";
              reference
                "13.21, 13.29.16, Figure 13-20 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.";
    
            }
          }  // container rstp
        }  // grouping bridge-port-parameters
      }  // module ieee802-dot1q-rstp
    

© 2024 YumaWorks, Inc. All rights reserved.