From c3501b67fac66ddfe830e16d7c56271a48f2dd0c Mon Sep 17 00:00:00 2001 From: Scott Mansfield Date: Tue, 17 Dec 2024 05:51:30 -0500 Subject: [PATCH] Clean-up Qdd -> DD, new Qdy and ASed. --- standard/ieee/check.sh | 2 +- .../ieee/draft/60802/check_pyang_extra_flags | 1 - .../draft/802.1/ASed/ieee802-dot1as-fttm.yang | 679 ++++++++++++++++ .../802.1/{Qdd => DD}/ieee802-dot1q-rap.yang | 0 .../802.1/Qdy/ieee802-dot1q-mstp-bridge.yang | 74 ++ .../draft/802.1/Qdy/ieee802-dot1q-mstp.yang | 552 +++++++------ .../802.1/Qdy/ieee802-dot1q-rstp-bridge.yang | 68 ++ .../draft/802.1/Qdy/ieee802-dot1q-rstp.yang | 739 ++++++++++-------- 8 files changed, 1575 insertions(+), 540 deletions(-) delete mode 100644 standard/ieee/draft/60802/check_pyang_extra_flags create mode 100644 standard/ieee/draft/802.1/ASed/ieee802-dot1as-fttm.yang rename standard/ieee/draft/802.1/{Qdd => DD}/ieee802-dot1q-rap.yang (100%) create mode 100644 standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp-bridge.yang mode change 100755 => 100644 standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang create mode 100644 standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp-bridge.yang mode change 100755 => 100644 standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index cc51a293a..3a4058be0 100755 --- a/standard/ieee/check.sh +++ b/standard/ieee/check.sh @@ -8,7 +8,7 @@ cwd=$(pwd) ietf_dir="standard/ietf" ieee_dir="standard/ieee" -to_check="draft/60802 draft/802.1/qrev draft/802.1/ASds draft/802.1/AXdz draft/802.1/Qdd draft/802.1/Qdy draft/1588 draft/802 published/802 published/802.1 published/1588" +to_check="draft/60802 draft/802.1/qrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AXdz draft/802.1/DD draft/802.1/Qdy draft/1588 draft/802 published/802 published/802.1 published/1588" # relax constraint for now # add --ietf if you want to do strict IETF checking diff --git a/standard/ieee/draft/60802/check_pyang_extra_flags b/standard/ieee/draft/60802/check_pyang_extra_flags deleted file mode 100644 index 89cf4a261..000000000 --- a/standard/ieee/draft/60802/check_pyang_extra_flags +++ /dev/null @@ -1 +0,0 @@ --p ../802.1/Qdj -p ../1588 diff --git a/standard/ieee/draft/802.1/ASed/ieee802-dot1as-fttm.yang b/standard/ieee/draft/802.1/ASed/ieee802-dot1as-fttm.yang new file mode 100644 index 000000000..714842760 --- /dev/null +++ b/standard/ieee/draft/802.1/ASed/ieee802-dot1as-fttm.yang @@ -0,0 +1,679 @@ +module ieee802-dot1as-fttm { + yang-version 1.1; + namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-fttm"; + prefix dot1as-fttm; + + import ieee1588-ptp-tt { + prefix ptp-tt; + } + + 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 for management of IEEE Std 802.1ASed components + that support a fault-tolerant timing module. + + Copyright (C) IEEE (2024). + This version of this YANG module is part of IEEE Std 802.1AS; + see the standard itself for full legal notices."; + + revision 2024-09-02 { + description + "Published as part of IEEE Std 802.1ASed-2024. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1AS-2020 as modified by + IEEE Std 802.1AS-2020/Cor-1-2021, and amended by + IEEE Std 802.1ASdr, IEEE Std 802.1ASdn, + IEEE Std 802.1ASdm,IEEE Std 802.1ASds, and IEEE Std 802.1ASed."; + } + + + feature fttm { + description + "This feature indicates that the device supports the Fault-tolerant + timing module (FTTM) functionality."; + } + + typedef fttm-output-trust-state { + type enumeration { + enum NOT-TRUSTED { + value 0; + description + "Not trusted"; + } + enum TIME-TRUSTED { + value 1; + description + "Time trusted"; + } + enum FREQ-TRUSTED { + value 2; + description + "Frequency trusted"; + } + enum NOT_VALID { + value 3; + description + "The trust state is not valid"; + } + enum TRUST-STATE-4 { + value 4; + description + "Trust state 4, reserved"; + } + enum TRUST-STATE-5 { + value 5; + description + "Trust state 5, reserved"; + } + enum TRUST-STATE-6 { + value 6; + description + "Trust state 6, reserved"; + } + enum TRUST-STATE-7 { + value 7; + description + "Trust state 7, reserved"; + } + } + description + "The fttmOutputTrustState type is an enumerated value that holds + the output trust state of a TSF or of the FTTM."; + reference + "6.4.3.11 of IEEE Std 802.1ASed"; + } + + typedef uint48 { + type uint64 { + range "0..281474976710655"; + } + description + "Unsigned 48-bit integer."; + } + + grouping fault-tolerant-timing-module-group { + description + "Management of a single FTTM."; + reference + "14.23 of IEEE Std 802.1ASed"; + leaf dtsf-max-num-time-indexes { + type uint8; + config false; + description + "Implementation-specific. Gives the maximum number of input + ClockTarget Interfaces available on each of the DTSFs in the + FTTM."; + reference + "IEEE Std 802.1ASed 14.23.2"; + } + uses fttm-collected-tod-group; + uses fttm-map-dtsf-to-itsf-group; + uses fttm-map-index-to-tsf-group; + uses fttm-map-ptp-instance-to-index-group; + uses fttm-hyst-group; + + leaf fttm-invoke-status-avail { + type boolean; + default "false"; + config false; + description + "The fttmInvokeStatusAvail object indicates that the FTTM has + updated the values of the fttmCollectedTod status, after an + invoke event from the ClockTarget"; + reference + "14.23.8 of IEEE Std 802.1ASed"; + } + leaf fttm-invoke-status-avail-clr { + type boolean; + default "false"; + description + "The fttmInvokeStatusAvailClr object is used to clear the + fttmInvokeStatusAvail object"; + reference + "IEEE 802.1ASed 14.23.9"; + } + uses max-as-group; + leaf fttm-max-num-dtsfs { + type uint8 { + range "0..126"; + } + config false; + description + "Implementation-specific. Maximum number of DTSF instances + available in the FTTM. + The value is restricted to the range of 0 to 126."; + reference + "IEEE Std 802.1ASed 14.23.11"; + } + leaf fttm-max-num-time-indexes { + type uint8 { + range "0..255"; + } + config false; + description + "Implementation-specific. Maximum number of input ClockTarget + Interfaces available on the FTTM."; + reference + "IEEE Std 802.1ASed 14.23.12"; + } + leaf fttm-num-active-dtsfs { + type uint8; + config false; + description + "Number of active DTSF instances currently used in the FTTM."; + reference + "IEEE Std 802.1ASed 14.23.13"; + } + leaf fttm-num-active-time-indexes { + type uint8; + config false; + description + "The number of input ClockTarget Interfaces currently active on + the FTTM."; + reference + "IEEE Std 802.1ASed 14.23.14"; + } + leaf fttm-sel-instance-index { + type uint32; + config false; + description + "Gives the instanceIndex value of the PTP Instance that is the + source of the ClockTarget interface that was selected by the FTTM + as its trusted time."; + reference + "IEEE Std 802.1ASed 14.23.15"; + } + leaf fttm-sel-time-index-change-cnt { + type uint16; + config false; + description + "The fttmItsfSelTimeIndexChangeCnt object gives the number of times + the ITSF has changed its time index selection."; + reference + "IEEE 802.1ASed 14.23.16"; + } + leaf fttm-sel-time-rate-ratio-offset { + type uint32; + default "0"; + description + "The fttmSelTimeRateRatioOffset object gives the maximum rate-ratio + offset magnitude, between the FTTM’s selected time clock rate and + the FTTM’s local clock (OSC_CLK) rate, that is deemed to be acceptable + to go to or remain in the FREQ_TRUSTED state (see 20.3.3.3)."; + reference + "IEEE Std 802.1ASed 14.23.17"; + } + leaf fttm-sel-time-std-dev-rate-ratio-offset { + type uint32; + default "0"; + description + "The fttmSelTimeStdDevRateRatioOffset object gives the maximum standard + deviation of the rate-ratio offset, between the FTTM’s selected time + clock rate and the FTTM’s local clock (OSC_CLK) rate, that is deemed to be + acceptable to go to or remain in the FREQ_TRUSTED state (see 20.3.3.3)."; + reference + "IEEE Std 802.1ASed 14.23.19"; + } + leaf fttm-trust-state { + type fttm-output-trust-state; + default "NOT-TRUSTED"; + config false; + description + "The fttmTrustState object holds the output trust state of the FTTM. + Valid values are NOT_TRUSTED, TIME_TRUSTED, FREQ_TRUSTED, and NOT_VALID."; + reference + "IEEE Std 802.1ASed 14.23.20"; + } + uses fttm-sel-change-thresh-group; + uses fttm-tsf-algo-name-group; + uses fttm-tsf-sel-time-index-group; + leaf fttm-use-osc-clk { + type boolean; + config false; + description + "implementation-specific. Defines whether the OSC_CLK frequency is + used as a reference for time integrity."; + reference + "IEEE Std 802.1ASed 14.23.23"; + } + } + + grouping instance-index-group { + description + "An index number that identifies a ptp-instance input to the FTTM + from the 1588e YANG module."; + reference + "IEEE Std IEEE Std 1588e-2024 15.3.3.2 Structure"; + leaf instance-index { + type uint32; + description + "An index number that identifies a ptp-instance input to the FTTM + from the 1588e YANG module."; + reference + "IEEE Std IEEE Std 1588e-2024 15.3.3.2 Structure"; + } + } + + grouping fttm-collected-tod-group { + description + "The fttmCollectedTod object is a vector of collected extended timestamps + that correspond to the latest ClockTarget invoke event. The vector member + fttmCollectedTod[x] holds the latest timeReceiverTimeCallback result for + input ClockTarget interface x to the FTTM."; + reference + "IEEE Std 802.1ASed 14.23.3"; + list fttm-collected-tod-list { + key "fttm-input-index-number"; + description + "The fttmCollectedTod object is a vector of collected extended + timestamps that correspond to the latest ClockTarget invoke event. + The vector member fttmCollectedTod[x] holds the latest + timeReceiverTimeCallback result for input ClockTarget + interface x to the FTTM."; + reference + "IEEE Std 802.1ASed 14.23.3."; + leaf fttm-input-index-number { + type uint8; + description + "The FTTM input index number."; + reference + "IEEE Std 802.1ASed 14.23.3"; + } + list extended-timestamp-list { + key "seconds fractional-nanoseconds"; + config false; + description + "The ExtendedTimestamp type represents a positive time with + respect to the epoch."; + reference + "IEEE 802.1AS-2020 6.4.3.5"; + leaf seconds { + type uint48; + description + "The integer portion of the timestamp in units of seconds."; + } + leaf fractional-nanoseconds { + type uint48; + description + "The fractional portion of the timestamp in units of 2^-16 ns."; + } + } + } + } + + grouping fttm-map-dtsf-to-itsf-group { + description + "The fttmMapDtsfToItsf object provides the mapping for all the FTTM’s + DTSF output ClockTarget Interfaces to the ITSF and its input indexes. + See J.7."; + reference + "IEEE Std 802.1ASed 14.23.4"; + list fttm-map-dtsf-to-itsf-list { + key "tsf-instance-number"; + description + "This grouping allows associations of all the DTSF output ClockTarget + interfaces to ITSF input index numbers."; + reference + "IEEE Std 802.1ASed 14.23.4"; + leaf tsf-instance-number { + type uint8; + description + "The DTSF instance number."; + reference + "IEEE Std 802.1ASed 14.23.4"; + } + leaf itsf-input-index-number { + type uint8; + default "0"; + description + "The ITSF’s input ClockTarget index number. "; + reference + "IEEE Std 802.1ASed 14.23.4"; + } + } + } + + grouping fttm-map-index-to-tsf-group { + description + "The fttmMapIndexToTsf object provides the mapping for all of the + FTTM’s input ClockTarget Interface index numbers to a Time Selection + Function (TSF) instance number and its input ClockTarget Interface + index number. See J.6."; + reference + "IEEE Std 802.1ASed 14.23.5"; + list fttm-map-index-to-tsf-list { + key "fttm-input-index-number"; + description + "This grouping allows associations of the FTTM input index numbers + to DTSF input index numbers and ITSF input index numbers."; + reference + "IEEE Std 802.1ASed 14.23.5"; + leaf fttm-input-index-number { + type uint8; + description + "The FTTM input index number."; + reference + "IEEE Std 802.1ASed"; + } + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number that the FTTM input index number is + connected to. A value of 0 represents the ITSF. Other values + represent the DTSF instance numbers."; + reference + "IEEE Std 802.1ASed 14.23.5"; + } + leaf tsf-input-index-number { + type uint8; + description + "The input index number of the TSF (DTSF or ITSF)"; + reference + "IEEE Std 802.1ASed 14.23.5 "; + } + } + } + + grouping fttm-map-ptp-instance-to-index-group { + description + "The fttmMapPtpInstanceToIndex object provides the mapping of the + instance index number of the PTP Instance to the FTTM input index + number."; + reference + "IEEE Std 802.1ASed 14.23.6"; + list fttm-map-ptp-instance-to-index-list { + key "fttm-input-index-number"; + description + "This grouping allows associations of the index numbers of PTP + Instances to FTTM input index numbers."; + reference + "IEEE Std 802.1ASed 14.23.6"; + uses instance-index-group; + leaf fttm-input-index-number { + type uint8; + description + "The FTTM input index number for the FTTM input ClockTarget + Interface associated with the PTP Instance with the + corresponding index number."; + reference + "IEEE Std 802.1ASed 14.23.6"; + } + } + } + + grouping fttm-hyst-group { + description + "The fttmHyst object holds the hysteresis to be added to fttmMaxAs[x][y] + (see 14.23.10) for the times of the two input FTTM input ClockTarget + interfaces with index numbers x and y."; + reference + "IEEE Std 802.1ASed 14.23.7"; + list fttm-hyst-lists { + key "fttm-input-index-number"; + description + "The x index."; + reference + "IEEE Std 802.1ASed 14.23.7"; + leaf fttm-input-index-number { + type uint8; + description + "The first FTTM input index number of the two-dimensional array ."; + reference + "IEEE Std 802.1ASed 14.23.7"; + } + list fttm-hyst-list { + key "fttm-input-index-number"; + description + "The y index."; + reference + "IEEE Std 802.1ASed 14.23.7"; + leaf fttm-input-index-number { + type uint8; + description + "The second FTTM input index number of the two-dimensional array ."; + reference + "IEEE Std 802.1ASed 14.23.7"; + } + leaf fttm-hyst { + type uint32; + units "2^-16 nanoseconds"; + default "0"; + description + "The object fttmHyst[x][y] holds the hysteresis to be added to + fttmMaxAs[x][y] (see 14.23.13) for the times of the two input + FTTM input ClockTarget interfaces with index numbers x and y."; + reference + "IEEE Std 802.1ASed 14.23.7 "; + } + } + } + } + + grouping max-as-group { + description + "The fttmMaxAs[x][y] object gives the maximum magnitude of expected + skew between times provided by the FTTM input ClockTarget interfaces + of index x and index y when those times are not faulty. This value + is used as the criteria to determine the trustworthiness of the times + being compared. See maxASxy in M.5"; + reference + "IEEE Std 802.1ASed 14.23.10"; + list fttm-max-as-lists { + key "fttm-input-index-number"; + description + "The index x."; + reference + "IEEE Std 802.1ASed 14.23.10"; + leaf fttm-input-index-number { + type uint8; + description + "The first FTTM input index number of the two-dimensional array."; + reference + "IEEE Std 802.1ASed 14.23.10"; + } + list fttm-max-as-list { + key "fttm-input-index-number"; + description + "The index y."; + reference + "IEEE Std 802.1ASed 14.23.10"; + leaf fttm-input-index-number { + type uint8; + description + "The second FTTM input index number of the two-dimensional array."; + reference + "IEEE Std 802.1ASed 14.23.10"; + } + leaf fttm-max-as { + type uint32; + units "2^-16 nanoseconds"; + default "0"; + description + "The maximum magnitude of expected skew between times provided + by the input ClockTarget interfaces of index x and index y when + those times are not faulty."; + reference + "IEEE Std 802.1ASed 14.23.10"; + } + } + } + } + + grouping fttm-sel-change-thresh-group { + description + "The fttmSelChangeThresh object gives the time difference change + threshold that is used by each TSF instance to determine whether + it continues to use the previously selected time index or to change + to the current time index that best satisfies the selection criteria + (e.g., the time index that currently satisfies the mid-value selection + criteria of the MVTISA, see 20.3.5)."; + reference + "IEEE Std 802.1ASed 14.23.15"; + list fttm-sel-change-thresh-list { + key "tsf-instance-number"; + description + "The fttmSelChangeThresh object gives the time difference change + threshold that is used by each TSF instance to determine whether + it continues to use the previously selected time index or to change + to the current time index that best satisfies the selection criteria."; + reference + "IEEE Std 802.1ASed 14.23.15"; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number that the fttmSelChangeThresh object + is associated with. A value of 0 represents the ITSF. Other + values represent the DTSF instance numbers."; + reference + "IEEE Std 802.1ASed 14.23.15"; + } + leaf seconds { + type uint48; + default "0"; + description + "The integer portion of the timestamp in units of seconds."; + } + leaf fractional-nanoseconds { + type uint48; + default "0"; + description + "The fractional portion of the timestamp in units of 2^-16 ns."; + } + } + } + + grouping fttm-tsf-algo-name-group { + description + "The fttmTsfAlgoName object is a vector of strings, where each vector + member provides the name of the algorithm used by each active TSF + instance number (the ITSF and the active DTSFs)."; + reference + "IEEE Std 802.1ASed 14.23.21"; + list fttm-tsf-algo-name-list { + key "tsf-instance-number"; + description + "The fttmTsfAlgoName object is a vector of strings, where each vector + member provides the name of the algorithm used by each active TSF + instance number (the ITSF and the active DTSFs)"; + reference + "IEEE Std 802.1ASed 14.23.21"; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number for which the algorithm is to be queried."; + reference + "IEEE Std 802.1ASed 20.3.2.2"; + } + leaf fttm-tsf-algo-name { + type string; + config false; + description + "Each fttmTsfAlgoName[x] member, where x is a value from 0 to + fttmNumActiveDtsfs (see 14.23.13) and represents the TSF instance + number, is a 128 octet that contains a string with the name of + the algorithm for the TSF instance number."; + reference + "IEEE Std 802.1ASed 14.23.21"; + } + } + } + + grouping fttm-tsf-sel-time-index-group { + description + "The fttmTsfSelTimeIndex object gives the input time index that is + selected by each TSF instance."; + reference + "IEEE Std 802.1ASed 14.23.22"; + list fttm-tsf-sel-time-index-list { + key "tsf-instance-number"; + description + "The fttmTsfSelTimeIndex object gives the input time index that is + selected by each TSF instance."; + reference + "IEEE Std 802.1ASed 14.23.22"; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number for which the selected time-index is + to be queried."; + reference + "IEEE Std 802.1ASed 14.23.8"; + } + leaf fttm-tsf-sel-time-index { + type uint16; + default "511"; + config false; + description + "Gives the input time index that is selected to be the output of + the TSF instance."; + reference + "IEEE Std 802.1ASed 14.23.22"; + } + } + } + + augment "/ptp-tt:ptp/ptp-tt:common-services" { + description + "Augment IEEE Std 1588 commonServices with fault-tolerant-timing-module service."; + container fault-tolerant-timing-module-service { + if-feature "fttm"; + description + "The Fault-Tolerant Timing Module Service structure contains the + fttmSystemList, which is a list of instances of the Fault-Tolerant + Timing Module Service."; + reference + "14.23 of IEEE Std 802.1AS"; + list fttm-system { + key "fttm-system-index"; + description + "Indexed list of FTTM systems in the FTTM Service"; + leaf fttm-system-index { + type uint8; + description + "Index for the FTTM system."; + } + container fttm-system-ds { + description + "The fttmSystemDS describes the attributes of the + respective instance of the Fault-Tolerant Timing Module Service."; + reference + "14.23 of IEEE Std 802.1AS"; + uses fault-tolerant-timing-module-group; + } + container fttm-system-description-ds { + description + "The fttmSystemDescriptionDS contains descriptive information for + the respective instance of the Fault-Tolerant Timing Module Service."; + reference + "14.24 Fault-Tolerant Timing Module System Description Parameter + Data Set (fttmSystemDescriptionDS) of IEEE Std 802.1ASed"; + leaf user-description { + type string { + length "0..128"; + } + description + "Configuration description of the Fault-Tolerant Timing Module system."; + reference + "14.24.3 of IEEE Std 802.1ASed"; + } + } + } + } + } +} diff --git a/standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang b/standard/ieee/draft/802.1/DD/ieee802-dot1q-rap.yang similarity index 100% rename from standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang rename to standard/ieee/draft/802.1/DD/ieee802-dot1q-rap.yang diff --git a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp-bridge.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp-bridge.yang new file mode 100644 index 000000000..26d50d2de --- /dev/null +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp-bridge.yang @@ -0,0 +1,74 @@ +module ieee802-dot1q-mstp-bridge { + yang-version 1.1; + namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-mstp-bridge"; + prefix mstp-bridge; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-bridge { + prefix dot1q; + } + import ieee802-dot1q-rstp-bridge { + prefix rstp-bridge; + } + import ieee802-dot1q-mstp { + prefix mstp; + } + + 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 Multiple Spanning Tree Algorithm and Protocol (MSTP). + + 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-08-13 { + description + "Published as part of IEEE Std 802.1Qdy-2024. + + 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."; + } + + augment "/dot1q:bridges/dot1q:bridge/dot1q:component/dot1q:bridge-mst" { + when '../rstp-bridge:rstp'; + description + "Augment RSTP-capable Bridge component with MSTP configuration and + management."; + reference + "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; + uses mstp:bridge-component-parameters; + } + + augment "/if:interfaces/if:interface/dot1q:bridge-port" { + when 'rstp-bridge:rstp'; + description + "Augment RSTP Bridge Port with MSTP configuration."; + reference + "13.24, 13.25, and 13.27 of IEEE Std 802.1Q."; + uses mstp:bridge-port-parameters; + } +} diff --git a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang old mode 100755 new mode 100644 index bdd478741..ebca85a03 --- a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang @@ -6,12 +6,6 @@ module ieee802-dot1q-mstp { import ietf-interfaces { prefix if; } - import ieee802-dot1q-types { - prefix dot1qtypes; - } - import ieee802-dot1q-bridge { - prefix dot1q; - } import ieee802-dot1q-rstp { prefix rstp; } @@ -31,304 +25,412 @@ module ieee802-dot1q-mstp { E-mail: stds-802-1-chairs@ieee.org"; description - "This module provides management of 802.1Q Bridge components that - support the Multiple Spanning Tree Algorithm and Protocol (MSTP). - - Copyright (C) IEEE (2024). + "This module augments ieee802-dot1q-rstp to provide management of + IEEE Std 802.1Q Bridge components that support the + Multiple Spanning Tree Algorithm and Protocol (MSTP). + + 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 (2024). - This version of this YANG module is part of IEEE Std 802.1Q; see the - standard itself for full legal notices."; + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; - revision 2024-03-26 { + revision 2024-11-17 { description - "Published as part of IEEE Std 802.1Qdy-2024. + "Published as part of IEEE Std 802.1Qdy-2025. - The following reference statement identifies each referenced IEEE - Standard as updated by applicable amendments."; + 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."; + 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."; } - augment "/dot1q:bridges/dot1q:bridge/dot1q:component/dot1q:bridge-mst" { - when "../rstp:rstp"; - + grouping mst-config-id { description - "Augment RSTP-capable Bridge component with MSTP configuration and - management."; - reference - "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; - - container mst-config-id { - presence "The presence of this container indicates that MSTP is supported"; + "A system calculated MST Configuration Identifier (MCID), reflecting + the assignment of VIDs to the CIST, MSTIs, SPTs, or ESPs."; + reference + "13.8, 13.9, and item d) in 13.26 of IEEE Std 802.1Q."; + leaf format-selector { + type uint8; + config false; description - "Containing the MST Configuration Identifier of a Bridge."; + "The Configuration Identifier Format Selector. A value of 0 + indicates the format specified in IEEE Std 802.1Q."; reference - "Item d) in 13.26."; - leaf format-selector { - type int32 { - range "0"; - } - default "0"; - description - "In an MSTP Bridge, the MST Configuration Identifier's - Configuration Identifier Format Selector. This has a value of 0 - indicating the format specified in IEEE Std 802.1Q."; - reference - "Item a) in 13.8 of IEEE Std 802.1Q."; + "Item a) in 13.8 of IEEE Std 802.1Q."; + } + leaf configuration-name { + type string { + length "1..32"; } - leaf configuration-name { - type string { - length "1..32"; - } - description - "The Configuration Name in the MST Configuration Identifier."; - reference - "Item b) in 13.8:2 of IEEE Std 802.1Q."; + description + "The Configuration Name."; + reference + "Item b) in 13.8 of IEEE Std 802.1Q."; + } + leaf revision-level { + type uint16; + config false; + description + "The Revision Level."; + reference + "Item c) in 13.8 of IEEE Std 802.1Q."; } - leaf revision-level { - type uint32 { - range "0..65535"; - } - description - "The Revision Level in the MST Configuration Identifier."; - reference - "Item c) in 13.8 of IEEE Std 802.1Q."; - } - leaf configuration-digest { - type binary; - config false; - description - "The Configuration Digest in the MST Configuration Identifier - (16 octets)."; - reference - "Item d) in 13.8 of IEEE Std 802.1Q."; + leaf configuration-digest { + type binary { + length "16"; } + config false; + description + "The Configuration Digest (16 octets)."; + reference + "Item d) in 13.8 of IEEE Std 802.1Q."; } + } - container bridge-mstp { - presence "The presence of this container indicates that MSTP is supported"; + grouping bridge-component-parameters { + description + "This grouping comprises MSTP per-Bridge component parameters."; + container bridge-mstp { + presence "The presence of this container indicates that MSTP is + supported."; description - "Per-Bridge configuration and management parameters for the IST - and each MSTI in an MST Region."; + "Per-Bridge configuration and management parameters for the IST + and each MSTI in an MST Region."; reference - "Clause 13, 13.26 of IEEE Std 802.1Q."; + "Clause 13 and 13.26 of IEEE Std 802.1Q."; + container mst-config-id { + uses mst-config-id; + description + "This Bridge's MST Configuration Identifier."; + } leaf max-hops { - type int32 { + type uint8 { range "6..100"; } default "20"; description - "In an MSTP Bridge, the MaxHops parameter for the IST, also used - for each of the MSTIs. - - The value of this object MUST be retained across reinitializations - of the management system."; + "In an MSTP Bridge, the MaxHops parameter for the IST, and each + of the MSTIs."; reference - "Clause 13, Table 13-5, 13.26.4, item g) in 13.26 of - IEEE Std 802.1Q."; - } - leaf ist-internal-root-path-cost { - type uint32; - config false; + "Clause 13, Table 13-5, 13.26.4, item g) in 13.26 + of IEEE Std 802.1Q."; + } + container ist { description - "The Internal Root Path Cost for the IST calculated by this - Bridge after the addition of the Internal Port Path Cost for the - Root Port (or Master Port) for this IST (MSTID 0) or MST."; - reference - "13.9, 13.10, 13.5.3, 13.26.10 and item i) in 13.26 of - IEEE Std 802.1Q."; + "CIST parameter(s) additional to those for RSTP."; + leaf internal-root-path-cost { + type uint32; + config false; + description + "The Internal Root Path Cost for the CIST including the + Internal Port Path Cost for the Root Port."; + reference + "13.9, 13.10, 13.5.3, 13.26.10, and octets 90-93 in Figure 14-1 + of IEEE Std 802.1Q."; + } } - list mst { + list msti { key "mstid"; - description - "Per-Bridge configuration and management parameters for each MST, + description + "Per-Bridge configuration and management parameters for each MST, with an MSTID in the range allocated for MSTP configuration."; reference - " "; + "13.26, 13.9, and 13.11 of IEEE Std 802.1Q."; leaf mstid { type uint16 { range "1..4091"; } - description - "MSTIDs allocated for use by MSTP (1..4091) to identify MSTIs. - Other MSTIDs in the 12-bit range are reserved [for use in - the MST Configuration Table, whose configuration is identified - by the Configuration Digest in the MST Configuration Identifier - (mst-config-id/configuration-digest)] for the CIST-MSTID, - SPBM-MSTID, SPBV-MSTID, TE-MSTID, and SPVID-Poll-MSTID."; - reference - "8.4, 8.6.1, 8.9.3, 13.2.1 of IEEE Std 802.1Q."; + description + "MSTIDs allocated for use by MSTP (1..4091) to identify MSTIs. + Other MSTIDs in the 12-bit range are reserved [for use in + the MST Configuration Table, whose configuration is identified + by the Configuration Digest in the MST Configuration Identifier + (mst-config-id/configuration-digest)] for the CIST-MSTID, + SPBM-MSTID, SPBV-MSTID, TE-MSTID, and SPVID-Poll-MSTID."; + reference + "8.4, 8.6.1, 8.9.3, 13.2.1 of IEEE Std 802.1Q."; } - leaf port-id-priority { - type dot1qtypes:priority-type; + leaf bridge-priority { + type rstp:id-priority; description - "The priority component of this Bridge Port's Port Identifier for - the MSTI, encoded in the four most-significant bits of octet 15 of - the MSTI Configuration Message. - - The value of this object MUST be retained across reinitializations - of the management system."; + "The priority component of this Bridge's Bridge Identifier for + the MSTI, encoded in the four most-significant bits of octet 14 + of the MST Configuration Message."; reference - "13.26.3, 13.11, 14.4.1, and - item f) in 13.26 of IEEE Std 802.1Q."; //!! - } + "13.26.3, 13.11, 14.4.1, and item f) in 13.26 + of IEEE Std 802.1Q."; + } + container regional-root-id { + uses rstp:bridge-id; + config false; + description + "The MSTI Regional Root Identifier for this MSTI."; + reference + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + } leaf internal-root-path-cost { type uint32; config false; description - "The Internal Root Path Cost for this MSTI calculated by this - Bridge after the addition of the Internal Port Path Cost for the - Root Port (or Master Port) for this MSTI."; + "The Internal Root Path Cost for the MSTI including the + Internal Port Path Cost for the Root Port for this MSTI."; reference - "13.9, 13.10, 13.5.3, 13.26.10 and item i) in 13.26 of - IEEE Std 802.1Q."; + "13.9, 13.10, 13.5.3, 13.26.10 and item i) in 13.26 + of IEEE Std 802.1Q."; } - leaf root-port-number { - type dot1qtypes:port-number-type; + leaf root-port { + type union { + type if:interface-ref; + type empty; + } config false; description - "The port number of the Root Port for this MSTI."; + "A reference to the Root Port for the MSTI, empty if this + Bridge is the MSTI Regional Root."; reference - "13.4, 13.5, 13.26.9, and item h) in 13.26 of IEEE Std 802.1Q.";//!! + "13.5 and 13.26.9 of IEEE Std 802.1Q."; } } } } - augment "/if:interfaces/if:interface/dot1q:bridge-port" { - when "rstp:rstp"; + + grouping bridge-port-parameters { description - "Augment RSTP Bridge Port with MSTP configuration"; + "This grouping comprises MSTP Bridge Port parameters."; reference "13.24, 13.25, and 13.27 of IEEE Std 802.1Q."; container port-mstp { - presence "The presence of this container indicates that MSTP is supported"; + presence "The presence of this container indicates that MSTP is + supported."; description - "Per-Bridge Port configuration and management parameters for the IST - and each MSTI in an MST Region."; - list mst { + "Per-Bridge Port interface parameters for MST Configuration, + for the IST, and for each MSTI."; + leaf boundary-port { + type boolean; + config false; + description + "True if the port is a Boundary Port of the Region."; + reference + "13.12 of IEEE Std 802.1Q."; + } + leaf restricted-domain-role { + type boolean; + description + "If TRUE, causes a port that is a Boundary Port of an SPT Region + not to be selected as Root Port for the CIST, any MSTI, or any + SPT, even it has the best spanning tree priority vector."; + reference + "13.27.63 of IEEE Std 802.1Q."; + } + container ist { + description + "CIST parameters additional to those for RSTP."; + container mst-config-id { + uses mst-config-id; + config false; + description + "The MST Configuration Identifier transmitted by the CIST's + Designated Bridge for the attached LAN."; + reference + "Figure 14-1 of IEEE Std 802.1Q."; + } + leaf fix-internal-port-path-cost { + type uint32 { + range "0..200000000"; + } + default "0"; + description + "Zero if the internal-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 internal-port-path-cost { + type uint32 { + range "1..200000000"; + } + config false; + description + "The CIST's Internal Port Path Cost for this Bridge Port."; + reference + "13.10, 13.18, and Table 13-4 of IEEE Std 802.1Q."; + } + leaf internal-root-path-cost { + type uint32; + config false; + description + "The CIST Internal Root Path Cost advertised in BPDUs by the + Designated Bridge for the CIST. Zero if the field was not + present in the last BPDU received from that Bridge."; + reference + "13.5.3, 13.9, 13.27.20, 14.4.1, and 27.6 of IEEE Std 802.1Q."; + } + container designated-bridge { + uses rstp:bridge-id; + config false; + description + "The CIST Bridge Identifier advertised in BPDUs by the CIST's + Designated Bridge. Zero if the field was not present in the + last BPDU received from that Bridge."; + reference + "Octets 94-101 of Figure 14-1 of IEEE Std 802.1Q."; + } + leaf remaining-hops { + type uint8; + config false; + description + "The remainingHops for the CIST, received from or to be + transmitted by this port's CIST Designated Bridge."; + reference + "13.20, 13.26.4, 13.26.11, 13.27.40, 14.2.11, and octet 102 in + Figure 14-1 of IEEE Std 802.1Q."; + } + } + list msti { key "mstid"; - description - "Per-Bridge Port configuration and management parameters for each MST, - with an MSTID in the range allocated for MSTP configuration."; + description + "Per-Bridge Port parameters for each MSTI with an MSTID in the + range allocated for MSTP configuration."; reference " "; leaf mstid { type uint16 { range "1..4091"; - } - description - "MSTIDs allocated for use by MSTP (1..4091) to identify MSTIs."; - reference - "8.4, 8.6.1, 8.9.3, 13.2.1 of IEEE Std 802.1Q."; - } - leaf msti-port-state { - type enumeration { - enum discarding { - value 1; - } - enum learning { - value 2; - } - enum forwarding { - value 3; - } } + description + "MSTIDs allocated for use by MSTP (1..4091) to identify MSTIs."; + reference + "8.4, 8.6.1, 8.9.3, 13.2.1 of IEEE Std 802.1Q."; + } + leaf port-state { + type rstp:port-state; config false; description - "The port's Port State, summarizing the application of learning to - received frames, and the forwarding of relayed frames, for frames - assigned to this MSTI."; + "The Port State for this MSTI."; reference - "8.4, 13.4, item aw) and item ba) in 13.27 of IEEE Std 802.1Q."; + "8.4, 8.6, 8.7, 13.4, item aw) and item ba) in 13.27 + of IEEE Std 802.1Q."; } - leaf msti-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; - } - enum master-port { - value 6; + leaf port-role { + type union { + type rstp:port-role; + type enumeration { + enum master-port { + value 6; + description "A Master Port."; + } } } config false; description - "The port's Port Role for the MSTI. Disabled Port, Root Port, - Designated Port, Alternate Port, Backup Port, or Master Port."; + "The Port Role for the MSTI."; reference - "13.4, 13.5, 13.12, 13.24, 13.27.66, and item bn) in 13.27 of - IEEE Std 802.1Q.";//!! + "13.4, 13.5, 13.12, 13.24, 13.27.66, and item bn) in 13.27 + of IEEE Std 802.1Q."; } - leaf msti-bridge-id-priority { - type dot1qtypes:priority-type; + container port-id { + uses rstp:port-id; description - "The priority component of this Bridge's Bridge Identifier for the - MSTI, encoded in the four most-significant bits of octet 14 of the - MSTU Configuration Message. - - The value of this object MUST be retained across reinitializations - of the management system."; + "This Bridge Port's Port Identifier for the MSTI, including the + manageable port-priority encoded in the four most-significant + bits of octet 15 of the MSTI Configuration Message."; reference - "13.26.3, 13.11, 14.4.1, and item f) in 13.26 of IEEE Std 802.1Q."; - } - leaf msti-internal-port-path-cost { - type uint32; + "13.18, 13.27.64, and item e) in 14.4.1, of IEEE Std 802.1Q."; + } + leaf fix-internal-port-path-cost { + type uint32 { + range "0..200000000"; + } + default "0"; + description + "Zero if the internal-port-path-cost for this Bridge Port and + MSTI is to be determined by the Bridge, and the value to be + used otherwise."; + reference + "13.11, 13.18, and Table 13-4 of IEEE Std 802.1Q."; + } + leaf internal-port-path-cost { + type uint32 { + range "1..200000000"; + } + config false; description "The Internal Port Path Cost for this Bridge Port and MSTI."; reference "Item b) of 13.2.1, and item ay) in 13.27 of IEEE Std 802.1Q."; } - leaf msti-regional-root-id { - type uint32; - config false; - description - "The MSTI Regional Root Identifier in Configuration BPDUs transmitted - by the Designated Bridge for the attached LAN and this MSTI."; - reference - "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + container regional-root-id { + uses rstp:bridge-id; + config false; + description + "The MSTI Regional Root Identifier in Configuration BPDUs + transmitted by the Designated Bridge for the attached LAN + and this MSTI."; + reference + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + } + leaf internal-root-path-cost { + type uint32; + config false; + description + "The MSTI Internal Path Cost advertised in BPDUS by the + Designated Bridge for the attached LAN and this MSTI."; + reference + "13.5.3, 13.9, 13.27.20, 14.4.1, and 27.6 of IEEE Std 802.1Q."; + } + container designated-bridge-id { + uses rstp:bridge-id; + config false; + description + "The Bridge Identifier of the Bridge believed to be the + Designated Bridge for the attached LAN and this MSTI. The + bridge-priority component is encoded in the MSTI Configuration + Message, the system-id-extension component is the MSTID, and + the bridge-address is that of the ist/designated-bridge."; + reference + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + } + container designated-port-id { + uses rstp:port-id; + config false; + description + "The Port Identifier of the Designated Port for this MSTI for + the attached LAN, transmitting the port-priority in the + MSTI Configuration Message and the port-number in the CIST + Port Identifier field."; + reference + "13.27.20, 13.10, item ar) in 13.27, octet 15 in Figure 14-3, + and octets 26 and 27 of Figure 14-1 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 MSTI 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 remaining-hops { + type uint8; + config false; + description + "The remainingHops for the MSTI, received from or transmitted + by the MSTI's Designated Bridge for this port."; + reference + "13.20, 13.26.4, 13.26.11, 13.27.40, 14.2.11, and octet 16 in + Figure 14-3 of IEEE Std 802.1Q."; } - } - leaf msti-internal-root-path-cost { - type uint32; - config false; - description - "The MSTI Internal Path Cost advertised in BPDUS by the Designated - Bridge for the attached LAN and this MSTI."; - reference - "27.6, 14.4.1, 13.27.20, 14.4.1, and item ar) in 13.27 of - IEEE Std 802.1Q."; //!! - } - leaf msti-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 and this MSTI."; - reference - "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; - } - leaf msti-designated-port-id { - type uint32; - config false; - description - "The Port Identifier of the Bridge Port that this port considers to - be the Designated Port for the attached LAN and this MSTI."; - reference - "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } } } diff --git a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp-bridge.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp-bridge.yang new file mode 100644 index 000000000..7c25f6b45 --- /dev/null +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp-bridge.yang @@ -0,0 +1,68 @@ +module ieee802-dot1q-rstp-bridge { + yang-version 1.1; + namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-rstp-bridge"; + prefix rstp-bridge; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-bridge { + prefix dot1q; + } + import ieee802-dot1q-rstp { + prefix rstp; + } + + 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). + + 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-08-13 { + description + "Published as part of IEEE Std 802.1Qdy-2024. + + 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."; + } + + augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { + description + "Augment Bridge component with RSTP parameters."; + reference + "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; + uses rstp:bridge-component-parameters; + } + + 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."; + uses rstp:bridge-port-parameters; + } +} diff --git a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang old mode 100755 new mode 100644 index 1c689343f..8def5db9d --- a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang @@ -9,166 +9,340 @@ module ieee802-dot1q-rstp { import ietf-interfaces { prefix if; } - import ietf-routing-types { - prefix rt-types; - } - import ieee802-dot1q-types { - prefix dot1qtypes; - } - import ieee802-dot1q-bridge { - prefix dot1q; + 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 + WG-EMail: stds-802-1-l@ieee.org - Contact: IEEE 802.1 Working Group Chair - Postal: C/O IEEE 802.1 Working Group + 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"; + 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). + "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 (2024). + 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."; + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; - revision 2024-03-26 { + revision 2024-11-17 { description - "Published as part of IEEE Std 802.1Qdy-2024. + "Published as part of IEEE Std 802.1Qdy-2025. - The following reference statement identifies each referenced IEEE - Standard as updated by applicable amendments."; + 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."; + 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."; + } + + 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."; + } } - augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { + 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.26.2, 14.1.2, 14.2.5, and item e) in 13.26 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.27, 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."; + } + } + + 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 item 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 - "Augment Bridge with RSTP configuration."; + "The Port Role assigned by the Bridge's spanning tree protocol entity + for a given spanning tree."; reference - "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; + "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"; + 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 withdrawn { - value 1; // previously assigned to IEEE Std 802.1G-1996 (withdrawn) - } - enum rstp-rapid-spanning-tree-protocol { + 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-spb { + 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."; } } - default "rstp-rapid-spanning-tree-protocol"; 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; + "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 { + uses bridge-id; 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."; + "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, and item e) in 13.26 of IEEE Std 802.1Q."; + "13.26.2, 14.1.2, 14.2.5, and item e) in 13.26 of IEEE Std 802.1Q."; } - leaf cist-bridge-id-priority { - type dot1qtypes:priority-type; - 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; + container root-id { + uses bridge-id; 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."; + "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."; } - leaf external-root-path-cost { + leaf 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."; + "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 cist-root-port-number { - type dot1qtypes:port-number-type; + leaf root-port { + type union { + type if:interface-ref; + type empty; + } 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."; + "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.4, 13.5, 13.26.9, and item h) in 13.26 of IEEE Std 802.1Q."; + "13.5 and 13.26.9 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."; + "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."; + "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; + type uint8; 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."; + "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."; } @@ -177,295 +351,235 @@ module ieee802-dot1q-rstp { 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."; + "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 g) in 13.26.4 of + IEEE Std 802.1Q."; } leaf bridge-max-age { type uint8 { range "6..40"; } - default "20"; units "seconds"; + default "20"; 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."; + "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-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"; + default "15"; 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."; + "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 g) in 13.26 of IEEE Std 802.1Q."; - } + "Table 13-5, 13.26.4, and item a) in 13.26.4 of IEEE Std 802.1Q."; + } leaf tx-hold-count { - type int32 { + 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. - - The value of this object MUST be retained across - reinitializations of the management system."; + (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 + "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"; + leaf last-topology-change { + type yang:date-and-time; 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'."; + "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."; } } } - augment "/if:interfaces/if:interface/dot1q:bridge-port" { + grouping bridge-port-parameters { description - "Augment Bridge Port with RSTP configuration"; - reference - "13.24, 13.25, and 13.27 of IEEE Std 802.1Q."; + "This grouping comprises per-interface parameters."; container rstp { - presence "The presence of this container indicates that RSTP is supported"; - leaf cist-port-state { - type enumeration { - enum discarding { - value 1; - } - enum learning { - value 2; - } - enum forwarding { - value 3; - } - } + 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'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)."; + "The Port State for RSTP, and for the CIST for MSTP and SPB."; reference - "8.4, 13.4, item aw) and item ba) in 13.27 of IEEE Std 802.1Q."; + "8.4, 8.6, 8.7, 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; - } - } + leaf port-role { + type port-role; config false; description - "The port's Port Role for the CIST. Disabled Port, Root Port, - Designated Port, Alternate Port, or Backup Port."; + "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."; + "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"; - config 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.65, 13.29.34, 16.2, 16.3, 26.5, 27.6, 27.20, - item t) in 13.27 of IEEE Std 802.1Q."; + "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"; - config 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.64, 13.29.25, 16.2, 16.3, item s) in 13.27 of - IEEE Std 802.1Q."; + "13.20, 13.27.65, 13.29.25, 16.2, 16.3, item t) in 13.27 + of IEEE Std 802.1Q."; } - leaf cist-port-id { - type uint16; - config false; + container port-id { + uses port-id; 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."; + "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, item bd) in 13.27 of IEEE Std 802.1Q."; + "13.27.46, 14.1.2, items bd) and be) in 13.27 + of IEEE Std 802.1Q."; } - leaf cist-port-priority { - type dot1qtypes:priority-type; + leaf fix-port-path-cost { + type uint32 { + range "0..200000000"; + } + default "0"; 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."; + "Zero if the port-path-cost is to be determined by the Bridge, + and the value to be used otherwise."; reference - "13.27.47, 14.2.7, and item be) in 13.27 of IEEE Std 802.1Q."; + "13.10, 13.18, and Table 13-4 of IEEE Std 802.1Q."; } - leaf external-port-path-cost { + leaf port-path-cost { type uint32 { - range "0..200000000"; + range "1..200000000"; } + config false; 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."; + "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.27.25, Table 13-4, and item g) of 13.27 of IEEE Std 802.1Q."; + "13.5.3, 13.27.25, Table 13-4, and item g) of 13.27 + of IEEE Std 802.1Q."; } - leaf cist-root-id { - type uint32; + leaf designated-protocol-version { + type uint8; config false; description - "The CIST Root Identifier in Configuration BPDUs transmitted by the + "The Protocol Version Identifier in 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."; + "14.2.2, 14.3, and Figure 14-1 of IEEE Std 802.1Q."; } - leaf cist-external-path-cost { - type uint32; + 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."; + } + container root-id { + uses bridge-id; config false; description - "The External Path Cost advertised in BPDUS by the Designated Bridge - for the attached LAN."; + "The CIST Root Identifier in Configuration BPDUs transmitted 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."; + "14.1.2, 13.27.20, 13.10, and item ar) in 13.27 + of IEEE Std 802.1Q."; } - leaf designated-bridge-id { + leaf root-path-cost { type uint32; config false; description - "The Bridge Identifier of the Bridge that this port considers to be - the Designated Bridge for the attached LAN."; + "The CIST External Path Cost advertised in BPDUS by the + Designated Bridge for the CIST for the attached LAN."; reference - "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + "14.1.2, 13.27.20, item ar) in 13.27, and 27.6 + of IEEE Std 802.1Q."; } - leaf designated-port-id { - type binary { - length "2"; - } + container designated-bridge-id { + uses bridge-id; config false; description - "The Port Identifier of the Bridge Port that this port considers to - be the Designated Port for the attached LAN."; + "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 - "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; + "14.1.2, 13.27.20, 13.10, item ar) in 13.27, and Figure 14-1 + of IEEE Std 802.1Q."; } - leaf port-protocol-migration-check { - type boolean; + container designated-port-id { + uses port-id; + config false; 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."; + "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.38, 13.32, and item j) in 13.27 of IEEE Std 802.1Q."; + "13.27.20, 13.10, item ar) in 13.27, and octets 26 and 27 of + Figure 14-1 of IEEE Std 802.1Q."; } leaf admin-edge-port { type boolean; default "false"; 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."; + "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."; } @@ -473,9 +587,9 @@ module ieee802-dot1q-rstp { 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."; + "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."; } @@ -483,39 +597,38 @@ module ieee802-dot1q-rstp { type boolean; default "true"; description - "Administratively set true(1) to allow the value of oper-edge-port - is to be maintained automatically, with continuous monitoring of + "Administratively set true(1) to allow 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."; + 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 auto-isolate-port { + leaf disputed-port { type boolean; - default "false"; + config false; 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."; + "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.23, 13.27.19, 13.33, and item d) in 13.27 of IEEE Std 802.1Q."; + "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 + "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."; + "13.23, 13.27.27, 13.33, and item i) in 13.27 + of IEEE Std 802.1Q."; } } }