From 4b367155899b13e05aabd8e8a46be62e3804666a Mon Sep 17 00:00:00 2001 From: Scott Mansfield Date: Wed, 13 May 2026 04:19:35 -0400 Subject: [PATCH] moved 60802 to pub, moved ASed to pub, updated ASds, CB-2017-rev, DD, and XCor1 --- standard/ieee/check.sh | 2 +- .../draft/802.1/ASds/ieee802-dot1as-gptp.yang | 848 ++-- .../ieee802-dot1cb-frer-types.yang | 87 + .../CB-2017-rev/ieee802-dot1cb-frer.yang | 1252 ++++++ .../ieee802-dot1cb-mask-and-match.yang | 242 ++ ...02-dot1cb-stream-identification-types.yang | 99 + .../ieee802-dot1cb-stream-identification.yang | 21 +- .../802.1/DD/ieee802-dot1dd-rap-bridge.yang | 68 + .../draft/802.1/DD/ieee802-dot1dd-rap.yang | 12 +- .../802.1/X-cor1/ieee802-dot1x-types.yang | 4 +- .../draft/802.1/X-cor1/ieee802-dot1x.yang | 3525 +++++++++-------- .../60802/iecieee60802-bridge.yang | 1206 +++--- .../60802/iecieee60802-cnc-config.yang | 400 +- .../iecieee60802-ethernet-interface.yang | 162 +- .../60802/iecieee60802-ia-station.yang | 414 +- .../60802/iecieee60802-proxy-target.yang | 128 +- .../60802/iecieee60802-proxy.yang | 290 +- .../60802/iecieee60802-sched-bridge.yang | 184 +- ...iecieee60802-subscribed-notifications.yang | 184 +- .../60802/iecieee60802-tt-mapping.yang | 322 +- .../802.1}/ieee802-dot1as-ftt.yang | 195 +- 21 files changed, 5729 insertions(+), 3916 deletions(-) create mode 100755 standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer-types.yang create mode 100755 standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer.yang create mode 100755 standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-mask-and-match.yang create mode 100755 standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification-types.yang create mode 100755 standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap-bridge.yang rename standard/ieee/{draft => published}/60802/iecieee60802-bridge.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-cnc-config.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-ethernet-interface.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-ia-station.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-proxy-target.yang (97%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-proxy.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-sched-bridge.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-subscribed-notifications.yang (96%) mode change 100644 => 100755 rename standard/ieee/{draft => published}/60802/iecieee60802-tt-mapping.yang (97%) mode change 100644 => 100755 rename standard/ieee/{draft/802.1/ASed => published/802.1}/ieee802-dot1as-ftt.yang (69%) mode change 100644 => 100755 diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index cfcd924a0..e4b0016d7 100755 --- a/standard/ieee/check.sh +++ b/standard/ieee/check.sh @@ -8,7 +8,7 @@ cwd=$(pwd) ietf_dir="standard/ietf" ieee_dir="standard/ieee" -to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AB-2016rev draft/802.1/CB-2017-cor1 draft/802.1/CB-2017-rev draft/802.1/DD draft/802.1/X-cor1 published/802 published/802.1 published/802.3 published/1588" +to_check="draft/802.3 draft/802.1/qrev draft/802.1/ASds draft/802.1/AB-2016rev draft/802.1/CB-2017-cor1 draft/802.1/CB-2017-rev draft/802.1/DD draft/802.1/X-cor1 published/802 published/802.1 published/802.3 published/1588 published/60802" # relax constraint for now # add --ietf if you want to do strict IETF checking diff --git a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang index 12bcf29c3..4eb716098 100644 --- a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang +++ b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang @@ -1,6 +1,6 @@ module ieee802-dot1as-gptp { - yang-version 1.1; - namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-gptp"; + yang-version "1.1"; + namespace urn:ieee:std:802.1AS:yang:ieee802-dot1as-gptp; prefix dot1as-gptp; import ietf-yang-types { @@ -17,73 +17,74 @@ module ieee802-dot1as-gptp { 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 + 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 clause 14 of IEEE Std - 802.1AS-2020-REV. + "Management objects that control timing and synchronization for + time sensitive applications, as specified in Clause 14 of + IEEE Std 802.1AS-2025. - Copyright (C) IEEE (2025). This version of this YANG module is part - of IEEE Std 802.1AS-2020-REV; see the standard itself for full legal notices."; + Copyright (C) IEEE (2025). This version of this YANG module is + part of IEEE Std 802.1AS-2025; see the standard itself for full + legal notices."; - revision 2025-03-06 { + revision 2026-01-19 { description - "Published as part of IEEE Std 802.1ASds-202X."; + "Published as part of IEEE Std 802.1AS-2025."; reference - "IEEE Std 802.1AS - Timing and Synchronization for Time-Sensitive - Applications: IEEE Std 802.1AS-2020-REV. - 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."; + "IEEE Std 802.1AS - Timing and Synchronization for + Time-Sensitive Applications: IEEE Std 802.1AS-2025. + 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}'; + 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."; + "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}'; + 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."; + "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}'; + 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."; + 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"; @@ -102,20 +103,21 @@ module ieee802-dot1as-gptp { 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."; + "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'"; + 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)."; + "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"; } @@ -123,10 +125,11 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -134,11 +137,12 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -146,11 +150,12 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -158,10 +163,11 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -169,11 +175,11 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -182,13 +188,13 @@ module ieee802-dot1as-gptp { 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)."; + 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"; } @@ -199,8 +205,8 @@ module ieee802-dot1as-gptp { 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)."; + applies to the ClockTimeTransmitter entity (i.e., local + only, unrelated to a remote GM)."; reference "14.2.15 of IEEE Std 802.1AS"; } @@ -214,8 +220,9 @@ module ieee802-dot1as-gptp { 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."; + "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"; } @@ -224,8 +231,8 @@ module ieee802-dot1as-gptp { config false; description "Frequency change that occurred on the most recent change in - either the Grandmaster PTP Instance or gm-timebase-indicator - leaf."; + either the Grandmaster PTP Instance or + gm-timebase-indicator leaf."; reference "14.3.5 of IEEE Std 802.1AS"; } @@ -233,7 +240,8 @@ module ieee802-dot1as-gptp { type uint16; config false; description - "The timeBaseIndicator of the current Grandmaster PTP Instance."; + "The timeBaseIndicator of the current Grandmaster PTP + Instance."; reference "14.3.6 of IEEE Std 802.1AS"; } @@ -251,10 +259,11 @@ module ieee802-dot1as-gptp { 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)."; + 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"; } @@ -262,11 +271,11 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -274,11 +283,12 @@ module ieee802-dot1as-gptp { 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)."; + "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"; } @@ -292,42 +302,44 @@ module ieee802-dot1as-gptp { 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)."; + "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" { + 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.10.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.10.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.10.20 of IEEE Std 802.1AS specifies mgtSettableLogSyncInterval - (mgt-log-sync-interval), which is provided in YANG as the + (ptp-port-enabled), 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."; + port-enable (in port-ds). + + 14.10.16 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.10.21 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; @@ -341,10 +353,10 @@ module ieee802-dot1as-gptp { 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."; + "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.10.7 of IEEE Std 802.1AS"; @@ -352,18 +364,19 @@ module ieee802-dot1as-gptp { 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."; + "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.10.9 of IEEE Std 802.1AS"; } leaf neg-mean-link-delay-thresh { type ptp-tt:time-interval; description - "The negative propagation time threshold for mean-link-delay, - below which a port is not considered capable of participating - in the IEEE Std 802.1AS protocol."; + "The negative propagation time threshold for + mean-link-delay, below which a port is not considered + capable of participating in the IEEE Std 802.1AS + protocol."; reference "14.10.10 of IEEE Std 802.1AS"; } @@ -371,21 +384,21 @@ module ieee802-dot1as-gptp { 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)."; + "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.10.12 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 logarithm to base 2 of the - announce interval used when the port is initialized."; + "When use-mgt-log-announce-interval is false (i.e., change + with Signaling message), this is the logarithm to base 2 of + the announce interval used when the port is initialized."; reference "14.10.13 of IEEE Std 802.1AS"; } @@ -400,12 +413,13 @@ module ieee802-dot1as-gptp { 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)."; + "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.10.15 of IEEE Std 802.1AS"; } @@ -416,7 +430,7 @@ module ieee802-dot1as-gptp { Signaling message), this is the logarithm to base 2 of the sync interval used when the port is initialized."; reference - "14.10.17 of IEEE Std 802.1AS"; + "14.10.18 of IEEE Std 802.1AS"; } leaf current-log-sync-interval { type int8; @@ -424,86 +438,91 @@ module ieee802-dot1as-gptp { description "Logarithm to base 2 of the current sync interval."; reference - "14.10.18 of IEEE Std 802.1AS"; + "14.10.19 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 + "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.10.19 of IEEE Std 802.1AS"; + "14.10.20 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."; + "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.10.21 of IEEE Std 802.1AS"; + "14.10.22 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."; + time-synchronization information has not been received + during the interval."; reference - "14.10.22 of IEEE Std 802.1AS"; + "14.10.23 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 logarithm to base 2 of the - Pdelay_Req transmit interval used when the port is initialized."; + "When use-mgt-log-pdelay-req-interval is false (i.e., change + with Signaling message), this is the logarithm to base 2 of + the Pdelay_Req transmit interval used when the port is + initialized."; reference - "14.10.23 of IEEE Std 802.1AS"; + "14.10.24 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."; + "Logarithm to base 2 of the current Pdelay_Req transmit + interval."; reference - "14.10.24 of IEEE Std 802.1AS"; + "14.10.25 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)."; + "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.10.25 of IEEE Std 802.1AS"; + "14.10.26 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."; + "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.10.26 of IEEE Std 802.1AS"; + "14.10.27 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 logarithm to base 2 of the - gPTP capable message interval used when the port is initialized."; + "When use-mgt-log-gptp-cap-interval is false (i.e., change + with Signaling message), this is the logarithm to base 2 of + the gPTP capable message interval used when the port is + initialized."; reference - "14.10.27 of IEEE Std 802.1AS"; + "14.10.28 of IEEE Std 802.1AS"; } leaf current-log-gptp-cap-interval { type int8; @@ -512,38 +531,38 @@ module ieee802-dot1as-gptp { "Logarithm to base 2 of the current gPTP capable message interval."; reference - "14.10.28 of IEEE Std 802.1AS"; + "14.10.29 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)."; + "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.10.29 of IEEE Std 802.1AS"; + "14.10.30 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."; + "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.10.30 of IEEE Std 802.1AS"; + "14.10.31 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."; + "When use-mgt-compute-neighbor-rate-ratio is false + (i.e., change with Signaling message), this is the initial + value of computeNeighborRateRatio."; reference - "14.10.31 of IEEE Std 802.1AS"; + "14.10.32 of IEEE Std 802.1AS"; } leaf current-compute-neighbor-rate-ratio { type boolean; @@ -551,37 +570,38 @@ module ieee802-dot1as-gptp { description "Current value of computeNeighborRateRatio."; reference - "14.10.32 of IEEE Std 802.1AS"; + "14.10.33 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 + "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.10.33 of IEEE Std 802.1AS"; + "14.10.34 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."; + use-mgt-compute-neighbor-rate-ratio is true. This value is + not used if use-mgt-compute-neighbor-rate-ratio is false."; reference - "14.10.34 of IEEE Std 802.1AS"; + "14.10.35 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 + "When use-mgt-compute-mean-link-delay is false (i.e., change + with Signaling message), this is the initial value of computeMeanLinkDelay."; reference - "14.10.35 of IEEE Std 802.1AS"; + "14.10.36 of IEEE Std 802.1AS"; } leaf current-compute-mean-link-delay { type boolean; @@ -589,81 +609,81 @@ module ieee802-dot1as-gptp { description "Current value of computeMeanLinkDelay."; reference - "14.10.36 of IEEE Std 802.1AS"; + "14.10.37 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 + "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.10.37 of IEEE Std 802.1AS"; + "14.10.38 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."; + use-mgt-compute-mean-link-delay is true. This value is not + used if use-mgt-compute-mean-link-delay is false."; reference - "14.10.38 of IEEE Std 802.1AS"; + "14.10.39 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."; + "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.10.39 of IEEE Std 802.1AS"; + "14.10.40 of IEEE Std 802.1AS"; } leaf allowed-faults { type uint8; description "Number of faults above which asCapable is set to false."; reference - "14.10.40 of IEEE Std 802.1AS"; + "14.10.41 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."; + receiving the gPTP-capable TLV, before assuming that the + neighbor port is no longer invoking the gPTP protocol."; reference - "14.10.41 of IEEE Std 802.1AS"; + "14.10.42 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 + "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.10.43 of IEEE Std 802.1AS"; + "14.10.44 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."; + "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.10.44 of IEEE Std 802.1AS"; + "14.10.45 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."; + messages, and false if the port is sending two-step Sync + and Follow_Up messages."; reference - "14.10.45 of IEEE Std 802.1AS"; + "14.10.46 of IEEE Std 802.1AS"; } leaf one-step-receive { type boolean; @@ -672,7 +692,7 @@ module ieee802-dot1as-gptp { "This value is true if the port is capable of receiving and processing one-step Sync messages."; reference - "14.10.46 of IEEE Std 802.1AS"; + "14.10.47 of IEEE Std 802.1AS"; } leaf one-step-transmit { type boolean; @@ -681,7 +701,7 @@ module ieee802-dot1as-gptp { "This value is true if the port is capable of transmitting one-step Sync messages."; reference - "14.10.47 of IEEE Std 802.1AS"; + "14.10.48 of IEEE Std 802.1AS"; } leaf initial-one-step-tx-oper { type boolean; @@ -690,7 +710,7 @@ module ieee802-dot1as-gptp { Signaling message), this is the initial value of current-one-step-tx-oper."; reference - "14.10.48 of IEEE Std 802.1AS"; + "14.10.49 of IEEE Std 802.1AS"; } leaf current-one-step-tx-oper { type boolean; @@ -699,59 +719,63 @@ module ieee802-dot1as-gptp { "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)."; + 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.10.49 of IEEE Std 802.1AS"; + "14.10.50 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, + "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)."; + OneStepTxOperSetting state machine (i.e., changed with + Signaling message)."; reference - "14.10.50 of IEEE Std 802.1AS"; + "14.10.51 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."; + "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.10.51 of IEEE Std 802.1AS"; + "14.10.52 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."; + "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.10.52 of IEEE Std 802.1AS"; + "14.10.53 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.10.53 of IEEE Std 802.1AS"; - } + "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.10.54 of IEEE Std 802.1AS"; +} leaf pdelay-req-send-disabled { type boolean; description @@ -759,7 +783,7 @@ module ieee802-dot1as-gptp { if Pdelay_Req messages are not transmitted by this port. The default value for this variable shall be FALSE."; reference - "14.10.60 of IEEE Std 802.1AS"; + "14.10.61 of IEEE Std 802.1AS"; } leaf pdelay-resp-send-disabled { type boolean; @@ -768,28 +792,31 @@ module ieee802-dot1as-gptp { if Pdelay_Resp messages are not transmitted by this port. The default value for this variable shall be FALSE."; reference - "14.10.61 of IEEE Std 802.1AS"; + "14.10.62 of IEEE Std 802.1AS"; } } - augment "/ptp-tt:ptp" - + "/ptp-tt:instances" - + "/ptp-tt:instance" - + "/ptp-tt:ports" - + "/ptp-tt:port" { + 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."; + "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."; + "Provides counters associated with the port of the PTP + Instance."; reference "14.12 of IEEE Std 802.1AS"; leaf rx-sync-count { type yang:counter32; config false; description - "Counter that increments every time synchronization information - is received."; + "Counter that increments every time synchronization + information is received."; reference "14.12.2 of IEEE Std 802.1AS"; } @@ -797,8 +824,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a one-step Sync message is - received."; + "Counter that increments every time a one-step Sync + message is received."; reference "14.12.3 of IEEE Std 802.1AS"; } @@ -815,8 +842,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Req message is - received."; + "Counter that increments every time a Pdelay_Req message + is received."; reference "14.12.5 of IEEE Std 802.1AS"; } @@ -824,8 +851,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Resp message is - received."; + "Counter that increments every time a Pdelay_Resp message + is received."; reference "14.12.6 of IEEE Std 802.1AS"; } @@ -833,8 +860,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Resp_Follow_Up - message is received."; + "Counter that increments every time a + Pdelay_Resp_Follow_Up message is received."; reference "14.12.7 of IEEE Std 802.1AS"; } @@ -869,8 +896,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time an announce receipt timeout - occurs."; + "Counter that increments every time an announce receipt + timeout occurs."; reference "14.12.11 of IEEE Std 802.1AS"; } @@ -878,10 +905,10 @@ module ieee802-dot1as-gptp { 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."; + "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.12.12 of IEEE Std 802.1AS"; } @@ -889,8 +916,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time synchronization information - is transmitted."; + "Counter that increments every time synchronization + information is transmitted."; reference "14.12.13 of IEEE Std 802.1AS"; } @@ -898,8 +925,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a one-step Sync message is - transmitted."; + "Counter that increments every time a one-step Sync + message is transmitted."; reference "14.12.14 of IEEE Std 802.1AS"; } @@ -916,8 +943,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Req message is - transmitted."; + "Counter that increments every time a Pdelay_Req message + is transmitted."; reference "14.12.16 of IEEE Std 802.1AS"; } @@ -925,8 +952,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Resp message is - transmitted."; + "Counter that increments every time a Pdelay_Resp message + is transmitted."; reference "14.12.17 of IEEE Std 802.1AS"; } @@ -934,8 +961,8 @@ module ieee802-dot1as-gptp { type yang:counter32; config false; description - "Counter that increments every time a Pdelay_Resp_Follow_Up - message is transmitted."; + "Counter that increments every time a + Pdelay_Resp_Follow_Up message is transmitted."; reference "14.12.18 of IEEE Std 802.1AS"; } @@ -951,51 +978,55 @@ module ieee802-dot1as-gptp { } } - augment "/ptp-tt:ptp" - + "/ptp-tt:instances" - + "/ptp-tt:instance" - + "/ptp-tt:ports" - + "/ptp-tt:port" { + 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."; + "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)."; + 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.15 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."; + "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.15.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" { + 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."; 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."; + "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.18.3 of IEEE Std 802.1AS"; @@ -1004,8 +1035,8 @@ module ieee802-dot1as-gptp { type boolean; config false; description - "This leaf is analogous to is-measuring-delay for a PTP Port, but - applicable to this Link Port."; + "This leaf is analogous to is-measuring-delay for a PTP + Port, but applicable to this Link Port."; reference "14.18.4 of IEEE Std 802.1AS"; } @@ -1013,8 +1044,8 @@ module ieee802-dot1as-gptp { type boolean; config false; description - "This leaf is true when all PTP Instances (domains) for this Link - Port detect proper exchange of Pdelay messages."; + "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.18.5 of IEEE Std 802.1AS"; @@ -1022,26 +1053,27 @@ module ieee802-dot1as-gptp { 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."; + "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.18.7 of IEEE Std 802.1AS"; } leaf neg-mean-link-delay-thresh { type ptp-tt:time-interval; description - "The negative propagation time threshold for mean-link-delay, - below which a Link Port is not considered capable of - participating in the IEEE Std 802.1AS protocol."; + "The negative propagation time threshold for + mean-link-delay, below which a Link Port is not considered + capable of participating in the IEEE Std 802.1AS + protocol."; reference "14.18.8 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."; + "This leaf is analogous to initial-log-pdelay-req-interval + for a PTP Port, but applicable to this Link Port."; reference "14.18.11 of IEEE Std 802.1AS"; } @@ -1049,32 +1081,33 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to current-log-pdelay-req-interval + for a PTP Port, but applicable to this Link Port."; reference "14.18.12 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."; + "This leaf is analogous to use-mgt-log-pdelay-req-interval + for a PTP Port, but applicable to this Link Port."; reference "14.18.13 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."; + "This leaf is analogous to mgt-log-pdelay-req-interval for + a PTP Port, but applicable to this Link Port."; reference "14.18.14 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."; + "This leaf is analogous to + initial-compute-neighbor-rate-ratio for a PTP Port, but + applicable to this Link Port."; reference "14.18.15 of IEEE Std 802.1AS"; } @@ -1082,32 +1115,34 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to + current-compute-neighbor-rate-ratio for a PTP Port, but + applicable to this Link Port."; reference "14.18.16 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."; + "This leaf is analogous to + use-mgt-compute-neighbor-rate-ratio for a PTP Port, but + applicable to this Link Port."; reference "14.18.17 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."; + "This leaf is analogous to mgt-compute-neighbor-rate-ratio + for a PTP Port, but applicable to this Link Port."; reference "14.18.18 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."; + "This leaf is analogous to initial-compute-mean-link-delay + for a PTP Port, but applicable to this Link Port."; reference "14.18.19 of IEEE Std 802.1AS"; } @@ -1115,40 +1150,40 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to current-compute-mean-link-delay + for a PTP Port, but applicable to this Link Port."; reference "14.18.20 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."; + "This leaf is analogous to use-mgt-compute-mean-link-delay + for a PTP Port, but applicable to this Link Port."; reference "14.18.21 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."; + "This leaf is analogous to mgt-compute-mean-link-delay for a + PTP Port, but applicable to this Link Port."; reference "14.18.22 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."; + "This leaf is analogous to allowed-lost-responses for a PTP + Port, but applicable to this Link Port."; reference "14.18.23 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."; + "This leaf is analogous to allowed-faults for a PTP Port, + but applicable to this Link Port."; reference "14.18.24 of IEEE Std 802.1AS"; } @@ -1156,20 +1191,22 @@ module ieee802-dot1as-gptp { type uinteger48; config false; description - "This leaf is analogous to pdelay-truncated-timestamps for a PTP - Port, but applicable to this Link Port."; + "This leaf is analogous to pdelay-truncated-timestamps for a + PTP Port, but applicable to this Link Port."; reference "14.18.26 of IEEE Std 802.1AS"; } } - augment "/ptp-tt:ptp" - + "/ptp-tt:common-services" - + "/ptp-tt:cmlds" - + "/ptp-tt:ports" - + "/ptp-tt:port" { + 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."; + "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 @@ -1180,8 +1217,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to rx-pdelay-req-count for a PTP + Port, but applicable to this Link Port."; reference "14.19.2 of IEEE Std 802.1AS"; } @@ -1189,8 +1226,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to rx-pdelay-resp-count for a PTP + Port, but applicable to this Link Port."; reference "14.19.3 of IEEE Std 802.1AS"; } @@ -1198,8 +1235,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to rx-pdelay-resp-follow-up-count + for a PTP Port, but applicable to this Link Port."; reference "14.19.4 of IEEE Std 802.1AS"; } @@ -1207,8 +1244,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to rx-packet-discard-count for a + PTP Port, but applicable to this Link Port."; reference "14.19.5 of IEEE Std 802.1AS"; } @@ -1216,8 +1253,9 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to + pdelay-allowed-lost-exceeded-count for a PTP Port, but + applicable to this Link Port."; reference "14.19.6 of IEEE Std 802.1AS"; } @@ -1225,8 +1263,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to tx-pdelay-req-count for a + PTP Port, but applicable to this Link Port."; reference "14.19.7 of IEEE Std 802.1AS"; } @@ -1234,8 +1272,8 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to tx-pdelay-resp-count for a + PTP Port, but applicable to this Link Port."; reference "14.19.8 of IEEE Std 802.1AS"; } @@ -1243,26 +1281,28 @@ module ieee802-dot1as-gptp { 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."; + "This leaf is analogous to tx-pdelay-resp-follow-up-count + for a PTP Port, but applicable to this Link Port."; reference - "14.19.10 of IEEE Std 802.1AS"; + "14.19.9 of IEEE Std 802.1AS"; } } } - augment "/ptp-tt:ptp" - + "/ptp-tt:common-services" - + "/ptp-tt:cmlds" - + "/ptp-tt:ports" - + "/ptp-tt:port" { + 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."; + "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."; + "This container is analogous to + asymmetry-measurement-mode-ds for a PTP Port, but + applicable to this Link Port."; reference "14.20 of IEEE Std 802.1AS"; leaf enabled { diff --git a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer-types.yang b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer-types.yang new file mode 100755 index 000000000..f35568b89 --- /dev/null +++ b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer-types.yang @@ -0,0 +1,87 @@ +module ieee802-dot1cb-frer-types { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1cb-frer-types; + prefix dot1cb-frer-types; + organization + "Institute of Electrical and Electronics Engineers"; + 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 the frame replication and + elimination from IEEE Std 802.1CB-2017. This YANG data model conforms + to the Network Management Datastore Architecture defined in RFC 8342. + Copyright (C) IEEE (2021). This version of this YANG module is part + of IEEE Std 802.1CBcv; see the standard itself for full legal + notices."; + revision 2021-12-08 { + description + "Published as part of IEEE Std 802.1CBcv-2021. Initial version."; + reference + "IEEE Std 802.1CBcv-2021, Frame Replication and Elimination for + Reliability - FRER YANG Data Model and Management Information Base + Module."; + } + typedef seq-rcvy-algorithm { + type enumeration { + enum vector { + value 0; + description + "The sequence recovery type used for the Vector Recovery + Algorithm."; + } + enum match { + value 1; + description + "The sequence recovery type used for the Match Recovery + Algorithm."; + } + } + description + "An enumerated value specifying which sequence recovery algorithm + is to be used for an instance of the Sequence recovery function."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + typedef seq-encaps-method { + type enumeration { + enum reserved { + value 0; + description + "Reserved value."; + } + enum r-tag { + value 1; + description + "The sequence encode decode type used for the R_TAG + encode/decode method."; + } + enum hsr-seq-tag { + value 2; + description + "The sequence encode decode type used for the HSR encode/decode + method."; + } + enum prp-seq-trailer { + value 3; + description + "The sequence encode decode type used for the PRP encode/decode + method."; + } + } + description + "An enumerated value indicating the type of encapsulation used for + an instance of the Sequence encode/decode function."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } +} diff --git a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer.yang b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer.yang new file mode 100755 index 000000000..07f61c5eb --- /dev/null +++ b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-frer.yang @@ -0,0 +1,1252 @@ +module ieee802-dot1cb-frer { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1cb-frer; + prefix dot1cb-frer; + import ieee802-dot1cb-stream-identification { + prefix dot1cb-sid; + } + import ieee802-dot1cb-stream-identification-types { + prefix dot1cb-sid-types; + } + import ieee802-dot1cb-frer-types { + prefix dot1cb-frer-types; + } + import ieee802-dot1q-types { + prefix dot1qtypes; + } + import ietf-interfaces { + prefix if; + } + organization + "Institute of Electrical and Electronics Engineers"; + 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 the frame replication and + elimination from IEEE Std 802.1CB-2017. This YANG data model conforms + to the Network Management Datastore Architecture defined in RFC 8342. + Copyright (C) IEEE (2021). This version of this YANG module is part + of IEEE Std 802.1CBcv; see the standard itself for full legal + notices."; + revision 2025-11-12 { + description + "Published as part of IEEE Std 802.1CB-2017/Cor 1-2025."; + reference + "IEEE Std 802.1CB-2017/Cor 1-2025, Frame Replication and Elimination for + Reliability - Corrigendum 1."; + } + revision 2021-12-08 { + description + "Published as part of IEEE Std 802.1CBcv-2021. Initial version."; + reference + "IEEE Std 802.1CBcv-2021, Frame Replication and Elimination for + Reliability - FRER YANG Data Model and Management Information Base + Module."; + } + feature auto-configuration { + description + "Autoconfiguration of entries in the tables for Stream identity + table, sequence recovery table, and sequence identification table."; + reference + "7.11 of IEEE Std 802.1CB-2017 + 10.7 of IEEE Std 802.1CB-2017"; + } + typedef lan-path-id { + type int8; + description + "An integer specifying a path or LAN. If and only if a packet + matches an entry in the Sequence identification table that + specifies HSR or PRP in its frerSeqEncEncapsType object, + tsnStreamIdLanPathId specifies the LanId or PathId value that must + be matched for this tsnStreamIdEntry to apply. A value of –1 + indicates that the LanId or PathId are to be ignored."; + reference + "10.2.2 of IEEE Std 802.1CB-2017"; + } + typedef sequence-history-length { + type uint32 { + range "2..max"; + } + description + "An integer specifying how many bits of the SequenceHistory + variable are to be used."; + reference + "7.4.3.2.2 of IEEE Std 802.1CB-2017"; + } + grouping sequence-encode-decode { + description + "The sequence-encode-decode grouping indicates the type of + encapsulation used for this instance of the Sequence encode/decode + function."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + choice encapsulation { + description + "This choice indicates the type of encapsulation used for this + instance of the Sequence encode/decode function. The + encapsulation includes an Organizationally Unique Identifier + (OUI) or Company ID (CID) to identify the organization defining + the Sequence encode/decode method."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + container r-tag { + presence "true"; + description + "R-TAG"; + reference + "7.8 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-frer-types:seq-encaps-method; + default "r-tag"; + config false; + description + "The type number used for the R-TAG encode/decode method."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + config false; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the encode/decode + method. For encode/decode methods defined in IEEE Std + 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + } + container hsr-sequence-tag { + presence "true"; + description + "HSR sequence tag"; + reference + "7.9 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-frer-types:seq-encaps-method; + default "hsr-seq-tag"; + config false; + description + "The type number used for the HSR sequence tag encode/decode + method."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + config false; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the encode/decode + method. For encode/decode methods defined in IEEE Std + 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + } + container prp-sequence-tag { + presence "true"; + description + "PRP sequence trailer"; + reference + "7.10 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-frer-types:seq-encaps-method; + default "prp-seq-trailer"; + config false; + description + "The type number used for the PRP sequence trailer + encode/decode method."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + config false; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the encode/decode + method. For encode/decode methods defined in IEEE Std + 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + } + container organization-specific { + presence "true"; + description + "This container allows to select Sequence encode/decode types + that are defined by entities outside of IEEE 802.1."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + leaf type-number { + type int32 { + range "256..max"; + } + description + "The type number used for an encode/decode method defined by + an entity owning the OUI or CID for this encapsulation type."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the encode/decode + method."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + } + } + } + } + grouping sequence-recovery-algorithm { + description + "The sequence-recovery-algorithm grouping specifies which sequence + recovery algorithm is to be used for this instance of the Sequence + recovery function."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + choice algorithm { + description + "This choice indicates the sequence recovery algorithm used for + this instance of the Sequence recovery function. It includes an + Organizationally Unique Identifier (OUI) or Company ID (CID) to + identify the organization defining the sequence recovery + algorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + container vector { + presence "true"; + description + "Vector Recovery Algorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-frer-types:seq-rcvy-algorithm; + default "vector"; + config false; + description + "The type number used for the VectorRecoveryAlgorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + config false; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the sequence + recovery algorithm. For sequence recovery algorithms defined + in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + } + container match { + presence "true"; + description + "Match Recovery Algorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-frer-types:seq-rcvy-algorithm; + default "match"; + config false; + description + "The type number used for the MatchRecoveryAlgorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + config false; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the sequence + recovery algorithm. For sequence recovery algorithms defined + in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + } + container organization-specific { + presence "true"; + description + "This container allows to select sequence recovery algorithms + that are defined by entities outside of IEEE 802.1."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + leaf type-number { + type int32 { + range "256..max"; + } + description + "The type number used for a sequence recovery algorithm + defined by an entity owning the OUI or CID for this algorithm + type."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the sequence + recovery algorithm."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + } + } + } + } + container frer { + description + "The managed objects that control Stream identification are + described in Clause 9 of IEEE Std 802.1CB-2017. The managed objects + that control FRER are described in Clause 10 of IEEE Std + 802.1CB-2017 as follows: + + a) General requirements on the behavior of counters are in 10.1. + b) The various tables of managed objects that can manage, in + detail, each individual Stream, are described in five + subclauses, including: + 1) Additions to the Stream identity table required for + Autoconfiguration. + 2) The Sequence generation table that configures instances of + the Sequence generation function; + 3) The Sequence recovery table that configures instances of the + Individual recovery function, the Sequence recovery function, + and the Latent error detection function; + 4) The Sequence identification table that configures instances + of the Sequence encode/decode function; and + 5) The Stream split table that configures instances of the + Stream splitting function. + c) The managed objects that support the automatic configuration, + upon receipt of a packet, of entries in the first four of the + preceding tables, are described in the subclause on + Autoconfiguration. + d) The per-port, per-Stream packet counters that are kept by FRER + functions for inspection by network management entities are + described in 10.8, and the per-port (totaled over all Streams) + counters in 10.9. + + The managed objects in the subclauses under 9.1 make it possible to + configure more than one encapsulation for the same stream_handle + subparameter on the same port. Similarly, the managed objects in + the subclauses under 10.3 and 10.4 make it possible to configure + more than one Sequence encode/decode function or more than one + Sequence generation function for the same stream_handle + subparameter. [The same value of stream_handle can be in the + frerSeqGenStreamList of more than one frerSeqGenEntry or in the + frerSeqRcvyStreamList of more than one frerSeqRcvyEntry.] A system + shall return an error if an attempt is made to configure + conflicting requirements upon that system."; + reference + "Clause 10 of IEEE Std 802.1CB-2017"; + list sequence-generation { + key "index"; + description + "There is one Sequence generation table in a system, and one + entry in the Sequence generation table for each Sequence + generation function. Each frerSeqGenEntry lists the Streams and + direction for which a single instance of the Sequence generation + function is to be placed."; + reference + "10.3 of IEEE Std 802.1CB-2017"; + leaf index { + type uint32; + description + "Clause 10 of IEEE Std 802.1CB-2017 states that the same Stream + handle can be present multiple times in the sequence generation + table. Therefore this index leaf is being used to uniquely + identify an entry in the sequence generation table."; + } + leaf-list stream { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + min-elements 1; + description + "A list of stream_handle values, corresponding to the values of + the tsnStreamIdHandle objects in the Stream identity table, on + which this instance of the Sequence generation function is to + operate. The single instance of the Sequence generation + function created by this frerSeqGenEntry operates every packet + belonging to this Stream, regardless of the port on which it is + received."; + reference + "10.3.1.1 of IEEE Std 802.1CB-2017"; + } + leaf direction-out-facing { + type dot1cb-sid-types:direction; + description + "An object indicating whether the Sequence generation function + is to be placed on the out-facing (True) or in-facing (False) + side of the port."; + reference + "10.3.1.2 of IEEE Std 802.1CB-2017"; + } + leaf reset { + type boolean; + description + "A Boolean object indicating that the Sequence generation + function is to be reset by calling its corresponding + SequenceGenerationReset function. Writing the value True to + frerSeqGenReset triggers a reset; writing the value False has + no effect. When read, frerSeqGenReset always returns the value + False."; + reference + "10.3.1.3 of IEEE Std 802.1CB-2017"; + } + } + list sequence-recovery { + key "index"; + description + "There is one Sequence recovery table in a system, and one entry + in the Sequence recovery table for each Sequence recovery + function or Individual recovery function that can also be + present. The entry describes a set of managed objects for the + single instance of a Base recovery function and Latent error + detection function included in the Sequence recovery function or + Individual recovery function. Each frerSeqRcvyEntry lists the + Streams, ports, and direction for which instances of a Sequence + recovery function or Individual recovery function are to be + instantiated."; + reference + "10.4 of IEEE Std 802.1CB-2017"; + leaf index { + type uint32; + description + "Clause 10 of IEEE Std 802.1CB-2017 states that the same Stream + handle can be present multiple times in the sequence recovery + table. Therefore this index leaf is being used to uniquely + identify an entry in the sequence recovery table."; + } + leaf-list stream { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + min-elements 1; + description + "A list of the stream_handle values, corresponding to the + values of the tsnStreamIdHandle objects in the Stream identity + table, to which the system is to apply the instance of the + Sequence recovery function or Individual recovery function."; + reference + "10.4.1.1 of IEEE Std 802.1CB-2017"; + } + leaf-list port { + type if:interface-ref; + min-elements 1; + description + "The list of ports on each of which the system is to + instantiate the Sequence recovery function, or from which + received packets are to be fed to a single instance of the + Individual recovery function."; + reference + "10.4.1.2 of IEEE Std 802.1CB-2017"; + } + leaf direction-out-facing { + type dot1cb-sid-types:direction; + description + "An object indicating whether the Sequence recovery function or + Individual recovery function is to be placed on the out-facing + (True) or in-facing (False) side of the port."; + reference + "10.4.1.3 of IEEE Std 802.1CB-2017"; + } + leaf reset { + type boolean; + default "false"; + description + "A Boolean object indicating that the Sequence recovery + function or Individual recovery function is to be reset by + calling its corresponding SequenceGenerationReset function. + Writing the value True to frerSeqRcvyReset triggers a reset; + writing the value False has no effect. When read, + frerSeqRcvyReset always returns the value False."; + reference + "10.4.1.4 of IEEE Std 802.1CB-2017"; + } + container algorithm { + description + "This object is an enumerated value specifying which sequence + recovery algorithm is to be used for this instance of the + Sequence recovery function. The enumeration uses an OUI or CID + as shown in Table 10-1. The default value for + frerSeqRcvyAlgorithm is Vector_Alg (00-80-C2, 0)."; + reference + "10.4.1.5 of IEEE Std 802.1CB-2017"; + uses sequence-recovery-algorithm; + } + leaf history-length { + type sequence-history-length; + default "2"; + description + "An integer specifying how many bits of the SequenceHistory + variable are to be used. The minimum and the default value is + 2, maximum is the maximum allowed by the implementation. [Not + used if frerSeqRcvyAlgorithm = Match_Alg (00-80-C2, 1).]"; + reference + "10.4.1.6 of IEEE Std 802.1CB-2017"; + } + leaf reset-timeout { + type uint32; + units "ms"; + description + "An unsigned integer specifying the timeout period in + milliseconds for the RECOVERY_TIMEOUT event."; + reference + "10.4.1.7 of IEEE Std 802.1CB-2017"; + } + leaf invalid-sequence-value { + type uint32; + config false; + description + "A read-only unsigned integer value that cannot be encoded in a + packet as a value for the sequence_number subparameter, i.e., + frerSeqRcvyInvalidSequenceValue is larger than or equal to + RecovSeqSpace."; + reference + "10.4.1.8 of IEEE Std 802.1CB-2017"; + } + leaf take-no-sequence { + type boolean; + default "false"; + description + "A Boolean value specifying whether packets with no + sequence_number subparameter are to be accepted (True) or not + (False). Default value False."; + reference + "10.4.1.9 of IEEE Std 802.1CB-2017"; + } + leaf individual-recovery { + type boolean; + description + "A Boolean value specifying whether this entry describes a + Sequence recovery function or Individual recovery function. + a) True: The entry describes an Individual recovery function. + Packets discarded by the SequenceGenerationAlgorithm will + cause the variable RemainingTicks to be reset. There is no + Latent error detection function associated with this entry, + so frerSeqRcvyLatentErrorDetection cannot also be True. + b) False: The entry describes a Sequence recovery function. + Packets discarded by the SequenceGenerationAlgorithm will + not cause the variable RemainingTicks to be reset."; + reference + "10.4.1.10 of IEEE Std 802.1CB-2017"; + } + leaf latent-error-detection { + type boolean; + description + "A Boolean value indicating whether an instance of the Latent + error detection function is to be instantiated along with the + Base recovery function in this Sequence recovery function or + Individual recovery function. frerSeqRcvyLatentErrorDetection + cannot be set True if frerSeqRcvyIndividualRecovery is also + True; an Individual recovery function does not include a Latent + error detection function."; + reference + "10.4.1.11 of IEEE Std 802.1CB-2017"; + } + container latent-error-detection-parameters { + description + "The objects in the following subclauses are present if and + only if frerSeqRcvyIndividualRecovery is False."; + reference + "10.4.1.12 of IEEE Std 802.1CB-2017"; + leaf difference { + type int32; + description + "An integer specifying the maximum difference between + frerCpsSeqRcvyDiscardedPackets, and the product of + frerCpsSeqRcvyPassedPackets and (frerSeqRcvyLatentErrorPaths + – 1) that is allowed. Any larger difference will trigger the + detection of a latent error by the LatentErrorTest function."; + reference + "10.4.1.12.1 of IEEE Std 802.1CB-2017"; + } + leaf period { + type uint32; + units "ms"; + default "2000"; + description + "The integer number of milliseconds that are to elapse + between instances of running the LatentErrorTest function. An + implementation can have a minimum value for + frerSeqRcvyLatentErrorPeriod, below which it cannot be set, + but this minimum shall be no larger than 1000 ms (1 s). + Default value 2000 (2 s)."; + reference + "10.4.1.12.2 of IEEE Std 802.1CB-2017"; + } + leaf paths { + type uint16; + description + "The integer number of paths over which FRER is operating for + this instance of the Base recovery function and Latent error + detection function."; + reference + "10.4.1.12.3 of IEEE Std 802.1CB-2017"; + } + leaf reset-period { + type uint32; + units "ms"; + default "30000"; + description + "The integer number of milliseconds that are to elapse + between instances of running the LatentErrorReset function. + An implementation can have a minimum value for + LatentErrorReset, below which it cannot be set, but this + minimum shall be no larger than 1000 ms (1 s). Default value + 30000 (30 s)."; + reference + "10.4.1.12.4 of IEEE Std 802.1CB-2017"; + } + } + } + list sequence-identification { + key "port direction-out-facing"; + description + "There is one Sequence identification table per system, and one + entry in the Sequence identification table for each port and + direction for which an instance of the Sequence encode/decode + function is to be created. Each entry in the Sequence + identification table specifies a port and direction on which an + instance of the Sequence encode/decode function is to be + instantiated for a list of Streams."; + reference + "10.5 of IEEE Std 802.1CB-2017"; + leaf-list stream { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + min-elements 1; + description + "A list of stream_handles, corresponding to the values of the + tsnStreamIdHandle objects in the Stream identity table, for + which the system is to use the same encapsulation for the + Sequence encode/decode function."; + reference + "10.5.1.1 of IEEE Std 802.1CB-2017"; + } + leaf port { + type if:interface-ref; + description + "The port on which the system is to place an instance of the + Sequence encode/decode function."; + reference + "10.5.1.2 of IEEE Std 802.1CB-2017"; + } + leaf direction-out-facing { + type dot1cb-sid-types:direction; + description + "An object indicating whether the Sequence encode/decode + function is to be placed on the out-facing (True) or in-facing + (False) side of the port."; + reference + "10.5.1.3 of IEEE Std 802.1CB-2017"; + } + leaf active { + type boolean; + description + "A Boolean value specifying whether this frerSeqEncEntry is + passive (False), and therefore is used only to decode (extract + information from) input packets passing up the protocol stack, + or active (True), and therefore is used both for recognizing + input packets and for encoding output packets being passed down + the protocol stack."; + reference + "10.5.1.4 of IEEE Std 802.1CB-2017"; + } + container encapsulation { + description + "An enumerated value indicating the type of encapsulation used + for this instance of the Sequence encode/decode function. The + type includes an OUI or CID."; + reference + "10.5.1.5 of IEEE Std 802.1CB-2017"; + uses sequence-encode-decode; + } + leaf path-id-lan-id { + type lan-path-id; + description + "A 4-bit integer value to be placed in the PathId field of an + HSR sequence tag or the LanId field of a PRP sequence trailer + added to an output packet. This managed object is used only if: + a) The HSR sequence tag or the PRP sequence trailer is + selected by the frerSeqEncEncapsType object; and + b) frerSeqEncActive is False (passive)"; + reference + "10.5.1.6 of IEEE Std 802.1CB-2017"; + } + } + list stream-split { + key "index"; + description + "There is one Stream split table per system, with one + frerSplitEntry per Stream splitting function per set of + stream_handle values. Each entry in the Stream split table + specifies a port and direction on which an instance of the Stream + splitting function is to be instantiated, and the list of + stream_handles specifying its operation."; + reference + "10.6 of IEEE Std 802.1CB-2017"; + leaf index { + type uint32; + description + "Entry in the Stream split table."; + reference + "10.6 of IEEE Std 802.1CB-2017"; + } + leaf port { + type if:interface-ref; + description + "The port on which the system is to place an instance of the + Stream splitting function performing the stream_handle + translations specified by frerSplitInputIdList and + frerSplitOutputIdList is to be placed."; + reference + "10.6.1.1 of IEEE Std 802.1CB-2017"; + } + leaf direction-out-facing { + type dot1cb-sid-types:direction; + description + "An object indicating whether the instance of the Stream + splitting function performing the stream_handle translations + specified by frerSplitInputIdList and frerSplitOutputIdList is + to be placed on the out-facing (True) or in-facing (False) side + of the port."; + reference + "10.6.1.2 of IEEE Std 802.1CB-2017"; + } + leaf-list input-id { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + min-elements 1; + description + "A list of stream_handles (tsnStreamIdHandle values) that are + to be split."; + reference + "10.6.1.3 of IEEE Std 802.1CB-2017"; + } + leaf-list output-id { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + min-elements 1; + description + "A list of stream_handles (tsnStreamIdHandle values) into which + the input packet is to be split, one copy per item in the + frerSplitOutputIdList."; + reference + "10.6.1.4 of IEEE Std 802.1CB-2017"; + } + } + container autoconfiguration { + if-feature "auto-configuration"; + description + "Container for autoconfiguration managed objects."; + reference + "10.7 of IEEE Std 802.1CB-2017"; + list sequence { + key "index"; + description + "There is one Sequence autoconfiguration table per system. It + contains any number of table entries. No two (or more) entries + in the Sequence autoconfiguration table can have the same + values for frerAutSeqSeqEncaps, frerAutSeqTagged, and + frerAutSeqVlan on any given port. Each frerAutSeqEntry object + relates to a single class of Streams, and specifies how entries + are created (and destroyed) in the Stream identity table, the + Sequence recovery table, and the Sequence identification table."; + reference + "10.7.1 of IEEE Std 802.1CB-2017"; + leaf index { + type uint32; + description + "Entry in the sequence list referencing to a single class of + Streams."; + } + container sequence-encapsulation { + description + "An enumerated value, specifying which Sequence encode/decode + function, and therefore, which type sequence_number encoding, + is to be recognized for the purposes of Autoconfiguration."; + reference + "10.7.1.1.1 of IEEE Std 802.1CB-2017"; + uses sequence-encode-decode; + } + leaf-list receive-port { + type if:interface-ref; + min-elements 1; + description + "The list of ports to which this frerAutSeqEntry applies, and + on which Stream identification functions, Sequence + encode/decode functions, and Individual recovery functions + are to be autocreated."; + reference + "10.7.1.1.2 of IEEE Std 802.1CB-2017"; + } + leaf tagged { + type enumeration { + enum tagged { + value 1; + description + "A frame must have a VLAN tag to be matched."; + } + enum priority { + value 2; + description + "A frame must be untagged, or have a VLAN tag with a VLAN + ID = 0 to be matched."; + } + enum all { + value 3; + description + "A frame is matched whether tagged or not."; + } + } + description + "An enumerated value indicating whether packets to be matched + by this frerAutSeqEntry are permitted to have a VLAN tag."; + reference + "10.7.1.1.3 of IEEE Std 802.1CB-2017"; + } + leaf-list vlan { + type dot1qtypes:vlanid; + description + "A list of vlan_identifiers for the packet to match. A null + list matches all vlan_identifiers."; + reference + "10.7.1.1.4 of IEEE Std 802.1CB-2017"; + } + leaf-list recovery-port { + type if:interface-ref; + min-elements 1; + description + "The list of ports on which Sequence recovery functions are + to be autocreated by this frerAutSeqEntry."; + reference + "10.7.1.1.5 of IEEE Std 802.1CB-2017"; + } + leaf destruction-interval { + type uint64; + units "ms"; + default "86400000"; + description + "An integer number of milliseconds after which an idle set of + functions created by this frerAutSeqEntry can be destroyed. A + value of 0 indicates that idle autoconfigured functions are + not to be destroyed. Default value is 86 400 000 decimal (one + day)."; + reference + "10.7.1.1.6 of IEEE Std 802.1CB-2017"; + } + leaf reset-interval { + type uint64; + units "ms"; + description + "The value used to fill frerSeqRcvyResetMSec when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.7 of IEEE Std 802.1CB-2017"; + } + container algorithm { + description + "The value used to fill frerSeqRcvyAlgorithm when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.8 of IEEE Std 802.1CB-2017"; + uses sequence-recovery-algorithm; + } + leaf history-length { + type sequence-history-length; + default "2"; + description + "The value used to fill frerSeqRcvyHistoryLength when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.9 of IEEE Std 802.1CB-2017"; + } + leaf create-individual { + type boolean; + description + "A Boolean value. If True, the receipt of a packet that + triggers the autoconfiguration of a new tsnStreamIdEntry also + triggers the instantiation of a frerSeqRcvyEntry for an + Individual recovery function."; + reference + "10.7.1.1.10 of IEEE Std 802.1CB-2017"; + } + leaf create-recovery { + type boolean; + description + "A Boolean value. If True, the receipt of a packet that + triggers the autoconfiguration of a new tsnStreamIdEntry can + also trigger the instantiation of a frerSeqRcvyEntry for a + Sequence recovery function."; + reference + "10.7.1.1.11 of IEEE Std 802.1CB-2017"; + } + leaf latent-error-detection { + type boolean; + description + "A Boolean value. If True, the autoconfiguration of a new + Sequence recovery function also creates an associated Latent + Error Detection function."; + reference + "10.7.1.1.12 of IEEE Std 802.1CB-2017"; + } + leaf latent-error-difference { + type int32; + description + "The value used to fill frerSeqRcvyLatentErrorDifference when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.13 of IEEE Std 802.1CB-2017"; + } + leaf latent-error-period { + type uint32; + units "ms"; + default "2000"; + description + "The value used to fill frerSeqRcvyLatentErrorPeriod when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.14 of IEEE Std 802.1CB-2017"; + } + leaf latent-error-reset-period { + type uint32; + units "ms"; + default "30000"; + description + "The value used to fill frerSeqRcvyLatentResetPeriod when + autoconfiguring entries in the Sequence recovery table."; + reference + "10.7.1.1.15 of IEEE Std 802.1CB-2017"; + } + } + list output { + key "index"; + description + "There is one Output autoconfiguration table per system. It + contains any number of frerAutOutEntry objects, each relating + to a single class of Streams specifying how active entries are + created in the Sequence identification table. No two (or more) + entries in the Output autoconfiguration table can include the + same port in their frerAutSeqReceivePortList objects."; + reference + "10.7.2 of IEEE Std 802.1CB-2017"; + leaf index { + type uint32; + description + "Entry in the output list referencing to a single class of + Streams."; + } + leaf-list port { + type if:interface-ref; + min-elements 1; + description + "The list of ports to which this frerAutOutEntry applies, and + on which active Sequence encode/decode functions are to be + autocreated."; + reference + "10.7.2.1.1 of IEEE Std 802.1CB-2017"; + } + container encapsulation { + description + "An enumerated value, specifying which Sequence encode/decode + function, and therefore, which type sequence_number encoding, + is to be used for autoconfigured Streams on the ports in + frerAutSeqReceivePortList."; + reference + "10.7.2.1.2 of IEEE Std 802.1CB-2017"; + uses sequence-encode-decode; + } + leaf lan-path-id { + type lan-path-id; + description + "An integer specifying a path or LAN. If and only if + frerAutOutEncaps specifies HSR or PRP frerAutOutLanPathId + specifies the LanId or PathId value to be inserted into the + HSR sequence tag or PRP sequence trailer of autoconfigured + packets transmitted on the ports in + frerAutSeqReceivePortList."; + reference + "10.7.2.1.3 of IEEE Std 802.1CB-2017"; + } + } + } + } + augment "/dot1cb-sid:stream-identity" { + if-feature "auto-configuration"; + description + "Two managed objects augment each tsnStreamIdEntry in the Stream + identity table when Managed objects for autoconfiguration is + implemented."; + reference + "10.2 of IEEE Std 802.1CB-2017"; + leaf auto-configured { + type boolean; + config false; + description + "A read-only Boolean value, supplied by the system, specifying + whether this entry was created explicitly (False) or via the + Sequence autoconfiguration table."; + reference + "10.2.1 of IEEE Std 802.1CB-2017"; + } + leaf lan-path-id { + type lan-path-id; + description + "An integer specifying a path or LAN. If and only if a packet + matches an entry in the Sequence identification table that + specifies HSR or PRP in its frerSeqEncEncapsType object, + tsnStreamIdLanPathId specifies the LanId or PathId value that + must be matched for this tsnStreamIdEntry to apply. A value of –1 + indicates that the LanId or PathId are to be ignored."; + reference + "10.2.2 of IEEE Std 802.1CB-2017"; + } + } + augment "/if:interfaces/if:interface/if:statistics" { + description + "The following counters are the counters for frame replication and + elimination for reliability. All counters are unsigned integers. If + used on links faster than 650 000 000 bits per second, they shall + be 64 bits in length to ensure against excessively short wrap + times. + + A Stream identification component shall implement the first two + counters provided in the stream-identification YANG module per-port + counters, input-packets and output-packets; the remainder of the + counters in the frer YANG module module are optional for such a + system."; + reference + "10.8 of IEEE Std 802.1CB-2017 + 10.9 of IEEE Std 802.1CB-2017"; + container frer { + description + "This container contains the per-port as well as the + per-port-per-stream counters for frame replication and + elimination for reliability."; + reference + "10.8 of IEEE Std 802.1CB-2017 + 10.9 of IEEE Std 802.1CB-2017"; + container per-port-counters { + config false; + description + "Contains the per-port counters for frame replication and + elimination for reliability. The following counters are + instantiated for each port on which any of the Stream + identification function, Sequencing function, or Sequence + encode/decode function is configured. The counters are indexed + by port number."; + leaf rx-passed-pkts { + type uint64; + config false; + description + "The frerCpSeqRcvyPassedPackets counter is incremented once + for each packet passed up the stack by the + VectorRecoveryAlgorithm or MatchRecoveryAlgorithm. Its value + equals the sum (modulo the size of the counters) of all of + the frerCpsSeqRcvyPassedPackets counters on this same port."; + reference + "10.9.1 of IEEE Std 802.1CB-2017"; + } + leaf rx-discarded-pkts { + type uint64; + config false; + description + "The frerCpSeqRcvyDiscardPackets counter is incremented once + for each packet discarded due to a duplicate sequence number + or for being a rogue packet by any VectorRecoveryAlgorithm or + MatchRecoveryAlgorithm on this port. Its value equals the sum + (modulo the size of the counters) of all of the + frerCpsSeqRcvyRoguePackets and frerCpsSeqRcvyDiscardedPackets + counters on this same port."; + reference + "10.9.2 of IEEE Std 802.1CB-2017"; + } + leaf encode-errored-pkts { + type uint64; + config false; + description + "The frerCpSeqEncErroredPackets counter is incremented once + each time the Sequence encode/decode function receives a + packet that it is unable to decode successfully. Its value + equals the sum (modulo the size of the counters) of all of + the frerCpsSeqEncErroredPackets counters on this same port."; + reference + "10.9.2 of IEEE Std 802.1CB-2017"; + } + } + list per-port-per-stream-counters { + key "direction-out-facing handle"; + config false; + description + "Contains the per-port-per-stream counters for frame + replication and elimination for reliability. The following + counters are instantiated for each port on which any of the + Stream identification function, Sequencing function, or + Sequence encode/decode function is configured. The counters are + indexed by port number, facing (in-facing or out-facing), and + stream_handle value."; + reference + "10.8 of IEEE Std 802.1CB-2017"; + leaf direction-out-facing { + type dot1cb-sid-types:direction; + description + "An object indicating whether the counters apply to + out-facing (True) or in-facing (False)."; + } + leaf handle { + type leafref { + path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; + } + description + "The according tsnStreamIdHandle for the counters."; + } + leaf generation-reset { + type uint64; + config false; + description + "The frerCpsSeqGenResets counter is incremented each time the + SequenceGenerationReset function is called."; + reference + "10.8.2 of IEEE Std 802.1CB-2017"; + } + leaf rx-out-of-order-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyOutOfOrderPackets counter is incremented + once for each packet accepted out-of-order by the + VectorRecoveryAlgorithm or MatchRecoveryAlgorithm. + Out-of-order means that the packet’s sequence number is not + one more than the previous packet received."; + reference + "10.8.3 of IEEE Std 802.1CB-2017"; + } + leaf rx-rogue-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyRoguePackets counter is incremented once + for each packet discarded by the VectorRecoveryAlgorithm + because its sequence_number subparameter is more than + frerSeqRcvyHistoryLength from RecovSeqNum."; + reference + "10.8.4 of IEEE Std 802.1CB-2017"; + } + leaf rx-passed-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyPassedPackets counter is incremented once + for each packet passed up the stack by the + VectorRecoveryAlgorithm or MatchRecoveryAlgorithm."; + reference + "10.8.5 of IEEE Std 802.1CB-2017"; + } + leaf rx-discarded-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyDiscardedPackets counter is incremented + once for each packet discarded due to a duplicate sequence + number by the VectorRecoveryAlgorithm or + MatchRecoveryAlgorithm."; + reference + "10.8.6 of IEEE Std 802.1CB-2017"; + } + leaf rx-lost-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyLostPackets counter is incremented once + for each packet lost by the VectorRecoveryAlgorithm. A packet + is counted as lost if its sequence number is not received on + any ingress port. + + NOTE—If per-source sequence numbering is used, + frerCpsSeqRcvyLostPackets can count, as lost, packets that + were sent to another destination, but not lost."; + reference + "10.8.7 of IEEE Std 802.1CB-2017"; + } + leaf rx-tagless-pkts { + type uint64; + config false; + description + "The frerCpsSeqRcvyTaglessPackets counter is incremented once + for each packet received by the VectorRecoveryAlgorithm that + has no sequence_number subparameter."; + reference + "10.8.8 of IEEE Std 802.1CB-2017"; + } + leaf rx-resets { + type uint64; + config false; + description + "The frerCpsSeqRcvyResets counter is incremented once each + time the SequenceRecoveryReset function is called."; + reference + "10.8.9 of IEEE Std 802.1CB-2017"; + } + leaf rx-latent-error-resets { + type uint64; + config false; + description + "The frerCpsSeqRcvyLatentErrorResets counter is incremented + once each time the LatentErrorReset function is called."; + reference + "10.8.10 of IEEE Std 802.1CB-2017"; + } + leaf encode-errored-pkts { + type uint64; + config false; + description + "The frerCpsSeqEncErroredPackets counter is incremented once + each time the Sequence encode/decode function receives a + packet that it is unable to decode successfully."; + reference + "10.8.11 of IEEE Std 802.1CB-2017"; + } + } + } + } +} diff --git a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-mask-and-match.yang b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-mask-and-match.yang new file mode 100755 index 000000000..cff6bb83c --- /dev/null +++ b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-mask-and-match.yang @@ -0,0 +1,242 @@ +module ieee802-dot1cb-mask-and-match { + yang-version 1.1; + namespace "urn:ieee:std:802.1CB:yang:ieee802-dot1cb-mask-and-match"; + prefix dot1cb-mm-sid; + + import ieee802-dot1cb-stream-identification { + prefix dot1cb-sid; + } + + import ieee802-dot1cb-stream-identification-types { + prefix dot1cb-sid-types; + } + + import ieee802-types { + prefix ieee802; + } + + import ietf-interfaces { + prefix if; + } + + organization + "Institute of Electrical and Electronics Engineers"; + 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 the Mask-and-match + Stream identification function from IEEE Std 802.1CBdb-2021. + Augmentation to the ieee802-dot1cb-stream-identification module. + This YANG data model conforms to the Network Management Datastore + Architecture defined in RFC 8342. Copyright (C) IEEE (2022). This + version of this YANG module is part of IEEE Std 802.1CBdb-2021; + see the draft itself for full legal notices."; + + revision 2021-12-09 { + description + "Published as part of IEEE Std 802.1CBdb-2021. + Initial version."; + reference + "IEEE Std 802.1CBdb-2021, Frame Replication and Elimination for + Reliability - Extended Stream identification functions."; + } + + typedef msdu-mask-match-hex-string { + type string { + pattern '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){1,1983}'; + } + description + "Hex string representing a series of 2 to 1984 octets, each + separated by a '-' separator"; + } + + typedef msdu-mask-length-type { + type uint16 { + range "2..1984"; + } + description + "unsigned integer between 2 and 1984"; + } + + identity mask-and-match-stream-identification { + base dot1cb-sid-types:strid-idty; + description + "Mask-and-match Stream Identification"; + } + + augment "/dot1cb-sid:stream-identity/dot1cb-sid:parameters" { + description + "Controlling parameters for the Mask-and-match Stream + identification method"; + container mask-and-match-stream-identification { + description + "When instantiating an instance of the Mask-and-match Stream + identification function (6.8), the parameters in the following + subclauses replace the tsnStreamIdParameters managed object + (9.1.1.7)."; + reference + "9.1.6 of IEEE Std 802.1CBdb-2021"; + container identification-type { + config false; + description + "The identification type indicating the method used to + identify packets belonging to the Stream. The + identification type contains a type number and an + Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the + identification method."; + reference + "9.1.1.6 of IEEE Std 802.1CB-2017"; + leaf type-number { + type dot1cb-sid-types:stream-id-function; + default "mask-and-match"; + description + "The Stream identification type used for the Mask-and-match + Stream identification method."; + reference + "9.1.1.6 of IEEE Std 802.1CBdb-2021"; + } + leaf oui-cid { + type string { + pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; + } + default "00-80-C2"; + description + "The Organizationally Unique Identifier (OUI) or Company ID + (CID) to identify the organization defining the + identification method. For identification methods defined + in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; + reference + "9.1.1.6 of IEEE Std 802.1CB-2017"; + } + } + leaf destination-mac-mask { + type ieee802:mac-address; + description + "Specifies a 48-bit mask. A bitwise AND operation is performed + between destination-mac-mask and the + destination_address_parameter passed by the ISS indication + primitive to the Mask-and-match Stream identification + function. The resulting 48-bit information is the masked + destination_address that is used as input for the instance of + the Mask-and-match Stream identification function. If + destination-mac-mask has a value of 0, the destination-address + parameter is ignored."; + reference + "9.1.6.1 of IEEE Std 802.1CBdb-2021"; + } + leaf destination-mac-match { + when '../destination-mac-mask'; + type ieee802:mac-address; + description + "Specifies the 48-bit value of the masked destination_address, + to be matched by the instance of the Mask-and-match Stream + identification function."; + reference + "9.1.6.2 of IEEE Std 802.1CBdb-2021"; + } + leaf source-mac-mask { + type ieee802:mac-address; + description + "Specifies a 48-bit mask. A bitwise AND operation is performed + between source-mac-mask and the source_address_parameter + passed by the ISS indication primitive to the Mask-and-match + Stream identification function. The resulting 48-bit + information is the masked source_address that is used as input + for the instance of the Mask-and-match Stream identification + function. If source-mac-mask has a value of 0, the + source-address parameter is ignored."; + reference + "9.1.6.3 of IEEE Std 802.1CBdb-2021"; + } + leaf source-mac-match { + when '../source-mac-mask'; + type ieee802:mac-address; + description + "Specifies the 48-bit value of the masked source_address, to be + matched by the instance of the Mask-and-match Stream + identification function."; + reference + "9.1.6.4 of IEEE Std 802.1CBdb-2021"; + } + leaf msdu-mask-length { + type msdu-mask-length-type; + description + "Integer value that specifies the length, in octets, of + tsnCpeMmIdMsduMask (9.1.6.6) and tsnCpeMmIdMsduMatch + (9.1.6.7). The behavior of the Mask-and-match Stream + identification function is undefined on any port where the + value of tsnCpeMmIdMsduMaskLength exceeds the per-port + mac_service_data_unit mask maximum length (9.4.1). + tsnCpeMmIdMsduMaskLength has a minimum value of 2. If the + length of the frame's mac_service_data_unit is shorter than + tsnCpeMmIdMsduMaskLength, then the identification fails."; + reference + "9.1.6.5 of IEEE Std 802.1CBdb-2021"; + } + leaf msdu-mask { + type msdu-mask-match-hex-string; + description + "Specifies a mask of msdu-mask-length bytes. A bitwise AND + operation is performed between the msdu-mask-length first + bytes of the mac_service_data_unit parameter passed by the ISS + indication primitive to the Mask-and-match Stream + identification function. The resulting 'msdu-mask-length'-byte + information is the masked mac_service_data_unit that is used + as input for the instance of the Mask-and-match Stream + identification function. If msdu-mask has a value of 0, the + mac-service-data-unit parameter is ignored."; + reference + "9.1.6.6 of IEEE Std 802.1CBdb-2021"; + } + leaf msdu-match { + when '../msdu-mask'; + type msdu-mask-match-hex-string; + description + "Specifies the 'msdu-mask-length'-byte value of the masked + mac_service_data_unit to be matched by the instance of the + Mask-and-match Stream identification function"; + reference + "9.1.6.7 of IEEE Std 802.1CBdb-2021"; + } + } + } + + list per-port-msdu-mask-max-length { + key "port-name"; + description + "Table of the per-port maximum msdu mask lengths"; + reference + "9.4.1 of IEEE Std 802.1CBdb-2021"; + leaf port-name { + type if:interface-ref; + description + "Identification of the port"; + reference + "9.4.1 of IEEE Std 802.1CBdb-2021"; + } + leaf port-msdu-mask-max-length { + type msdu-mask-length-type; + config false; + description + "tsnPpMmIdMsduMaskMaxLength is a read-only variable defined for + each port the Mask-and-match Stream identification function is + to be ran on. It defines the maximum length a + mac_service_data_unit mask can have. It is an integer value, + in octets, with a minimum value of 2."; + reference + "9.4.1 of IEEE Std 802.1CBdb-2021"; + } + } +} diff --git a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification-types.yang b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification-types.yang new file mode 100755 index 000000000..915b190c8 --- /dev/null +++ b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification-types.yang @@ -0,0 +1,99 @@ +module ieee802-dot1cb-stream-identification-types { + yang-version "1.1"; + namespace + urn:ieee:std:802.1Q:yang:ieee802-dot1cb-stream-identification-types; + prefix dot1cb-sid-types; + organization + "Institute of Electrical and Electronics Engineers"; + 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 the Stream identification from IEEE + Std 802.1CB-2017. This YANG data model conforms to the Network + Management Datastore Architecture defined in RFC 8342. Copyright (C) + IEEE (2022). This version of this YANG module is part of IEEE Std + 802.1CBdb-2021; see the standard itself for full legal notices."; + revision 2021-12-09 { + description + "Published as part of IEEE Std 802.1CBdb-2021. + Added the Stream identification type used for the Mask-and-match + identification method."; + reference + "IEEE Std 802.1CBdb-2021, Frame Replication and Elimination for + Reliability - Extended Stream identification functions."; + } + revision 2021-12-08 { + description + "Published as part of IEEE Std 802.1CBcv-2021. Initial version."; + reference + "IEEE Std 802.1CBcv-2021, Frame Replication and Elimination for + Reliability - FRER YANG Data Model and Management Information Base + Module."; + } + identity strid-idty { + description + "Root identity for all Stream identification types"; + } + typedef direction { + type boolean; + description + "A boolean object indicating whether the direction is out-facing + (True) or in-facing (False)."; + reference + "10.4.1.3 of IEEE Std 802.1CB-2017"; + } + typedef stream-id-function { + type enumeration { + enum reserved { + value 0; + description + "Reserved value."; + } + enum null-stream { + value 1; + description + "The Stream identification type used for the Null Stream + identification method."; + } + enum smac-vlan { + value 2; + description + "The Stream identification type used for the Source MAC and + VLAN Stream identification method."; + } + enum dmac-vlan { + value 3; + description + "The Stream identification type used for the Active Destination + MAC and VLAN Stream identification method."; + } + enum ip { + value 4; + description + "The Stream identification type used for the IP Stream + identification method."; + } + enum mask-and-match { + value 5; + description + "The Stream identification type used for the Mask-and-match + identification method."; + } + } + description + "An enumerated value indicating the method used to identify packets + belonging to a Stream."; + reference + "9.1.1.6 of IEEE Std 802.1CBdb-2021"; + } +} diff --git a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification.yang b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification.yang index e4fb15a3a..1337c3a48 100755 --- a/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification.yang +++ b/standard/ieee/draft/802.1/CB-2017-rev/ieee802-dot1cb-stream-identification.yang @@ -37,7 +37,7 @@ module ieee802-dot1cb-stream-identification { Management Datastore Architecture defined in RFC 8342. Copyright (C) IEEE (2021). This version of this YANG module is part of IEEE Std 802.1CBcv; see the standard itself for full legal notices."; - revision 2025-12-12 { + revision 2026-03-06 { description "Published as part of IEEE Std 802.1CB-2017-Rev. Initial version."; reference @@ -102,7 +102,8 @@ module ieee802-dot1cb-stream-identification { range "0 .. 4095"; } description - "Specifies the vlan_identifier."; + "Specifies the vlan_identifier. A value of 0 indicates that the + vlan_identifier carries a special meaning."; } list stream-identity { key "index"; @@ -278,7 +279,9 @@ module ieee802-dot1cb-stream-identification { description "Specifies the vlan_identifier parameter that identifies a packet in an EISS indication primitive to the Null Stream - identification function."; + identification function. A value of 0 indicates that the + vlan_identifier parameter is ignored on EISS indication + primitives."; reference "9.1.2.3 of IEEE Std 802.1CB-2017"; } @@ -354,7 +357,9 @@ module ieee802-dot1cb-stream-identification { description "Specifies the vlan_identifier parameter that identifies a packet in an EISS indication primitive to the Source MAC and - VLAN Stream identification function."; + VLAN Stream identification function. A value of 0 indicates + that the vlan_identifier parameter is ignored on EISS + indication primitives."; reference "9.1.3.3 of IEEE Std 802.1CB-2017"; } @@ -444,7 +449,9 @@ module ieee802-dot1cb-stream-identification { identification function, and the vlan_identifier that identifies an input packet in an EISS indication primitive to the Active Destination MAC and VLAN Stream - identification function."; + identification function. A value of 0 indicates that the + vlan_identifier parameter is ignored on EISS indication + primitives."; reference "9.1.4.3 of IEEE Std 802.1CB-2017"; } @@ -586,7 +593,9 @@ module ieee802-dot1cb-stream-identification { type vlan-identifier-type; description "Specifies the vlan_identifier parameter that identifies a - packet in an EISS indication primitive."; + packet in an EISS indication primitive. A value + of 0 indicates that the vlan_identifier parameter is ignored + on EISS indication primitives."; reference "9.1.5.3 of IEEE Std 802.1CB-2017"; } diff --git a/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap-bridge.yang b/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap-bridge.yang new file mode 100755 index 000000000..b0bd00e80 --- /dev/null +++ b/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap-bridge.yang @@ -0,0 +1,68 @@ +module ieee802-dot1dd-rap-bridge { + yang-version 1.1; + namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1dd-rap-bridge"; + prefix rap-bridge; + + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-bridge { + prefix dot1q; + } + import ieee802-dot1dd-rap { + prefix rap; + } + + 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 (2025). + + This version of this YANG module is part of IEEE Std 802.1DD; see the + standard itself for full legal notices."; + + revision 2026-04-20 { + description + "Published as part of IEEE Std 802.1DD-20xx. + + The following reference statement identifies each referenced IEEE + Standard as updated by applicable amendments."; + reference + "IEEE Std 802.1DD Resource Allocation Protocol: + IEEE Std 802.1Q Bridges and Bridged Networks: + IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, + IEEE Std 802.1Qcw-2023, IEEE Std 802.1Qcj-2023, + IEEE Std 802.1Qdj-2024, IEEE Std 802.1Qdx-2024, + IEEE Std 802.1Qdy-2024."; + } + + augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { + description + "Augment Bridge Port with RAP configuration"; + reference + "???."; + uses rap:rap-component-parameters; + } + augment "/if:interfaces/if:interface/dot1q:bridge-port" { + description + "Augment Bridge Port with RAP configuration"; + reference + "6 of IEEE Std 802.1DD."; + uses rap:rap-port-parameters; + } +} diff --git a/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap.yang b/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap.yang index e4f8742bb..fc9f20436 100644 --- a/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap.yang +++ b/standard/ieee/draft/802.1/DD/ieee802-dot1dd-rap.yang @@ -3,15 +3,9 @@ module ieee802-dot1dd-rap { namespace "urn:ieee:std:802.1DD:yang:ieee802-dot1dd-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; } @@ -42,7 +36,7 @@ module ieee802-dot1dd-rap { This version of this YANG module is part of IEEE Std 802.1DD; see the standard itself for full legal notices."; - revision 2026-01-16 { + revision 2026-04-20 { description "Published as part of IEEE Std 802.1DD-202x. @@ -329,7 +323,7 @@ module ieee802-dot1dd-rap { } } - augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { + grouping rap-component-parameters { description "Augment Bridge with RAP configuration."; reference @@ -501,7 +495,7 @@ module ieee802-dot1dd-rap { } } - augment "/if:interfaces/if:interface/dot1q:bridge-port" { + grouping rap-port-parameters { description "Augment Bridge Port with RAP configuration"; reference diff --git a/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x-types.yang b/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x-types.yang index fa40fb43e..6b2963af0 100644 --- a/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x-types.yang +++ b/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x-types.yang @@ -32,9 +32,9 @@ module ieee802-dot1x-types { restarting) authentication exchanges and MKA operation, based on a data model described in a set of YANG modules."; - revision 2025-07-22 { + revision 2025-11-20 { description - "Fixed missing reference.."; + "Added statement to indicate YANG version 1.1"; reference "IEEE Std 802.1X-2020, Port-Based Network Access Control."; } diff --git a/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x.yang b/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x.yang index 8cbc643f0..a64453cdf 100644 --- a/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x.yang +++ b/standard/ieee/draft/802.1/X-cor1/ieee802-dot1x.yang @@ -1,1762 +1,1763 @@ -module ieee802-dot1x { - yang-version "1.1"; - namespace "urn:ieee:std:802.1X:yang:ieee802-dot1x"; - prefix "dot1x"; - - import ieee802-types { prefix "ieee"; } - import ietf-yang-types { prefix "yang"; } - import ietf-interfaces { prefix "if"; } - import ietf-system { prefix "sys"; } - import iana-if-type { prefix "ianaift"; } - import ieee802-dot1x-types { prefix "dot1x-types"; } - - organization - "Institute of Electrical and Electronics Engineers"; - - 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-L@LISTSERV.IEEE.ORG"; - - description - "Port-based network access control allows a network administrator - to restrict the use of IEEE 802 LAN service access points (ports) - to secure communication between authenticated and authorized - devices. IEEE Std 802.1X specifies an architecture, functional - elements, and protocols that support mutual authentication - between the clients of ports attached to the same LAN and secure - communication between the ports. The following control allows a - port to be reinitialized, terminating (and potentially - restarting) authentication exchanges and MKA operation, based on - a data model described in a set of YANG modules."; - - revision 2025-07-21 { - description - "Added derived-from-or-self function to the when statement."; - reference - "IEEE Std 802.1X-2020, Port-Based Network Access Control."; - } - - revision 2020-02-18 { - description - "Updated Contact information."; - reference - "IEEE Std 802.1X-2020, Port-Based Network Access Control."; - } - - revision 2019-06-12 { - description - "Updates based on comment resolution of the WG ballot of - P802.1X-Rev/D1.0."; - reference - "IEEE Std 802.1X-2020, Port-Based Network Access Control."; - } - - grouping nid-group { - description - "The PAE NID Group configuration and operational information."; - list pae-nid-group { - key "nid"; - description - "A list that contains the configuration and operational - nodes for the network announcement information for the - Logon Process."; - leaf nid { - type dot1x-types:pae-nid; - description - "Identification of the network or network service."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - leaf use-eap { - type enumeration { - enum never { - description - "Never."; - } - enum immediate { - description - "Immediately, concurrently with the use of MKA with any - cached CAK(s)."; - } - enum mka-fail { - description - "Not until MKA has failed, if a prior CAK has been - cached."; - } - } - default "immediate"; - description - "Determines when the Logon Process will initiate EAP, if - the Supplicant and or Authenticator are enabled, and takes - one of the above values."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - leaf unauth-allowed { - type enumeration { - enum never { - description - "Never."; - } - enum immediate { - description - "Immediately, independently of any current or future - attempts to authenticate using the PAE or MKA."; - } - enum auth-fail { - description - "Not until an attempt has been made to authenticate - using EAP, unless neither the supplicant nor the - authenticator is enabled, and MKA has attempted to use - any cached CAK (unless the KaY is not enabled)."; - } - } - default "immediate"; - description - "Determines when the Logon Process will tell the CP state - machine to provide unauthenticated connectivity, and takes - one of the above values."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - leaf unsecure-allowed { - type enumeration { - enum never { - description - "Never."; - } - enum immediate { - description - "Immediately, to provide connectivity concurrently with - the use of MKA with any CAK acquired through EAP."; - } - enum mka-fail { - description - "Not until MKA has failed, or is not enabled."; - } - enum mka-server { - description - "Only if directed by the MKA server."; - } - } - default "immediate"; - description - "Determines when the Logon Process will tell the CP state - machine to provide authenticated but unsecured - connectivity, takes one of the above values."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - leaf unauthenticated-access { - type enumeration { - enum no-access { - description - "Other than to authentication services."; - } - enum fallback-access { - description - "Limited access can be provided after authentication - failure."; - } - enum limited-access { - description - "Immediate limited access is available without - authentication."; - } - enum open-access { - description - "Immediate access is available without - authentication."; - } - } - default "no-access"; - description - "Unauthenticated access capabilities provided by the NID."; - reference - "IEEE 802.1X-2020 Clause 10.1"; - } - leaf access-capabilities { - type dot1x-types:pae-nid-capabilities; - description - "Authentication and protection capabilities supported for - the NID."; - reference - "IEEE 802.1X-2020 Clause 10.1"; - } - - leaf kmd { - type dot1x-types:pae-kmd; - config false; - description - "The Key Management Domain for the NID."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - } - } - - grouping port-capabilities { - description - "Per port PAE feature capabilities."; - leaf supp { - type boolean; - description - "Indicates if PACP EAP Supplicant is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf auth { - type boolean; - description - "Indicates if PACP EAP Authenticator is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf mka { - type boolean; - description - "Indicates if MKA is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf macsec { - type boolean; - description - "Indicates if MACsec on the Controlled port is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf announcements { - type boolean; - description - "Indicates if the ability to send EAPOL announcements is - supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf listener { - type boolean; - description - "Indicates if the ability to use received EAPOL - announcements is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf virtual-ports { - type boolean; - description - "Indicates if virtual ports for a real port is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf in-service-upgrades { - type boolean; - description - "Indicates if MKA in-service upgrades is supported."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - } - - /* --------------------------------------------------- - * Configuration objects used by 802.1X YANG module - * --------------------------------------------------- - */ - augment "/sys:system" { - description - "Augment system with 802.1X PAE System specific configuration - nodes."; - container pae-system { - description - "Contains all 802.1X PAE System specific related - configuration and operational data."; - leaf name { - type string { - length "1..255"; - } - description - "The name which uniquely identifies the PAE System."; - } - leaf system-access-control { - type enumeration { - enum disabled { - description - "Deletes any virtual ports previously instantiated, and - terminates authentication exchanges and MKA - operation."; - } - enum enabled { - description - "Enables PAE system access control."; - } - } - description - "Setting this control to disabled deletes any virtual ports - previously instantiated, and terminates authentication - exchanges and MKA operation. Each real port PAE behaves as - if enabledVirtualPorts was clear, the PAEs Supplicant, - Authenticator, and KaY as if their enabled controls were - clear, and Logon Process(es) as if unauthAllowed was - Immediate. Announcements can be transmitted (subject to - other controls), both periodically and in response to - announcement requests (conveyed by EAPOL-Starts or - EAPOL-Announcement-Reqs) but are sent with a single NID - Set, with a null NID, and the Access Information TLV (and - no other) with an pae-access-status of No Access, - accessRequested false, OpenAccess, and no - accessCapabilities. The control variable settings for each - real port PAE are unaffected, and will be used once - systemAccessControl is set to enabled."; - reference - "IEEE 802.1X-2020 Clause 12.9.1"; - } - leaf system-announcements { - type enumeration { - enum disabled { - description - "Causes each PAE to behave as if enabled were clear - for the PAE's Announcement functionality."; - } - enum enabled { - description - "Enables PAE system announcements."; - } - } - description - "Setting this control to Disabled causes each PAE to behave - as if enabled were clear for the PAE's Announcement - functionality. The independent controls for each PAE apply - if systemAnnouncements is Enabled."; - reference - "IEEE 802.1X-2020 Clause 12.9.1"; - } - leaf eapol-protocol-version { - type uint8; - config false; - description - "The EAPOL protocol version for this system."; - reference - "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3"; - } - leaf mka-version { - type uint8; - config false; - description - "The MKA protocol version for this system."; - reference - "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3"; - } - leaf-list pae { - type if:interface-ref; - config false; - description - "List of PAE references."; - } - } - } - - /* - * Port Authentication Entity (PAE) Nodes - */ - augment "/if:interfaces/if:interface" { - when "derived-from-or-self(if:type,'ianaift:ethernetCsmacd') or " + - "derived-from-or-self(if:type,'ianaift:ilan') or " + - "derived-from-or-self(if:type,'ianaift:macSecControlledIF') or " + - "derived-from-or-self(if:type,'ianaift:ptm') or " + - "derived-from-or-self(if:type,'ianaift:bridge')" { - description - "Applies to the Controlled Port of SecY or PAC shim or - Ethernet related Interface."; - } - description - "Augment interface model with PAE configuration and - operational nodes."; - reference - "IEEE 802.1AE Clause 11.7 and IEEE 802.1X-2020 Clause 6.5 and - Clause 13.3.2"; - container pae { - description - "Contains PAE configuration and operational related nodes."; - leaf pae-system { - type leafref { - path "/sys:system/dot1x:pae-system/dot1x:name"; - } - description - "The PAE system that this PAE is a member of."; - } - leaf vp-enable { - when "../port-type = 'real-port' and - ../port-capabilities/virtual-ports = 'true'" { - description - "Applies when port is Real Port and virtual port - capabilities are supported."; - } - type boolean; - default "false"; - description - "A real port's PAE may be configured to create virtual - ports to support multi-access LANs provided that MKA and - MACsec operation is enabled for that port."; - reference - "IEEE 802.1X-2020 Clause 12.7"; - } - container port-capabilities { - description - "Per port PAE feature capabilities."; - uses port-capabilities; - } - - leaf port-name { - type if:interface-ref; - config false; - description - "Each PAE is uniquely identified by a port name."; - } - leaf port-number { - type dot1x-types:pae-if-index; - config false; - description - "Each PAE is uniquely identified by a port number. The - port number used is unique amongst all port names for the - system, and directly or indirectly identifies the - Uncontrolled Port that supports the PAE. If the PAE has - been dynamically instantiated to support an existing or - potential virtual port, this portNumber, the - uncontrolledPortNumber and the controlledPortNumber are - allocated by the real ports PAE, and this portNumber is the - uncontrolledPortNumber. If the PAE supports a real port, - this portNumber is the commonPortNumber for the associated - PAC or SecY."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf controlled-port-name { - type if:interface-ref; - config false; - description - "Each PAE is uniquely identified by a port name."; - } - leaf controlled-port-number { - type dot1x-types:pae-if-index; - config false; - description - "The port for the associated PAC or SecYs Controlled - Port."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf uncontrolled-port-name { - type if:interface-ref; - config false; - description - "The uncontrolled port name reference."; - } - leaf uncontrolled-port-number { - type dot1x-types:pae-if-index; - config false; - description - "The port for the associated PAC or SecYs Uncontrolled - Port."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf common-port-name { - type if:interface-ref; - config false; - description - "The common port name reference."; - } - leaf common-port-number { - type dot1x-types:pae-if-index; - config false; - description - "The port for the associated PAC or SecYs Common Port. All - the virtual ports created for a given real port share the - same Common Port and commonPortNumber."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf port-type { - type enumeration { - enum real-port { - description - "Real Port type."; - } - enum virtual-port { - description - "Virtual Port type."; - } - } - //config false; - description - "The port type of the PAE."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - container virtual-port { - when "../port-capabilities/virtual-ports = 'true'" { - description - "Applies when the virtual ports port capability is - supported."; - } - config false; - description - "Contains Virtual Port operational state information."; - leaf max { - when "../../port-type = 'real-port'" { - description - "Applies when Port is a Real Port."; - } - type uint32; - description - "The guaranteed maximum number of virtual ports."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf current { - when "../../port-type = 'real-port'" { - description - "Applies when Port is a Real Port."; - } - type yang:gauge32; - description - "The current number of virtual ports."; - reference - "IEEE 802.1X-2020 Clause 12.9.2"; - } - leaf start { - when "../../port-type = 'virtual-port'" { - description - "Applies when Port is a Virtual Port."; - } - type boolean; - description - "Set if the virtual port was created by receipt of an - EAPOL-Start frame."; - reference - "IEEE 802.1X-2020 Clause 12.9.7"; - } - leaf peer-address { - when "../../port-type = 'virtual-port'" { - description - "Applies when Port is a Virtual Port."; - } - type ieee:mac-address; - description - "The source MAC Address of the EAPOL-Start (if vpStart is - set)."; - reference - "IEEE 802.1X-2020 Clause 12.9.7"; - } - } - - container supplicant { - when "../port-type = 'real-port' and - ../port-capabilities/supp = 'true'" { - description - "Applies to Real Port when supplicant port capabilities - are supported."; - } - description - "Contains the configuration nodes for the Supplicant PAE - associated with each port."; - leaf held-period { - type uint16; - units seconds; - default "60"; - description - "The initial value of the timer used to impose a wait - period after a failed authentication attempt, before - another attempt is permitted."; - reference - "IEEE 802.1X-2020 Clause 8.6"; - } - leaf retry-max { - type uint32; - default "2"; - description - "Specifies the maximum number of re-authentication - attempts on an authenticator port before port is - unauthorized."; - reference - "IEEE 802.1X-2020 Clause 8.7"; - } - - leaf enabled { - type boolean; - config false; - description - "Set by PACP if the PAE can provide authentication. Will - be FALSE if the Port is not enabled, if the functionality - provided by the PAE is not available, or not implemented, - or the control variable enable has been cleared by - management, e.g. because the application scenario - authenticates a user and there is no user logged on."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf authenticate { - type boolean; - config false; - description - "Set by the PAE client to request authentication, and - allows reauthentication while set. Cleared by the client - to revoke authentication. To enable authentication the - client also needs to clear failed (if set)."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf authenticated { - type boolean; - config false; - description - "Set by PACP if the PAE is currently authenticated, and - cleared if the authentication fails or is revoked."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf failed { - type boolean; - config false; - description - "Set by PACP if the authentication has failed or has been - terminated. The cause could be a Fail returned by EAP, - either immediately or following a reauthentication, an - excessive number of attempts to authenticate (either - immediately or upon reauthentication), or the client - deasserting authenticate. The PACP will clear - authenticated as well as setting failed. Any ongoing - authentication exchange will be terminated (by the state - machines) if enable becomes FALSE and enabled will be - cleared, but failed will not be set."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - } - - container authenticator { - when "../port-capabilities/auth = 'true'" { - description - "Applies when the Authenticator is supported."; - } - description - "Contains configuration nodes for the Authenticator PAE - associated with each port."; - leaf quiet-period { - type uint16; - units seconds; - default "60"; - description - "Number of seconds that the authenticator remains in the quiet - state following a failed authentication exchange with the - supplicant."; - reference - "IEEE 802.1X-2020 Clause 8.6, Figure 12-3"; - } - leaf reauth-period { - type uint32; - units seconds; - default "3600"; - description - "This object indicates the time period of the - reauthentication to the supplicant."; - reference - "IEEE 802.1X-2020 Clause 8.6, Figure 12-3"; - } - leaf reauth-enable { - type boolean; - default "false"; - description - "Re-authentication is enabled or not."; - reference - "IEEE 802.1X-2020 Clause 5.8 and 8.9"; - } - leaf retry-max { - type uint32; - default "2"; - description - "Specifies the maximum number of re-authentication - attempts on an authenticator port before port is - unauthorized."; - reference - "IEEE 802.1X-2020 Clause 8.9"; - } - - leaf enabled { - type boolean; - config false; - description - "Set by PACP if the PAE can provide authentication. Will - be FALSE if the Port is not enabled, if the functionality - provided by the PAE is not available, or not implemented, - or the control variable enable has been cleared by - management, e.g. because the application scenario - authenticates a user and there is no user logged on."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf authenticate { - type boolean; - config false; - description - "Set by the PAE client to request authentication, and - allows reauthentication while set. Cleared by the client - to revoke authentication. To enable authentication the - client also needs to clear failed (if set)."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf authenticated { - type boolean; - config false; - description - "Set by PACP if the PAE is currently authenticated, and - cleared if the authentication fails or is revoked."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - leaf failed { - type boolean; - config false; - description - "Set by PACP if the authentication has failed or has been - terminated. The cause could be a Fail returned by EAP, - either immediately or following a reauthentication, an - excessive number of attempts to authenticate (either - immediately or upon reauthentication), or the client - deasserting authenticate. The PACP will clear - authenticated as well as setting failed. Any ongoing - authentication exchange will be terminated (by the state - machines) if enable becomes FALSE and enabled will be - cleared, but failed will not be set."; - reference - "IEEE 802.1X-2020 Clause 8.4"; - } - } - - container kay { - when "../port-capabilities/mka = 'true'" { - description - "Applies when the MKA port capability is supported."; - } - description - "Contains configuration system level information for each - Interface supported by the KaY (Key Aggreement Entity)."; - leaf enable { - type boolean; - default "false"; - description - "Set by management to enable (clear to disable) the use - of MKA."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - container actor { - description - "Contains configuration and operational nodes - associated with the actor"; - leaf priority { - type uint8; - description - "The Key Server Priority for all the ports actors."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf sci { - type dot1x-types:sci-list-entry; - config false; - description - "The SCI assigned by the system to the port (applies - to all the ports actors)."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - container key-server { - description - "Contains configuration and operational nodes - associated with the key - server."; - leaf priority { - type uint8; - description - "The Key Server Priority for the Key Server for the - principal actor. Matches the actorPriority if the - actor is the Key Server"; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf sci { - type dot1x-types:sci-list-entry; - config false; - description - "The SCI for Key Server for the principal actor. Null - if there is no principal actor, or that actor has no - live peers. Matches the actorSCI if the actor is the - Key Server."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - container group { - description - "Contains configuration nodes associated with the - group."; - leaf join { - type boolean; - default "true"; - description - "Set if the KaY will accept Group CAKs distributed by - MKA."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf form { - type boolean; - default "false"; - description - "Set if the KaY will attempt to use point-to-point CAs - to distribute a Group CAK, if its principal actor is - the Key Server for all the point-to-point CAs."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf new { - type boolean; - default "false"; - description - "Set by management if a new Group CAK is to be - distributed, if the principal actor is the Key Server - for all point-to-point CAs. Cleared by the KaY when - distribution is complete."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - - container macsec { - when "../../port-capabilities/macsec = 'true'" { - description - "Applies when the MACsec port capability is - supported."; - } - description - "Contains configuration and operational nodes - associated with macsec."; - leaf capable { - type boolean; - description - "Set if MACsec is implemented."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf desired { - type boolean; - default "true"; - description - "Set if the participant desires MACsec frame protection."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - - leaf protect { - type boolean; - config false; - description - "As used by the CP state machine, see 12.4."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf validate { - type boolean; - config false; - description - "As used by the CP state machine, see 12.4."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf replay-protect { - type boolean; - config false; - description - "As used by the CP state machine, see 12.4."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - leaf suspend-on-request { - type boolean; - default "true"; - description - "Set by management to allow the KaYs principal actor to - initiate a suspension if it is the Key Server and another - participant has requested a suspension."; - } - leaf suspend-for { - type uint8; - default "0"; - description - "Set by management to a non-zero number of seconds - between 1 and MKA Suspension Limit to initiate a - suspension (9.18) of that duration (if the KaYs principal - actor is the Key Server) or to request a suspension - (otherwise)."; - reference - "IEEE 802.1X-2020 Clause 9.18"; - } - - leaf suspended-while { - type uint8; - config false; - description - "Read by management to determine if a suspension is in - progress and (when available) to discover the remaining - duration of that suspension"; - reference - "IEEE 802.1X-2020 Clause 9.18"; - } - leaf active { - type boolean; - config false; - description - "Set if there is at least one active actor, transmitting - MKPDUs."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf authenticated { - type boolean; - config false; - description - "Set if the principal actor, i.e. the participant that - has the highest priority Key Server and one or more live - peers, has determined that Controlled Port communication - should proceed without MACsec."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf secured { - type boolean; - config false; - description - "Set if the principal actor has determined that - communication should use MACsec."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf failed { - type boolean; - config false; - description - "Cleared when authenticated or secured are set, set if - the latter are clear and MKA Life Time has elapsed since - an MKA participant was last created."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - container key-number { - config false; - description - "Contains operation state nodes for Key Numbers."; - leaf tx { - type dot1x-types:mka-kn; - description - "The Key Number assigned by the Key Server to the SAK - currently being used for transmission. Null if MACsec - is not being used."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf rx { - type dot1x-types:mka-kn; - description - "The Key Number assigned by the Key Server to the - oldest SAK currently being used for reception. The same - as txKN if a single SAK is currently in use (as will - most often be the case). Null if MACsec is not being - used."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - container association-number { - config false; - description - "Contains operation state nodes for Association - Numbers."; - leaf tx { - type dot1x-types:mka-an; - description - "The Association Number assigned by the Key Server for - use with txKN. Zero if MACsec is not in use."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf rx { - type dot1x-types:mka-an; - description - "The Association Number assigned by the Key Server for - use with rxKN. The same as txAN if a single SAK is - currently in use. Zero if MACsec is not in use."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - - list participants { - key "participant"; - description - "Contains list of configuration and operational nodes - for each MKA participant supported by the KaY MKA - entity."; - leaf participant { - type uint32; - description - "Key into Participants list."; - } - leaf cached { - type boolean; - description - "Set by the KaY if the participants parameters are - cached. If set, cached can be cleared by management to - remove the participant from the cache."; - } - leaf active { - type boolean; - default "false"; - description - "Set if the participant is active, i.e., is currently - transmitting periodic MKPDUs."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf retain { - type boolean; - default "false"; - description - "Set by management to retain the participant in the - cache, even if the KaY would normally remove it (due to - lack of use for example)."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf activate { - type enumeration { - enum default { - description - "The participant is from cached entries created by - the KaY as part of normal operation, without - explicit management, and is activated according to - the implementation dependent policies of the KaY."; - } - enum disabled { - description - "The participant allows the cache information to be - retained, but disabled for indefinite period."; - } - enum on-oper-up { - description - "Causing the participant to be activated when the - PAEs part is activated, and therefore when the SecY - or PACs Common Port becomes operational."; - } - enum always { - description - "Causing the participant to remain active all the - time, even in the continued absence of partners."; - } - } - default "default"; - description - "Controls when the participant is activated. Cached - entries created by the KaY as part of normal operation, - without explicit management, have the value Default, - and are activated according to the implementation - dependent policies of the KaY. This variable can be - set to any of its values by management. Disabled allows - the cache entry to be retained, but disabled for an - indefinite period. OnOperUp causes the participant to - be activated when the PAEs port (and therefore when the - SecY or PACs Common Port becomes MAC_Operational). - Always causes the participant to remain active all the - time, even in the continued absence of partners. If the - value is changed to Disabled or OnOperUp, the - participant ceases operation immediately and receipt of - MKPDUs with a matching CKN during a subsequent period - of twice MKA Life Time will not cause the participant - to become active once more."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - - container peers { - config false; - description - "Contains operational state nodes associated with the - Peers."; - leaf-list live { - type dot1x-types:sci-list-entry; - description - "A list of the SCIs of the participants live - peers."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf-list potential { - type dot1x-types:sci-list-entry; - description - "A list of the SCIs of the participants potential - peers."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - leaf ckn { - type dot1x-types:pae-ckn; - config false; - description - "The secure Connectivity Association Key Name for the - participant."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf kmd { - type dot1x-types:pae-kmd; - config false; - description - "The Key Management Domain for the participant."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf nid { - type dot1x-types:pae-nid; - config false; - description - "The NID for the participant."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf auth-data { - type dot1x-types:pae-auth-data; - config false; - description - "Authorization data associated with the secure - Connectivity Association Key."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf principal { - type boolean; - config false; - description - "Set if the participant is currently the principal - actor."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - leaf dist-ckn { - type dot1x-types:pae-ckn; - config false; - description - "The CKN for the last CAK distributed (either by the - actor or one of its partners). Null if this participant - has not been used to distribute a CAK."; - reference - "IEEE 802.1X-2020 Clause 9.16"; - } - } - } - - container logon-nid { - description - "Contains the configuration and operational related NID - information for the Logon Process. The Logon Process may - use Network Identifiers (NIDs) to manage its use of - authentication credentials, cached CAKs, and - announcements."; - leaf selected { - type dot1x-types:pae-nid; - description - "The NID currently configured for use by an access - controlled port when transmitting EAPOL-Start frames. - Defaults to the null NID."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - uses nid-group; - - leaf connected { - type dot1x-types:pae-nid; - config false; - description - "The NID associated with the current connectivity - (possibly unauthenticated) provided by the operation of - the CP state machine."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - leaf requested { - type dot1x-types:pae-nid; - config false; - description - "The NID marked as Access requested in announcements, as - determined from EAPOL-Start frames. Defaults to the - selectedNID."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - } - - container announcer { - when "../port-capabilities/announcements = 'true'" { - description - "Applies when the Announcements port capabilities are - supported."; - } - description - "Contains the configuration related Announcer - information."; - leaf enable { - type boolean; - default "false"; - description - "A boolean indicating if the announcer is enabled or - not."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - list announce { - key "announces"; - description - "Contains the configuration related status information - that the Announcers announce in the network announcement - of the PAE system."; - leaf announces { - type uint32; - description - "Key into Announce list."; - } - uses nid-group; - - leaf nid { - type dot1x-types:pae-nid; - config false; - description - "The NID information to identify a received network - announcement for the PAE."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf access-status { - type dot1x-types:pae-access-status; - config false; - description - "Access Status reflects connectivity as a result of - authentication attempts, and might be set directly by - the system or configured by AAA protocols."; - reference - "IEEE 802.1X-2020 Clause 10.4, Clause 12.5"; - } - } - } - - container listener { - when "../port-capabilities/listener = 'true'" { - description - "Applies when the Listener port capability is - supported."; - } - description - "Contains the configuration and operational Listener - node related information."; - leaf enable { - type boolean; - default "false"; - description - "A boolean indicating if the listener is enabled or - not."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - - list announcement { - key "announcements"; - config false; - description - "A list containing the operational status information - that the Listeners receive in the network announcement of - the PAE system."; - leaf announcements { - type uint32; - description - "The key into the list of Announce nodes."; - } - leaf nid { - type dot1x-types:pae-nid; - description - "The NID information to identify a received network - announcement for the PAE."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf kmd { - type dot1x-types:pae-kmd; - description - "The KMD information for this received network - announcement of the PAE."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf specific { - type boolean; - description - "This object indicates the received announcement - information was specific to the receiving PAE, not - generic for all systems attached to the LAN."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf access-status { - type dot1x-types:pae-access-status; - description - "The object information reflects connectivity as a - result of authentication attempts for this received - network announcement of the PAE."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf requested-nid { - type boolean; - description - "The authenticated access has been requested for this - particular NID or not."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf unauthenticated-access { - type dot1x-types:pae-access-status; - description - "The access capability of the ports clients without - authentication in this received network announcement of - the PAE"; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - leaf access-capabilities { - type dot1x-types:pae-nid-capabilities; - description - "The authentication and protection capabilities - supported for the NID."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - } - list cipher-suites { - key "index"; - description - "A table contains the Cipher Suites information that - the Listeners receive in the network announcement of - the PAE system."; - reference - "IEEE 802.1X-2020 Clause 10.4"; - leaf index { - type uint16; - description - "Key into cipher suite entry."; - } - leaf cipherSuite { - type string; - description - "cipher Suite identifier."; - } - leaf cipherSuiteCapability { - type uint32; - description - "Cipher Suite capability."; - } - } - } - } - - container eapol-statistics { - config false; - description - "Contains operational EAPOL statistics."; - leaf invalid-eapol-frame-rx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of invalid EAPOL frames of any type that - have been received by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eap-length-error-frames-rx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL frames that the Packet Body Length - does not match a Packet Body that is contained within the - octets of the received EAPOL MPDU in this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-announcements-rx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-Announcement frames that have been - received by this PAE"; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-announce-reqs-rx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-Announcement-Req frames that have - been received by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-port-unavailable { - when "../../port-type = 'real-port' and - ../../port-capabilities/virtual-ports = 'true'" { - description - "Applies when port is Real Port and when the virtual - ports capability is supported."; - } - type yang:counter32; - description - "The number of EAPOL frames that are discarded because - their processing would require the creation of a virtual - port, for which there are inadequate or constrained - resources, or an existing virtual port and no such port - currently exists. If virtual port is not supported, this - object should be always 0."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-start-frames-rx { - type yang:counter32; - description - "The number of EAPOL-Start frames that have been received - by this PAE"; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-eap-frames-rx { - type yang:counter32; - description - "The number of EAPOL-EAP frames that have been received - by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-logoff-frames-rx { - type yang:counter32; - description - "The number of EAPOL-Logoff frames that have been - received by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-mk-no-cfn { - type yang:counter32; - description - "The number of MKPDUs received with MKA not enabled or - CKN not recognized in this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf eapol-mk-invalid-frames-rx { - type yang:counter32; - description - "The number of MKPDUs failing in message authentication - on receipt process in this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.1"; - } - leaf last-eapol-frame-source { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type ieee:mac-address; - description - "The source MAC address of last received EAPOL frame by - this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.2"; - } - leaf last-eapol-frame-version { - type uint8; - description - "The version of last received EAPOL frame by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.2"; - } - leaf eapol-supp-eap-frames-tx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-EAP frames that have been - transmitted by the supplicant of this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-logoff-frames-tx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-Logoff frames that have been - transmitted by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-announcements-tx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-Announcement frames that have been - transmitted by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-announce-reqs-tx { - when "../../port-type = 'real-port'" { - description - "Applies when port is Real Port."; - } - type yang:counter32; - description - "The number of EAPOL-Announcement-Req frames that have - been transmitted by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-start-frames-tx { - type yang:counter32; - description - "The number of EAPOL-Start frames that have been - transmitted by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-auth-eap-frames-tx { - type yang:counter32; - description - "The number of EAPOL-EAP frames that have been - transmitted by the authenticator of this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - leaf eapol-mka-frames-tx { - type yang:counter32; - description - "The number of EAPOL-MKA frames with no CKN information - that have been transmitted by this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.8.3"; - } - } - - container logon-process { - description - "Contains configuration and operational system level - information for each port to support the Logon Process(es) - status information."; - leaf logon { - type boolean; - default "false"; - description - "A boolean indicating if the logon-process is enabled or - not."; - reference - "IEEE 802.1X-2020 Clause 12.5"; - } - - leaf connect { - type enumeration { - enum pending { - description - "Prevent connectivity by clearing the - controlledPortEnabled parameter."; - } - enum unauthenticated { - description - "Provide unsecured connectivity, setting - controlledPortEnabled."; - } - enum authenticated { - description - "Provide unsecured connectivity with authorization - data, setting controlledPortEnabled."; - } - enum secure { - description - "Provide secure connectivity, using SAKs provided by - the KaY (when available) and setting - controlledPortEnabled when those keys are installed - and in use, as specified in detail by the CP state - machine."; - } - } - config false; - description - "The Logon Process sets this variable to one of the - above values."; - reference - "IEEE 802.1X-2020 Clause 12.3"; - } - leaf port-valid { - type boolean; - config false; - description - "Set if Controlled Port communication is secured as - specified by the MACsec control macsecProtect."; - reference - "IEEE 802.1X-2020 Clause 12.3"; - } - list session-statistics { - key "session-id"; - config false; - description - "Contains operational state nodes associated with the - session statistics."; - leaf session-id { - type dot1x-types:pae-session-id; - description - "Key into list of session statistics."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf user-name { - type dot1x-types:pae-session-user-name; - description - "User name of the session."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf octets-rx { - type yang:counter64; - description - "The number of octets received in this session of this - PAE."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf octets-tx { - type yang:counter64; - description - "The number of octets transmitted in this session of - this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf frames-rx { - type yang:counter64; - description - "The number of packets received in this session of - this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf frames-tx { - type yang:counter64; - description - "The number of packets transmitted in this session of - this PAE."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf time { - type uint32; - units "seconds"; - description - "Session Time. The duration of the session in - seconds."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - leaf terminate-cause { - type enumeration { - enum common_port_MAC_operational_false { - description - "Common Port for this PAE is not operational."; - } - enum system_access_control_disabled { - description - "The system-access-control node of the pae-system - is disabled or initialization process of this PAE - is invoked."; - } - enum eapol_logoff_rx { - description - "The PAE has received EAPOL-Logoff frame."; - } - enum eap_reauthentication_failure { - description - "EAP reauthentication has failed."; - } - enum mka-failure_termination { - description - "MKA failure or other MKA termination."; - } - enum new_session-beginning { - description - "New session beginning."; - } - enum not_terminated_yet { - description - "Not Terminated Yet."; - } - } - description - "The reason for the session termination."; - reference - "IEEE 802.1X-2020 Clause 12.5.1"; - } - } - } - } - } - - container nid-group { - description - "Contains both configuration and operational state nodes - associated with the PAE NID group."; - uses nid-group; - } - -} +module ieee802-dot1x { + yang-version "1.1"; + namespace "urn:ieee:std:802.1X:yang:ieee802-dot1x"; + prefix "dot1x"; + + import ieee802-types { prefix "ieee"; } + import ietf-yang-types { prefix "yang"; } + import ietf-interfaces { prefix "if"; } + import ietf-system { prefix "sys"; } + import iana-if-type { prefix "ianaift"; } + import ieee802-dot1x-types { prefix "dot1x-types"; } + + organization + "Institute of Electrical and Electronics Engineers"; + + 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-L@LISTSERV.IEEE.ORG"; + + description + "Port-based network access control allows a network administrator + to restrict the use of IEEE 802 LAN service access points (ports) + to secure communication between authenticated and authorized + devices. IEEE Std 802.1X specifies an architecture, functional + elements, and protocols that support mutual authentication + between the clients of ports attached to the same LAN and secure + communication between the ports. The following control allows a + port to be reinitialized, terminating (and potentially + restarting) authentication exchanges and MKA operation, based on + a data model described in a set of YANG modules."; + + revision 2025-11-20 { + description + "Added derived-from-or-self function to the when statement + for the augment of the interfaces container."; + reference + "IEEE Std 802.1X-2020, Port-Based Network Access Control."; + } + + revision 2020-02-18 { + description + "Updated Contact information."; + reference + "IEEE Std 802.1X-2020, Port-Based Network Access Control."; + } + + revision 2019-06-12 { + description + "Updates based on comment resolution of the WG ballot of + P802.1X-Rev/D1.0."; + reference + "IEEE Std 802.1X-2020, Port-Based Network Access Control."; + } + + grouping nid-group { + description + "The PAE NID Group configuration and operational information."; + list pae-nid-group { + key "nid"; + description + "A list that contains the configuration and operational + nodes for the network announcement information for the + Logon Process."; + leaf nid { + type dot1x-types:pae-nid; + description + "Identification of the network or network service."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + leaf use-eap { + type enumeration { + enum never { + description + "Never."; + } + enum immediate { + description + "Immediately, concurrently with the use of MKA with any + cached CAK(s)."; + } + enum mka-fail { + description + "Not until MKA has failed, if a prior CAK has been + cached."; + } + } + default "immediate"; + description + "Determines when the Logon Process will initiate EAP, if + the Supplicant and or Authenticator are enabled, and takes + one of the above values."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + leaf unauth-allowed { + type enumeration { + enum never { + description + "Never."; + } + enum immediate { + description + "Immediately, independently of any current or future + attempts to authenticate using the PAE or MKA."; + } + enum auth-fail { + description + "Not until an attempt has been made to authenticate + using EAP, unless neither the supplicant nor the + authenticator is enabled, and MKA has attempted to use + any cached CAK (unless the KaY is not enabled)."; + } + } + default "immediate"; + description + "Determines when the Logon Process will tell the CP state + machine to provide unauthenticated connectivity, and takes + one of the above values."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + leaf unsecure-allowed { + type enumeration { + enum never { + description + "Never."; + } + enum immediate { + description + "Immediately, to provide connectivity concurrently with + the use of MKA with any CAK acquired through EAP."; + } + enum mka-fail { + description + "Not until MKA has failed, or is not enabled."; + } + enum mka-server { + description + "Only if directed by the MKA server."; + } + } + default "immediate"; + description + "Determines when the Logon Process will tell the CP state + machine to provide authenticated but unsecured + connectivity, takes one of the above values."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + leaf unauthenticated-access { + type enumeration { + enum no-access { + description + "Other than to authentication services."; + } + enum fallback-access { + description + "Limited access can be provided after authentication + failure."; + } + enum limited-access { + description + "Immediate limited access is available without + authentication."; + } + enum open-access { + description + "Immediate access is available without + authentication."; + } + } + default "no-access"; + description + "Unauthenticated access capabilities provided by the NID."; + reference + "IEEE 802.1X-2020 Clause 10.1"; + } + leaf access-capabilities { + type dot1x-types:pae-nid-capabilities; + description + "Authentication and protection capabilities supported for + the NID."; + reference + "IEEE 802.1X-2020 Clause 10.1"; + } + + leaf kmd { + type dot1x-types:pae-kmd; + config false; + description + "The Key Management Domain for the NID."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + } + } + + grouping port-capabilities { + description + "Per port PAE feature capabilities."; + leaf supp { + type boolean; + description + "Indicates if PACP EAP Supplicant is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf auth { + type boolean; + description + "Indicates if PACP EAP Authenticator is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf mka { + type boolean; + description + "Indicates if MKA is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf macsec { + type boolean; + description + "Indicates if MACsec on the Controlled port is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf announcements { + type boolean; + description + "Indicates if the ability to send EAPOL announcements is + supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf listener { + type boolean; + description + "Indicates if the ability to use received EAPOL + announcements is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf virtual-ports { + type boolean; + description + "Indicates if virtual ports for a real port is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf in-service-upgrades { + type boolean; + description + "Indicates if MKA in-service upgrades is supported."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + } + + /* --------------------------------------------------- + * Configuration objects used by 802.1X YANG module + * --------------------------------------------------- + */ + augment "/sys:system" { + description + "Augment system with 802.1X PAE System specific configuration + nodes."; + container pae-system { + description + "Contains all 802.1X PAE System specific related + configuration and operational data."; + leaf name { + type string { + length "1..255"; + } + description + "The name which uniquely identifies the PAE System."; + } + leaf system-access-control { + type enumeration { + enum disabled { + description + "Deletes any virtual ports previously instantiated, and + terminates authentication exchanges and MKA + operation."; + } + enum enabled { + description + "Enables PAE system access control."; + } + } + description + "Setting this control to disabled deletes any virtual ports + previously instantiated, and terminates authentication + exchanges and MKA operation. Each real port PAE behaves as + if enabledVirtualPorts was clear, the PAEs Supplicant, + Authenticator, and KaY as if their enabled controls were + clear, and Logon Process(es) as if unauthAllowed was + Immediate. Announcements can be transmitted (subject to + other controls), both periodically and in response to + announcement requests (conveyed by EAPOL-Starts or + EAPOL-Announcement-Reqs) but are sent with a single NID + Set, with a null NID, and the Access Information TLV (and + no other) with an pae-access-status of No Access, + accessRequested false, OpenAccess, and no + accessCapabilities. The control variable settings for each + real port PAE are unaffected, and will be used once + systemAccessControl is set to enabled."; + reference + "IEEE 802.1X-2020 Clause 12.9.1"; + } + leaf system-announcements { + type enumeration { + enum disabled { + description + "Causes each PAE to behave as if enabled were clear + for the PAE's Announcement functionality."; + } + enum enabled { + description + "Enables PAE system announcements."; + } + } + description + "Setting this control to Disabled causes each PAE to behave + as if enabled were clear for the PAE's Announcement + functionality. The independent controls for each PAE apply + if systemAnnouncements is Enabled."; + reference + "IEEE 802.1X-2020 Clause 12.9.1"; + } + leaf eapol-protocol-version { + type uint8; + config false; + description + "The EAPOL protocol version for this system."; + reference + "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3"; + } + leaf mka-version { + type uint8; + config false; + description + "The MKA protocol version for this system."; + reference + "IEEE 802.1X-2020 Clause 12.9.1, Clause 11.3"; + } + leaf-list pae { + type if:interface-ref; + config false; + description + "List of PAE references."; + } + } + } + + /* + * Port Authentication Entity (PAE) Nodes + */ + augment "/if:interfaces/if:interface" { + when "derived-from-or-self(if:type,'ianaift:ethernetCsmacd') or " + + "derived-from-or-self(if:type,'ianaift:ilan') or " + + "derived-from-or-self(if:type,'ianaift:macSecControlledIF') or " + + "derived-from-or-self(if:type,'ianaift:ptm') or " + + "derived-from-or-self(if:type,'ianaift:bridge')" { + description + "Applies to the Controlled Port of SecY or PAC shim or + Ethernet related Interface."; + } + description + "Augment interface model with PAE configuration and + operational nodes."; + reference + "IEEE 802.1AE Clause 11.7 and IEEE 802.1X-2020 Clause 6.5 and + Clause 13.3.2"; + container pae { + description + "Contains PAE configuration and operational related nodes."; + leaf pae-system { + type leafref { + path "/sys:system/dot1x:pae-system/dot1x:name"; + } + description + "The PAE system that this PAE is a member of."; + } + leaf vp-enable { + when "../port-type = 'real-port' and + ../port-capabilities/virtual-ports = 'true'" { + description + "Applies when port is Real Port and virtual port + capabilities are supported."; + } + type boolean; + default "false"; + description + "A real port's PAE may be configured to create virtual + ports to support multi-access LANs provided that MKA and + MACsec operation is enabled for that port."; + reference + "IEEE 802.1X-2020 Clause 12.7"; + } + container port-capabilities { + description + "Per port PAE feature capabilities."; + uses port-capabilities; + } + + leaf port-name { + type if:interface-ref; + config false; + description + "Each PAE is uniquely identified by a port name."; + } + leaf port-number { + type dot1x-types:pae-if-index; + config false; + description + "Each PAE is uniquely identified by a port number. The + port number used is unique amongst all port names for the + system, and directly or indirectly identifies the + Uncontrolled Port that supports the PAE. If the PAE has + been dynamically instantiated to support an existing or + potential virtual port, this portNumber, the + uncontrolledPortNumber and the controlledPortNumber are + allocated by the real ports PAE, and this portNumber is the + uncontrolledPortNumber. If the PAE supports a real port, + this portNumber is the commonPortNumber for the associated + PAC or SecY."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf controlled-port-name { + type if:interface-ref; + config false; + description + "Each PAE is uniquely identified by a port name."; + } + leaf controlled-port-number { + type dot1x-types:pae-if-index; + config false; + description + "The port for the associated PAC or SecYs Controlled + Port."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf uncontrolled-port-name { + type if:interface-ref; + config false; + description + "The uncontrolled port name reference."; + } + leaf uncontrolled-port-number { + type dot1x-types:pae-if-index; + config false; + description + "The port for the associated PAC or SecYs Uncontrolled + Port."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf common-port-name { + type if:interface-ref; + config false; + description + "The common port name reference."; + } + leaf common-port-number { + type dot1x-types:pae-if-index; + config false; + description + "The port for the associated PAC or SecYs Common Port. All + the virtual ports created for a given real port share the + same Common Port and commonPortNumber."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf port-type { + type enumeration { + enum real-port { + description + "Real Port type."; + } + enum virtual-port { + description + "Virtual Port type."; + } + } + //config false; + description + "The port type of the PAE."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + container virtual-port { + when "../port-capabilities/virtual-ports = 'true'" { + description + "Applies when the virtual ports port capability is + supported."; + } + config false; + description + "Contains Virtual Port operational state information."; + leaf max { + when "../../port-type = 'real-port'" { + description + "Applies when Port is a Real Port."; + } + type uint32; + description + "The guaranteed maximum number of virtual ports."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf current { + when "../../port-type = 'real-port'" { + description + "Applies when Port is a Real Port."; + } + type yang:gauge32; + description + "The current number of virtual ports."; + reference + "IEEE 802.1X-2020 Clause 12.9.2"; + } + leaf start { + when "../../port-type = 'virtual-port'" { + description + "Applies when Port is a Virtual Port."; + } + type boolean; + description + "Set if the virtual port was created by receipt of an + EAPOL-Start frame."; + reference + "IEEE 802.1X-2020 Clause 12.9.7"; + } + leaf peer-address { + when "../../port-type = 'virtual-port'" { + description + "Applies when Port is a Virtual Port."; + } + type ieee:mac-address; + description + "The source MAC Address of the EAPOL-Start (if vpStart is + set)."; + reference + "IEEE 802.1X-2020 Clause 12.9.7"; + } + } + + container supplicant { + when "../port-type = 'real-port' and + ../port-capabilities/supp = 'true'" { + description + "Applies to Real Port when supplicant port capabilities + are supported."; + } + description + "Contains the configuration nodes for the Supplicant PAE + associated with each port."; + leaf held-period { + type uint16; + units seconds; + default "60"; + description + "The initial value of the timer used to impose a wait + period after a failed authentication attempt, before + another attempt is permitted."; + reference + "IEEE 802.1X-2020 Clause 8.6"; + } + leaf retry-max { + type uint32; + default "2"; + description + "Specifies the maximum number of re-authentication + attempts on an authenticator port before port is + unauthorized."; + reference + "IEEE 802.1X-2020 Clause 8.7"; + } + + leaf enabled { + type boolean; + config false; + description + "Set by PACP if the PAE can provide authentication. Will + be FALSE if the Port is not enabled, if the functionality + provided by the PAE is not available, or not implemented, + or the control variable enable has been cleared by + management, e.g. because the application scenario + authenticates a user and there is no user logged on."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf authenticate { + type boolean; + config false; + description + "Set by the PAE client to request authentication, and + allows reauthentication while set. Cleared by the client + to revoke authentication. To enable authentication the + client also needs to clear failed (if set)."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf authenticated { + type boolean; + config false; + description + "Set by PACP if the PAE is currently authenticated, and + cleared if the authentication fails or is revoked."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf failed { + type boolean; + config false; + description + "Set by PACP if the authentication has failed or has been + terminated. The cause could be a Fail returned by EAP, + either immediately or following a reauthentication, an + excessive number of attempts to authenticate (either + immediately or upon reauthentication), or the client + deasserting authenticate. The PACP will clear + authenticated as well as setting failed. Any ongoing + authentication exchange will be terminated (by the state + machines) if enable becomes FALSE and enabled will be + cleared, but failed will not be set."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + } + + container authenticator { + when "../port-capabilities/auth = 'true'" { + description + "Applies when the Authenticator is supported."; + } + description + "Contains configuration nodes for the Authenticator PAE + associated with each port."; + leaf quiet-period { + type uint16; + units seconds; + default "60"; + description + "Number of seconds that the authenticator remains in the quiet + state following a failed authentication exchange with the + supplicant."; + reference + "IEEE 802.1X-2020 Clause 8.6, Figure 12-3"; + } + leaf reauth-period { + type uint32; + units seconds; + default "3600"; + description + "This object indicates the time period of the + reauthentication to the supplicant."; + reference + "IEEE 802.1X-2020 Clause 8.6, Figure 12-3"; + } + leaf reauth-enable { + type boolean; + default "false"; + description + "Re-authentication is enabled or not."; + reference + "IEEE 802.1X-2020 Clause 5.8 and 8.9"; + } + leaf retry-max { + type uint32; + default "2"; + description + "Specifies the maximum number of re-authentication + attempts on an authenticator port before port is + unauthorized."; + reference + "IEEE 802.1X-2020 Clause 8.9"; + } + + leaf enabled { + type boolean; + config false; + description + "Set by PACP if the PAE can provide authentication. Will + be FALSE if the Port is not enabled, if the functionality + provided by the PAE is not available, or not implemented, + or the control variable enable has been cleared by + management, e.g. because the application scenario + authenticates a user and there is no user logged on."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf authenticate { + type boolean; + config false; + description + "Set by the PAE client to request authentication, and + allows reauthentication while set. Cleared by the client + to revoke authentication. To enable authentication the + client also needs to clear failed (if set)."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf authenticated { + type boolean; + config false; + description + "Set by PACP if the PAE is currently authenticated, and + cleared if the authentication fails or is revoked."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + leaf failed { + type boolean; + config false; + description + "Set by PACP if the authentication has failed or has been + terminated. The cause could be a Fail returned by EAP, + either immediately or following a reauthentication, an + excessive number of attempts to authenticate (either + immediately or upon reauthentication), or the client + deasserting authenticate. The PACP will clear + authenticated as well as setting failed. Any ongoing + authentication exchange will be terminated (by the state + machines) if enable becomes FALSE and enabled will be + cleared, but failed will not be set."; + reference + "IEEE 802.1X-2020 Clause 8.4"; + } + } + + container kay { + when "../port-capabilities/mka = 'true'" { + description + "Applies when the MKA port capability is supported."; + } + description + "Contains configuration system level information for each + Interface supported by the KaY (Key Aggreement Entity)."; + leaf enable { + type boolean; + default "false"; + description + "Set by management to enable (clear to disable) the use + of MKA."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + container actor { + description + "Contains configuration and operational nodes + associated with the actor"; + leaf priority { + type uint8; + description + "The Key Server Priority for all the ports actors."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf sci { + type dot1x-types:sci-list-entry; + config false; + description + "The SCI assigned by the system to the port (applies + to all the ports actors)."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + container key-server { + description + "Contains configuration and operational nodes + associated with the key + server."; + leaf priority { + type uint8; + description + "The Key Server Priority for the Key Server for the + principal actor. Matches the actorPriority if the + actor is the Key Server"; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf sci { + type dot1x-types:sci-list-entry; + config false; + description + "The SCI for Key Server for the principal actor. Null + if there is no principal actor, or that actor has no + live peers. Matches the actorSCI if the actor is the + Key Server."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + container group { + description + "Contains configuration nodes associated with the + group."; + leaf join { + type boolean; + default "true"; + description + "Set if the KaY will accept Group CAKs distributed by + MKA."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf form { + type boolean; + default "false"; + description + "Set if the KaY will attempt to use point-to-point CAs + to distribute a Group CAK, if its principal actor is + the Key Server for all the point-to-point CAs."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf new { + type boolean; + default "false"; + description + "Set by management if a new Group CAK is to be + distributed, if the principal actor is the Key Server + for all point-to-point CAs. Cleared by the KaY when + distribution is complete."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + + container macsec { + when "../../port-capabilities/macsec = 'true'" { + description + "Applies when the MACsec port capability is + supported."; + } + description + "Contains configuration and operational nodes + associated with macsec."; + leaf capable { + type boolean; + description + "Set if MACsec is implemented."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf desired { + type boolean; + default "true"; + description + "Set if the participant desires MACsec frame protection."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + + leaf protect { + type boolean; + config false; + description + "As used by the CP state machine, see 12.4."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf validate { + type boolean; + config false; + description + "As used by the CP state machine, see 12.4."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf replay-protect { + type boolean; + config false; + description + "As used by the CP state machine, see 12.4."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + leaf suspend-on-request { + type boolean; + default "true"; + description + "Set by management to allow the KaYs principal actor to + initiate a suspension if it is the Key Server and another + participant has requested a suspension."; + } + leaf suspend-for { + type uint8; + default "0"; + description + "Set by management to a non-zero number of seconds + between 1 and MKA Suspension Limit to initiate a + suspension (9.18) of that duration (if the KaYs principal + actor is the Key Server) or to request a suspension + (otherwise)."; + reference + "IEEE 802.1X-2020 Clause 9.18"; + } + + leaf suspended-while { + type uint8; + config false; + description + "Read by management to determine if a suspension is in + progress and (when available) to discover the remaining + duration of that suspension"; + reference + "IEEE 802.1X-2020 Clause 9.18"; + } + leaf active { + type boolean; + config false; + description + "Set if there is at least one active actor, transmitting + MKPDUs."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf authenticated { + type boolean; + config false; + description + "Set if the principal actor, i.e. the participant that + has the highest priority Key Server and one or more live + peers, has determined that Controlled Port communication + should proceed without MACsec."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf secured { + type boolean; + config false; + description + "Set if the principal actor has determined that + communication should use MACsec."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf failed { + type boolean; + config false; + description + "Cleared when authenticated or secured are set, set if + the latter are clear and MKA Life Time has elapsed since + an MKA participant was last created."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + container key-number { + config false; + description + "Contains operation state nodes for Key Numbers."; + leaf tx { + type dot1x-types:mka-kn; + description + "The Key Number assigned by the Key Server to the SAK + currently being used for transmission. Null if MACsec + is not being used."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf rx { + type dot1x-types:mka-kn; + description + "The Key Number assigned by the Key Server to the + oldest SAK currently being used for reception. The same + as txKN if a single SAK is currently in use (as will + most often be the case). Null if MACsec is not being + used."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + container association-number { + config false; + description + "Contains operation state nodes for Association + Numbers."; + leaf tx { + type dot1x-types:mka-an; + description + "The Association Number assigned by the Key Server for + use with txKN. Zero if MACsec is not in use."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf rx { + type dot1x-types:mka-an; + description + "The Association Number assigned by the Key Server for + use with rxKN. The same as txAN if a single SAK is + currently in use. Zero if MACsec is not in use."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + + list participants { + key "participant"; + description + "Contains list of configuration and operational nodes + for each MKA participant supported by the KaY MKA + entity."; + leaf participant { + type uint32; + description + "Key into Participants list."; + } + leaf cached { + type boolean; + description + "Set by the KaY if the participants parameters are + cached. If set, cached can be cleared by management to + remove the participant from the cache."; + } + leaf active { + type boolean; + default "false"; + description + "Set if the participant is active, i.e., is currently + transmitting periodic MKPDUs."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf retain { + type boolean; + default "false"; + description + "Set by management to retain the participant in the + cache, even if the KaY would normally remove it (due to + lack of use for example)."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf activate { + type enumeration { + enum default { + description + "The participant is from cached entries created by + the KaY as part of normal operation, without + explicit management, and is activated according to + the implementation dependent policies of the KaY."; + } + enum disabled { + description + "The participant allows the cache information to be + retained, but disabled for indefinite period."; + } + enum on-oper-up { + description + "Causing the participant to be activated when the + PAEs part is activated, and therefore when the SecY + or PACs Common Port becomes operational."; + } + enum always { + description + "Causing the participant to remain active all the + time, even in the continued absence of partners."; + } + } + default "default"; + description + "Controls when the participant is activated. Cached + entries created by the KaY as part of normal operation, + without explicit management, have the value Default, + and are activated according to the implementation + dependent policies of the KaY. This variable can be + set to any of its values by management. Disabled allows + the cache entry to be retained, but disabled for an + indefinite period. OnOperUp causes the participant to + be activated when the PAEs port (and therefore when the + SecY or PACs Common Port becomes MAC_Operational). + Always causes the participant to remain active all the + time, even in the continued absence of partners. If the + value is changed to Disabled or OnOperUp, the + participant ceases operation immediately and receipt of + MKPDUs with a matching CKN during a subsequent period + of twice MKA Life Time will not cause the participant + to become active once more."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + + container peers { + config false; + description + "Contains operational state nodes associated with the + Peers."; + leaf-list live { + type dot1x-types:sci-list-entry; + description + "A list of the SCIs of the participants live + peers."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf-list potential { + type dot1x-types:sci-list-entry; + description + "A list of the SCIs of the participants potential + peers."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + leaf ckn { + type dot1x-types:pae-ckn; + config false; + description + "The secure Connectivity Association Key Name for the + participant."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf kmd { + type dot1x-types:pae-kmd; + config false; + description + "The Key Management Domain for the participant."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf nid { + type dot1x-types:pae-nid; + config false; + description + "The NID for the participant."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf auth-data { + type dot1x-types:pae-auth-data; + config false; + description + "Authorization data associated with the secure + Connectivity Association Key."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf principal { + type boolean; + config false; + description + "Set if the participant is currently the principal + actor."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + leaf dist-ckn { + type dot1x-types:pae-ckn; + config false; + description + "The CKN for the last CAK distributed (either by the + actor or one of its partners). Null if this participant + has not been used to distribute a CAK."; + reference + "IEEE 802.1X-2020 Clause 9.16"; + } + } + } + + container logon-nid { + description + "Contains the configuration and operational related NID + information for the Logon Process. The Logon Process may + use Network Identifiers (NIDs) to manage its use of + authentication credentials, cached CAKs, and + announcements."; + leaf selected { + type dot1x-types:pae-nid; + description + "The NID currently configured for use by an access + controlled port when transmitting EAPOL-Start frames. + Defaults to the null NID."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + uses nid-group; + + leaf connected { + type dot1x-types:pae-nid; + config false; + description + "The NID associated with the current connectivity + (possibly unauthenticated) provided by the operation of + the CP state machine."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + leaf requested { + type dot1x-types:pae-nid; + config false; + description + "The NID marked as Access requested in announcements, as + determined from EAPOL-Start frames. Defaults to the + selectedNID."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + } + + container announcer { + when "../port-capabilities/announcements = 'true'" { + description + "Applies when the Announcements port capabilities are + supported."; + } + description + "Contains the configuration related Announcer + information."; + leaf enable { + type boolean; + default "false"; + description + "A boolean indicating if the announcer is enabled or + not."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + list announce { + key "announces"; + description + "Contains the configuration related status information + that the Announcers announce in the network announcement + of the PAE system."; + leaf announces { + type uint32; + description + "Key into Announce list."; + } + uses nid-group; + + leaf nid { + type dot1x-types:pae-nid; + config false; + description + "The NID information to identify a received network + announcement for the PAE."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf access-status { + type dot1x-types:pae-access-status; + config false; + description + "Access Status reflects connectivity as a result of + authentication attempts, and might be set directly by + the system or configured by AAA protocols."; + reference + "IEEE 802.1X-2020 Clause 10.4, Clause 12.5"; + } + } + } + + container listener { + when "../port-capabilities/listener = 'true'" { + description + "Applies when the Listener port capability is + supported."; + } + description + "Contains the configuration and operational Listener + node related information."; + leaf enable { + type boolean; + default "false"; + description + "A boolean indicating if the listener is enabled or + not."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + + list announcement { + key "announcements"; + config false; + description + "A list containing the operational status information + that the Listeners receive in the network announcement of + the PAE system."; + leaf announcements { + type uint32; + description + "The key into the list of Announce nodes."; + } + leaf nid { + type dot1x-types:pae-nid; + description + "The NID information to identify a received network + announcement for the PAE."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf kmd { + type dot1x-types:pae-kmd; + description + "The KMD information for this received network + announcement of the PAE."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf specific { + type boolean; + description + "This object indicates the received announcement + information was specific to the receiving PAE, not + generic for all systems attached to the LAN."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf access-status { + type dot1x-types:pae-access-status; + description + "The object information reflects connectivity as a + result of authentication attempts for this received + network announcement of the PAE."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf requested-nid { + type boolean; + description + "The authenticated access has been requested for this + particular NID or not."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf unauthenticated-access { + type dot1x-types:pae-access-status; + description + "The access capability of the ports clients without + authentication in this received network announcement of + the PAE"; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + leaf access-capabilities { + type dot1x-types:pae-nid-capabilities; + description + "The authentication and protection capabilities + supported for the NID."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + } + list cipher-suites { + key "index"; + description + "A table contains the Cipher Suites information that + the Listeners receive in the network announcement of + the PAE system."; + reference + "IEEE 802.1X-2020 Clause 10.4"; + leaf index { + type uint16; + description + "Key into cipher suite entry."; + } + leaf cipherSuite { + type string; + description + "cipher Suite identifier."; + } + leaf cipherSuiteCapability { + type uint32; + description + "Cipher Suite capability."; + } + } + } + } + + container eapol-statistics { + config false; + description + "Contains operational EAPOL statistics."; + leaf invalid-eapol-frame-rx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of invalid EAPOL frames of any type that + have been received by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eap-length-error-frames-rx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL frames that the Packet Body Length + does not match a Packet Body that is contained within the + octets of the received EAPOL MPDU in this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-announcements-rx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-Announcement frames that have been + received by this PAE"; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-announce-reqs-rx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-Announcement-Req frames that have + been received by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-port-unavailable { + when "../../port-type = 'real-port' and + ../../port-capabilities/virtual-ports = 'true'" { + description + "Applies when port is Real Port and when the virtual + ports capability is supported."; + } + type yang:counter32; + description + "The number of EAPOL frames that are discarded because + their processing would require the creation of a virtual + port, for which there are inadequate or constrained + resources, or an existing virtual port and no such port + currently exists. If virtual port is not supported, this + object should be always 0."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-start-frames-rx { + type yang:counter32; + description + "The number of EAPOL-Start frames that have been received + by this PAE"; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-eap-frames-rx { + type yang:counter32; + description + "The number of EAPOL-EAP frames that have been received + by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-logoff-frames-rx { + type yang:counter32; + description + "The number of EAPOL-Logoff frames that have been + received by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-mk-no-cfn { + type yang:counter32; + description + "The number of MKPDUs received with MKA not enabled or + CKN not recognized in this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf eapol-mk-invalid-frames-rx { + type yang:counter32; + description + "The number of MKPDUs failing in message authentication + on receipt process in this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.1"; + } + leaf last-eapol-frame-source { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type ieee:mac-address; + description + "The source MAC address of last received EAPOL frame by + this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.2"; + } + leaf last-eapol-frame-version { + type uint8; + description + "The version of last received EAPOL frame by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.2"; + } + leaf eapol-supp-eap-frames-tx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-EAP frames that have been + transmitted by the supplicant of this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-logoff-frames-tx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-Logoff frames that have been + transmitted by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-announcements-tx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-Announcement frames that have been + transmitted by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-announce-reqs-tx { + when "../../port-type = 'real-port'" { + description + "Applies when port is Real Port."; + } + type yang:counter32; + description + "The number of EAPOL-Announcement-Req frames that have + been transmitted by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-start-frames-tx { + type yang:counter32; + description + "The number of EAPOL-Start frames that have been + transmitted by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-auth-eap-frames-tx { + type yang:counter32; + description + "The number of EAPOL-EAP frames that have been + transmitted by the authenticator of this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + leaf eapol-mka-frames-tx { + type yang:counter32; + description + "The number of EAPOL-MKA frames with no CKN information + that have been transmitted by this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.8.3"; + } + } + + container logon-process { + description + "Contains configuration and operational system level + information for each port to support the Logon Process(es) + status information."; + leaf logon { + type boolean; + default "false"; + description + "A boolean indicating if the logon-process is enabled or + not."; + reference + "IEEE 802.1X-2020 Clause 12.5"; + } + + leaf connect { + type enumeration { + enum pending { + description + "Prevent connectivity by clearing the + controlledPortEnabled parameter."; + } + enum unauthenticated { + description + "Provide unsecured connectivity, setting + controlledPortEnabled."; + } + enum authenticated { + description + "Provide unsecured connectivity with authorization + data, setting controlledPortEnabled."; + } + enum secure { + description + "Provide secure connectivity, using SAKs provided by + the KaY (when available) and setting + controlledPortEnabled when those keys are installed + and in use, as specified in detail by the CP state + machine."; + } + } + config false; + description + "The Logon Process sets this variable to one of the + above values."; + reference + "IEEE 802.1X-2020 Clause 12.3"; + } + leaf port-valid { + type boolean; + config false; + description + "Set if Controlled Port communication is secured as + specified by the MACsec control macsecProtect."; + reference + "IEEE 802.1X-2020 Clause 12.3"; + } + list session-statistics { + key "session-id"; + config false; + description + "Contains operational state nodes associated with the + session statistics."; + leaf session-id { + type dot1x-types:pae-session-id; + description + "Key into list of session statistics."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf user-name { + type dot1x-types:pae-session-user-name; + description + "User name of the session."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf octets-rx { + type yang:counter64; + description + "The number of octets received in this session of this + PAE."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf octets-tx { + type yang:counter64; + description + "The number of octets transmitted in this session of + this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf frames-rx { + type yang:counter64; + description + "The number of packets received in this session of + this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf frames-tx { + type yang:counter64; + description + "The number of packets transmitted in this session of + this PAE."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf time { + type uint32; + units "seconds"; + description + "Session Time. The duration of the session in + seconds."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + leaf terminate-cause { + type enumeration { + enum common_port_MAC_operational_false { + description + "Common Port for this PAE is not operational."; + } + enum system_access_control_disabled { + description + "The system-access-control node of the pae-system + is disabled or initialization process of this PAE + is invoked."; + } + enum eapol_logoff_rx { + description + "The PAE has received EAPOL-Logoff frame."; + } + enum eap_reauthentication_failure { + description + "EAP reauthentication has failed."; + } + enum mka-failure_termination { + description + "MKA failure or other MKA termination."; + } + enum new_session-beginning { + description + "New session beginning."; + } + enum not_terminated_yet { + description + "Not Terminated Yet."; + } + } + description + "The reason for the session termination."; + reference + "IEEE 802.1X-2020 Clause 12.5.1"; + } + } + } + } + } + + container nid-group { + description + "Contains both configuration and operational state nodes + associated with the PAE NID group."; + uses nid-group; + } + +} diff --git a/standard/ieee/draft/60802/iecieee60802-bridge.yang b/standard/ieee/published/60802/iecieee60802-bridge.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-bridge.yang rename to standard/ieee/published/60802/iecieee60802-bridge.yang index dab263061..a1a9468ac --- a/standard/ieee/draft/60802/iecieee60802-bridge.yang +++ b/standard/ieee/published/60802/iecieee60802-bridge.yang @@ -1,603 +1,603 @@ -module iecieee60802-bridge { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-bridge"; - prefix ia-bridge; - - import ieee802-types { - prefix ieee802; - } - import ieee802-dot1q-bridge { - prefix bridge; - } - import ietf-interfaces { - prefix if; - } - import ieee802-dot1q-types { - prefix dot1q-types; - } - import ieee1588-ptp-tt { - prefix ptp-tt; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 provide information about - IEC/IEEE 60802 IA-Stations as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-03-12 { - description - "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - augment "/if:interfaces/if:interface/bridge:bridge-port" { - description - "Augment IEEE Std 802.1 bridge."; - list max-burst-params { - key "speed"; - config false; - description - "The list of maximum burst parameters per supported line - speed."; - leaf speed { - type uint32; - description - "This value is the line speed in Mbps."; - } - leaf worst-case-packet-gap { - type uint8; - config false; - description - "The value is the worst case maximum inter-packet gap - between consecutive frames in a traffic burst expressed - in bit-times."; - reference - "Item a) in 6.4.10.3.3.1 of IEC/IEEE 60802"; - } - leaf max-burst-frames { - type uint8; - config false; - description - "The value is the maximum number of frames that can be sent - with minimal inter packet gap."; - reference - "Item b) in 6.4.10.3.3.1 of IEC/IEEE 60802"; - } - leaf max-burst-bytes { - type uint8; - config false; - description - "The value is the maximum number of octets that can be sent - with minimal inter packet gap."; - reference - "Item c) in 6.4.10.3.3.1 of IEC/IEEE 60802"; - } - } - list committed-data-rates { - key "traffic-class speed"; - config false; - description - "The list of committed data rates per traffic class and - supported line speed."; - leaf traffic-class { - type dot1q-types:traffic-class-type; - description - "The traffic class of the entry (0..7)."; - reference - "8.6.6 of IEEE Std 802.1Q"; - } - leaf speed { - type uint32; - description - "This value is the line speed in Mbps."; - } - leaf committed-information-rate { - type uint32; - config false; - description - "The value is the bandwidth limit in kbit/s."; - reference - "Item a) in 6.4.10.3.3.2 of IEC/IEEE 60802"; - } - leaf committed-burst-size { - type uint32; - config false; - description - "The value is the burst size limit in bytes."; - reference - "Item b) in 6.4.10.3.3.2 of IEC/IEEE 60802"; - } - } - list transmission-selection-algorithm { - key "traffic-class"; - config false; - description - "The list of supported transmission selection algorithms - according to 8.6.8 of IEEE Std 802.1Q per traffic class."; - leaf traffic-class { - type dot1q-types:traffic-class-type; - config false; - description - "Traffic class. (0..7)"; - reference - "8.6.6 of IEEE Std 802.1Q"; - } - list algorithms { - key "algorithm"; - config false; - description - "The list of supported transmission selection algorithms - according to 8.6.8 of IEEE Std 802.1Q for this traffic - class."; - leaf algorithm { - type identityref { - base dot1q-types:transmission-selection-algorithm; - } - config false; - description - "Transmission selection algorithm"; - reference - "8.6.8 of IEEE Std 802.1Q"; - } - } - } - list supported-resource-pools { - key "resource-pool-name"; - config false; - description - "The list of supported buffer resource pools."; - leaf resource-pool-name { - type string; - config false; - description - "The value is the name of a resource pool."; - reference - "Item a) in 6.4.10.3.4.2 of IEC/IEEE 60802"; - } - container covered-time-interval { - config false; - uses ieee802:rational-grouping; - description - "The value is the covered buffering time given as rational - number of seconds for the highest supported link speed."; - reference - "Item b) in 6.4.10.3.4.2 of IEC/IEEE 60802"; - } - list resource-pool-traffic-classes { - key "traffic-class"; - config false; - description - "The list of the traffic classes to be served by the - resource pool."; - reference - "Item c) in 6.4.10.3.4.2 of IEC/IEEE 60802"; - leaf traffic-class { - type dot1q-types:traffic-class-type; - description - "The traffic class of the entry."; - reference - "8.6.6 of IEEE Std 802.1Q"; - } - } - } - list phy-latencies { - key "mau-type"; - config false; - description - "Latency information for each MAU type"; - leaf mau-type { - type int32; - config false; - description - "The MAU type"; - } - leaf latency { - type uint32; - config false; - description - "The PHY latency in ns"; - reference - "6.4.10.3.6.3 of IEC/IEEE 60802"; - } - leaf latency-variation { - type uint16; - config false; - description - "The PHY latency variation in ns"; - reference - "6.4.10.3.6.4 of IEC/IEEE 60802"; - } - } - } - - augment "/bridge:bridges/bridge:bridge/bridge:component" { - description - "Augment IEEE Std 802.1 bridge component."; - leaf frer-supported { - type boolean; - config false; - description - "The Boolean value indicates if FRER is supported."; - reference - "6.4.10.3.5.1 of IEC/IEEE 60802"; - } - leaf max-redundant-streams { - type uint32; - config false; - description - "The value is the maximum number of supported redundant - streams."; - reference - "6.4.10.3.5.2 of IEC/IEEE 60802"; - } - leaf max-fids { - type uint16; - config false; - description - "The value is the maximum number of supported FIDs."; - reference - "6.4.10.3.7.1 of IEC/IEEE 60802"; - } - list max-fdb-entries { - key "fid"; - config false; - description - "The list of the maximum number of static and dynamic - FDB entries per FID."; - reference - "6.4.10.3.7.2 of IEC/IEEE 60802"; - leaf fid { - type uint16; - config false; - description - "The FID number"; - } - leaf max-static-fdb-entries { - type uint16; - config false; - description - "The value is the maximum number of static FDB - entries."; - reference - "6.4.10.3.7.3 of IEC/IEEE 60802"; - } - leaf max-dynamic-fdb-entries { - type uint16; - config false; - description - "The value is the maximum number of dynamic FDB entries."; - reference - "6.4.10.3.7.4 of IEC/IEEE 60802"; - } - } - choice delay-variance { - config false; - description - "The value indicates variance in delay depending upon the use - of a singleValue or multipleValues."; - reference - "6.4.10.3.6.1 of IEC/IEEE 60802"; - case single-value { - list independent-delays { - key "in-port-mau-type out-port-mau-type traffic-class"; - config false; - description - "The list of minimum and maximum frame length - independent delay time values of frames as they pass - through a bridge component."; - reference - "6.4.10.3.6.2 of IEC/IEEE 60802"; - leaf in-port-mau-type { - type int32; - config false; - description - "The MAU type of the input port"; - } - leaf out-port-mau-type { - type int32; - config false; - description - "The MAU type of the input port"; - } - leaf traffic-class { - type dot1q-types:traffic-class-type; - config false; - description - "The traffic class of the entry."; - reference - "8.6.6 of IEEE Std 802.1Q"; - } - leaf independent-delay-min { - type uint32; - config false; - description - "The value is the minimum delay portion that is - independent of frame length according to 12.32.1.1. - of IEEE 802.1Q"; - reference - "Item a) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - leaf independent-delay-max { - type uint32; - config false; - description - "The value is the maximum delay portion that is - independent of frame length according to 12.32.1.1. - of IEEE 802.1Q"; - reference - "Item b) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - } - list dependent-delays { - key "in-port-line-speed"; - config false; - description - "The list of minimum and maximum frame length dependent - delay time values of frames as they pass through a - bridge component"; - reference - "6.4.10.3.6.2 of IEC/IEEE 60802"; - leaf in-port-line-speed { - type uint32; - config false; - description - "This value is the line speed in Mbps."; - } - leaf dependent-delay-min { - type uint32; - config false; - description - "The value is the minimum delay portion that is - dependent on frame length according to 12.32.1.2. - of IEEE 802.1Q"; - reference - "Item c) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - leaf dependent-delay-max { - type uint32; - config false; - description - "The value is the maximum delay portion that is - dependent on frame length according to 12.32.1.2. - of IEEE 802.1Q"; - reference - "Item d) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - } - } - case multiple-values { - list independent-delays-cascaded { - key "in-port in-port-mau-type out-port out-port-mau-type - traffic-class"; - config false; - description - "The list of minimum and maximum frame length - independent delay time values of frames as they pass - through a bridge component."; - reference - "6.4.10.3.6.2 of IEC/IEEE 60802"; - leaf in-port { - type uint8; - config false; - description - "The port number of the input port"; - } - leaf in-port-mau-type { - type int32; - config false; - description - "The MAU type of the input port"; - } - leaf out-port { - type uint8; - config false; - description - "The port number of the output port"; - } - leaf out-port-mau-type { - type int32; - config false; - description - "The MAU type of the input port"; - } - leaf traffic-class { - type dot1q-types:traffic-class-type; - config false; - description - "The traffic class of the entry."; - reference - "8.6.6 of IEEE Std 802.1Q"; - } - leaf independent-delay-min { - type uint32; - config false; - description - "The value is the minimum delay portion that is - independent of frame length according to 12.32.1.1. - of IEEE 802.1Q"; - reference - "Item a) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - leaf independent-delay-max { - type uint32; - config false; - description - "The value is the maximum delay portion that is - independent of frame length according to 12.32.1.1. - of IEEE 802.1Q"; - reference - "Item b) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - } - list dependent-delays-cascaded { - key "in-port in-port-line-speed out-port"; - config false; - description - "The list of minimum and maximum frame length dependent - delay time values of frames as they pass through a - bridge component"; - reference - "6.4.10.3.6.2 of IEC/IEEE 60802"; - leaf in-port { - type uint8; - config false; - description - "The port number of the input port"; - } - leaf in-port-line-speed { - type uint32; - config false; - description - "This value is the line speed in Mbps."; - } - leaf out-port { - type uint8; - config false; - description - "The port number of the output port"; - } - leaf dependent-delay-min { - type uint32; - config false; - description - "The value is the minimum delay portion that is - dependent on frame length according to 12.32.1.2. - of IEEE 802.1Q"; - reference - "Item c) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - leaf dependent-delay-max { - type uint32; - config false; - description - "The value is the maximum delay portion that is - dependent on frame length according to 12.32.1.2. - of IEEE 802.1Q"; - reference - "Item d) in 6.4.10.3.6.2 of IEC/IEEE 60802"; - } - } - } - } - leaf max-ptp-instances { - type uint8; - config false; - description - "The value is the maximum number of supported PTP - Instances."; - reference - "6.4.10.3.7.5 of IEC/IEEE 60802"; - } - leaf max-hot-standby-systems { - type uint8; - config false; - description - "The value is the maximum number of supported - HotStandbySystem entities"; - reference - "6.4.10.3.7.6 of IEC/IEEE 60802"; - } - list clock { - key "clock-identity"; - config false; - description - "The list of supported application clock entities."; - reference - "6.4.10.3.7.7 of IEC/IEEE 60802"; - leaf clock-identity { - type ptp-tt:clock-identity; - config false; - description - "The clock identity of the application clock."; - reference - "Item a) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf clock-target { - type boolean; - config false; - description - "The Boolean value indicates if the application clock is a - clock target (TRUE) or clock source (FALSE)."; - reference - "Item b) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf attached-ptp-instance-index { - type leafref { - path "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:instance-index"; - } - config false; - description - "The value is a reference to the index of the PTP or hot - standby Instance, that is attached to the application - clock."; - reference - "Item f) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf arb-supported { - type boolean; - config false; - description - "The Boolean value indicates if the application clock - supports the ARB timescale."; - reference - "Item c) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf ptp-supported { - type boolean; - config false; - description - "The Boolean value indicates if the application clock - supports the PTP timescale."; - reference - "Item d) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf hot-standby-supported { - type boolean; - config false; - description - "The Boolean value indicates if the application clock - supports the hot standby."; - reference - "Item e) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - leaf is-synced { - type boolean; - config false; - description - "The Boolean value indicates if the application clock is - either synchronized to the attached PTP Instance (TRUE) - or to an internal/external ClockSource (FALSE)."; - reference - "Item g) in 6.4.10.3.7.7 of IEC/IEEE 60802"; - } - } - } -} - +module iecieee60802-bridge { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-bridge"; + prefix ia-bridge; + + import ieee802-types { + prefix ieee802; + } + import ieee802-dot1q-bridge { + prefix bridge; + } + import ietf-interfaces { + prefix if; + } + import ieee802-dot1q-types { + prefix dot1q-types; + } + import ieee1588-ptp-tt { + prefix ptp-tt; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 provide information about + IEC/IEEE 60802 IA-Stations as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-03-12 { + description + "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + augment "/if:interfaces/if:interface/bridge:bridge-port" { + description + "Augment IEEE Std 802.1 bridge."; + list max-burst-params { + key "speed"; + config false; + description + "The list of maximum burst parameters per supported line + speed."; + leaf speed { + type uint32; + description + "This value is the line speed in Mbps."; + } + leaf worst-case-packet-gap { + type uint8; + config false; + description + "The value is the worst case maximum inter-packet gap + between consecutive frames in a traffic burst expressed + in bit-times."; + reference + "Item a) in 6.4.10.3.3.1 of IEC/IEEE 60802"; + } + leaf max-burst-frames { + type uint8; + config false; + description + "The value is the maximum number of frames that can be sent + with minimal inter packet gap."; + reference + "Item b) in 6.4.10.3.3.1 of IEC/IEEE 60802"; + } + leaf max-burst-bytes { + type uint8; + config false; + description + "The value is the maximum number of octets that can be sent + with minimal inter packet gap."; + reference + "Item c) in 6.4.10.3.3.1 of IEC/IEEE 60802"; + } + } + list committed-data-rates { + key "traffic-class speed"; + config false; + description + "The list of committed data rates per traffic class and + supported line speed."; + leaf traffic-class { + type dot1q-types:traffic-class-type; + description + "The traffic class of the entry (0..7)."; + reference + "8.6.6 of IEEE Std 802.1Q"; + } + leaf speed { + type uint32; + description + "This value is the line speed in Mbps."; + } + leaf committed-information-rate { + type uint32; + config false; + description + "The value is the bandwidth limit in kbit/s."; + reference + "Item a) in 6.4.10.3.3.2 of IEC/IEEE 60802"; + } + leaf committed-burst-size { + type uint32; + config false; + description + "The value is the burst size limit in bytes."; + reference + "Item b) in 6.4.10.3.3.2 of IEC/IEEE 60802"; + } + } + list transmission-selection-algorithm { + key "traffic-class"; + config false; + description + "The list of supported transmission selection algorithms + according to 8.6.8 of IEEE Std 802.1Q per traffic class."; + leaf traffic-class { + type dot1q-types:traffic-class-type; + config false; + description + "Traffic class. (0..7)"; + reference + "8.6.6 of IEEE Std 802.1Q"; + } + list algorithms { + key "algorithm"; + config false; + description + "The list of supported transmission selection algorithms + according to 8.6.8 of IEEE Std 802.1Q for this traffic + class."; + leaf algorithm { + type identityref { + base dot1q-types:transmission-selection-algorithm; + } + config false; + description + "Transmission selection algorithm"; + reference + "8.6.8 of IEEE Std 802.1Q"; + } + } + } + list supported-resource-pools { + key "resource-pool-name"; + config false; + description + "The list of supported buffer resource pools."; + leaf resource-pool-name { + type string; + config false; + description + "The value is the name of a resource pool."; + reference + "Item a) in 6.4.10.3.4.2 of IEC/IEEE 60802"; + } + container covered-time-interval { + config false; + uses ieee802:rational-grouping; + description + "The value is the covered buffering time given as rational + number of seconds for the highest supported link speed."; + reference + "Item b) in 6.4.10.3.4.2 of IEC/IEEE 60802"; + } + list resource-pool-traffic-classes { + key "traffic-class"; + config false; + description + "The list of the traffic classes to be served by the + resource pool."; + reference + "Item c) in 6.4.10.3.4.2 of IEC/IEEE 60802"; + leaf traffic-class { + type dot1q-types:traffic-class-type; + description + "The traffic class of the entry."; + reference + "8.6.6 of IEEE Std 802.1Q"; + } + } + } + list phy-latencies { + key "mau-type"; + config false; + description + "Latency information for each MAU type"; + leaf mau-type { + type int32; + config false; + description + "The MAU type"; + } + leaf latency { + type uint32; + config false; + description + "The PHY latency in ns"; + reference + "6.4.10.3.6.3 of IEC/IEEE 60802"; + } + leaf latency-variation { + type uint16; + config false; + description + "The PHY latency variation in ns"; + reference + "6.4.10.3.6.4 of IEC/IEEE 60802"; + } + } + } + + augment "/bridge:bridges/bridge:bridge/bridge:component" { + description + "Augment IEEE Std 802.1 bridge component."; + leaf frer-supported { + type boolean; + config false; + description + "The Boolean value indicates if FRER is supported."; + reference + "6.4.10.3.5.1 of IEC/IEEE 60802"; + } + leaf max-redundant-streams { + type uint32; + config false; + description + "The value is the maximum number of supported redundant + streams."; + reference + "6.4.10.3.5.2 of IEC/IEEE 60802"; + } + leaf max-fids { + type uint16; + config false; + description + "The value is the maximum number of supported FIDs."; + reference + "6.4.10.3.7.1 of IEC/IEEE 60802"; + } + list max-fdb-entries { + key "fid"; + config false; + description + "The list of the maximum number of static and dynamic + FDB entries per FID."; + reference + "6.4.10.3.7.2 of IEC/IEEE 60802"; + leaf fid { + type uint16; + config false; + description + "The FID number"; + } + leaf max-static-fdb-entries { + type uint16; + config false; + description + "The value is the maximum number of static FDB + entries."; + reference + "6.4.10.3.7.3 of IEC/IEEE 60802"; + } + leaf max-dynamic-fdb-entries { + type uint16; + config false; + description + "The value is the maximum number of dynamic FDB entries."; + reference + "6.4.10.3.7.4 of IEC/IEEE 60802"; + } + } + choice delay-variance { + config false; + description + "The value indicates variance in delay depending upon the use + of a singleValue or multipleValues."; + reference + "6.4.10.3.6.1 of IEC/IEEE 60802"; + case single-value { + list independent-delays { + key "in-port-mau-type out-port-mau-type traffic-class"; + config false; + description + "The list of minimum and maximum frame length + independent delay time values of frames as they pass + through a bridge component."; + reference + "6.4.10.3.6.2 of IEC/IEEE 60802"; + leaf in-port-mau-type { + type int32; + config false; + description + "The MAU type of the input port"; + } + leaf out-port-mau-type { + type int32; + config false; + description + "The MAU type of the input port"; + } + leaf traffic-class { + type dot1q-types:traffic-class-type; + config false; + description + "The traffic class of the entry."; + reference + "8.6.6 of IEEE Std 802.1Q"; + } + leaf independent-delay-min { + type uint32; + config false; + description + "The value is the minimum delay portion that is + independent of frame length according to 12.32.1.1. + of IEEE 802.1Q"; + reference + "Item a) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + leaf independent-delay-max { + type uint32; + config false; + description + "The value is the maximum delay portion that is + independent of frame length according to 12.32.1.1. + of IEEE 802.1Q"; + reference + "Item b) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + } + list dependent-delays { + key "in-port-line-speed"; + config false; + description + "The list of minimum and maximum frame length dependent + delay time values of frames as they pass through a + bridge component"; + reference + "6.4.10.3.6.2 of IEC/IEEE 60802"; + leaf in-port-line-speed { + type uint32; + config false; + description + "This value is the line speed in Mbps."; + } + leaf dependent-delay-min { + type uint32; + config false; + description + "The value is the minimum delay portion that is + dependent on frame length according to 12.32.1.2. + of IEEE 802.1Q"; + reference + "Item c) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + leaf dependent-delay-max { + type uint32; + config false; + description + "The value is the maximum delay portion that is + dependent on frame length according to 12.32.1.2. + of IEEE 802.1Q"; + reference + "Item d) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + } + } + case multiple-values { + list independent-delays-cascaded { + key "in-port in-port-mau-type out-port out-port-mau-type + traffic-class"; + config false; + description + "The list of minimum and maximum frame length + independent delay time values of frames as they pass + through a bridge component."; + reference + "6.4.10.3.6.2 of IEC/IEEE 60802"; + leaf in-port { + type uint8; + config false; + description + "The port number of the input port"; + } + leaf in-port-mau-type { + type int32; + config false; + description + "The MAU type of the input port"; + } + leaf out-port { + type uint8; + config false; + description + "The port number of the output port"; + } + leaf out-port-mau-type { + type int32; + config false; + description + "The MAU type of the input port"; + } + leaf traffic-class { + type dot1q-types:traffic-class-type; + config false; + description + "The traffic class of the entry."; + reference + "8.6.6 of IEEE Std 802.1Q"; + } + leaf independent-delay-min { + type uint32; + config false; + description + "The value is the minimum delay portion that is + independent of frame length according to 12.32.1.1. + of IEEE 802.1Q"; + reference + "Item a) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + leaf independent-delay-max { + type uint32; + config false; + description + "The value is the maximum delay portion that is + independent of frame length according to 12.32.1.1. + of IEEE 802.1Q"; + reference + "Item b) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + } + list dependent-delays-cascaded { + key "in-port in-port-line-speed out-port"; + config false; + description + "The list of minimum and maximum frame length dependent + delay time values of frames as they pass through a + bridge component"; + reference + "6.4.10.3.6.2 of IEC/IEEE 60802"; + leaf in-port { + type uint8; + config false; + description + "The port number of the input port"; + } + leaf in-port-line-speed { + type uint32; + config false; + description + "This value is the line speed in Mbps."; + } + leaf out-port { + type uint8; + config false; + description + "The port number of the output port"; + } + leaf dependent-delay-min { + type uint32; + config false; + description + "The value is the minimum delay portion that is + dependent on frame length according to 12.32.1.2. + of IEEE 802.1Q"; + reference + "Item c) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + leaf dependent-delay-max { + type uint32; + config false; + description + "The value is the maximum delay portion that is + dependent on frame length according to 12.32.1.2. + of IEEE 802.1Q"; + reference + "Item d) in 6.4.10.3.6.2 of IEC/IEEE 60802"; + } + } + } + } + leaf max-ptp-instances { + type uint8; + config false; + description + "The value is the maximum number of supported PTP + Instances."; + reference + "6.4.10.3.7.5 of IEC/IEEE 60802"; + } + leaf max-hot-standby-systems { + type uint8; + config false; + description + "The value is the maximum number of supported + HotStandbySystem entities"; + reference + "6.4.10.3.7.6 of IEC/IEEE 60802"; + } + list clock { + key "clock-identity"; + config false; + description + "The list of supported application clock entities."; + reference + "6.4.10.3.7.7 of IEC/IEEE 60802"; + leaf clock-identity { + type ptp-tt:clock-identity; + config false; + description + "The clock identity of the application clock."; + reference + "Item a) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf clock-target { + type boolean; + config false; + description + "The Boolean value indicates if the application clock is a + clock target (TRUE) or clock source (FALSE)."; + reference + "Item b) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf attached-ptp-instance-index { + type leafref { + path "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:instance-index"; + } + config false; + description + "The value is a reference to the index of the PTP or hot + standby Instance, that is attached to the application + clock."; + reference + "Item f) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf arb-supported { + type boolean; + config false; + description + "The Boolean value indicates if the application clock + supports the ARB timescale."; + reference + "Item c) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf ptp-supported { + type boolean; + config false; + description + "The Boolean value indicates if the application clock + supports the PTP timescale."; + reference + "Item d) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf hot-standby-supported { + type boolean; + config false; + description + "The Boolean value indicates if the application clock + supports the hot standby."; + reference + "Item e) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + leaf is-synced { + type boolean; + config false; + description + "The Boolean value indicates if the application clock is + either synchronized to the attached PTP Instance (TRUE) + or to an internal/external ClockSource (FALSE)."; + reference + "Item g) in 6.4.10.3.7.7 of IEC/IEEE 60802"; + } + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-cnc-config.yang b/standard/ieee/published/60802/iecieee60802-cnc-config.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-cnc-config.yang rename to standard/ieee/published/60802/iecieee60802-cnc-config.yang index f6f4cc734..7f5694a9c --- a/standard/ieee/draft/60802/iecieee60802-cnc-config.yang +++ b/standard/ieee/published/60802/iecieee60802-cnc-config.yang @@ -1,200 +1,200 @@ -module iecieee60802-cnc-config { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-cnc-config"; - prefix ia-cnc-config; - - import ieee802-dot1q-cnc-config { - prefix dot1q-cnc-config; - } - import ieee802-dot1q-tsn-types { - prefix tsn-types; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 provide information about IEC/IEEE 60802 - IA-Stations as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-01-10 { - description "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - augment "/dot1q-cnc-config:cnc-config" { - description - "Augment main container in cnc-config."; - leaf max-config-domains { - type uint8; - config false; - description - "The value is the maximum number of supported configuration - domains."; - reference - "6.4.10.3.9.1 of IEC/IEEE 60802"; - } - leaf max-cucs { - type uint8; - config false; - description - "The value is the maximum number of supported CUC entities."; - reference - "6.4.10.3.9.2 of IEC/IEEE 60802"; - } - leaf max-ia-stations { - type uint16; - config false; - description - "The value is the maximum number of supported IA-stations."; - reference - "6.4.10.3.9.3 of IEC/IEEE 60802"; - } - leaf max-network-diameter { - type uint8; - config false; - description - "The value is the maximum supported network diameter."; - reference - "6.4.10.3.9.4 of IEC/IEEE 60802"; - } - leaf max-streams { - type uint16; - config false; - description - "The value is the maximum number of supported streams."; - reference - "6.4.10.3.9.5 of IEC/IEEE 60802"; - } - leaf max-num-seamless-trees { - type uint8; - config false; - description - "The value is the maximum number of trees supported for - seamless redundancy of a stream."; - reference - "6.4.10.3.9.6 of IEC/IEEE 60802"; - } - leaf hot-standby-supported { - type uint8; - config false; - description - "The Boolean value indicates if PTP hot standby is - supported."; - reference - "6.4.10.3.9.7 of IEC/IEEE 60802"; - } - action add_streams { - description - "This Action requests a CNC to add a list of streams."; - input { - leaf cuc-id { - type string; - description - "The CUC ID where the streams are to be added"; - } - list stream-list { - key "stream-id"; - description - "List of Streams that should be added."; - leaf stream-id { - type tsn-types:stream-id-type; - description - "The Stream ID is a unique identifier of a Stream - request and corresponding configuration. It is used to - associate a CUC’s Stream request with a CNC’s - corresponding response."; - } - container talker { - description - "The Talker container contains: - Talker’s behavior for - Stream (how/when transmitted) - Talker’s requirements - from the network - TSN capabilities of the Talker’s - interface(s)."; - uses tsn-types:group-talker; - } - list listener { - key "index"; - description - "Each Listener list entry contains: - Listener’s - requirements from the network - TSN capabilities of - the Listener’s interface(s)."; - leaf index { - type uint32; - description - "This index is provided in order to provide a unique - key per list entry."; - } - uses tsn-types:group-listener; - } - } - } - output { - leaf result { - type boolean; - description - "Returns status information indicating if Stream addition - has been successful."; - } - } - } - } - - augment "/dot1q-cnc-config:cnc-config/dot1q-cnc-config:domain/dot1q-cnc-config:cuc/dot1q-cnc-config:stream" { - description - "Augment stream list in tsc-config-uni."; - action remove_listener { - description - "This Action removes listeners from a stream."; - input { - list listener { - key "index"; - description - "Each Listener list entry contains: - Listener’s - requirements from the network - TSN capabilities of the - Listener’s interface(s)."; - leaf index { - type uint32; - description - "This index is provided in order to provide a unique - key per list entry."; - } - } - } - output { - leaf result { - type boolean; - description - "Returns status information indicating if listene removal - has been successful."; - } - } - } - } -} - +module iecieee60802-cnc-config { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-cnc-config"; + prefix ia-cnc-config; + + import ieee802-dot1q-cnc-config { + prefix dot1q-cnc-config; + } + import ieee802-dot1q-tsn-types { + prefix tsn-types; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 provide information about IEC/IEEE 60802 + IA-Stations as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-01-10 { + description "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + augment "/dot1q-cnc-config:cnc-config" { + description + "Augment main container in cnc-config."; + leaf max-config-domains { + type uint8; + config false; + description + "The value is the maximum number of supported configuration + domains."; + reference + "6.4.10.3.9.1 of IEC/IEEE 60802"; + } + leaf max-cucs { + type uint8; + config false; + description + "The value is the maximum number of supported CUC entities."; + reference + "6.4.10.3.9.2 of IEC/IEEE 60802"; + } + leaf max-ia-stations { + type uint16; + config false; + description + "The value is the maximum number of supported IA-stations."; + reference + "6.4.10.3.9.3 of IEC/IEEE 60802"; + } + leaf max-network-diameter { + type uint8; + config false; + description + "The value is the maximum supported network diameter."; + reference + "6.4.10.3.9.4 of IEC/IEEE 60802"; + } + leaf max-streams { + type uint16; + config false; + description + "The value is the maximum number of supported streams."; + reference + "6.4.10.3.9.5 of IEC/IEEE 60802"; + } + leaf max-num-seamless-trees { + type uint8; + config false; + description + "The value is the maximum number of trees supported for + seamless redundancy of a stream."; + reference + "6.4.10.3.9.6 of IEC/IEEE 60802"; + } + leaf hot-standby-supported { + type uint8; + config false; + description + "The Boolean value indicates if PTP hot standby is + supported."; + reference + "6.4.10.3.9.7 of IEC/IEEE 60802"; + } + action add_streams { + description + "This Action requests a CNC to add a list of streams."; + input { + leaf cuc-id { + type string; + description + "The CUC ID where the streams are to be added"; + } + list stream-list { + key "stream-id"; + description + "List of Streams that should be added."; + leaf stream-id { + type tsn-types:stream-id-type; + description + "The Stream ID is a unique identifier of a Stream + request and corresponding configuration. It is used to + associate a CUC’s Stream request with a CNC’s + corresponding response."; + } + container talker { + description + "The Talker container contains: - Talker’s behavior for + Stream (how/when transmitted) - Talker’s requirements + from the network - TSN capabilities of the Talker’s + interface(s)."; + uses tsn-types:group-talker; + } + list listener { + key "index"; + description + "Each Listener list entry contains: - Listener’s + requirements from the network - TSN capabilities of + the Listener’s interface(s)."; + leaf index { + type uint32; + description + "This index is provided in order to provide a unique + key per list entry."; + } + uses tsn-types:group-listener; + } + } + } + output { + leaf result { + type boolean; + description + "Returns status information indicating if Stream addition + has been successful."; + } + } + } + } + + augment "/dot1q-cnc-config:cnc-config/dot1q-cnc-config:domain/dot1q-cnc-config:cuc/dot1q-cnc-config:stream" { + description + "Augment stream list in tsc-config-uni."; + action remove_listener { + description + "This Action removes listeners from a stream."; + input { + list listener { + key "index"; + description + "Each Listener list entry contains: - Listener’s + requirements from the network - TSN capabilities of the + Listener’s interface(s)."; + leaf index { + type uint32; + description + "This index is provided in order to provide a unique + key per list entry."; + } + } + } + output { + leaf result { + type boolean; + description + "Returns status information indicating if listene removal + has been successful."; + } + } + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-ethernet-interface.yang b/standard/ieee/published/60802/iecieee60802-ethernet-interface.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-ethernet-interface.yang rename to standard/ieee/published/60802/iecieee60802-ethernet-interface.yang index 4cadeba49..ab73aeddc --- a/standard/ieee/draft/60802/iecieee60802-ethernet-interface.yang +++ b/standard/ieee/published/60802/iecieee60802-ethernet-interface.yang @@ -1,81 +1,81 @@ -module iecieee60802-ethernet-interface { - yang-version 1.1; - namespace - "urn:ieee:std:60802:yang:iecieee60802-ethernet-interface"; - prefix ia-eth-if; - - import ieee802-ethernet-interface { - prefix eth-if; - } - import ietf-interfaces { - prefix if; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 provide information about IEC/IEEE 60802 - IA-Stations as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-03-12 { - description "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - augment "/if:interfaces/if:interface/eth-if:ethernet" { - description - "Augment IEEE Std 802.3 ethernet."; - list supported-mau-types { - key "mau-type"; - config false; - description - "Contains a list of supported MAU parameters."; - leaf mau-type { - type int32; - config false; - description - "The value is the supported MAU Type derived from the list - position of the corresponding dot3MauType as listed in - Clause 5 of IETF RFC 4836."; - reference - "Item a) in 6.4.10.3.2.1 of IEC/IEEE 60802"; - } - leaf preemption-supported { - type boolean; - config false; - description - "The Boolean value indicates if preemption is supported by - the MAU Type."; - reference - "Item b) in 6.4.10.3.2.1 of IEC/IEEE 60802"; - } - } - } -} - +module iecieee60802-ethernet-interface { + yang-version 1.1; + namespace + "urn:ieee:std:60802:yang:iecieee60802-ethernet-interface"; + prefix ia-eth-if; + + import ieee802-ethernet-interface { + prefix eth-if; + } + import ietf-interfaces { + prefix if; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 provide information about IEC/IEEE 60802 + IA-Stations as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-03-12 { + description "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + augment "/if:interfaces/if:interface/eth-if:ethernet" { + description + "Augment IEEE Std 802.3 ethernet."; + list supported-mau-types { + key "mau-type"; + config false; + description + "Contains a list of supported MAU parameters."; + leaf mau-type { + type int32; + config false; + description + "The value is the supported MAU Type derived from the list + position of the corresponding dot3MauType as listed in + Clause 5 of IETF RFC 4836."; + reference + "Item a) in 6.4.10.3.2.1 of IEC/IEEE 60802"; + } + leaf preemption-supported { + type boolean; + config false; + description + "The Boolean value indicates if preemption is supported by + the MAU Type."; + reference + "Item b) in 6.4.10.3.2.1 of IEC/IEEE 60802"; + } + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-ia-station.yang b/standard/ieee/published/60802/iecieee60802-ia-station.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-ia-station.yang rename to standard/ieee/published/60802/iecieee60802-ia-station.yang index 18c7e8021..ba2f65c6f --- a/standard/ieee/draft/60802/iecieee60802-ia-station.yang +++ b/standard/ieee/published/60802/iecieee60802-ia-station.yang @@ -1,207 +1,207 @@ -module iecieee60802-ia-station { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-ia-station"; - prefix ias; - - import ietf-datastores { - prefix ds; - reference - "IETF RFC 8342: Network Management Datastore Architecture - (NMDA)"; - } - import ietf-netconf-acm { - prefix nacm; - reference - "IETF RFC 8341: Network Configuration Access Control Model"; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 - "Capability information and reset to factory defaults - functionality for IEC/IEEE 60802 IA-Stations as specified in - IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-03-12 { - description "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - feature ia-factory-default-datastore { - description - "Indicates that the factory default configuration is - available as a datastore."; - } - - identity ia-factory-default { - if-feature "ia-factory-default-datastore"; - base ds:datastore; - description - "This read-only datastore contains the factory default - configuration for the device that will be used to replace - the contents of the read-write conventional configuration - datastores during a 'ia-factory-reset' RPC operation."; - } - - container ia-station-capabilities { - config false; - description - "This container provides read only information about an - ia-station's capabilities."; - reference - "IEC/IEEE 60802 - YANG Data Model"; - leaf capability-lldp { - type boolean; - config false; - description - "The value is true if the device supports LLDP."; - reference - "6.4.10.3.8.5 of IEC/IEEE 60802"; - } - leaf capability-timesync { - type boolean; - config false; - description - "The value is true if the device supports Timesync."; - reference - "6.4.10.3.8.6 of IEC/IEEE 60802"; - } - leaf capability-keystore { - type boolean; - config false; - description - "The value is true if the device supports Keystore."; - reference - "6.4.10.3.8.7 of IEC/IEEE 60802"; - } - leaf capability-truststore { - type boolean; - config false; - description - "The value is true if the device supports Truststore."; - reference - "6.4.10.3.8.9 of IEC/IEEE 60802"; - } - leaf capability-nacm { - type boolean; - config false; - description - "The value is true if the device supports NACM."; - reference - "6.4.10.3.8.8 of IEC/IEEE 60802"; - } - leaf capability-yang-library { - type boolean; - config false; - description - "The value is true if the device supports YANG library."; - reference - "6.4.10.3.8.10 of IEC/IEEE 60802"; - } - leaf capability-yang-push { - type boolean; - config false; - description - "The value is true if the device supports YANG push."; - reference - "6.4.10.3.8.11 of IEC/IEEE 60802"; - } - leaf capability-yang-notifications { - type boolean; - config false; - description - "The value is true if the device supports YANG - notifications."; - reference - "6.4.10.3.8.12 of IEC/IEEE 60802"; - } - leaf capability-netconf-monitoring { - type boolean; - config false; - description - "The value is true if the device supports NETCONF - monitoring."; - reference - "6.4.10.3.8.13 of IEC/IEEE 60802"; - } - leaf capability-netconf-client { - type boolean; - config false; - description - "The value is true if the device supports NETCONF client."; - reference - "6.4.10.3.8.14 of IEC/IEEE 60802"; - } - leaf capability-cnc-config { - type boolean; - config false; - description - "The value is true if the device supports the CNC configuration."; - reference - "6.4.10.3.8.15 of IEC/IEEE 60802"; - } - leaf capability-sched-traffic { - type boolean; - config false; - description - "The value is true if the device supports scheduled - traffic."; - reference - "6.4.10.3.8.16 of IEC/IEEE 60802"; - } - leaf capability-frame-preemption { - type boolean; - config false; - description - "The value is true if the device supports frame preemption."; - reference - "6.4.10.3.8.17 of IEC/IEEE 60802"; - } - } - - rpc ia-factory-reset { - nacm:default-deny-all; - description - "The server resets all datastores to their factory - default contents and any nonvolatile storage back to - factory condition, deleting all dynamically - generated files, including those containing keys, - certificates, logs, and other temporary files. - - Depending on the factory default configuration, after - being reset, the device may become unreachable on the - network. - - In contrast to the original factory-reset RPC in IETF RFC - 8808, this RPC puts the device into a state where a - subsequent configuration by a CNC component results in a - functioning 60802 IA-station"; - } -} - +module iecieee60802-ia-station { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-ia-station"; + prefix ias; + + import ietf-datastores { + prefix ds; + reference + "IETF RFC 8342: Network Management Datastore Architecture + (NMDA)"; + } + import ietf-netconf-acm { + prefix nacm; + reference + "IETF RFC 8341: Network Configuration Access Control Model"; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 + "Capability information and reset to factory defaults + functionality for IEC/IEEE 60802 IA-Stations as specified in + IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-03-12 { + description "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + feature ia-factory-default-datastore { + description + "Indicates that the factory default configuration is + available as a datastore."; + } + + identity ia-factory-default { + if-feature "ia-factory-default-datastore"; + base ds:datastore; + description + "This read-only datastore contains the factory default + configuration for the device that will be used to replace + the contents of the read-write conventional configuration + datastores during a 'ia-factory-reset' RPC operation."; + } + + container ia-station-capabilities { + config false; + description + "This container provides read only information about an + ia-station's capabilities."; + reference + "IEC/IEEE 60802 - YANG Data Model"; + leaf capability-lldp { + type boolean; + config false; + description + "The value is true if the device supports LLDP."; + reference + "6.4.10.3.8.5 of IEC/IEEE 60802"; + } + leaf capability-timesync { + type boolean; + config false; + description + "The value is true if the device supports Timesync."; + reference + "6.4.10.3.8.6 of IEC/IEEE 60802"; + } + leaf capability-keystore { + type boolean; + config false; + description + "The value is true if the device supports Keystore."; + reference + "6.4.10.3.8.7 of IEC/IEEE 60802"; + } + leaf capability-truststore { + type boolean; + config false; + description + "The value is true if the device supports Truststore."; + reference + "6.4.10.3.8.9 of IEC/IEEE 60802"; + } + leaf capability-nacm { + type boolean; + config false; + description + "The value is true if the device supports NACM."; + reference + "6.4.10.3.8.8 of IEC/IEEE 60802"; + } + leaf capability-yang-library { + type boolean; + config false; + description + "The value is true if the device supports YANG library."; + reference + "6.4.10.3.8.10 of IEC/IEEE 60802"; + } + leaf capability-yang-push { + type boolean; + config false; + description + "The value is true if the device supports YANG push."; + reference + "6.4.10.3.8.11 of IEC/IEEE 60802"; + } + leaf capability-yang-notifications { + type boolean; + config false; + description + "The value is true if the device supports YANG + notifications."; + reference + "6.4.10.3.8.12 of IEC/IEEE 60802"; + } + leaf capability-netconf-monitoring { + type boolean; + config false; + description + "The value is true if the device supports NETCONF + monitoring."; + reference + "6.4.10.3.8.13 of IEC/IEEE 60802"; + } + leaf capability-netconf-client { + type boolean; + config false; + description + "The value is true if the device supports NETCONF client."; + reference + "6.4.10.3.8.14 of IEC/IEEE 60802"; + } + leaf capability-cnc-config { + type boolean; + config false; + description + "The value is true if the device supports the CNC configuration."; + reference + "6.4.10.3.8.15 of IEC/IEEE 60802"; + } + leaf capability-sched-traffic { + type boolean; + config false; + description + "The value is true if the device supports scheduled + traffic."; + reference + "6.4.10.3.8.16 of IEC/IEEE 60802"; + } + leaf capability-frame-preemption { + type boolean; + config false; + description + "The value is true if the device supports frame preemption."; + reference + "6.4.10.3.8.17 of IEC/IEEE 60802"; + } + } + + rpc ia-factory-reset { + nacm:default-deny-all; + description + "The server resets all datastores to their factory + default contents and any nonvolatile storage back to + factory condition, deleting all dynamically + generated files, including those containing keys, + certificates, logs, and other temporary files. + + Depending on the factory default configuration, after + being reset, the device may become unreachable on the + network. + + In contrast to the original factory-reset RPC in IETF RFC + 8808, this RPC puts the device into a state where a + subsequent configuration by a CNC component results in a + functioning 60802 IA-station"; + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-proxy-target.yang b/standard/ieee/published/60802/iecieee60802-proxy-target.yang old mode 100644 new mode 100755 similarity index 97% rename from standard/ieee/draft/60802/iecieee60802-proxy-target.yang rename to standard/ieee/published/60802/iecieee60802-proxy-target.yang index 33edf5b9b..921929a85 --- a/standard/ieee/draft/60802/iecieee60802-proxy-target.yang +++ b/standard/ieee/published/60802/iecieee60802-proxy-target.yang @@ -1,64 +1,64 @@ -module iecieee60802-proxy-target { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-proxy-target"; - prefix cd; - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 - "Capability information for IEC/IEEE 60802 proxy targets as - specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-01-08 { - description - "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - container proxy-target { - presence "The presence of this container indicates that an IA station - is a proxy target that requires a proxy device"; - description - "This container provides information about a - 60802 proxy target device."; - reference - "IEC/IEEE 60802 - YANG Data Model"; - leaf required-proxy-type { - type string { - pattern '[0-9A-F]{2}(-[0-9A-F]{2}){2}'; - } - config false; - description - "OID of proxy that this proxy target requires."; - reference - "6.4.10.3.10.1 of IEC/IEEE 60802"; - } - } -} - +module iecieee60802-proxy-target { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-proxy-target"; + prefix cd; + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 + "Capability information for IEC/IEEE 60802 proxy targets as + specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-01-08 { + description + "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + container proxy-target { + presence "The presence of this container indicates that an IA station + is a proxy target that requires a proxy device"; + description + "This container provides information about a + 60802 proxy target device."; + reference + "IEC/IEEE 60802 - YANG Data Model"; + leaf required-proxy-type { + type string { + pattern '[0-9A-F]{2}(-[0-9A-F]{2}){2}'; + } + config false; + description + "OID of proxy that this proxy target requires."; + reference + "6.4.10.3.10.1 of IEC/IEEE 60802"; + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-proxy.yang b/standard/ieee/published/60802/iecieee60802-proxy.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-proxy.yang rename to standard/ieee/published/60802/iecieee60802-proxy.yang index fb8e0e595..fea66df19 --- a/standard/ieee/draft/60802/iecieee60802-proxy.yang +++ b/standard/ieee/published/60802/iecieee60802-proxy.yang @@ -1,145 +1,145 @@ -module iecieee60802-proxy { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-proxy"; - prefix pr; - - import ieee802-types { - prefix ieee; - } - import ietf-inet-types { - prefix inet; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 - "Configuration and capability information for IEC/IEEE 60802 proxy - targets as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-03-12 { - description - "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - container proxy { - presence "The presence of this container indicates that this IA station provides proxy functionality for proxy targets"; - description - "This container provides information about a - 60802 IA station with proxy functionality."; - reference - "IEC/IEEE 60802 - YANG Data Model"; - leaf max-num-proxy-targets { - type uint16; - config false; - description - "The value indicates how many proxy targets can be handled by this proxy component."; - reference - "6.4.10.3.9.1 of IEC/IEEE 60802"; - } - list proxy-types { - key "proxy-type"; - config false; - description - "Supported proxy types"; - leaf proxy-type { - type string { - pattern '[0-9A-F]{2}(-[0-9A-F]{2}){2}'; - } - config false; - description - "OID of proxy targets handled by this proxy."; - reference - "6.4.10.3.9.2 of IEC/IEEE 60802"; - } - list proxy-targets { - key "device"; - description - "List of proxy targets that are connected to this proxy"; - leaf device { - type string; - description - "The identification of the device."; - reference - "6.4.10.3.9.3 of IEC/IEEE 60802"; - } - leaf device-type { - type string; - description - "The type of the device."; - reference - "6.4.10.3.9.4 of IEC/IEEE 60802"; - } - container proxy-addr { - description - "This container provides the address information - that is used by the CNC to configure the proxy target."; - leaf ip-addr { - type inet:ip-address; - description - "The ip-address that is used by the CNC to configure - the proxy target."; - reference - "6.4.10.3.9.5 of IEC/IEEE 60802"; - } - leaf port { - type inet:port-number; - description - "The port-number that is used by the CNC to configure - the proxy target."; - reference - "6.4.10.3.9.6 of IEC/IEEE 60802"; - } - } - container device-addr { - description - "This container provides the address information - that is used by the proxy to address the proxy target."; - leaf ip-addr { - type inet:ip-address; - description - "The ip-address that is used by the proxy to address - the proxy target."; - reference - "6.4.10.3.9.7 of IEC/IEEE 60802"; - } - leaf mac-addr { - type ieee:mac-address; - description - "The mac-address that is used by the proxy to address - the proxy target."; - reference - "6.4.10.3.9.8 of IEC/IEEE 60802"; - } - } - } - } - } -} - +module iecieee60802-proxy { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-proxy"; + prefix pr; + + import ieee802-types { + prefix ieee; + } + import ietf-inet-types { + prefix inet; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 + "Configuration and capability information for IEC/IEEE 60802 proxy + targets as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-03-12 { + description + "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + container proxy { + presence "The presence of this container indicates that this IA station provides proxy functionality for proxy targets"; + description + "This container provides information about a + 60802 IA station with proxy functionality."; + reference + "IEC/IEEE 60802 - YANG Data Model"; + leaf max-num-proxy-targets { + type uint16; + config false; + description + "The value indicates how many proxy targets can be handled by this proxy component."; + reference + "6.4.10.3.9.1 of IEC/IEEE 60802"; + } + list proxy-types { + key "proxy-type"; + config false; + description + "Supported proxy types"; + leaf proxy-type { + type string { + pattern '[0-9A-F]{2}(-[0-9A-F]{2}){2}'; + } + config false; + description + "OID of proxy targets handled by this proxy."; + reference + "6.4.10.3.9.2 of IEC/IEEE 60802"; + } + list proxy-targets { + key "device"; + description + "List of proxy targets that are connected to this proxy"; + leaf device { + type string; + description + "The identification of the device."; + reference + "6.4.10.3.9.3 of IEC/IEEE 60802"; + } + leaf device-type { + type string; + description + "The type of the device."; + reference + "6.4.10.3.9.4 of IEC/IEEE 60802"; + } + container proxy-addr { + description + "This container provides the address information + that is used by the CNC to configure the proxy target."; + leaf ip-addr { + type inet:ip-address; + description + "The ip-address that is used by the CNC to configure + the proxy target."; + reference + "6.4.10.3.9.5 of IEC/IEEE 60802"; + } + leaf port { + type inet:port-number; + description + "The port-number that is used by the CNC to configure + the proxy target."; + reference + "6.4.10.3.9.6 of IEC/IEEE 60802"; + } + } + container device-addr { + description + "This container provides the address information + that is used by the proxy to address the proxy target."; + leaf ip-addr { + type inet:ip-address; + description + "The ip-address that is used by the proxy to address + the proxy target."; + reference + "6.4.10.3.9.7 of IEC/IEEE 60802"; + } + leaf mac-addr { + type ieee:mac-address; + description + "The mac-address that is used by the proxy to address + the proxy target."; + reference + "6.4.10.3.9.8 of IEC/IEEE 60802"; + } + } + } + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-sched-bridge.yang b/standard/ieee/published/60802/iecieee60802-sched-bridge.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-sched-bridge.yang rename to standard/ieee/published/60802/iecieee60802-sched-bridge.yang index aed0a090b..7d9529eda --- a/standard/ieee/draft/60802/iecieee60802-sched-bridge.yang +++ b/standard/ieee/published/60802/iecieee60802-sched-bridge.yang @@ -1,92 +1,92 @@ -module iecieee60802-sched-bridge { - yang-version 1.1; - namespace "urn:ieee:std:60802:yang:iecieee60802-sched-bridge"; - prefix ia-sched-bridge; - - import ieee802-types { - prefix ieee802; - } - import ieee802-dot1q-bridge { - prefix bridge; - } - import ieee802-dot1q-sched-bridge { - prefix sched-bridge; - } - import ietf-interfaces { - prefix if; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 provide information about IEC/IEEE 60802 - IA-Stations as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2025-03-12 { - description "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - augment "/if:interfaces/if:interface/bridge:bridge-port/sched-bridge:gate-parameter-table" { - description - "Augment IEEE Std 802.1 bridge/gate-parameter-table."; - list min-gating-times { - key "speed"; - config false; - description - "The list of minimum gating times per supported line speed."; - reference - "6.4.10.3.4.3 of IEC/IEEE 60802"; - leaf speed { - type uint32; - config false; - description - "This value is the line speed in Mbps."; - } - container min-cycle-time { - uses ieee802:rational-grouping; - description - "The value is the minimum value supported by this port of - the AdminCycleTime and OperCycleTime parameters given as - rational number of seconds."; - reference - "Item a) in 6.4.10.3.4.3 of IEC/IEEE 60802"; - } - leaf min-interval-time { - type uint32; - description - "The value is the minimum value supported by this port of - the TimeIntervalValue parameter in nanoseconds."; - reference - "Item b) in 6.4.10.3.4.3 of IEC/IEEE 60802"; - } - } - } -} - +module iecieee60802-sched-bridge { + yang-version 1.1; + namespace "urn:ieee:std:60802:yang:iecieee60802-sched-bridge"; + prefix ia-sched-bridge; + + import ieee802-types { + prefix ieee802; + } + import ieee802-dot1q-bridge { + prefix bridge; + } + import ieee802-dot1q-sched-bridge { + prefix sched-bridge; + } + import ietf-interfaces { + prefix if; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 provide information about IEC/IEEE 60802 + IA-Stations as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2025-03-12 { + description "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + augment "/if:interfaces/if:interface/bridge:bridge-port/sched-bridge:gate-parameter-table" { + description + "Augment IEEE Std 802.1 bridge/gate-parameter-table."; + list min-gating-times { + key "speed"; + config false; + description + "The list of minimum gating times per supported line speed."; + reference + "6.4.10.3.4.3 of IEC/IEEE 60802"; + leaf speed { + type uint32; + config false; + description + "This value is the line speed in Mbps."; + } + container min-cycle-time { + uses ieee802:rational-grouping; + description + "The value is the minimum value supported by this port of + the AdminCycleTime and OperCycleTime parameters given as + rational number of seconds."; + reference + "Item a) in 6.4.10.3.4.3 of IEC/IEEE 60802"; + } + leaf min-interval-time { + type uint32; + description + "The value is the minimum value supported by this port of + the TimeIntervalValue parameter in nanoseconds."; + reference + "Item b) in 6.4.10.3.4.3 of IEC/IEEE 60802"; + } + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-subscribed-notifications.yang b/standard/ieee/published/60802/iecieee60802-subscribed-notifications.yang old mode 100644 new mode 100755 similarity index 96% rename from standard/ieee/draft/60802/iecieee60802-subscribed-notifications.yang rename to standard/ieee/published/60802/iecieee60802-subscribed-notifications.yang index 6e1166b9c..0eb5310bf --- a/standard/ieee/draft/60802/iecieee60802-subscribed-notifications.yang +++ b/standard/ieee/published/60802/iecieee60802-subscribed-notifications.yang @@ -1,92 +1,92 @@ -module iecieee60802-subscribed-notifications { - yang-version 1.1; - namespace - "urn:ieee:std:60802:yang:iecieee60802-subscribed-notifications"; - prefix ia-sn; - - import ietf-subscribed-notifications { - prefix sn; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 provide information about IEC/IEEE 60802 - IA-Stations as specified in IEC/IEEE 60802. - - Copyright (C) IEC/IEEE (2025). - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - - revision 2024-02-21 { - description "Published as part of IEC/IEEE 60802-2025. - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - augment "/sn:subscriptions" { - description - "Augment subscriptions in ietf-subscribed-notifications."; - leaf max-subscriptions { - type uint16; - config false; - description - "The value is the maximum number of supported NETCONF Server - subscriptions."; - reference - "6.4.10.3.8.1 of IEC/IEEE 60802"; - } - leaf max-on-change-subscription-leaves { - type uint16; - config false; - description - "The value is the maximum number of supported leaves for - NETCONF Server on-change subscriptions according to IETF - RFC 8641."; - reference - "6.4.10.3.8.2 of IEC/IEEE 60802"; - } - leaf max-periodic-subscription-leaves { - type uint16; - config false; - description - "The value is the maximum number of supported leaves for - NETCONF Server periodic subscriptions according to IETF - RFC 8641."; - reference - "6.4.10.3.8.3 of IEC/IEEE 60802"; - } - leaf min-periodic-subscription-interval { - type uint16; - config false; - description - "The value is the minimum periodic subscription interval in - centiseconds (0.01 seconds) for NETCONF Server periodic - subscriptions according to IETF RFC 8641."; - reference - "6.4.10.3.8.4 of IEC/IEEE 60802"; - } - } -} - +module iecieee60802-subscribed-notifications { + yang-version 1.1; + namespace + "urn:ieee:std:60802:yang:iecieee60802-subscribed-notifications"; + prefix ia-sn; + + import ietf-subscribed-notifications { + prefix sn; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 provide information about IEC/IEEE 60802 + IA-Stations as specified in IEC/IEEE 60802. + + Copyright (C) IEC/IEEE (2025). + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + + revision 2024-02-21 { + description "Published as part of IEC/IEEE 60802-2025. + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + augment "/sn:subscriptions" { + description + "Augment subscriptions in ietf-subscribed-notifications."; + leaf max-subscriptions { + type uint16; + config false; + description + "The value is the maximum number of supported NETCONF Server + subscriptions."; + reference + "6.4.10.3.8.1 of IEC/IEEE 60802"; + } + leaf max-on-change-subscription-leaves { + type uint16; + config false; + description + "The value is the maximum number of supported leaves for + NETCONF Server on-change subscriptions according to IETF + RFC 8641."; + reference + "6.4.10.3.8.2 of IEC/IEEE 60802"; + } + leaf max-periodic-subscription-leaves { + type uint16; + config false; + description + "The value is the maximum number of supported leaves for + NETCONF Server periodic subscriptions according to IETF + RFC 8641."; + reference + "6.4.10.3.8.3 of IEC/IEEE 60802"; + } + leaf min-periodic-subscription-interval { + type uint16; + config false; + description + "The value is the minimum periodic subscription interval in + centiseconds (0.01 seconds) for NETCONF Server periodic + subscriptions according to IETF RFC 8641."; + reference + "6.4.10.3.8.4 of IEC/IEEE 60802"; + } + } +} + diff --git a/standard/ieee/draft/60802/iecieee60802-tt-mapping.yang b/standard/ieee/published/60802/iecieee60802-tt-mapping.yang old mode 100644 new mode 100755 similarity index 97% rename from standard/ieee/draft/60802/iecieee60802-tt-mapping.yang rename to standard/ieee/published/60802/iecieee60802-tt-mapping.yang index 65228cc26..0517dac34 --- a/standard/ieee/draft/60802/iecieee60802-tt-mapping.yang +++ b/standard/ieee/published/60802/iecieee60802-tt-mapping.yang @@ -1,161 +1,161 @@ -module iecieee60802-tt-mapping { - yang-version "1.1"; - namespace "urn:ieee:std:60802:yang:iecieee60802-tt-mapping"; - prefix tt-mapping; - - import ieee802-dot1q-types { - prefix dot1q-types; - } - - organization - "IEEE 802.1 Working Group and IEC subcommittee 65C: - Industrial networks, of IEC technical committee 65: - Industrial-process measurement, control and automation"; - 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 - "This module provides information on characteristics of traffic classes - configured in a network to allow applications to map application traffic - classes to them. - - Copyright (C) IEC/IEEE (2025). - - This version of this YANG module is part of IEC/IEEE 60802; - see the standard itself for full legal notices."; - revision 2024-12-13 { - description - "Published as part of IEC/IEEE 60802-2025. - - The following reference statement identifies each referenced - IEEE Standard as updated by applicable amendments."; - reference - "IEC/IEEE 60802 TSN profile for industrial automation: - IEC/IEEE 60802-2025. - 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.1Qdj-2024, - IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; - } - - container tt-mapping { - description - "Top-level container for the traffic class module."; - list network { - key "network-name"; - description - "A list of networks, each containing one or more sets of traffic class - characteristics."; - leaf network-name { - type string; - description - "The network-name uniquely identifies a network."; - } - list traffic-type { - key "traffic-type-name"; - description - "A list of traffic types in the network, each with its associated - traffic type characteristics."; - leaf traffic-type-name { - type string; - description - "The traffic-type-name uniquely identifies the traffic type."; - } - leaf cyclic { - type boolean; - description - "Indicates if cyclic transmission is mandatory (TRUE) or optional (FALSE) - for this traffic type."; - reference - "4.7.2 of IEC/IEEE 60802-2025"; - } - leaf data-delivery-req { - type enumeration { - enum frame-latency { - value 0; - description - "Data delivery of a frame for a given Talker-Listener pair - occurs within a bounded timespan."; - } - enum flow-latency { - value 1; - description - "Data delivery up to a certain number of frames or data size - (including bursts of frames) occurring over a defined - period."; - } - enum deadline { - value 2; - description - "Data delivery of a frame to a given Listener occurs at or - before a specific point in time."; - } - enum no { - value 3; - description - "No special data delivery requirements."; - } - } - description - "The data-delivery-req provides information on the data - delivery requirements for this traffic type."; - reference - "4.7.2 of IEC/IEEE 60802-2025"; - } - leaf time-triggered { - type boolean; - description - "Indicates if it is required (TRUE) or optional (FALSE) that - transmission occurs at a specific point in time based upon - the Working Clock."; - reference - "4.7.2 of IEC/IEEE 60802-2025"; - } - leaf stream-based { - type boolean; - default true; - description - "Indicates if traffic of this traffic type requires - registering a stream, i.e., allocating dedicated - resources, for the traffic, before a given Talker - can start transmitting data (TRUE), or if registering - a stream is not required (FALSE)."; - reference - "4.7.2 of IEC/IEEE 60802-2025"; - } - leaf vlan-id { - type dot1q-types:vlanid; - description - "The VID this traffic type is mapped to."; - } - list redundancy { - key "vlan-id-redundant"; - description - "A list of VIDs this traffic type is mapped to for redundant - transmission. There is one entry in the list per redundant - transmission "; - leaf vlan-id-redundant { - type dot1q-types:vlanid; - description - "The VID this traffic type is mapped for a redundant transmission."; - } - } - leaf priority-value { - type dot1q-types:priority-type; - description - "The PCP this traffic type is mapped to."; - } - } - } - } -} - +module iecieee60802-tt-mapping { + yang-version "1.1"; + namespace "urn:ieee:std:60802:yang:iecieee60802-tt-mapping"; + prefix tt-mapping; + + import ieee802-dot1q-types { + prefix dot1q-types; + } + + organization + "IEEE 802.1 Working Group and IEC subcommittee 65C: + Industrial networks, of IEC technical committee 65: + Industrial-process measurement, control and automation"; + 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 + "This module provides information on characteristics of traffic classes + configured in a network to allow applications to map application traffic + classes to them. + + Copyright (C) IEC/IEEE (2025). + + This version of this YANG module is part of IEC/IEEE 60802; + see the standard itself for full legal notices."; + revision 2024-12-13 { + description + "Published as part of IEC/IEEE 60802-2025. + + The following reference statement identifies each referenced + IEEE Standard as updated by applicable amendments."; + reference + "IEC/IEEE 60802 TSN profile for industrial automation: + IEC/IEEE 60802-2025. + 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.1Qdj-2024, + IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2025."; + } + + container tt-mapping { + description + "Top-level container for the traffic class module."; + list network { + key "network-name"; + description + "A list of networks, each containing one or more sets of traffic class + characteristics."; + leaf network-name { + type string; + description + "The network-name uniquely identifies a network."; + } + list traffic-type { + key "traffic-type-name"; + description + "A list of traffic types in the network, each with its associated + traffic type characteristics."; + leaf traffic-type-name { + type string; + description + "The traffic-type-name uniquely identifies the traffic type."; + } + leaf cyclic { + type boolean; + description + "Indicates if cyclic transmission is mandatory (TRUE) or optional (FALSE) + for this traffic type."; + reference + "4.7.2 of IEC/IEEE 60802-2025"; + } + leaf data-delivery-req { + type enumeration { + enum frame-latency { + value 0; + description + "Data delivery of a frame for a given Talker-Listener pair + occurs within a bounded timespan."; + } + enum flow-latency { + value 1; + description + "Data delivery up to a certain number of frames or data size + (including bursts of frames) occurring over a defined + period."; + } + enum deadline { + value 2; + description + "Data delivery of a frame to a given Listener occurs at or + before a specific point in time."; + } + enum no { + value 3; + description + "No special data delivery requirements."; + } + } + description + "The data-delivery-req provides information on the data + delivery requirements for this traffic type."; + reference + "4.7.2 of IEC/IEEE 60802-2025"; + } + leaf time-triggered { + type boolean; + description + "Indicates if it is required (TRUE) or optional (FALSE) that + transmission occurs at a specific point in time based upon + the Working Clock."; + reference + "4.7.2 of IEC/IEEE 60802-2025"; + } + leaf stream-based { + type boolean; + default true; + description + "Indicates if traffic of this traffic type requires + registering a stream, i.e., allocating dedicated + resources, for the traffic, before a given Talker + can start transmitting data (TRUE), or if registering + a stream is not required (FALSE)."; + reference + "4.7.2 of IEC/IEEE 60802-2025"; + } + leaf vlan-id { + type dot1q-types:vlanid; + description + "The VID this traffic type is mapped to."; + } + list redundancy { + key "vlan-id-redundant"; + description + "A list of VIDs this traffic type is mapped to for redundant + transmission. There is one entry in the list per redundant + transmission "; + leaf vlan-id-redundant { + type dot1q-types:vlanid; + description + "The VID this traffic type is mapped for a redundant transmission."; + } + } + leaf priority-value { + type dot1q-types:priority-type; + description + "The PCP this traffic type is mapped to."; + } + } + } + } +} + diff --git a/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang b/standard/ieee/published/802.1/ieee802-dot1as-ftt.yang old mode 100644 new mode 100755 similarity index 69% rename from standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang rename to standard/ieee/published/802.1/ieee802-dot1as-ftt.yang index 005298518..5159b6d8b --- a/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang +++ b/standard/ieee/published/802.1/ieee802-dot1as-ftt.yang @@ -20,33 +20,37 @@ module ieee802-dot1as-ftt { USA E-mail: stds-802-1-chairs@ieee.org"; description - "Management objects that control fault-tolerant timing with time - integrity (FTT) entities as specified in IEEE Std 802.1ASed-2025. + "Management objects that control fault-tolerant timing with + time integrity (FTT) entities as specified in + IEEE Std 802.1ASed-2026. References in this YANG module are to IEEE Std 802.1AS-2025 - as amended by IEEE Std 802.1ASed-2025. + as amended by IEEE Std 802.1ASed-2026. - Copyright (C) IEEE (2025). + Copyright (C) IEEE (2026). This version of this YANG module is part of IEEE Std 802.1AS; see the standard itself for full legal notices."; - revision 2025-10-22 { + revision 2026-02-11 { description - "Published as part of IEEE Std 802.1ASed-2025. + "Published as part of IEEE Std 802.1ASed-2026. Initial version."; reference - "IEEE Std 802.1AS - Timing and Synchronization for Time-Sensitive - Applications: IEEE Std 802.1AS-2025, IEEE Std 802.1ASed-2025."; + "IEEE Std 802.1AS - Timing and Synchronization for + Time-Sensitive Applications: IEEE Std 802.1AS-2025, + IEEE Std 802.1ASed-2026."; } feature ftt { description - "This feature indicates that the device supports the FTT service."; + "This feature indicates that the device supports the FTT + service."; } typedef ptp-instance-ref { type leafref { - path "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance/ptp-tt:instance-index"; + path "/ptp-tt:ptp/ptp-tt:instances/ptp-tt:instance" + + "/ptp-tt:instance-index"; } description "This type is used by data models that need to reference @@ -58,28 +62,30 @@ module ieee802-dot1as-ftt { enum NOT-TRUSTED { value 0; description - "Integrity of time synchronization function is not achieved"; + "Integrity of time synchronization function is not + achieved."; } enum TIME-TRUSTED { value 1; description - "Integrity of time synchronization is achieved"; + "Integrity of time synchronization is achieved."; } enum FREQ-TRUSTED { value 2; description - "Only the integrity of the rate-of-change of time is achieved."; + "Only the integrity of the rate-of-change of time is + achieved."; } enum INIT { value 3; description - "System is waiting to be invoked and has not determined a trust - state."; + "System is waiting to be invoked and has not determined a + trust state."; } } description - "The fttOutputTrustState type is an enumerated value that holds - the trust state of the FTT entity."; + "The fttOutputTrustState type is an enumerated value that + holds the trust state of the FTT entity."; reference "20.3.2.1 of IEEE Std 802.1AS."; } @@ -89,7 +95,8 @@ module ieee802-dot1as-ftt { enum INACTIVE { value 0; description - "The FTT input is not considered to be providing time values."; + "The FTT input is not considered to be providing time + values."; } enum ACTIVE { value 1; @@ -99,17 +106,19 @@ module ieee802-dot1as-ftt { enum TRUSTED { value 2; description - "The FTT input is actively providing trusted time values."; + "The FTT input is actively providing trusted time + values."; } enum UNTRUSTED { value 3; description - "The FTT input is actively providing untrusted time values."; + "The FTT input is actively providing untrusted time + values."; } } description - "The fttInputTrustState type is an enumerated value that holds - the trust state of an FTT input."; + "The fttInputTrustState type is an enumerated value that + holds the trust state of an FTT input."; reference "20.3.2.2 of IEEE Std 802.1AS."; } @@ -127,23 +136,23 @@ module ieee802-dot1as-ftt { description "Management of a single FTT entity."; reference - "14.23 of IEEE Std 802.1AS"; + "14.23 of IEEE Std 802.1AS."; leaf ftt-max-inputs { type uint8 { range "0..16"; } config false; description - "Maximum number of input ClockTarget Interfaces available on the - FTT entity."; + "Maximum number of input ClockTarget interfaces available + on the FTT entity."; reference "14.23.2 of IEEE Std 802.1AS."; } leaf ftt-num-inputs { type uint8; description - "The number of input ClockTarget Interfaces currently enabled on the - FTT entity."; + "The number of enabled input ClockTarget interfaces on + the FTT entity."; reference "14.23.3 of IEEE Std 802.1AS."; } @@ -153,7 +162,8 @@ module ieee802-dot1as-ftt { } config false; description - "Maximum number of DTSF instances available in the FTT entity."; + "Maximum number of DTSF instances available in the FTT + entity."; reference "14.23.4 of IEEE Std 802.1AS."; } @@ -170,33 +180,35 @@ module ieee802-dot1as-ftt { } config false; description - "Maximum number of input ClockTarget Interfaces available on each DTSF - instance in the FTT entity."; + "Maximum number of input ClockTarget interfaces available + on each DTSF instance in the FTT entity."; reference "14.23.6 of IEEE Std 802.1AS."; } list ftt-inputs-to-tsf { key "tsf-instance-number"; description - "Mapping of FTT entity input ClockTarget Interface index numbers to TSF - instance numbers."; + "Mapping of FTT entity input ClockTarget interface index + numbers to TSF instance numbers."; reference "14.23.7 of IEEE Std 802.1AS."; leaf tsf-instance-number { type uint8; description - "The TSF instance number that the FTT entity's input index number is - connected to."; + "The TSF instance number that the FTT entity's input + index number is connected to."; reference "20.2.3 of IEEE Std 802.1AS."; } leaf assigned-inputs { type uint16; description - "The bit map of FTT inputs that are assigned to the TSF instance. - The most-significant bit corresponds to input index 16, the least- - significant bit corresponds to input index 1. The number of inputs - assigned to any DTSF instance (i.e., TSF instance with tsf-instance-number of 1 or higher) cannot be greater than fttDtsfMaxInputs."; + "The bit map of FTT inputs that are assigned to the TSF + instance. The most-significant bit corresponds to input + index 16, the least-significant bit corresponds to input + index 1. The number of inputs assigned to any DTSF + instance (i.e., TSF instance with tsf-instance-number of + 1 or higher) cannot be greater than fttDtsfMaxInputs."; reference "14.23.7 of IEEE Std 802.1AS."; } @@ -204,8 +216,8 @@ module ieee802-dot1as-ftt { list ftt-ptp-instance-to-input { key "ftt-input-index"; description - "Mapping of PTP Instance index numbers to FTT entity input index - numbers."; + "Mapping of PTP Instance index numbers to FTT entity input + index numbers."; reference "14.23.8 of IEEE Std 802.1AS."; leaf ftt-input-index { @@ -218,17 +230,17 @@ module ieee802-dot1as-ftt { leaf ptp-instance-index { type ptp-instance-ref; description - "The instanceIndex number of the PTP Instance that is connected to - the FTT input."; + "The instanceIndex number of the PTP Instance that is + connected to the FTT input."; reference - "14.1.1 of IEEE Std 802.1AS."; + "14.1.1 of IEEE Std 802.1AS-2020."; } } list ftt-hyst { key "ftt-input-index"; description - "Hysteresis values to be added to fttMaxAs for pairs of input - ClockTarget interfaces."; + "Hysteresis values to be added to fttMaxAs for pairs of + input ClockTarget interfaces."; reference "14.23.9 of IEEE Std 802.1AS."; leaf ftt-input-index { @@ -241,7 +253,8 @@ module ieee802-dot1as-ftt { list hyst-list { key "ftt-input-index"; description - "Hysteresis values for pairs of input ClockTarget interfaces."; + "Hysteresis values for pairs of input ClockTarget + interfaces."; reference "14.23.9 of IEEE Std 802.1AS."; leaf ftt-input-index { @@ -255,8 +268,8 @@ module ieee802-dot1as-ftt { type ptp-tt:time-interval; default "0"; description - "Hysteresis value to be added to fttMaxAs for the pair of input - interfaces."; + "Hysteresis value to be added to fttMaxAs for the pair + of input interfaces."; reference "14.23.9 of IEEE Std 802.1AS."; } @@ -265,7 +278,8 @@ module ieee802-dot1as-ftt { list ftt-max-as { key "ftt-input-index"; description - "Maximum expected skew between pairs of input ClockTarget interfaces."; + "Maximum expected skew between pairs of input ClockTarget + interfaces."; reference "14.23.10 of IEEE Std 802.1AS."; leaf ftt-input-index { @@ -278,7 +292,8 @@ module ieee802-dot1as-ftt { list max-as-list { key "ftt-input-index"; description - "The second input index number."; + "Maximum expected skew between pairs of input ClockTarget + interfaces."; reference "14.23.10 of IEEE Std 802.1AS."; leaf ftt-input-index { @@ -292,8 +307,8 @@ module ieee802-dot1as-ftt { type ptp-tt:time-interval; default "0"; description - "Maximum expected skew between the pair of input interfaces when - those time values are not faulty."; + "Maximum expected skew between the pair of input + interfaces when those time values are not faulty."; reference "14.23.10 of IEEE Std 802.1AS."; } @@ -315,7 +330,7 @@ module ieee802-dot1as-ftt { leaf change-threshold { type ptp-tt:time-interval; description - "the TimeInterval threshold used by the TSF instance."; + "The TimeInterval threshold used by the TSF instance."; reference "14.23.11 of IEEE Std 802.1AS."; } @@ -324,8 +339,8 @@ module ieee802-dot1as-ftt { type uint32; default "0"; description - "Maximum rate-ratio offset magnitude deemed acceptable for FREQ_TRUSTED - state."; + "Maximum rate-ratio offset magnitude deemed acceptable for + FREQ_TRUSTED state."; reference "14.23.12 of IEEE Std 802.1AS."; } @@ -333,19 +348,19 @@ module ieee802-dot1as-ftt { type uint32; default "0"; description - "Maximum standard deviation of rate-ratio offset deemed acceptable for - FREQ_TRUSTED state."; + "Maximum standard deviation of rate-ratio offset deemed + acceptable for FREQ_TRUSTED state."; reference "14.23.13 of IEEE Std 802.1AS."; } list ftt-use-nq { key "tsf-instance-number"; description - "Specifies whether a TSF instance uses the NQ input when no trusted - time is available. + "Specifies whether a TSF instance uses the NQ input when no + trusted time is available. If ftt-use-nq is TRUE, the use of the NQ input is enabled. - If ftt-use-nq is FALSE, the use of the NQ input is not enabled. - The default value is implementation-specific"; + If ftt-use-nq is FALSE, the use of the NQ input is not + enabled. The default value is implementation-specific."; reference "14.23.14 and 20.2.4 of IEEE Std 802.1AS."; leaf tsf-instance-number { @@ -358,7 +373,7 @@ module ieee802-dot1as-ftt { leaf use-nq { type boolean; description - "whether the TSF instance uses the NQ input."; + "Whether the TSF instance uses the NQ input."; reference "14.23.14 of IEEE Std 802.1AS."; } @@ -366,12 +381,12 @@ module ieee802-dot1as-ftt { leaf ftt-use-ftt-clk { type boolean; description - "Defines whether the FTT_CLK frequency is used as a reference for time - integrity. - If fttUseFTTClk is TRUE, the FTT_CLK frequency is used as a reference - for checking time integrity. - If fttUseFTTClk is FALSE, the FTT_CLK frequency is not used as a - reference for checking time integrity. + "Defines whether the FTT_CLK frequency is used as a + reference for time integrity. + If fttUseFTTClk is TRUE, the FTT_CLK frequency is used as + a reference for checking time integrity. + If fttUseFTTClk is FALSE, the FTT_CLK frequency is not + used as a reference for checking time integrity. The default value is implementation-specific."; reference "14.23.15 of IEEE Std 802.1AS."; @@ -380,7 +395,8 @@ module ieee802-dot1as-ftt { key "tsf-instance-number"; config false; description - "The index number of the FTT input selected by each TSF instance."; + "The index number of the FTT input selected by each TSF + instance."; reference "14.23.16 and 20.3.2.3 of IEEE Std 802.1AS."; leaf tsf-instance-number { @@ -402,8 +418,8 @@ module ieee802-dot1as-ftt { type uint32; config false; description - "Instance index of the PTP Instance selected as the trusted time - source."; + "Instance index of the PTP Instance selected as the trusted + time source."; reference "14.23.17 of IEEE Std 802.1AS."; } @@ -424,7 +440,8 @@ module ieee802-dot1as-ftt { leaf sel-change-cnt { type uint16; description - "The number of times the TSF instance has changed its selection."; + "The number of times the TSF instance has changed its + selection."; reference "14.23.18 of IEEE Std 802.1AS."; } @@ -435,13 +452,13 @@ module ieee802-dot1as-ftt { description "Trust state of all FTT inputs."; reference - "14.23.19 of IEEE Std 802.1AS."; + "14.23.19 and 20.3.2.2 of IEEE Std 802.1AS."; leaf ftt-input-index { type uint8; description "The FTT input index."; reference - "14.23.16 of IEEE Std 802.1AS."; + "20.2.1 of IEEE Std 802.1AS."; } leaf ftt-input-trust-state { type ftt-input-trust-state-type; @@ -465,7 +482,8 @@ module ieee802-dot1as-ftt { default "0"; config false; description - "Number of times the FTT entity has changed its trust state."; + "Number of times the FTT entity has changed its trust + state."; reference "14.23.21 of IEEE Std 802.1AS."; } @@ -477,41 +495,44 @@ module ieee802-dot1as-ftt { container ftt-service { if-feature "ftt"; description - "The FTT service structure contains the fttEntityList, which is a list - of instances of the FTT service."; + "The FTT service structure contains the fttEntityList, + which is a list of FTT entity instances in the FTT + service."; reference - "14.23 of IEEE Std 802.1AS"; + "14.1.1 of IEEE Std 802.1AS."; list ftt-entity { key "ftt-entity-index"; description - "Indexed list of FTT entities in the FTT service"; + "Indexed list of FTT entities in the FTT service."; leaf ftt-entity-index { type uint8; description - "Index of the FTT entity."; + "Index of the FTT entity instance."; } container ftt-entity-ds { description "The fttEntityDS describes the attributes of the - respective instance of the FTT service."; + respective FTT entity instance in the FTT service."; reference - "14.23 of IEEE Std 802.1AS"; + "14.23 of IEEE Std 802.1AS."; uses fault-tolerant-timing-group; } container ftt-entity-description-ds { description - "The fttEntityDescriptionDS contains descriptive information for the - respective instance of the FTT service."; + "The fttEntityDescriptionDS contains descriptive + information for the respective FTT entity instance + in the FTT service."; reference - "14.24 of IEEE Std 802.1AS"; + "14.24 of IEEE Std 802.1AS."; leaf user-description { type string { length "0..128"; } description - "Configuration description of the Fault-Tolerant Timing entity."; + "Configuration description of the FTT entity + instance."; reference - "14.24.2 of IEEE Std 802.1AS"; + "14.24.2 of IEEE Std 802.1AS."; } } }