From f5d05e9ad13810b0a29af02aa3f3c5404942246c Mon Sep 17 00:00:00 2001 From: Scott Mansfield Date: Fri, 12 Jul 2024 14:59:34 -0400 Subject: [PATCH] July 2024 IEEE 802.1 YANG update Removed .1DC from check until fixed. --- standard/ieee/check.sh | 4 +- .../draft/802.1/ASdm/ieee802-dot1as-hs.yang | 320 ++-- .../draft/802.1/ASdn/ieee802-dot1as-gptp.yang | 1238 +++++++++++++++ .../draft/802.1/ASdn/ieee802-dot1as-ptp.yang | 1377 ----------------- .../draft/802.1/ASds/check_pyang_extra_flags | 1 + .../draft/802.1/ASds/ieee802-dot1as-hd.yang | 72 + .../draft/802.1/Qdd/ieee802-dot1q-rap.yang | 850 ++++++++++ .../802.1/Qdx/ieee802-dot1q-cbsa-bridge.yang | 4 +- .../draft/802.1/Qdx/ieee802-dot1q-cbsa.yang | 13 +- .../draft/802.1/Qdy/ieee802-dot1q-mstp.yang | 853 +++------- .../draft/802.1/Qdy/ieee802-dot1q-rstp.yang | 728 ++++----- .../802.1/qrev/ieee802-dot1q-cbsa-bridge.yang | 8 +- .../draft/802.1/qrev/ieee802-dot1q-cbsa.yang | 25 +- .../draft/802.1/qrev/ieee802-dot1q-mstp.yang | 27 +- .../draft/802.1/qrev/ieee802-dot1q-rstp.yang | 17 +- .../802.1/qrev/ieee802-dot1q-tsn-types.yang | 68 +- .../ieee/draft/802/ieee802-ethertype.yang | 607 ++++++++ 17 files changed, 3596 insertions(+), 2616 deletions(-) create mode 100644 standard/ieee/draft/802.1/ASdn/ieee802-dot1as-gptp.yang delete mode 100755 standard/ieee/draft/802.1/ASdn/ieee802-dot1as-ptp.yang create mode 100644 standard/ieee/draft/802.1/ASds/check_pyang_extra_flags create mode 100644 standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang create mode 100644 standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang create mode 100644 standard/ieee/draft/802/ieee802-ethertype.yang diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index d5aac6d60..1a9aaab0f 100755 --- a/standard/ieee/check.sh +++ b/standard/ieee/check.sh @@ -7,7 +7,9 @@ cwd=$(pwd) ietf_dir="standard/ietf" ieee_dir="standard/ieee" -to_check="draft/60802 draft/qrev draft/802.1/ASdm draft/802.1/ASdn draft/802.1/CScorr draft/802.1/DC draft/802.1/Qdj draft/802.1/Qdx draft/802.1/Qdy draft/1588 published/1906.1 published/802 published/802.1" + +#draft/802.1/DC removed until fixed +to_check="draft/60802 draft/qrev draft/802.1/ASdm draft/802.1/ASdn draft/802.1/ASds draft/802.1/CScorr draft/802.1/Qdd draft/802.1/Qdj draft/802.1/Qdx draft/802.1/Qdy draft/1588 draft/802 published/1906.1 published/802 published/802.1" # relax constraint for now # add --ietf if you want to do strict IETF checking diff --git a/standard/ieee/draft/802.1/ASdm/ieee802-dot1as-hs.yang b/standard/ieee/draft/802.1/ASdm/ieee802-dot1as-hs.yang index 256c01184..19c117f3c 100644 --- a/standard/ieee/draft/802.1/ASdm/ieee802-dot1as-hs.yang +++ b/standard/ieee/draft/802.1/ASdm/ieee802-dot1as-hs.yang @@ -3,11 +3,14 @@ module ieee802-dot1as-hs { namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-hs"; prefix dot1as-hs; + import ietf-yang-types { + prefix yang; + } import ieee1588-ptp-tt { prefix ptp-tt; } - import ieee802-dot1as-ptp { - prefix dot1as-ptp; + import ieee802-dot1as-gptp { + prefix dot1as-gptp; } organization @@ -25,31 +28,31 @@ module ieee802-dot1as-hs { E-mail: stds-802-1-chairs@ieee.org"; description - "Management objects that control hot standby systems as specified in - IEEE Std 802.1ASdm-d1.3. + "Management objects that control hot standby systems as + specified in IEEE Std 802.1ASdm. - References in this YANG module to IEEE Std 802.1ASdm are to 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, and IEEE Std 802.1ASdm. + References in this YANG module to IEEE Std 802.1AS are to + 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, and + IEEE Std 802.1ASdm. - Copyright (C) IEEE (2023). - This version of this YANG module is part of IEEE Std 802.1ASdm; + 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-02-19 { + revision 2024-02-26 { description - "Published as part of IEEE Std 802.1ASdm-XXXX. + "Published as part of IEEE Std 802.1ASdm-2024. Initial version."; reference - "IEEE Std 802.1ASdm - YANG Data Model"; + "IEEE Std 802.1AS - YANG Data Model"; } - // The year (XXXX) will be replaced during publication. - // This is the 1st balloted draft D0.1 - // of the YANG module for amendment IEEE P802.1ASdm. - feature hot-standby { description - "This feature indicates that the device supports the hot-standby functionality."; + "This feature indicates that the device supports the + hot-standby functionality."; } typedef hot-standby-system-state-type { @@ -57,32 +60,40 @@ module ieee802-dot1as-hs { enum init { value 0; description - "Initialization after the HotStandbySystem powers on and is enabled. In this state, the system is - waiting for both PTP Instances to synchronize."; + "Initialization after the HotStandbySystem powers on and + is enabled. In this state, the system is waiting for + both PTP Instances to synchronize."; } enum redundant { value 1; description - "Both PTP Instances are synchronized according to the requirements of the - respective application or profile standard (see 3.24). Time synchronization is redundant."; + "Both PTP Instances are synchronized according to the + requirements of the respective application or profile + standard. Time synchronization is redundant."; } enum not-redundant { value 2; description - "One PTP Instance is synchronized, and the other PTP Instance is faulted (not - synchronized). Time synchronization continues to meet the requirements of the respective - application or profile standard (see 3.24). Time synchronization is not redundant."; + "One PTP Instance is synchronized, and the other + PTP Instance is faulted (not synchronized). Time + synchronization continues to meet the requirements of + the respective application or profile standard. Time + synchronization is not redundant."; } enum out-of-sync { value 3; description - "The HotStandbySystem is adjusting phase/frequency of its local time using the - data stored while the system was in the REDUNDANT or NOT_REDUNDANT state, but the local - time will eventually drift relative to other time-aware systems. During OUT_OF_SYNC state, time - synchronization might not meet the requirements of the respective application or profile standard - (see 3.24 of IEEE Std 802.1ASdm)."; + "The HotStandbySystem is adjusting phase/frequency of + its local time using the data stored while the system + was in the REDUNDANT or NOT_REDUNDANT state, but the + local time will eventually drift relative to other + time-aware systems. During OUT_OF_SYNC state, time + synchronization might not meet the requirements of the + respective application or profile standard."; } } + description + "Possible states of the hot-standby system."; } typedef nrr-comp-method-type { @@ -90,29 +101,37 @@ module ieee802-dot1as-hs { enum sync { value 0; description - "If the value is Sync and driftTrackingTlvSupport (see 10.2.4.27) is TRUE, neighborRateRatio is - populated with the value of nrrSync whenever a new value of nrrSync is computed."; + "If the value is Sync and driftTrackingTlvSupport is + TRUE, neighborRateRatio is populated with the value of + nrrSync whenever a new value of nrrSync is computed."; } enum pdelay { value 1; description - "If the value is Pdelay or if driftTrackingTlvSupport (10.2.4.27) is FALSE, neighborRateRatio is - populated with the value of nrrPdelay whenever a new value of nrrPdelay is computed."; + "If the value is Pdelay or if driftTrackingTlvSupport + is FALSE, neighborRateRatio is populated with the value + of nrrPdelay whenever a new value of nrrPdelay is + computed."; } } + description + "typdedef for nrrCompMethod."; } - augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:parent-ds" { + augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance" + + "/ptp-tt:parent-ds" { description "Augment IEEE Std 1588 parentDS."; leaf gm-present { type boolean; config false; description - "The value of gmPresent is set equal to the value of the global variable gmPresent (see 10.2.4.13). - This parameter indicates to the ClockTarget whether a Grandmaster PTP Instance is present."; + "The value of gmPresent is set equal to the value of the + global variable gmPresent. This parameter indicates to the + ClockTarget whether a Grandmaster PTP Instance is + present."; reference - "14.4.8 of IEEE Std 802.1ASdm"; + "14.4.8 of IEEE Std 802.1AS"; } } @@ -121,129 +140,149 @@ module ieee802-dot1as-hs { "Augment IEEE Std 1588 instanceList."; container ptp-instance-sync-ds { description - "The ptpInstanceSyncDS describes the synchronization status of the PTP Instance."; + "The ptpInstanceSyncDS describes the synchronization status + of the PTP Instance."; reference - "14.8 of IEEE Std 802.1ASdm"; + "14.8 of IEEE Std 802.1AS"; leaf is-synced { type boolean; config false; description - "The value of the global variable isSynced (see 18.4.1.1)"; + "The value of the global variable isSynced."; reference - "14.8.2 of IEEE Std 802.1ASdm"; + "14.8.2 of IEEE Std 802.1AS"; } leaf offset-from-time-transmitter-max { type ptp-tt:time-interval; - config true; description - "The value is the threshold for offsetFromTimeTransmitter (see 18.4.1.2), below which the PTP Instance is - considered to be synchronized."; + "The value is the threshold for + offsetFromTimeTransmitter, below which the PTP Instance + is considered to be synchronized."; reference - "14.8.3 of IEEE Std 802.1ASdm"; + "14.8.3 of IEEE Std 802.1AS"; } - leaf rx_sync-count-time-receiver-p-thresh { + leaf rx-sync-count-time-receiver-p-thresh { type uint32; - config true; description - "The value of rxSyncCountTimeReceiverPThresh is the threshold for rxSyncCountTimeReceiverP (see 18.4.1.4), - above which the PTP Instance is considered to be synchronized."; + "The value of rxSyncCountTimeReceiverPThresh is the + threshold for rxSyncCountTimeReceiverP, above which + the PTP Instance is considered to be synchronized."; reference - "14.8.4 of IEEE Std 802.1ASdm"; + "14.8.4 of IEEE Std 802.1AS"; } leaf offset-max-exceeded-count-thresh { type uint32; - config true; description - "The value of offsetMaxExceededCountThresh (see 18.4.1.7) is the threshold for the number of consecutive - exceedances of offsetFromTimeTransmitterMax (see 18.4.1.3) by offsetFromTimeTransmitter (see 18.4.1.2), - at which isSynced (see 18.4.1.1) is no longer TRUE."; + "The value of offsetMaxExceededCountThresh is the + threshold for the number of consecutive exceedances of + offsetFromTimeTransmitterMax by + offsetFromTimeTransmitter, at which isSynced is no + longer TRUE."; reference - "14.8.5 of IEEE Std 802.1ASdm"; + "14.8.5 of IEEE Std 802.1AS"; } leaf offset-max-met-count-thresh { type uint32; - config true; description - "The value of offsetMaxMetCountThresh (18.4.1.9) is the threshold for the number of consecutive - occurrences of offsetFromTimeTransmitter (see 18.4.1.2) being within offsetFromTimeTransmitterMax - (see 18.4.1.3), at which isSynced (see 18.4.1.1) is changed to TRUE if it currently is FALSE."; + "The value of offsetMaxMetCountThresh is the threshold + for the number of consecutive occurrences of + offsetFromTimeTransmitter being within + offsetFromTimeTransmitterMax, at which isSynced is + changed to TRUE if it currently is FALSE."; reference - "14.8.6 of IEEE Std 802.1ASdm"; + "14.8.6 of IEEE Std 802.1AS"; } } container drift-tracking-ds { description - "The driftTrackingDS contains a managed object that is used to enable or disable the optional Drift_Tracking - TLV."; + "The driftTrackingDS contains a managed object that is used + to enable or disable the optional Drift_Tracking TLV."; reference - "14.9 of IEEE Std 802.1ASdm"; + "14.9 of IEEE Std 802.1AS"; leaf drift-tracking-tlv-support { type boolean; - config true; description - "The value of driftTrackingTlvSupport indicates whether the Drift_Tracking TLV is enabled or disabled."; + "The value of driftTrackingTlvSupport indicates whether + the Drift_Tracking TLV is enabled or disabled."; reference - "14.9.2 of IEEE Std 802.1ASdm"; + "14.9.2 of IEEE Std 802.1AS"; } } } - augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:ports/ptp-tt:port/ptp-tt:port-ds" { + augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance" + + "/ptp-tt:ports/ptp-tt:port/ptp-tt:port-ds" { description "Augment IEEE Std 1588 commonServices."; leaf gptp-capable-state-machines-enabled { type boolean; - config true; description - "A Boolean that is used to enable or disable the GptpCapableTransmit, GptpCapableReceive, and + "A Boolean that is used to enable or disable the + GptpCapableTransmit, GptpCapableReceive, and GptpCapableIntervalSetting state machines."; reference - "14.8.55 of IEEE Std 802.1ASdm"; + "14.8.55 of IEEE Std 802.1AS"; } leaf nrr-pdelay { type int32; config false; description - "The value is an estimate of the ratio of the frequency of the LocalClock entity of the time-aware system - at the other end of the link attached to this Link Port, to the frequency of the LocalClock entity of this - time-aware system (see 10.2.5.7). nrrPdelay is expressed as the fractional frequency offset stored in the - global variable nrrPdelay (see 11.2.13.13) multiplied by 2^41, i.e., the quantity (nrrPdelay – 1.0)(2^41)."; + "The value is an estimate of the ratio of the frequency of + the LocalClock entity of the time-aware system at the + other end of the link attached to this Link Port, to the + frequency of the LocalClock entity of this time-aware + system. nrrPdelay is expressed as the fractional frequency + offset stored in the global variable nrrPdelay multiplied + by 2^41, i.e., the quantity (nrrPdelay – 1.0)(2^41)."; reference - "14.8.56 of IEEE Std 802.1ASdm"; + "14.8.56 of IEEE Std 802.1AS"; } leaf nrr-sync { type int32; config false; description - "The value is an estimate of the ratio of the frequency of the LocalClock entity of the time-aware system at - the other end of the link attached to this Link Port, to the frequency of the LocalClock entity of this - time-aware system (see 10.2.5.7). nrrSync is expressed as the fractional frequency offset stored in the global - variable nrrSync (see 11.2.13.13) multiplied by 2^41, i.e., the quantity (nrrSync – 1.0)(2^41)."; + "The value is an estimate of the ratio of the frequency of + the LocalClock entity of the time-aware system at the + other end of the link attached to this Link Port, to the + frequency of the LocalClock entity of this time-aware + system. nrrSync is expressed as the fractional frequency + offset stored in the global variable nrrSync multiplied by + 2^41, i.e., the quantity (nrrSync – 1.0)(2^41)."; reference - "14.8.57 of IEEE Std 802.1ASdm"; + "14.8.57 of IEEE Std 802.1AS"; } leaf nrr-comp-method { type nrr-comp-method-type; - config true; description - "An Enumeration that takes on the values sync and pdelay to indicate the source of the value of - neighborRateRatio (see 10.2.5.7)"; + "An Enumeration that takes on the values sync and pdelay to + indicate the source of the value of neighborRateRatio."; reference - "14.8.58 of IEEE Std 802.1ASdm"; + "14.8.58 of IEEE Std 802.1AS"; + } + leaf as-capable-across-domains { + type boolean; + description + "This leaf is true when this PTP port detects proper + exchange of Pdelay messages."; + reference + "14.8.59 of IEEE Std 802.1AS"; } } - augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:ports/ptp-tt:port/dot1as-ptp:port-statistics-ds" { + augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance" + + "/ptp-tt:ports/ptp-tt:port" + + "/dot1as-gptp:port-statistics-ds" { description "Augment IEEE Std 802.1AS PortStatisticsDS."; leaf rx-sync-count-time-receiver-p { - type uint32; + type yang:counter32; config false; description - "This counter increments whenever time synchronization information is received on a PTP Port - when its port state is TimeReceiverPort."; + "This counter increments whenever time synchronization + information is received on a PTP Port when its port + state is TimeReceiverPort."; reference - "14.10.20 of IEEE Std 802.1ASdm"; + "14.10.20 of IEEE Std 802.1AS"; } } @@ -251,121 +290,132 @@ module ieee802-dot1as-hs { description "Augment IEEE Std 1588 commonServices. - 14.16.9 of IEEE Std 802.1ASdm specifies nrrPdelay + IEEE Std 802.1ASdm specifies nrrPdelay (nrr-pdelay), which is provided in YANG as the - semantically equivalent node in ieee1588-ptp named + semantically equivalent node in ieee1588-ptp-tt named scaled-neighbor-rate-ratio (in link-port-ds)."; container hot-standby-service { if-feature "hot-standby"; description - "The hotStandbyService structure contains the hotStandbySystemList, which is a list of instances of the Hot - Standby Service."; + "The hotStandbyService structure contains the + hotStandbySystemList, which is a list of instances of the + Hot Standby Service."; reference - "14.19 of IEEE Std 802.1ASdm"; + "14.19 of IEEE Std 802.1AS"; list hot-standby-system { + key "hot-standby-system-index"; description "List of instances of the Hot Standby Service"; - key "hot-standby-system-index"; leaf hot-standby-system-index { type uint8; - config true; + description + "Index for the hot-standby system."; } container hot-standby-system-ds { description - "The hotStandbySystemDS describes the attributes of the respective instance of the Hot Standby Service."; + "The hotStandbySystemDS describes the attributes of the + respective instance of the Hot Standby Service."; reference - "14.19 of IEEE Std 802.1ASdm"; + "14.19 of IEEE Std 802.1AS"; leaf primary-ptp-instance-index { type uint32; - config true; description - "The value of primaryPtpInstanceIndex is the index (see 14.1.1) of the primary PTP Instance associated with - this hotStandbySystem instance."; + "The value of primaryPtpInstanceIndex is the index of + the primary PTP Instance associated with this + hotStandbySystem instance."; reference - "14.19.2 of IEEE Std 802.1ASdm"; + "14.19.2 of IEEE Std 802.1AS"; } leaf secondary-ptp-instance-index { type uint32; - config true; description - "The value of secondaryPtpInstanceIndex is the index (see 14.1.1) of the secondaryPTP Instance associated - with this hotStandbySystem instance."; + "The value of secondaryPtpInstanceIndex is the index + of the secondaryPTP Instance associated with this + hotStandbySystem instance."; reference - "14.19.3 of IEEE Std 802.1ASdm"; + "14.19.3 of IEEE Std 802.1AS"; } leaf hot-standby-system-enable { type boolean; - config true; description - "The value is the hotStandbySystemEnable attribute of the HotStandbySystem entity (see 18.5.1.2)."; + "The value is the hotStandbySystemEnable attribute of + the HotStandbySystem entity."; reference - "14.19.4 of IEEE Std 802.1ASdm"; + "14.19.4 of IEEE Std 802.1AS"; } leaf hot-standby-system-state { type hot-standby-system-state-type; config false; description - "The value of hotStandbySystemState is the state of the hotStandbySystem, i.e., the value of the global - variable hotStandbySystemState (see 18.5.1.1)."; + "The value of hotStandbySystemState is the state of + the hotStandbySystem, i.e., the value of the global + variable hotStandbySystemState."; reference - "14.19.5 of IEEE Std 802.1ASdm"; + "14.19.5 of IEEE Std 802.1AS"; } leaf hot-standby-system-split-functionality { type boolean; - config true; description - "If the value is TRUE, the optional split functionality (see 18.5.3.4) is used. If the value is FALSE, the + "If the value is TRUE, the optional split + functionality is used. If the value is FALSE, the optional split functionality is not used."; reference - "14.19.6 of IEEE Std 802.1ASdm"; + "14.19.6 of IEEE Std 802.1AS"; } leaf primary-secondary-offset { - type dot1as-ptp:scaled-ns; + type dot1as-gptp:scaled-ns; config false; description - "The absolute value of the difference between the clockTimeTransmitterTimes (see 10.2.4.3) of the primary and + "The absolute value of the difference between the + clockTimeTransmitterTimes of the primary and secondary PTP Instances."; reference - "14.19.7 of IEEE Std 802.1ASdm"; + "14.19.7 of IEEE Std 802.1AS"; } leaf primary-secondary-offset-thresh { - type dot1as-ptp:scaled-ns; - config true; + type dot1as-gptp:scaled-ns; description - "The threshold for hotStandbySystemDS.primarySecondaryOffset (see 14.19.7), above which the - hotStandbySytemState transitions from REDUNDANT to NOT_REDUNDANT, or does not transition from - NOT_REDUNDANT or OUT_OF_SYNC to REDUNDANT even if other conditions for these transitions - are satisfied."; + "The threshold for + hotStandbySystemDS.primarySecondaryOffset, above + which the hotStandbySytemState transitions from + REDUNDANT to NOT_REDUNDANT, or does not transition + from NOT_REDUNDANT or OUT_OF_SYNC to REDUNDANT even + if other conditions for these transitions are + satisfied."; reference - "14.19.8 of IEEE Std 802.1ASdm"; + "14.19.8 of IEEE Std 802.1AS"; } leaf hot-standby-system-log-sync-time-thresh { type int8; - config true; description - "The value of hotStandbySystemLogSyncTimeThresh is the logarithm to base 2 of the time interval, in - seconds, after which the hotStandbySystem transitions from the OUT_OF_SYNC state to either the NOT- - REDUNDANT or REDUNDANT state, or from the NOT_REDUNDANT to the REDUNDANT state, if all - other conditions for the respective transition are met. The value -128 means that the transition time - is zero, i.e., the transition occurs immediately."; + "The value of hotStandbySystemLogSyncTimeThresh is + the logarithm to base 2 of the time interval, in + seconds, after which the hotStandbySystem + transitions from the OUT_OF_SYNC state to either the + NOT-REDUNDANT or REDUNDANT state, or from the + NOT_REDUNDANT to the REDUNDANT state, if all other + conditions for the respective transition are met. + The value -128 means that the transition time is + zero, i.e., the transition occurs immediately."; reference - "14.19.9 of IEEE Std 802.1ASdm"; + "14.19.9 of IEEE Std 802.1AS"; } } container hot-standby-system-description-ds { description - "The hotStandbySystemDescriptionDS contains descriptive information for the respective instance of the Hot Standby Service."; + "The hotStandbySystemDescriptionDS contains descriptive + information for the respective instance of the Hot + Standby Service."; reference - "14.20 of IEEE Std 802.1ASdm"; + "14.20 of IEEE Std 802.1AS"; leaf user-description { type string { length "0..128"; } - config true; description "Configurable description of the hot standby system."; reference - "14.20.3 of IEEE Std 802.1ASdm"; + "14.20.3 of IEEE Std 802.1AS"; } } } diff --git a/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-gptp.yang b/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-gptp.yang new file mode 100644 index 000000000..8e15c8aa1 --- /dev/null +++ b/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-gptp.yang @@ -0,0 +1,1238 @@ +module ieee802-dot1as-gptp { + yang-version "1.1"; + namespace urn:ieee:std:802.1AS:yang:ieee802-dot1as-gptp; + prefix dot1as-gptp; + import ietf-yang-types { + prefix yang; + } + import ieee1588-ptp-tt { + prefix ptp-tt; + } + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://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 + "Management objects that control timing and synchronization for time + sensitive applications, as specified in IEEE Std 802.1AS. + + 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-06-23 { + description + "Published as part of IEEE Std 802.1ASdn-2024. Initial version."; + reference + "IEEE Std 802.1AS - Timing and Synchronization for Time-Sensitive + Applications: IEEE Std 802.1AS-2020, IEEE Std 802.1AS-2020/Cor + 1-2021, IEEE Std 802.1ASdr-2024, IEEE Std 802.1ASdn-2024. IEEE Std + 1588 - IEEE Standard for a Precision Clock Synchronization Protocol + for Networked Measurement and Control Systems: IEEE Std 1588-2019, + IEEE Std 1588g-2022, IEEE Std 1588e-2024."; + } + typedef scaled-ns { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){11}"; + } + description + "The IEEE Std 802.1AS ScaledNs type represents signed values of + time and time interval in units of 2^16 ns, as a signed 96-bit + integer. Each of the 12 octets is represented as a pair of + hexadecimal characters, using uppercase for a letter. Octets are + separated by a dash character. The most significant octet is first."; + reference + "6.4.3.1 of IEEE Std 802.1AS"; + } + typedef uscaled-ns { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){11}"; + } + description + "The IEEE Std 802.1AS UScaledNs type represents unsigned values of + time and time interval in units of 2^16 ns, as an unsigned 96-bit + integer. Each of the 12 octets is represented as a pair of + hexadecimal characters, using uppercase for a letter. Octets are + separated by a dash character. The most significant octet is first."; + reference + "6.4.3.2 of IEEE Std 802.1AS"; + } + typedef float64 { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){7}"; + } + description + "The IEEE Std 802.1AS Float64 type represents IEEE Std 754 + binary64. Each of the 8 octets is represented as a pair of + hexadecimal characters, using uppercase for a letter. Octets are + separated by a dash character. The most significant octet is first."; + reference + "6.4.2 of IEEE Std 802.1AS"; + } + typedef uinteger48 { + type uint64 { + range "0..281474976710655"; + } + description + "48-bit unsigned integer data type."; + reference + "6.4.2 of IEEE Std 802.1AS"; + } + augment + "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:default-ds" { + description + "Augment IEEE Std 1588 defaultDS."; + leaf gm-capable { + type boolean; + config false; + description + "The value is true if the time-aware system is capable of being a + grandmaster, and false if the time-aware system is not capable of + being a grandmaster."; + reference + "14.2.7 of IEEE Std 802.1AS"; + } + leaf current-utc-offset { + when + "../current-utc-offset-valid='true'"; + type int16; + config false; + description + "Offset from UTC (TAI - UTC). The offset is in units of seconds. + This leaf applies to the ClockTimeTransmitter entity (i.e., local + only, unrelated to a remote GM)."; + reference + "14.2.8 of IEEE Std 802.1AS"; + } + leaf current-utc-offset-valid { + type boolean; + config false; + description + "The value of current-utc-offset-valid shall be true if the value + of current-utc-offset is known to be correct, otherwise it shall + be false. This leaf applies to the ClockTimeTransmitter entity + (i.e., local only, unrelated to a remote GM)."; + reference + "14.2.9 of IEEE Std 802.1AS"; + } + leaf leap59 { + type boolean; + config false; + description + "If the timescale is PTP, a true value for leap59 shall indicate + that the last minute of the current UTC day contains 59 seconds. + If the timescale is not PTP, the value shall be false. This leaf + applies to the ClockTimeTransmitter entity (i.e., local only, + unrelated to a remote GM)."; + reference + "14.2.10 of IEEE Std 802.1AS"; + } + leaf leap61 { + type boolean; + config false; + description + "If the timescale is PTP, a true value for leap61 shall indicate + that the last minute of the current UTC day contains 61 seconds. + If the timescale is not PTP, the value shall be false. This leaf + applies to the ClockTimeTransmitter entity (i.e., local only, + unrelated to a remote GM)."; + reference + "14.2.11 of IEEE Std 802.1AS"; + } + leaf time-traceable { + type boolean; + config false; + description + "The value of time-traceable shall be true if the timescale is + traceable to a primary reference; otherwise, the value shall be + false. This leaf applies to the ClockTimeTransmitter entity + (i.e., local only, unrelated to a remote GM)."; + reference + "14.2.12 of IEEE Std 802.1AS"; + } + leaf frequency-traceable { + type boolean; + config false; + description + "The value of frequency-traceable shall be true if the frequency + determining the timescale is traceable to a primary reference; + otherwise, the value shall be false. This leaf applies to the + ClockTimeTransmitter entity (i.e., local only, unrelated to a + remote GM)."; + reference + "14.2.13 of IEEE Std 802.1AS"; + } + leaf ptp-timescale { + type boolean; + config false; + description + "If ptp-timescale is true, the timescale of the + ClockTimeTransmitter entity is PTP, which is the elapsed time + since the PTP epoch measured using the second defined by + International Atomic Time (TAI). If ptp-timescale is false, the + timescale of the ClockTimeTransmitter entity is ARB, which is the + elapsed time since an arbitrary epoch. This leaf applies to the + ClockTimeTransmitter entity (i.e., local only, unrelated to a + remote GM)."; + reference + "14.2.14 of IEEE Std 802.1AS"; + } + leaf time-source { + type identityref { + base ptp-tt:time-source; + } + config false; + description + "The source of time used by the Grandmaster Clock This leaf + applies to the ClockTimeTransmitter entity (i.e., local only, + unrelated to a remote GM)."; + reference + "14.2.15 of IEEE Std 802.1AS"; + } + } + augment + "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:current-ds" { + description + "Augment IEEE Std 1588 currentDS."; + leaf last-gm-phase-change { + type scaled-ns; + config false; + description + "Phase change that occurred on the most recent change in either + the Grandmaster PTP Instance or gm-timebase-indicator leaf."; + reference + "14.3.4 of IEEE Std 802.1AS"; + } + leaf last-gm-freq-change { + type float64; + config false; + description + "Frequency change that occurred on the most recent change in + either the Grandmaster PTP Instance or gm-timebase-indicator + leaf."; + reference + "14.3.5 of IEEE Std 802.1AS"; + } + leaf gm-timebase-indicator { + type uint16; + config false; + description + "The timeBaseIndicator of the current Grandmaster PTP Instance."; + reference + "14.3.6 of IEEE Std 802.1AS"; + } + leaf gm-change-count { + type yang:counter32; + config false; + description + "This statistics counter tracks the number of times the + Grandmaster PTP Instance has changed in a gPTP domain."; + reference + "14.3.7 of IEEE Std 802.1AS"; + } + leaf time-of-last-gm-change { + type yang:timestamp; + config false; + description + "System time when the most recent Grandmaster Clock change + occurred in a gPTP domain. This leaf's type is YANG timestamp, + which is based on system time. System time is an unsigned integer + in units of 10 milliseconds, using an epoch defined by the + implementation (typically time of boot-up)."; + reference + "14.3.8 of IEEE Std 802.1AS"; + } + leaf time-of-last-phase-change { + type yang:timestamp; + config false; + description + "System time when the most recent change in Grandmaster Clock + phase occurred. This leaf's type is YANG timestamp, which is + based on system time. System time is an unsigned integer in units + of 10 milliseconds, using an epoch defined by the implementation + (typically time of boot-up)."; + reference + "14.3.9 of IEEE Std 802.1AS"; + } + leaf time-of-last-freq-change { + type yang:timestamp; + config false; + description + "System time when the most recent change in Grandmaster Clock + frequency occurred. This leaf's type is YANG timestamp, which is + based on system time. System time is an unsigned integer in units + of 10 milliseconds, using an epoch defined by the implementation + (typically time of boot-up)."; + reference + "14.3.10 of IEEE Std 802.1AS"; + } + } + augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:parent-ds" { + description + "Augment IEEE Std 1588 parentDS."; + leaf cumulative-rate-ratio { + type int32; + config false; + description + "Estimate of the ratio of the frequency of the Grandmaster Clock + to the frequency of the LocalClock entity of this PTP Instance. + cumulative-rate-ratio is expressed as the fractional frequency + offset multiplied by 2^41, i.e., the quantity (rateRatio - + 1.0)(2^41)."; + reference + "14.4.3 of IEEE Std 802.1AS"; + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:instances"+ + "/ptp-tt:instance"+ + "/ptp-tt:ports"+ + "/ptp-tt:port"+ + "/ptp-tt:port-ds" { + description + "Augment IEEE Std 1588 portDS. + + 14.8.4 of IEEE Std 802.1AS specifies ptpPortEnabled + (ptp-port-enabled), which is provided in YANG as the semantically + equivalent node in ieee1588-ptp-tt named port-enable (in port-ds). + + 14.8.15 of IEEE Std 802.1AS specifies + mgtSettableLogAnnounceInterval (mgt-log-announce-interval), which + is provided in YANG as the semantically equivalent node in + ieee1588-ptp-tt named log-announce-interval (in port-ds). In the + context of IEEE Std 802.1AS, log-announce-interval cannot be used + unless use-mgt-log-announce-interval is true. + + 14.8.20 of IEEE Std 802.1AS specifies mgtSettableLogSyncInterval + (mgt-log-sync-interval), which is provided in YANG as the + semantically equivalent node in ieee1588-ptp-tt named + log-sync-interval (in port-ds). In the context of IEEE Std 802.1AS, + log-sync-interval cannot be used unless use-mgt-log-sync-interval + is true."; + leaf is-measuring-delay { + type boolean; + config false; + description + "Boolean that is true if the port is measuring PTP Link + propagation delay."; + reference + "14.8.6 of IEEE Std 802.1AS"; + } + leaf as-capable { + type boolean; + config false; + description + "Boolean that is true if and only if it is determined that this + PTP Instance and the PTP Instance at the other end of the link + attached to this port can interoperate with each other via the + IEEE Std 802.1AS protocol."; + reference + "10.2.5.1 of IEEE Std 802.1AS + 14.8.7 of IEEE Std 802.1AS"; + } + leaf mean-link-delay-thresh { + type ptp-tt:time-interval; + description + "Propagation time threshold for mean-link-delay, above which a + port is not considered capable of participating in the IEEE Std + 802.1AS protocol."; + reference + "14.8.9 of IEEE Std 802.1AS"; + } + leaf neighbor-rate-ratio { + type int32; + config false; + description + "Estimate of the ratio of the frequency of the LocalClock entity + of the PTP Instance at the other end of the link attached to this + PTP Port, to the frequency of the LocalClock entity of this PTP + Instance. neighbor-rate-ratio is expressed as the fractional + frequency offset multiplied by 2^41, i.e., the quantity + (rateRatio - 1.0)(2^41)."; + reference + "14.8.11 of IEEE Std 802.1AS"; + } + leaf initial-log-announce-interval { + type int8; + description + "When use-mgt-log-announce-interval is false (i.e., change with + Signaling message), this is the the logarithm to base 2 of the + announce interval used when the port is initialized."; + reference + "14.8.12 of IEEE Std 802.1AS"; + } + leaf current-log-announce-interval { + type int8; + config false; + description + "Logarithm to base 2 of the current announce interval."; + reference + "14.8.13 of IEEE Std 802.1AS"; + } + leaf use-mgt-log-announce-interval { + type boolean; + description + "Boolean that determines the source of the announce interval. If + the value is true, the announce interval + (current-log-announce-interval) is set equal to the value of + mgt-log-announce-interval. If the value is false, the announce + interval is determined by the AnnounceIntervalSetting state + machine (i.e., changed with Signaling message)."; + reference + "14.8.14 of IEEE Std 802.1AS"; + } + leaf initial-log-sync-interval { + type int8; + description + "When use-mgt-log-sync-interval is false (i.e., change with + Signaling message), this is the the logarithm to base 2 of the + sync interval used when the port is initialized."; + reference + "14.8.17 of IEEE Std 802.1AS"; + } + leaf current-log-sync-interval { + type int8; + config false; + description + "Logarithm to base 2 of the current sync interval."; + reference + "14.8.18 of IEEE Std 802.1AS"; + } + leaf use-mgt-log-sync-interval { + type boolean; + description + "Boolean that determines the source of the sync interval. If the + value is true, the sync interval (current-log-sync-interval) is + set equal to the value of mgt-log-sync-interval. If the value is + false, the sync interval is determined by the SyncIntervalSetting + state machine (i.e., changed with Signaling message)."; + reference + "14.8.19 of IEEE Std 802.1AS"; + } + leaf sync-receipt-timeout { + type uint8; + description + "Number of sync intervals that a timeReceiver port waits without + receiving synchronization information, before assuming that the + timeTransmitter is no longer transmitting synchronization + information and that the BTCA needs to be run, if appropriate."; + reference + "14.8.21 of IEEE Std 802.1AS"; + } + leaf sync-receipt-timeout-interval { + type uscaled-ns; + config false; + description + "Time interval after which sync receipt timeout occurs if + time-synchronization information has not been received during the + interval."; + reference + "14.8.22 of IEEE Std 802.1AS"; + } + leaf initial-log-pdelay-req-interval { + type int8; + description + "When use-mgt-log-pdelay-req-interval is false (i.e., change with + Signaling message), this is the the logarithm to base 2 of the + Pdelay_Req transmit interval used when the port is initialized."; + reference + "14.8.23 of IEEE Std 802.1AS"; + } + leaf current-log-pdelay-req-interval { + type int8; + config false; + description + "Logarithm to base 2 of the current Pdelay_Req transmit interval."; + reference + "14.8.24 of IEEE Std 802.1AS"; + } + leaf use-mgt-log-pdelay-req-interval { + type boolean; + description + "Boolean that determines the source of the Pdelay_Req transmit + interval. If the value is true, the Pdelay_Req transmit interval + (current-log-pdelay-req-interval) is set equal to the value of + mgt-log-pdelay-req-interval. If the value is false, the + Pdelay_Req transmit interval is determined by the + LinkDelayIntervalSetting state machine (i.e., changed with + Signaling message)."; + reference + "14.8.25 of IEEE Std 802.1AS"; + } + leaf mgt-log-pdelay-req-interval { + type int8; + description + "Logarithm to base 2 of the Pdelay_Req transmit interval, used if + use-mgt-log-pdelay-req-interval is true. This value is not used + if use-mgt-log-pdelay-req-interval is false."; + reference + "14.8.26 of IEEE Std 802.1AS"; + } + leaf initial-log-gptp-cap-interval { + type int8; + description + "When use-mgt-log-gptp-cap-interval is false (i.e., change with + Signaling message), this is the the logarithm to base 2 of the + gPTP capable message interval used when the port is initialized."; + reference + "14.8.27 of IEEE Std 802.1AS"; + } + leaf current-log-gptp-cap-interval { + type int8; + config false; + description + "Logarithm to base 2 of the current gPTP capable message + interval."; + reference + "14.8.28 of IEEE Std 802.1AS"; + } + leaf use-mgt-log-gptp-cap-interval { + type boolean; + description + "Boolean that determines the source of the gPTP capable message + interval. If the value is true, the gPTP capable message interval + (current-log-gptp-cap-interval) is set equal to the value of + mgt-gptp-cap-req-interval. If the value is false, the gPTP + capable message interval is determined by the + GptpCapableMessageIntervalSetting state machine (i.e., changed + with Signaling message)."; + reference + "14.8.29 of IEEE Std 802.1AS"; + } + leaf mgt-log-gptp-cap-interval { + type int8; + description + "Logarithm to base 2 of the gPTP capable message interval, used + if use-mgt-log-gptp-cap-interval is true. This value is not used + if use-mgt-log-pdelay-req-interval is false."; + reference + "14.8.30 of IEEE Std 802.1AS"; + } + leaf initial-compute-neighbor-rate-ratio { + type boolean; + description + "When use-mgt-compute-neighbor-rate-ratio is false (i.e., change + with Signaling message), this is the initial value of + computeNeighborRateRatio."; + reference + "14.8.31 of IEEE Std 802.1AS"; + } + leaf current-compute-neighbor-rate-ratio { + type boolean; + config false; + description + "Current value of computeNeighborRateRatio."; + reference + "14.8.32 of IEEE Std 802.1AS"; + } + leaf use-mgt-compute-neighbor-rate-ratio { + type boolean; + description + "Boolean that determines the source of computeNeighborRateRatio.. + If the value is true, computeNeighborRateRatio is set equal to + the value of mgt-compute-neighbor-rate-ratio. If the value is + false, computeNeighborRateRatio is determined by the + LinkDelayIntervalSetting state machine (i.e., changed with + Signaling message)."; + reference + "14.8.33 of IEEE Std 802.1AS"; + } + leaf mgt-compute-neighbor-rate-ratio { + type boolean; + description + "Value of computeNeighborRateRatio, used if + use-mgt-compute-neighbor-rate-ratio is true. This value is not + used if use-mgt-compute-neighbor-rate-ratio is false."; + reference + "14.8.34 of IEEE Std 802.1AS"; + } + leaf initial-compute-mean-link-delay { + type boolean; + description + "When use-mgt-compute-mean-link-delay is false (i.e., change with + Signaling message), this is the initial value of + computeMeanLinkDelay."; + reference + "14.8.35 of IEEE Std 802.1AS"; + } + leaf current-compute-mean-link-delay { + type boolean; + config false; + description + "Current value of computeMeanLinkDelay."; + reference + "14.8.36 of IEEE Std 802.1AS"; + } + leaf use-mgt-compute-mean-link-delay { + type boolean; + description + "Boolean that determines the source of computeMeanLinkDelay. If + the value is true, computeMeanLinkDelay is set equal to the value + of mgt-compute-mean-link-delay. If the value is false, + computeMeanLinkDelay is determined by the + LinkDelayIntervalSetting state machine (i.e., changed with + Signaling message)."; + reference + "14.8.37 of IEEE Std 802.1AS"; + } + leaf mgt-compute-mean-link-delay { + type boolean; + description + "Value of computeMeanLinkDelay, used if + use-mgt-compute-mean-link-delay is true. This value is not used + if use-mgt-compute-mean-link-delay is false."; + reference + "14.8.38 of IEEE Std 802.1AS"; + } + leaf allowed-lost-responses { + type uint8; + description + "Number of Pdelay_Req messages for which a valid response is not + received, above which a port is considered to not be exchanging + peer delay messages with its neighbor."; + reference + "14.8.39 of IEEE Std 802.1AS"; + } + leaf allowed-faults { + type uint8; + description + "Number of faults above which asCapable is set to false."; + reference + "14.8.40 of IEEE Std 802.1AS"; + } + leaf gptp-cap-receipt-timeout { + type uint8; + description + "Number of transmission intervals that a port waits without + receiving the gPTP capable TLV, before assuming that the neighbor + port is no longer invoking the gPTP protocol."; + reference + "14.8.41 of IEEE Std 802.1AS"; + } + leaf nup { + type float64; + description + "For an OLT port of an IEEE Std 802.3 EPON link, this value is + the effective index of refraction for the EPON upstream + wavelength light of the optical path"; + reference + "14.8.43 of IEEE Std 802.1AS"; + } + leaf ndown { + type float64; + description + "For an OLT port of an IEEE 802.3 EPON link, this value is the + effective index of refraction for the EPON downstream wavelength + light of the optical path"; + reference + "14.8.44 of IEEE Std 802.1AS"; + } + leaf one-step-tx-oper { + type boolean; + config false; + description + "This value is true if the port is sending one-step Sync + messages, and false if the port is sending two-step Sync and + Follow-Up messages."; + reference + "14.8.45 of IEEE Std 802.1AS"; + } + leaf one-step-receive { + type boolean; + config false; + description + "This value is true if the port is capable of receiving and + processing one-step Sync messages."; + reference + "14.8.46 of IEEE Std 802.1AS"; + } + leaf one-step-transmit { + type boolean; + config false; + description + "This value is true if the port is capable of transmitting + one-step Sync messages."; + reference + "14.8.47 of IEEE Std 802.1AS"; + } + leaf initial-one-step-tx-oper { + type boolean; + description + "When use-mgt-one-step-tx-oper is false (i.e., change with + Signaling message), this is the initial value of + current-one-step-tx-oper."; + reference + "14.8.48 of IEEE Std 802.1AS"; + } + leaf current-one-step-tx-oper { + type boolean; + config false; + description + "This value is true if the port is configured to transmit + one-step Sync messages, either via management + (mgt-one-step-tx-oper) or Signaling. If both + current-one-step-tx-oper and one-step-transmit are true, the port + transmits one-step Sync messages (i.e., one-step-tx-oper true)."; + reference + "14.8.49 of IEEE Std 802.1AS"; + } + leaf use-mgt-one-step-tx-oper { + type boolean; + description + "Boolean that determines the source of current-one-step-tx-oper. + If the value is true, current-one-step-tx-oper is set equal to + the value of mgt-one-step-tx-oper. If the value is false, + current-one-step-tx-oper is determined by the + OneStepTxOperSetting state machine (i.e., changed with Signaling + message)."; + reference + "14.8.50 of IEEE Std 802.1AS"; + } + leaf mgt-one-step-tx-oper { + type boolean; + description + "If use-mgt-one-step-tx-oper is true, current-one-step-tx-oper is + set equal to this value. This value is not used if + use-mgt-one-step-tx-oper is false."; + reference + "14.8.51 of IEEE Std 802.1AS"; + } + leaf sync-locked { + type boolean; + config false; + description + "This value is true if the port will transmit a Sync as soon as + possible after the timeReceiver port receives a Sync message."; + reference + "14.8.52 of IEEE Std 802.1AS"; + } + leaf-list pdelay-truncated-timestamps { + type uinteger48; + config false; + description + "For full-duplex IEEE Std 802.3 media, and CSN media that use the + peer-to-peer delay mechanism to measure path delay, the values of + the four elements of this leaf-list correspond to the timestamps + t1, t2, t3, and t4, listed in that order. Each timestamp is + expressed in units of 2^-16 ns (i.e., the value of each array + element is equal to the remainder obtained upon dividing the + respective timestamp, expressed in units of 2^-16 ns, by 2^48). + At any given time, the timestamp values stored in the array are + for the same, and most recently completed, peer delay message + exchange. For each timestamp, only 48-bits are valid (the upper + 16-bits are always zero)."; + reference + "14.8.53 of IEEE Std 802.1AS"; + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:instances"+ + "/ptp-tt:instance"+ + "/ptp-tt:ports"+ + "/ptp-tt:port" { + description + "Augment to add port-statistics-ds to IEEE Std 1588 PTP Port."; + container port-statistics-ds { + description + "Provides counters associated with the port of the PTP Instance."; + reference + "14.10 of IEEE Std 802.1AS"; + leaf rx-sync-count { + type yang:counter32; + config false; + description + "Counter that increments every time synchronization information + is received."; + reference + "14.10.2 of IEEE Std 802.1AS"; + } + leaf rx-one-step-sync-count { + type yang:counter32; + config false; + description + "Counter that increments every time a one-step Sync message is + received."; + reference + "14.10.3 of IEEE Std 802.1AS"; + } + leaf rx-follow-up-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Follow_Up message is + received."; + reference + "14.10.4 of IEEE Std 802.1AS"; + } + leaf rx-pdelay-req-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Req message is + received."; + reference + "14.10.5 of IEEE Std 802.1AS"; + } + leaf rx-pdelay-resp-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Resp message is + received."; + reference + "14.10.6 of IEEE Std 802.1AS"; + } + leaf rx-pdelay-resp-follow-up-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Resp_Follow_Up + message is received."; + reference + "14.10.7 of IEEE Std 802.1AS"; + } + leaf rx-announce-count { + type yang:counter32; + config false; + description + "Counter that increments every time an Announce message is + received."; + reference + "14.10.8 of IEEE Std 802.1AS"; + } + leaf rx-packet-discard-count { + type yang:counter32; + config false; + description + "Counter that increments every time a PTP message of the + respective PTP Instance is discarded."; + reference + "14.10.9 of IEEE Std 802.1AS"; + } + leaf sync-receipt-timeout-count { + type yang:counter32; + config false; + description + "Counter that increments every time a sync receipt timeout + occurs."; + reference + "14.10.10 of IEEE Std 802.1AS"; + } + leaf announce-receipt-timeout-count { + type yang:counter32; + config false; + description + "Counter that increments every time an announce receipt timeout + occurs."; + reference + "14.10.11 of IEEE Std 802.1AS"; + } + leaf pdelay-allowed-lost-exceeded-count { + type yang:counter32; + config false; + description + "Counter that increments every time the value of the variable + lostResponses exceeds the value of the variable + allowedLostResponses, in the RESET state of the MDPdelayReq + state machine."; + reference + "14.10.12 of IEEE Std 802.1AS"; + } + leaf tx-sync-count { + type yang:counter32; + config false; + description + "Counter that increments every time synchronization information + is transmitted."; + reference + "14.10.13 of IEEE Std 802.1AS"; + } + leaf tx-one-step-sync-count { + type yang:counter32; + config false; + description + "Counter that increments every time a one-step Sync message is + transmitted."; + reference + "14.10.14 of IEEE Std 802.1AS"; + } + leaf tx-follow-up-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Follow_Up message is + transmitted."; + reference + "14.10.15 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-req-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Req message is + transmitted."; + reference + "14.10.16 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-resp-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Resp message is + transmitted."; + reference + "14.10.17 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-resp-follow-up-count { + type yang:counter32; + config false; + description + "Counter that increments every time a Pdelay_Resp_Follow_Up + message is transmitted."; + reference + "14.10.18 of IEEE Std 802.1AS"; + } + leaf tx-announce-count { + type yang:counter32; + config false; + description + "Counter that increments every time an Announce message is + transmitted."; + reference + "14.10.19 of IEEE Std 802.1AS"; + } + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:instances"+ + "/ptp-tt:instance"+ + "/ptp-tt:ports"+ + "/ptp-tt:port" { + description + "Augment to add asymmetry-measurement-mode-ds to IEEE Std 1588 PTP + Port."; + container asymmetry-measurement-mode-ds { + description + "Represents the capability to enable/disable the Asymmetry + Compensation Measurement Procedure on a PTP Port. This data set + is used instead of the CMLDS asymmetry-measurement-mode-ds when + only a single PTP Instance is present (i.e., CMLDS is not used)."; + reference + "14.13 of IEEE Std 802.1AS + Annex G of IEEE Std 802.1AS"; + leaf enabled { + type boolean; + description + "For full-duplex IEEE Std 802.3 media, the value is true if an + asymmetry measurement is being performed for the link attached + to this PTP Port, and false otherwise. For all other media, the + value shall be false."; + reference + "14.13.2 of IEEE Std 802.1AS"; + } + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:common-services"+ + "/ptp-tt:cmlds"+ + "/ptp-tt:ports"+ + "/ptp-tt:port"+ + "/ptp-tt:link-port-ds" { + description + "Augment IEEE Std 1588 cmldsLinkPortDS. + + 14.16.9 of IEEE Std 802.1AS specifies neighborRateRatio + (neighbor-rate-ratio), which is provided in YANG as the + semantically equivalent node in ieee1588-ptp-tt named + scaled-neighbor-rate-ratio (in link-port-ds)."; + leaf cmlds-link-port-enabled { + type boolean; + config false; + description + "Boolean that is true if both delay-mechanism is common-p2p and + the value of ptp-port-enabled is true, for at least one PTP Port + that uses the CMLDS; otherwise, the value is false."; + reference + "11.2.18.1 of IEEE Std 802.1AS + 14.16.3 of IEEE Std 802.1AS"; + } + leaf is-measuring-delay { + type boolean; + config false; + description + "This leaf is analogous to is-measuring-delay for a PTP Port, but + applicable to this Link Port."; + reference + "14.16.4 of IEEE Std 802.1AS"; + } + leaf as-capable-across-domains { + type boolean; + config false; + description + "This leaf is true when all PTP Instances (domains) for this Link + Port detect proper exchange of Pdelay messages."; + reference + "11.2.2 of IEEE Std 802.1AS + 14.16.5 of IEEE Std 802.1AS"; + } + leaf mean-link-delay-thresh { + type ptp-tt:time-interval; + description + "Propagation time threshold for mean-link-delay, above which a + Link Port is not considered capable of participating in the IEEE + Std 802.1AS protocol."; + reference + "14.16.7 of IEEE Std 802.1AS"; + } + leaf initial-log-pdelay-req-interval { + type int8; + description + "This leaf is analogous to initial-log-pdelay-req-interval for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.10 of IEEE Std 802.1AS"; + } + leaf current-log-pdelay-req-interval { + type int8; + config false; + description + "This leaf is analogous to current-log-pdelay-req-interval for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.11 of IEEE Std 802.1AS"; + } + leaf use-mgt-log-pdelay-req-interval { + type boolean; + description + "This leaf is analogous to use-mgt-log-pdelay-req-interval for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.12 of IEEE Std 802.1AS"; + } + leaf mgt-log-pdelay-req-interval { + type int8; + description + "This leaf is analogous to mgt-log-pdelay-req-interval for a PTP + Port, but applicable to this Link Port."; + reference + "14.16.13 of IEEE Std 802.1AS"; + } + leaf initial-compute-neighbor-rate-ratio { + type boolean; + description + "This leaf is analogous to initial-compute-neighbor-rate-ratio + for a PTP Port, but applicable to this Link Port."; + reference + "14.16.14 of IEEE Std 802.1AS"; + } + leaf current-compute-neighbor-rate-ratio { + type boolean; + config false; + description + "This leaf is analogous to current-compute-neighbor-rate-ratio + for a PTP Port, but applicable to this Link Port."; + reference + "14.16.15 of IEEE Std 802.1AS"; + } + leaf use-mgt-compute-neighbor-rate-ratio { + type boolean; + description + "This leaf is analogous to use-mgt-compute-neighbor-rate-ratio + for a PTP Port, but applicable to this Link Port."; + reference + "14.16.16 of IEEE Std 802.1AS"; + } + leaf mgt-compute-neighbor-rate-ratio { + type boolean; + description + "This leaf is analogous to mgt-compute-neighbor-rate-ratio for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.17 of IEEE Std 802.1AS"; + } + leaf initial-compute-mean-link-delay { + type boolean; + description + "This leaf is analogous to initial-compute-mean-link-delay for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.18 of IEEE Std 802.1AS"; + } + leaf current-compute-mean-link-delay { + type boolean; + config false; + description + "This leaf is analogous to current-compute-mean-link-delay for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.19 of IEEE Std 802.1AS"; + } + leaf use-mgt-compute-mean-link-delay { + type boolean; + description + "This leaf is analogous to use-mgt-compute-mean-link-delay for a + PTP Port, but applicable to this Link Port."; + reference + "14.16.20 of IEEE Std 802.1AS"; + } + leaf mgt-compute-mean-link-delay { + type boolean; + description + "This leaf is analogous to mgt-compute-mean-link-delay for a PTP + Port, but applicable to this Link Port."; + reference + "14.16.21 of IEEE Std 802.1AS"; + } + leaf allowed-lost-responses { + type uint8; + description + "This leaf is analogous to allowed-lost-responses for a PTP Port, + but applicable to this Link Port."; + reference + "14.16.22 of IEEE Std 802.1AS"; + } + leaf allowed-faults { + type uint8; + description + "This leaf is analogous to allowed-faults for a PTP Port, but + applicable to this Link Port."; + reference + "14.16.23 of IEEE Std 802.1AS"; + } + leaf-list pdelay-truncated-timestamps { + type uinteger48; + config false; + description + "This leaf is analogous to pdelay-truncated-timestamps for a PTP + Port, but applicable to this Link Port."; + reference + "14.16.25 of IEEE Std 802.1AS"; + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:common-services"+ + "/ptp-tt:cmlds"+ + "/ptp-tt:ports"+ + "/ptp-tt:port" { + description + "Augment to add port-statistics-ds to IEEE Std 1588 Link Port."; + container port-statistics-ds { + description + "This container is analogous to port-statistics-ds for a PTP + Port, but applicable to this Link Port."; + reference + "14.17 of IEEE Std 802.1AS"; + leaf rx-pdelay-req-count { + type yang:counter32; + config false; + description + "This leaf is analogous to rx-pdelay-req-count for a PTP Port, + but applicable to this Link Port."; + reference + "14.17.2 of IEEE Std 802.1AS"; + } + leaf rx-pdelay-resp-count { + type yang:counter32; + config false; + description + "This leaf is analogous to rx-pdelay-resp-count for a PTP Port, + but applicable to this Link Port."; + reference + "14.17.3 of IEEE Std 802.1AS"; + } + leaf rx-pdelay-resp-follow-up-count { + type yang:counter32; + config false; + description + "This leaf is analogous to rx-pdelay-resp-follow-up-count for a + PTP Port, but applicable to this Link Port."; + reference + "14.17.4 of IEEE Std 802.1AS"; + } + leaf rx-packet-discard-count { + type yang:counter32; + config false; + description + "This leaf is analogous to rx-packet-discard-count for a PTP + Port, but applicable to this Link Port."; + reference + "14.17.5 of IEEE Std 802.1AS"; + } + leaf pdelay-allowed-lost-exceeded-count { + type yang:counter32; + config false; + description + "This leaf is analogous to pdelay-allowed-lost-exceeded-count + for a PTP Port, but applicable to this Link Port."; + reference + "14.17.6 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-req-count { + type yang:counter32; + config false; + description + "This leaf is analogous to tx-pdelay-req-count for a PTP Port, + but applicable to this Link Port."; + reference + "14.17.7 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-resp-count { + type yang:counter32; + config false; + description + "This leaf is analogous to tx-pdelay-resp-count for a PTP Port, + but applicable to this Link Port."; + reference + "14.17.8 of IEEE Std 802.1AS"; + } + leaf tx-pdelay-resp-follow-up-count { + type yang:counter32; + config false; + description + "This leaf is analogous to tx-pdelay-resp-follow-up-count for a + PTP Port, but applicable to this Link Port."; + reference + "14.17.9 of IEEE Std 802.1AS"; + } + } + } + augment + "/ptp-tt:ptp"+ + "/ptp-tt:common-services"+ + "/ptp-tt:cmlds"+ + "/ptp-tt:ports"+ + "/ptp-tt:port" { + description + "Augment to add asymmetry-measurement-mode-ds to IEEE Std 1588 Link + Port."; + container asymmetry-measurement-mode-ds { + description + "This container is analogous to asymmetry-measurement-mode-ds for + a PTP Port, but applicable to this Link Port."; + reference + "14.18 of IEEE Std 802.1AS"; + leaf enabled { + type boolean; + description + "This leaf is analogous to + asymmetry-measurement-mode-ds.enabled for a PTP Port, but + applicable to this Link Port."; + reference + "14.18.2 of IEEE Std 802.1AS"; + } + } + } +} \ No newline at end of file diff --git a/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-ptp.yang b/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-ptp.yang deleted file mode 100755 index a710702e4..000000000 --- a/standard/ieee/draft/802.1/ASdn/ieee802-dot1as-ptp.yang +++ /dev/null @@ -1,1377 +0,0 @@ -module ieee802-dot1as-ptp { - yang-version 1.1; - namespace urn:ieee:std:802.1AS:yang:ieee802-dot1as-ptp; - prefix dot1as-ptp; - - import ietf-yang-types { - prefix yang; - } - import ieee1588-ptp-tt { - prefix ptp; - } - - organization - "IEEE 802.1 Working Group"; - contact - "WG-URL: http://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 - "Management objects that control timing and synchronization - for time sensitive applications, as specified in - IEEE Std 802.1AS-2020. - - Copyright (C) IEEE (2023). - This version of this YANG module is part of IEEE Std 802.1AS; - see the standard itself for full legal notices."; - - revision 2024-01-02 { - description - "Published as part of IEEE Std 802.1ASdn-2023. - Initial version."; - reference - "IEEE Std 802.1ASdn-2023 - YANG Data Model"; - } - - typedef scaled-ns { - type string { - pattern "[0-9A-F]{2}(-[0-9A-F]{2}){11}"; - } - description - "The IEEE Std 802.1AS ScaledNs type represents - signed values of time and time interval in units - of 2^16 ns, as a signed 96-bit integer. - YANG does not support a signed 96-bit integer. - Each of the 12 octets is represented in YANG as a pair of - hexadecimal characters, using uppercase for a letter. - Each octet in the array is separated by the dash - character. The most significant octet is first."; - reference - "6.4.3.1 of IEEE Std 802.1AS-2020"; - } - - typedef uscaled-ns { - type string { - pattern "[0-9A-F]{2}(-[0-9A-F]{2}){11}"; - } - description - "The IEEE Std 802.1AS UScaledNs type represents - unsigned values of time and time interval in units - of 2^16 ns, as an unsigned 96-bit integer. - YANG does not support an unsigned 96-bit integer. - Each of the 12 octets is represented in YANG as a pair of - hexadecimal characters, using uppercase for a letter. - Each octet in the array is separated by the dash - character. The most significant octet is first."; - reference - "6.4.3.2 of IEEE Std 802.1AS-2020"; - } - - typedef float64 { - type string { - pattern "[0-9A-F]{2}(-[0-9A-F]{2}){7}"; - } - description - "The IEEE Std 802.1AS Float64 type represents - IEEE Std 754 binary64 (64-bit - double-precision floating-point format). - YANG does not support floating-point, - Each of the 8 octets is represented in YANG as a pair of - hexadecimal characters, using uppercase for a letter. - Each octet in the array is separated by the dash - character. The most significant octet is first."; - reference - "6.4.2 of IEEE Std 802.1AS-2020"; - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:default-ds" { - description - "Augment IEEE Std 1588 defaultDS."; - - leaf gm-capable { - type boolean; - config false; - description - "The value is true if the time-aware system is capable - of being a grandmaster, and false if the time-aware - system is not capable of being a grandmaster."; - reference - "14.2.7 of IEEE Std 802.1AS-2020"; - } - - leaf current-utc-offset { - when "../current-utc-offset-valid='true'"; - type int16; - config false; - description - "Offset from UTC (TAI - UTC). - The offset is in units of seconds. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.8 of IEEE Std 802.1AS-2020"; - } - - leaf current-utc-offset-valid { - type boolean; - config false; - description - "The value of current-utc-offset-valid shall be true - if the value of current-utc-offset is known to be - correct, otherwise it shall be false. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.9 of IEEE Std 802.1AS-2020"; - } - - leaf leap59 { - type boolean; - config false; - description - "If the timescale is PTP, a true value for leap59 - shall indicate that the last minute of the - current UTC day contains 59 seconds. - If the timescale is not PTP, the value shall be - false. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.10 of IEEE Std 802.1AS-2020"; - } - - leaf leap61 { - type boolean; - config false; - description - "If the timescale is PTP, a true value for leap61 - shall indicate that the last minute of the - current UTC day contains 61 seconds. - If the timescale is not PTP, the value shall be - false. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.11 of IEEE Std 802.1AS-2020"; - } - - leaf time-traceable { - type boolean; - config false; - description - "The value of time-traceable shall be true if the - timescale is traceable to a primary reference; - otherwise, the value shall be false. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.12 of IEEE Std 802.1AS-2020"; - } - - leaf frequency-traceable { - type boolean; - config false; - description - "The value of frequency-traceable shall be true if - the frequency determining the timescale is traceable - to a primary reference; otherwise, the value shall - be false. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.13 of IEEE Std 802.1AS-2020"; - } - - leaf ptp-timescale { - type boolean; - config false; - description - "If ptp-timescale is true, the timescale of - the ClockTimeTransmitter entity is PTP, which is - the elapsed time since the PTP epoch measured - using the second defined by International Atomic - Time (TAI). - If ptp-timescale is false, the timescale of - the ClockTimeTransmitter entity is ARB, which is - the elapsed time since an arbitrary epoch. - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.14 of IEEE Std 802.1AS-2020"; - } - - leaf time-source { - type identityref { - base ptp:time-source; - } - config false; - description - "The source of time used by the Grandmaster Clock - This leaf applies to the ClockTimeTransmitter entity - (i.e., local only, unrelated to a remote GM)."; - reference - "14.2.15 of IEEE Std 802.1AS-2020"; - } - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:current-ds" { - description - "Augment IEEE Std 1588 currentDS."; - - leaf last-gm-phase-change { - type scaled-ns; - config false; - description - "Phase change that occurred on the most recent - change in either the Grandmaster PTP Instance - or gm-timebase-indicator leaf."; - reference - "14.3.4 of IEEE Std 802.1AS-2020"; - } - - leaf last-gm-freq-change { - type float64; - config false; - description - "Frequency change that occurred on the most recent - change in either the Grandmaster PTP Instance - or gm-timebase-indicator leaf."; - reference - "14.3.5 of IEEE Std 802.1AS-2020"; - } - - leaf gm-timebase-indicator { - type uint16; - config false; - description - "The timeBaseIndicator of the current - Grandmaster PTP Instance."; - reference - "14.3.6 of IEEE Std 802.1AS-2020"; - } - - leaf gm-change-count { - type yang:counter32; - config false; - description - "This statistics counter tracks the number of times - the Grandmaster PTP Instance has changed in a - gPTP domain."; - reference - "14.3.7 of IEEE Std 802.1AS-2020"; - } - - leaf time-of-last-gm-change { - type yang:timestamp; - config false; - description - "System time when the most recent Grandmaster Clock - change occurred in a gPTP domain. - This leaf's type is YANG timestamp, which is based - on system time. System time is an unsigned integer - in units of 10 milliseconds, using an epoch defined - by the implementation (typically time of boot-up)."; - reference - "14.3.8 of IEEE Std 802.1AS-2020"; - } - - leaf time-of-last-phase-change { - type yang:timestamp; - config false; - description - "System time when the most recent change in Grandmaster - Clock phase occurred. - This leaf's type is YANG timestamp, which is based - on system time. System time is an unsigned integer - in units of 10 milliseconds, using an epoch defined - by the implementation (typically time of boot-up)."; - reference - "14.3.9 of IEEE Std 802.1AS-2020"; - } - - leaf time-of-last-freq-change { - type yang:timestamp; - config false; - description - "System time when the most recent change in Grandmaster - Clock frequency occurred. - This leaf's type is YANG timestamp, which is based - on system time. System time is an unsigned integer - in units of 10 milliseconds, using an epoch defined - by the implementation (typically time of boot-up)."; - reference - "14.3.10 of IEEE Std 802.1AS-2020"; - } - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:parent-ds" { - description - "Augment IEEE Std 1588 parentDS."; - - leaf cumulative-rate-ratio { - type int32; - config false; - description - "Estimate of the ratio of the frequency of the Grandmaster - Clock to the frequency of the LocalClock entity of this - PTP Instance. cumulative-rate-ratio is expressed as - the fractional frequency offset multiplied by 2^41, - i.e., the quantity (rateRatio - 1.0)(2^41)."; - reference - "14.4.3 of IEEE Std 802.1AS-2020"; - } - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:ports/ptp:port/ptp:port-ds" { - description - "Augment IEEE Std 1588 portDS. - - 14.8.4 of IEEE Std 802.1AS-2020 specifies ptpPortEnabled - (ptp-port-enabled), which is provided in YANG as the - semantically equivalent node in ieee1588-ptp named - port-enable (in port-ds). - - 14.8.15 of IEEE Std 802.1AS-2020 specifies - mgtSettableLogAnnounceInterval - (mgt-settable-log-announce-interval), which is provided in - YANG as the semantically equivalent node in ieee1588-ptp named - log-announce-interval (in port-ds). In the context of - IEEE Std 802.1AS, log-announce-interval cannot be used - unless use-mgt-log-announce-interval is true. - - 14.8.20 of IEEE Std 802.1AS-2020 specifies - mgtSettableLogSyncInterval - (mgt-settable-log-sync-interval), which is provided in YANG - as the semantically equivalent node in ieee1588-ptp named - log-sync-interval (in port-ds). In the context of - IEEE Std 802.1AS, log-sync-interval cannot be used - unless use-mgt-log-sync-interval is true."; - - leaf is-measuring-delay { - type boolean; - config false; - description - "Boolean that is true if the port is measuring - PTP Link propagation delay."; - reference - "14.8.6 of IEEE Std 802.1AS-2020"; - } - - leaf as-capable { - type boolean; - config false; - description - "Boolean that is true if and only if it is determined - that this PTP Instance and the PTP Instance at the - other end of the link attached to this port can - interoperate with each other via the IEEE Std - 802.1AS protocol."; - reference - "10.2.5.1 of IEEE Std 802.1AS-2020 - 14.8.7 of IEEE Std 802.1AS-2020"; - } - - leaf mean-link-delay-thresh { - type ptp:time-interval; - description - "Propagation time threshold for mean-link-delay, - above which a port is not considered capable of - participating in the IEEE Std 802.1AS protocol."; - reference - "14.8.9 of IEEE Std 802.1AS-2020"; - } - - leaf neighbor-rate-ratio { - type int32; - config false; - description - "Estimate of the ratio of the frequency of the LocalClock - entity of the PTP Instance at the other end of the - link attached to this PTP Port, to the frequency of the - LocalClock entity of this PTP Instance. - neighbor-rate-ratio is expressed as the fractional - frequency offset multiplied by 2^41, - i.e., the quantity (rateRatio - 1.0)(2^41)."; - reference - "14.8.11 of IEEE Std 802.1AS-2020"; - } - - leaf initial-log-announce-interval { - type int8; - description - "When use-mgt-log-announce-interval is false - (i.e., change with Signaling message), this is the - the logarithm to base 2 of the announce - interval used when the port is initialized."; - reference - "14.8.12 of IEEE Std 802.1AS-2020"; - } - - leaf current-log-announce-interval { - type int8; - config false; - description - "Logarithm to base 2 of the current - announce interval."; - reference - "14.8.13 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-log-announce-interval { - type boolean; - description - "Boolean that determines the source of the - announce interval. - If the value is true, the announce interval - (current-log-announce-interval) is set equal to the value - of mgt-log-announce-interval. - If the value is false, the announce interval is determined - by the AnnounceIntervalSetting state machine (i.e., changed - with Signaling message)."; - reference - "14.8.14 of IEEE Std 802.1AS-2020"; - } - - leaf initial-log-sync-interval { - type int8; - description - "When use-mgt-log-sync-interval is false - (i.e., change with Signaling message), this is the - the logarithm to base 2 of the sync - interval used when the port is initialized."; - reference - "14.8.17 of IEEE Std 802.1AS-2020"; - } - - leaf current-log-sync-interval { - type int8; - config false; - description - "Logarithm to base 2 of the current sync - interval."; - reference - "14.8.18 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-log-sync-interval { - type boolean; - description - "Boolean that determines the source of the - sync interval. - If the value is true, the sync interval - (current-log-sync-interval) is set equal to the value - of mgt-log-sync-interval. - If the value is false, the sync interval is determined - by the SyncIntervalSetting state machine (i.e., changed - with Signaling message)."; - reference - "14.8.19 of IEEE Std 802.1AS-2020"; - } - - leaf sync-receipt-timeout { - type uint8; - description - "Number of sync intervals that a timeReceiver port waits - without receiving synchronization information, before - assuming that the timeTransmitter is no longer transmitting - synchronization information and that the BTCA needs to be - run, if appropriate."; - reference - "14.8.21 of IEEE Std 802.1AS-2020"; - } - - leaf sync-receipt-timeout-interval { - type uscaled-ns; - config false; - description - "Time interval after which sync receipt timeout occurs - if time-synchronization information has not been - received during the interval."; - reference - "14.8.22 of IEEE Std 802.1AS-2020"; - } - - leaf initial-log-pdelay-req-interval { - type int8; - description - "When use-mgt-log-pdelay-req-interval is false - (i.e., change with Signaling message), this is the - the logarithm to base 2 of the Pdelay_Req transmit - interval used when the port is initialized."; - reference - "14.8.23 of IEEE Std 802.1AS-2020"; - } - - leaf current-log-pdelay-req-interval { - type int8; - config false; - description - "Logarithm to base 2 of the current Pdelay_Req transmit - interval."; - reference - "14.8.24 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-log-pdelay-req-interval { - type boolean; - description - "Boolean that determines the source of the - Pdelay_Req transmit interval. - If the value is true, the Pdelay_Req transmit interval - (current-log-pdelay-req-interval) is set equal to the value - of mgt-log-pdelay-req-interval. - If the value is false, the Pdelay_Req transmit interval is - determined by the LinkDelayIntervalSetting state machine - (i.e., changed with Signaling message)."; - reference - "14.8.25 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-log-pdelay-req-interval { - type int8; - description - "Logarithm to base 2 of the Pdelay_Req transmit interval, - used if use-mgt-log-pdelay-req-interval is true. - This value is not used if use-mgt-log-pdelay-req-interval - is false."; - reference - "14.8.26 of IEEE Std 802.1AS-2020"; - } - - leaf initial-log-gptp-cap-interval { - type int8; - description - "When use-mgt-log-gptp-cap-interval is false - (i.e., change with Signaling message), this is the - the logarithm to base 2 of the gPTP capable message - interval used when the port is initialized."; - reference - "14.8.27 of IEEE Std 802.1AS-2020"; - } - - leaf current-log-gptp-cap-interval { - type int8; - config false; - description - "Logarithm to base 2 of the current gPTP capable message - interval."; - reference - "14.8.28 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-log-gptp-cap-interval { - type boolean; - description - "Boolean that determines the source of the - gPTP capable message interval. - If the value is true, the gPTP capable message interval - (current-log-gptp-cap-interval) is set equal to the value - of mgt-gptp-cap-req-interval. - If the value is false, the gPTP capable message interval is - determined by the GptpCapableMessageIntervalSetting - state machine (i.e., changed with Signaling message)."; - reference - "14.8.29 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-log-gptp-cap-interval { - type int8; - description - "Logarithm to base 2 of the gPTP capable message interval, - used if use-mgt-log-gptp-cap-interval is true. - This value is not used if use-mgt-log-pdelay-req-interval - is false."; - reference - "14.8.30 of IEEE Std 802.1AS-2020"; - } - - leaf initial-compute-rate-ratio { - type int8; - description - "When use-mgt-compute-rate-ratio is false - (i.e., change with Signaling message), this is the - initial value of computeNeighborRateRatio."; - reference - "14.8.31 of IEEE Std 802.1AS-2020"; - } - - leaf current-compute-rate-ratio { - type int8; - config false; - description - "Current value of computeNeighborRateRatio."; - reference - "14.8.32 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-compute-rate-ratio { - type boolean; - description - "Boolean that determines the source of - computeNeighborRateRatio.. - If the value is true, computeNeighborRateRatio - is set equal to the value of mgt-compute-rate-ratio. - If the value is false, computeNeighborRateRatio is - determined by the LinkDelayIntervalSetting - state machine (i.e., changed with Signaling message)."; - reference - "14.8.33 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-compute-rate-ratio { - type int8; - description - "Value of computeNeighborRateRatio, used if - use-mgt-compute-rate-ratio is true. - This value is not used if use-mgt-compute-rate-ratio - is false."; - reference - "14.8.34 of IEEE Std 802.1AS-2020"; - } - - leaf initial-compute-mean-link-delay { - type int8; - description - "When use-mgt-compute-mean-link-delay is false - (i.e., change with Signaling message), this is the - initial value of computeMeanLinkDelay."; - reference - "14.8.35 of IEEE Std 802.1AS-2020"; - } - - leaf current-compute-mean-link-delay { - type int8; - config false; - description - "Current value of computeMeanLinkDelay."; - reference - "14.8.36 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-compute-mean-link-delay { - type boolean; - description - "Boolean that determines the source of - computeMeanLinkDelay. - If the value is true, computeMeanLinkDelay - is set equal to the value of mgt-compute-mean-link-delay. - If the value is false, computeMeanLinkDelay is - determined by the LinkDelayIntervalSetting - state machine (i.e., changed with Signaling message)."; - reference - "14.8.37 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-compute-mean-link-delay { - type int8; - description - "Value of computeMeanLinkDelay, used if - use-mgt-compute-mean-link-delay is true. - This value is not used if use-mgt-compute-mean-link-delay - is false."; - reference - "14.8.38 of IEEE Std 802.1AS-2020"; - } - - leaf allowed-lost-responses { - type uint8; - description - "Number of Pdelay_Req messages for which a valid response - is not received, above which a port is considered to not - be exchanging peer delay messages with its neighbor."; - reference - "14.8.39 of IEEE Std 802.1AS-2020"; - } - - leaf allowed-faults { - type uint8; - description - "Number of faults above which asCapable is set to false."; - reference - "14.8.40 of IEEE Std 802.1AS-2020"; - } - - leaf gptp-cap-receipt-timeout { - type uint8; - description - "Number of transmission intervals that a port waits without - receiving the gPTP capable TLV, before assuming that the - neighbor port is no longer invoking the gPTP protocol."; - reference - "14.8.41 of IEEE Std 802.1AS-2020"; - } - - leaf nup { - type float64; - description - "For an OLT port of an IEEE Std 802.3 EPON link, this value - is the effective index of refraction for the EPON - upstream wavelength light of the optical path"; - reference - "14.8.43 of IEEE Std 802.1AS-2020"; - } - - leaf ndown { - type float64; - description - "For an OLT port of an IEEE 802.3 EPON link, this value - is the effective index of refraction for the EPON - downstream wavelength light of the optical path"; - reference - "14.8.44 of IEEE Std 802.1AS-2020"; - } - - leaf one-step-tx-oper { - type boolean; - config false; - description - "This value is true if the port is sending one-step - Sync messages, and false if the port is sending - two-step Sync and Follow-Up messages."; - reference - "14.8.45 of IEEE Std 802.1AS-2020"; - } - - leaf one-step-receive { - type boolean; - config false; - description - "This value is true if the port is capable of - receiving and processing one-step Sync messages."; - reference - "14.8.46 of IEEE Std 802.1AS-2020"; - } - - leaf one-step-transmit { - type boolean; - config false; - description - "This value is true if the port is capable of - transmitting one-step Sync messages."; - reference - "14.8.47 of IEEE Std 802.1AS-2020"; - } - - leaf initial-one-step-tx-oper { - type int8; - description - "When use-mgt-one-step-tx-oper is false - (i.e., change with Signaling message), this is the - initial value of current-one-step-tx-oper."; - reference - "14.8.48 of IEEE Std 802.1AS-2020"; - } - - leaf current-one-step-tx-oper { - type int8; - config false; - description - "This value is true if the port is configured to - transmit one-step Sync messages, either via management - (mgt-one-step-tx-oper) or Signaling. If both - current-one-step-tx-oper and one-step-transmit - are true, the port transmits one-step Sync messages - (i.e., one-step-tx-oper true)."; - reference - "14.8.49 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-one-step-tx-oper { - type boolean; - description - "Boolean that determines the source of - current-one-step-tx-oper. - If the value is true, current-one-step-tx-oper - is set equal to the value of mgt-one-step-tx-oper. - If the value is false, current-one-step-tx-oper is - determined by the OneStepTxOperSetting - state machine (i.e., changed with Signaling message)."; - reference - "14.8.50 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-one-step-tx-oper { - type int8; - description - "If use-mgt-one-step-tx-oper is true, - current-one-step-tx-oper is set equal to this value. - This value is not used if use-mgt-one-step-tx-oper - is false."; - reference - "14.8.51 of IEEE Std 802.1AS-2020"; - } - - leaf sync-locked { - type boolean; - config false; - description - "This value is true if the port will transmit a Sync as - soon as possible after the timeReceiver port receives a Sync - message."; - reference - "14.8.52 of IEEE Std 802.1AS-2020"; - } - - leaf-list pdelay-truncated-timestamps { - type uint64 { - range "0..281474976710655"; - } - config false; - description - "For full-duplex IEEE Std 802.3 media, and CSN media that use - the peer-to-peer delay mechanism to measure path delay, - the values of the four elements of this leaf-list correspond - to the timestamps t1, t2, t3, and t4, listed in that order. - Each timestamp is expressed in units of 2^-16 ns (i.e., the - value of each array element is equal to the remainder obtained - upon dividing the respective timestamp, expressed in units of - 2^-16 ns, by 2^48). At any given time, the timestamp values - stored in the array are for the same, and most recently - completed, peer delay message exchange. For each timestamp, - only 48-bits are valid (the upper 16-bits are always zero)."; - reference - "14.8.53 of IEEE Std 802.1AS-2020"; - } - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:ports/ptp:port" { - description - "Augment to add port-statistics-ds to IEEE Std 1588 PTP Port."; - - container port-statistics-ds { - description - "Provides counters associated with the port of the - PTP Instance."; - reference - "14.10 of IEEE Std 802.1AS-2020"; - - leaf rx-sync-count { - type yang:counter32; - config false; - description - "Counter that increments every time synchronization - information is received."; - reference - "14.10.2 of IEEE Std 802.1AS-2020"; - } - - leaf rx-one-step-sync-count { - type yang:counter32; - config false; - description - "Counter that increments every time a one-step Sync - message is received."; - reference - "14.10.3 of IEEE Std 802.1AS-2020"; - } - - leaf rx-follow-up-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Follow_Up - message is received."; - reference - "14.10.4 of IEEE Std 802.1AS-2020"; - } - - leaf rx-pdelay-req-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Req - message is received."; - reference - "14.10.5 of IEEE Std 802.1AS-2020"; - } - - leaf rx-pdelay-resp-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Resp - message is received."; - reference - "14.10.6 of IEEE Std 802.1AS-2020"; - } - - leaf rx-pdelay-resp-follow-up-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Resp_Follow_Up - message is received."; - reference - "14.10.7 of IEEE Std 802.1AS-2020"; - } - - leaf rx-announce-count { - type yang:counter32; - config false; - description - "Counter that increments every time an Announce - message is received."; - reference - "14.10.8 of IEEE Std 802.1AS-2020"; - } - - leaf rx-packet-discard-count { - type yang:counter32; - config false; - description - "Counter that increments every time a PTP message - of the respective PTP Instance is discarded."; - reference - "14.10.9 of IEEE Std 802.1AS-2020"; - } - - leaf sync-receipt-timeout-count { - type yang:counter32; - config false; - description - "Counter that increments every time a sync receipt - timeout occurs."; - reference - "14.10.10 of IEEE Std 802.1AS-2020"; - } - - leaf announce-receipt-timeout-count { - type yang:counter32; - config false; - description - "Counter that increments every time an announce receipt - timeout occurs."; - reference - "14.10.11 of IEEE Std 802.1AS-2020"; - } - - leaf pdelay-allowed-lost-exceeded-count { - type yang:counter32; - config false; - description - "Counter that increments every time the value of the - variable lostResponses exceeds the value of the variable - allowedLostResponses, in the RESET state of the - MDPdelayReq state machine."; - reference - "14.10.12 of IEEE Std 802.1AS-2020"; - } - - leaf tx-sync-count { - type yang:counter32; - config false; - description - "Counter that increments every time synchronization - information is transmitted."; - reference - "14.10.13 of IEEE Std 802.1AS-2020"; - } - - leaf tx-one-step-sync-count { - type yang:counter32; - config false; - description - "Counter that increments every time a one-step Sync - message is transmitted."; - reference - "14.10.14 of IEEE Std 802.1AS-2020"; - } - - leaf tx-follow-up-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Follow_Up - message is transmitted."; - reference - "14.10.15 of IEEE Std 802.1AS-2020"; - } - - leaf tx-pdelay-req-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Req - message is transmitted."; - reference - "14.10.16 of IEEE Std 802.1AS-2020"; - } - - leaf tx-pdelay-resp-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Resp - message is transmitted."; - reference - "14.10.17 of IEEE Std 802.1AS-202014.10.17"; - } - - leaf tx-pdelay-resp-follow-up-count { - type yang:counter32; - config false; - description - "Counter that increments every time a Pdelay_Resp_Follow_Up - message is transmitted."; - reference - "14.10.18 of IEEE Std 802.1AS-2020"; - } - - leaf tx-announce-count { - type yang:counter32; - config false; - description - "Counter that increments every time an Announce - message is transmitted."; - reference - "14.10.19 of IEEE Std 802.1AS-2020"; - } - } - } - - augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:ports/ptp:port" { - description - "Augment to add asymmetry-measurement-mode-ds to - IEEE Std 1588 PTP Port."; - - container asymmetry-measurement-mode-ds { - description - "Represents the capability to enable/disable the Asymmetry - Compensation Measurement Procedure on a PTP Port. - This data set is used instead of the CMLDS - asymmetry-measurement-mode-ds when only a single PTP - Instance is present (i.e., CMLDS is not used)."; - reference - "14.13 of IEEE Std 802.1AS-2020 - Annex G of IEEE Std 802.1AS-2020"; - - leaf enabled { - type boolean; - description - "For full-duplex IEEE Std 802.3 media, the value is true - if an asymmetry measurement is being performed for the - link attached to this PTP Port, and false otherwise. - For all other media, the value shall be false."; - } - } - } - - augment "/ptp:ptp/ptp:common-services/ptp:cmlds/ptp:ports/ptp:port/ptp:link-port-ds" { - description - "Augment IEEE Std 1588 cmldsLinkPortDS. - - 14.16.9 of IEEE Std 802.1AS-2020 specifies neighborRateRatio - (neighbor-rate-ratio), which is provided in YANG as the - semantically equivalent node in ieee1588-ptp named - scaled-neighbor-rate-ratio (in link-port-ds)."; - - leaf cmlds-link-port-enabled { - type boolean; - config false; - description - "Boolean that is true if both delay-mechanism is common-p2p - and the value of ptp-port-enabled is true, for at least one - PTP Port that uses the CMLDS; otherwise, the value is false."; - reference - "11.2.18.1 of IEEE Std 802.1AS-2020 - 14.16.3 of IEEE Std 802.1AS-2020"; - } - - leaf is-measuring-delay { - type boolean; - config false; - description - "This leaf is analogous to is-measuring-delay - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.4 of IEEE Std 802.1AS-2020"; - } - - leaf as-capable-across-domains { - type boolean; - config false; - description - "This leaf is true when all PTP Instances (domains) - for this Link Port detect proper exchange of Pdelay - messages."; - reference - "11.2.2 of IEEE Std 802.1AS-2020 - 14.16.5 of IEEE Std 802.1AS-2020"; - } - - leaf mean-link-delay-thresh { - type ptp:time-interval; - description - "Propagation time threshold for mean-link-delay, - above which a Link Port is not considered capable of - participating in the IEEE Std 802.1AS protocol."; - reference - "14.16.7 of IEEE Std 802.1AS-2020"; - } - - leaf initial-log-pdelay-req-interval { - type int8; - description - "This leaf is analogous to initial-log-pdelay-req-interval - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.10 of IEEE Std 802.1AS-2020"; - } - - leaf current-log-pdelay-req-interval { - type int8; - config false; - description - "This leaf is analogous to current-log-pdelay-req-interval - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.11 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-log-pdelay-req-interval { - type boolean; - description - "This leaf is analogous to use-mgt-log-pdelay-req-interval - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.12 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-log-pdelay-req-interval { - type int8; - description - "This leaf is analogous to mgt-log-pdelay-req-interval - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.13 of IEEE Std 802.1AS-2020"; - } - - leaf initial-compute-rate-ratio { - type int8; - description - "This leaf is analogous to initial-compute-rate-ratio - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.14 of IEEE Std 802.1AS-2020"; - } - - leaf current-compute-rate-ratio { - type int8; - config false; - description - "This leaf is analogous to current-compute-rate-ratio - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.15 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-compute-rate-ratio { - type boolean; - description - "This leaf is analogous to use-mgt-compute-rate-ratio - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.16 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-compute-rate-ratio { - type int8; - description - "This leaf is analogous to mgt-compute-rate-ratio - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.17 of IEEE Std 802.1AS-2020"; - } - - leaf initial-compute-mean-link-delay { - type int8; - description - "This leaf is analogous to initial-compute-mean-link-delay - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.18 of IEEE Std 802.1AS-2020"; - } - - leaf current-compute-mean-link-delay { - type int8; - config false; - description - "This leaf is analogous to current-compute-mean-link-delay - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.19 of IEEE Std 802.1AS-2020"; - } - - leaf use-mgt-compute-mean-link-delay { - type boolean; - description - "This leaf is analogous to use-mgt-compute-mean-link-delay - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.20 of IEEE Std 802.1AS-2020"; - } - - leaf mgt-compute-mean-link-delay { - type int8; - description - "This leaf is analogous to mgt-compute-mean-link-delay - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.21 of IEEE Std 802.1AS-2020"; - } - - leaf allowed-lost-responses { - type uint8; - description - "This leaf is analogous to allowed-lost-responses - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.22 of IEEE Std 802.1AS-2020"; - } - - leaf allowed-faults { - type uint8; - description - "This leaf is analogous to allowed-faults - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.23 of IEEE Std 802.1AS-2020"; - } - - leaf-list pdelay-truncated-timestamps { - type uint64 { - range "0..281474976710655"; - } - config false; - description - "This leaf is analogous to pdelay-truncated-timestamps - for a PTP Port, but applicable to this Link Port."; - reference - "14.16.25 of IEEE Std 802.1AS-2020"; - } - } - - augment "/ptp:ptp/ptp:common-services/ptp:cmlds/ptp:ports/ptp:port" { - description - "Augment to add port-statistics-ds to IEEE Std 1588 Link Port."; - - container port-statistics-ds { - description - "This container is analogous to port-statistics-ds - for a PTP Port, but applicable to this Link Port."; - reference - "14.17 of IEEE Std 802.1AS-2020"; - - leaf rx-pdelay-req-count { - type yang:counter32; - config false; - description - "This leaf is analogous to rx-pdelay-req-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.2 of IEEE Std 802.1AS-2020"; - } - - leaf rx-pdelay-resp-count { - type yang:counter32; - config false; - description - "This leaf is analogous to rx-pdelay-resp-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.3 of IEEE Std 802.1AS-2020"; - } - - leaf rx-pdelay-resp-follow-up-count { - type yang:counter32; - config false; - description - "This leaf is analogous to rx-pdelay-resp-follow-up-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.4 of IEEE Std 802.1AS-2020"; - } - - leaf rx-packet-discard-count { - type yang:counter32; - config false; - description - "This leaf is analogous to rx-packet-discard-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.5 of IEEE Std 802.1AS-2020"; - } - - leaf pdelay-allowed-lost-exceeded-count { - type yang:counter32; - config false; - description - "This leaf is analogous to - pdelay-allowed-lost-exceeded-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.6 of IEEE Std 802.1AS-2020"; - } - - leaf tx-pdelay-req-count { - type yang:counter32; - config false; - description - "This leaf is analogous to tx-pdelay-req-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.7 of IEEE Std 802.1AS-2020"; - } - - leaf tx-pdelay-resp-count { - type yang:counter32; - config false; - description - "This leaf is analogous to tx-pdelay-resp-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.8 of IEEE Std 802.1AS-2020"; - } - - leaf tx-pdelay-resp-follow-up-count { - type yang:counter32; - config false; - description - "This leaf is analogous to tx-pdelay-resp-follow-up-count - for a PTP Port, but applicable to this Link Port."; - reference - "14.17.9 of IEEE Std 802.1AS-2020"; - } - } - } - - augment "/ptp:ptp/ptp:common-services/ptp:cmlds/ptp:ports/ptp:port" { - description - "Augment to add asymmetry-measurement-mode-ds to - IEEE Std 1588 Link Port."; - - container asymmetry-measurement-mode-ds { - description - "This container is analogous to asymmetry-measurement-mode-ds - for a PTP Port, but applicable to this Link Port."; - reference - "14.18 of IEEE Std 802.1AS-2020"; - - leaf enabled { - type boolean; - description - "This leaf is analogous to - asymmetry-measurement-mode-ds.enabled - for a PTP Port, but applicable to this Link Port."; - } - } - } -} diff --git a/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags b/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags new file mode 100644 index 000000000..8f31f3a5e --- /dev/null +++ b/standard/ieee/draft/802.1/ASds/check_pyang_extra_flags @@ -0,0 +1 @@ + -p ../ASdn diff --git a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang new file mode 100644 index 000000000..62d875253 --- /dev/null +++ b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-hd.yang @@ -0,0 +1,72 @@ +module ieee802-dot1as-hd { + yang-version 1.1; + namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-hd"; + prefix dot1as-hd; + + import ieee1588-ptp-tt { + prefix ptp-tt; + } + import ieee802-dot1as-gptp { + prefix dot1as-gptp; + } + + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://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 + "Management objects that control MAC operating in half-duplex as + specified in IEEE Std 802.1ASds. + + References in this YANG module to IEEE Std 802.1AS are to + 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, and IEEE Std 802.1ASds. + + 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-06-11 { + description + "Published as part of IEEE Std 802.1ASds-2024. + Initial version."; + reference + "IEEE Std 802.1AS - YANG Data Model"; + } + + augment "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance" + + "/ptp-tt:ports/ptp-tt:port/ptp-tt:port-ds" { + description + "Augment IEEE Std 1588 portDS."; + leaf pdelay-req-send-disabled { + type boolean; + description + "A boolean that is administratively set to TRUE + if Pdelay_Req messages are not transmitted by this port. + The default value for this variable shall be FALSE."; + reference + "11.2.19.2.14 of IEEE Std 802.1ASds"; + } + leaf pdelay-resp-send-disabled { + type boolean; + description + "A boolean that is administratively set to TRUE + if Pdelay_Resp messages are not transmitted by this port. + The default value for this variable shall be FALSE."; + reference + "11.2.20.2.6 of IEEE Std 802.1ASds"; + } + } +} diff --git a/standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang b/standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang new file mode 100644 index 000000000..c3e2b5e1c --- /dev/null +++ b/standard/ieee/draft/802.1/Qdd/ieee802-dot1q-rap.yang @@ -0,0 +1,850 @@ +module ieee802-dot1q-rap { + yang-version 1.1; + namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-rap"; + prefix rap; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-types { + prefix dot1qtypes; + } + import ieee802-dot1q-bridge { + prefix dot1q; + } + import ieee802-dot1q-tsn-types { + prefix tsn; + } + import ieee802-types { + prefix ieeetypes; + } + import ietf-inet-types { + prefix inet; + } + + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://www.ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "This module provides management of 802.1Q Bridge components that + support the Resource Allocation Protocol (RAP). + + Copyright (C) IEEE (202x). + + This version of this YANG module is part of IEEE Std 802.1Q; + see the standard itself for full legal notices."; + + revision 2024-03-07 { + description + "Published as part of IEEE Std 802.1Qdd-202x. + + 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."; + } + + grouping target-port { + leaf chassis-id { + type ieeetypes:chassis-id-type; + description + "Chassis component associated with the local system."; + reference + "8.5.2.3 of IEEE Std 802.1AB-2016"; + } + leaf port-id { + type ieeetypes:port-id-type; + description + "Port component associated with a given port in the local + system."; + reference + "8.5.3.3 of IEEE Std 802.1AB-2016"; + } + leaf ecp-capable { + type boolean; + description "A Boolean value indicating whether the target + port supports the LRP-DT ECP mechanism (TRUE) or not (FALSE)."; + } + leaf tcp-capable { + type boolean; + description "A Boolean value indicating whether that the target + port supports the LRP-DT TCP mechanism (TRUE) or not (FALSE)."; + } + leaf tcp-port { + type uint16; + description + "A 2-byte TCP port number for the target port."; + reference + "C.2.2.6.1 of IEEE Std 802.1CS-2020"; + } + leaf addr-ip-v4 { + type inet:ipv4-address; + description + "A 4-byte IPv4 address for the target port or NULL."; + reference + "Item 1) in C.2.2.6.2 of IEEE Std 802.1CS-2020"; + } + leaf addr-ip-v6 { + type inet:ipv6-address; + description + "A 16-byte IPv6 address for the target port or NULL."; + reference + "Item 2) in C.2.2.6.2 of IEEE Std 802.1CS-2020"; + } + } + + grouping rap-talker-announce { + leaf stream-id { + type tsn:stream-id-type; + description + "An 8-octet field encoding the StreamID element as specified in + 46.2.3.1."; + reference + "51.5.3.1 of IEEE Std 802.1Q"; + } + leaf stream-rank { + type uint8; + description + "A 1-octet field encoding a Rank value as specified in + 46.2.3.2.1."; + reference + "51.5.3.2 of IEEE Std 802.1Q"; + } + leaf accumulated-max-latency { + type uint32; + description + "A 4-octet field encoding the AccumulatedLatency element as + specified in 46.2.5.2."; + reference + "51.5.3.3 of IEEE Std 802.1Q"; + } + leaf accumulated-min-latency { + type uint32; + description + "A 4-octet unsigned integer, indicating the minimum latency, in + nanoseconds, that a single frame of the stream can encounter when + transmitted from the Talker along a given path to the Port + declaring this attribute."; + reference + "51.5.3.4 of IEEE Std 802.1Q"; + } + leaf destination-mac-address { + type ieeetypes:mac-address; + description + "A 6-octet destination MAC address of the data frames of the + stream."; + reference + "51.5.3.5.1 of IEEE Std 802.1Q"; + } + leaf priority { + type dot1qtypes:priority-type; + description + "A 3-bit unsigned integer, indicating the priority to be encoded in + the PCP field of the VLAN tag, with which the data frames of the + stream are tagged. This priority value is used by each receiving + Bridge to associate the stream to a local RA class of the same + priority."; + reference + "51.5.3.5.2 of IEEE Std 802.1Q"; + } + leaf vid { + type uint16 { + range "1..4094"; + } + description + "A 12-bit VID. The semantics of this field is dependent on the type + of a Talker Announcement in which the Talker Announce attribute is + used, as follows: + a) In the case of a Single-Context Talker + Announcement, this field indicates a VID to be encoded in the VLAN + tag with which the data frames of the stream are tagged, and also a + single VLAN Context used by the Talker Announce attribute. + b) In the case of a Multi-Context Talker Announcement, this field is + set to the numerically smallest VlanContextId value contained in a + VLAN Context Information sub-TLV."; + reference + "51.5.3.5.3 of IEEE Std 802.1Q"; + } + leaf talker-token-bucket-tspec { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a + Token Bucket TSpec sub-TLV is contained in the TalkerTSpec field + of the Talker Announce attribute (TRUE) or not (FALSE)."; + reference + "12.35.9.1 of IEEE Std 802.1Q"; + } + leaf talker-token_bucket_tspec_value { + type binary; + description + "When talkerTokenBucketTSpec is TRUE, this parameter returns an + octet string that is copied from the whole of the Value field of a + Token Bucket TSpec sub-TLV contained in the TalkerTSpec field of the + Talker Announce attribute."; + reference + "12.35.9.2 of IEEE Std 802.1Q"; + } + leaf talker-msrp-tspec { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a MSRP + TSpec sub-TLV is contained in the TalkerTSpec field of the Talker + Announce attribute."; + reference + "12.35.9.3 of IEEE Std 802.1Q"; + } + leaf talker-msrp-tspec-value { + type binary; + description + "When talkerMsrpTSpec is TRUE, this parameter returns an octet string + that is copied from the whole of the Value field of a MSRP TSpec + sub-TLV contained in the TalkerTSpec field of the Talker Announce + attribute."; + reference + "12.35.9.4 of IEEE Std 802.1Q"; + } + leaf network-tspec { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a + Token Bucket TSpec sub-TLV is contained in the NetworkTSpec field + of the Talker Announce attribute (TRUE) or not (FALSE)."; + reference + "12.35.9.5 of IEEE Std 802.1Q"; + } + leaf network-tspec-value { + type binary; + description + "When networkTSpec is TRUE, this parameter returns an octet string + that is copied from the whole of the Value field of a Token Bucket + TSpec sub-TLV contained in the NetworkTSpec field of the Talker + Announce attribute."; + reference + "12.35.9.6 of IEEE Std 802.1Q"; + } + leaf redundancy-control { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a + Redundancy Control sub-TLV is contained in the Talker Announce + attribute (TRUE) or not (FALSE)."; + reference + "12.35.9.7 of IEEE Std 802.1Q"; + } + leaf redundancy-control-value { + type binary; + description + "When redundancyControl is TRUE, this parameter returns an octet + string that is copied from the whole of the Value field of a + Redundancy Control sub-TLV contained in the Talker Announce + attribute."; + reference + "12.35.9.8 of IEEE Std 802.1Q"; + } + leaf failure-info { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a + Failure Information sub-TLV is contained in the Talker Announce + attribute (TRUE) or not (FALSE)."; + reference + "12.35.9.9 of IEEE Std 802.1Q"; + } + leaf failure-info-value { + type binary; + description + "When failureInfo is TRUE, this parameter returns an octet string + that is copied from the whole of the Value field of a Failure + Information sub-TLV contained in the Talker Announce attribute."; + reference + "12.35.9.10 of IEEE Std 802.1Q"; + } + leaf org-defined-info { + type boolean; + description + "This parameter returns a Boolean value that indicates whether an + Organizationally Defined sub-TLV is contained in the Talker Announce + attribute (TRUE) or not (FALSE)."; + reference + "12.35.9.11 of IEEE Std 802.1Q"; + } + leaf org-defined-info-value { + type binary; + description + "When orgDefinedInfo is TRUE, this parameter returns an octet string + that is copied from the whole of the Value field of an + Organizationally Defined sub-TLV contained in the Talker Announce + attribute."; + reference + "12.35.9.12 of IEEE Std 802.1Q"; + } + } + + grouping rap-listener-attach { + leaf stream-id { + type tsn:stream-id-type; + description + "An 8-octet field encoding the StreamID element as specified in + 46.2.3.1."; + reference + "51.5.4.1 of IEEE Std 802.1Q"; + } + leaf vid { + type uint16 { + range "1..4094"; + } + description + "A 12-bit integer, indicating a VID to be encoded in the VLAN tag + with which the data frames of the stream are tagged."; + reference + "51.5.4.2 of IEEE Std 802.1Q"; + } + leaf listener-attach-status { + type enumeration { + enum faultless-path { + value 0; + } + enum faulty-path { + value 1; + } + enum unresponsive-path { + value 2; + } + } + description + "An enumeration indicating the Path status"; + reference + "51.5.4.4.1 of IEEE Std 802.1Q"; + } + leaf vlan-context-status { + type boolean; + description + "This parameter returns a Boolean value that indicates whether a + VLAN Context Status sub-TLV is contained in the Listener Attach + attribute (TRUE) or not (FALSE)."; + reference + "12.35.11.1 of IEEE Std 802.1Q"; + } + leaf vlan-context-status-value { + type binary; + description + "When vlanContextStatus is TRUE, this parameter returns an octet + string that is copied from the whole of the Value field of a VLAN + Context Status sub-TLV contained in the Listener Attach attribute."; + reference + "12.35.11.2 of IEEE Std 802.1Q"; + } + } + + augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { + description + "Augment Bridge with RAP configuration."; + reference + "51 of IEEE Std 802.1Q."; + container rap-propagator { + leaf frer-capable { + type boolean; + config false; + description + "A Boolean value, indicating whether the Bridge is a + FRER-capable Bridge (TRUE) or not (FALSE)."; + reference + "51.8.4.11 of IEEE Std 802.1Q."; + } + leaf max-processing-delay { + type uint32; + config false; + description + "An unsigned integer, indicating the maximum delay, in + nanoseconds, that a frame can experience during the + forwarding process of the Bridge until it is placed into an + outbound queue."; + reference + "51.8.4.12 of IEEE Std 802.1Q."; + } + leaf min-processing-delay { + type uint32; + config false; + description + "An unsigned integer, indicating the minimum delay, in + nanoseconds, that a frame can experience during the + forwarding process of the Bridge until it is placed into an + outbound queue."; + reference + "51.8.4.13 of IEEE Std 802.1Q."; + } + } + list ra-class { + key "ra-class-id"; + description + "Each table row contains a set of parameters that defines a + single RA class"; + leaf ra-class-id { + type uint8 { + range "0 .. 255"; + } + description + "The RA class ID is an integer in the range of 0 through 255 + that identifies an RA class supported by an end station or + Bridge."; + reference + "51.3.2.1 of IEEE Std 802.1Q."; + } + leaf ra-class-priority { + type int8 { + range "0 .. 7"; + } + description + "Each RA class supported by an end station or Bridge is + associated with a unique priority value in the range 0 + through 7, termed RA class priority. The RA class priority + indicates the received priority of the frames which are to + be mapped to the traffic class(es) with which that RA class + is associated."; + reference + "51.3.2.2 of IEEE Std 802.1Q."; + } + leaf rt-id { + type int32; + description + "An RA class template is identified by an RA Class Template + Identifier (RTID), which encodes a 3-octet OUI or CID value + identifying the organization that defines that template, + followed by a 1-octet index allocated by that + organization."; + reference + "51.3.2.3 of IEEE Std 802.1Q."; + } + leaf templated-defined-data { + type binary; + description + "The encoding of this field and the semantics associated + with its values if any, is specific to the RA class + template identified by the value contained in rt-id"; + reference + "51.5.2.1.6 of IEEE Std 802.1Q."; + } + } + list ra-class-port-pair { + key "index"; + description + "Each table row corresponds to an RA class configured in the + RA Class Bridge Table and contains a set of parameters + associated with a reception Port and a transmission Port"; + leaf index { + type uint16; + description + "The index for the list"; + } + leaf reception-port { + type dot1qtypes:port-number-type; + description + "The port number of the associated reception Port."; + reference + "Item a) in 51.8.4.9 of IEEE Std 802.1Q."; + } + leaf transmission-port { + type dot1qtypes:port-number-type; + description + "The port number of the associated transmission Port."; + reference + "Item b) in 51.8.4.9 of IEEE Std 802.1Q."; + } + leaf ra-class-id { + type int8; + description + "The RA class ID of the associated local RA class. "; + reference + "Item c) in 51.8.4.9 of IEEE Std 802.1Q."; + } + leaf max-hop-latency { + type uint32; + description + "An unsigned integer, containing the administratively + configured maximum latency value, in nanoseconds, that is + used as an upper bound latency in the latency constraint + imposed on each stream reserved in the RA class, received + on the reception Port, and transmitted on the transmission + Port. The latency is measured from a point located in an + upstream station connected via a LAN to the reception Port, + to a point located in the transmission Port, where the + exact measurement points are specific to and defined by the + RA class template being used by the RA class."; + reference + "Item d) in 51.8.4.9 of IEEE Std 802.1Q."; + } + } + list rap-redundancy-context { + key "redundancy-context-id"; + description + "Each table row contains a set of parameters associated with a + Redundancy Context supported by the Bridge."; + leaf redundancy-context-id { + type uint16 { + range "1..4096"; + } + description + "The Redundancy Context ID of the Redundancy Context"; + reference + "Item a) in 51.8.4.10 of IEEE Std 802.1Q."; + } + list vlan-context-list { + key "vlan-context"; + description + "The list of VLAN Context IDs associated with the Redundancy Context."; + reference + "Item b) in 51.8.4.10 of IEEE Std 802.1Q."; + leaf vlan-context { + type uint16 { + range "1..4096"; + } + } + } + } + } + + augment "/if:interfaces/if:interface/dot1q:bridge-port" { + description + "Augment Bridge Port with RAP configuration"; + reference + "51 of IEEE Std 802.1Q."; + container rap-participant { + leaf participant-enabled { + type boolean; + description + "A Boolean variable indicating whether the operation of the + RAP Participant state machine is administratively enabled + (TRUE) or not (FALSE)."; + reference + "51.7.4.2 of IEEE Std 802.1Q."; + } + leaf neighbor-discovery-mode { + type enumeration { + enum lldp-discovery { + value 1; + } + enum static-configuration { + value 2; + } + enum exploratory-hello { + value 3; + } + } + description + "An administratively assigned value, indicating the operation + mode in which neighbor discovery is performed on the local + target Port, and taking one of the following enumerated + values: + 1) LLDP_DISCOVERY: The information about a neighbor target + port to be passed to the underlying LRP is obtained through + the exchange of LRP Discovery TLVs (Annex C of IEEE Std + 802.1CS-2020) by use of LLDP, and contained in + lldpNeighborTargetPort (51.7.4.7.4). + 2) STATIC_CONFIGURATION: The information about a neighbor + target port to be passed to the underlying LRP is statically + configured by the management and contained in + staticNeighborTargetPort (51.7.4.7.3). + 3) EXPLORATORY_HELLO: No neighbor target port information + needs to be passed to the underlying LRP."; + reference + "51.7.4.3 of IEEE Std 802.1Q."; + } + leaf hello-time { + type int32; + default 30; + description + "An administratively assigned integer value, in the range 30 + through 65535, for the Hello Time parameter in a Local Target + Port request issued by the RAP Participant state machine to + the underlying LRP."; + reference + "51.7.4.4 of IEEE Std 802.1Q."; + } + leaf complete-list-timer-reset { + type int32; + description + "An administratively assigned integer value, in the range x + through y, for the cplCompleteListTimerReset parameter in a + Local Target Port request issued by the RAP Participant state + machine to the underlying LRP. The default value is z."; + reference + "51.7.4.5 of IEEE Std 802.1Q."; + } + leaf explore-hello-recv-enabled { + type boolean; + description + "An administratively assigned Boolean value for the + imPplExploreRecv parameter in a Neighbor Target Port request + issued by the RAP Participant state machine to the underlying + LRP."; + reference + "51.7.4.6 of IEEE Std 802.1Q."; + } + container local-target-port { + uses target-port ; + description + "Contains the administratively configured parameters of the + local target port."; + reference + "51.7.4.7.2 of IEEE Std 802.1Q."; + } + container static-neighor-target-port { + uses target-port ; + description + "Contains the administratively configured parameters of a + neighbor target port to which the local target port is to be + connected."; + reference + "51.7.4.7.3 of IEEE Std 802.1Q."; + } + container lldp-neighbor-target-port { + uses target-port ; + config false; + description + "Contains the configuration parameters of a neighbor target + port discovered by LLDP."; + reference + "51.7.4.7.4 of IEEE Std 802.1Q."; + } + leaf neighbor-mismatch { + type boolean; + config false; + description + "A Boolean variable, set TRUE when detecting a mismatch between + the local target port and the neighbor target port to be + connected."; + reference + "51.7.4.8 of IEEE Std 802.1Q."; + } + leaf portal-connected { + type boolean; + config false; + description + "A Boolean value indicating whether a Portal association for the + Portal as indicated in portal-id (51.7.4.11) has been + established by the underlying LRP (TRUE) or not (FALSE)."; + reference + "51.7.4.12 of IEEE Std 802.1Q."; + } + } + container rap-propagator { + leaf stream-da-pruning-enabled { + type boolean; + description + "A Boolean indicating whether Stream DA Pruning (51.3.4.1.2) + is administratively enabled (TRUE) or disabled (FALSE) on the + Port."; + reference + "Item b) in 51.8.4.7 of IEEE Std 802.1Q."; + } + leaf max-interfering-frame-size { + type uint32; + config false; + description + "An unsigned integer, indicating the maximum frame size, in + bytes, including media-dependent overhead (12.4.2.2), that is + allowed to be transmitted through the Port. The value of this + parameter is determined by the operation of the underlying + MAC Service."; + reference + "Item e) in 51.8.4.7 of IEEE Std 802.1Q."; + } + leaf max-propagation-delay { + type uint32; + config false; + description + "An unsigned integer, indicating the maximum latency, in + nanoseconds, a frame can experience when transmitted from the + underlying physical medium on the Port to a reception port + connected via a LAN to the Port."; + reference + "Item f) in 51.8.4.7 of IEEE Std 802.1Q."; + } + leaf min-propagation-delay { + type uint32; + config false; + description + "An unsigned integer, indicating the minimum latency, in + nanoseconds, a frame can experience when transmitted from the + underlying physical medium on the Port to a reception port + connected via a LAN to the Port."; + reference + "Item g) in 51.8.4.7 of IEEE Std 802.1Q."; + } + leaf red-context-consistent { + type boolean; + config false; + description + "A Boolean indicating whether the Redundancy Context + configuration in this Bridge is consistent with that in a + neighboring station on the Port (TRUE) or not (FALSE). "; + reference + "Item h) in 51.8.4.7 of IEEE Std 802.1Q."; + } + } + list ra-class { + key "ra-class-id"; + description + "Each table row contains a set of parameters that defines a + single RA class"; + leaf ra-class-id { + type uint8 { + range "0 .. 255"; + } + description + "The RA class ID of the associated local RA class."; + reference + "Item b) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf domain-boundary-status { + type boolean; + config false; + description + "A Boolean indicating whether the Port is a domain boundary + port for the RA class (TRUE) or not (FALSE)."; + reference + "Item c) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf max-stream-frame-size { + type uint16; + description + "An unsigned integer, indicating the maximum frame size, in + bytes, of the streams allowed to be transmitted in the RA + class on the Port."; + reference + "Item d) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf min-stream-frame-size { + type uint16; + description + "An unsigned integer, indicating the minimum frame size, in + bytes, of the streams allowed to be transmitted in the RA + class on the Port."; + reference + "Item e) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf max-bandwidth { + type uint32; + description + "An unsigned integer, indicating the maximum amount of + bandwidth that can be allocated to the streams reserved in + the RA class on the Port. The bandwidth value is represented + as a percentage of the portTransmitRate value on that Port + and expressed as a fixed-point number scaled by a factor of + 1,000,000; i.e., 100,000,000 (the maximum value)represents + 100%."; + reference + "Item f) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf allocated-bandwidth { + type uint32; + config false; + description + "An unsigned integer, indicating the amount of bandwidth that has + been allocated to the streams reserved in the RA class on the + Port. The bandwidth value is represented as a percentage of the + portTransmitRate value on that Port and expressed as a fixed- + point number scaled by a factor of 1,000,000; i.e., 100,000,000 + (the maximum value) represents 100%."; + reference + "Item g) in 51.8.4.8 of IEEE Std 802.1Q."; + } + leaf proposed-max-hop-latency { + type uint32; + description + "An unsigned integer, indicating the administratively configured + value, in nanoseconds, to be contained in the + ProposedMaxHopLatency field of an RA Class Descriptor sub-TLV for + the RA class in the RA attribute declared by this Bridge on the + Port. The latency value is intended for use by a downstream + station, e.g. an Listener, connected via a LAN to the Port to + determine the corresponding maxHopLatency value. "; + reference + "Item h) in 51.8.4.8 of IEEE Std 802.1Q."; + } + } + list rap-priority-regeneration-override { + key "received-priority"; + description + "Each table row contains a set of parameters for a received priority + value that is associated with an RA class "; + leaf received-priority { + type dot1qtypes:priority-type; + description + "Received priority value."; + reference + "6.9.4 of IEEE Std 802.1Q"; + } + leaf regenerated-priority { + type dot1qtypes:priority-type; + description + "Priority regeneration value."; + reference + "6.9.4 of IEEE Std 802.1Q"; + } + } + list rap-talker-announce-registration { + key "stream-id"; + config false; + description + "Each table row in the table associated with a Port corresponds + to a registration of the Talker Announce attribute on that Port, + and contains a set of parameters"; + uses rap-talker-announce; + } + list rap-talker-announce-declaration { + key "stream-id"; + config false; + description + "Each table row in the Table associated with a Port corresponds + to a declaration of the Talker Announce attribute on that Port, + and contains the same set of parameters as in the Talker Announce + Registration"; + uses rap-talker-announce; + } + list rap-listener-attach-registration { + key "stream-id"; + config false; + description + "Each table row in the Table associated with a Port corresponds to a + registration of the Listener Attach attribute on that Port and + contains a set of parameters"; + uses rap-listener-attach; + leaf reservation-age { + type uint32; + description + "A 32-bit unsigned integer, indicating the time, in seconds, since + a reservation associated with the Listener Attach registration was + successfully made, and set to zero when the reservation is removed."; + reference + "Item e) in 51.8.4.3 of IEEE Std 802.1Q"; + } + } + list rap-listener-attach-declaration { + key "stream-id"; + config false; + description + "Each table row in the Table associated with a Port corresponds to a + declaration of the Listener Attach attribute on that Port and + contains the same set of parameters except the reservationAge + parameter as in the Listener Attach Registration"; + uses rap-listener-attach; + } + } +} + diff --git a/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa-bridge.yang b/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa-bridge.yang index 645a24dd7..03090f88a 100755 --- a/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa-bridge.yang +++ b/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa-bridge.yang @@ -35,7 +35,7 @@ module ieee802-dot1q-cbsa-bridge { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2024-01-11 { + revision 2024-03-22 { description "Published as part of IEEE Std 802.1Qdx-2024. @@ -59,6 +59,6 @@ module ieee802-dot1q-cbsa-bridge { description "Augment dot1q:bridge-port with credit-based shaper algorithm configuration."; - uses cbsa:cbsa-config; + uses cbsa:cbsa-parameters; } } \ No newline at end of file diff --git a/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa.yang b/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa.yang index a91ac57a0..0d7d8dae1 100755 --- a/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa.yang +++ b/standard/ieee/draft/802.1/Qdx/ieee802-dot1q-cbsa.yang @@ -29,7 +29,7 @@ module ieee802-dot1q-cbsa { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2024-01-11 { + revision 2024-03-22 { description "Published as part of IEEE Std 802.1Qdx-2024. @@ -41,19 +41,20 @@ module ieee802-dot1q-cbsa { IEEE Std 802.1Qcj-2023, IEEE Std 802.1Qdx-2024."; } - grouping cbsa-config { + grouping cbsa-parameters { description - "cbsa-config comprises all the parameters associated + "cbsa-parameters comprises all the parameters associated with the credit-based shaper algorithm."; - container cbsa-parameters { + container cbsa { description "This container comprises all credit-based shaper algorithm related nodes."; list cbsa-parameter-table { key "traffic-class"; + max-elements 8; description "There is one cbsa-parameter-table list per Port. Each list entry - corresponds to the set of parameters (12.20.1)for each traffic class + corresponds to the set of parameters (12.20.1) for each traffic class configured for use with the credit-based shaper algorithm (8.6.8.2). The cbsa-parameter-table list is valid for a Bridge Port only when used in the absence of the stream reservation protocol."; @@ -64,7 +65,7 @@ module ieee802-dot1q-cbsa { description "An 802.1 traffic class value. This is the numerical value associated with a traffic class. Larger values are associated with - higher priority traffic classes."; + higher priority traffic classes."; reference "8.6.8 of IEEE Std 802.1Q."; } diff --git a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang index aa6a2c187..bdd478741 100755 --- a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-mstp.yang @@ -3,15 +3,18 @@ module ieee802-dot1q-mstp { namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-mstp"; prefix mstp; - import ietf-yang-types { - prefix yang; - } import ietf-interfaces { prefix if; } + import ieee802-dot1q-types { + prefix dot1qtypes; + } import ieee802-dot1q-bridge { prefix dot1q; } + import ieee802-dot1q-rstp { + prefix rstp; + } organization "IEEE 802.1 Working Group"; @@ -28,7 +31,7 @@ module ieee802-dot1q-mstp { E-mail: stds-802-1-chairs@ieee.org"; description - "This module provides management of 802.1Q bridge components that + "This module provides management of 802.1Q Bridge components that support the Multiple Spanning Tree Algorithm and Protocol (MSTP). Copyright (C) IEEE (2024). @@ -36,706 +39,296 @@ module ieee802-dot1q-mstp { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2023-11-23 { + revision 2024-03-26 { description - "Published as part of IEEE Std 802.1Qcy-2024. + "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 Stds 802.1Q-2022, 802.1Qcy-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."; } - feature mstp { + augment "/dot1q:bridges/dot1q:bridge/dot1q:component/dot1q:bridge-mst" { + when "../rstp:rstp"; + description - "Multiple Spanning Tree Algorithm and Protocol supported."; + "Augment RSTP-capable Bridge component with MSTP configuration and + management."; reference - "13.5 of IEEE Std 802.1Q"; - } + "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; - augment "/dot1q:bridges/dot1q:bridge/dot1q:component/dot1q:bridge-mst" { - description - "Augment bridge component with MSTP configuration"; - container cist { - leaf bridge-identifier { - type uint64; - config false; + container mst-config-id { + presence "The presence of this container indicates that MSTP is supported"; + description + "Containing the MST Configuration Identifier of a Bridge."; + reference + "Item d) in 13.26."; + leaf format-selector { + type int32 { + range "0"; + } + default "0"; description - "The Bridge Identifier for the CIST."; + "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 - "12.8.1.1 of IEEE Std 802.1Q"; + "Item a) in 13.8 of IEEE Std 802.1Q."; } - leaf topology-change { - type boolean; - config false; + leaf configuration-name { + type string { + length "1..32"; + } description - "In an STP Bridge, the value of the Topology Change parameter, - or in an RSTP or MSTP Bridge, asserted if the tcWhile timer - for any Port for the CIST is non-zero."; + "The Configuration Name in the MST Configuration Identifier."; reference - "13.25.9 of IEEE Std 802.1Q"; + "Item b) in 13.8:2 of IEEE Std 802.1Q."; } - leaf regional-root-identifier { - type uint64; - config false; + leaf revision-level { + type uint32 { + range "0..65535"; + } description - "In an MSTP Bridge, the CIST Regional Root Identifier parameter, - i.e., the Bridge Identifier of the current CIST Regional Root."; + "The Revision Level in the MST Configuration Identifier."; reference - "13.16.4 of IEEE Std 802.1Q, 13.26.3 of IEEE Std 802.1Q"; - } - leaf path-cost { - type uint32 { - range "0..2147483647"; + "Item c) in 13.8 of IEEE Std 802.1Q."; } + leaf configuration-digest { + type binary; config false; description - "In an MSTP Bridge, the CIST Path Cost parameter, i.e., the CIST - path cost from the transmitting Bridge to the CIST Regional Root. - The sum (about 20 possible out of the given range) of multiple - port path costs. Also, if the 'transmitting Bridge' is - the 'CIST Regional Root', then this value could be zero."; + "The Configuration Digest in the MST Configuration Identifier + (16 octets)."; reference - "Item d) in 13.9, 13.10 of IEEE Std 802.1Q"; + "Item d) in 13.8 of IEEE Std 802.1Q."; } + } + + 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."; + reference + "Clause 13, 13.26 of IEEE Std 802.1Q."; leaf max-hops { type int32 { - range "6..40"; + range "6..100"; } - config true; + default "20"; description - "In an MSTP Bridge, the MaxHops parameter. + "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."; + The value of this object MUST be retained across reinitializations + of the management system."; reference - "13.26.4 of IEEE Std 802.1Q"; + "Clause 13, Table 13-5, 13.26.4, item g) in 13.26 of + IEEE Std 802.1Q."; } - container cist-port { + leaf ist-internal-root-path-cost { + type uint32; + config false; description - "A CIST Port."; - leaf port-number { - type if:interface-ref; - description - "Reference to the associated IETF YANG - interface of this cist port."; - reference - "RFC 8343"; - } - leaf uptime { - type yang:timeticks; - units "centi-seconds"; - config false; - description - "The Port's Uptime parameter value for the CIST, i.e., the count - in seconds of the time elapsed since the Port was last reset or - initialized (BEGIN, Annex E)."; - } - leaf admin-path-cost { - type int32 { - range "0..200000000"; + "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."; + } + list mst { + key "mstid"; + description + "Per-Bridge configuration and management parameters for each MST, + with an MSTID in the range allocated for MSTP configuration."; + reference + " "; + leaf mstid { + type uint16 { + range "1..4091"; } - config true; - description - "The administratively assigned value for the contribution - of this port to the path cost of paths toward the spanning - tree root. - - Writing a value of '0' assigns the automatically calculated - default Path Cost value to the port. If the default Path - Cost is being used, this object returns '0' when read. - - This complements the object ieee8021MstpCistPortCistPathCost, - which returns the operational value of the port path cost. - - The value of this object MUST be retained across - reinitializations of the management system."; - reference - "13.27.25 of IEEE Std 802.1Q"; - } - leaf designated-root { - type uint64; - config false; - description - "The CIST Regional Root Identifier component of the Port's port - priority vector, as defined in 13.10, for the CIST."; - reference - "13.27.47 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 topology-change-ack { - type boolean; - config false; + leaf port-id-priority { + type dot1qtypes:priority-type; description - "The Port's Topology Change Acknowledge parameter value. - True(1) if a Configuration Message with a topology change - acknowledge flag set is to be transmitted. "; + "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."; reference - "13.27.72 of IEEE Std 802.1Q"; - } - leaf hello-time { - type int32 { - range "100..1000"; - } - units "centi-seconds"; + "13.26.3, 13.11, 14.4.1, and + item f) in 13.26 of IEEE Std 802.1Q."; //!! + } + leaf internal-root-path-cost { + type uint32; config false; description - "The Port's Hello Time timer parameter value, for the CIST. - In centi-seconds"; - reference - "13.27.48 of IEEE Std 802.1Q"; - } - leaf admin-edge-port { - type boolean; - config true; - description - "In a Bridge that supports the identification of edge ports, the - Port's Admin Edge Port parameter value, for the CIST."; + "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."; reference - "13.27.1 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 oper-edge-port { - type boolean; + leaf root-port-number { + type dot1qtypes:port-number-type; config false; description - "In a Bridge that supports the identification of edge ports, the - Port's operational Edge Port parameter value, for the CIST. - True(1) if it is an operEdge Port."; + "The port number of the Root Port for this MSTI."; reference - "13.27.44 of IEEE Std 802.1Q"; + "13.4, 13.5, 13.26.9, and item h) in 13.26 of IEEE Std 802.1Q.";//!! } - leaf mac.enabled { - type boolean; - config true; - description - "In a Bridge that supports the MAC Enabled parameter, the current - state of the MAC Enabled parameter. - True(1) indicates that administratively the MAC is set as if it - was connected to a point-to-point LAN."; - reference - "Item p) in 12.8.2.1.3 of IEEE Std 802.1Q"; + } + } + } + augment "/if:interfaces/if:interface/dot1q:bridge-port" { + when "rstp:rstp"; + description + "Augment RSTP Bridge Port with MSTP configuration"; + 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"; + description + "Per-Bridge Port configuration and management parameters for the IST + and each MSTI in an MST Region."; + list mst { + key "mstid"; + description + "Per-Bridge Port configuration and management parameters for each MST, + 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 mac-operational { - type boolean; + leaf msti-port-state { + type enumeration { + enum discarding { + value 1; + } + enum learning { + value 2; + } + enum forwarding { + value 3; + } + } config false; description - "In a Bridge that supports the MAC Operational parameter, the - current state of the MAC Operational parameter. - True(1) indicates the MAC is operational."; - reference - "Item q) in 12.8.2.1.3 of IEEE Std 802.1Q"; - } - leaf restricted-role { - type boolean; - config true; - description - "The current state of the restrictedRole parameter for the Port. - True(1) causes the Port not to be selected as Root Port for the - CIST or any MSTI. "; - reference - "13.27.64 of IEEE Std 802.1Q"; - } - leaf restricted-tcn { - type boolean; - config true; - description - "The current state of the restrictedTcn parameter for the Port. - True(1) causes the Port not to propagate topology changes to - other Ports."; + "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."; reference - "13.27.65 of IEEE Std 802.1Q"; + "8.4, 13.4, item aw) and item ba) in 13.27 of IEEE Std 802.1Q."; } - leaf role { + leaf msti-port-role { type enumeration { - enum root { + enum disabled-port { value 1; } - enum alternate { + enum root-port { value 2; } - enum designated { + enum designated-port { value 3; } - enum backup { + enum alternate-port { value 4; } + enum backup-port { + value 5; + } + enum master-port { + value 6; + } } config false; description - "The current Port Role for the Port (i.e., Root, Alternate, - Designated, or Backup), for the CIST."; + "The port's Port Role for the MSTI. Disabled Port, Root Port, + Designated Port, Alternate Port, Backup Port, or Master Port."; reference - "Item v) in 12.8.2.1.3 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 disputed { - type boolean; - config false; + leaf msti-bridge-id-priority { + type dot1qtypes:priority-type; description - "The current value of the disputed variable for the CIST for - the Port. A value of true(1) indicates that the disputed - variable is set. A value of false(2) indicates that the - agreed variable is cleared."; + "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."; reference - "13.27.22 of IEEE Std 802.1Q"; - } - leaf cist-regional-root-id { + "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; - config false; description - "In an MSTP Bridge, the CIST Regional Root Identifier, i.e., the - Bridge Identifier of the current CIST Regional Root, for the CIST."; + "The Internal Port Path Cost for this Bridge Port and MSTI."; reference - "Item c) in 13.9, 13.10, 13.27.47 of IEEE Std 802.1Q"; + "Item b) of 13.2.1, and item ay) in 13.27 of IEEE Std 802.1Q."; } - leaf cist-path-cost { - type uint32 { - range "0..2147483647"; - } - config false; - description - "In an MSTP Bridge, the Port's Port Path Cost - parameter value for the CIST."; - reference - "13.27.25 of IEEE Std 802.1Q"; - } - leaf protocol-migration { - type boolean; - config true; - description - "In an MSTP Bridge, the current value of the mcheck variable for - the Port. A value of true(1) forces the state machine to - perform functions as per 13.27.38."; - reference - "13.27.38 of IEEE Std 802.1Q"; - } - leaf enable-bpdu-rx { - type boolean; - config true; - description - "In an MSTP Bridge, the enableBPDUrx parameter value. A value - of false(2) indicates that BPDUs are ignored."; - reference - "13.27.38 of IEEE Std 802.1Q"; - } - leaf enable-bpdu-tx { - type boolean; - config true; - description - "In an MSTP Bridge, the enableBPDUtx parameter value. A value - of false(2) indicates that BPDUs are not transmitted."; - reference - "13.27.24 of IEEE Std 802.1Q"; - } - leaf pseudo-root-id { - type uint64; - config true; - description - "In an MSTP Bridge, the pseudoRootId parameter value."; - reference - "13.27.51 of IEEE Std 802.1Q"; - } - leaf is-l2gp { - type boolean; - config true; - description - "In an MSTP Bridge, the isL2gp parameter value. A value of - true(1) indicates this is an L2GP port."; - reference - "13.27.26 of IEEE Std 802.1Q"; - } - leaf auto-edge-port { - type boolean; - config true; - description - "The administrative value of the Auto Edge Port parameter. - A value of true(1) indicates if the Bridge detection state - machine (BDM, 13.33) is to detect other Bridges - attached to the LAN, and set - ieee8021SpanningTreeRstpPortOperEdgePort automatically. - The default value is true(1) - - This is optional and provided only by implementations - that support the automatic identification of edge ports. - - The value of this object MUST be retained across - reinitializations of the management system."; - reference - "12.8.2.1.3 of IEEE Std 802.1Q"; - } - leaf auto-isolate-port { - type boolean; - config false; - description - "The operational value of the Isolate Port parameter. - - A value of true(1) indicates a Designated Port will - transition to discarding if both - ieee8021SpanningTreeRstpPortAdminEdgePort and - ieee8021SpanningTreeRstpPortAutoEdgePort are FALSE and - the other Bridge presumed to be attached to the same - point-to-point LAN does not transmit periodic BPDUs. - - This is optional and provided only by implementations - that support the automatic identification of fragile - Bridges."; - reference - "12.8.2.1.3 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."; } } - list mstp { - key "mstp-id"; + leaf msti-internal-root-path-cost { + type uint32; + config false; description - "A MSTP Table entry."; - leaf mstp-id { - type uint32; - description - "In an MSTP Bridge, this parameter is the MSTID, i.e., the - identifier of a Spanning Tree (or MST) Instance."; - } - leaf bridge-id { - type uint64; - config false; - description - "In an MSTP Bridge, the Bridge Identifier for the MSTI."; - reference - "13.26.2 of IEEE Std 802.1Q"; - } - leaf time-since-topology-change { - type uint32; - units "centi-seconds"; - config false; - description - "In an MSTP Bridge, count in seconds of the time elapsed since - tcWhile was last non-zero for any Port for the MSTI."; - reference - "13.25.9 of IEEE Std 802.1Q"; - } - leaf topology-changes { - type yang:counter64; - units "topology changes"; - config false; - description - "In an MSTP Bridge, count of the times tcWhile has been - non-zero for any Port for the MSTI since the Bridge was powered - on or initialized."; - reference - "13.25.9 of IEEE Std 802.1Q"; - } - leaf topology-change { - type boolean; - config false; - description - "In an MSTP Bridge, the Topology Change parameter value: true(1) - if tcWhile is non-zero for any Port for the MSTI."; - reference - "13.25.9 of IEEE Std 802.1Q"; - } - leaf designated-root { - type uint64; - config false; - description - "In an MSTP Bridge, the Designated Root parameter value, i.e., the - Bridge Identifier of the Root Bridge for the MSTI."; - reference - "13.27.20 of IEEE Std 802.1Q"; - } - leaf root-path-cost { - type int32; - config false; - description - "In an MSTP Bridge, the Root Path Cost parameter value, i.e., the - path cost from the transmitting Bridge to the Root Bridge for - the MSTI."; - reference - "13.27.20 of IEEE Std 802.1Q"; - } - leaf root-port { - type uint16; - config false; - description - "In an MSTP Bridge, the Root Port parameter value, i.e., the Root - Port for the MSTI."; - reference - "13.26.9 of IEEE Std 802.1Q"; - } - leaf bridge-priority { - type int32 { - range "0..61440"; - } - config true; - description - "In an MSTP Bridge, the Bridge Priority parameter value for the - MSTI, i.e., the most significant 4 bits of the Bridge Identifier - for the MSTI."; - reference - "13.26.3 of IEEE Std 802.1Q"; - } - leaf vids0 { - type binary { - length "128"; - } - config false; - description - "This object contains the first 1024 bits of the 4096 bit vector - indicating which VIDs are assigned to this MSTID. The high order - bit of the first octet corresponds to the first bit of the vector, - while the low order bit of the last octet corresponds to the last - bit of this portion of the vector. A bit that is on (equal to 1) - indicates that the corresponding VID is assigned to this MSTID."; - } - leaf vids1 { - type binary { - length "128"; - } - config false; - description - "This object contains the second 1024 bits of the 4096 bit vector - indicating which VIDs are assigned to this MSTID. The high order - bit of the first octet corresponds to the first bit of this - portion of the vector, while the low order bit of the last octet - corresponds to the last bit of this portion of the vector. A bit - that is on (equal to 1) indicates that the corresponding VID is - assigned to this MSTID."; - } - leaf vids2 { - type binary { - length "128"; - } - config false; - description - "This object contains the third 1024 bits of the 4096 bit vector - indicating which VIDs are assigned to this MSTID. The high order - bit of the first octet corresponds to the first bit of this - portion of the vector, while the low order bit of the last octet - corresponds to the last bit of this portion of the vector. A bit - that is on (equal to 1) indicates that the corresponding VID is - assigned to this MSTID."; - } - leaf vids3 { - type binary { - length "128"; - } - config false; - description - "This object contains the fourth 1024 bits of the 4096 bit vector - indicating which VIDs are assigned to this MSTID. The high order - bit of the first octet corresponds to the first bit of this - portion of the vector, while the low order bit of the last octet - corresponds to the last bit of this portion of the vector. A bit - that is on (equal to 1) indicates that the corresponding VID is - assigned to this MSTID."; - } - container mstp-port { - description - "A MSTP Port Table entry."; - leaf port-number { - type if:interface-ref; - description - "Reference to the associated IETF YANG - interface of this mstp port."; - reference - "RFC 8343"; - } - leaf mst-id { - type uint32; - description - "In an MSTP Bridge, this parameter is the MSTID, i.e., the - identifier of a Spanning Tree (or MST) Instance."; - } - leaf uptime { - type yang:timeticks; - units "centi-seconds"; - config false; - description - "In an MSTP Bridge, the Port's Uptime parameter value for the - MSTI, i.e., the count in seconds of the time elapsed since the - Port was last reset or initialized (BEGIN, Annex E)."; - } - leaf state { - type enumeration { - enum disabled { - value 1; - } - enum listening { - value 2; - } - enum learning { - value 3; - } - enum forwarding { - value 4; - } - enum blocking { - value 5; - } - } - config false; - description - "In an MSTP Bridge, the current state of the Port (i.e., Disabled, - Listening, Learning, Forwarding, or Blocking), for the MSTI."; - reference - "13.38 of IEEE Std 802.1Q"; - } - leaf priority { - type int32 { - range "0..240"; - } - config true; - description - "In an MSTP Bridge, the Port's Port Priority parameter value for - the MSTI, i.e., the priority field for the Port Identifier for the - Port for the MSTI."; - reference - "13.27.47 of IEEE Std 802.1Q"; - } - leaf path-cost { - type int32 { - range "1..200000000"; - } - config true; - description - "In an MSTP Bridge, the Port's Port Path Cost parameter value for - the MSTI."; - reference - "13.27.33 of IEEE Std 802.1Q"; - } - leaf designated-root { - type uint64; - config false; - description - "In an MSTP Bridge, the Regional Root Identifier component of the - Port's MSTI port priority vector, as defined in 13.11, for the MSTI."; - reference - "13.27.47 of IEEE Std 802.1Q"; - } - leaf designated-cost { - type int32; - config false; - description - "In an MSTP Bridge, the Internal Root Path Cost component of the - Port's MSTI port priority vector, as defined in 13.11, for the MSTI."; - reference - "13.27.47 of IEEE Std 802.1Q"; - } - leaf designated-bridge { - type uint64; - config false; - description - "In an MSTP Bridge, the Designated Bridge Identifier component of - the Port's MSTI port priority vector, as defined in 13.11, for - the MSTI."; - reference - "13.27.47 of IEEE Std 802.1Q"; - } - leaf designated-port { - type uint16; - config false; - description - "In an MSTP Bridge, the Designated Port Identifier component of the - Port's MSTI port priority vector, as defined in 13.11, for the MSTI."; - reference - "13.27.47 of IEEE Std 802.1Q"; - } - leaf role { - type enumeration { - enum root { - value 1; - } - enum alternate { - value 2; - } - enum designated { - value 3; - } - enum backup { - value 4; - } - } - config false; - description - "In an MSTP Bridge, the current Port Role for the Port (i.e., Root, - Alternate, Designated, or Backup), for the MSTI."; - } - leaf disputed { - type boolean; - config false; - description - "In an MSTP Bridge, the current value of the disputed variable for - the MSTI for the Port."; - reference - "13.27.22 of IEEE Std 802.1Q"; - } - leaf admin-path-cost { - type int32 { - range "1..200000000"; - } - config true; - description - "In an MSTP Bridge, the administrative value of the Port's - Port Path Cost parameter value for the MSTI. - - Writing a value of '0' assigns the automatically calculated - default Path Cost value to the Port. If the default Path - Cost is being used, this object returns '0' when read. - - This complements the object ieee8021MstpPortPathCost, - which returns the operational value of the path cost. - - The value of this object MUST be retained across - reinitializations of the management system."; - reference - "13.27.33 of IEEE Std 802.1Q"; - } - } + "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."; //!! } - container config-id { + leaf msti-designated-bridge-id { + type uint32; + config false; description - "Containing the MST Configuration Identifier of a Bridge."; - leaf format-selector { - type int32 { - range "0"; - } - config true; - description - "In an MSTP Bridge, the Configuration Identifier Format Selector - in use by the Bridge, in the MST Configuration Identifier. This - has a value of 0 to indicate the format specified in IEEE Std 802.1Q."; - reference - "Item a) in 13.8 of IEEE Std 802.1Q"; - } - leaf configuration-name { - type string { - length "32"; - } - config true; - description - "In an MSTP Bridge, the Configuration Name in the MST - Configuration Identifier."; - reference - "Item b) in 13.8:2 of IEEE Std 802.1Q"; - } - leaf revision-level { - type uint32 { - range "0..65535"; - } - config true; - description - "In an MSTP Bridge, the Revision Level in the MST - Configuration Identifier."; - reference - "Item c) in 13.8 of IEEE Std 802.1Q"; - } - leaf configuration-digest { - type binary { - length "16"; - } - config false; - description - "In an MSTP Bridge, the Configuration Digest in the MST - Configuration Identifier."; - reference - "Item d) in 13.8 of IEEE Std 802.1Q"; - } + "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.yang b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang index e0d51d9f9..1c689343f 100755 --- a/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang +++ b/standard/ieee/draft/802.1/Qdy/ieee802-dot1q-rstp.yang @@ -9,6 +9,12 @@ 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; } @@ -28,7 +34,7 @@ module ieee802-dot1q-rstp { E-mail: stds-802-1-chairs@ieee.org"; description - "This module provides management of 802.1Q bridge components that + "This module provides management of 802.1Q Bridge components that support the Rapid Spanning Tree Algorithm and Protocol (RSTP). Copyright (C) IEEE (2024). @@ -36,591 +42,481 @@ module ieee802-dot1q-rstp { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2023-11-23 { + revision 2024-03-26 { description - "Published as part of IEEE Std 802.1Qcy-2024. + "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 Stds 802.1Q-2022, 802.1Qcy-2024."; - } - - feature rstp { - description - "Rapid Spanning Tree Algorithm and Protocol supported."; - reference - "13.4 of IEEE Std 802.1Q"; + 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 with RSTP configuration"; + "Augment Bridge with RSTP configuration."; + reference + "13.24, 13.25, and 13.26 of IEEE Std 802.1Q."; container rstp { - if-feature "rstp"; - leaf protocol-specification { + presence "The presence of this container indicates that RSTP is supported"; + leaf force-protocol-version { type enumeration { - enum unknown { - value 1; + enum emulate-stp { + value 0; + } + enum withdrawn { + value 1; // previously assigned to IEEE Std 802.1G-1996 (withdrawn) } - enum decLb100 { + enum rstp-rapid-spanning-tree-protocol { value 2; } - enum ieee8021d { + enum rstp-mstp { value 3; } - enum ieee8021q { + enum rstp-spb { value 4; } } - config false; - description - "An indication of what version of the Spanning Tree Protocol is - being run. The value 'decLb100(2)' indicates the DEC LANbridge - 100 Spanning Tree protocol. IEEE 802.1D implementations will - return 'ieee8021d(3)'. New enumerated values may be added in - the future to the definition of this object to reflect future - versions of the IEEE Spanning Tree protocol."; - } - leaf priority { - type int32 { - range "0..65535"; - } - config true; - description - "The value of the write-able portion of the Bridge ID - (i.e., the first two octets of the (8 octet long) Bridge - ID). The other (last) 6 octets of the Bridge ID are - given by the value of ieee8021BridgeBaseBridgeAddress. - On Bridges supporting IEEE 802.1t or IEEE 802.1w, - permissible values are 0-61440, in steps of 4096. - - The value of this object MUST be retained across - reinitializations of the management system."; + 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 - "Item a) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.7.2 and item a) of 13.26 of IEEE Std 802.1Q."; } - leaf time-since-topology-change { - type yang:timeticks; - units "centi-seconds"; + leaf cist-bridge-id { + type uint64; config false; description - "The time (in hundredths of a second) since the - last time a topology change was detected by the - Bridge entity. - For RSTP, this reports the time since the tcWhile - timer for any port on this Bridge was nonzero."; + "The Bridge Identifier used by this Bridge for the CIST. Eight + octets with the four most significant bits of the first encoding the + manageable cist-bridge-id-priority, the next twelve bits being zero, + and last six ocets encoding the Bridge Address."; reference - "Item b) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.26.2, 14.1.2, and item e) in 13.26 of IEEE Std 802.1Q."; } - leaf topology-changes { - type yang:counter64; - units "topology changes"; - config false; + leaf cist-bridge-id-priority { + type dot1qtypes:priority-type; description - "The total number of topology changes detected by - this Bridge since the management entity was last - reset or initialized. + "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. - Discontinuities in the value of the counter can occur - at re-initialization of the management system."; + The value of this object MUST be retained across reinitializations + of the management system."; reference - "Item c) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.26.2, 14.2.5, and item e) in 13.26 of IEEE Std 802.1Q."; } - leaf designated-root { + leaf cist-root-id { type uint64; config false; description - "The Bridge identifier of the root of the spanning - tree, as determined by the Spanning Tree Protocol, - as executed by this node. This value is used as - the Root Identifier parameter in all Configuration - Bridge PDUs originated by this node."; + "The CIST Root Identifier, i.e. the Bridge Identifier of the + Common and Internal Spanning Tree calculated by RSTP and of the + logical continuation of that connectivity calculate by MSTP, as + determined by this node."; reference - "Item e) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.9, 14.1.2, and item f) in 13.26 of IEEE Std 802.1Q."; } - leaf root-cost { - type int32; + leaf external-root-path-cost { + type uint32; config false; description - "The cost of the path to the root as seen from - this Bridge."; + "The External Root Path Cost (MSTP) or Root Path Cost (RSTP) + calculated by this Bridge after the addition of the receiving + Port Path Cost."; reference - "Item f) of 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.9, 13.10, 13.5.3, and item i) in 13.26 of IEEE Std 802.1Q."; } - leaf root-port { - type uint16; + leaf cist-root-port-number { + type dot1qtypes:port-number-type; config false; description - "The port number of the port that offers the lowest - cost path from this Bridge to the root Bridge."; + "The port number of the Root Port for the RSTP and for the CIST + Root Port (MSTP), i.e. the Port Identifier for the port that offers + the lowest cost path from this Bridge to the (CIST) Root."; reference - "Item g) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "13.4, 13.5, 13.26.9, and item h) in 13.26 of IEEE Std 802.1Q."; } leaf max-age { - type uint32; - units "centi-seconds"; + type uint8; + units "seconds"; config false; description - "The maximum age of Spanning Tree Protocol information - learned from the network on any port before it is - discarded, in units of hundredths of a second. This is - the actual value that this Bridge is currently using."; + "For the CIST, the whole seconds (most-significant octet) part of + the maximum age of the spanning tree information (Max Age) currently + used by this Bridge. Set to the bridge-max-age if the Bridge is the + CIST Root, and to the whole seconds part of the value received on + the CIST Root Port otherwise."; reference - "Item h) in 12.8.1.1.3 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 uint32; - units "centi-seconds"; + type rt-types:timer-value-seconds16; + units "seconds"; config false; description - "The amount of time between the transmission of - Configuration Bridge PDUs by this node on any port when - it is the root of the spanning tree, or trying to become - so, in units of hundredths of a second. This is the - actual value that this Bridge is currently using."; + "The interval (Hello Time) between the periodic transmission of + Configuration Bridge PDUs on Designated Ports. Set to + bridge-hello-time if the Bridge is currently acting as the CIST Root, + and to the value received on the CIST Root Port otherwise."; reference - "Item k) in 12.8.1.1.3 of IEEE Std 802.1Q"; - } - leaf hold-time { - type int32; - units "centi-seconds"; - config false; - description - "This time value determines the interval length - during which no more than two Configuration Bridge - PDUs shall be transmitted by this node, in units - of hundredths of a second."; - reference - "Item m) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "Table 13-5, 13.25.3, and 13.28.11 of IEEE Std 802.1Q."; } leaf forward-delay { - type uint32; - units "centi-seconds"; + type uint8; + units "seconds"; config false; description - "This time value, measured in units of hundredths of a - second, controls how fast a port changes its spanning - state when moving towards the Forwarding state. The - value determines how long the port stays in each of the - Listening and Learning states, which precede the - Forwarding state. This value is also used when a - topology change has been detected and is underway, to - age all dynamic entries in the Filtering Database. - [Note that this value is the one that this Bridge is - currently using, in contrast to - ieee8021SpanningTreeBridgeForwardDelay, which is the - value that this Bridge and all others would start using - if/when this Bridge were to become the root.]"; - reference - "Item i) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "If a Port is using STP rather than RSTP, either as a result of + setting force-protocol-version to be less than 2 or because STP BPDUs + have been received, this Forward Delay parameter determines the time + spent in the Listening and Learning Port States when transitioning + from Discarding to Forwarding, and also controls rapid ageing of FDB + entries after a topology change. Set to bridge-forward-delay if the + Bridge is currently acting as the CIST Root, and to the whole seconds + part of the value received on the CIST Root Port otherwise. If RSTP, + MSTP, or SPB is used, Port State transitions and FDB flushing are + rapid and not controlled by this parameter."; + reference + "Table 13-5, 13.25.2, 13.28.10, and item g) in 13.26.4 of + IEEE Std 802.1Q."; } leaf bridge-max-age { - type uint32 { - range "600..4000"; + type uint8 { + range "6..40"; } - units "centi-seconds"; - config true; + default "20"; + units "seconds"; description - "The value that all Bridges use for MaxAge when this - Bridge is acting as the root. Note that IEEE Std 802.1D-1998 - specifies that the range for this parameter is related - to the value of ieee8021SpanningTreeBridgeHelloTime. The - granularity of this timer is specified by IEEE Std 802.1D-1998 - to be 1 second. An agent may return an SNMP badValue error - (or its equivalent if another protocol is used) if a set - is attempted to a value that is not a whole number of - seconds. + "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 this object MUST be retained across reinitializations + of the management system."; reference - "Item j) in 12.8.1.1.3"; + "Table 13-5, 13.26.4, and item g) in 13.26 of IEEE Std 802.1Q."; } leaf bridge-hello-time { - type uint32 { - range "100..1000"; - } - units "centi-seconds"; - config true; + type uint8; + default "2"; + units "seconds"; + config false; description - "The value that all Bridges use for HelloTime when this - Bridge is acting as the root. The granularity of this - timer is specified by IEEE Std 802.1D-1998 to be 1 second. - An agent may return an SNMP badValue error (or its equivalent - if another protocol is used) if a set is attempted to a - value that is not a whole number of seconds. - - The value of this object MUST be retained across - reinitializations of the management system."; + "The value that this Bridge uses for HelloTime when acting as the + CIST Root."; reference - "Item k) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "Table 13-5, 13.25.3, and 13.28.11 of IEEE Std 802.1Q."; } leaf bridge-forward-delay { - type uint32 { - range "400..3000"; + type uint8 { + range "4..30"; } - units "centi-seconds"; - config true; + default "15"; + units "seconds"; description - "The value that all Bridges use for ForwardDelay when - this Bridge is acting as the root. Note that IEEE Std - 802.1D-1998 specifies that the range for this parameter - is related to the value of ieee8021SpanningTreeBridgeMaxAge. - The granularity of this timer is specified by IEEE Std 802.1D-1998 - to be 1 second. An agent may return an SNMP badValue error - (or its equivalent if another protocol is used) if a set is - attempted to a value that is not a whole number of seconds. + "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 this object MUST be retained across reinitializations + of the management system."; reference - "Item l) in 12.8.1.1.3 of IEEE Std 802.1Q"; - } - leaf version { - type enumeration { - enum stp { - value 0; - } - enum rstp { - value 2; - } - enum mstp { - value 3; - } + "Table 13-5, 13.26.4, and item g) in 13.26 of IEEE Std 802.1Q."; + } + leaf tx-hold-count { + type int32 { + range "1..10"; } - config true; + default "6"; description - "The version of Spanning Tree Protocol the Bridge is - currently running. The values are directly from - the IEEE standard. New values may be defined as future - versions of the protocol become available. - - The value 'stp(0)' indicates the Bridge is running the - Spanning Tree Protocol specified in IEEE Std 802.1D-1998. - - The value 'rstp(2)' indicates the Bridge is running RSTP - specified in IEEE 802.1Q. - - The value 'mstp(3)' indicates the Bridge is running - MSTP specified in Clause 13 of IEEE Std 802.1Q. + "Limits the rate of BPDU transmission. If the variable txCount + (which is incremented on each transmission and decremented once a + second) reaches TxHoldCount, transmission is delayed. The value of this object MUST be retained across reinitializations of the management system."; reference - "Item n) in 12.8.1.1.3 of IEEE Std 802.1Q"; + "Table 13-5, 13.27.75, 13.26.12, and item b) in 13.26 of + IEEE Std 802.1Q."; } - leaf rstp-tx-hold-count { - type int32 { - range "1..10"; - } - config true; + leaf migrate-time { + type int32; + default "3"; + units "seconds"; + config false; description - "The value used by the Port Transmit state machine to limit - the maximum transmission rate. This is used by Bridges - that are running RSTP. + "Management can force the transmission of RST (or MST or SPT) BPDUs + for MigrateTime to check that all STP Bridges have been removed + from a specified port's attached LAN, so RST/MST/SPT BPDU + transmission can persist. Fixed value of 3 seconds."; + reference + "Table 13-5, 13.27.38, and item c) in 13.26 of IEEE Std 802.1Q."; + } + leaf time-since-topology-change { + type uint32; + units "seconds"; + config false; + description + "The time (in seconds) since the Topology Change timer, tcWhile, for + any port on this Bridge was last running - i.e. since + Topology Change Notification (TCN) Messages were last transmitted."; + reference + "13.25.9 of IEEE Std 802.1Q."; + } + leaf topology-change-count { + type yang:counter64; + units "topology change count"; + config false; + description + "The number of times (since the management entity was last + reset or initialized) that at least one port's Topology Change timer + (tcWhile) has been non-zero. - The value of this object MUST be retained across - reinitializations of the management system."; + Discontinuities in the value of the counter can occur at + re-initialization of the management system, and at other times as + indicated by the value of 'discontinuity-time'."; reference - "Item m) in 12.8.1.1.3, 13.26.12 of IEEE Std 802.1Q"; + "13.25.9 of IEEE Std 802.1Q."; } } } augment "/if:interfaces/if:interface/dot1q:bridge-port" { description - "Augment bridge port with RSTP configuration"; + "Augment Bridge Port with RSTP configuration"; + reference + "13.24, 13.25, and 13.27 of IEEE Std 802.1Q."; container rstp { - if-feature "rstp"; - leaf priority { - type int32 { - range "0..255"; + 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; + } } - config true; + config false; description - "The value of the priority field that is contained in - the first (in network byte order) octet of the (2 octet - long) Port ID. The other octet of the Port ID is given - by the value of ieee8021SpanningTreePort. - On Bridges supporting IEEE 802.1t or IEEE 802.1w, - permissible values are 0-240, in steps of 16. - - The value of this object MUST be retained across - reinitializations of the management system."; + "The port's Port State, summarizing the application of learning to + received frames, and the forwarding of relayed frames, for all frames + (for RSTP) or for frames assigned to the CIST (for MSTP). The + Port State is Discarding if both learning and forwarding are both + false, Learning if only learning, and Forwarding if both learning and + forwarding are true. The Discarding state encompasses all reasons for + not forwarding, including MAC_Operational false (if:oper-status not + up) and MAC_Enabled false (if:admin-status not up)."; reference - "Item c) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "8.4, 13.4, item aw) and item ba) in 13.27 of IEEE Std 802.1Q."; } - leaf state { + leaf cist-port-role { type enumeration { - enum disabled { + enum disabled-port { value 1; } - enum blocking { + enum root-port { value 2; } - enum listening { + enum designated-port { value 3; } - enum learning { + enum alternate-port { value 4; } - enum forwarding { + enum backup-port { value 5; } - enum broken { - value 6; - } } config false; description - "The port's current state, as defined by application of - the Spanning Tree Protocol. This state controls what - action a port takes on reception of a frame. If the - Bridge has detected a port that is malfunctioning, it - will place that port into the broken(6) state. For - ports that are disabled (see - ieee8021SpanningTreePortEnabled), this object will have a - value of disabled(1). The values disabled, blocking, - listening, and broken correspond to the Clause 12 port - state of 'Discarding'. The value learning corresponds to - the Clause 12 port state of 'Learning'. The value forwarding - corresponds to the Clause 12 port state of 'Forwarding'."; - reference - "Item b) in 12.8.2.1.3 of IEEE Std 802.1Q"; - } - leaf enabled { + "The port's Port Role for the CIST. Disabled Port, Root Port, + Designated Port, Alternate Port, or Backup Port."; + reference + "13.4, 13.5, 13.12, 13.24, 13.27.66, and item bn) in 13.27 of + IEEE Std 802.1Q."; + } + leaf restricted-role { + type boolean; + default "false"; + config false; + reference + "13.20, 13.27.65, 13.29.34, 16.2, 16.3, 26.5, 27.6, 27.20, + item t) in 13.27 of IEEE Std 802.1Q."; + } + leaf restricted-tcn { type boolean; - config true; + default "false"; + config false; + reference + "13.20, 13.27.64, 13.29.25, 16.2, 16.3, item s) in 13.27 of + IEEE Std 802.1Q."; + } + leaf cist-port-id { + type uint16; + config false; description - "The enabled/disabled status of the port. A value of true(1) - means the spanning-tree protocol is enabled for this port. + "The Port Identifier used by this Bridge Port for the CIST. Two + octets with the four most-significant bits of the first encoding the + manageable cist-port-id-priority, and the next twelve bits encoding + the port's port-number."; + reference + "13.27.46, 14.1.2, item bd) in 13.27 of IEEE Std 802.1Q."; + } + leaf cist-port-priority { + type dot1qtypes:priority-type; + 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."; + The value of this object MUST be retained across reinitializations + of the management system."; reference - "Item m) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.27.47, 14.2.7, and item be) in 13.27 of IEEE Std 802.1Q."; } - leaf path-cost { - type int32 { - range "1..200000000"; + leaf external-port-path-cost { + type uint32 { + range "0..200000000"; } - config true; description - "The contribution of this port to the path cost of - paths towards the spanning tree root that include - this port. Table 13-4 recommends defaults and ranges - for Port Path Cost values, in inverse proportion - to the speed of the attached LAN. If this object is used - to set the Path Cost it is possible to restore the - default setting using the - ieee8021SpanningTreeRstpPortAdminPathCost object. - - Table 13-4 recommends defaults and ranges for Port - Path Cost values, in inverse proportion to the speed of the - attached LAN. If this object is used to set the Path - Cost it is possible to restore the default - setting using the ieee8021MstpPortAdminPathCost object. + "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 value of this object MUST be retained across reinitializations + of the management system."; reference - "Item d) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.27.25, Table 13-4, and item g) of 13.27 of IEEE Std 802.1Q."; } - leaf designated-root { + leaf cist-root-id { type uint32; config false; description - "The unique Bridge Identifier of the Bridge - recorded as the Root in the Configuration BPDUs - transmitted by the Designated Bridge for the - segment to which the port is attached."; + "The CIST Root Identifier in Configuration BPDUs transmitted by the + Designated Bridge for the attached LAN."; reference - "Item e) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } - leaf designated-cost { - type int32; + leaf cist-external-path-cost { + type uint32; config false; description - "The path cost of the Designated Port of the segment - connected to this port. This value is compared to the - Root Path Cost field in received Bridge PDUs."; + "The External Path Cost advertised in BPDUS by the Designated Bridge + for the attached LAN."; reference - "Item f) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "27.6, 14.1.2, 13.27.20, and item ar) in 13.27 of IEEE Std 802.1Q."; } - leaf designated-bridge { + leaf designated-bridge-id { type uint32; config false; description - "The Bridge Identifier of the Bridge that this - port considers to be the Designated Bridge for - this port's segment."; + "The Bridge Identifier of the Bridge that this port considers to be + the Designated Bridge for the attached LAN."; reference - "Item g) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } - leaf designated-port { + leaf designated-port-id { type binary { length "2"; } config false; description - "The Port Identifier of the port on the Designated - Bridge for this port's segment."; + "The Port Identifier of the Bridge Port that this port considers to + be the Designated Port for the attached LAN."; reference - "Item h) in 12.8.2.1.3 of IEEE Std 802.1Q"; - } - leaf forward-transitions { - type yang:counter64; - units "forwarding transitions"; - config false; - description - "The number of times this port has transitioned - from the Learning state to the Forwarding state. - - 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 - ifCounterDiscontinuityTime object of the associated - interface (if any)."; + "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } - leaf protocol-migration { + leaf port-protocol-migration-check { type boolean; - config true; description - "When operating in RSTP (version 2) mode, writing true(1) - to this object forces this port to transmit RSTP BPDUs. - Any other operation on this object has no effect and - it always returns false(2) when read."; + "Writing true(1) to port-protocol-migration-check (mcheck) + forces transmission of RST (or MST or SPT) BPDUs for migrate-time to + check that all STP Bridges have been removed from the port's attached + LAN, so RST/MST/SPT BPDU transmission can persist. Has no effect if + force-protocol-version is emulate-stp(0) or withdrawn(1). Always + returns false(2) when read."; reference - "12.8.2.5 of IEEE Std 802.1Q"; + "13.27.38, 13.32, and item j) in 13.27 of IEEE Std 802.1Q."; } leaf admin-edge-port { type boolean; - config true; + default "false"; description - "The administrative value of the Edge Port parameter. - A value of true(1) indicates that this port should be - assumed as an edge-port, and a value of false(2) indicates - that this port should be assumed as a non-edge-port. - - Setting this object will also cause the corresponding - instance of ieee8021SpanningTreeRstpPortOperEdgePort to - change to the same value. Note that even when this - object's value is true(1), the value of the corresponding - instance of ieee8021SpanningTreeRstpPortOperEdgePort can - be false(2) if a BPDU has been received. + "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."; + The value of this object MUST be retained across reinitializations + of the management system."; reference - "Item k) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.33, and item a) in 13.27 of IEEE Std 802.1Q."; } leaf oper-edge-port { type boolean; config false; description - "The operational value of the Edge Port parameter. The - object is initialized to the value of the corresponding - instance of ieee8021SpanningTreeRstpPortAdminEdgePort. - When the corresponding instance of - ieee8021SpanningTreeRstpPortAdminEdgePort is set, this - object will be changed as well. This object will also be - changed to false(2) on reception of a BPDU."; + "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 - "Item l) in 12.8.2.1.3 of IEEE Std 802.1Q"; - } - leaf admin-path-cost { - type int32 { - range "0..200000000"; - } - config true; - description - "The administratively assigned value for the contribution - of this port to the path cost of paths toward the spanning - tree root. - - Writing a value of '0' assigns the automatically calculated - default Path Cost value to the port. If the default Path - Cost is being used, this object returns '0' when read. - - This complements the object ieee8021SpanningTreePortPathCost, - which returns the operational value of the path cost. - - The value of this object MUST be retained across - reinitializations of the management system."; - reference - "Item d) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.33, and item l) in 13.27 of IEEE Std 802.1Q."; } leaf auto-edge-port { type boolean; - config true; + default "true"; description - "The administrative value of the Auto Edge Port parameter. - A value of true(1) indicates if the Bridge detection state - machine (BDM, 13.33) is to detect other Bridges - attached to the LAN, and set - ieee8021SpanningTreeRstpPortOperEdgePort automatically. - The default value is true(1) - - This is optional and provided only by implementations - that support the automatic identification of edge ports. + "Administratively set true(1) to allow the value of oper-edge-port + is to be maintained automatically, with continuous monitoring of + the presence or absence of other Bridges attached to the LAN. - The value of this object MUST be retained across - reinitializations of the management system."; + The value of this object MUST be retained across reinitializations + of the management system."; reference - "Item m) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.33, 13.27.18, and item c) in 13.27 of IEEE Std 802.1Q."; } leaf auto-isolate-port { type boolean; - config false; - description - "The operational value of the Isolate Port parameter. - - A value of true(1) indicates a Designated Port will - transition to discarding if both - ieee8021SpanningTreeRstpPortAdminEdgePort and - ieee8021SpanningTreeRstpPortAutoEdgePort are FALSE and - the other Bridge presumed to be attached to the same - point-to-point LAN does not transmit periodic BPDUs. - - This is optional and provided only by implementations - that support the automatic identification of edge ports."; + default "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."; reference - "Item n) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.23, 13.27.19, 13.33, and item d) in 13.27 of IEEE Std 802.1Q."; } leaf isolate-port { type boolean; config false; description - "The operational value of the Isolate Port parameter. - - A value of true(1), Set by the Bridge detection state - machine (BDM, 13.33), indicates when the Spanning Tree - Protocol Entity of a neighboring Bridge has apparently - failed ."; + "Set by the Bridge Detection state machine when the Spanning Tree + Protocol Entity of a neighboring Bridge has apparently failed."; reference - "Item o) in 12.8.2.1.3 of IEEE Std 802.1Q"; + "13.23, 13.27.27, 13.33, and item i) in 13.27 of IEEE Std 802.1Q."; } } } - - notification new-root { - description - "The new-root notification indicates that - the sending agent has become the new root of the Spanning Tree; - the notification is sent by a Bridge soon after its election - as the new root, e.g., upon expiration of the Topology Change - Timer, immediately subsequent to its election."; - } - - notification topology-change { - description - "A topology-change notification is sent - by a Bridge when any of its configured ports transitions from - the Learning state to the Forwarding state, or from the - Forwarding state to the Blocking state. The notification - is not sent if a ieee8021SpanningTreeNewRoot notification - is sent for the same transition."; - } } diff --git a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa-bridge.yang b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa-bridge.yang index 0f16beb91..03090f88a 100644 --- a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa-bridge.yang +++ b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa-bridge.yang @@ -30,12 +30,12 @@ module ieee802-dot1q-cbsa-bridge { "This module provides for management of IEEE Std 802.1Q Bridges that support the credit-based shaper algorithm. - Copyright (C) IEEE (2023). + 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 2023-12-26 { + revision 2024-03-22 { description "Published as part of IEEE Std 802.1Qdx-2024. @@ -51,7 +51,7 @@ module ieee802-dot1q-cbsa-bridge { description "Credit-based shaper algorithm supported."; reference - "8.6.8.2 of IEEE Std 802.1Q-2022"; + "8.6.8.2 of IEEE Std 802.1Q."; } augment "/if:interfaces/if:interface/dot1q:bridge-port" { @@ -59,6 +59,6 @@ module ieee802-dot1q-cbsa-bridge { description "Augment dot1q:bridge-port with credit-based shaper algorithm configuration."; - uses cbsa:cbsa-config; + uses cbsa:cbsa-parameters; } } \ No newline at end of file diff --git a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa.yang b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa.yang index 1cca6d478..0d7d8dae1 100644 --- a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa.yang +++ b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-cbsa.yang @@ -24,12 +24,12 @@ module ieee802-dot1q-cbsa { "This module provides for management of IEEE Std 802.1Q components that support the credit-based shaper algorithm. - Copyright (C) IEEE (2023) + 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 2023-12-26 { + revision 2024-03-22 { description "Published as part of IEEE Std 802.1Qdx-2024. @@ -41,32 +41,33 @@ module ieee802-dot1q-cbsa { IEEE Std 802.1Qcj-2023, IEEE Std 802.1Qdx-2024."; } - grouping cbsa-config { + grouping cbsa-parameters { description - "cbsa-config comprises all the parameters associated + "cbsa-parameters comprises all the parameters associated with the credit-based shaper algorithm."; - container cbsa-parameters { + container cbsa { description "This container comprises all credit-based shaper algorithm related nodes."; list cbsa-parameter-table { key "traffic-class"; + max-elements 8; description "There is one cbsa-parameter-table list per Port. Each list entry - corresponds to the set of parameters (12.20.1)for each traffic class + corresponds to the set of parameters (12.20.1) for each traffic class configured for use with the credit-based shaper algorithm (8.6.8.2). The cbsa-parameter-table list is valid for a Bridge Port only when used in the absence of the stream reservation protocol."; reference - "8.6.8.2, 34.3, 34.6, and 12.20.1 of IEEE Std 802.1Q"; + "8.6.8.2, 34.3, 34.6, and 12.20.1 of IEEE Std 802.1Q."; leaf traffic-class { type dot1q-types:traffic-class-type; description "An 802.1 traffic class value. This is the numerical value associated with a traffic class. Larger values are associated with - higher priority traffic classes."; + higher priority traffic classes."; reference - "8.6.8 of IEEE Std 802.1Q"; + "8.6.8 of IEEE Std 802.1Q."; } leaf admin-idle-slope { type uint64; @@ -82,9 +83,9 @@ module ieee802-dot1q-cbsa { If the stream reservation protocol is not in operation for this traffic class, then the value of oper-idle-slope is equal to the - value of admin-idle-slope"; + value of admin-idle-slope."; reference - "34.3 of IEEE Std 802.1Q"; + "34.3 of IEEE Std 802.1Q."; } leaf oper-idle-slope { type uint64; @@ -96,7 +97,7 @@ module ieee802-dot1q-cbsa { reserved for use by the queue associated with this traffic class (see 34.6.1 and 34.6.2)."; reference - "34.3, 34.6.1, and 34.6.2 of IEEE Std 802.1Q"; + "34.3, 34.6.1, and 34.6.2 of IEEE Std 802.1Q."; } } } diff --git a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-mstp.yang b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-mstp.yang index 0dc397fe5..bdd478741 100644 --- a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-mstp.yang +++ b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-mstp.yang @@ -39,7 +39,7 @@ module ieee802-dot1q-mstp { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2024-02-26 { + revision 2024-03-26 { description "Published as part of IEEE Std 802.1Qdy-2024. @@ -71,7 +71,7 @@ module ieee802-dot1q-mstp { type int32 { range "0"; } - config true; + default "0"; description "In an MSTP Bridge, the MST Configuration Identifier's Configuration Identifier Format Selector. This has a value of 0 @@ -81,9 +81,8 @@ module ieee802-dot1q-mstp { } leaf configuration-name { type string { - length "32"; + length "1..32"; } - config true; description "The Configuration Name in the MST Configuration Identifier."; reference @@ -93,19 +92,17 @@ module ieee802-dot1q-mstp { type uint32 { range "0..65535"; } - config true; 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 { - length "16"; - } + type binary; config false; description - "The Configuration Digest in the MST Configuration Identifier."; + "The Configuration Digest in the MST Configuration Identifier + (16 octets)."; reference "Item d) in 13.8 of IEEE Std 802.1Q."; } @@ -123,7 +120,6 @@ module ieee802-dot1q-mstp { range "6..100"; } default "20"; - config true; description "In an MSTP Bridge, the MaxHops parameter for the IST, also used for each of the MSTIs. @@ -168,7 +164,6 @@ module ieee802-dot1q-mstp { } leaf port-id-priority { type dot1qtypes:priority-type; - config true; 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 @@ -280,7 +275,6 @@ module ieee802-dot1q-mstp { } leaf msti-bridge-id-priority { type dot1qtypes:priority-type; - config true; 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 @@ -293,11 +287,10 @@ module ieee802-dot1q-mstp { } leaf msti-internal-port-path-cost { type uint32; - config true; description "The Internal Port Path Cost for this Bridge Port and MSTI."; reference - "Item b) of 13.2.1, and item ay) in 13.26 of IEEE Std 802.1Q."; + "Item b) of 13.2.1, and item ay) in 13.27 of IEEE Std 802.1Q."; } leaf msti-regional-root-id { type uint32; @@ -310,7 +303,7 @@ module ieee802-dot1q-mstp { } } leaf msti-internal-root-path-cost { - type int32; + type uint32; config false; description "The MSTI Internal Path Cost advertised in BPDUS by the Designated @@ -329,9 +322,7 @@ module ieee802-dot1q-mstp { "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf msti-designated-port-id { - type binary { - length "2"; - } + type uint32; config false; description "The Port Identifier of the Bridge Port that this port considers to diff --git a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-rstp.yang b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-rstp.yang index 3302e3183..1c689343f 100644 --- a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-rstp.yang +++ b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-rstp.yang @@ -42,7 +42,7 @@ module ieee802-dot1q-rstp { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; - revision 2024-02-26 { + revision 2024-03-26 { description "Published as part of IEEE Std 802.1Qdy-2024. @@ -81,7 +81,6 @@ module ieee802-dot1q-rstp { } } default "rstp-rapid-spanning-tree-protocol"; - config true; description "By default RSTP will provide rapid reconfiguration, but will interoperate with Bridges using STP as specified in @@ -106,7 +105,6 @@ module ieee802-dot1q-rstp { } leaf cist-bridge-id-priority { type dot1qtypes:priority-type; - config true; description "The priority component of this Bridge's Bridge Identifier for the CIST, encoded in the four most-significant bits of the first octet @@ -199,7 +197,6 @@ module ieee802-dot1q-rstp { } default "20"; units "seconds"; - config true; description "The value of the whole seconds part of Max Age when this Bridge is acting as the CIST Root. The fractional part, conveyed in the @@ -227,7 +224,6 @@ module ieee802-dot1q-rstp { } default "15"; units "seconds"; - config true; description "The value of the whole seconds part of Message Age when this Bridge is acting as the CIST Root. The fractional part, conveyed in @@ -244,7 +240,6 @@ module ieee802-dot1q-rstp { range "1..10"; } default "6"; - config true; description "Limits the rate of BPDU transmission. If the variable txCount (which is incremented on each transmission and decremented once a @@ -385,7 +380,6 @@ module ieee802-dot1q-rstp { } leaf cist-port-priority { type dot1qtypes:priority-type; - config true; description "The priority component of this Port's Port Identifier for the CIST, encoded in the four most-significant bits of the first octet @@ -397,10 +391,9 @@ module ieee802-dot1q-rstp { "13.27.47, 14.2.7, and item be) in 13.27 of IEEE Std 802.1Q."; } leaf external-port-path-cost { - type int32 { + type uint32 { range "0..200000000"; } - config true; description "The administratively assigned value for the port's contribution to the External Root Path Cost for the Bridge, when the port is the @@ -422,7 +415,7 @@ module ieee802-dot1q-rstp { "13.27.20, 13.10, and item ar) in 13.27 of IEEE Std 802.1Q."; } leaf cist-external-path-cost { - type int32; + type uint32; config false; description "The External Path Cost advertised in BPDUS by the Designated Bridge @@ -452,7 +445,6 @@ module ieee802-dot1q-rstp { } leaf port-protocol-migration-check { type boolean; - config true; description "Writing true(1) to port-protocol-migration-check (mcheck) forces transmission of RST (or MST or SPT) BPDUs for migrate-time to @@ -466,7 +458,6 @@ module ieee802-dot1q-rstp { leaf admin-edge-port { type boolean; default "false"; - config true; description "Set if the port is to be identified as an Edge Port immediately on initialization without a delay to detect other Bridges attached @@ -491,7 +482,6 @@ module ieee802-dot1q-rstp { leaf auto-edge-port { type boolean; default "true"; - config true; description "Administratively set true(1) to allow the value of oper-edge-port is to be maintained automatically, with continuous monitoring of @@ -505,7 +495,6 @@ module ieee802-dot1q-rstp { leaf auto-isolate-port { type boolean; default "false"; - config true; description "Administratively set true(1) to allow automatic setting of isolate-port, causing a Designated Port to transition to Discarding diff --git a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-tsn-types.yang b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-tsn-types.yang index 28b1d4ebb..dcc0bf175 100644 --- a/standard/ieee/draft/802.1/qrev/ieee802-dot1q-tsn-types.yang +++ b/standard/ieee/draft/802.1/qrev/ieee802-dot1q-tsn-types.yang @@ -27,6 +27,14 @@ module ieee802-dot1q-tsn-types { This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; + revision 2024-03-21 { + description + "TO BE Published as part of IEEE Std 802.1Q-2022-Revision. + Deprecated stream-id-type, added stream-id-type-upper."; + reference + "IEEE Std 802.1Q-2022-Revision, Bridges and Bridged Networks. + Maintenance Task Group database item 0312."; + } revision 2022-10-29 { description "Published as part of IEEE Std 802.1Q-2022. Second version"; @@ -50,8 +58,11 @@ module ieee802-dot1q-tsn-types { "-"+ "[0-9a-fA-F]{2}"; } + status "deprecated"; description - "This typedef specifies a Stream ID, a unique identifier of the + "This typedef is deprecated. Use stream-id-type-upper instead. + + This typedef specifies a Stream ID, a unique identifier of the Stream's configuration, used by protocols in the network to associate the user's Stream with TSN resources. @@ -93,6 +104,61 @@ module ieee802-dot1q-tsn-types { reference "46.2.3.1 of IEEE Std 802.1Q-2022"; } + typedef stream-id-type-upper { + type string { + pattern + "[0-9A-F]{2}"+ + "(-[0-9A-F]{2}){5}"+ + ":"+ + "[0-9A-F]{2}"+ + "-"+ + "[0-9A-F]{2}"; + } + description + "This typedef specifies a Stream ID, a unique identifier of the + Stream's configuration, used by protocols in the network to + associate the user's Stream with TSN resources. + + The Stream ID is a string that represents two fields: + + MAC Address: + + A 48-bit IEEE 802 MAC address associated with the Talker sourcing + the Stream to the bridged network. The entire range of MAC + addresses are acceptable. + + NOTE 1: The MAC address component of the StreamID can, but does not + necessarily, have the same value as the source_address parameter + of any frame in the actual data Stream. For example, the Stream ID + can be assigned by a TSN CUC (see 46.1.3.3 of IEEE Std + 802.1Q-2022), using a pool of MAC addresses that the TSN CUC + maintains. + + NOTE 2: If the MAC addresses used to construct Stream IDs are not + unique within the network, duplicate Stream IDs can be generated, + with unpredictable results. + + Unique ID: + + A 16-bit unique ID that is used to distinguish between multiple + Streams within the station identified by MAC Address. + + The string specifies eight octets, with each octet represented as + two hexadecimal characters. The first six octets specify the MAC + Address, using the canonical format of IEEE Std 802, with a dash + separating each octet. The last two octets specify the Unique ID, + with the high-order octet, a dash, and then the low-order octet. + The MAC Address and Unique ID are separated by colon. Only upper + case characters are allowed to be used for the hexadecimal + characters. + + stream-id-type-upper is intended for use by other modules as the type + for a key to a list of Stream configurations (using group-talker + and group-listener) and a list of Stream status (using + group-status-stream and group-status-talker-listener)."; + reference + "46.2.3.1 of IEEE Std 802.1Q-2022"; + } grouping group-interface-id { description "This YANG grouping specifies the identification of a distinct diff --git a/standard/ieee/draft/802/ieee802-ethertype.yang b/standard/ieee/draft/802/ieee802-ethertype.yang new file mode 100644 index 000000000..693e770f2 --- /dev/null +++ b/standard/ieee/draft/802/ieee802-ethertype.yang @@ -0,0 +1,607 @@ +module ieee802-ethertype { + + namespace "urn:ieee:std:802.1Q:yang:ieee802-ethertype"; + prefix "ieee-ethertype"; + + organization + "IEEE 802.1 Working Group"; + + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1@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 contains a subset of commonly used 802 network EtherTypes. + + Copyright (C) IEEE (2023). + + This version of this YANG module is part of the IEEE Std 802; + see the standard itself for full legal notices."; + + revision "2023-04-17" { + description + "Initial revision."; + reference + "IEEE Std 802f, Overview and Architecture - + YANG Data Model for EtherTypes"; + } + + typedef ethertype { + type enumeration { + enum ipv4 { + value 2048; + description + "08-00 Internet Protocol version 4 (IPv4)"; + reference + "Organization: Xerox, US + Reference: IETF RFC 894"; + } + enum arp { + value 2054; + description + "08-06 Address Resolution Protocol (ARP)"; + reference + "Organization: Symbolics, Inc. + Reference: IETF RFC 826, IETF RFC 7042"; + } + enum wol { + value 2114; + description + "08-42 Wake-on-LAN"; + reference + "Organization: None + Reference: IEEE Std 802"; + } + enum msp { + value 8930; + description + "22-E2 MAC Status Protocol (MSP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum cnm { + value 8935; + description + "22-E7 Congestion Notification Message (CNM)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum cn-tag { + value 8937; + description + "22-E9 Congestion Notification Tag (CN-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum msrp { + value 8938; + description + "22-EA Multiple Stream Reservation Protocol (MSRP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum trill { + value 8947; + description + "22-F3 Transparent Interconnection of Lots of Links"; + reference + "Organization: IETF TRILL Working Group + Reference: IETF RFC 6325"; + } + enum decnet { + value 24579; + description + "60-03 DECnet DNA Routing"; + reference + "Organization: DEC + Reference: DECnet DIGITAL Network Architecture - Ethernet + Data Link Architectural Specification v1.0.0"; + } + enum rarp { + value 32821; + description + "80-35 Reverse Address Resolution Protocol"; + reference + "Organization: Private + Reference: IETF RFC 903"; + } + enum appletalk { + value 32923; + description + "80-9B Appletalk (Ethertalk)"; + reference + "Organization: Private + Reference: Inside Appletalk, Second Edition"; + } + enum aarp { + value 33011; + description + "80-F3 Appletalk Address Resolution Protocol"; + reference + "Organization: Private + Reference: Inside Appletalk, Second Edition"; + } + enum c-tag { + value 33024; + description + "81-00 Customer VLAN Tag (C-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum ipx { + value 33079; + description + "81-37 Internetwork Packet Exchange (IPX)"; + reference + "Organization: Novell, Inc. + Reference: Internetwork Packet Exchange - Novell, Inc."; + } + enum qnx { + value 33284; + description + "82-04 QNX Qnet"; + reference + "Organization: Quantum Software Systems, Ltd. + Reference: QNX - Quantum Software Systems, Ltd."; + } + enum ipv6 { + value 34525; + description + "86-DD Internet Protocol Version 6 (IPv6)"; + reference + "Organization: USC/ISI + Reference: IETF RFC 2464"; + } + enum efc { + value 34824; + description + "88-08 Multipoint Control Protocol (MPCP)"; + reference + "Organization: IEEE 802.3 Working Group + Reference: IEEE Std 802.3"; + } + enum esp { + value 34825; + description + "88-09 Ethernet Slow Protocol"; + reference + "Organization: IEEE 802.3 Working Group + Reference: IEEE Std 802.3"; + } + enum cobranet { + value 34841; + description + "88-19 CobraNet"; + reference + "Organization: Peak Audio + Reference: CobraNet Programmer's Reference, Version 2.5"; + } + enum mpls-unicast { + value 34887; + description + "88-47 Multiprotocol Label Switching (MPLS) unicast + traffic"; + reference + "Organization: Cisco Systems + Reference: IETF RFC 3031"; + } + enum mpls-multicast { + value 34888; + description + "88-48 Multiprotocol Label Switching (MPLS) multicast"; + reference + "Organization: Cisco Systems + Reference: IETF RFC 3031"; + } + enum pppoe-discovery { + value 34915; + description + "88-63 Point-to-Point Protocol over Ethernet (PPPoE) + Discovery Stage"; + reference + "Organization: UUNET Technologies, Inc. + Reference: IETF RFC 2516"; + } + enum pppoe-session { + value 34916; + description + "88-64 Point-to-Point Protocol over Ethernet (PPPoE) + Session Stage"; + reference + "Organization: UUNET Technologies, Inc. + Reference: IETF RFC 2516"; + } + enum intel-ans { + value 34925; + description + "88-6D Intel Advanced Networking Services Probe Packets"; + reference + "Organization: Intel Corporation + Reference: Intel(R) Advanced Network Services (Intel(R) ANS) + Advanced Settings for Teams"; + } + enum llc-encaps { + value 34928; + description + "88-70 LLC Encapsulation"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1AC"; + } + enum homeplug { + value 34939; + description + "88-7B Homeplug"; + reference + "Organization: Intellon Corporation + Reference: INT51X1 datasheet"; + } + enum eapol { + value 34958; + description + "88-8E Port Access Entity (PAE) EtherType, Extensible + Authentication Protocol over LANs (EAPOL)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1X"; + } + enum profinet { + value 34962; + description + "88-92 PROFINET"; + reference + "Organization: PROFIBUS International + Reference: IEC 61158-6-10"; + } + enum hyperscsi { + value 34970; + description + "88-9A Small Computer System Interface (SCSI) over + Ethernet."; + reference + "Organization: Data Storage Institute + Reference: An Ethernet Based Data Storage Protocol for Home + Network"; + } + enum aoe { + value 34978; + description + "88-A2 Advanced Technology Attachment (ATA) over Ethernet."; + reference + "Organization: Coraid Inc + Reference: AoE (ATA over Ethernet)"; + } + enum ethercat { + value 34980; + description + "88-A4 Ethernet for Control Automation Technology + (EtherCAT)"; + reference + "Organization: Beckhoff Automation GmbH & Co KG + Reference: IEC 61158-4-12"; + } + enum s-tag { + value 34984; + description + "88-A8 Service VLAN Tag (S-TAG) or Backbone VLAN Tag + (B-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum ethernet-powerlink { + value 34987; + description + "88-AB Ethernet Powerlink"; + reference + "Organization: Ethernet Powerlink Standardization Group + (EPSG) + Reference: IEC 61158-4-13"; + } + enum exp1 { + value 34997; + description + "88-B5 Local experimental EtherType 1"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802"; + } + enum exp2 { + value 34998; + description + "88-B6 Local experimental EtherType 2"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802"; + } + enum oui-ext { + value 34999; + description + "88-B7 OUI Extended EtherType"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802"; + } + enum goose { + value 35000; + description + "88-B8 IEC 61850 Generic Object Oriented Substation Event + (GOOSE)"; + reference + "Organization: IEC TC57 + Reference: IEC 61850-8-1"; + } + enum gse { + value 35001; + description + "88-B9 IEC 61850 Generic Substation Events (GSE) management + services"; + reference + "Organization: IEC TC57 + Reference: IEC 61850-8-1"; + } + enum sv { + value 35002; + description + "88-BA IEC 61850 Sampled Value Transmission (SV)"; + reference + "Organization: IEC TC57 + Reference: IEC 61850-8-2"; + } + enum pre-auth { + value 35015; + description + "88-C7 RSNA Pre-Authentication"; + reference + "Organization: IEEE 802.11 Working Group + Reference: IEEE Std 802.11"; + } + enum lldp { + value 35020; + description + "88-CC Link Layer Discovery Protocol (LLDP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1AB"; + } + enum sercos { + value 35021; + description + "88-CD Sercos Interface"; + reference + "Organization: sercos international e.V. + Reference: IEC 61158-4-19"; + } + enum wsmp { + value 35036; + description + "88-DC WAVE Short Message Protocol (WSMP)"; + reference + "Organization: IEEE P1609 WG + Reference: IEEE Std 1609"; + } + enum homeplug-av-mme { + value 35041; + description + "88-E1 HomePlug AV Mobile Management Entity (MME)"; + reference + "Organization: HomePlug Powerline Alliance, Inc. + Reference: HomePlug AV Specification"; + } + enum mrp { + value 35043; + description + "88-E3 Media Redundancy Protocol"; + reference + "Organization: Siemens AG + Reference: IEC 62439-2"; + } + enum macsec { + value 35045; + description + "88-E5 MACsec EtherType"; + reference + "Organization: IEEE 802 LAN/MAN Standards Committee + Reference: IEEE Std 802.1AE"; + } + enum i-tag { + value 35047; + description + "88-E7 Backbone Service Instance Tag"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum mvrp { + value 35061; + description + "88-F5 Multiple VLAN Registration Protocol (MVRP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum mmrp { + value 35062; + description + "88-F6 Multiple MAC Registration Protocol (MMRP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum ptp { + value 35063; + description + "88-F7 Precision Time Protocol"; + reference + "Organization: IEEE I&M Society TC9 + Reference: IEEE Std 1588"; + } + enum cfm { + value 35074; + description + "89-02 IEEE 802.1Q Connectivity Fault Management (CFM) PDU + Encapsulation EtherType"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum fcoe { + value 35078; + description + "89-06 Fibre Channel over Ethernet (FCoE)"; + reference + "Organization: Cisco Systems, Inc + Reference: T11 FC-BB-5"; + } + enum wlan-mgmt { + value 35085; + description + "89-0D 802.11 Management Protocol"; + reference + "Organization: IEEE 802.11 Working Group + Reference: IEEE Std 802.11"; + } + enum encap { + value 35088; + description + "89-10 Backbone Service Encapsulated Addresses"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum fip { + value 35092; + description + "89-14 FCoE Initialization Protocol"; + reference + "Organization: Brocade Communications Systems LLC + Reference: T11 FC-BB-5"; + } + enum roce { + value 35093; + description + "89-15 Remote Direct Memory Access (RDMA) over Converged + Ethernet (RoCEv1)"; + reference + "Organization: Mellanox Technologies, Inc. + Reference: InfiniBand(TM) Architecture Specification"; + } + enum mis { + value 35095; + description + "89-17 Media Independent Service (MIS) Protocol"; + reference + "Organization: IEEE 802.21 Working Group + Reference: IEEE Std 802.21"; + } + enum tte { + value 35101; + description + "89-1D Time-Triggered Ethernet (TTE) Protocol Control + Frame"; + reference + "Organization: TTTech Computertechnik AG + Reference: SAE AS6802"; + } + enum mirp { + value 35113; + description + "89-29 Multiple I-SID Registration Protocol (MIRP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum hsr { + value 35119; + description + "89-2F High-availability Seamless Redundancy (HSR)"; + reference + "Organization: International Electrotechnical Commission + Reference: IEC 62439-3"; + } + enum e-tag { + value 35135; + description + "89-3F Bridge Port Extension Tag (E-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1BR"; + } + enum ecp { + value 35136; + description + "89-40 Edge Control Protocol"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum f-tag { + value 35147; + description + "89-4B Flow Filtering Tag (F-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum drcp { + value 35154; + description + "89-52 Distributed Relay Control Protocol (DRCP)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1AX"; + } + enum cim { + value 35234; + description + "89-A2 Congestion Isolation Message (CIM)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1Q"; + } + enum llc-legacy { + value 51665; + description + "C9-D1 LLC Encapsulation (obsolete)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1AC"; + } + enum mpp { + value 57915; + description + "E2-3B MAC Privacy protection Protocol"; + reference + "Organization: + Reference: IEEE Std 802.1AE"; + } + enum r-tag { + value 61889; + description + "F1-C1 Frame Replication and Elimination for Reliability + (FRER) Redundancy Tag (R-TAG)"; + reference + "Organization: IEEE 802.1 Working Group + Reference: IEEE Std 802.1CB"; + } + } + description + "IEEE Std 802 EtherTypes subset."; + } + +}