diff --git a/standard/ieee/check.sh b/standard/ieee/check.sh index 1a89764b0..0a0f03192 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/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AB-2016rev draft/802.1/AXdz draft/802.1/CB-2017-cor1 draft/802.1/DD draft/802.1/X-cor1 draft/1588 published/802 published/802.1 published/1588" +to_check="draft/60802 draft/802.3 draft/802.1/qrev draft/802.1/ASrev draft/802.1/ASds draft/802.1/ASed draft/802.1/AB-2016rev draft/802.1/AXdz draft/802.1/CB-2017-cor1 draft/802.1/DD draft/802.1/X-cor1 draft/1588 published/802 published/802.1 published/802.3 published/1588" # relax constraint for now # add --ietf if you want to do strict IETF checking diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp.yang similarity index 99% rename from standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang rename to standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp.yang index 14321d55c..6df26df6a 100644 --- a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp@2025-08-15.yang +++ b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-lldp.yang @@ -38,9 +38,9 @@ module ieee802-dot1ab-lldp { (2025). All rights reserved. This version of this YANG module is part of IEEE Std 802.1AB-2026; see the standard itself for full legal notices."; - revision 2025-08-15 { + revision 2025-09-29 { description - "Published as part of IEEE Std 802.1QAB-2026. + "Published as part of IEEE Std 802.1AB-2026. The following reference statement identifies each referenced IEEE Standard as updated by applicable amendments."; diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types.yang similarity index 98% rename from standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang rename to standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types.yang index 0d8f5b0dc..d656952e4 100644 --- a/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types@2025-08-15.yang +++ b/standard/ieee/draft/802.1/AB-2016rev/ieee802-dot1ab-types.yang @@ -19,9 +19,9 @@ module ieee802-dot1ab-types { "Common types used within ieee802-dot1ab-lldp modules. Copyright(C) IEEE (2025). All rights reserved. This version of this YANG module is part of IEEE Std 802.1AB-2026; see the standard itself for full legal notices."; - revision 2025-08-15 { + revision 2025-09-29 { description - "Published as part of IEEE Std 802.1QAB-2026. + "Published as part of IEEE Std 802.1AB-2026. The following reference statement identifies each referenced IEEE Standard as updated by applicable amendments."; diff --git a/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang b/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang deleted file mode 100644 index 88213e87a..000000000 --- a/standard/ieee/draft/802.1/AB-2016rev/ieee802-types@2025-08-15.yang +++ /dev/null @@ -1,350 +0,0 @@ -module ieee802-types { - yang-version "1.1"; - namespace urn:ieee:std:802.1Q:yang:ieee802-types; - prefix ieee; - organization - "IEEE 802.1 Working Group"; - contact - "WG-URL: http://ieee802.org/1/ - WG-EMail: stds-802-1-l@ieee.org - - Contact: IEEE 802.1 Working Group Chair - Postal: C/O IEEE 802.1 Working Group - IEEE Standards Association - 445 Hoes Lane - Piscataway, NJ 08854 - USA - - E-mail: stds-802-1-chairs@ieee.org"; - description - "This module contains a collection of generally useful derived data - types for IEEE YANG models. - - Copyright (C) IEEE (2025). All rights reserved. - - This version of this YANG module is part of IEEE Std 802.1Q; see the - standard itself for full legal notices."; - revision 2025-08-15 { - description - "Published as part of IEEE Std 802.1QAB-2026. - - The following reference statement identifies each referenced IEEE - Standard as updated by applicable amendments."; - reference - "IEEE Std 802.1Q Bridges and Bridged Networks: - IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023. - IEEE Std 802 Overview and Architecture: - IEEE Std 802-2024. - IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications: - IEEE Std 802.1AS-2026."; - } - revision 2023-10-22 { - description - "Published as part of IEEE Std 802.1Qcw-2023. - - The following reference statement identifies each referenced IEEE - Standard as updated by applicable amendments."; - reference - "IEEE Std 802.1Q Bridges and Bridged Networks: - IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023. - IEEE Std 802 Overview and Architecture: - IEEE Std 802-2014. - IEEE 802.1AS Timing and Synchronization for Time-Sensitive Applications: - IEEE Std 802.1AS-2020."; - } - revision 2022-10-29 { - description - "Published as part of IEEE Std 802.1Q-2022."; - reference - "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; - } - revision 2022-03-16 { - description - "Published as part of IEEE Std 802.1ABcu."; - reference - "IEEE Std 802.1AB-2016"; - } - revision 2020-06-04 { - description - "Published as part of IEEE Std 802.1Qcx-2020. Second version."; - reference - "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data - Model for Connectivity Fault Management."; - } - revision 2018-03-07 { - description - "Published as part of IEEE Std 802.1Q-2018. Initial version."; - reference - "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; - } - typedef mac-address { - type string { - pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}"; - } - description - "The mac-address type represents a MAC address in the canonical format - and hexadecimal format specified by IEEE Std 802. The hexadecimal - representation uses uppercase characters."; - reference - "3.1, 8.1 of IEEE Std 802"; - } - typedef chassis-id-subtype-type { - type enumeration { - enum chassis-component { - value 1; - description - "Represents a chassis identifier based on the value of the - entPhysicalAlias object (defined in IETF RFC 2737) for a chassis - component (i.e., an entPhysicalClass value of chassis(3))."; - } - enum interface-alias { - value 2; - description - "Represents a chassis identifier based on the value of the ifAlias - object (defined in IETF RFC 2863) for an interface on the - containing chassis."; - } - enum port-component { - value 3; - description - "Represents a chassis identifier based on the value of the - entPhysicalAlias object (defined in IETF RFC 2737) for a port or - backplane component (i.e., entPhysicalClass value of port(10) or - backplane(4)), within the containing chassis."; - } - enum mac-address { - value 4; - description - "Represents a chassis identifier based on the value of a unicast - source address (encoded in network byte order and IEEE 802.3 - bit significance), of a port on the containing chassis as - defined in IEEE Std 802."; - } - enum network-address { - value 5; - description - "Represents a chassis identifier based on a network address, - associated with a particular chassis. The encoded address is - actually composed of two fields. The first field is a single - octet, representing the IANA AddressFamilyNumbers value for the - specific address type, and the second field is the network address - value."; - } - enum interface-name { - value 6; - description - "Represents a chassis identifier based on the value of the ifName - object (defined in IETF RFC 2863) for an interface on the - containing chassis."; - } - enum local { - value 7; - description - "Represents a chassis identifier based on a locally defined value."; - } - } - description - "The source of a chassis identifier."; - reference - "IEEE Std 802 - IETF RFC 2737 - IETF RFC 2863"; - } - typedef chassis-id-type { - type string { - length "1..255"; - } - description - "The format of a chassis identifier string. Objects of this type are - always used with an associated chassis-id-subtype object, which - identifies the format of the particular chassis-id object - instance. - - If the associated chassis-id-subtype object has a value of - chassis-component, then the octet string identifies a particular - instance of the entPhysicalAlias object (defined in IETF RFC 2737) for - a chassis component (i.e., an entPhysicalClass value of chassis(3)). - - If the associated chassis-id-subtype object has a value of - interface-alias, then the octet string identifies a particular - instance of the ifAlias object (defined in IETF RFC 2863) for an - interface on the containing chassis. If the particular ifAlias object - does not contain any values, another chassis identifier type should be - used. - - If the associated chassis-id-subtype object has a value of - port-component, then the octet string identifies a particular instance - of the entPhysicalAlias object (defined in IETF RFC 2737) for a port - or backplane component within the containing chassis. - - If the associated chassis-id-subtype object has a value of - mac-address, then this string identifies a particular unicast source - address (encoded in network byte order and IEEE 802.3 bit - significance), of a port on the containing chassis as defined in - IEEE Std 802. - - If the associated chassis-id-subtype object has a value of - network-address, then this string identifies a particular network - address, encoded in network byte order, associated with one or more - ports on the containing chassis. The first octet contains the IANA - Address Family Numbers enumeration value for the specific address - type, and octets 2 through N contain the network address value in - network byte order. - - If the associated chassis-id-subtype object has a value of - interface-name, then the octet string identifies a particular instance - of the ifName object (defined in IETF RFC 2863) for an interface on - the containing chassis. If the particular ifName object does not - contain any values, another chassis identifier type should be used. - - If the associated chassis-id-subtype object has a value of local, - then this string identifies a locally assigned Chassis ID."; - reference - "IEEE Std 802 - IETF RFC 2737 - IETF RFC 2863"; - } - typedef port-id-subtype-type { - type enumeration { - enum interface-alias { - value 1; - description - "Represents a port identifier based on the ifAlias MIB object, - defined in IETF RFC 2863."; - } - enum port-component { - value 2; - description - "Represents a port identifier based on the value of - entPhysicalAlias (defined in IETF RFC 2737) for a port component - (i.e., entPhysicalClass value of port(10)), within the containing - chassis."; - } - enum mac-address { - value 3; - description - "Represents a port identifier based on a unicast source address - (encoded in network byte order and IEEE 802.3 bit significance), - which has been detected by the agent and associated with a - particular port (IEEE Std 802)."; - } - enum network-address { - value 4; - description - "Represents a port identifier based on a network address, detected - by the agent and associated with a particular port."; - } - enum interface-name { - value 5; - description - "Represents a port identifier based on the ifName MIB object, - defined in IETF RFC 2863."; - } - enum agent-circuit-id { - value 6; - description - "Represents a port identifier based on the agent-local identifier - of the circuit (defined in RFC 3046), detected by the agent and - associated with a particular port."; - } - enum local { - value 7; - description - "Represents a port identifier based on a value locally assigned."; - } - } - description - "The source of a particular type of port identifier."; - reference - "IEEE Std 802 - IETF RFC 2737 - IETF RFC 2863 - IETF RFC 3046"; - } - typedef port-id-type { - type string { - length "1..255"; - } - description - "The format of a port identifier string. Objects of this type are - always used with an associated port-id-subtype object, which - identifies the format of the particular port-id object instance. - - If the associated port-id-subtype object has a value of - interface-alias, then the octet string identifies a particular - instance of the ifAlias object (defined in IETF RFC 2863). If the - particular ifAlias object does not contain any values, another port - identifier type should be used. - - If the associated port-id-subtype object has a value of - port-component, then the octet string identifies a particular instance - of the entPhysicalAlias object (defined in IETF RFC 2737) for a port - or backplane component. - - If the associated port-id-subtype object has a value of - mac-address, then this string identifies a particular unicast source - address (encoded in network byte order and IEEE 802.3 bit - significance) associated with the port (IEEE Std 802). - - If the associated port-id-subtype object has a value of - network-address, then this string identifies a network address - associated with the port. The first octet contains the IANA - AddressFamilyNumbers enumeration value for the specific address type, - and octets 2 through N contain the networkAddress address value in - network byte order. - - If the associated port-id-subtype object has a value of - interface-name, then the octet string identifies a particular instance - of the ifName object (defined in IETF RFC 2863). If the particular - ifName object does not contain any values, another port identifier - type should be used. - - If the associated port-id-subtype object has a value of - agent-circuit-id, then this string identifies a agent-local identifier - of the circuit (defined in RFC 3046). - - If the associated port-id-subtype object has a value of local, - then this string identifies a locally assigned port ID."; - reference - "IEEE Std 802 - IETF RFC 2737 - IETF RFC 2863 - IETF RFC 3046"; - } - grouping rational-grouping { - description - "Definition of a non-negative rational number."; - leaf numerator { - type uint32; - description - "Numerator of the rational number."; - } - leaf denominator { - type uint32 { - range "1..4294967295"; - } - description - "Denominator of the rational number."; - } - } - grouping ptp-time-grouping { - description - "This grouping specifies a PTP timestamp, represented as a 48-bit - unsigned integer number of seconds and a 32-bit unsigned integer - number of nanoseconds."; - reference - "6.4.3.4 of IEEE Std 802.1AS"; - leaf seconds { - type uint64; - description - "This is the integer portion of the timestamp in units of seconds. - The upper 16 bits are always zero."; - } - leaf nanoseconds { - type uint32; - description - "This is the fractional portion of the timestamp in units of - nanoseconds. This value is always less than 10^9."; - } - } -} 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 deeb30520..12bcf29c3 100644 --- a/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang +++ b/standard/ieee/draft/802.1/ASds/ieee802-dot1as-gptp.yang @@ -759,7 +759,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 - "11.2.19.2.14 of IEEE Std 802.1AS"; + "14.10.60 of IEEE Std 802.1AS"; } leaf pdelay-resp-send-disabled { type boolean; @@ -768,7 +768,7 @@ module ieee802-dot1as-gptp { if Pdelay_Resp messages are not transmitted by this port. The default value for this variable shall be FALSE."; reference - "11.2.20.2.6 of IEEE Std 802.1AS"; + "14.10.61 of IEEE Std 802.1AS"; } } diff --git a/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang b/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang index b34aa5585..005298518 100644 --- a/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang +++ b/standard/ieee/draft/802.1/ASed/ieee802-dot1as-ftt.yang @@ -1,491 +1,520 @@ -module ieee802-dot1as-ftt { - yang-version 1.1; - namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-ftt"; - prefix dot1as-ftt; - - import ieee1588-ptp-tt { - prefix ptp-tt; - } - - organization - "IEEE 802.1 Working Group"; - contact - "WG-URL: http://www.ieee802.org/1/ - WG-EMail: stds-802-1-L@ieee.org - Contact: IEEE 802.1 Working Group Chair - Postal: C/O IEEE 802.1 Working Group - IEEE Standards Association - 445 Hoes Lane - Piscataway, NJ 08854 - USA - E-mail: stds-802-1-chairs@ieee.org"; - description - "Management objects that control fault-tolerant timing entity as - specified in IEEE Std 802.1ASed-202x. - - References in this YANG module to IEEE Std 802.1AS are to - IEEE Std 802.1AS-2020 as modified by - IEEE Std 802.1AS-2020/Cor-1-2021, and amended by - IEEE Std 802.1ASdr-2024, IEEE Std 802.1ASdn-2024, - IEEE Std 802.1ASdm-2024, and IEEE Std 802.1ASed-202x. - - Copyright (C) IEEE (2025). - This version of this YANG module is part of IEEE Std 802.1AS; - see the standard itself for full legal notices."; - - revision 2025-07-10 { - description - "Published as part of IEEE Std 802.1ASed-202x. - Initial version."; - reference - "IEEE Std 802.1AS - Timing and Synchronization for Time-Sensitive - Applications: IEEE Std 802.1AS-2020, IEEE Std 802.1AS-2020/Cor - 1-2021, IEEE Std 802.1ASdr-2024, IEEE Std 802.1ASdn-2024, - IEEE Std 802.1ASdm-2024, IEEE Std 802.1ASed-202x."; - } - - feature ftt { - description - "This feature indicates that the device supports the Fault-Tolerant - Timing (FTT) functionality."; - } - - typedef ftt-output-trust-state-type { - type enumeration { - enum NOT-TRUSTED { - value 0; - description - "Integrity of time synchronization function is not acheived"; - } - enum TIME-TRUSTED { - value 1; - description - "Integrity of time synchronization is achieved"; - } - enum FREQ-TRUSTED { - value 2; - description - "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."; - } - } - description - "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."; - } - - typedef ftt-input-trust-state-type { - type enumeration { - enum INACTIVE { - value 0; - description - "The FTT input is not considered to be providing time values."; - } - enum ACTIVE { - value 1; - description - "The FTT input is actively providing time values."; - } - enum TRUSTED { - value 2; - description - "The FTT input is actively providing trusted time values."; - } - enum UNTRUSTED { - value 3; - description - "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."; - reference - "20.3.2.2 of IEEE Std 802.1AS."; - } - - - typedef uint48 { - type uint64 { - range "0..281474976710655"; - } - description - "Unsigned 48-bit integer."; - } - - grouping fault-tolerant-timing-group { - description - "Management of a single FTT entity."; - reference - "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."; - 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."; - reference - "14.23.3 of IEEE Std 802.1AS."; - } - leaf ftt-max-dtsfs { - type uint8 { - range "0..126"; - } - config false; - description - "Maximum number of DTSF instances available in the FTT entity."; - reference - "14.23.4 of IEEE Std 802.1AS."; - } - leaf ftt-num-dtsfs { - type uint8; - description - "Number of DTSF instances enabled in the FTT entity."; - reference - "14.23.5 of IEEE Std 802.1AS."; - } - leaf ftt-dtsf-max-inputs { - type uint8 { - range "0..16"; - } - config false; - description - "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."; - 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."; - 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."; - reference - "14.23.7 of IEEE Std 802.1AS."; - } - } - list ftt-ptp-instance-to-input { - key "ftt-input-index-number"; - description - "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-number { - type uint8; - description - "The FTT entity's input index number."; - reference - "20.2.1 of IEEE Std 802.1AS."; - } - leaf ftt-ptp-instance-index { - type uint32; - description - "The instanceIndex number of the PTP Instance that is connected to - the FTT input."; - reference - "14.1.1 of IEEE Std 802.1AS-2020."; - } - } - list ftt-hyst { - key "ftt-input-index-number"; - description - "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-number { - type uint8; - description - "The first input index number."; - reference - "20.2.1 of IEEE Std 802.1AS."; - } - list ftt-hyst-list { - key "ftt-input-index-number"; - description - "Hysteresis values for pairs of input ClockTarget interfaces."; - reference - "14.23.9 of IEEE Std 802.1AS."; - leaf ftt-input-index-number { - type uint8; - description - "The second input index number."; - reference - "20.2.1 of IEEE Std 802.1AS."; - } - leaf ftt-hyst-value { - type ptp-tt:time-interval; - default "0"; - description - "Hysteresis value to be added to fttMaxAs for the pair of input - interfaces."; - reference - "14.23.9 of IEEE Std 802.1AS."; - } - } - } - list ftt-max-as { - key "ftt-input-index-number"; - description - "Maximum expected skew between pairs of input ClockTarget interfaces."; - reference - "14.23.10 of IEEE Std 802.1AS."; - leaf ftt-input-index-number { - type uint8; - description - "The first input index number."; - reference - "20.2.1 of IEEE Std 802.1AS."; - } - list ftt-max-as-list { - key "ftt-input-index-number"; - description - "The second input index number."; - reference - "14.23.10 of IEEE Std 802.1AS."; - leaf ftt-input-index-number { - type uint8; - description - "The second input index number."; - reference - "20.2.1 of IEEE Std 802.1AS."; - } - leaf ftt-max-as-value { - type ptp-tt:time-interval; - default "0"; - description - "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."; - } - } - } - list ftt-sel-change-thresh { - key "tsf-instance-number"; - description - "Time difference change threshold used by TSF instances."; - reference - "14.23.11 of IEEE Std 802.1AS."; - leaf tsf-instance-number { - type uint8; - description - "The TSF instance number."; - reference - "20.2.3 of IEEE Std 802.1AS."; - } - leaf change-threshold { - type ptp-tt:time-interval; - description - "the TimeInterval threshold used by the TSF instance."; - reference - "14.23.11 of IEEE Std 802.1AS."; - } - } - leaf ftt-rr-thresh { - type uint32; - default "0"; - description - "Maximum rate-ratio offset magnitude deemed acceptable for FREQ_TRUSTED - state."; - reference - "14.23.12 of IEEE Std 802.1AS."; - } - leaf ftt-rr-thresh-std-dev { - type uint32; - default "0"; - description - "Maximum standard deviation of rate-ratio offset deemed acceptable for - FREQ_TRUSTED state."; - reference - "14.23.13 of IEEE Std 802.1AS."; - } - leaf-list ftt-use-nq { - type boolean; - description - "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"; - reference - "14.23.14 and 20.2.4 of IEEE Std 802.1AS."; - } - 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. - The default value is implementation-specific."; - reference - "14.23.15 of IEEE Std 802.1AS."; - } - list ftt-tsf-sel-input { - key "tsf-instance-number"; - description - "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 { - type uint8; - description - "The TSF instance number."; - reference - "20.2.3 of IEEE Std 802.1AS."; - } - leaf selected-input-index { - type uint8; - config false; - description - "Input time index selected by the TSF instance."; - reference - "14.23.16 of IEEE Std 802.1AS."; - } - } - leaf ftt-sel-instance { - type uint32; - config false; - description - "Instance index of the PTP Instance selected as the trusted time - source."; - reference - "14.23.17 of IEEE Std 802.1AS."; - } - list ftt-tsf-sel-change-cnt { - key "tsf-instance-number"; - description - "The number of times each TSF has changed its selection."; - reference - "14.23.18 of IEEE Std 802.1AS."; - leaf tsf-instance-number { - type uint8; - description - "The TSF instance number."; - reference - "20.2.3 of IEEE Std 802.1AS."; - } - leaf sel-change-cnt { - type uint16; - config false; - description - "The number of times the TSF instance has changed its selection."; - reference - "14.23.18 of IEEE Std 802.1AS."; - } - } - leaf-list ftt-input-trust-state { - type ftt-input-trust-state-type; - config false; - description - "Trust state of all FTT inputs."; - reference - "14.23.19 of IEEE Std 802.1AS."; - } - leaf ftt-trust-state { - type ftt-output-trust-state-type; - default "NOT-TRUSTED"; - config false; - description - "The trust state of the FTT entity."; - reference - "14.23.20 and 20.3.2.1 of IEEE Std 802.1AS."; - } - leaf ftt-state-change-cnt { - type uint16; - default "0"; - config false; - description - "Number of times the FTT entity has changed its trust state."; - reference - "14.23.21 of IEEE Std 802.1AS."; - } - } - - augment "/ptp-tt:ptp/ptp-tt:common-services" { - description - "Augment IEEE Std 1588 commonServices with fault-tolerant-timing-entity - service."; - container fault-tolerant-timing-entity-service { - if-feature "ftt"; - description - "The Fault-Tolerant Timing entity Service structure contains the - fttSystemList, which is a list of instances of the Fault-Tolerant - Timing entity Service."; - reference - "14.23 of IEEE Std 802.1AS"; - list ftt-system { - key "ftt-system-index"; - description - "Indexed list of FTT entity systems in the FTT Entity Service"; - leaf ftt-system-index { - type uint8; - description - "Index for the FTT entity system."; - } - container ftt-system-ds { - description - "The fttSystemDS describes the attributes of the - respective instance of the Fault-Tolerant Timing Service."; - reference - "14.23 of IEEE Std 802.1AS"; - uses fault-tolerant-timing-group; - } - container ftt-system-description-ds { - description - "The fttSystemDescriptionDS contains descriptive information for - the respective instance of the Fault-Tolerant Timing Service."; - reference - "14.24 Fault-Tolerant Timing System Description Parameter - Data Set (fttSystemDescriptionDS) of IEEE Std 802.1AS"; - leaf user-description { - type string { - length "0..128"; - } - description - "Configuration description of the Fault-Tolerant Timing system."; - reference - "14.24.2 of IEEE Std 802.1AS"; - } - } - } - } - } -} +module ieee802-dot1as-ftt { + yang-version 1.1; + namespace "urn:ieee:std:802.1AS:yang:ieee802-dot1as-ftt"; + prefix dot1as-ftt; + + import ieee1588-ptp-tt { + prefix ptp-tt; + } + + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://www.ieee802.org/1/ + WG-EMail: stds-802-1-L@ieee.org + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + E-mail: stds-802-1-chairs@ieee.org"; + description + "Management objects that control fault-tolerant timing with time + integrity (FTT) entities as specified in IEEE Std 802.1ASed-2025. + + References in this YANG module are to IEEE Std 802.1AS-2025 + as amended by IEEE Std 802.1ASed-2025. + + Copyright (C) IEEE (2025). + 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 { + description + "Published as part of IEEE Std 802.1ASed-2025. + Initial version."; + reference + "IEEE Std 802.1AS - Timing and Synchronization for Time-Sensitive + Applications: IEEE Std 802.1AS-2025, IEEE Std 802.1ASed-2025."; + } + + feature ftt { + description + "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"; + } + description + "This type is used by data models that need to reference + interfaces."; + } + + typedef ftt-output-trust-state-type { + type enumeration { + enum NOT-TRUSTED { + value 0; + description + "Integrity of time synchronization function is not achieved"; + } + enum TIME-TRUSTED { + value 1; + description + "Integrity of time synchronization is achieved"; + } + enum FREQ-TRUSTED { + value 2; + description + "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."; + } + } + description + "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."; + } + + typedef ftt-input-trust-state-type { + type enumeration { + enum INACTIVE { + value 0; + description + "The FTT input is not considered to be providing time values."; + } + enum ACTIVE { + value 1; + description + "The FTT input is actively providing time values."; + } + enum TRUSTED { + value 2; + description + "The FTT input is actively providing trusted time values."; + } + enum UNTRUSTED { + value 3; + description + "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."; + reference + "20.3.2.2 of IEEE Std 802.1AS."; + } + + + typedef uint48 { + type uint64 { + range "0..281474976710655"; + } + description + "Unsigned 48-bit integer."; + } + + grouping fault-tolerant-timing-group { + description + "Management of a single FTT entity."; + reference + "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."; + 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."; + reference + "14.23.3 of IEEE Std 802.1AS."; + } + leaf ftt-max-dtsfs { + type uint8 { + range "0..126"; + } + config false; + description + "Maximum number of DTSF instances available in the FTT entity."; + reference + "14.23.4 of IEEE Std 802.1AS."; + } + leaf ftt-num-dtsfs { + type uint8; + description + "Number of DTSF instances enabled in the FTT entity."; + reference + "14.23.5 of IEEE Std 802.1AS."; + } + leaf ftt-dtsf-max-inputs { + type uint8 { + range "0..16"; + } + config false; + description + "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."; + 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."; + 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."; + reference + "14.23.7 of IEEE Std 802.1AS."; + } + } + list ftt-ptp-instance-to-input { + key "ftt-input-index"; + description + "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 { + type uint8; + description + "The FTT entity's input index number."; + reference + "20.2.1 of IEEE Std 802.1AS."; + } + leaf ptp-instance-index { + type ptp-instance-ref; + description + "The instanceIndex number of the PTP Instance that is connected to + the FTT input."; + reference + "14.1.1 of IEEE Std 802.1AS."; + } + } + list ftt-hyst { + key "ftt-input-index"; + description + "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 { + type uint8; + description + "The first input index number."; + reference + "20.2.1 of IEEE Std 802.1AS."; + } + list hyst-list { + key "ftt-input-index"; + description + "Hysteresis values for pairs of input ClockTarget interfaces."; + reference + "14.23.9 of IEEE Std 802.1AS."; + leaf ftt-input-index { + type uint8; + description + "The second input index number."; + reference + "20.2.1 of IEEE Std 802.1AS."; + } + leaf hyst-value { + type ptp-tt:time-interval; + default "0"; + description + "Hysteresis value to be added to fttMaxAs for the pair of input + interfaces."; + reference + "14.23.9 of IEEE Std 802.1AS."; + } + } + } + list ftt-max-as { + key "ftt-input-index"; + description + "Maximum expected skew between pairs of input ClockTarget interfaces."; + reference + "14.23.10 of IEEE Std 802.1AS."; + leaf ftt-input-index { + type uint8; + description + "The first input index number."; + reference + "20.2.1 of IEEE Std 802.1AS."; + } + list max-as-list { + key "ftt-input-index"; + description + "The second input index number."; + reference + "14.23.10 of IEEE Std 802.1AS."; + leaf ftt-input-index { + type uint8; + description + "The second input index number."; + reference + "20.2.1 of IEEE Std 802.1AS."; + } + leaf max-as-value { + type ptp-tt:time-interval; + default "0"; + description + "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."; + } + } + } + list ftt-sel-change-thresh { + key "tsf-instance-number"; + description + "Time difference change threshold used by TSF instances."; + reference + "14.23.11 of IEEE Std 802.1AS."; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number."; + reference + "20.2.3 of IEEE Std 802.1AS."; + } + leaf change-threshold { + type ptp-tt:time-interval; + description + "the TimeInterval threshold used by the TSF instance."; + reference + "14.23.11 of IEEE Std 802.1AS."; + } + } + leaf ftt-rr-thresh { + type uint32; + default "0"; + description + "Maximum rate-ratio offset magnitude deemed acceptable for FREQ_TRUSTED + state."; + reference + "14.23.12 of IEEE Std 802.1AS."; + } + leaf ftt-rr-thresh-std-dev { + type uint32; + default "0"; + description + "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. + 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"; + reference + "14.23.14 and 20.2.4 of IEEE Std 802.1AS."; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number."; + reference + "20.2.3 of IEEE Std 802.1AS."; + } + leaf use-nq { + type boolean; + description + "whether the TSF instance uses the NQ input."; + reference + "14.23.14 of IEEE Std 802.1AS."; + } + } + 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. + The default value is implementation-specific."; + reference + "14.23.15 of IEEE Std 802.1AS."; + } + list ftt-tsf-sel-input { + key "tsf-instance-number"; + config false; + description + "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 { + type uint8; + description + "The TSF instance number."; + reference + "20.2.3 of IEEE Std 802.1AS."; + } + leaf selected-ftt-input-index { + type uint8; + description + "FTT input index that is selected by the TSF instance."; + reference + "14.23.16 of IEEE Std 802.1AS."; + } + } + leaf ftt-sel-instance { + type uint32; + config false; + description + "Instance index of the PTP Instance selected as the trusted time + source."; + reference + "14.23.17 of IEEE Std 802.1AS."; + } + list ftt-tsf-sel-change-cnt { + key "tsf-instance-number"; + config false; + description + "The number of times each TSF has changed its selection."; + reference + "14.23.18 of IEEE Std 802.1AS."; + leaf tsf-instance-number { + type uint8; + description + "The TSF instance number."; + reference + "20.2.3 of IEEE Std 802.1AS."; + } + leaf sel-change-cnt { + type uint16; + description + "The number of times the TSF instance has changed its selection."; + reference + "14.23.18 of IEEE Std 802.1AS."; + } + } + list ftt-input-trust-state { + key "ftt-input-index"; + config false; + description + "Trust state of all FTT inputs."; + reference + "14.23.19 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."; + } + leaf ftt-input-trust-state { + type ftt-input-trust-state-type; + description + "Trust state of the FTT input."; + reference + "14.23.19 of IEEE Std 802.1AS."; + } + } + leaf ftt-trust-state { + type ftt-output-trust-state-type; + default "NOT-TRUSTED"; + config false; + description + "The trust state of the FTT entity."; + reference + "14.23.20 and 20.3.2.1 of IEEE Std 802.1AS."; + } + leaf ftt-state-change-cnt { + type uint16; + default "0"; + config false; + description + "Number of times the FTT entity has changed its trust state."; + reference + "14.23.21 of IEEE Std 802.1AS."; + } + } + + augment "/ptp-tt:ptp/ptp-tt:common-services" { + description + "Augment IEEE Std 1588 commonServices with ftt-service."; + container ftt-service { + if-feature "ftt"; + description + "The FTT service structure contains the fttEntityList, which is a list + of instances of the FTT service."; + reference + "14.23 of IEEE Std 802.1AS"; + list ftt-entity { + key "ftt-entity-index"; + description + "Indexed list of FTT entities in the FTT service"; + leaf ftt-entity-index { + type uint8; + description + "Index of the FTT entity."; + } + container ftt-entity-ds { + description + "The fttEntityDS describes the attributes of the + respective instance of the FTT service."; + reference + "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."; + reference + "14.24 of IEEE Std 802.1AS"; + leaf user-description { + type string { + length "0..128"; + } + description + "Configuration description of the Fault-Tolerant Timing entity."; + reference + "14.24.2 of IEEE Std 802.1AS"; + } + } + } + } + } +} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-interface-half-duplex.yang b/standard/ieee/draft/802.3/ieee802-ethernet-interface-half-duplex.yang deleted file mode 100644 index ff765b91c..000000000 --- a/standard/ieee/draft/802.3/ieee802-ethernet-interface-half-duplex.yang +++ /dev/null @@ -1,291 +0,0 @@ -module ieee802-ethernet-interface-half-duplex { - yang-version 1.1; - namespace - "urn:ieee:std:802.3:yang:ieee802-ethernet-interface-half-duplex"; - prefix ieee802-eth-half-duplex; - - import ietf-yang-types { - prefix yang; - reference - "IETF RFC 6991"; - } - import ietf-interfaces { - prefix if; - reference - "IETF RFC 8343"; - } - import iana-if-type { - prefix ianaift; - reference - "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2023-01-26.yang"; - } - import ieee802-ethernet-interface { - prefix ieee802-eth-if; - } - - organization - "IEEE Std 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - description - "This module contains YANG definitions for half duplex - Ethernet interfaces, e.g., 10BASE-T1S."; - - revision 2025-04-17 { - description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; - reference - "IEEE Std 802.3-2022, unless dated explicitly"; - } - - feature dynamic-rate-control { - status obsolete; - description - "This feature indicates that the device supports Ethernet - interfaces lowering the average data rate of the MAC - sublayer, with frame granularity, by using Rate Control to - dynamically increase the inter-packet gap for some types of - Ethernet interface. - Only valid for Ethernet interfaces operating at speeds - (data rates)above 1000 Mb/s."; - reference - "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; - } - - feature csma-cd { - description - "This feature indicates that the device supports Ethernet - interfaces running at half-duplex using CSMA/CD."; - } - - typedef dynamic-rate-control-type { - type enumeration { - enum disabled { - description - "Dynamic rate control is disabled"; - } - enum sonet-oc192 { - value 2; - description - "Dynamic rate control is enabled for a 10 Gb/s Ethernet - interface to SONET/SDH OC192/STM64."; - } - } - default "disabled"; - status obsolete; - description - "Allowed values for dynamic-rate-control."; - reference - "IEEE Std 802.3, 4.4.2 ipgStretchRatio and 30.3.1.1.34 - aRateControlStatus"; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - when "derived-from-or-self(../if:type, 'ianaift:ethernetCsmacd') - and ieee802-eth-if:duplex = 'half'" { - description - "Applies to half-duplex Ethernet interfaces."; - } - status obsolete; - description - "Augment with Ethernet interface configuration parameters - for half-duplex operation."; - leaf dynamic-rate-control { - if-feature "dynamic-rate-control"; - type dynamic-rate-control-type; - status obsolete; - description - "Enables dynamic rate control and specifies what speed - (data rate) the dynamic rate control is operating at. - The value of this attribute is constrained by the MAC - data rate and hardware support. - The default value is implementation-dependent."; - reference - "IEEE Std 802.3, 30.3.1.1.34 aRateControlStatus"; - } - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" - + "ieee802-eth-if:capabilities" { - when "derived-from-or-self(../../if:type, - 'ianaift:ethernetCsmacd') - and ../ieee802-eth-if:duplex = 'half'" { - description - "Applies to half-duplex Ethernet interfaces"; - } - status obsolete; - description - "Augment with configuration capabilities for half-duplex - Ethernet interface."; - leaf dynamic-rate-control-supported { - if-feature "dynamic-rate-control"; - type boolean; - default "false"; - status obsolete; - description - "Indicates whether the Ethernet interface supports lowering - the average data rate of the MAC sublayer, with frame - granularity, by using Rate Control to dynamically increase - the inter-packet gap. - Only valid for Ethernet interfaces operating at speeds - (data rates) above 1000 Mb/s."; - reference - "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; - } - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" - + "ieee802-eth-if:statistics/ieee802-eth-if:frame" { - when "derived-from-or-self(../../../if:type, - 'ianaift:ethernetCsmacd') and - ../../ieee802-eth-if:duplex = 'half'" { - description - "Applies to half-duplex Ethernet interfaces."; - } - description - "Augment with statistics for half-duplex Ethernet interface."; - container csma-cd { - if-feature "csma-cd"; - description - "Holds counters that are specific to CDMA/CD half-duplex - operation of Ethernet interfaces. - This counter does not increment on Ethernet interfaces - operating at speeds (data rates) greater than 10 Mb/s, or - on Ethernet interfaces operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - leaf in-errors-sqe-test { - type yang:counter64; - units "errors"; - description - "A count of times that the SQE TEST ERROR is received on - a particular interface. The SQE TEST ERROR is set in - accordance with the rules for verification of the SQE - detection mechanism in the PLS Carrier Sense Function as - described in IEEE Std 802.3, 7.2.4.6."; - reference - "IEEE Std 802.3, 7.2.4.6, and 30.3.2.1.4 aSQETestErrors"; - } - leaf out-frames-collision-single { - type yang:counter64; - units "frames"; - description - "A count of frames that are involved in a single - collision, and are subsequently transmitted - successfully. A frame that is counted by an instance of - this object is also counted by the corresponding - instance of either 'out-unicast-frames', - 'out-broadcast-frames', or 'out-multicast-frames', - and is not counted by the corresponding instance of the - 'out-frames-collision-multiple'."; - reference - "IEEE Std 802.3, 30.3.1.1.3 aSingleCollisionFrames"; - } - leaf out-frames-collision-multiple { - type yang:counter64; - units "frames"; - description - "A count of frames that are involved in multiple - collisions, and are subsequently transmitted - successfully. A frame that is counted by an instance of - this object is also counted by the corresponding - instance of either 'out-unicast-frames', - 'out-broadcast-frames', or 'out-multicast-frames', and - is not counted by the corresponding instance of the - 'out-frames-collision-single'."; - reference - "IEEE Std 802.3, 30.3.1.1.4 aMultipleCollisionFrames"; - } - leaf out-frames-deferred { - type yang:counter64; - units "frames"; - description - "A count of frames for which the first transmission - attempt on a particular Ethernet interface is delayed - because the medium is busy. - A deferred frame that is not subject to any number of - collisions is not counted by an instance of - 'out-frames-collision-single' or - 'out-frames-collision-multiple' objects."; - reference - "IEEE Std 802.3, 30.3.1.1.9 - aFramesWithDeferredXmissions"; - } - leaf out-frames-collisions-excessive { - type yang:counter64; - units "frames"; - description - "A count of frames for which transmission on a particular - Ethernet interface fails due to excessive collisions."; - reference - "IEEE Std 802.3, 30.3.1.1.11 aFramesAbortedDueToXSColls"; - } - leaf out-collisions-late { - type yang:counter64; - units "collisions"; - description - "The number of times that a collision is detected on a - particular Ethernet interface later than one slotTime - into the transmission of a packet. - A (late) collision included in a count represented by an - instance of this object is also considered as a - (generic) collision for purposes of other - collision-related statistics."; - reference - "IEEE Std 802.3, 30.3.1.1.10 aLateCollisions"; - } - leaf out-errors-carrier-sense { - type yang:counter64; - units "errors"; - description - "The number of times that the carrier sense condition was - lost or never asserted when attempting to transmit a - frame on a particular Ethernet interface. - The count represented by an instance of this object is - incremented at most once per transmission attempt, even - if the carrier sense condition fluctuates during a - transmission attempt."; - reference - "IEEE Std 802.3, 30.3.1.1.13 aCarrierSenseErrors"; - } - list collision-histogram { - key "collision-count"; - description - "A collection of collision histograms for a particular - interface."; - reference - "IEEE Std 802.3, 30.3.1.1.30 aCollisionFrames"; - leaf collision-count { - type yang:counter64; - units "collisions"; - description - "The number of per-frame media collisions for which a - particular collision histogram cell represents the - frequency on a particular interface."; - } - leaf collision-count-frames { - type yang:counter64; - units "frames"; - description - "A count of individual MAC frames for which the - transmission (successful or otherwise) on a particular - interface occurs after the frame has experienced - exactly the number of collisions in the associated - dot3CollCount object. - For example, a frame which is transmitted on an - interface after experiencing exactly 4 collisions - would be indicated by incrementing only - collision-count-frames object associated with the - collision-count value of 4. No other instance of - collision-count-frames would be incremented in this - example."; - } - } - } - } -} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-interface.yang b/standard/ieee/draft/802.3/ieee802-ethernet-interface.yang deleted file mode 100644 index 043c436f6..000000000 --- a/standard/ieee/draft/802.3/ieee802-ethernet-interface.yang +++ /dev/null @@ -1,860 +0,0 @@ -module ieee802-ethernet-interface { - yang-version 1.1; - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-interface"; - prefix ieee802-eth-if; - - import ietf-yang-types { - prefix yang; - reference - "IETF RFC 6991"; - } - import iana-if-type { - prefix ianaift; - reference - "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2023-01-26.yang"; - } - import ietf-interfaces { - prefix if; - reference - "IETF RFC 8343"; - } - import ieee802-ethernet-phy-type { - prefix ieee802-phy; - reference - "IEEE Std 802.3-2022"; - } - - organization - "IEEE Std 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - description - "This module contains YANG definitions for configuring IEEE Std - 802.3 Ethernet Interfaces. - In this YANG module, 'Ethernet interface' can be interpreted - as referring to 'IEEE Std 802.3 compliant Ethernet - interfaces'."; - - revision 2025-04-17 { - description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; - reference - "IEEE Std 802.3-2022 and IEEE Std 802.3.1-202X, unless dated - explicitly"; - } - - feature ethernet-pfc { - description - "This device supports Ethernet priority flow-control."; - } - - feature ethernet-pause { - description - "This device supports Ethernet PAUSE."; - } - - typedef eth-if-speed-type { - type decimal64 { - fraction-digits 3; - } - units "Gb/s"; - status obsolete; - description - "Used to represent the configured, negotiated, or actual - speed of an Ethernet interface in Gigabits per second - (Gb/s), accurate to 3 decimal places (i.e., accurate to 1 - Mb/s)."; - } - - typedef duplex-type { - type enumeration { - enum full { - description - "Full duplex."; - } - enum half { - description - "Half duplex."; - } - enum unknown { - description - "Link is currently disconnected or initializing."; - } - } - default "full"; - description - "Used to represent the configured, negotiated, or actual - duplex mode of an Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.1.1.32, aDuplexStatus"; - } - - typedef pause-fc-direction-type { - type enumeration { - enum disabled { - description - "Flow-control disabled in both ingress and egress - directions."; - } - enum ingress-only { - description - "PAUSE frame based flow control is enabled in the ingress - direction only."; - } - enum egress-only { - description - "PAUSE frame based flow control is enabled in the egress - direction only."; - } - enum bi-directional { - description - "PAUSE frame based flow control is enabled in both - ingress and egress directions."; - } - enum undefined { - description - "Link is currently disconnected or initializing."; - } - } - description - "Used to represent the configured, negotiated, or actual - PAUSE frame-based flow control setting."; - reference - "IEEE Std 802.3.1, dot3PauseAdminMode and dot3PauseOperMode"; - } - - augment "/if:interfaces/if:interface" { - when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd')" { - description - "Applies to all Ethernet interfaces."; - } - description - "Augment interface model with Ethernet interface - specific configuration nodes."; - container ethernet { - description - "Contains all Ethernet interface related configuration."; - container auto-negotiation { - presence "The presence of this container indicates that - auto-negotiation is supported on this Ethernet - interface."; - description - "Contains auto-negotiation transmission parameters - - This container contains a data node that allows the - advertised duplex value in the negotiation to be - restricted. - - If not specified then the default behavior for the - duplex data node is to negotiate all available values for - the particular type of Ethernet PHY associated with the - interface."; - reference - "IEEE Std 802.3, Clause 28 and Annexes 28A-D"; - leaf enable { - type boolean; - default "true"; - description - "Controls whether auto-negotiation is enabled or - disabled. - For interface types that support auto-negotiation then - it defaults to being enabled. - - For interface types that do not support - auto-negotiation, the related configuration data is - ignored."; - } - leaf negotiation-status { - when "../enable = 'true'"; - type enumeration { - enum in-progress { - description - "The auto-negotiation protocol is running and - negotiation is currently in-progress."; - } - enum complete { - description - "The auto-negotiation protocol has completed - successfully."; - } - enum failed { - description - "The auto-negotiation protocol has failed."; - } - enum unknown { - description - "The auto-negotiation status is not currently known, - this could be because it is still negotiating or the - protocol cannot run - (e.g., if no medium is present)."; - } - enum no-negotiation { - description - "No auto-negotiation is executed. - The auto-negotation function is either not - supported on this interface or has not been - enabled."; - } - } - config false; - description - "The status of the auto-negotiation protocol."; - reference - "IEEE 802.3, 30.6.1.1.4, aAutoNegAutoConfig"; - } - } - leaf phy-type { - type identityref { - base ieee802-phy:phy-type; - } - config false; - description - "A value that uniquely identifies the IEEE 802.3 PHY type - of the interface."; - reference - "IEEE Std 802.3, 30.3.2.1.2 aPhyType"; - } - leaf pmd-type { - type identityref { - base ieee802-phy:pmd-type; - } - config false; - description - "A value that uniquely identifies the IEEE 802.3 PMD type - of the interface."; - reference - "IEEE Std 802.3, 30.5.1.1.2 aMAUType"; - } - leaf duplex { - type duplex-type; - description - "Operational duplex mode of the Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.1.1.32 aDuplexStatus"; - } - leaf speed { - type eth-if-speed-type; - units "Gb/s"; - status obsolete; - description - "Operational speed (data rate) of the Ethernet interface. - The default value is implementation-dependent. - Supersceeded by speed in /if:interfaces/if:interface"; - } - /* deprecated flow-control container */ - container flow-control { - status deprecated; - description - "Holds the different types of Ethernet PAUSE frame based - flow control that can be enabled. - Supersceeded by new container - pause."; - container pause { - if-feature "ethernet-pause"; - description - "IEEE Std 802.3 PAUSE frame based PAUSE frame based - flow control."; - reference - "IEEE Std 802.3, Annex 31B"; - leaf direction { - type pause-fc-direction-type; - description - "Indicates which direction PAUSE frame based flow - control is enabled in, or whether it is disabled. - The default flow-control settings are vendor - specific. If auto-negotiation is enabled, then PAUSE - based flow-control is negotiated by default. - The default value is implementation-dependent."; - } - container statistics { - config false; - description - "Contains the number of PAUSE frames received or - transmitted. - - Discontinuities in the values of counters in - this container can occur at re-initialization of - the management system, and at other times as - indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - leaf in-frames-pause { - type yang:counter64; - units "frames"; - description - "A count of PAUSE MAC Control frames transmitted on - this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.4.3 - aPAUSEMACCtrlFramesReceived"; - } - leaf out-frames-pause { - type yang:counter64; - units "frames"; - description - "A count of PAUSE MAC Control frames transmitted on - this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.4.2 - aPAUSEMACCtrlFramesTransmitted"; - } - } - } - container pfc { - if-feature "ethernet-pfc"; - description - "IEEE Std 802.3 Priority-based flow control."; - reference - "IEEE Std 802.3, Annex 31D"; - leaf enable { - type boolean; - description - "True indicates that IEEE Std 802.3 priority-based - flow control is enabled, false indicates that - IEEE Std 802.3 priority-based flow control is - disabled. For interfaces that have auto-negotiation, - the priority-based flow control is enabled by - default."; - } - container statistics { - config false; - status deprecated; - description - "This container collects all statistics for - Ethernet interfaces. - - Discontinuities in the values of counters in - this container can occur at re-initialization of - the management system, and at other times as - indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - leaf in-frames-pfc { - type yang:counter64; - units "frames"; - description - "Deprecated in-frames-pfc as not defined in base - standard. A count of PFC MAC Control frames - received on this Ethernet interface."; - reference - "IEEE Std 802.3.1, dot3HCInPFCFrames"; - } - leaf out-frames-pfc { - type yang:counter64; - units "frames"; - description - "Deprecated out-frames-pfc as not defined in base - standard.A count of PFC MAC Control frames - transmitted on this interface."; - reference - "IEEE Std 802.3.1, dot3HCInPFCFrames"; - } - } - } - leaf force-flow-control { - type boolean; - default "false"; - description - "Explicitly forces the local PAUSE frame based flow - control settings regardless of what has been - negotiated. - - Since the auto-negotiation of flow-control settings - does not allow all sane combinations to be negotiated - (e.g., consider a device that is only capable of - sending PAUSE frames connected to a peer device that - is only capable of receiving and acting on PAUSE - frames) and failing to agree on the flow-control - settings does not cause the auto-negotiation to fail - completely, then it is sometimes useful to be able to - explicitly enable particular PAUSE frame based flow - control settings on the local device regardless of - what is being advertised or negotiated."; - reference - "IEEE Std 802.3, Table 28B-3"; - } - } - leaf max-frame-length { - type uint16; - units "octets"; - config false; - description - "This indicates the MAC frame length (including FCS bytes) - at which frames are dropped for being too long."; - reference - "IEEE Std 802.3, 30.3.1.1.37 aMaxFrameLength"; - } - leaf mac-control-extension-control { - type boolean; - config false; - description - "A value that identifies the current EXTENSION - MAC Control function, as specified in - IEEE Std 802.3, Annex 31C."; - reference - "IEEE Std 802.3, 30.3.8.3 aEXTENSIONMACCtrlStatus - IEEE Std 802.3.1, dot3ExtensionMacCtrlStatus "; - } - leaf frame-limit-slow-protocol { - type uint64; - units "f/s"; - default "10"; - config false; - description - "The maximum number of Slow Protocol frames of a given - subtype that can be transmitted in a one second - interval. - The default value is 10."; - reference - "IEEE Std 802.3, 30.3.1.1.38 aSlowProtocolFrameLimit"; - } - container capabilities { - config false; - description - "Container all Ethernet interface specific capabilities."; - leaf auto-negotiation { - type boolean; - description - "Indicates whether auto-negotiation may be configured on - this interface."; - } - } - container ethernet-pause { - if-feature "ethernet-pause"; - description - "IEEE Std 802.3 PAUSE flow control. - - Discontinuities in the values of counters in - this container can occur at re-initialization of - the management system, and at other times as - indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - reference - "IEEE Std 802.3,30.3.4 PAUSE entity managed object class and - Clause 31,Annex 31B)"; - container control-and-status { - description - "PAUSE function control and status objects."; - leaf pause-admin-control { - type pause-fc-direction-type; - default "disabled"; - description - "What PAUSE functionality will run on this interface when - Auto-Negotiation is not implemented or disabled."; - reference - "IEEE Std 802.3, ????"; - } - leaf pause-oper-status { - type pause-fc-direction-type; - config false; - description - "What PAUSE functionality is running on this - interface, as a result of Auto-Negotiation or - setting pause-admin-control."; - reference - "IEEE Std 802.3, ????"; - } - leaf link-delay-allowance { - type uint32; - description - "The value in bit-times of the allowance made by the - MAC Control PAUSE entity for round-trip propagation - delay. - The default value is implementation-dependent."; - } - leaf pfc-enable-status { - type boolean; - config false; - description - "Is IEEE 802.1 Priority-based Flow Control(PFC) - enabled on the interface. If PFC is enabled, then - 802.3 PAUSE flow control is disabled."; - reference - "IEEE Std 802.3, 30.3.3.6 aPFCEnableStatus"; - } - } - container statistics { - config false; - description - "PAUSE frame counters."; - leaf in-frames-pause { - type yang:counter64; - units "frames"; - description - "A count of MAC Control PAUSE frames transmitted on - this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.4.3 - aPAUSEMACCtrlFramesReceived"; - } - leaf out-frames-pause { - type yang:counter64; - units "frames"; - description - "A count of MAC Control PAUSE frames transmitted on - this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.4.2 - aPAUSEMACCtrlFramesTransmitted"; - } - } - } - container statistics { - config false; - description - "Contains statistics specific to Ethernet interfaces. - - Discontinuities in the values of counters in the - container can occur at re-initialization of the - management system, and at other times as indicated by - the value of the 'discontinuity-time' leaf defined in - the ietf-interfaces YANG module (IETF RFC 8343)."; - container frame { - description - "Contains frame statistics specific to Ethernet - interfaces. - - All octet frame lengths include the 4 byte FCS. - - Error counters are only reported once. The count - represented by an instance of this object is - incremented when the frameCheckError status is - returned by the MAC service to the MAC Client. - Received frames for which multiple error conditions - pertain are, according to the conventions of - IEEE Std 802.3 Layer Management, counted exclusively - according to the error status presented to the MAC - Client. - - A frame that is counted by an instance of this object - is also counted by the corresponding instance of - 'in-errors' leaf defined in the ietf-interfaces YANG - module (IETF RFC 8343)."; - leaf in-total-frames { - type yang:counter64; - units "frames"; - description - "The total number of frames (including bad frames) - received on the Ethernet interface. - - This counter is calculated by summing the following - IEEE Std 802.3, Clause 30 counters: - aFramesReceivedOK + - aFrameCheckSequenceErrors + - aAlignmentErrors + - aFrameTooLongErrors + - aFramesLostDueToIntMACRcvError"; - reference - "IEEE Std 802.3, Clause 30 counters, as specified - in the description above."; - } - leaf in-total-octets { - type yang:counter64; - units "octets"; - description - "The total number of octets of data (including those - in bad frames) received on the Ethernet interface. - - Includes the 4-octet FCS."; - reference - "IETF RFC 2819, etherStatsOctets"; - } - leaf in-frames { - type yang:counter64; - units "frames"; - description - "A count of frames (including unicast, multicast and - broadcast) that have been successfully received on - the Ethernet interface. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error."; - reference - "IEEE Std 802.3, 30.3.1.1.5 aFramesReceivedOK"; - } - leaf in-multicast-frames { - type yang:counter64; - units "frames"; - description - "A count of multicast frames that have been - successfully received on the Ethernet interface. - - This counter represents a subset of the frames - counted by in-frames. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error."; - reference - "IEEE Std 802.3, 30.3.1.1.21 - aMulticastFramesReceivedOK"; - } - leaf in-broadcast-frames { - type yang:counter64; - units "frames"; - description - "A count of broadcast frames that have been - successfully received on the Ethernet interface. - - This counter represents a subset of the frames - counted by in-frames. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error."; - reference - "IEEE Std 802.3, 30.3.1.1.22 - aBroadcastFramesReceivedOK"; - } - leaf in-error-fcs-frames { - type yang:counter64; - units "frames"; - description - "A count of receive frames that are of valid length, - but do not pass the FCS check, regardless of whether - or not the frames are an integral number of octets - in length. - - This counter is calculated by summing the following - counters: - aFrameCheckSequenceErrors + - aAlignmentErrors"; - reference - "IEEE Std 802.3, 30.3.1.1.6 aFrameCheckSequenceErrors; - IEEE Std 802.3, 30.3.1.1.7 aAlignmentErrors"; - } - leaf in-error-undersize-frames { - type yang:counter64; - units "frames"; - status deprecated; - description - "Deprecated in-error-undersize-frames as not defined - in base standard. A count of frames received on a - particular Ethernet interface that are less than - 64 bytes in length, and are discarded. - - This counter is incremented regardless of whether - the frame passes the FCS check."; - reference - "IETF RFC 2819, etherStatsUndersizePkts and - etherStatsFragments"; - } - leaf in-error-oversize-frames { - type yang:counter64; - units "frames"; - description - "A count of frames received on a particular Ethernet - interface that exceed the maximum permitted frame - size, that is specified in max-frame-length, and are - discarded. - - This counter is incremented regardless of whether - the frame passes the FCS check."; - reference - "IEEE Std 802.3, 30.3.1.1.25 - aFrameTooLongErrors"; - } - leaf in-error-mac-internal-frames { - type yang:counter64; - units "frames"; - description - "A count of frames for which reception on a - particular Ethernet interface fails due to an - internal MAC sublayer receive error. - - A frame is only counted by an instance of this - object if it is not counted by the corresponding - instance of either the in-error-fcs-frames, - in-error-undersize-frames, or - in-error-oversize-frames. The precise meaning of - the count represented by an instance of this object - is implementation-specific. - - In particular, an instance of this object may - represent a count of receive errors on a particular - Ethernet interface that are not otherwise counted."; - reference - "IEEE Std 802.3, 30.3.1.1.15 - aFramesLostDueToIntMACRcvError"; - } - leaf out-frames { - type yang:counter64; - units "frames"; - description - "A count of frames (including unicast, multicast and - broadcast) that have been successfully transmitted - on the Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.1.1.2 aFramesTransmittedOK"; - } - leaf out-multicast-frames { - type yang:counter64; - units "frames"; - description - "A count of multicast frames that have been - successfully transmitted on the Ethernet interface. - - This counter represents a subset of the frames - counted by out-frames."; - reference - "IEEE Std 802.3, 30.3.1.1.18 - aMulticastFramesXmittedOK"; - } - leaf out-broadcast-frames { - type yang:counter64; - units "frames"; - description - "A count of broadcast frames that have been - successfully transmitted on the Ethernet interface. - - This counter represents a subset of the frames - counted by out-frames."; - reference - "IEEE Std 802.3, 30.3.1.1.19 - aBroadcastFramesXmittedOK"; - } - leaf out-error-mac-internal-frames { - type yang:counter64; - units "frames"; - description - "A count of frames for which transmission on a - particular Ethernet interface fails due to an - internal MAC sublayer transmit error. - - The precise meaning of the count represented by an - instance of this object is implementation-specific. - In particular, an instance of this object may - represent a count of transmission errors on a - particular Ethernet interface that are not otherwise - counted."; - reference - "IEEE Std 802.3, 30.3.1.1.12 - aFramesLostDueToIntMACXmitError"; - } - } - container phy { - description - "Ethernet statistics related to the PHY layer."; - leaf in-error-symbol { - type yang:counter64; - units "errors"; - description - "A count of the number of symbol errors that have - occurred. - - For the precise definition of when the symbol error - counter is incremented, please see the 'description' - text associated with aSymbolErrorDuringCarrier, - specified in IEEE Std 802.3, 30.3.2.1.5."; - reference - "IEEE Std 802.3, 30.3.2.1.5 - aSymbolErrorDuringCarrier"; - } - container lpi { - description - "Physical Ethernet statistics for the energy - efficiency related low power idle indications."; - leaf in-lpi-transitions { - type yang:counter64; - units "transitions"; - description - "The number of times the link partner transitioned to - Low Power Idle. - This counter has a maximum per second increment rate - of: - 50 thousand for 100 Mb/s; - 90 thousand for 1000 Mb/s - 230 thousand for 10 Gb/s."; - reference - "IEEE Std 802.3, 30.3.2.1.11 - aReceiveLPITransitions"; - } - leaf in-lpi-time { - type decimal64 { - fraction-digits 6; - } - units "seconds"; - description - "The amount of time the link partner has - been in Low Power Idle."; - reference - "IEEE Std 802.3, 30.3.2.1.9 - aReceiveLPIMicroseconds"; - } - leaf out-lpi-transitions { - type yang:counter64; - units "transitions"; - description - "The number of times this port transitioned to - Low Power Idle. - This counter has a maximum per second increment rate - of: - 50 thousand for 100 Mb/s; - 90 thousand for 1000 Mb/s - 230 thousand for 10 Gb/s."; - reference - "IEEE Std 802.3, 30.3.2.1.10 - aTransmitLPITransitions"; - } - leaf out-lpi-time { - type decimal64 { - fraction-digits 6; - } - units "seconds"; - description - "The amount of time in this port has - been in Low Power Idle."; - reference - "IEEE Std 802.3, 30.3.2.1.8 - aTransmitLPIMicroseconds"; - } - } - } - container mac-control { - description - "A group of statistics specific to MAC Control - operation of selected Ethernet interfaces."; - reference - "IEEE Std 802.3.1, dot3ExtensionTable"; - leaf in-frames-mac-control-unknown { - type yang:counter64; - units "frames"; - description - "A count of MAC Control frames with an unsupported - opcode received on this Ethernet interface. - - Frames counted against this counter are also counted - against in-discards defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.3.5 - aUnsupportedOpcodesReceived"; - } - leaf in-frames-mac-control-extension { - type yang:counter64; - units "frames"; - description - "The count of Extension MAC Control frames received - on this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.8.2 - aEXTENSIONMACCtrlFramesReceived"; - } - leaf out-frames-mac-control-extension { - type yang:counter64; - units "frames"; - description - "The count of Extension MAC Control frames - transmitted on this Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.8.1 - aEXTENSIONMACCtrlFramesTransmitted"; - } - } - } - } - } -} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-link-oam.yang b/standard/ieee/draft/802.3/ieee802-ethernet-link-oam.yang deleted file mode 100644 index 5541bf909..000000000 --- a/standard/ieee/draft/802.3/ieee802-ethernet-link-oam.yang +++ /dev/null @@ -1,1152 +0,0 @@ -module ieee802-ethernet-link-oam { - yang-version 1.1; - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-link-oam"; - prefix ieee802-link-oam; - - import ieee802-types { - prefix ieee; - reference - "IEEE 802 types"; - } - import ietf-yang-types { - prefix yang; - reference - "IETF RFC 6991"; - } - import iana-if-type { - prefix ianaift; - reference - "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2023-01-26.yang"; - } - import ietf-interfaces { - prefix if; - reference - "IETF RFC 8343"; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - description - "This module contains a collection of YANG definitions - for managing the Ethernet Link OAM feature defined by IEEE - 802.3. It provides functionality roughly equivalent to that of - the DOT3-OAM-MIB defined in IETF RFC 4878."; - - revision 2025-04-17 { - description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; - reference - "IEEE Std 802.3-2022, unless dated explicitly"; - } - - feature uni-directional-link-fault { - description - "This feature means the device supports Uni Directional Link - Fault detection."; - reference - "IEEE Std 802.3, 57.1.2:a, 30.3.6.1.6 aOAMLocalConfiguration - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - - feature remote-loopback-initiate { - description - "This feature means the device supports being the initiator - of remote loopback."; - reference - "IEEE Std 802.3, 57.1.2:b, 30.3.6.1.6 - aOAMLocalConfiguration"; - } - - feature remote-loopback-respond { - description - "This feature means the device supports responding to remote - loopback control OAMPDUs received from the peer"; - reference - "IEEE Std 802.3, 57.1.2:b, 30.3.6.1.7 - aOAMRemoteConfiguration"; - } - - feature link-monitoring-local { - description - "This feature means the device monitors the link at the local - side and can generate Link Event OAMPDUs to the peer - device."; - reference - "IEEE Std 802.3, 57.1.2:c:1, 30.3.6.1.6 - aOAMLocalConfiguration, and 30.3.6.1.7 - aOAMRemoteConfiguration"; - } - - feature link-monitoring-remote { - description - "This feature means the device can process Link Event OAMPDUs - received from the peer device and report itself about this - event on its own management interface."; - reference - "IEEE Std 802.3, 57.1.2:c:1, - 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - - feature remote-mib-retrieval-initiate { - status deprecated; - description - "remote-mib-retrieval-initiate is deprecated and changed name - to feature remote-data-retrieval-initiate. This feature - means the device supports data retrieval from the peer - device. I.e. the device can send Variable Requests OAMPDUs - to the peer side and process the received Variable Response - OAMPDUs."; - reference - "IEEE Std 802.3, 57.1.2:c:2, - 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - - feature remote-data-retrieval-initiate { - description - "This feature means the device supports data retrieval from - the peer device. I.e. the device can send Variable Requests - OAMPDUs to the peer side and process the received Variable - Response OAMPDUs."; - reference - "IEEE Std 802.3, 57.1.2:c:2, - 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - - feature remote-mib-retrieval-respond { - description - "This feature means the device allows the peer device to - retrieve data from the managed device. I.e. the device can - process received Variable Requests OAMPDUs and respond with - Variable Response OAMPDUs."; - reference - "IEEE Std 802.3, 57.1.2:c:2, - 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - - identity event-type { - description - "Base identity for all Link OAM event types."; - } - - identity threshold-event-type { - base event-type; - description - "Event type for a Link Monitoring threshold event."; - } - - identity link-fault-event { - if-feature "uni-directional-link-fault"; - base event-type; - description - "Event type for a uni-directional link fault event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - - identity dying-gasp-event { - base event-type; - description - "Event type for a dying gasp event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - - identity critical-event { - base event-type; - description - "Event type for a critical event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - - typedef threshold-event-enum { - type enumeration { - enum symbol-period-event { - value 1; - description - "Errored symbol period event."; - } - enum frame-period-event { - value 2; - description - "Errored frame period event."; - } - enum frame-event { - value 3; - description - "Errored frame event"; - } - enum frame-seconds-event { - value 4; - description - "Errored frame seconds event."; - } - } - description - "Enumeration of the valid threshold event types."; - reference - "IEEE Std 802.3, 57.5.3"; - } - - typedef mode { - type enumeration { - enum passive { - value 0; - description - "Ethernet Link OAM Passive mode."; - } - enum active { - value 1; - description - "Ethernet Link OAM Active mode."; - } - } - description - "Enumeration of the valid modes in which Link OAM may run."; - reference - "IEEE Std 802.3, 57.2.9 and 30.3.6.1.3."; - } - - typedef event-location { - type enumeration { - enum event-location-local { - value 1; - description - "A local event."; - } - enum event-location-remote { - value 2; - description - "A remote event."; - } - } - description - "The location of the event that caused a log entry."; - } - - typedef loopback-status { - type enumeration { - enum none { - value 1; - description - "Loopback is not being performed."; - } - enum initiating { - value 2; - description - "Initiating master loopback."; - } - enum master-loopback { - value 3; - description - "In master loopback mode."; - } - enum terminating { - value 4; - description - "Terminating master loopback mode."; - } - enum local-loopback { - value 5; - description - "In slave loopback mode."; - } - enum unknown { - value 6; - description - "Parser and multiplexer combination unexpected."; - } - } - description - "The loopback mode of an OAM interface."; - reference - "IEEE Std 802.3, 57.2.11"; - } - - typedef operational-state { - type enumeration { - enum disabled { - value 1; - description - "IEEE Std 802.3 OAM is disabled."; - } - enum link-fault { - value 2; - description - "IEEE Std 802.3 OAM has encountered a link fault."; - } - enum passive-wait { - value 3; - description - "Passive OAM entity waiting to see if peer is - OAM capable."; - } - enum active-send-local { - value 4; - description - "Active OAM entity trying to determine if peer - is OAM capable."; - } - enum send-local-and-remote { - value 5; - description - "OAM discovered peer but still to accept or - reject peer configuration."; - } - enum send-local-and-remote-ok { - value 6; - description - "OAM peering is allowed by local device."; - } - enum peering-locally-rejected { - value 7; - description - "OAM peering rejected by local device."; - } - enum peering-remotely-rejected { - value 8; - description - "OAM peering rejected by remote device."; - } - enum operational { - value 9; - description - "IEEE Std 802.3 OAM is operational."; - } - enum operational-half-duplex { - value 10; - description - "IEEE Std 802.3 OAM is operating in half-duplex mode."; - } - } - description - "Operational state of an interface."; - reference - "IEEE Std 802.3, 30.3.6.1.4, - 30.3.6.1.10, and 30.3.6.1.11"; - } - - typedef vendor-oui { - type string { - length "6"; - } - description - "Organizationally Unique Identifier (OUI) as assigned to - vendor by the IEEE Registration Authority"; - reference - "IEEE Std 802, subclause 8.2.2"; - } - - typedef admin-state { - type enumeration { - enum enabled { - value 1; - description - "IEEE Std 802.3, Clause 57 OAM is in the - enabled admin state."; - } - enum disabled { - value 2; - description - "IEEE Std 802.3, Clause 57 OAM is in the - disabled admin state."; - } - } - description - "Admin state of the OAM function on an interface."; - reference - "IEEE Std 802.3, 30.3.6.1.2 and 30.3.6.2"; - } - - grouping event-details { - description - "Nodes describing an event, used in the event log and in - notifications."; - reference - "IETF RFC 4878, Dot3OamEventLogEntry"; - leaf oui { - type vendor-oui; - mandatory true; - description - "Organizationally Unique Identifier for the device that - generated the event."; - } - leaf timestamp { - type uint64; - units "milliseconds"; - mandatory true; - description - "Timestamp in milliseconds since Unix epoch for when the - event occurred."; - } - leaf location { - type event-location; - mandatory true; - description - "Where the event occurred (local or remote)."; - } - leaf event-type { - type identityref { - base event-type; - } - mandatory true; - description - "Type of event that occurred."; - reference - "IEEE Std 802.3, 30.3.6.1.10 and 30.3.6.11"; - } - leaf running-total { - type yang:counter64; - mandatory true; - description - "The running total number of errors seen since OAM was - enabled on the interface. For threshold events, this is - the total number of times that particular type of error - (e.g. symbol error) has occurred, which may be greater - than the number of threshold-crossing event notifications - of that type generated during that time (which is conveyed - by the event-total leaf)."; - } - leaf event-total { - type yang:counter64; - mandatory true; - description - "Total number of times this event has occurred since OAM - was enabled on the interface. For threshold events this is - the number of events generated of this type (as opposed to - the total number of errors of that type, which may be - greater, and is conveyed by the running-total leaf."; - } - } - - grouping threshold-event-details { - description - "Nodes describing a threshold event, used in the event - log and in notifications"; - reference - "IETF RFC 4878, Dot3OamEventLogEntry"; - container threshold { - when - "../event-type = 'ieee802-link-oam:threshold-event-type'" { - description - "These nodes only apply to threshold event types"; - } - if-feature - "link-monitoring-local or - link-monitoring-remote"; - description - "Nodes specific to threshold (link monitoring) events"; - leaf threshold-event-type { - type threshold-event-enum; - mandatory true; - description - "The type of threshold event"; - reference - "IEEE Std 802.3, 57.5.3"; - } - leaf window { - type uint64; - mandatory true; - description - "Size of the window in which the event was generated. - Units are dependent on the threshold event type."; - } - leaf threshold { - type uint64; - mandatory true; - description - "Size of the threshold that was breached during the - window. Units are dependent on the threshold - event type."; - } - leaf value { - type uint64; - mandatory true; - description - "Breaching value. Units are dependent on the threshold - event type, and match that of the threshold."; - } - } - } - - grouping statistics-common { - description - "Collection of Link OAM event/packet counters."; - reference - "IETF RFC 4878, Dot3OamStatsEntry"; - leaf out-information { - type yang:counter64; - mandatory true; - description - "Number of information OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.20"; - } - leaf in-information { - type yang:counter64; - mandatory true; - description - "Number of information OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.21"; - } - leaf out-unique-event-notification { - if-feature "link-monitoring-local"; - type yang:counter64; - mandatory true; - description - "Number of unique event notification OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.22"; - } - leaf in-unique-event-notification { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of unique event notification OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.24"; - } - leaf out-duplicate-event-notification { - if-feature "link-monitoring-local"; - type yang:counter64; - mandatory true; - description - "Number of duplicate event notification OAMPDUs - transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.23"; - } - leaf in-duplicate-event-notification { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of duplicate event notification OAMPDUs - received."; - reference - "IEEE Std 802.3, 30.3.6.1.25"; - } - leaf out-loopback-control { - if-feature "remote-loopback-initiate"; - type yang:counter64; - mandatory true; - description - "Number of loopback control OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.26"; - } - leaf in-loopback-control { - if-feature "remote-loopback-respond"; - type yang:counter64; - mandatory true; - description - "Number of loopback control OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.27"; - } - leaf out-variable-request { - if-feature "remote-data-retrieval-initiate"; - type yang:counter64; - mandatory true; - description - "Number of variable request OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.28"; - } - leaf in-variable-request { - if-feature "remote-mib-retrieval-respond"; - type yang:counter64; - mandatory true; - description - "Number of variable request OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.29"; - } - leaf out-variable-response { - if-feature "remote-mib-retrieval-respond"; - type yang:counter64; - mandatory true; - description - "Number of variable response OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.30"; - } - leaf in-variable-response { - if-feature "remote-data-retrieval-initiate"; - type yang:counter64; - mandatory true; - description - "Number of variable response OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.31"; - } - leaf out-org-specific { - type yang:counter64; - mandatory true; - description - "Number of organization specific OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.32"; - } - leaf in-org-specific { - type yang:counter64; - mandatory true; - description - "Number of organization specific OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.33"; - } - leaf out-unsupported-codes { - type yang:counter64; - mandatory true; - description - "Number of OAMPDUs with unsupported codes transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.18"; - } - leaf in-unsupported-codes { - type yang:counter64; - mandatory true; - description - "Number of OAMPDUs with unsupported codes received."; - reference - "IEEE Std 802.3, 30.3.6.1.19"; - } - leaf frames-lost-due-to-oam { - type yang:counter64; - mandatory true; - description - "A count of the number of frames that were dropped by the - OAM multiplexer. Since the OAM multiplexer has multiple - inputs and a single output, there may be cases where - frames are dropped due to transmit resource contention. - This counter is incremented whenever a frame is dropped by - the OAM layer."; - reference - "IEEE Std 802.3, 30.3.6.1.46"; - } - } - - grouping discovery-remote { - description - "Nodes describing the discovery process remote end of a - link."; - leaf mode { - type mode; - description - "Mode (passive/active)."; - reference - "IEEE Std 802.3, 30.3.6.1.3"; - } - container functions-supported { - description - "The Link OAM functions supported by this interface."; - reference - "IEEE Std 802.3, 30.3.6.1.7"; - leaf uni-directional-link-fault { - type boolean; - description - "Unidirectional link fault support."; - } - leaf loopback { - type boolean; - description - "Remote Loopback support."; - } - leaf link-monitoring { - type boolean; - description - "Link monitoring support."; - } - leaf mib-retrieval { - type boolean; - description - "MIB variable retrieval support."; - } - } - leaf revision { - type uint64; - config false; - description - "Configuration revision."; - reference - "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; - } - leaf oammtu { - type uint16; - units "octets"; - config false; - description - "The maximum OAMPDU size for the remote node. - The peer OAM entities exchange the maximum size they can - support and negotiate to use the smaller of the two maximum - OAMPDU sizes."; - reference - "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; - } - } - - grouping discovery-local { - description - "Nodes describing the local end discovery process of a - link."; - leaf mode { - type mode; - description - "This object configures the mode of OAM operation as active - or passive. Active mode provides capabilities to initiate - monitoring activities with the remote OAM peer eneity, - while passive mode waits for the peer to initiate actions - with it. Changing this value results in incrementing the - revision field of locally generated OAMPDUs - (see IEEE Std 802.3, 30.3.6.1.12) and triggers the - OAM discovery process if the operational state was - already 'operational'. The default value is - implementation-dependent."; - reference - "IEEE Std 802.3, 30.3.6.1.3"; - } - container functions-supported { - description - "The Link OAM functions supported by this interface."; - reference - "IEEE Std 802.3, 30.3.6.1.7"; - leaf uni-directional-link-fault { - if-feature "uni-directional-link-fault"; - type boolean; - description - "Unidirectional link fault support. - This affects the setting of the 'Unidirectional Support' - bit in the OAM configuration field put in the - Information OAMPDU. - This bit indicates to the peer device that it can send - OAM PDUs on links that are operating in unidirectional - mode (traffic flowing in one direction only)."; - } - leaf loopback { - if-feature "remote-loopback-initiate"; - type boolean; - default "true"; - description - "Remote Loopback support."; - } - container link-monitor { - if-feature - "link-monitoring-remote or - link-monitoring-local"; - description - "Configure link monitor parameters."; - reference - "IEEE Std 802.3, 57.1.2:c"; - leaf link-monitoring { - type boolean; - default "true"; - description - "Enable or disable monitoring. - This affects the setting of the 'Link Events' bit in - the OAM configuration field put in the Information - OAMPDU. This bit indicates to the peer device that the - OAM entity can send and receive Event Notification - OAMPDUs."; - } - list event-type { - if-feature "link-monitoring-local"; - key "threshold-type"; - description - "A list containing at most one entry for each of the - threshold event types. If there is no entry for a - particular event type, the default values are used for - both window size and threshold."; - leaf threshold-type { - type threshold-event-enum; - description - "The type of threshold event for which this list - entry is specifying the configuration."; - reference - "IEEE Std 802.3, 57.5.3"; - } - leaf window { - type uint64; - description - "The size of the window to use when monitoring for - this threshold event. The units, default and upper - and lower bounds depend on the threshold type as - follows: - - Symbol Period: - Units: number of symbols - Default: number of symbols in one second for the - underlying physical layer - Min: number of symbols in one second for the - underlying physical layer - Max: number of symbols in one minute for the - underlying physical layer - - Frame: - Units: deciseconds - Default: 1 second - Min: 1 second - Max: 1 minute - - Frame Period: - Units: number of frames - Default: number of minFrameSize frames in one - second for the underlying physical layer - Min: number of minFrameSize frames in one - second for the underlying physical layer - Max: number of minFrameSize frames in one - minute for the underlying physical layer - - Frame Seconds: - Units: deciseconds - Default: 60 seconds - Min: 10 seconds - Max: 900 seconds"; - reference - "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, - and 30.3.6.1.40"; - } - leaf threshold { - type uint64 { - range "1..max"; - } - default "1"; - description - "The threshold value to use when determining whether - to generate an event given the number of errors that - occurred in a given window. The units depend on the - threshold type as follows: - - Symbol Period: number of errored symbols - Frame: number of errored frames - Frame Period: number of errored frames - Frame Seconds: number of seconds containing at least - 1 frame error"; - reference - "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, - and 30.3.6.1.40"; - } - } - } - leaf mib-retrieval { - if-feature - "remote-mib-retrieval-initiate or - remote-mib-retrieval-respond"; - type boolean; - status deprecated; - description - "leaf mib-retrieval is deprecated and changed name to - data-retrieval. - MIB variable retrieval support. - This affects the setting of the 'Variable Retrieval' bit - in the OAM configuration field put in the Information - OAMPDU. This bit indicates to the peer device that the - OAM entity can send and receive Variable Request and - Response OAMPDUs."; - } - leaf data-retrieval { - if-feature - "remote-data-retrieval-initiate or - remote-mib-retrieval-respond"; - type boolean; - description - "Variable retrieval support. - This affects the setting of the 'Variable Retrieval' bit - in the OAM configuration field put in the Information - OAMPDU. This bit indicates to the peer device that the - OAM entity can send and receive Variable Request and - Response OAMPDUs."; - } - } - leaf revision { - type uint64; - config false; - description - "Configuration revision."; - reference - "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; - } - leaf oammtu { - type uint16; - units "octets"; - config false; - description - "The maximum OAMPDU size for the local node. The peer OAM - entities exchange the maximum size they can support and - negotiate to use the smaller of the two maximum OAMPDU - sizes."; - reference - "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; - } - } - - grouping discovery-info { - description - "Information relating to the discovery process."; - container local { - description - "Properties of the local device."; - leaf operational-status { - type operational-state; - config false; - mandatory true; - description - "Operational status."; - reference - "IETF RFC 4878, dot3OamOperStatus; IEEE Std 802.3, - 30.3.6.1.4, 30.3.6.1.10, and 30.3.6.1.11"; - } - leaf loopback-mode { - if-feature - "remote-loopback-initiate or - remote-loopback-respond"; - type loopback-status; - config false; - mandatory true; - description - "The loopback mode the interface is in."; - reference - "IEEE Std 802.3, 30.3.6.1.14"; - } - uses discovery-local; - } - container remote { - config false; - description - "Properties of the remote (peer) device."; - leaf mac-address { - type ieee:mac-address; - description - "Remote MAC address."; - reference - "IEEE Std 802.3, 30.3.6.1.5"; - } - leaf vendor-oui { - type vendor-oui; - description - "Remote vendor OUI."; - reference - "IEEE Std 802.3, 30.3.6.1.16"; - } - leaf vendor-info { - type uint64; - description - "Remote vendor info. The semantics of this value are - proprietary and specific to the vendor."; - reference - "IEEE Std 802.3, 30.3.6.1.17"; - } - leaf loopback-mode { - type loopback-status; - mandatory true; - description - "The loopback mode the interface is in."; - reference - "IEEE Std 802.3, 30.3.6.1.15"; - } - uses discovery-remote; - } - } - - augment "/if:interfaces/if:interface" { - when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or - derived-from-or-self(if:type, 'ianaift:ptm') " { - description - "Augments the interface model with nodes - specific to Ethernet Link OAM."; - } - description - "Augments Ethernet interface model with nodes - specific to Ethernet Link OAM."; - container link-oam { - presence "Implies Link OAM is configured on the interface."; - description - "Interface operational state for Ethernet Link OAM."; - action remote-loopback { - if-feature "remote-loopback-initiate"; - description - "Start/stop remote loopback on the specified interface."; - reference - "IEEE Std 802.3, 57.1.2:b"; - input { - leaf enable { - type boolean; - mandatory true; - description - "Whether to enable or disable remote loopback."; - } - } - output { - leaf success { - type boolean; - mandatory true; - description - "True if the operation was successful, - false otherwise."; - } - leaf error-message { - type string; - description - "If the operation failed, optionally used to - provide extra details."; - } - } - } - action reset-stats { - description - "Reset Ethernet Link OAM statistics on this interface."; - output { - leaf success { - type boolean; - mandatory true; - description - "True if the operation was successful, - false otherwise."; - } - leaf error-message { - type string; - description - "If the operation failed, optionally used to provide - extra details."; - } - } - } - notification non-threshold-event { - description - "This notification is sent when a local or remote - non-threshold crossing event is detected."; - uses event-details { - refine "event-type" { - must ". != 'ieee802-link-oam:threshold-event-type'" { - description - "This leaf is not set to - 'threshold-event-type'."; - } - } - } - } - notification threshold-event { - if-feature - "link-monitoring-local or - link-monitoring-remote"; - description - "This notification is sent when a local or remote - threshold crossing event is detected."; - uses event-details { - refine "event-type" { - must ". = 'ieee802-link-oam:threshold-event-type'" { - description - "This leaf is set to 'threshold-event-type'."; - } - } - } - uses threshold-event-details; - } - leaf admin { - type admin-state; - default "disabled"; - description - "This object is used to provision the default - administrative OAM mode for this interface. This object - represents the desired state of OAM for this interface. - It starts in the disabled state until an explicit - management action or configuration information retained - by the system causes a transition to the enabled(1) - state. When enabled(1), Ethernet OAM will attempt to - operate over this interface. The default value is - implementation-dependent."; - } - container discovery-info { - description - "Information relating to the discovery process."; - uses discovery-info; - } - container event-log { - config false; - description - "List of Ethernet Link OAM event log entries on the - interface."; - list event-log-entry { - key "index"; - description - "Ethernet Link OAM event log entry."; - leaf index { - type uint64; - description - "Index of this event in the event log."; - } - uses event-details; - uses threshold-event-details; - } - } - container statistics { - config false; - description - "Statistics for an 802.3 OAM interface."; - uses statistics-common; - leaf local-error-symbol-period-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error symbol period log entries."; - } - leaf local-error-frame-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame log entries."; - } - leaf local-error-frame-period-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame period log entries."; - } - leaf local-error-frame-second-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame second log entries."; - } - leaf remote-error-symbol-period-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error symbol period log entries."; - } - leaf remote-error-frame-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame log entries."; - } - leaf remote-error-frame-period-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame period log entries."; - } - leaf remote-error-frame-second-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame second log entries."; - } - } - } - } -} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-pon.yang b/standard/ieee/draft/802.3/ieee802-ethernet-pon.yang deleted file mode 100644 index a8b4646be..000000000 --- a/standard/ieee/draft/802.3/ieee802-ethernet-pon.yang +++ /dev/null @@ -1,2203 +0,0 @@ -module ieee802-ethernet-pon { - yang-version 1.1; - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pon"; - prefix ieee802-eth-pon; - - import ieee802-types { - prefix ieee; - reference - "IEEE 802 types"; - } - import ietf-yang-types { - prefix yang; - reference - "IETF RFC 6991"; - } - import ietf-interfaces { - prefix if; - reference - "IETF RFC 8343"; - } - import ieee802-ethernet-interface { - prefix ieee802-eth-if; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - description - "This module contains a collection of YANG definitions for - managing the Multi Point Control Protocol for - Ethernet PON (EPON),as defined in IEEE Std 802.3, Clause 64 - and Clause 77. - - This YANG module augments the 'ethernet' module."; - - revision 2025-04-17 { - description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; - reference - "IEEE Std 802.3-2022, unless dated explicitly"; - } - - feature trx-power-level-reporting-supported { - description - "This object indicates the support for optical transceiver - power level monitoring and reporting capability. - When 'true', the given interface supports the optical power - level monitoring and reporting function. Otherwise, - the value is 'false'."; - } - - feature fec-supported { - description - "This object indicates the support of operation of the - optional FEC sublayer of the 1G-EPON PHY specified in - IEEE Std 802.3, 65.2. The value of 'unknown' is reported in - the initialization, for non FEC support state or type not - yet known. The value of 'not supported' is reported when the - sublayer is not supported. The value of 'supported' is - reported when the sublayer is supported. This object is - applicable for an OLT, with the same value for all logical - links, and for an ONU."; - reference - "IEEE Std 802.3, 30.5.1.1.15"; - } - - identity state-change-action-type { - description - "Type of interface state change requested."; - } - - identity power-down { - base state-change-action-type; - description - "Power down the EPON logical interface. - Power-down actions are applicable for the OLT and ONU. A - power down of a specific logical interface affects only - the logical interface (and not the physical interface). - the logical interface will be unavailable while the - power-down occurs and data may be lost. Other logical - interface are unaffected by power-down. - - This action is relevant when the admin state is active."; - } - - identity power-up { - base state-change-action-type; - description - "Exit EPON logical interface power-down state."; - } - - identity reset-action-type { - description - "Type of reset action requested."; - } - - identity reset-interface { - base reset-action-type; - description - "Reset the EPON logical interface. Resetting an interface - can lead an interruption of service for the users connected - to the respective EPON interface. - - This object is applicable for an OLT and an ONU. At the - OLT, it has a distinct value for each logical interface. - A reset for a specific logical interface resets only - this logical interface and not the physical interface. - - Thus, a logical link that is malfunctioning can be - reset without affecting the operation of other logical - interfaces. - - The reset can cause Discontinuities in the values of the - counters of the interface, similar to re-initialization - of the management system."; - } - - identity register-type { - description - "Type of registration requested."; - } - - identity register { - base register-type; - description - "Register indicates a request to register an LLID. - This action applies to an OLT or ONU logical interface."; - } - - identity reregister { - base register-type; - description - "Re-register indicates an request to re-register an LLID. - This action applies to an OLT or ONU logical interface."; - } - - identity deregister { - base register-type; - description - "De-register indicates an request to de-register an LLID. - This action applies to an OLT or ONU logical interface. - Deregister may result in an interruption of service to - users connected to the respective EPON interface."; - } - - typedef mpcp-supported { - type boolean; - description - "This object indicates that the given interface supports - MPCP, i.e., it is an Ethernet PON (EPON) interface."; - } - - typedef mpcp-llid { - type uint64 { - range "0 .. 32767"; - } - description - "Logical Link Identifiers (LLIDs) are used to identify a - single MAC from a number of MACs which may be present in the - EPON OLT or ONU. LLIDs between the value of 0x07FFE - and 0x7FFF are assigned for ONU discovery and registration. - Other LLIDs are dynamically assigned by the OLT during the - registration process. For a complete description of how the - LLID is used in an EPON device, see IEEE Std 802.3, - Clause 65 for 1G-EPON and Clause 76 for 10G-EPON."; - reference - "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and - 76.2.6.1.3 for 10G-EPON"; - } - - typedef mpcp-maximum-queue-count-per-report { - type uint8 { - range "0..7"; - } - default "0"; - description - "Defines the maximum number of queues (0-7) in the REPORT - MPCPDU as defined in IEEE Std 802.3, Clause 64 and - Clause 77."; - } - - typedef mpcp-llid-count { - type uint64 { - range "0 .. 32767"; - } - description - "Indicates the number of registered LLIDs. The initialization - value is 0. This is applicable for an OLT with the same - value for all logical interfaces and for an ONU."; - reference - "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and - 76.2.6.1.3 for 10G-EPON"; - } - - typedef mpcp-admin-state { - type enumeration { - enum enabled { - description - "When selecting the value of 'enabled', the MultiPoint - Control Protocol sublayer on the OLT / ONU is enabled."; - } - enum disabled { - description - "When selecting the value of 'disabled', the MultiPoint - Control Protocol sublayer on the OLT / ONU is - disabled."; - } - } - description - "Enumeration of valid administrative states for a - MultiPoint MAC Control sublayer on the OLT or ONU."; - reference - "IEEE Std 802.3, 30.3.5.2.1"; - } - - typedef mpcp-mode { - type enumeration { - enum olt { - description - "MPCP mode: olt"; - } - enum onu { - description - "MPCP mode: onu"; - } - } - description - "Enumeration of valid MPCP modes for EPON interfaces."; - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - - typedef mpcp-logical-link-state { - type enumeration { - enum unregistered { - description - "MPCP registration state: logical link is - NOT registered."; - } - enum registering { - description - "MPCP registration state: logical link is currently in - the process of registering."; - } - enum registered { - description - "MPCP registration state: logical link is currently - registered."; - } - } - description - "Enumeration of valid MPCP registration states for EPON - interfaces."; - reference - "IEEE Std 802.3, 30.3.5.1.6"; - } - - typedef mpcp-logical-link-admin-state { - type enumeration { - enum reset { - description - "When read, the value of 'reset' indicates that the given - logical link on the OLT / ONU has been reset."; - } - enum operate { - description - "When read, the value of 'operate' indicates that the - given logical link on the OLT / ONU has moved into - operating mode."; - } - enum unknown { - description - "When read, the value of 'unknown' indicates that the - status of the given logical link on the OLT / ONU is - currently not known."; - } - enum registered { - description - "When read, the value of 'registered' indicates that the - given logical link on the OLT / ONU has been - registered."; - } - enum deregistered { - description - "When read, the value of 'deregistered' indicates that the - given logical link on the OLT / ONU has been - deregistered."; - } - enum reregistered { - description - "When read, the value of 'reregistered' indicates that the - given logical link on the OLT / ONU has been - reregistered."; - } - } - description - "Enumeration of valid administrative states for a logical - link on the OLT or ONU."; - } - - typedef ompe-mode { - type enumeration { - enum unknown { - description - "omp-emulation mode: unknown = system is initializing"; - } - enum olt { - description - "omp-emulation mode: olt"; - } - enum onu { - description - "omp-emulation mode: onu"; - } - } - description - "Enumeration of valid OMP-Emulation modes for EPON - interfaces."; - reference - "IEEE Std 802.3, 30.3.7.1.2"; - } - - typedef fec-capability { - type enumeration { - enum unknown { - description - "FEC capability: unknown = system is initializing."; - } - enum supported { - description - "FEC capability: supported."; - } - enum NotSupported { - description - "FEC capability: not supported."; - } - } - description - "Enumeration of valid FEC capability values for EPON - interfaces with enabled MPCP."; - reference - "IEEE Std 802.3, 30.5.1.1.15"; - } - - typedef fec-mode { - type enumeration { - enum unknown { - description - "FEC mode: unknown = system is initializing."; - } - enum disabled { - description - "FEC mode: disabled = FEC is disabled for the given - logical link (both Tx and Rx directions)."; - } - enum enabled-Tx-Rx { - description - "FEC mode: enabled-Tx-Rx = FEC is enabled for the given - logical link in both Tx and Rx directions."; - } - enum enabled-Tx-only { - description - "FEC mode: enabled-Tx-only = FEC is enabled for - the given logical link but only in Tx direction."; - } - enum enabled-Rx-only { - description - "FEC mode: enabled-Rx-only = FEC is enabled for - the given logical link but only in Rx direction."; - } - } - description - "Enumeration of valid FEC modes for EPON interfaces."; - reference - "IEEE Std 802.3, 30.5.1.1.16"; - } - - typedef power-level { - type int32; - units "0.1 dBm"; - description - "Power level reflects the value of power, as measured at the - optical transceiver, expressed in units of 0.1 dBm."; - } - - typedef trx-admin-state { - type enumeration { - enum enabled { - description - "When read as 'enabled', the transmitter is enabled and - operating under the control of the logical control - protocol. When set to 'enabled', the transmitter is - enabled to operate under the control of the logical - control protocol."; - } - enum disabled { - description - "When read as 'disabled', the transmitter is currently - disabled (not transmitting). When set to 'disabled', - the transmitter is expected to be disabled - (to stop transmitting)."; - } - } - description - "Enumeration of valid administrative states for an optical - transceiver."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - description - "Augments the definition of Ethernet interface ( - /if:interfaces/if:interface/ieee802-eth-if:ethernet) - module with nodes specific to Ethernet PON (EPON)."; - leaf fec-mode { - if-feature "fec-supported"; - type fec-mode; - description - "This object reflects the current administrative state of - the FEC function for the given logical link on an ONU or - OLT. - - When reading the value of 'disabled', the FEC function on - the given logical link is disabled. - - When reading the value of 'enabled-Tx-Rx', the FEC function - on the given logical link is enabled in both Tx and Rx - directions. - - When reading the value of 'enabled-Tx-only', the FEC - function on the given logical link is enabled in Tx - direction only. - - When reading the value of 'enabled-Rx-only', the FEC - function on the given logical link is enabled in Rx - direction only. - - When reading the value of 'unknown', the state of the FEC - function on the given logical link is unknown or the FEC - function is currently initializing. - - This object is applicable for an OLT and an ONU. This - object has the same value for each logical link."; - reference - "IEEE Std 802.3, 30.5.1.1.16"; - } - leaf mpcp-admin-state { - type mpcp-admin-state; - description - "This object reflects the current administrative state of - the MultiPoint MAC Control sublayer, as defined in - IEEE Std 802.3, Clause 64 and Clause 77, for the - OLT / ONU. - - When reading the value of 'enabled', the MultiPoint - Control Protocol on the OLT / ONU is enabled. - - When reading the value of 'disabled', the MultiPoint - Control Protocol on the OLT / ONU is disabled. - - This object is applicable for an OLT and an ONU. It has - the same value for all logical links."; - reference - "IEEE Std 802.3, 30.3.5.1.2"; - } - leaf mpcp-logical-link-admin-state { - type mpcp-logical-link-admin-state; - config false; - description - "This object reflects the current administrative state of a - logical link on an ONU or OLT. - - When reading the value of 'reset', the given logical link - is undergoing a reset. - - When reading the value of 'unknown', the current status of - the given logical link is unknown and the link might be - undergoing initialization. - - When reading the value of 'operate', the given logical - link is operating normally. - - When reading the value of 'registered', the given logical - link was requested to perform registration. - - When reading the value of 'deregistered', the given - logical link was requested to perform deregistration. - - When reading the value of 'reregistered', the given - logical link was requested to perform reregistration. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectRegisterAction"; - } - leaf trx-transmit-admin-state { - when "../../ieee802-eth-if:ethernet/ - ieee802-eth-pon:mpcp-admin-state = 'enabled'"; - if-feature "trx-power-level-reporting-supported"; - type trx-admin-state; - description - "This object reflects the current status of the transmitter - in the optical transceiver. - - When read as 'enabled', the optical transmitter is enabled - and operating under the control of the logical control - protocol. - - When read as 'disabled', the optical transmitter is - disabled. - - This object is applicable for an OLT and an ONU. - At the OLT, this object has a distinct value for each - logical link. - - The value of this object is only reliable when - /if:interfaces-state/if:interface/ieee802-eth-if:ethernet/ - 'mpcp-admin-state' is equal to 'enabled'."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; - } - container capabilities { - config false; - description - "This container includes all EPON interface-specific - capabilities."; - leaf mpcp-supported { - type mpcp-supported; - default "true"; - description - "This object indicates that the given interface supports - MPCP, i.e., it is an Ethernet PON (EPON) interface."; - } - } - container statistics-mpcp { - config false; - description - "This container defines a set of MPCP-related statistics - counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - Discontinuities in the values of counters in this - container can occur at re-initialization of the management - system, and at other times as indicated by the value of - the 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - leaf out-mpcp-mac-ctrl-frames { - type yang:counter64; - units "frames"; - config false; - description - "A count of MPCP frames passed to the MAC sublayer for - transmission. - - This counter is incremented when a MA_CONTROL.request - service primitive is generated within the MAC control - sublayer with an opcode indicating an MPCP frame. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.7"; - } - leaf in-mpcp-mac-ctrl-frames { - type yang:counter64; - units "frames"; - config false; - description - "A count of MPCP frames passed by the MAC sublayer to the - MAC Control sublayer. - - This counter is incremented when a frame is received at - the interface which is an MPCP frame or has a - Length/Type Ethernet header field value equal to the - Type assigned for 802.3_MAC_Control as specified in - IEEE Std 802.3, 31.4.1.3. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.8"; - } - leaf mpcp-discovery-window-count { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "discovery windows"; - config false; - description - "A count of discovery windows generated by the OLT. - - The counter is incremented by one for each generated - discovery window. - - This object is applicable for an OLT and has the same - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.22"; - } - leaf mpcp-discovery-timeout-count { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "discovery timeouts"; - config false; - description - "A count of the number of times a discovery timeout - occurs. - - This counter is incremented by one for each discovery - processing state-machine reset resulting from timeout - waiting for message arrival. - - This object is applicable for an OLT and has the same - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.23"; - } - leaf out-mpcp-register-req { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER_REQ MPCP frame - transmission occurs. - - This counter is incremented by one for each - REGISTER_REQ MPCP frame transmitted as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an ONU and has the same - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.12"; - } - leaf in-mpcp-register-req { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER_REQ MPCP frame - reception occurs. - - This counter is incremented by one for each - REGISTER_REQ MPCP frame received as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and has the same - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.17"; - } - leaf out-mpcp-register-ack { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER_ACK MPCP frame - transmission occurs. - - This counter is incremented by one for each - REGISTER_ACK MPCP frame transmitted as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.10"; - } - leaf in-mpcp-register-ack { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER_ACK MPCP frame - reception occurs. - - This counter is incremented by one for each - REGISTER_ACK MPCP frame received as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.15"; - } - leaf out-mpcp-report { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REPORT MPCP frame - transmission occurs. - - This counter is incremented by one for each REPORT MPCP - frame transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.13"; - } - leaf in-mpcp-report { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REPORT MPCP frame - reception occurs. - - This counter is incremented by one for each REPORT MPCP - frame received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.18"; - } - leaf out-mpcp-gate { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a GATE MPCP frame - transmission occurs. - - This counter is incremented by one for each GATE MPCP - frame transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.9"; - } - leaf in-mpcp-gate { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a GATE MPCP frame - reception occurs. - - This counter is incremented by one for each GATE MPCP - frame received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.14"; - } - leaf out-mpcp-register { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER MPCP frame - transmission occurs. - - This counter is incremented by one for each - REGISTER MPCP frame transmitted as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.11"; - } - leaf in-mpcp-register { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of the number of times a REGISTER MPCP frame - reception occurs. - - This counter is incremented by one for each - REGISTER MPCP frame received as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.16"; - } - } - container statistics-ompe { - description - "This container defines a set of OMP-Emulation-related - statistics counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 65 and Clause 76. - - Discontinuities in the values of counters in this - container can occur at re-initialization of the management - system, and at other times as indicated by the value of - the 'discontinuity-time' leaf defined in the - ietf-interfaces YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; - leaf in-ompe-frames-errored-sld { - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that do not contain a valid - SLD field as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - This object is applicable for an OLT and an ONU. - It has a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.3"; - } - leaf in-ompe-frames-errored-crc8 { - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1 as appropriate, but do not pass the CRC-8 - check as defined in IEEE Std 802.3, 65.1.3.3.3 or - 76.2.6.1.3.3 as appropriate. - - This object is applicable for an OLT and an ONU. - It has a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.4"; - } - leaf ompe-onu-frames-with-good-llid-good-crc8 { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that 1) contain a valid SLD - field in an ONU, 2) meet the rule for frame acceptance, - and 3) pass the CRC-8 check. - - The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - The rules for LLID acceptance are defined in - IEEE Std 802.3, 65.1.3.3.2 or 76.2.6.1.3.2, - as appropriate. - - The CRC-8 check is defined in IEEE Std 802.3, - 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.6"; - } - leaf ompe-olt-frames-with-good-llid-good-crc8 { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that 1) contain a valid SLD - field in an OLT, and 2) pass the CRC-8 check. - - The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - The frame acceptance are defined in IEEE Std 802.3, - 65.1.3.3.2 or 76.2.6.1.3.2, as appropriate. - - The CRC-8 check is defined in IEEE Std 802.3, - 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.6"; - } - leaf in-ompe-frames-with-bad-llid { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, and pass the CRC-8 check - as defined in IEEE Std 802.3, 65.1.3.3.3 or - 76.2.6.1.3.3, as appropriate, but are discarded due to - the LLID check. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.8"; - } - leaf in-ompe-frames-with-good-llid { - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1 as appropriate, but do not pass the CRC-8 - check as defined in IEEE Std 802.3, 65.1.3.3.3 or - 76.2.6.1.3.3 as appropriate. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.4"; - } - leaf in-ompe-frames { - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, and pass the CRC-8 - check as defined in IEEE Std 802.3, 65.1.3.3.3 or - 76.2.6.1.3.3, as appropriate. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.6 (ONU) and 30.3.7.1.7 (OLT)"; - } - leaf in-ompe-frames-not-match-onu-llid-broadcast { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as - defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, - as appropriate, and contain the broadcast bit in the - LLID and not the ONU's LLID (frame accepted) as defined - in IEEE Std 802.3,Clause 65 and Clause 76, - as appropriate. - - This object is applicable for an ONU only."; - reference - "IEEE Std 802.3.1, - dot3OmpEmulationBroadcastBitNotOnuLlid"; - } - leaf in-ompe-frames-match-onu-llid-not-broadcast { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as - defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, - as appropriate, and contain the ONU's LLID - (frame accepted) as defined in IEEE Std 802.3, Clause 65 - and Clause 76, as appropriate. - - This object is applicable for an ONU only."; - reference - "IEEE Std 802.3.1, dot3OmpEmulationOnuLLIDNotBroadcast"; - } - leaf in-ompe-frames-match-onu-llid-broadcast { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as - defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, - as appropriate, and contain the broadcast bit in the - LLID and the ONU's LLID (frame accepted) as defined in - IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. - - This object is applicable for an ONU only."; - reference - "IEEE Std 802.3.1, - dot3OmpEmulationBroadcastBitPlusOnuLlid"; - } - leaf in-ompe-frames-not-match-onu-llid-not-broadcast { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units "frames"; - config false; - description - "A count of frames received that contain a valid SLD - field, as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, - as defined in IEEE Std 802.3, 65.1.3.3.3 or - 76.2.6.1.3.3, as appropriate, do not contain the - broadcast bit in the LLID and do not contain the ONU's - LLID (frame is NOT accepted) as defined in - IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. - - This object is applicable for an ONU only."; - reference - "IEEE Std 802.3.1, - dot3OmpEmulationNotBroadcastBitNotOnuLlid"; - } - } - container thresholds-trx { - if-feature "trx-power-level-reporting-supported"; - description - "This container defines a set of optical transceiver - thresholds of an EPON interface as defined in - IEEE Std 802.3, Clause 60 and Clause 75."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; - leaf in-trx-power-low-threshold { - if-feature "trx-power-level-reporting-supported"; - type power-level; - description - "This object reflects the current setting of low alarm - threshold for the input power into the optical receiver. - If the value reported in 'in-trx-power' object drops - below the value set in 'in-trx-power-low-threshold', a - 'in-trx-power-low-threshold-crossing' event is - generated. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, - dot3ExtPkgOptIfLowerInputPowerThreshold"; - } - leaf in-trx-power-high-threshold { - if-feature "trx-power-level-reporting-supported"; - type power-level; - description - "This object reflects the current setting of high alarm - threshold for the input power into the optical receiver. - If the value reported in 'in-trx-power' object exceeds - the value set in 'in-trx-power-high-threshold', a - 'in-trx-power-high-threshold-crossing' event is - generated. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, - dot3ExtPkgOptIfUpperInputPowerThreshold"; - } - leaf out-trx-power-low-threshold { - if-feature "trx-power-level-reporting-supported"; - type power-level; - description - "This object reflects the current setting of low alarm - threshold for the output power out of the optical - transmitter. If the value reported in 'out-trx-power' - object drops below the value set in - 'out-trx-power-low-threshold', a - 'out-trx-power-low-threshold-crossing' event is - generated. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, - dot3ExtPkgOptIfLowerOutputPowerThreshold"; - } - leaf out-trx-power-high-threshold { - if-feature "trx-power-level-reporting-supported"; - type power-level; - description - "This object reflects the current setting of high alarm - threshold for the output power out of the optical - transmitter. If the value reported in 'out-trx-power' - object exceeds the value set in - 'out-trx-power-high-threshold', a - 'out-trx-power-high-threshold-crossing' event is - generated. - - This object is applicable for an OLT and an ONU. - It has a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, - dot3ExtPkgOptIfUpperOutputPowerThreshold"; - } - } - container statistics-trx { - if-feature "trx-power-level-reporting-supported"; - status deprecated; - description - "This container defines a set of optical transceiver - statistics counters of an EPON interface as defined in - IEEE Std 802.3, Clause 60 and Clause 75."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; - leaf in-trx-power-signal-detect { - type boolean; - config false; - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not - (when read as 'false') at the input to the - optical transceiver. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSignalDetect"; - } - leaf in-trx-power { - type power-level; - config false; - description - "This object reflects the value of the input power, as - measured at the optical transceiver, expressed in units - of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner. - - At the OLT, the measurement is performed in a burst-mode - manner, for each incoming data burst. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfInputPower"; - } - leaf in-trx-power-low-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the lowest value of the input power - during the period of the last 15 minutes, as measured at - the optical transceiver, and expressed in units of - 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowInputPower"; - } - leaf in-trx-power-high-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the highest value of the input - power during the period of the last 15 minutes, as - measured at the optical transceiver, and expressed in - units of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighInputPower"; - } - leaf out-trx-power-signal-detect { - type boolean; - config false; - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not - (when read as 'false') at the output from the - optical transceiver. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitAlarm"; - } - leaf out-trx-power { - type power-level; - config false; - description - "This object reflects the value of the output power, as - measured at the optical transceiver, expressed in units - of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner for each outgoing data burst. - - At the OLT, the measurement is performed in a continuous - manner. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfOutputPower"; - } - leaf out-trx-power-low-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the lowest value of the output - power during the period of the last 15 minutes, as - measured at the optical transceiver, and expressed in - units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowOutputPower"; - } - leaf out-trx-power-high-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the highest value of the output - power during the period of the last 15 minutes, as - measured at the optical transceiver, and expressed in - units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighOutputPower"; - } - leaf trx-data-reliable { - if-feature "trx-power-level-reporting-supported"; - type boolean; - config false; - description - "This object indicates whether data contained in - individual counters in 'statistics-trx' container are - reliable (when read as 'true') or not - (when read as 'false'). - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSuspectedFlag"; - } - } - container monitoring-trx { - if-feature "trx-power-level-reporting-supported"; - description - "This container defines a set of optical transceiver - statistics counters of an EPON interface as defined in - IEEE Std 802.3, Clause 60 and Clause 75."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; - leaf in-trx-power-signal-detect { - type boolean; - config false; - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not - (when read as 'false')at the input to the - optical transceiver. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSignalDetect"; - } - leaf in-trx-power { - type power-level; - config false; - description - "This object reflects the value of the input power, as - measured at the optical transceiver, expressed in units - of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner. - - At the OLT, the measurement is performed in a burst-mode - manner, for each incoming data burst. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfInputPower"; - } - leaf in-trx-power-low-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the lowest value of the input power - during the period of the last 15 minutes, as measured at - the optical transceiver, and expressed in units of - 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. - It has a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowInputPower"; - } - leaf in-trx-power-high-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the highest value of the input - power during the period of the last 15 minutes, - as measured at the optical transceiver, - and expressed in units of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighInputPower"; - } - leaf out-trx-power-signal-detect { - type boolean; - config false; - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not - (when read as 'false') at the output from the - optical transceiver. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitAlarm"; - } - leaf out-trx-power { - type power-level; - config false; - description - "This object reflects the value of the output power, as - measured at the optical transceiver, expressed in units - of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner for each outgoing data burst. - - At the OLT, the measurement is performed in a continuous - manner. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfOutputPower"; - } - leaf out-trx-power-low-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the lowest value of the output - power during the period of the last 15 minutes, as - measured at the optical transceiver, and expressed in - units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowOutputPower"; - } - leaf out-trx-power-high-15-minutes-bin { - type power-level; - config false; - description - "This object reflects the highest value of the output - power during the period of the last 15 minutes, as - measured at the optical transceiver, and expressed in - units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long - observation bin. - - At the OLT, the measurement is the average power for - each incoming data burst, and stored in a rolling - 15-minutes' long observation bin. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighOutputPower"; - } - leaf trx-data-reliable { - if-feature "trx-power-level-reporting-supported"; - type boolean; - config false; - description - "This object indicates whether data contained in - individual counters in 'statistics-trx' container are - reliable (when read as 'true') or not - (when read as 'false'). - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSuspectedFlag"; - } - } - container statistics-pon-fec { - when "(../fec-capability = 'supported') and - (../fec-mode = 'enabled-Tx-Rx')"; - if-feature "fec-supported"; - config false; - description - "This container defines a set of FEC-related statistics - counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 65 and Clause 76. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; - leaf fec-code-group-violations { - type yang:counter64; - units "code-group"; - config false; - description - "For 1G-EPON this is a count of the number of events that - cause the PHY to indicate ’Data reception error’ or - ’Carrier Extend Error’ on the GMII (see IEEE Std 802.3, - Table 35-1). The contents of this counter is undefined - when FEC is operating. For 10G-EPON this object is not - applicable. - - This object is applicable for an OLT and an ONU. At the - OLT, it has a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.5.1.1.14"; - } - leaf fec-buffer-head-coding-violations { - type yang:counter64; - units "code-group"; - config false; - description - "For 1G-EPON PHY, this object represents the count of the - number of invalid code-groups received directly from the - link when FEC is enabled. When FEC is disabled this - counter stops counting. - - For 10G-EPON PHYs, this object is set to zero. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3.1, dot3EponFecBufferHeadCodingViolation"; - } - leaf fec-code-word-corrected-errors { - type yang:counter64; - units "code-group"; - config false; - description - "For 1G-EPON or 10G-EPON PHYs, this object represents a - count of corrected FEC blocks. - - This counter increments by one for each received - FEC block that contained detected errors and was - corrected by the FEC function in the PHY. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.5.1.1.17"; - } - leaf fec-code-word-uncorrected-errors { - type yang:counter64; - units "code-group"; - config false; - description - "For 1G-EPON or 10G-EPON PHYs, this object represents a - count of uncorrectable FEC blocks. - - This counter increments by one for each received FEC - block that contained detected errors and was not - corrected by the FEC function in the PHY. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.5.1.1.18"; - } - } - container mpcp-logical-link-admin-actions { - description - "Container of actions."; - action state-change-action-type { - description - "Request a state change on the interface."; - input { - leaf state-change-action-type { - type identityref { - base state-change-action-type; - } - description - "Type of interface state change requested."; - } - } - } - action reset-action-type { - description - "Request a reset-action of the interface."; - input { - leaf reset-action-type { - type identityref { - base reset-action-type; - } - description - "Type of reset action requested of the interface."; - } - } - } - action register-type { - description - "Request a registration action."; - input { - leaf register-type { - type identityref { - base register-type; - } - description - "Type of registration action requested of the - interface."; - } - } - } - } - list mpcp-queues { - key "mpcp-queue-index"; - description - "An instance of this object for each value of - 'mpcp-queue-index' is created when a new logical link is - registered and deleted when the logical link is - deregistered. - - All instances of this object in the ONU associated with - the given logical link are then mapped to a REPORT MPCPDU, - when generated. - - +-----------------------------------+ - | Destination Address | - +-----------------------------------+ - | Source Address | - +-----------------------------------+ - | Length/Type | - +-----------------------------------+ - | OpCode | - +-----------------------------------+ - | TimeStamp | - +-----------------------------------+ - | Number of Queue Sets | - +-----------------------------------+ -| - | Report bitmap | | - +-----------------------------------+ | - | Queue 0 report | | - +-----------------------------------+ | repeated - | Queue 1 report | | for every - +-----------------------------------+ | Queue Set - | Queue 2 report | | - +-----------------------------------+ | - | Queue 3 report | | - +-----------------------------------+ | - | Queue 4 report | | - +-----------------------------------+ | - | Queue 5 report | | - +-----------------------------------+ | - | Queue 6 report | | - +-----------------------------------+ | - | Queue 7 report | | - +-----------------------------------+ -| - | Pad/reserved | - +-----------------------------------+ - | FCS | - +-----------------------------------+ - - The 'Queue N report' field reports the current occupancy - of each upstream transmission queue associated with the - given logical link. - - The 'Number of Queue Sets' field defines the number of - reported 'Queue N report' sets. - - For each Queue Set, the 'Report bitmap' field defines - which upstream transmission queues are present in the - REPORT MPCPDU. - Although the REPORT MPCPDU can report current occupation - for up to 8 upstream transmission queues in a single - REPORT MPCPDU, the actual number is flexible. - The 'mpcp-queue-group' grouping has a variable size that - is limited by value of - 'mpcp-maximum-queue-count-per-report' object, allowing - ONUs report the occupancy of fewer upstream transmission - queues, as needed. - - This object is applicable for an OLT and an ONU. - At the OLT, this object has a distinct value for each - logical link and every queue. At the ONU, it has a - distinct value for every queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgQueueEntry"; - leaf mpcp-queue-index { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a - queue in the ONU. It can have a value between - 0 and 7, limited by the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - reference - "See 'mpcp-maximum-queue-count-per-report' object"; - } - } - description - "An object represents the index of an upstream - transmission queue storing subscriber packets. - The size (occupancy) of the upstream transmission queue - identified by this object is then reported within - REPORT MPCPDU, defined in IEEE Std 802.3, Clause 64 - and Clause 77. - - This object indicates the identity (index) of a queue in - the ONU. It can have a value between 0 and 7, limited by - the value stored in the - 'mpcp-maximum-queue-count-per-report' object. - - This object is applicable for an OLT and an ONU. - It has a distinct value for each logical link and each - queue. - At the ONU, it has a distinct value for each queue."; - reference - "IEEE Std 802.3.1, dot3QueueIndex"; - } - leaf mpcp-queue-threshold-count { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a - queue in the ONU. It can have a value between - 0 and 7, limited by the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - reference - "See 'mpcp-queue-threshold-count-max' object"; - } - } - description - "This object reflects the number of reporting thresholds - for the specific upstream transmission queue, reflected - in the REPORT MPCPDU, as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - Each 'Queue set' provides information for the specific - upstream transmission queue occupancy of frames below - the matching reporting threshold. - - A read of this object reflects the number of reporting - thresholds for the specific upstream transmission queue. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportNumThreshold"; - } - leaf mpcp-queue-threshold-count-max { - type uint8 { - range "0 .. 7" { - description - "This object can have a value between 0 and 7."; - } - } - config false; - description - "This object reflects the maximum number of reporting - thresholds for the specific upstream transmission queue, - reflected in the REPORT MPCPDU, as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - A read of this object reflects the maximum number of - reporting thresholds for the specific upstream - transmission queue. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue."; - reference - "IEEE Std 802.3.1, - dot3ExtPkgObjectReportMaximumNumThreshold"; - } - list mpcp-queue-thresholds { - when '../mpcp-queue-threshold-count > 0'; - key "mpcp-queue-set-index"; - max-elements 7; - description - "An instance of this object for each value of - 'mpcp-queue-index' is created when a new logical link is - registered and deleted when the logical link is - deregistered. - - All instances of this object in the ONU associated with - the given logical link are then mapped to a - REPORT MPCPDU, when generated. - - +-----------------------------------+ - | Destination Address | - +-----------------------------------+ - | Source Address | - +-----------------------------------+ - | Length/Type | - +-----------------------------------+ - | OpCode | - +-----------------------------------+ - | TimeStamp | - +-----------------------------------+ - | Number of Queue Sets | - +-----------------------------------+ -| - | Report bitmap | | - +-----------------------------------+ | - | Queue 0 report | | - +-----------------------------------+ | repeated for - | Queue 1 report | | every - +-----------------------------------+ | Queue Set - | Queue 2 report | | - +-----------------------------------+ | - | Queue 3 report | | - +-----------------------------------+ | - | Queue 4 report | | - +-----------------------------------+ | - | Queue 5 report | | - +-----------------------------------+ | - | Queue 6 report | | - +-----------------------------------+ | - | Queue 7 report | | - +-----------------------------------+ -| - | Pad/reserved | - +-----------------------------------+ - | FCS | - +-----------------------------------+ - - The 'Queue N report' field reports the current occupancy - of each upstream transmission queue associated with the - given logical link. - - The 'Number of Queue Sets' field defines the number of - reported 'Queue N report' sets. - - For each Queue Set, the 'Report bitmap' field defines - which upstream transmission queues are present in the - REPORT MPCPDU. Although the REPORT MPCPDU can report - current occupation for up to 8 upstream transmission - queues in a single REPORT MPCPDU, the actual number is - flexible. - - The 'mpcp-queue-group' grouping has a variable size that - is limited by value of - 'mpcp-maximum-queue-count-per-report' object, allowing - ONUs to report the occupancy of fewer upstream - transmission queues, as needed. - - This object is applicable for an OLT and an ONU. It has - a distinct value for each logical link and every queue. - At the ONU, it has a distinct value for every queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgQueueSetsEntry"; - leaf mpcp-queue-set-index { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a - queue in the ONU. It can have a value between - 0 and 7, limited by the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - reference - "See 'mpcp-maximum-queue-count-per-report' object"; - } - } - description - "This object represents the index of the Queue Set for - the'mpcp-queue-set-group' grouping. The size - (occupancy) of the upstream transmission queues - belonging to the given Queue Set is then reported - within REPORT MPCPDU, definedin IEEE Std 802.3, - Clause 64 and Clause 77. - - This object can have a value between 0 and 7, limited - by the value stored in the - 'mpcp-queue-threshold-count-max' object."; - reference - "IEEE Std 802.3.1, dot3QueueSetIndex"; - } - leaf mpcp-queue-set-threshold { - type uint64; - units "TQ"; - default "0"; - description - "This object defines the value of a reporting threshold - for each Queue Set stored in REPORT MPCPDU defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - The number of Queue Sets for each upstream - transmission queue is defined in the - 'mpcp-queue-threshold-count' object. - - Within REPORT MPCPDU, each Queue Set provides - information on the current upstream transmission queue - occupancy for frames below the matching threshold. - - The value stored in this object is expressed in the - units of Time quanta (TQ), where 1 TQ = 16 ns. - - A read of this object provides the current threshold - value for the specific upstream transmission queue. - - This object is applicable for an OLT and an ONU. At - the OLT, it has a distinct value for each logical link, - each queue, and each Queue Set. - - At the ONU, it has a distinct value for each queue and - each Queue Set."; - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportThreshold"; - } - } - leaf in-mpcp-queue-frames { - type yang:counter64; - config false; - description - "A count of the number of times a frame reception event - results in a frame being queued in (for ONUs) or - received from (for OLTs) the corresponding queue. This - object is incremented by one for each frame written to - (in the case of the ONU) or received for (in case of the - OLT) the associated queue. - - The queue index matches the queue number in - REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 - and Clause 77. - - This object is applicable for an OLT and an ONU. - At the OLT,it has a distinct value for each logical link - and each queue. At the ONU, it has a distinct value for - each queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgStatRxFramesQueue"; - } - leaf out-mpcp-queue-frames { - when "../../mpcp-mode = 'onu'"; - type yang:counter64; - config false; - description - "This object reflects the number of frame transmission - events from the corresponding upstream transmission - queue. This object is incremented by one for each frame - transmitted, when it is output from the associated - queue. - - The queue index matches the queue number in - REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 - and Clause 77. - - This object is applicable for an ONU only. At the ONU, - it has a distinct value for each queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgStatTxFramesQueue"; - } - leaf mpcp-queue-frames-drop { - when "../../mpcp-mode = 'onu'"; - type yang:counter64; - config false; - description - "This object reflects the number of frame drop events - from the corresponding upstream transmission queue. - This object is incremented by one for each frame dropped - in the associated queue. - - The queue index matches the queue number in - REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 - and Clause 77. - - This object is applicable for an ONU only. At the ONU, - it has a distinct value for each queue."; - reference - "IEEE Std 802.3.1, dot3ExtPkgStatDroppedFramesQueue"; - } - } - list multicast-IDs { - key "multicast-ID"; - description - "Multicast-IDs list of multicast IDs - to be recognized by the device."; - leaf multicast-ID { - type uint32; - description - "Multicast-IDs to be recognized by the device."; - reference - "IEEE Std 802.3, 30.3.5.1.25"; - } - } - leaf fec-capability { - type fec-capability; - config false; - description - "This object is used to identify whether the given - interface is capable of supporting FEC or not."; - } - leaf mpcp-mode { - type mpcp-mode; - config false; - description - "This object is used to identify the operational state of - the MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - Reading 'olt' for an OLT (controller) mode and 'onu' for - an ONU (client) mode. - - This object is used to identify the operational mode for - the MPCP objects. - - This object is applicable for an OLT, with the same value - for all logical links, and for an ONU."; - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - leaf mpcp-sync-time { - type uint64; - units "TQ (16ns)"; - config false; - description - "This object reports the 'sync lock time' of the OLT - receiver in units of Time Quanta (TQ; 1 TQ = 16 ns; see - IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [sync lock time ns]/16, - rounded up to the nearest TQ. If this value exceeds - 4,294,967,295 TQ, the value 4,294,967,295 TQ is returned. - - This object is applicable for an OLT, with distinct values - for all logical links, and for an ONU."; - reference - "IEEE Std 802.3.1, dot3MpcpSyncTime"; - } - leaf mpcp-logical-link-id { - type mpcp-supported; - config false; - description - "This object is used to identify the operational state of - the MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - Reading 'olt' for an OLT (controller) mode and 'onu' for - an ONU (client) mode. - - This object is used to identify the operational mode for - the MPCP objects. - - This object is applicable for an OLT, with the same value - for all logical links, and for an ONU."; - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - leaf mpcp-remote-mac-address { - type ieee:mac-address; - config false; - description - "This object identifies the source_address parameter of the - last MPCPDUs passed to the MAC Control. This value is - updated on reception of a valid frame with: - - 1) a destination Field equal to the multicast address - assigned for MAC Control as specified in - IEEE Std 802.3, Annex 31A; - - 2) the lengthOrType field value equal to the Type assigned - for MAC Control as specified in IEEE Std 802.3, Annex 31A; - - 3) an MPCP Control opcode value equal to the subtype - assigned for MPCP as specified in IEEE Std 802.3, - Annex 31A. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - The value reflects the MAC address of the remote entity - and therefore the OLT holds a value for each LLID, which - is the MAC address of the ONU. - - The ONU has a single value that is the OLT MAC address."; - reference - "IEEE Std 802.3, 30.3.5.1.5"; - } - leaf mpcp-logical-link-state { - type mpcp-logical-link-state; - config false; - description - "This object identifies the registration state of the - MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - When this object has the enumeration 'unregistered', the - interface is unregistered and may be used for registering - a link partner. - - When this object has the enumeration 'registering', - the interface is in the process of registering a - link-partner. - - When this object has the enumeration 'registered', the - interface has an established link-partner. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.6"; - } - leaf mpcp-elapsed-time-out { - type uint64; - units "TQ (16ns)"; - config false; - description - "This object reports the interval from the last MPCP frame - transmission in increments of Time Quanta - (TQ; 1 TQ = 16 ns; - see IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [interval from last MPCP - frame transmission on this EPON interface, expressed - in ns]/16. If this value exceeds 4,294,967,295 TQ, the - value 4,294,967,295 TQ is returned. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.19"; - } - leaf mpcp-elapsed-time-in { - type uint64; - units "TQ (16ns)"; - config false; - description - "This object reports the interval from the last MPCP frame - reception in increments of Time Quanta (TQ; 1 TQ = 16 ns; - see IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [interval from last MPCP - frame reception on this EPON interface, expressed in - ns]/16. If this value exceeds 4,294,967,295 TQ, the value - 4,294,967,295 TQ is returned. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.20"; - } - leaf mpcp-round-trip-time { - when "../ompe-mode = 'olt'"; - type uint16; - units "TQ (16ns)"; - config false; - description - "This object reports the MPCP round trip time in increments - of Time Quanta (TQ; 1 TQ = 16 ns; see IEEE Std 802.3, - Clause 64 and Clause 77). - - The value returned is equal to [round trip time in ns]/16. - If this value exceeds 65,535 TQ, the value 65,535 TQ is - returned. - - This object is applicable for an OLT. It has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.21"; - } - leaf mpcp-maximum-grant-count { - when "../ompe-mode = 'onu'"; - type uint8; - config false; - description - "This object reports the maximum number of grants that an - ONU can store for handling. The maximum number of grants - that an ONU can store for handling has a range of - 0 to 255. - - This object is applicable for an ONU and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3, 30.3.5.1.24"; - } - leaf mpcp-logical-link-count { - type mpcp-llid-count; - units "LLID"; - config false; - description - "This object reflects the number of logical links - registered on the OLT / ONU. The LLID field, as defined in - the IEEE Std 802.3, Clause 65 and Clause 76, is a 2-byte - register (15-bit field and a broadcast bit) limiting the - number of logical links to 32,768. - - This object is initialized to the value of 0 when the - OLT / ONU is powered up. - - This object is applicable for an OLT and an ONU. It has - the same value for all logical links."; - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectNumberOfLLIDs"; - } - leaf mpcp-maximum-queue-count-per-report { - when "../ompe-mode = 'olt'"; - type mpcp-maximum-queue-count-per-report; - config false; - description - "This object reflects the maximum number of queues (0-7) - that can be accepted by the OLT in a single REPORT MPCPDU, - as defined in IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link."; - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportMaximumNumQueues"; - } - leaf ompe-mode { - type ompe-mode; - config false; - description - "This object indicates the mode of operation of the - Reconciliation Sublayer for Point-to-Point Emulation (see - IEEE Std 802.3, 65.1 or 76.2 as appropriate). - - The value of 'unknown' is assigned in initialization; true - state or type is not yet known. - - The value of 'olt' is assigned when the sublayer is - operating in OLT mode. - - The value of 'onu' is assigned when the sublayer is - operating in ONU mode. - - This object is applicable for an OLT and an ONU. It has - the same value for each logical link."; - reference - "IEEE Std 802.3, 30.3.7.1.2"; - } - } -} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-pse.yang b/standard/ieee/draft/802.3/ieee802-ethernet-pse.yang deleted file mode 100644 index 74d84a3e0..000000000 --- a/standard/ieee/draft/802.3/ieee802-ethernet-pse.yang +++ /dev/null @@ -1,657 +0,0 @@ -module ieee802-ethernet-pse { - yang-version 1.1; - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pse"; - prefix ieee802-pse; - - import ietf-interfaces { - prefix if; - reference - "IETF RFC 8343"; - } - import ietf-yang-types { - prefix yang; - reference - "IETF RFC 6991"; - } - import ieee802-ethernet-interface { - prefix ieee802-eth-if; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - description - "This module is deprecated and superceeded by - ieee802-ethernet-pse-2. - This module contains YANG definitions for configuring and - managing ports with Power Over Ethernet feature defined by - IEEE 802.3. It provides functionality roughly equivalent to - that of the POWER-ETHERNET-MIB defined in IETF RFC 3621."; - - revision 2025-04-17 { - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.3, superceeded by - ieee802-ethernet-pse-2"; - reference - "IEEE Std IEEE Std 802.3.2-202x, unless dated explicitly"; - } - - identity pse-type { - description - "Base type for PSE."; - } - - identity all { - base powering-pairs; - description - "All pairs are in use."; - } - - identity four-pair { - base pse-type; - description - "PSE support IEEE Std 802.3, Clause 145."; - } - - identity two-pair { - base pse-type; - description - "PSE supports IEEE Std 802.3, Clause 33."; - } - - identity single-pair { - base pse-type; - description - "PSE support IEEE Std 802.3, Clause 104."; - } - - identity powering-pairs { - description - "Base type for powering pairs."; - } - - identity signal { - base powering-pairs; - description - "The signal pairs are in use."; - } - - identity spare { - base powering-pairs; - description - "The spare pairs are in use."; - } - - typedef multi-pair-detection-state { - type enumeration { - enum disabled { - value 1; - description - "PSE disabled."; - } - enum searching { - value 2; - description - "PSE is searching."; - } - enum deliveringPower { - value 3; - description - "PSE is delivering power."; - } - enum fault { - value 4; - description - "PSE fault detected."; - } - enum test { - value 5; - description - "PSE test mode."; - } - enum otherFault { - value 6; - description - "PSE implementation specific fault detected."; - } - } - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Detection state of a multi-pair PSE."; - reference - "IEEE Std 802.3, 30.9.1.1.5"; - } - - typedef single-pair-detection-state { - type enumeration { - enum unknown { - value 1; - description - "True detection state unknown."; - } - enum disabled { - value 2; - description - "PoDL PSE is disabled."; - } - enum searching { - value 3; - description - "PoDL PSE is searching."; - } - enum deliveringPower { - value 4; - description - "PoDL PSE is delivering power."; - } - enum sleep { - value 5; - description - "PoDL PSE is in sleep state."; - } - enum idle { - value 6; - description - "PoDL PSE is idle."; - } - enum error { - value 7; - description - "PoDL PSE error."; - } - } - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Detection state of a PoDL PSE."; - reference - "IEEE Std 802.3, 30.15.1.1.3"; - } - - typedef power-class { - type enumeration { - enum class0 { - value 1; - description - "Class 0"; - } - enum class1 { - value 2; - description - "Class 1"; - } - enum class2 { - value 3; - description - "Class 2"; - } - enum class3 { - value 4; - description - "Class 3"; - } - enum class4 { - value 5; - description - "Class 4"; - } - enum class5 { - value 6; - description - "Class 5 (for PoDL-only)"; - } - enum class6 { - value 7; - description - "Class 6 (for PoDL-only)"; - } - enum class7 { - value 8; - description - "Class 7 (for PoDL-only)"; - } - enum class8 { - value 9; - description - "Class 8 (for PoDL-only)"; - } - enum class9 { - value 10; - description - "Class 9 (for PoDL-only)"; - } - enum unknown { - value 11; - description - "Initializing, true Power Class not yet known - (only for PoDL PSE)."; - } - } - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - The power class."; - reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassification and - IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass."; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Augments ethernet interface configuration model with - nodes specific to DTE Power via MDI devices and ports"; - container pse { - description - "DTE Power via MDI port configuration"; - reference - "IEEE Std 802.3, 30.9.1 PoE PSE & IEEE Std 802.3, 30.15.1 - PoDL PSE"; - leaf supported-pse-type { - type identityref { - base ieee802-pse:pse-type; - } - config false; - description - "PSE supports one or more of IEEE Std 802.3 Clause 33, - Clause 104, or Clause 145."; - } - container multi-pair { - presence "PSE port supports IEEE Std 802.3, Clause 33."; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2PSE port configuration in IEEE Std 802.3, - 30.9.1."; - leaf pse-enable { - type boolean; - default "false"; - description - "When true enables the PSE function on the interface, - when false disables the PSE function on the - interface."; - reference - "IEEE Std 802.3, 30.9.1.1.2 aPSEAdminState"; - } - leaf powering-pairs { - type identityref { - base powering-pairs; - } - description - "Describes or controls the PSE pairs in use. If the - value of pairs-control-ability is true, this object - is writeable."; - reference - "IEEE Std 802.3, 30.9.1.1.4 aPSEPowerPairs"; - } - leaf pairs-control-ability { - type boolean; - default "true"; - config false; - description - "Describes the ability to control switching the - power sourcing pins of the PSE."; - reference - "IEEE Std 802.3, 30.9.1.1.3 - aPSEPowerPairsControlAbility"; - } - leaf detection-status { - type multi-pair-detection-state; - config false; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Describes the operational status of the port - PD detection."; - reference - "IEEE Std 802.3, 30.9.1.1.5 aPSEPowerDetectionStatus"; - } - leaf classifications { - when "../detection-status = 'deliveringPower'" { - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - This node only applies when the detection status is - delivering power."; - } - type power-class; - config false; - status deprecated; - description - "The power class of the PSE port."; - reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; - } - container statistics { - config false; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2statistics information of the multi-pair - port."; - leaf power-denied { - type yang:counter64; - description - "This counter is incremented when the PSE state - diagram enters the POWER_DENIED state, per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.14"; - } - leaf invalid-signature { - type yang:counter64; - description - "This counter is incremented when the PSE state - diagram enters the SIGNATURE_INVALID state per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.11"; - } - leaf mps-absent { - type yang:counter64; - description - "This counter is incremented when the PSE - transitions directly from the POWER_ON state to the - IDLE state due to tmpdo_timer_done being asserted, - per IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.20"; - } - leaf overload { - type yang:counter64; - status deprecated; - description - "This counter is incremented when the PSE state - diagram enters the ERROR_DELAY state due to the - ovld_detected variable being TRUE, per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.17"; - } - leaf short { - type yang:counter64; - status deprecated; - description - "This Yang object is deprecated as its not defined in - base standard. - This counter is incremented when the PSE state - diagram enters the ERROR_DELAY state due to the - short_detected variable being TRUE, per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.10 aPSEShortCounter"; - } - leaf cumulative-energy { - type yang:counter64; - units "millijoules"; - description - "The cumulative energy supplied by the PSE as - measured at the MDI in millijoules."; - reference - "IEEE Std 802.3, 30.9.1.1.25"; - } - } - leaf actual-power { - type decimal64 { - fraction-digits 4; - } - units "milliwatts"; - config false; - description - "The actual power drawn by a PD over the port."; - reference - "IEEE Std 802.3, 30.9.1.1.23"; - } - leaf power-accuracy { - type int64; - units "milliwatts"; - config false; - description - "An integer value indicating the accuracy - associated with power-accuracy in +/- milliwatts."; - reference - "IEEE Std 802.3, 30.9.1.1.24"; - } - } - container single-pair { - presence "PSE port working in PoDL."; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - PoDL PSE configuration as defined in - IEEE Std 802.3, 30.15.1."; - leaf pse-enable { - type boolean; - default "false"; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - When true enables the PSE function on the interface, - when false disables the PSE function on the - interface."; - reference - "IEEE Std 802.3, 30.15.1.1.2 aPoDLPSEAdminState"; - } - leaf detection-status { - type single-pair-detection-state; - config false; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Indicates the current status of the PoDL PSE."; - reference - "IEEE Std 802.3, 30.15.1.1.3 - aPoDLPSEPowerDetectionStatus"; - } - leaf podl-type { - type enumeration { - enum unknown { - description - "Unknown PSE type."; - } - enum typeA { - description - "TypeA PSE"; - } - enum typeB { - description - "TypeB PSE"; - } - enum typeC { - description - "Type PSEC"; - } - enum typeD { - description - "TypeD PSE"; - } - enum typeE { - description - "TypeE PSE"; - } - enum typeF { - description - "TypeF PSE"; - } - } - config false; - description - "PSE type specified in and - IEEE Std 802.3, 30.15.1.1.4."; - } - leaf detected-pd-type { - when "../detection-status = 'deliveringPower'" { - description - "This node only applies when the detection status is - delivering power."; - } - type enumeration { - enum unknown { - description - "Unknown PD type"; - } - enum typeA { - description - "TypeA PD"; - } - enum typeB { - description - "TypeB PD"; - } - enum typeC { - description - "TypeC PD"; - } - enum typeD { - description - "TypeD PD"; - } - enum typeE { - description - "TypeE PD"; - } - enum typeF { - description - "TypeF PD"; - } - } - config false; - description - "Indicates the Type of the detected PoDL PD as - specified in IEEE Std 802.3, 104.5.1."; - reference - "IEEE Std 802.3, 30.15.1.1.5 aPoDLPSEDetectedPDType"; - } - leaf pd-power-class { - when "../detection-status = 'deliveringPower'" { - description - "This node only applies when the detection status is - delivering power."; - } - type power-class; - config false; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - Power class of the PD detected on the PSE port."; - reference - "IEEE Std 802.3, 30.15.1.1.6 - aPoDLPSEDetectedPDPowerClass"; - } - container statistics { - config false; - status deprecated; - description - "Deprecated in IEEE Std 802.3.2-202x, Draft D3.1, superceeded by - ieee802-ethernet-pse-2 - PSE Discontinuities in the values of counters in this - container can occur at re-initialization of the - management system, and at other times as indicated by the - value of the 'discontinuity-time' leaf defined in the - ietf-interfaces YANG module (IETF RFC 8343)."; - leaf power-denied { - type yang:counter64; - description - "This counter is incremented when the PoDL PSE state - diagram variable power_available transitions from - true to false (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.9 - aPoDLPSEPowerDeniedCounter"; - } - leaf invalid-signature { - type yang:counter64; - description - "This counter is incremented when the PSE state - diagram enters the SIGNATURE_INVALID state per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.15.1.1.7 - aPoDLPSEInvalidSignatureCounter"; - } - leaf invalid-class { - type yang:counter64; - description - "This counter is incremented when the PoDL PSE state - diagram variable tclass_timer_done transitions from - false to true or when the valid_class variable - transitions from true to false - (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.8 - aPoDLPSEInvalidClassCounter"; - } - leaf overload { - type yang:counter64; - description - "This counter is incremented when the PSE state - diagram variable overload_held transitions from - false to true (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.10 - aPoDLPSEOverLoadCounter"; - } - leaf fvs-absence { - type yang:counter64; - description - "Maintain Full Voltage Signature absent counter. - This counter is incremented when the PoDL PSE state - diagram variable mfvs_timeout transitions from false - to true (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.11 - aPoDLPSEMaintainFullVoltageSignatureAbsentCounter"; - } - leaf cumulative-energy { - type yang:counter64; - units "millijoules"; - description - "A count of the cumulative energy supplied by the - PoDL PSE, measured at the MDI, and expressed in - units of millijoules."; - reference - "IEEE Std 802.3, 30.15.1.1.14 - aPoDLPSECumulativeEnergy"; - } - } - leaf actual-power { - type decimal64 { - fraction-digits 4; - } - units "milliwatts"; - config false; - description - "An integer value indicating present (actual) power - being supplied by the PoDL PSE as measured at the MDI - in milliwatts."; - reference - "IEEE Std 802.3, 30.15.1.1.12 aPoDLPSEActualPower"; - } - leaf power-accuracy { - type int64; - units "milliwatts"; - config false; - description - "A signed integer value indicating the accuracy - associated - with power-accuracy in milliwatts."; - reference - "IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy"; - } - } - } - } -} diff --git a/standard/ieee/published/802.3/ieee802-ethernet-interface-half-duplex.yang b/standard/ieee/published/802.3/ieee802-ethernet-interface-half-duplex.yang index ab1fbbdb7..d1f0add22 100755 --- a/standard/ieee/published/802.3/ieee802-ethernet-interface-half-duplex.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-interface-half-duplex.yang @@ -1,353 +1,291 @@ -module ieee802-ethernet-interface-half-duplex { - - yang-version 1.1; - - namespace - "urn:ieee:std:802.3:yang:ieee802-ethernet-interface-half-duplex"; - - prefix ieee802-eth-half-duplex; - - import ietf-yang-types { - prefix yang; - reference "IETF RFC 6991"; - } - - import ietf-interfaces { - prefix if; - reference "IETF RFC 8343"; - } - - import iana-if-type { - prefix ianaift; - reference "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2018-07-03.yang"; - } - - import ieee802-ethernet-interface { - prefix ieee802-eth-if; - } - - organization - "IEEE Std 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - - contact - "Web URL: http://www.ieee802.org/3/"; - - description - "This module contains YANG definitions for configuring Ethernet - interfaces that are deprecated, and are no longer - widely used in the industry. The definitions are maintained for - backwards compatibility purposes, but the general expectation is - that this module is not anticipated to be widely implemented."; - - revision 2019-06-21{ - description "Initial revision."; - reference "IEEE Std 802.3-2018, unless dated explicitly"; - } - - feature dynamic-rate-control { - description - "This feature indicates that the device supports Ethernet - interfaces lowering the average data rate of the MAC sublayer, - with frame granularity, by using Rate Control to dynamically - increase the inter-packet gap for some types of Ethernet - interface. - Only valid for Ethernet interfaces operating at speeds (data rates) - above 1000 Mb/s."; - reference "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; - } - - feature csma-cd { - description - "This feature indicates that the device supports Ethernet - interfaces running at half-duplex using CSMA/CD."; - } - - typedef dynamic-rate-control-type { - type enumeration { - enum disabled { - description - "Dynamic rate control is disabled"; - } - - enum "sonet-oc192" { - value 2; - description - "Dynamic rate control is enabled for a 10 Gb/s Ethernet - interface to SONET/SDH OC192/STM64."; - } - } - default disabled; - description - "Allowed values for dynamic-rate-control."; - reference - "IEEE Std 802.3, 4.4.2 ipgStretchRatio and 30.3.1.1.34 - aRateControlStatus"; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - when "derived-from-or-self(../if:type, 'ianaift:ethernetCsmacd') - and ieee802-eth-if:duplex = 'half'" { - description - "Applies to half-duplex Ethernet interfaces."; - } - - description - "Augment with Ethernet interface configuration parameters - for half-duplex operation."; - - leaf dynamic-rate-control { - if-feature "dynamic-rate-control"; - type dynamic-rate-control-type; - description - "Enables dynamic rate control and specifies what speed (data rate) - the dynamic rate control is operating at. The value of this attribute - is constrained by the MAC data rate and hardware support. - The default value is implementation-dependent."; - reference - "IEEE Std 802.3, 30.3.1.1.34 aRateControlStatus"; - } - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" + - "ieee802-eth-if:capabilities"{ - when "derived-from-or-self(../../if:type, - 'ianaift:ethernetCsmacd') and ../ieee802-eth-if:duplex = 'half'" { - description "Applies to half-duplex Ethernet interfaces"; - } - - description - "Augment with configuration capabilities for half-duplex - Ethernet interface."; - - leaf dynamic-rate-control-supported { - if-feature "dynamic-rate-control"; - type boolean; - default false; - description - "Indicates whether the Ethernet interface supports lowering - the average data rate of the MAC sublayer, with frame - granularity, by using Rate Control to dynamically increase - the inter-packet gap. - Only valid for Ethernet interfaces operating at speeds (data rates) - above 1000 Mb/s."; - reference - "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; - } - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" + - "ieee802-eth-if:statistics/ieee802-eth-if:frame" { - when "derived-from-or-self(../../../if:type, - 'ianaift:ethernetCsmacd') and ../../ieee802-eth-if:duplex = 'half'" { - description - "Applies to half-duplex Ethernet interfaces."; - } - description - "Augment with statistics for half-duplex Ethernet interface."; - - container "csma-cd" { - if-feature "csma-cd"; - description - "Holds counters that are specific to CDMA/CD half-duplex - operation of Ethernet interfaces. - Discontinuities in the values of the counters in this - container can occur at re-initialization of the management - system, and at other times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - - leaf in-errors-sqe-test { - type yang:counter64; - units errors; - description - "A count of times that the SQE TEST ERROR is received on a - particular interface. The SQE TEST ERROR is set in - accordance with the rules for verification of the SQE - detection mechanism in the PLS Carrier Sense Function as - described in IEEE Std 802.3, 7.2.4.6. - This counter does not increment on Ethernet interfaces - operating at speeds (data rates) greater than 10 Mb/s, or on - Ethernet interfaces operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 7.2.4.6, and 30.3.2.1.4 aSQETestErrors"; - } - - leaf out-frames-collision-single { - type yang:counter64; - units frames; - description - "A count of frames that are involved in a single collision, - and are subsequently transmitted successfully. A frame - that is counted by an instance of this object is also - counted by the corresponding instance of either - 'out-unicast-frames', 'out-broadcast-frames', or - 'out-multicast-frames', and is not counted by the - corresponding instance of the - 'out-frames-collision-multiple'. - - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.3 aSingleCollisionFrames"; - } - - leaf out-frames-collision-multiple { - type yang:counter64; - units frames; - description - "A count of frames that are involved in multiple - collisions, and are subsequently transmitted - successfully. A frame that is counted by an instance of - this object is also counted by the corresponding instance - of either 'out-unicast-frames', 'out-broadcast-frames', or - 'out-multicast-frames', and is not counted by the - corresponding instance of the 'out-frames-collision-single'. - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.4 aMultipleCollisionFrames"; - } - - leaf out-frames-deferred { - type yang:counter64; - units frames; - description - "A count of frames for which the first transmission attempt - on a particular Ethernet interface is delayed because the - medium is busy. - A deferred frame that is not subject to any number of - collisions is not counted by an instance of - 'out-frames-collision-single' or - 'out-frames-collision-multiple' objects. - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.9 aFramesWithDeferredXmissions"; - } - - leaf out-frames-collisions-excessive { - type yang:counter64; - units frames; - description - "A count of frames for which transmission on a particular - Ethernet interface fails due to excessive collisions. - - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.11 aFramesAbortedDueToXSColls"; - } - - leaf out-collisions-late { - type yang:counter64; - units collisions; - description - "The number of times that a collision is detected on a - particular Ethernet interface later than one slotTime into - the transmission of a packet. - A (late) collision included in a count represented by an - instance of this object is also considered as a (generic) - collision for purposes of other collision-related - statistics. - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.10 aLateCollisions"; - } - - leaf out-errors-carrier-sense { - type yang:counter64; - units errors; - description - "The number of times that the carrier sense condition was - lost or never asserted when attempting to transmit a frame - on a particular Ethernet interface. - The count represented by an instance of this object is - incremented at most once per transmission attempt, even if - the carrier sense condition fluctuates during a - transmission attempt. - This counter does not increment when the Ethernet - interface is operating in full-duplex mode. - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.1.1.13 aCarrierSenseErrors"; - } - - list collision-histogram { - key collision-count; - description - "A collection of collision histograms for a particular - interface."; - reference - "IEEE Std 802.3, 30.3.1.1.30 aCollisionFrames"; - leaf collision-count { - type yang:counter64; - units collisions; - description - "The number of per-frame media collisions for which a - particular collision histogram cell represents the - frequency on a particular interface."; - } - leaf collision-count-frames { - type yang:counter64; - units frames; - description - "A count of individual MAC frames for which the - transmission (successful or otherwise) on a particular - interface occurs after the frame has experienced exactly - the number of collisions in the associated dot3CollCount - object. - For example, a frame which is transmitted on an - interface after experiencing exactly 4 collisions would - be indicated by incrementing only collision-count-frames - object associated with the collision-count value of - 4. No other instance of collision-count-frames would be - incremented in this example. - This counter does not increment when the interface is - operating in full-duplex mode. - Discontinuities in the value of this counter can occur - at re-initialization of the management system, and at - other times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - } - } - } - } -} \ No newline at end of file +module ieee802-ethernet-interface-half-duplex { + yang-version 1.1; + namespace + "urn:ieee:std:802.3:yang:ieee802-ethernet-interface-half-duplex"; + prefix ieee802-eth-half-duplex; + + import ietf-yang-types { + prefix yang; + reference + "IETF RFC 6991"; + } + import ietf-interfaces { + prefix if; + reference + "IETF RFC 8343"; + } + import iana-if-type { + prefix ianaift; + reference + "http://www.iana.org/assignments/yang-parameters/ + iana-if-type@2023-01-26.yang"; + } + import ieee802-ethernet-interface { + prefix ieee802-eth-if; + } + + organization + "IEEE Std 802.3 Ethernet Working Group + Web URL: http://www.ieee802.org/3/"; + contact + "Web URL: http://www.ieee802.org/3/"; + description + "This module contains YANG definitions for half duplex + Ethernet interfaces, e.g., 10BASE-T1S."; + + revision 2025-09-10 { + description + "Updates under IEEE Std 802.3.2-2025"; + reference + "IEEE Std 802.3-2022, unless dated explicitly"; + } + + feature dynamic-rate-control { + status obsolete; + description + "This feature indicates that the device supports Ethernet + interfaces lowering the average data rate of the MAC + sublayer, with frame granularity, by using Rate Control to + dynamically increase the interpacket gap for some types of + Ethernet interface. + Only valid for Ethernet interfaces operating at speeds + (data rates) above 1000 Mb/s."; + reference + "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; + } + + feature csma-cd { + description + "This feature indicates that the device supports Ethernet + interfaces running at half-duplex using CSMA/CD."; + } + + typedef dynamic-rate-control-type { + type enumeration { + enum disabled { + description + "Dynamic rate control is disabled"; + } + enum sonet-oc192 { + value 2; + description + "Dynamic rate control is enabled for a 10 Gb/s Ethernet + interface to SONET/SDH OC192/STM64."; + } + } + default "disabled"; + status obsolete; + description + "Allowed values for dynamic-rate-control."; + reference + "IEEE Std 802.3, 4.4.2 ipgStretchRatio and 30.3.1.1.34 + aRateControlStatus"; + } + + augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { + when "derived-from-or-self(../if:type, 'ianaift:ethernetCsmacd') + and ieee802-eth-if:duplex = 'half'" { + description + "Applies to half-duplex Ethernet interfaces."; + } + status obsolete; + description + "Augment with Ethernet interface configuration parameters + for half-duplex operation."; + leaf dynamic-rate-control { + if-feature "dynamic-rate-control"; + type dynamic-rate-control-type; + status obsolete; + description + "Enables dynamic rate control and specifies what speed + (data rate) the dynamic rate control is operating at. + The value of this attribute is constrained by the MAC + data rate and hardware support. + The default value is implementation dependent."; + reference + "IEEE Std 802.3, 30.3.1.1.34 aRateControlStatus"; + } + } + + augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" + + "ieee802-eth-if:capabilities" { + when "derived-from-or-self(../../if:type, + 'ianaift:ethernetCsmacd') + and ../ieee802-eth-if:duplex = 'half'" { + description + "Applies to half-duplex Ethernet interfaces"; + } + status obsolete; + description + "Augment with configuration capabilities for half-duplex + Ethernet interface."; + leaf dynamic-rate-control-supported { + if-feature "dynamic-rate-control"; + type boolean; + default "false"; + status obsolete; + description + "Indicates whether the Ethernet interface supports lowering + the average data rate of the MAC sublayer, with frame + granularity, by using Rate Control to dynamically increase + the interpacket gap. + Only valid for Ethernet interfaces operating at speeds + (data rates) above 1000 Mb/s."; + reference + "IEEE Std 802.3, 30.3.1.1.33 aRateControlAbility"; + } + } + + augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet/" + + "ieee802-eth-if:statistics/ieee802-eth-if:frame" { + when "derived-from-or-self(../../../if:type, + 'ianaift:ethernetCsmacd') and + ../../ieee802-eth-if:duplex = 'half'" { + description + "Applies to half-duplex Ethernet interfaces."; + } + description + "Augment with statistics for half-duplex Ethernet interface."; + container csma-cd { + if-feature "csma-cd"; + description + "Holds counters that are specific to CDMA/CD half-duplex + operation of Ethernet interfaces. + This counter does not increment on Ethernet interfaces + operating at speeds (data rates) greater than 10 Mb/s, or + on Ethernet interfaces operating in full-duplex mode. + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of the + 'discontinuity-time' leaf defined in the ietf-interfaces + YANG module (IETF RFC 8343)."; + leaf in-errors-sqe-test { + type yang:counter64; + units "errors"; + description + "A count of times that the SQE TEST ERROR is received on + a particular interface. The SQE TEST ERROR is set in + accordance with the rules for verification of the SQE + detection mechanism in the PLS Carrier Sense function as + described in IEEE Std 802.3, 7.2.4.6."; + reference + "IEEE Std 802.3, 7.2.4.6, and 30.3.2.1.4 aSQETestErrors"; + } + leaf out-frames-collision-single { + type yang:counter64; + units "frames"; + description + "A count of frames that are involved in a single + collision, and are subsequently transmitted + successfully. A frame that is counted by an instance of + this object is also counted by the corresponding + instance of either 'out-unicast-frames', + 'out-broadcast-frames', or 'out-multicast-frames', + and is not counted by the corresponding instance of the + 'out-frames-collision-multiple'."; + reference + "IEEE Std 802.3, 30.3.1.1.3 aSingleCollisionFrames"; + } + leaf out-frames-collision-multiple { + type yang:counter64; + units "frames"; + description + "A count of frames that are involved in multiple + collisions, and are subsequently transmitted + successfully. A frame that is counted by an instance of + this object is also counted by the corresponding + instance of either 'out-unicast-frames', + 'out-broadcast-frames', or 'out-multicast-frames', and + is not counted by the corresponding instance of the + 'out-frames-collision-single'."; + reference + "IEEE Std 802.3, 30.3.1.1.4 aMultipleCollisionFrames"; + } + leaf out-frames-deferred { + type yang:counter64; + units "frames"; + description + "A count of frames for which the first transmission + attempt on a particular Ethernet interface is delayed + because the medium is busy. + A deferred frame that is not subject to any number of + collisions is not counted by an instance of + 'out-frames-collision-single' or + 'out-frames-collision-multiple' objects."; + reference + "IEEE Std 802.3, 30.3.1.1.9 + aFramesWithDeferredXmissions"; + } + leaf out-frames-collisions-excessive { + type yang:counter64; + units "frames"; + description + "A count of frames for which transmission on a particular + Ethernet interface fails due to excessive collisions."; + reference + "IEEE Std 802.3, 30.3.1.1.11 aFramesAbortedDueToXSColls"; + } + leaf out-collisions-late { + type yang:counter64; + units "collisions"; + description + "The number of times that a collision is detected on a + particular Ethernet interface later than one slotTime + into the transmission of a packet. + A (late) collision included in a count represented by an + instance of this object is also considered as a + (generic) collision for purposes of other + collision-related statistics."; + reference + "IEEE Std 802.3, 30.3.1.1.10 aLateCollisions"; + } + leaf out-errors-carrier-sense { + type yang:counter64; + units "errors"; + description + "The number of times that the carrier sense condition was + lost or never asserted when attempting to transmit a + frame on a particular Ethernet interface. + The count represented by an instance of this object is + incremented at most once per transmission attempt, even + if the carrier sense condition fluctuates during a + transmission attempt."; + reference + "IEEE Std 802.3, 30.3.1.1.13 aCarrierSenseErrors"; + } + list collision-histogram { + key "collision-count"; + description + "A collection of collision histograms for a particular + interface."; + reference + "IEEE Std 802.3, 30.3.1.1.30 aCollisionFrames"; + leaf collision-count { + type yang:counter64; + units "collisions"; + description + "The number of per-frame media collisions for which a + particular collision histogram cell represents the + frequency on a particular interface."; + } + leaf collision-count-frames { + type yang:counter64; + units "frames"; + description + "A count of individual MAC frames for which the + transmission (successful or otherwise) on a particular + interface occurs after the frame has experienced + exactly the number of collisions in the associated + dot3CollCount object. + For example, a frame which is transmitted on an + interface after experiencing exactly 4 collisions + would be indicated by incrementing only the + collision-count-frames object associated with the + collision-count value of 4. No other instance of + collision-count-frames would be incremented in this + example."; + } + } + } + } +} diff --git a/standard/ieee/published/802.3/ieee802-ethernet-interface.yang b/standard/ieee/published/802.3/ieee802-ethernet-interface.yang index 96fd7c0f7..4e33c11c4 100755 --- a/standard/ieee/published/802.3/ieee802-ethernet-interface.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-interface.yang @@ -1,928 +1,860 @@ -module ieee802-ethernet-interface { - yang-version 1.1; - - namespace - "urn:ieee:std:802.3:yang:ieee802-ethernet-interface"; - - prefix ieee802-eth-if; - - import ietf-yang-types { - prefix yang; - reference "IETF RFC 6991"; - } - - import ietf-interfaces { - prefix if; - reference "IETF RFC 8343"; - } - - import iana-if-type { - prefix ianaift; - reference "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2018-07-03.yang"; - } - - organization - "IEEE Std 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - - contact - "Web URL: http://www.ieee802.org/3/"; - - description - "This module contains YANG definitions for configuring IEEE Std - 802.3 Ethernet Interfaces. - In this YANG module, 'Ethernet interface' can be interpreted - as referring to 'IEEE Std 802.3 compliant Ethernet - interfaces'."; - - revision 2019-06-21{ - description "Initial revision."; - reference "IEEE Std 802.3-2018, unless dated explicitly"; - } - - typedef eth-if-speed-type { - type decimal64 { - fraction-digits 3; - } - units "Gb/s"; - description - "Used to represent the configured, negotiated, or actual speed - of an Ethernet interface in Gigabits per second (Gb/s), - accurate to 3 decimal places (i.e., accurate to 1 Mb/s)."; - } - - typedef duplex-type { - type enumeration { - enum full { - description - "Full duplex."; - } - enum half { - description - "Half duplex."; - } - enum unknown { - description - "Link is currently disconnected or initializing."; - } - } - default full; - description - "Used to represent the configured, negotiated, or actual - duplex mode of an Ethernet interface."; - reference "IEEE Std 802.3, 30.3.1.1.32, aDuplexStatus"; - } - - typedef pause-fc-direction-type { - type enumeration { - enum "disabled" { - description - "Flow-control disabled in both ingress and egress - directions, i.e., PAUSE frames are not transmitted and - PAUSE frames received in the ingress direction are - discarded without processing."; - } - enum "ingress-only" { - description - "PAUSE frame based flow control is enabled in the ingress - direction only, i.e., PAUSE frames may be transmitted to - reduce the ingress traffic flow, but PAUSE frames received - in the ingress direction are discarded without reducing - the egress traffic rate."; - } - enum "egress-only" { - description - "PAUSE frame based flow control is enabled in the egress - direction only, i.e., PAUSE frames are not transmitted, - but PAUSE frames received in the ingress direction are - processed to reduce the egress traffic rate."; - } - enum "bi-directional" { - description - "PAUSE frame based flow control is enabled in both ingress - and egress directions, i.e., PAUSE frames may be - transmitted to reduce the ingress traffic flow, and - PAUSE frames received on ingress are processed to reduce - the egress traffic rate."; - } - enum "undefined" { - description - "Link is currently disconnected or initializing."; - } - } - description - "Used to represent the configured, negotiated, or actual - PAUSE frame-based flow control setting."; - - reference - "IEEE Std 802.3.1, dot3PauseAdminMode and dot3PauseOperMode"; - } - - feature ethernet-pfc { - description - "This device supports Ethernet priority flow-control."; - } - - feature ethernet-pause { - description - "This device supports Ethernet PAUSE."; - } - - augment "/if:interfaces/if:interface" { - when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd')" { - description - "Applies to all P2P Ethernet interfaces."; - } - description - "Augment interface model with Ethernet interface - specific configuration nodes."; - - container ethernet { - description - "Contains all Ethernet interface related configuration."; - - container auto-negotiation { - presence - "The presence of this container indicates that - auto-negotiation is supported on this Ethernet - interface."; - description - "Contains auto-negotiation transmission parameters - - This container contains a data node that allows the - advertised duplex value in the negotiation to be - restricted. - - If not specified then the default behavior for the duplex - data node is to negotiate all available values for the - particular type of Ethernet PHY associated with the - interface. - - If auto-negotiation is enabled, and PAUSE frame based flow - control has not been explicitly configured, then the - default PAUSE frame based flow control capabilities that - are negotiated allow for bi-directional or egress-only - PAUSE frame based flow control. - - If auto-negotiation is enabled, and PAUSE frame based flow - control has been explicitly configured, then the - configuration settings restrict the values that may be - negotiated. However, it should be noted that the protocol - does not allow only egress PAUSE frame based flow control - to be negotiated without also allowing bi-directional - PAUSE frame based flow control."; - reference - "IEEE Std 802.3, Clause 28 and Annexes 28A-D"; - - leaf enable { - type boolean; - default true; - - description - "Controls whether auto-negotiation is enabled or - disabled. - For interface types that support auto-negotiation then - it defaults to being enabled. - - For interface types that do not support auto-negotiation, - the related configuration data is ignored."; - } - leaf negotiation-status { - when "../enable = 'true'"; - type enumeration { - enum in-progress { - description - "The auto-negotiation protocol is running and - negotiation is currently in-progress."; - } - enum complete { - description - "The auto-negotiation protocol has completed - successfully."; - } - enum failed { - description - "The auto-negotiation protocol has failed."; - } - enum unknown { - description - "The auto-negotiation status is not currently known, - this could be because it is still negotiating or the - protocol cannot run (e.g., if no medium is present)."; - } - enum no-negotiation { - description - "No auto-negotiation is executed. - The auto-negotation function is either not supported - on this interface or has not been enabled."; - } - } - config false; - description - "The status of the auto-negotiation protocol."; - reference - "IEEE 802.3, 30.6.1.1.4, aAutoNegAutoConfig"; - } - - } - - leaf duplex { - type duplex-type; - description - "Operational duplex mode of the Ethernet interface."; - reference - "IEEE Std 802.3, 30.3.1.1.32 aDuplexStatus"; - } - - leaf speed { - type eth-if-speed-type; - units "Gb/s"; - description - "Operational speed (data rate) of the Ethernet interface. - The default value is implementation-dependent."; - } - - container flow-control { - description - "Holds the different types of Ethernet PAUSE frame based - flow control that can be enabled."; - container pause { - if-feature "ethernet-pause"; - description - "IEEE Std 802.3 PAUSE frame based PAUSE frame based flow - control."; - reference - "IEEE Std 802.3, Annex 31B"; - leaf direction { - type pause-fc-direction-type; - description - "Indicates which direction PAUSE frame based flow - control is enabled in, or whether it is disabled. - The default flow-control settings are vendor specific. - If auto-negotiation is enabled, then PAUSE based - flow-control is negotiated by default. - The default value is implementation-dependent."; - } - - container statistics { - config false; - description - "Contains the number of PAUSE frames received or - transmitted."; - leaf in-frames-pause { - type yang:counter64; - units frames; - description - "A count of PAUSE MAC Control frames transmitted on - this Ethernet interface. - - Discontinuities in the values of counters in - this container can occur at re-initialization of the - management system, and at other times as indicated - by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.4.3 aPAUSEMACCtrlFramesReceived"; - } - leaf out-frames-pause { - type yang:counter64; - units frames; - description - "A count of PAUSE MAC Control frames transmitted on - this Ethernet interface. - - Discontinuities in the values of counters in - this container can occur at re-initialization of the - management system, and at other times as indicated - by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.4.2 - aPAUSEMACCtrlFramesTransmitted"; - } - } - } - - container pfc { - if-feature "ethernet-pfc"; - description - "IEEE Std 802.3 Priority-based flow control."; - reference - "IEEE Std 802.3, Annex 31D"; - - leaf enable { - type boolean; - - description - "True indicates that IEEE Std 802.3 priority-based - flow control is enabled, false indicates that - IEEE Std 802.3 priority-based flow control is disabled. - For interfaces that have auto-negotiation, - the priority-based flow control is enabled by default."; - } - - container statistics { - config false; - description - "This container collects all statistics for - Ethernet interfaces."; - - leaf in-frames-pfc { - type yang:counter64; - units frames; - description - "A count of PFC MAC Control frames received on this - Ethernet interface. - - Discontinuities in the values of counters in - this container can occur at re-initialization of the - management system, and at other times as indicated - by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - reference - "IEEE Std 802.3.1, dot3HCInPFCFrames"; - } - - leaf out-frames-pfc { - type yang:counter64; - units frames; - description - "A count of PFC MAC Control frames transmitted on - this interface. - - Discontinuities in the values of counters in - this container can occur at re-initialization of the - management system, and at other times as indicated - by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module - (IETF RFC 8343)."; - reference - "IEEE Std 802.3.1, dot3HCInPFCFrames"; - } - } - } - - leaf force-flow-control { - type boolean; - default false; - description - "Explicitly forces the local PAUSE frame based flow control - settings regardless of what has been negotiated. - - Since the auto-negotiation of flow-control settings - does not allow all sane combinations to be negotiated - (e.g., consider a device that is only capable of sending - PAUSE frames connected to a peer device that is only - capable of receiving and acting on PAUSE frames) and - failing to agree on the flow-control settings does not - cause the auto-negotiation to fail completely, then it is - sometimes useful to be able to explicitly enable - particular PAUSE frame based flow control settings on - the local device regardless of what is being advertised - or negotiated."; - reference - "IEEE Std 802.3, Table 28B-3"; - } - } - - leaf max-frame-length { - type uint16; - units octets; - config false; - description - "This indicates the MAC frame length (including FCS bytes) - at which frames are dropped for being too long."; - reference - "IEEE Std 802.3, 30.3.1.1.37 aMaxFrameLength"; - } - - leaf mac-control-extension-control { - type boolean; - config false; - description - "A value that identifies the current EXTENSION MAC Control - function, as specified in IEEE Std 802.3, Annex 31C."; - reference - "IEEE Std 802.3, 30.3.8.3 aEXTENSIONMACCtrlStatus - IEEE Std 802.3.1, dot3ExtensionMacCtrlStatus "; - } - - leaf frame-limit-slow-protocol { - type uint64; - units f/s; - default 10; - config false; - description - "The maximum number of Slow Protocol frames of a given - subtype that can be transmitted in a one second interval. - The default value is 10."; - reference - "IEEE Std 802.3, 30.3.1.1.38 aSlowProtocolFrameLimit"; - } - - container capabilities { - config false; - description - "Container all Ethernet interface specific capabilities."; - - leaf auto-negotiation { - type boolean; - description - "Indicates whether auto-negotiation may be configured on - this interface."; - } - - } - - container statistics { - config false; - description - "Contains statistics specific to Ethernet interfaces. - - Discontinuities in the values of counters in the - container can occur at re-initialization of the management - system, and at other times as indicated by the value of - the 'discontinuity-time' leaf defined in the - ietf-interfaces YANG module (IETF RFC 8343)."; - - container frame { - description - "Contains frame statistics specific to Ethernet - interfaces. - - All octet frame lengths include the 4 byte FCS. - - Error counters are only reported once ... The count - represented by an instance of this object is incremented - when the frameCheckError status is returned by the MAC - service to the LLC (or other MAC user). Received frames - for which multiple error conditions pertain are, - according to the conventions of IEEE Std 802.3 Layer - Management, counted exclusively according to the error - status presented to the LLC. - - A frame that is counted by an instance of this object is - also counted by the corresponding instance of 'in-errors' - leaf defined in the ietf-interfaces YANG module - (IETF RFC 8343). - - Discontinuities in the values of counters in the - container can occur at re-initialization of the - management system, and at other times as indicated by - the value of the 'discontinuity-time' leaf defined in - the ietf-interfaces YANG module (IETF RFC 8343)."; - - leaf in-total-frames { - type yang:counter64; - units frames; - description - "The total number of frames (including bad frames) - received on the Ethernet interface. - - This counter is calculated by summing the following - IEEE Std 802.3, Clause 30 counters: - aFramesReceivedOK + - aFrameCheckSequenceErrors + - aAlignmentErrors + - aFrameTooLongErrors + - aFramesLostDueToIntMACRcvError - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, Clause 30 counters, as specified - in the description above."; - } - - leaf in-total-octets { - type yang:counter64; - units octets; - description - "The total number of octets of data (including those in - bad frames) received on the Ethernet interface. - - Includes the 4-octet FCS. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IETF RFC 2819, etherStatsOctets"; - } - - leaf in-frames { - type yang:counter64; - units frames; - description - "A count of frames (including unicast, multicast and - broadcast) that have been successfully received on the - Ethernet interface. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.5 aFramesReceivedOK"; - } - - leaf in-multicast-frames { - type yang:counter64; - units frames; - description - "A count of multicast frames that have been - successfully received on the Ethernet interface. - - This counter represents a subset of the frames counted - by in-frames. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.21 aMulticastFramesReceivedOK"; - } - - leaf in-broadcast-frames { - type yang:counter64; - units frames; - description - "A count of broadcast frames that have been - successfully received on the Ethernet interface. - - This counter represents a subset of the frames counted - by in-frames. - - This count does not include frames received with - frame-too-long, FCS, length or alignment errors, or - frames lost due to internal MAC sublayer error. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.22 aBroadcastFramesReceivedOK"; - } - - leaf in-error-fcs-frames { - type yang:counter64; - units frames; - description - "A count of receive frames that are of valid length, - but do not pass the FCS check, regardless of whether - or not the frames are an integral number of octets in - length. - - This count effectively comprises - aFrameCheckSequenceErrors and aAlignmentErrors added - together. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.6 aFrameCheckSequenceErrors; - IEEE Std 802.3, 30.3.1.1.7 aAlignmentErrors"; - } - - leaf in-error-undersize-frames { - type yang:counter64; - units frames; - description - "A count of frames received on a particular Ethernet - interface that are less than 64 bytes in length, and - are discarded. - - This counter is incremented regardless of whether the - frame passes the FCS check. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IETF RFC 2819, etherStatsUndersizePkts and - etherStatsFragments"; - } - - leaf in-error-oversize-frames { - type yang:counter64; - units frames; - description - "A count of frames received on a particular Ethernet - interface that exceed the maximum permitted frame - size, that is specified in max-frame-length, and are - discarded. - - This counter is incremented regardless of whether the - frame passes the FCS check. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference "IEEE Std 802.3, 30.3.1.1.25 aFrameTooLongErrors"; - } - - leaf in-error-mac-internal-frames { - type yang:counter64; - units frames; - description - "A count of frames for which reception on a particular - Ethernet interface fails due to an internal MAC - sublayer receive error. - - A frame is only counted by an instance of this object - if it is not counted by the corresponding instance of - either the in-error-fcs-frames, in-error-undersize-frames, - or in-error-oversize-frames. The precise meaning of the - count represented by an instance of this object is - implementation-specific. - - In particular, an instance of this object may - represent a count of receive errors on a particular - Ethernet interface that are not otherwise counted. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.15 - aFramesLostDueToIntMACRcvError"; - } - - leaf out-frames { - type yang:counter64; - units frames; - description - "A count of frames (including unicast, multicast and - broadcast) that have been successfully transmitted on - the Ethernet interface. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.2 aFramesTransmittedOK"; - } - - leaf out-multicast-frames { - type yang:counter64; - units frames; - description - "A count of multicast frames that have been - successfully transmitted on the Ethernet interface. - - This counter represents a subset of the frames counted - by out-frames. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.18 aMulticastFramesXmittedOK"; - } - - leaf out-broadcast-frames { - type yang:counter64; - units frames; - description - "A count of broadcast frames that have been - successfully transmitted on the Ethernet interface. - - This counter represents a subset of the frames counted - by out-frames. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.19 aBroadcastFramesXmittedOK"; - } - - leaf out-error-mac-internal-frames { - type yang:counter64; - units frames; - description - "A count of frames for which transmission on a - particular Ethernet interface fails due to an internal - MAC sublayer transmit error. - - The precise meaning of the count represented by an - instance of this object is implementation-specific. In - particular, an instance of this object may represent a - count of transmission errors on a particular Ethernet - interface that are not otherwise counted. - - Also see the 'description' statement associated with - the parent 'statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.1.1.12 - aFramesLostDueToIntMACXmitError"; - } - } - - container phy { - description - "Ethernet statistics related to the PHY layer. - - Discontinuities in the values of counters in the - container can occur at re-initialization of the - management system, and at other times as indicated by - the value of the 'discontinuity-time' leaf defined in - the ietf-interfaces YANG module (IETF RFC 8343)."; - - leaf in-error-symbol { - type yang:counter64; - units errors; - description - "A count of the number of symbol errors that have - occurred. - - For the precise definition of when the symbol error - counter is incremented, please see the 'description' - text associated with aSymbolErrorDuringCarrier, - specified in IEEE Std 802.3, 30.3.2.1.5. - - Also see the 'description' statement associated with - the parent 'phy-statistics' container for additional - common semantics related to this counter."; - reference - "IEEE Std 802.3, 30.3.2.1.5 aSymbolErrorDuringCarrier"; - } - - container lpi { - description - "Physical Ethernet statistics for the energy efficiency - related low power idle indications."; - - leaf in-lpi-transitions { - type yang:counter64; - units transitions; - description - "A count of occurrences of the transition from - DEASSERT to ASSERT of the LPI_INDICATE - parameter. The indication reflects the state of the - PHY according to the requirements of the RS (see - IEEE Std 802.3, 22.7, 35.4, and 46.4). - - Also see the 'description' statement associated with - the parent 'phy-statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.2.1.11 aReceiveLPITransitions"; - } - - leaf in-lpi-time { - type decimal64 { - fraction-digits 6; - } - units seconds; - description - "A count reflecting the total amount of time (in - seconds) that the LPI_REQUEST parameter has the - value ASSERT. The request is indicated to the PHY - according to the requirements of the RS (see IEEE Std - 802.3, 22.7, 35.4, and 46.4). - - Also see the 'description' statement associated with - the parent 'phy-statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.2.1.9 aReceiveLPIMicroseconds"; - } - - leaf out-lpi-transitions { - type yang:counter64; - units transitions; - description - "A count of occurrences of the transition from state - LPI_DEASSERTED to state LPI_ASSERTED in the LPI - transmit state diagram of the RS. The state - transition corresponds to the assertion of the - LPI_REQUEST parameter. The request is indicated to - the PHY according to the requirements of the RS (see - IEEE Std 802.3, 22.7, 35.4, 46.4.) - - Also see the 'description' statement associated with - the parent 'phy-statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.2.1.10 aTransmitLPITransitions"; - } - - leaf out-lpi-time { - type decimal64 { - fraction-digits 6; - } - units seconds; - description - "A count reflecting the total amount of time (in - seconds) that the LPI_INDICATION parameter has the - value ASSERT. The request is indicated to the PHY - according to the requirements of the RS (see IEEE - 802.3, 22.7, 35.4, and 46.4). - - Also see the 'description' statement associated with - the parent 'phy-statistics' container for additional - common semantics related to this counter."; - - reference - "IEEE Std 802.3, 30.3.2.1.8 aTransmitLPIMicroseconds"; - } - } - } - - container mac-control { - description - "A group of statistics specific to MAC Control operation - of selected Ethernet interfaces. - - Discontinuities in the values of counters in the - container can occur at re-initialization of the - management system, and at other times as indicated by - the value of the 'discontinuity-time' leaf defined in - the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3ExtensionTable"; - - leaf in-frames-mac-control-unknown { - type yang:counter64; - units frames; - description - "A count of MAC Control frames with an unsupported - opcode received on this Ethernet interface. - - Frames counted against this counter are also counted - against in-discards defined in the ietf-interfaces - YANG module (IETF RFC 8343). - - Also see the 'description' statement associated with - the parent 'mac-control-statistics' container for - additional semantics."; - reference - "IEEE Std 802.3, 30.3.3.5 aUnsupportedOpcodesReceived"; - } - - leaf in-frames-mac-control-extension { - type yang:counter64; - units frames; - description - "The count of Extension MAC Control frames received on - this Ethernet interface. - - Also see the 'description' statement associated with - the parent 'mac-control-statistics' container for - additional semantics."; - reference - "IEEE Std 802.3, 30.3.8.2 - aEXTENSIONMACCtrlFramesReceived"; - } - - leaf out-frames-mac-control-extension { - type yang:counter64; - units frames; - description - "The count of Extension MAC Control frames transmitted - on this Ethernet interface. - - Also see the 'description' statement associated with - the parent 'mac-control-statistics' container for - additional semantics."; - reference - "IEEE Std 802.3, 30.3.8.1 - aEXTENSIONMACCtrlFramesTransmitted"; - } - } - } - } - } -} \ No newline at end of file +module ieee802-ethernet-interface { + yang-version 1.1; + namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-interface"; + prefix ieee802-eth-if; + + import ietf-yang-types { + prefix yang; + reference + "IETF RFC 6991"; + } + import iana-if-type { + prefix ianaift; + reference + "http://www.iana.org/assignments/yang-parameters/ + iana-if-type@2023-01-26.yang"; + } + import ietf-interfaces { + prefix if; + reference + "IETF RFC 8343"; + } + import ieee802-ethernet-phy-type { + prefix ieee802-phy; + reference + "IEEE Std 802.3-2022"; + } + + organization + "IEEE Std 802.3 Ethernet Working Group + Web URL: http://www.ieee802.org/3/"; + contact + "Web URL: http://www.ieee802.org/3/"; + description + "This module contains YANG definitions for configuring IEEE Std + 802.3 Ethernet Interfaces. + In this YANG module, 'Ethernet interface' can be interpreted + as referring to 'IEEE Std 802.3 compliant Ethernet + interfaces'."; + + revision 2025-09-10 { + description + "Updates under IEEE Std 802.3.2-2025"; + reference + "IEEE Std 802.3-2022 and IEEE Std 802.3.1-2024, unless dated + explicitly"; + } + + feature ethernet-pfc { + description + "This device supports Ethernet priority flow control."; + } + + feature ethernet-pause { + description + "This device supports Ethernet PAUSE."; + } + + typedef eth-if-speed-type { + type decimal64 { + fraction-digits 3; + } + units "Gb/s"; + status obsolete; + description + "Used to represent the configured, negotiated, or actual + speed of an Ethernet interface in Gigabits per second + (Gb/s), accurate to 3 decimal places (i.e., accurate to + 1 Mb/s)."; + } + + typedef duplex-type { + type enumeration { + enum full { + description + "Full duplex."; + } + enum half { + description + "Half duplex."; + } + enum unknown { + description + "Link is currently disconnected or initializing."; + } + } + default "full"; + description + "Used to represent the configured, negotiated, or actual + duplex mode of an Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.1.1.32, aDuplexStatus"; + } + + typedef pause-fc-direction-type { + type enumeration { + enum disabled { + description + "Flow control disabled in both ingress and egress + directions."; + } + enum ingress-only { + description + "PAUSE frame-based flow control is enabled in the ingress + direction only."; + } + enum egress-only { + description + "PAUSE frame-based flow control is enabled in the egress + direction only."; + } + enum bi-directional { + description + "PAUSE frame-based flow control is enabled in both + ingress and egress directions."; + } + enum undefined { + description + "Link is currently disconnected or initializing."; + } + } + description + "Used to represent the configured, negotiated, or actual + PAUSE frame-based flow control setting."; + reference + "IEEE Std 802.3.1, dot3PauseAdminMode and dot3PauseOperMode"; + } + + augment "/if:interfaces/if:interface" { + when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd')" { + description + "Applies to all Ethernet interfaces."; + } + description + "Augment interface model with Ethernet interface + specific configuration nodes."; + container ethernet { + description + "Contains all Ethernet interface related configuration."; + container auto-negotiation { + presence "The presence of this container indicates that + auto-negotiation is supported on this Ethernet + interface."; + description + "Contains auto-negotiation transmission parameters. + + This container contains a data node that allows the + advertised duplex value in the negotiation to be + restricted. + + If not specified then the default behavior for the + duplex data node is to negotiate all available values for + the particular type of Ethernet PHY associated with the + interface."; + reference + "IEEE Std 802.3, Clause 28 and Annexes 28A-D"; + leaf enable { + type boolean; + default "true"; + description + "Controls whether auto-negotiation is enabled or + disabled. + For interface types that support auto-negotiation then + it defaults to being enabled. + + For interface types that do not support + auto-negotiation, the related configuration data is + ignored."; + } + leaf negotiation-status { + when "../enable = 'true'"; + type enumeration { + enum in-progress { + description + "The auto-negotiation protocol is running and + negotiation is currently in-progress."; + } + enum complete { + description + "The auto-negotiation protocol has completed + successfully."; + } + enum failed { + description + "The auto-negotiation protocol has failed."; + } + enum unknown { + description + "The auto-negotiation status is not currently known, + this could be because it is still negotiating or the + protocol cannot run + (e.g., if no medium is present)."; + } + enum no-negotiation { + description + "No auto-negotiation is executed. + The auto-negotiation function is either not + supported on this interface or has not been + enabled."; + } + } + config false; + description + "The status of the auto-negotiation protocol."; + reference + "IEEE 802.3, 30.6.1.1.4, aAutoNegAutoConfig"; + } + } + leaf phy-type { + type identityref { + base ieee802-phy:phy-type; + } + config false; + description + "A value that uniquely identifies the IEEE 802.3 PHY type + of the interface."; + reference + "IEEE Std 802.3, 30.3.2.1.2 aPhyType"; + } + leaf pmd-type { + type identityref { + base ieee802-phy:pmd-type; + } + config false; + description + "A value that uniquely identifies the IEEE 802.3 PMD type + of the interface."; + reference + "IEEE Std 802.3, 30.5.1.1.2 aMAUType"; + } + leaf duplex { + type duplex-type; + description + "Operational duplex mode of the Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.1.1.32 aDuplexStatus"; + } + leaf speed { + type eth-if-speed-type; + units "Gb/s"; + status obsolete; + description + "Operational speed (data rate) of the Ethernet interface. + The default value is implementation dependent. + Superseded by speed in /if:interfaces/if:interface"; + } + /* deprecated flow-control container */ + container flow-control { + status deprecated; + description + "Holds the different types of Ethernet PAUSE frame-based + flow control that can be enabled. + Superseded by new container - pause."; + container pause { + if-feature "ethernet-pause"; + description + "IEEE Std 802.3 PAUSE frame-based flow control."; + reference + "IEEE Std 802.3, Annex 31B"; + leaf direction { + type pause-fc-direction-type; + description + "Indicates which direction PAUSE frame-based flow + control is enabled in, or whether it is disabled. + The default flow-control settings are vendor + specific. If auto-negotiation is enabled, then PAUSE + based flow control is negotiated by default. + The default value is implementation dependent."; + } + container statistics { + config false; + description + "Contains the number of PAUSE frames received or + transmitted. + + Discontinuities in the values of counters in + this container can occur at re-initialization of + the management system, and at other times as + indicated by the value of the 'discontinuity-time' + leaf defined in the ietf-interfaces YANG module + (IETF RFC 8343)."; + leaf in-frames-pause { + type yang:counter64; + units "frames"; + description + "A count of PAUSE MAC Control frames transmitted on + this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.4.3 + aPAUSEMACCtrlFramesReceived"; + } + leaf out-frames-pause { + type yang:counter64; + units "frames"; + description + "A count of PAUSE MAC Control frames transmitted on + this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.4.2 + aPAUSEMACCtrlFramesTransmitted"; + } + } + } + container pfc { + if-feature "ethernet-pfc"; + description + "IEEE Std 802.3 Priority-based flow control."; + reference + "IEEE Std 802.3, Annex 31D"; + leaf enable { + type boolean; + description + "True indicates that IEEE Std 802.3 priority-based + flow control is enabled, false indicates that + IEEE Std 802.3 priority-based flow control is + disabled. For interfaces that have auto-negotiation, + the priority-based flow control is enabled by + default."; + } + container statistics { + config false; + status deprecated; + description + "This container collects all statistics for + Ethernet interfaces. + + Discontinuities in the values of counters in + this container can occur at re-initialization of + the management system, and at other times as + indicated by the value of the 'discontinuity-time' + leaf defined in the ietf-interfaces YANG module + (IETF RFC 8343)."; + leaf in-frames-pfc { + type yang:counter64; + units "frames"; + description + "Deprecated in-frames-pfc as not defined in base + standard. A count of PFC MAC Control frames + received on this Ethernet interface."; + reference + "IEEE Std 802.3.1, dot3HCInPFCFrames"; + } + leaf out-frames-pfc { + type yang:counter64; + units "frames"; + description + "Deprecated out-frames-pfc as not defined in base + standard. A count of PFC MAC Control frames + transmitted on this interface."; + reference + "IEEE Std 802.3.1, dot3HCInPFCFrames"; + } + } + } + leaf force-flow-control { + type boolean; + default "false"; + description + "Explicitly forces the local PAUSE frame-based flow + control settings regardless of what has been + negotiated. + + Since the auto-negotiation of flow control settings + does not allow all sane combinations to be negotiated + (e.g., consider a device that is only capable of + sending PAUSE frames connected to a peer device that + is only capable of receiving and acting on PAUSE + frames) and failing to agree on the flow control + settings does not cause the auto-negotiation to fail + completely, then it is sometimes useful to be able to + explicitly enable particular PAUSE frame-based flow + control settings on the local device regardless of + what is being advertised or negotiated."; + reference + "IEEE Std 802.3, Table 28B-3"; + } + } + leaf max-frame-length { + type uint16; + units "octets"; + config false; + description + "This indicates the MAC frame length (including FCS bytes) + at which frames are dropped for being too long."; + reference + "IEEE Std 802.3, 30.3.1.1.37 aMaxFrameLength"; + } + leaf mac-control-extension-control { + type boolean; + config false; + description + "A value that identifies the current EXTENSION + MAC Control function, as specified in + IEEE Std 802.3, Annex 31C."; + reference + "IEEE Std 802.3, 30.3.8.3 aEXTENSIONMACCtrlStatus + IEEE Std 802.3.1, dot3ExtensionMacCtrlStatus "; + } + leaf frame-limit-slow-protocol { + type uint64; + units "f/s"; + default "10"; + config false; + description + "The maximum number of Slow Protocol frames of a given + subtype that can be transmitted in a one second + interval. + The default value is 10."; + reference + "IEEE Std 802.3, 30.3.1.1.38 aSlowProtocolFrameLimit"; + } + container capabilities { + config false; + description + "Contains all Ethernet interface specific capabilities."; + leaf auto-negotiation { + type boolean; + description + "Indicates whether auto-negotiation may be configured on + this interface."; + } + } + container ethernet-pause { + if-feature "ethernet-pause"; + description + "IEEE Std 802.3 PAUSE flow control. + + Discontinuities in the values of counters in + this container can occur at re-initialization of + the management system, and at other times as + indicated by the value of the 'discontinuity-time' + leaf defined in the ietf-interfaces YANG module + (IETF RFC 8343)."; + reference + "IEEE Std 802.3, 30.3.4 PAUSE entity managed object class + and Clause 31, Annex 31B)"; + container control-and-status { + description + "PAUSE function control and status objects."; + leaf pause-admin-control { + type pause-fc-direction-type; + default "disabled"; + description + "What PAUSE functionality will run on this interface + when Auto-Negotiation is not implemented + or disabled."; + reference + "IEEE Std 802.3.1, dot3PauseAdminMode"; + } + leaf pause-oper-status { + type pause-fc-direction-type; + config false; + description + "What PAUSE functionality is running on this + interface, as a result of Auto-Negotiation or + setting pause-admin-control."; + reference + "IEEE Std 802.3.1, dot3PauseOperMode"; + } + leaf link-delay-allowance { + type uint32; + description + "The value in bit-times of the allowance made by the + MAC Control PAUSE entity for round-trip propagation + delay. + The default value is implementation dependent."; + } + leaf pfc-enable-status { + type boolean; + config false; + description + "Is IEEE 802.1 Priority-based Flow Control (PFC) + enabled on the interface. If PFC is enabled, then + 802.3 PAUSE flow control is disabled."; + reference + "IEEE Std 802.3, 30.3.3.6 aPFCEnableStatus"; + } + } + container statistics { + config false; + description + "PAUSE frame counters."; + leaf in-frames-pause { + type yang:counter64; + units "frames"; + description + "A count of MAC Control PAUSE frames transmitted on + this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.4.3 + aPAUSEMACCtrlFramesReceived"; + } + leaf out-frames-pause { + type yang:counter64; + units "frames"; + description + "A count of MAC Control PAUSE frames transmitted on + this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.4.2 + aPAUSEMACCtrlFramesTransmitted"; + } + } + } + container statistics { + config false; + description + "Contains statistics specific to Ethernet interfaces. + + Discontinuities in the values of counters in the + container can occur at re-initialization of the + management system, and at other times as indicated by + the value of the 'discontinuity-time' leaf defined in + the ietf-interfaces YANG module (IETF RFC 8343)."; + container frame { + description + "Contains frame statistics specific to Ethernet + interfaces. + + All octet frame lengths include the 4-byte FCS. + + Error counters are only reported once. The count + represented by an instance of this object is + incremented when the frameCheckError status is + returned by the MAC service to the MAC Client. + Received frames for which multiple error conditions + pertain are, according to the conventions of + IEEE Std 802.3 Layer Management, counted exclusively + according to the error status presented to the MAC + Client. + + A frame that is counted by an instance of this object + is also counted by the corresponding instance of + 'in-errors' leaf defined in the ietf-interfaces YANG + module (IETF RFC 8343)."; + leaf in-total-frames { + type yang:counter64; + units "frames"; + description + "The total number of frames (including bad frames) + received on the Ethernet interface. + + This counter is calculated by summing the following + IEEE Std 802.3, Clause 30 counters: + aFramesReceivedOK + + aFrameCheckSequenceErrors + + aAlignmentErrors + + aFrameTooLongErrors + + aFramesLostDueToIntMACRcvError"; + reference + "IEEE Std 802.3, Clause 30 counters, as specified + in the description above."; + } + leaf in-total-octets { + type yang:counter64; + units "octets"; + description + "The total number of octets of data (including those + in bad frames) received on the Ethernet interface. + + Includes the 4-octet FCS."; + reference + "IETF RFC 2819, etherStatsOctets"; + } + leaf in-frames { + type yang:counter64; + units "frames"; + description + "A count of frames (including unicast, multicast, and + broadcast) that have been successfully received on + the Ethernet interface. + + This count does not include frames received with + frame-too-long, FCS, length, or alignment errors, or + frames lost due to internal MAC sublayer error."; + reference + "IEEE Std 802.3, 30.3.1.1.5 aFramesReceivedOK"; + } + leaf in-multicast-frames { + type yang:counter64; + units "frames"; + description + "A count of multicast frames that have been + successfully received on the Ethernet interface. + + This counter represents a subset of the frames + counted by in-frames. + + This count does not include frames received with + frame-too-long, FCS, length, or alignment errors, or + frames lost due to internal MAC sublayer error."; + reference + "IEEE Std 802.3, 30.3.1.1.21 + aMulticastFramesReceivedOK"; + } + leaf in-broadcast-frames { + type yang:counter64; + units "frames"; + description + "A count of broadcast frames that have been + successfully received on the Ethernet interface. + + This counter represents a subset of the frames + counted by in-frames. + + This count does not include frames received with + frame-too-long, FCS, length, or alignment errors, or + frames lost due to internal MAC sublayer error."; + reference + "IEEE Std 802.3, 30.3.1.1.22 + aBroadcastFramesReceivedOK"; + } + leaf in-error-fcs-frames { + type yang:counter64; + units "frames"; + description + "A count of receive frames that are of valid length, + but do not pass the FCS check, regardless of whether + or not the frames are an integral number of octets + in length. + + This counter is calculated by summing the following + counters: + aFrameCheckSequenceErrors + + aAlignmentErrors"; + reference + "IEEE Std 802.3, 30.3.1.1.6 aFrameCheckSequenceErrors; + IEEE Std 802.3, 30.3.1.1.7 aAlignmentErrors"; + } + leaf in-error-undersize-frames { + type yang:counter64; + units "frames"; + status deprecated; + description + "Deprecated in-error-undersize-frames as not defined + in base standard. A count of frames received on a + particular Ethernet interface that are less than + 64 bytes in length, and are discarded. + + This counter is incremented regardless of whether + the frame passes the FCS check."; + reference + "IETF RFC 2819, etherStatsUndersizePkts and + etherStatsFragments"; + } + leaf in-error-oversize-frames { + type yang:counter64; + units "frames"; + description + "A count of frames received on a particular Ethernet + interface that exceed the maximum permitted frame + size, that is specified in max-frame-length, and are + discarded. + + This counter is incremented regardless of whether + the frame passes the FCS check."; + reference + "IEEE Std 802.3, 30.3.1.1.25 + aFrameTooLongErrors"; + } + leaf in-error-mac-internal-frames { + type yang:counter64; + units "frames"; + description + "A count of frames for which reception on a + particular Ethernet interface fails due to an + internal MAC sublayer receive error. + + A frame is only counted by an instance of this + object if it is not counted by the corresponding + instance of either the in-error-fcs-frames, + in-error-undersize-frames, or + in-error-oversize-frames. The precise meaning of + the count represented by an instance of this object + is implementation-specific. + + In particular, an instance of this object may + represent a count of receive errors on a particular + Ethernet interface that are not otherwise counted."; + reference + "IEEE Std 802.3, 30.3.1.1.15 + aFramesLostDueToIntMACRcvError"; + } + leaf out-frames { + type yang:counter64; + units "frames"; + description + "A count of frames (including unicast, multicast, and + broadcast) that have been successfully transmitted + on the Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.1.1.2 aFramesTransmittedOK"; + } + leaf out-multicast-frames { + type yang:counter64; + units "frames"; + description + "A count of multicast frames that have been + successfully transmitted on the Ethernet interface. + + This counter represents a subset of the frames + counted by out-frames."; + reference + "IEEE Std 802.3, 30.3.1.1.18 + aMulticastFramesXmittedOK"; + } + leaf out-broadcast-frames { + type yang:counter64; + units "frames"; + description + "A count of broadcast frames that have been + successfully transmitted on the Ethernet interface. + + This counter represents a subset of the frames + counted by out-frames."; + reference + "IEEE Std 802.3, 30.3.1.1.19 + aBroadcastFramesXmittedOK"; + } + leaf out-error-mac-internal-frames { + type yang:counter64; + units "frames"; + description + "A count of frames for which transmission on a + particular Ethernet interface fails due to an + internal MAC sublayer transmit error. + + The precise meaning of the count represented by an + instance of this object is implementation-specific. + In particular, an instance of this object may + represent a count of transmission errors on a + particular Ethernet interface that are not otherwise + counted."; + reference + "IEEE Std 802.3, 30.3.1.1.12 + aFramesLostDueToIntMACXmitError"; + } + } + container phy { + description + "Ethernet statistics related to the PHY layer."; + leaf in-error-symbol { + type yang:counter64; + units "errors"; + description + "A count of the number of symbol errors that have + occurred. + + For the precise definition of when the symbol error + counter is incremented, please see the 'description' + text associated with aSymbolErrorDuringCarrier, + specified in IEEE Std 802.3, 30.3.2.1.5."; + reference + "IEEE Std 802.3, 30.3.2.1.5 + aSymbolErrorDuringCarrier"; + } + container lpi { + description + "Physical Ethernet statistics for the energy + efficiency related low power idle indications."; + leaf in-lpi-transitions { + type yang:counter64; + units "transitions"; + description + "The number of times the link partner transitioned to + Low Power Idle. + This counter has a maximum per second increment rate + of: + 50 thousand for 100 Mb/s; + 90 thousand for 1000 Mb/s + 230 thousand for 10 Gb/s."; + reference + "IEEE Std 802.3, 30.3.2.1.11 + aReceiveLPITransitions"; + } + leaf in-lpi-time { + type decimal64 { + fraction-digits 6; + } + units "seconds"; + description + "The amount of time the link partner has + been in Low Power Idle."; + reference + "IEEE Std 802.3, 30.3.2.1.9 + aReceiveLPIMicroseconds"; + } + leaf out-lpi-transitions { + type yang:counter64; + units "transitions"; + description + "The number of times this port transitioned to + Low Power Idle. + This counter has a maximum per second increment rate + of: + 50 thousand for 100 Mb/s; + 90 thousand for 1000 Mb/s + 230 thousand for 10 Gb/s."; + reference + "IEEE Std 802.3, 30.3.2.1.10 + aTransmitLPITransitions"; + } + leaf out-lpi-time { + type decimal64 { + fraction-digits 6; + } + units "seconds"; + description + "The amount of time in this port has + been in Low Power Idle."; + reference + "IEEE Std 802.3, 30.3.2.1.8 + aTransmitLPIMicroseconds"; + } + } + } + container mac-control { + description + "A group of statistics specific to MAC Control + operation of selected Ethernet interfaces."; + reference + "IEEE Std 802.3.1, dot3ExtensionTable"; + leaf in-frames-mac-control-unknown { + type yang:counter64; + units "frames"; + description + "A count of MAC Control frames with an unsupported + opcode received on this Ethernet interface. + + Frames counted against this counter are also counted + against in-discards defined in the ietf-interfaces + YANG module (IETF RFC 8343)."; + reference + "IEEE Std 802.3, 30.3.3.5 + aUnsupportedOpcodesReceived"; + } + leaf in-frames-mac-control-extension { + type yang:counter64; + units "frames"; + description + "The count of Extension MAC Control frames received + on this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.8.2 + aEXTENSIONMACCtrlFramesReceived"; + } + leaf out-frames-mac-control-extension { + type yang:counter64; + units "frames"; + description + "The count of Extension MAC Control frames + transmitted on this Ethernet interface."; + reference + "IEEE Std 802.3, 30.3.8.1 + aEXTENSIONMACCtrlFramesTransmitted"; + } + } + } + } + } +} diff --git a/standard/ieee/published/802.3/ieee802-ethernet-link-oam.yang b/standard/ieee/published/802.3/ieee802-ethernet-link-oam.yang index 97bf1f524..330f4bc7b 100755 --- a/standard/ieee/published/802.3/ieee802-ethernet-link-oam.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-link-oam.yang @@ -1,1101 +1,1146 @@ -module ieee802-ethernet-link-oam { - - yang-version 1.1; - - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-link-oam"; - - prefix "ieee802-link-oam"; - - import ietf-yang-types { - prefix yang; - reference "IETF RFC 6991"; - } - - import iana-if-type { - prefix ianaift; - reference "http://www.iana.org/assignments/yang-parameters/ - iana-if-type@2018-07-03.yang"; - } - - import ietf-interfaces { - prefix if; - reference "IETF RFC 8343"; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - contact - "Web URL: http://www.ieee802.org/3/"; - - description - "This module contains a collection of YANG definitions - for managing the Ethernet Link OAM feature defined by IEEE - 802.3. It provides functionality roughly equivalent to that of - the DOT3-OAM-MIB defined in IETF RFC 4878."; - - revision 2019-06-21{ - description "Initial revision."; - reference "IEEE Std 802.3-2018, unless dated explicitly"; - } - - feature uni-directional-link-fault { - description - "This feature means the device supports Uni Directional Link - Fault detection."; - reference - "IEEE Std 802.3, 57.1.2:a, 30.3.6.1.6 aOAMLocalConfiguration and - 30.3.6.1.7 aOAMRemoteConfiguration"; - } - feature remote-loopback-initiate { - description - "This feature means the device supports being the initiator - of remote loopback."; - reference - "IEEE Std 802.3, 57.1.2:b, 30.3.6.1.6 aOAMLocalConfiguration"; - } - feature remote-loopback-respond { - description - "This feature means the device supports responding to remote - loopback control OAMPDUs received from the peer"; - reference - "IEEE Std 802.3, 57.1.2:b, 30.3.6.1.7 aOAMRemoteConfiguration"; - } - feature link-monitoring-local { - description - "This feature means the device monitors the link at the local - side and can generate Link Event OAMPDUs to the peer device."; - reference - "IEEE Std 802.3, 57.1.2:c:1, 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - feature link-monitoring-remote { - description - "This feature means the device can process Link Event OAMPDUs - received from the peer device and report itself about this - event on its own management interface."; - reference - "IEEE Std 802.3, 57.1.2:c:1, 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - feature remote-mib-retrieval-initiate { - description - "This feature means the device supports data retrieval from - the peer device. I.e. the device can send Variable Requests - OAMPDUs to the peer side and process the received Variable - Response OAMPDUs."; - reference - "IEEE Std 802.3, 57.1.2:c:2, 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - feature remote-mib-retrieval-respond { - description - "This feature means the device allows the peer device to - retrieve data from the managed device. I.e. the device can - process received Variable Requests OAMPDUs and respond with - Variable Response OAMPDUs."; - reference - "IEEE Std 802.3, 57.1.2:c:2, 30.3.6.1.6 aOAMLocalConfiguration, - and 30.3.6.1.7 aOAMRemoteConfiguration"; - } - typedef threshold-event-enum { - type enumeration { - enum symbol-period-event { - value 1; - description - "Errored symbol period event."; - } - enum frame-period-event { - value 2; - description - "Errored frame period event."; - } - enum frame-event { - value 3; - description - "Errored frame event"; - } - enum frame-seconds-event { - value 4; - description - "Errored frame seconds event."; - } - } - description - "Enumeration of the valid threshold event types."; - reference - "IEEE Std 802.3, 57.5.3"; - } - - identity event-type { - description - "Base identity for all Link OAM event types."; - } - identity threshold-event-type { - base event-type; - description - "Event type for a Link Monitoring threshold event."; - } - identity link-fault-event { - base event-type; - if-feature "uni-directional-link-fault"; - description - "Event type for a uni-directional link fault event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - identity dying-gasp-event { - base event-type; - description - "Event type for a dying gasp event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - identity critical-event { - base event-type; - description - "Event type for a critical event."; - reference - "IEEE Std 802.3, 57.2.10.1"; - } - - typedef mode { - type enumeration { - enum passive { - value 0; - description - "Ethernet Link OAM Passive mode."; - } - enum active { - value 1; - description - "Ethernet Link OAM Active mode."; - } - } - description - "Enumeration of the valid modes in which Link OAM may run."; - reference - "IEEE Std 802.3, 57.2.9 and 30.3.6.1.3."; - } - - typedef event-location { - type enumeration { - enum event-location-local { - value 1; - description - "A local event."; - } - enum event-location-remote { - value 2; - description - "A remote event."; - } - } - description - "The location of the event that caused a log entry."; - } - - typedef loopback-status{ - type enumeration { - enum none { - value 1; - description - "Loopback is not being performed."; - } - enum initiating { - value 2; - description - "Initiating master loopback."; - } - enum master-loopback { - value 3; - description - "In master loopback mode."; - } - enum terminating { - value 4; - description - "Terminating master loopback mode."; - } - enum local-loopback { - value 5; - description - "In slave loopback mode."; - } - enum unknown { - value 6; - description - "Parser and multiplexer combination unexpected."; - } - } - description - "The loopback mode of an OAM interface."; - reference - "IEEE Std 802.3, 57.2.11"; - } - typedef operational-state { - type enumeration { - enum disabled { - value 1; - description - "IEEE Std 802.3 OAM is disabled."; - } - enum link-fault { - value 2; - description - "IEEE Std 802.3 OAM has encountered a link fault."; - } - enum passive-wait { - value 3; - description - "Passive OAM entity waiting to see if peer is - OAM capable."; - } - enum active-send-local { - value 4; - description - "Active OAM entity trying to determine if peer - is OAM capable."; - } - enum send-local-and-remote { - value 5; - description - "OAM discovered peer but still to accept or - reject peer configuration."; - } - enum send-local-and-remote-ok { - value 6; - description - "OAM peering is allowed by local device."; - } - enum peering-locally-rejected { - value 7; - description - "OAM peering rejected by local device."; - } - enum peering-remotely-rejected { - value 8; - description - "OAM peering rejected by remote device."; - } - enum operational { - value 9; - description - "IEEE Std 802.3 OAM is operational."; - } - enum operational-half-duplex { - value 10; - description - "IEEE Std 802.3 OAM is operating in half-duplex mode."; - } - } - description - "Operational state of an interface."; - reference - "IETF RFC 4878, dot3OamOperStatus; IEEE Std 802.3, 30.3.6.1.4, - 30.3.6.1.10, and 30.3.6.1.11"; - } - - typedef vendor-oui { - type string { - length 6; - } - description - "24-bit Organizationally Unique Identifier."; - reference - "IEEE Std 802-2014, Clause 9"; - } - - typedef admin-state { - type enumeration { - enum enabled { - value 1; - description - "IEEE Std 802.3, Clause 57 OAM is in the - enabled admin state."; - } - enum disabled { - value 2; - description - "IEEE Std 802.3, Clause 57 OAM is in the - disabled admin state."; - } - } - description - "Admin state of the OAM function on an interface."; - reference - "IEEE Std 802.3, 30.3.6.1.2 and 30.3.6.2"; - } - - grouping event-details { - description - "Nodes describing an event, used in the event log and in - notifications."; - reference - "IETF RFC 4878, Dot3OamEventLogEntry"; - leaf oui { - type vendor-oui; - mandatory true; - description - "Organizationally Unique Identifier for the device that - generated the event."; - } - leaf timestamp { - type uint64; - units "milliseconds"; - mandatory true; - description - "Timestamp in milliseconds since Unix epoch for when the - event occurred."; - } - leaf location { - type event-location; - mandatory true; - description - "Where the event occurred (local or remote)."; - } - leaf event-type { - type identityref { - base event-type; - } - mandatory true; - description - "Type of event that occurred."; - reference - "IEEE Std 802.3, 30.3.6.1.10 and 30.3.6.11"; - } - leaf running-total { - type yang:counter64; - mandatory true; - description - "The running total number of errors seen since OAM was - enabled on the interface. For threshold events, this is the - total number of times that particular type of error (e.g. - symbol error) has occurred, which may be greater than the - number of threshold-crossing event notifications of that - type generated during that time (which is conveyed by the - event-total leaf)."; - } - leaf event-total { - type yang:counter64; - mandatory true; - description - "Total number of times this event has occurred since OAM was - enabled on the interface. For threshold events this is the - number of events generated of this type (as opposed to the - total number of errors of that type, which may be greater, - and is conveyed by the running-total leaf."; - } - } - - grouping threshold-event-details { - description - "Nodes describing a threshold event, used in the event - log and in notifications"; - reference - "IETF RFC 4878, Dot3OamEventLogEntry"; - - container threshold { - when "../event-type = 'threshold-event-type'" { - description - "These nodes only apply to threshold event types"; - } - if-feature "link-monitoring-local or - link-monitoring-remote"; - description - "Nodes specific to threshold (link monitoring) events"; - - leaf threshold-event-type { - type threshold-event-enum; - mandatory true; - description - "The type of threshold event"; - reference - "IEEE Std 802.3, 57.5.3"; - } - leaf window { - type uint64; - mandatory true; - description - "Size of the window in which the event was generated. - Units are dependent on the threshold event type."; - } - leaf threshold { - type uint64; - mandatory true; - description - "Size of the threshold that was breached during the - window. Units are dependent on the threshold - event type."; - } - leaf value { - type uint64; - mandatory true; - description - "Breaching value. Units are dependent on the - threshold event type, and match that - of the threshold."; - } - } - } - - grouping statistics-common { - description - "Collection of Link OAM event/packet counters."; - reference - "IETF RFC 4878, Dot3OamStatsEntry"; - - leaf out-information { - type yang:counter64; - mandatory true; - description - "Number of information OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.20"; - } - leaf in-information { - type yang:counter64; - mandatory true; - description - "Number of information OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.21"; - } - leaf out-unique-event-notification { - if-feature "link-monitoring-local"; - type yang:counter64; - mandatory true; - description - "Number of unique event notification OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.22"; - } - leaf in-unique-event-notification { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of unique event notification OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.24"; - } - leaf out-duplicate-event-notification { - if-feature "link-monitoring-local"; - type yang:counter64; - mandatory true; - description - "Number of duplicate event notification OAMPDUs - transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.23"; - } - leaf in-duplicate-event-notification { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of duplicate event notification OAMPDUs - received."; - reference - "IEEE Std 802.3, 30.3.6.1.25"; - } - leaf out-loopback-control { - if-feature "remote-loopback-initiate"; - type yang:counter64; - mandatory true; - description - "Number of loopback control OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.26"; - } - leaf in-loopback-control { - if-feature "remote-loopback-respond"; - type yang:counter64; - mandatory true; - description - "Number of loopback control OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.27"; - } - leaf out-variable-request { - if-feature "remote-mib-retrieval-initiate"; - type yang:counter64; - mandatory true; - description - "Number of variable request OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.28"; - } - leaf in-variable-request { - if-feature "remote-mib-retrieval-respond"; - type yang:counter64; - mandatory true; - description - "Number of variable request OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.29"; - } - leaf out-variable-response { - if-feature "remote-mib-retrieval-respond"; - type yang:counter64; - mandatory true; - description - "Number of variable response OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.30"; - } - leaf in-variable-response { - if-feature "remote-mib-retrieval-initiate"; - type yang:counter64; - mandatory true; - description - "Number of variable response OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.31"; - } - leaf out-org-specific { - type yang:counter64; - mandatory true; - description - "Number of organization specific OAMPDUs transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.32"; - } - leaf in-org-specific { - type yang:counter64; - mandatory true; - description - "Number of organization specific OAMPDUs received."; - reference - "IEEE Std 802.3, 30.3.6.1.33"; - } - leaf out-unsupported-codes { - type yang:counter64; - mandatory true; - description - "Number of OAMPDUs with unsupported codes transmitted."; - reference - "IEEE Std 802.3, 30.3.6.1.18"; - } - leaf in-unsupported-codes { - type yang:counter64; - mandatory true; - description - "Number of OAMPDUs with unsupported codes received."; - reference - "IEEE Std 802.3, 30.3.6.1.19"; - } - leaf frames-lost-due-to-oam { - type yang:counter64; - mandatory true; - description - "A count of the number of frames that were dropped by the OAM - multiplexer. Since the OAM multiplexer has multiple inputs - and a single output, there may be cases where frames are - dropped due to transmit resource contention. This counter - is incremented whenever a frame is dropped by the OAM - layer."; - reference - "IEEE Std 802.3, 30.3.6.1.46"; - } - } - - grouping discovery-remote { - description - "Nodes describing the discovery process remote end of a link."; - leaf mode { - type mode; - description - "Mode (passive/active)."; - reference - "IEEE Std 802.3, 30.3.6.1.3"; - } - container functions-supported { - description - "The Link OAM functions supported by this interface."; - reference - "IEEE Std 802.3, 30.3.6.1.7"; - leaf uni-directional-link-fault { - type boolean; - description - "Unidirectional link fault support."; - } - leaf loopback { - type boolean; - description - "Remote Loopback support."; - } - leaf link-monitoring { - type boolean; - description - "Link monitoring support."; - } - leaf mib-retrieval { - type boolean; - description - "MIB variable retrieval support."; - } - } - leaf revision { - type uint64; - config false; - description "Configuration revision."; - reference - "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; - } - leaf oammtu { - type uint16; - units octets; - config false; - description "The maximum OAMPDU size."; - reference - "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; - } - } - - grouping discovery-local { - description - "Nodes describing the local end discovery process of a link."; - leaf mode { - type mode; - description - "Mode (passive/active) - The default value is implementation-dependent."; - reference - "IEEE Std 802.3, 30.3.6.1.3"; - } - container functions-supported { - description - "The Link OAM functions supported by this interface."; - reference - "IEEE Std 802.3, 30.3.6.1.7"; - leaf uni-directional-link-fault { - if-feature "uni-directional-link-fault"; - type boolean; - description - "Unidirectional link fault support. - This affects the setting of the 'Unidirectional Support' - bit in the OAM configuration field put in the - Information OAMPDU. - This bit indicates to the peer device that it can send - OAM PDUs on links that are operating in unidirectional - mode (traffic flowing in one direction only)."; - } - leaf loopback { - if-feature "remote-loopback-initiate"; - type boolean; - default true; - description - "Remote Loopback support."; - } - container link-monitor { - if-feature "link-monitoring-remote or - link-monitoring-local"; - description - "Configure link monitor parameters."; - reference - "IEEE Std 802.3, 57.1.2:c"; - - leaf link-monitoring { - type boolean; - default true; - description - "Enable or disable monitoring. - This affects the setting of the 'Link Events' bit in the - OAM configuration field put in the Information OAMPDU. - This bit indicates to the peer device that the OAM - entity can send and receive Event Notification OAMPDUs."; - } - - list event-type { - if-feature "link-monitoring-local"; - key threshold-type; - description - "A list containing at most one entry for each of the - threshold event types. If there is no entry for a - particular event type, the default values are used for - both window size and threshold."; - leaf threshold-type { - type threshold-event-enum; - description - "The type of threshold event for which this list entry - is specifying the configuration."; - reference - "IEEE Std 802.3, 57.5.3"; - } - - leaf window { - type uint64; - description - "The size of the window to use when monitoring for - this threshold event. The units, default and upper - and lower bounds depend on the threshold type as - follows: - - Symbol Period: - Units: number of symbols - Default: number of symbols in one second for the - underlying physical layer - Min: number of symbols in one second for the - underlying physical layer - Max: number of symbols in one minute for the - underlying physical layer - - Frame: - Units: deciseconds - Default: 1 second - Min: 1 second - Max: 1 minute - - Frame Period: - Units: number of frames - Default: number of minFrameSize frames in one - second for the underlying physical layer - Min: number of minFrameSize frames in one - second for the underlying physical layer - Max: number of minFrameSize frames in one - minute for the underlying physical layer - - Frame Seconds: - Units: deciseconds - Default: 60 seconds - Min: 10 seconds - Max: 900 seconds"; - reference - "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, - and 30.3.6.1.40"; - } - - leaf threshold { - type uint64 { - range "1..max"; - } - default 1; - description - "The threshold value to use when determining whether to - generate an event given the number of errors that - occurred in a given window. The units depend on the - threshold type as follows: - - Symbol Period: number of errored symbols - Frame: number of errored frames - Frame Period: number of errored frames - Frame Seconds: number of seconds containing at least - 1 frame error"; - reference - "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, - and 30.3.6.1.40"; - } - } - } - - leaf mib-retrieval { - if-feature "remote-mib-retrieval-initiate or - remote-mib-retrieval-respond"; - type boolean; - description - "MIB variable retrieval support. - This affects the setting of the 'Variable Retrieval' bit - in the OAM configuration field put in the Information - OAMPDU. This bit indicates to the peer device that the OAM - entity can send and receive Variable Request and Response - OAMPDUs."; - } - } - - leaf revision { - type uint64; - config false; - description - "Configuration revision."; - reference - "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; - } - leaf oammtu { - type uint16; - units octets; - config false; - description - "The maximum OAMPDU size."; - reference - "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; - } - } - - grouping discovery-info { - description - "Information relating to the discovery process."; - - container local { - description - "Properties of the local device."; - - leaf operational-status { - type operational-state; - config false; - mandatory true; - description - "Operational status."; - reference - "IETF RFC 4878, dot3OamOperStatus; IEEE Std 802.3, - 30.3.6.1.4, 30.3.6.1.10, and 30.3.6.1.11"; - } - leaf loopback-mode { - if-feature "remote-loopback-initiate or - remote-loopback-respond"; - type loopback-status; - config false; - mandatory true; - description - "The loopback mode the interface is in."; - reference - "IEEE Std 802.3, 30.3.6.1.14"; - } - uses discovery-local; - } - - container remote { - config false; - description - "Properties of the remote (peer) device."; - - leaf mac-address { - type yang:mac-address; - description - "Remote MAC address."; - reference - "IEEE Std 802.3, 30.3.6.1.5"; - } - leaf vendor-oui { - type vendor-oui; - description - "Remote vendor OUI."; - reference - "IEEE Std 802.3, 30.3.6.1.16"; - } - leaf vendor-info { - type uint64; - description - "Remote vendor info. The semantics of this value are - proprietary and specific to the vendor."; - reference - "IEEE Std 802.3, 30.3.6.1.17"; - } - leaf loopback-mode { - type loopback-status; - mandatory true; - description - "The loopback mode the interface is in."; - reference - "IEEE Std 802.3, 30.3.6.1.15"; - } - - uses discovery-remote; - } - } - - augment '/if:interfaces/if:interface' { - when - "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or - derived-from-or-self(if:type, 'ianaift:ptm') " { - description - "Augments the interface model with nodes - specific to Ethernet Link OAM."; - } - description - "Augments Ethernet interface model with nodes - specific to Ethernet Link OAM."; - - container link-oam { - presence - "Implies Link OAM is configured on the interface."; - description - "Interface operational state for Ethernet Link OAM."; - - leaf admin { - type admin-state; - default disabled; - description - "This object is used to provision the default - administrative OAM mode for this interface. This object - represents the desired state of OAM for this interface. - It starts in the disabled state until an explicit - management action or configuration information retained by - the system causes a transition to the enabled(1) state. - When enabled(1), Ethernet OAM will attempt to operate over - this interface. The default value is - implementation-dependent."; - } - - container discovery-info { - description - "Information relating to the discovery process."; - uses discovery-info; - } - - container event-log { - config false; - description - "List of Ethernet Link OAM event log entries on the - interface."; - - list event-log-entry { - key "index"; - description - "Ethernet Link OAM event log entry."; - leaf index { - type uint64; - description - "Index of this event in the event log."; - } - uses event-details; - uses threshold-event-details; - } - } - - container statistics { - config false; - description - "Statistics for an 802.3 OAM interface."; - - uses statistics-common; - - leaf local-error-symbol-period-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error symbol period log entries."; - } - leaf local-error-frame-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame log entries."; - } - leaf local-error-frame-period-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame period log entries."; - } - leaf local-error-frame-second-log-entries { - type yang:counter64; - mandatory true; - description - "Number of local error frame second log entries."; - } - leaf remote-error-symbol-period-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error symbol period log entries."; - } - leaf remote-error-frame-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame log entries."; - } - leaf remote-error-frame-period-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame period log entries."; - } - leaf remote-error-frame-second-log-entries { - if-feature "link-monitoring-remote"; - type yang:counter64; - mandatory true; - description - "Number of remote error frame second log entries."; - } - } - - action remote-loopback { - if-feature "remote-loopback-initiate"; - description - "Start/stop remote loopback on the specified interface."; - reference - "IEEE Std 802.3, 57.1.2:b"; - input { - leaf enable { - type boolean; - mandatory true; - description - "Whether to enable or disable remote loopback."; - } - } - output { - leaf success { - type boolean; - mandatory true; - description - "True if the operation was successful, - false otherwise."; - } - leaf error-message { - type string; - description - "If the operation failed, optionally used to - provide extra details."; - } - } - } - - action reset-stats { - description - "Reset Ethernet Link OAM statistics on this interface."; - output { - leaf success { - type boolean; - mandatory true; - description - "True if the operation was successful, - false otherwise."; - } - leaf error-message { - type string; - description - "If the operation failed, optionally used to provide - extra details."; - } - } - } - - notification non-threshold-event { - description - "This notification is sent when a local or remote - non-threshold crossing event is detected."; - uses event-details { - refine event-type { - must ". != 'threshold-event-type'" { - description - "This leaf is not set to - 'threshold-event-type'."; - } - } - } - } - - notification threshold-event { - if-feature "link-monitoring-local or - link-monitoring-remote"; - description - "This notification is sent when a local or remote - threshold crossing event is detected."; - uses event-details { - refine event-type { - must ". = 'threshold-event-type'" { - description - "This leaf is set to 'threshold-event-type'."; - } - } - } - uses threshold-event-details; - } - } - } -} \ No newline at end of file +module ieee802-ethernet-link-oam { + yang-version 1.1; + namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-link-oam"; + prefix ieee802-link-oam; + + import ieee802-types { + prefix ieee; + reference + "IEEE 802 types"; + } + import ietf-yang-types { + prefix yang; + reference + "IETF RFC 6991"; + } + import iana-if-type { + prefix ianaift; + reference + "http://www.iana.org/assignments/yang-parameters/ + iana-if-type@2023-01-26.yang"; + } + import ietf-interfaces { + prefix if; + reference + "IETF RFC 8343"; + } + + organization + "IEEE 802.3 Ethernet Working Group + Web URL: http://www.ieee802.org/3/"; + contact + "Web URL: http://www.ieee802.org/3/"; + description + "This module contains a collection of YANG definitions + for managing the Ethernet Link OAM feature defined by IEEE + 802.3. It provides functionality roughly equivalent to that of + the DOT3-OAM-MIB defined in IETF RFC 4878."; + + revision 2025-09-10 { + description + "Updates under IEEE Std 802.3.2-2025"; + reference + "IEEE Std 802.3-2022, unless dated explicitly"; + } + + feature uni-directional-link-fault { + description + "This feature means the device supports Uni Directional Link + Fault detection."; + reference + "IEEE Std 802.3, 57.1.2 a), 30.3.6.1.6 aOAMLocalConfiguration + and 30.3.6.1.7 aOAMRemoteConfiguration"; + } + + feature remote-loopback-initiate { + description + "This feature means the device supports being the initiator + of remote loopback."; + reference + "IEEE Std 802.3, 57.1.2 b), 30.3.6.1.6 + aOAMLocalConfiguration"; + } + + feature remote-loopback-respond { + description + "This feature means the device supports responding to remote + loopback control OAMPDUs received from the peer"; + reference + "IEEE Std 802.3, 57.1.2 b), 30.3.6.1.7 + aOAMRemoteConfiguration"; + } + + feature link-monitoring-local { + description + "This feature means the device monitors the link at the local + side and can generate Link Event OAMPDUs to the peer + device."; + reference + "IEEE Std 802.3, 57.1.2 c) 1), 30.3.6.1.6 + aOAMLocalConfiguration, and 30.3.6.1.7 + aOAMRemoteConfiguration"; + } + + feature link-monitoring-remote { + description + "This feature means the device can process Link Event OAMPDUs + received from the peer device and report itself about this + event on its own management interface."; + reference + "IEEE Std 802.3, 57.1.2 c) 1), + 30.3.6.1.6 aOAMLocalConfiguration, + and 30.3.6.1.7 aOAMRemoteConfiguration"; + } + + feature remote-mib-retrieval-initiate { + status deprecated; + description + "remote-mib-retrieval-initiate is deprecated and changed name + to feature remote-data-retrieval-initiate. This feature + means the device supports data retrieval from the peer + device. That is, the device can send Variable Request OAMPDUs + to the peer side and process the received Variable Response + OAMPDUs."; + reference + "IEEE Std 802.3, 57.1.2 c) 2), + 30.3.6.1.6 aOAMLocalConfiguration, + and 30.3.6.1.7 aOAMRemoteConfiguration"; + } + + feature remote-data-retrieval-initiate { + description + "This feature means the device supports data retrieval from + the peer device. That is, the device can send Variable + Request OAMPDUs to the peer side and process the received + Variable Response OAMPDUs."; + reference + "IEEE Std 802.3, 57.1.2 c) 2), + 30.3.6.1.6 aOAMLocalConfiguration, + and 30.3.6.1.7 aOAMRemoteConfiguration"; + } + + feature remote-mib-retrieval-respond { + description + "This feature means the device allows the peer device to + retrieve data from the managed device. That is, the device + can process received Variable Requests OAMPDUs and respond + with Variable Response OAMPDUs."; + reference + "IEEE Std 802.3, 57.1.2 c) 2), + 30.3.6.1.6 aOAMLocalConfiguration, + and 30.3.6.1.7 aOAMRemoteConfiguration"; + } + + identity event-type { + description + "Base identity for all Link OAM event types."; + } + + identity threshold-event-type { + base event-type; + description + "Event type for a Link Monitoring threshold event."; + } + + identity link-fault-event { + if-feature "uni-directional-link-fault"; + base event-type; + description + "Event type for a uni-directional link fault event."; + reference + "IEEE Std 802.3, 57.2.10.1"; + } + + identity dying-gasp-event { + base event-type; + description + "Event type for a dying gasp event."; + reference + "IEEE Std 802.3, 57.2.10.1"; + } + + identity critical-event { + base event-type; + description + "Event type for a critical event."; + reference + "IEEE Std 802.3, 57.2.10.1"; + } + + typedef threshold-event-enum { + type enumeration { + enum symbol-period-event { + value 1; + description + "Errored symbol period event."; + } + enum frame-period-event { + value 2; + description + "Errored frame period event."; + } + enum frame-event { + value 3; + description + "Errored frame event"; + } + enum frame-seconds-event { + value 4; + description + "Errored frame seconds event."; + } + } + description + "Enumeration of the valid threshold event types."; + reference + "IEEE Std 802.3, 57.5.3"; + } + + typedef mode { + type enumeration { + enum passive { + value 0; + description + "Ethernet Link OAM Passive mode."; + } + enum active { + value 1; + description + "Ethernet Link OAM Active mode."; + } + } + description + "Enumeration of the valid modes in which Link OAM may run."; + reference + "IEEE Std 802.3, 57.2.9 and 30.3.6.1.3."; + } + + typedef event-location { + type enumeration { + enum event-location-local { + value 1; + description + "A local event."; + } + enum event-location-remote { + value 2; + description + "A remote event."; + } + } + description + "The location of the event that caused a log entry."; + } + + typedef loopback-status { + type enumeration { + enum none { + value 1; + description + "Loopback is not being performed."; + } + enum initiating { + value 2; + description + "Initiating master loopback."; + } + enum master-loopback { + value 3; + description + "In master loopback mode."; + } + enum terminating { + value 4; + description + "Terminating master loopback mode."; + } + enum local-loopback { + value 5; + description + "In slave loopback mode."; + } + enum unknown { + value 6; + description + "Parser and multiplexer combination unexpected."; + } + } + description + "The loopback mode of an OAM interface."; + reference + "IEEE Std 802.3, 57.2.11"; + } + + typedef operational-state { + type enumeration { + enum disabled { + value 1; + description + "IEEE Std 802.3 OAM is disabled."; + } + enum link-fault { + value 2; + description + "IEEE Std 802.3 OAM has encountered a link fault."; + } + enum passive-wait { + value 3; + description + "Passive OAM entity waiting to see if peer is + OAM capable."; + } + enum active-send-local { + value 4; + description + "Active OAM entity trying to determine if peer + is OAM capable."; + } + enum send-local-and-remote { + value 5; + description + "OAM discovered peer but still to accept or + reject peer configuration."; + } + enum send-local-and-remote-ok { + value 6; + description + "OAM peering is allowed by local device."; + } + enum peering-locally-rejected { + value 7; + description + "OAM peering rejected by local device."; + } + enum peering-remotely-rejected { + value 8; + description + "OAM peering rejected by remote device."; + } + enum operational { + value 9; + description + "IEEE Std 802.3 OAM is operational."; + } + enum operational-half-duplex { + value 10; + description + "IEEE Std 802.3 OAM is operating in half-duplex mode."; + } + } + description + "Operational state of an interface."; + reference + "IEEE Std 802.3, 30.3.6.1.4, + 30.3.6.1.10, and 30.3.6.1.11"; + } + + typedef vendor-oui { + type string { + length "6"; + } + description + "Organizationally Unique Identifier (OUI) as assigned to + vendor by the IEEE Registration Authority"; + reference + "IEEE Std 802, 8.2.2"; + } + + typedef admin-state { + type enumeration { + enum enabled { + value 1; + description + "IEEE Std 802.3, Clause 57 OAM is in the + enabled admin state."; + } + enum disabled { + value 2; + description + "IEEE Std 802.3, Clause 57 OAM is in the + disabled admin state."; + } + } + description + "Admin state of the OAM function on an interface."; + reference + "IEEE Std 802.3, 30.3.6.1.2 and 30.3.6.2"; + } + + grouping event-details { + description + "Nodes describing an event, used in the event log and in + notifications."; + reference + "IETF RFC 4878, Dot3OamEventLogEntry"; + leaf oui { + type vendor-oui; + mandatory true; + description + "Organizationally Unique Identifier for the device that + generated the event."; + } + leaf timestamp { + type uint64; + units "milliseconds"; + mandatory true; + description + "Timestamp in milliseconds since Unix epoch for when the + event occurred."; + } + leaf location { + type event-location; + mandatory true; + description + "Where the event occurred (local or remote)."; + } + leaf event-type { + type identityref { + base event-type; + } + mandatory true; + description + "Type of event that occurred."; + reference + "IEEE Std 802.3, 30.3.6.1.10 and 30.3.6.11"; + } + leaf running-total { + type yang:counter64; + mandatory true; + description + "The running total number of errors seen since OAM was + enabled on the interface. For threshold events, this is + the total number of times that particular type of error + (e.g., symbol error) has occurred, which may be greater + than the number of threshold-crossing event notifications + of that type generated during that time (which is conveyed + by the event-total leaf)."; + } + leaf event-total { + type yang:counter64; + mandatory true; + description + "Total number of times this event has occurred since OAM + was enabled on the interface. For threshold events this is + the number of events generated of this type (as opposed to + the total number of errors of that type, which may be + greater, and is conveyed by the running-total leaf."; + } + } + + grouping threshold-event-details { + description + "Nodes describing a threshold event, used in the event + log and in notifications"; + reference + "IETF RFC 4878, Dot3OamEventLogEntry"; + container threshold { + when + "../event-type = 'ieee802-link-oam:threshold-event-type'" { + description + "These nodes only apply to threshold event types"; + } + if-feature + "link-monitoring-local or link-monitoring-remote"; + description + "Nodes specific to threshold (link monitoring) events"; + leaf threshold-event-type { + type threshold-event-enum; + mandatory true; + description + "The type of threshold event"; + reference + "IEEE Std 802.3, 57.5.3"; + } + leaf window { + type uint64; + mandatory true; + description + "Size of the window in which the event was generated. + Units are dependent on the threshold event type."; + } + leaf threshold { + type uint64; + mandatory true; + description + "Size of the threshold that was breached during the + window. Units are dependent on the threshold + event type."; + } + leaf value { + type uint64; + mandatory true; + description + "Breaching value. Units are dependent on the threshold + event type, and match that of the threshold."; + } + } + } + + grouping statistics-common { + description + "Collection of Link OAM event/packet counters."; + reference + "IETF RFC 4878, Dot3OamStatsEntry"; + leaf out-information { + type yang:counter64; + mandatory true; + description + "Number of information OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.20"; + } + leaf in-information { + type yang:counter64; + mandatory true; + description + "Number of information OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.21"; + } + leaf out-unique-event-notification { + if-feature "link-monitoring-local"; + type yang:counter64; + mandatory true; + description + "Number of unique event notification OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.22"; + } + leaf in-unique-event-notification { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of unique event notification OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.24"; + } + leaf out-duplicate-event-notification { + if-feature "link-monitoring-local"; + type yang:counter64; + mandatory true; + description + "Number of duplicate event notification OAMPDUs + transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.23"; + } + leaf in-duplicate-event-notification { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of duplicate event notification OAMPDUs + received."; + reference + "IEEE Std 802.3, 30.3.6.1.25"; + } + leaf out-loopback-control { + if-feature "remote-loopback-initiate"; + type yang:counter64; + mandatory true; + description + "Number of loopback control OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.26"; + } + leaf in-loopback-control { + if-feature "remote-loopback-respond"; + type yang:counter64; + mandatory true; + description + "Number of loopback control OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.27"; + } + leaf out-variable-request { + if-feature "remote-data-retrieval-initiate"; + type yang:counter64; + mandatory true; + description + "Number of variable request OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.28"; + } + leaf in-variable-request { + if-feature "remote-mib-retrieval-respond"; + type yang:counter64; + mandatory true; + description + "Number of variable request OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.29"; + } + leaf out-variable-response { + if-feature "remote-mib-retrieval-respond"; + type yang:counter64; + mandatory true; + description + "Number of variable response OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.30"; + } + leaf in-variable-response { + if-feature "remote-data-retrieval-initiate"; + type yang:counter64; + mandatory true; + description + "Number of variable response OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.31"; + } + leaf out-org-specific { + type yang:counter64; + mandatory true; + description + "Number of organization specific OAMPDUs transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.32"; + } + leaf in-org-specific { + type yang:counter64; + mandatory true; + description + "Number of organization specific OAMPDUs received."; + reference + "IEEE Std 802.3, 30.3.6.1.33"; + } + leaf out-unsupported-codes { + type yang:counter64; + mandatory true; + description + "Number of OAMPDUs with unsupported codes transmitted."; + reference + "IEEE Std 802.3, 30.3.6.1.18"; + } + leaf in-unsupported-codes { + type yang:counter64; + mandatory true; + description + "Number of OAMPDUs with unsupported codes received."; + reference + "IEEE Std 802.3, 30.3.6.1.19"; + } + leaf frames-lost-due-to-oam { + type yang:counter64; + mandatory true; + description + "A count of the number of frames that were dropped by the + OAM multiplexer. Since the OAM multiplexer has multiple + inputs and a single output, there may be cases where + frames are dropped due to transmit resource contention. + This counter is incremented whenever a frame is dropped by + the OAM layer."; + reference + "IEEE Std 802.3, 30.3.6.1.46"; + } + } + + grouping discovery-remote { + description + "Nodes describing the discovery process remote end of a + link."; + leaf mode { + type mode; + description + "Mode (passive/active)."; + reference + "IEEE Std 802.3, 30.3.6.1.3"; + } + container functions-supported { + description + "The Link OAM functions supported by this interface."; + reference + "IEEE Std 802.3, 30.3.6.1.7"; + leaf uni-directional-link-fault { + type boolean; + description + "Unidirectional link fault support."; + } + leaf loopback { + type boolean; + description + "Remote Loopback support."; + } + leaf link-monitoring { + type boolean; + description + "Link monitoring support."; + } + leaf mib-retrieval { + type boolean; + description + "MIB variable retrieval support."; + } + } + leaf revision { + type uint64; + config false; + description + "Configuration revision."; + reference + "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; + } + leaf oammtu { + type uint16; + units "octets"; + config false; + description + "The maximum OAMPDU size for the remote node. + The peer OAM entities exchange the maximum size they can + support and negotiate to use the smaller of the two maximum + OAMPDU sizes."; + reference + "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; + } + } + + grouping discovery-local { + description + "Nodes describing the local end discovery process of a + link."; + leaf mode { + type mode; + description + "This object configures the mode of OAM operation as active + or passive. Active mode provides capabilities to initiate + monitoring activities with the remote OAM peer entity, + while passive mode waits for the peer to initiate actions + with it. Changing this value results in incrementing the + revision field of locally generated OAMPDUs + (see IEEE Std 802.3, 30.3.6.1.12) and triggers the + OAM discovery process if the operational state was + already 'operational'. The default value is + implementation dependent."; + reference + "IEEE Std 802.3, 30.3.6.1.3"; + } + container functions-supported { + description + "The Link OAM functions supported by this interface."; + reference + "IEEE Std 802.3, 30.3.6.1.7"; + leaf uni-directional-link-fault { + if-feature "uni-directional-link-fault"; + type boolean; + description + "Unidirectional link fault support. + This affects the setting of the 'Unidirectional Support' + bit in the OAM configuration field put in the + Information OAMPDU. + This bit indicates to the peer device that it can send + OAM PDUs on links that are operating in unidirectional + mode (traffic flowing in one direction only)."; + } + leaf loopback { + if-feature "remote-loopback-initiate"; + type boolean; + default "true"; + description + "Remote Loopback support."; + } + container link-monitor { + if-feature + "link-monitoring-remote or link-monitoring-local"; + description + "Configure link monitor parameters."; + reference + "IEEE Std 802.3, 57.1.2 c)"; + leaf link-monitoring { + type boolean; + default "true"; + description + "Enable or disable monitoring. + This affects the setting of the 'Link Events' bit in + the OAM configuration field put in the Information + OAMPDU. This bit indicates to the peer device that the + OAM entity can send and receive Event Notification + OAMPDUs."; + } + list event-type { + if-feature "link-monitoring-local"; + key "threshold-type"; + description + "A list containing at most one entry for each of the + threshold event types. If there is no entry for a + particular event type, the default values are used for + both window size and threshold."; + leaf threshold-type { + type threshold-event-enum; + description + "The type of threshold event for which this list + entry is specifying the configuration."; + reference + "IEEE Std 802.3, 57.5.3"; + } + leaf window { + type uint64; + description + "The size of the window to use when monitoring for + this threshold event. The units, default, and upper + and lower bounds depend on the threshold type as + follows: + + Symbol Period: + Units: number of symbols + Default: number of symbols in one second for the + underlying physical layer + Min: number of symbols in one second for the + underlying physical layer + Max: number of symbols in one minute for the + underlying physical layer + + Frame: + Units: deciseconds + Default: 1 second + Min: 1 second + Max: 1 minute + + Frame Period: + Units: number of frames + Default: number of minFrameSize frames in one + second for the underlying physical layer + Min: number of minFrameSize frames in one + second for the underlying physical layer + Max: number of minFrameSize frames in one + minute for the underlying physical layer + + Frame Seconds: + Units: deciseconds + Default: 60 seconds + Min: 10 seconds + Max: 900 seconds"; + reference + "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, + and 30.3.6.1.40"; + } + leaf threshold { + type uint64 { + range "1..max"; + } + default "1"; + description + "The threshold value to use when determining whether + to generate an event given the number of errors that + occurred in a given window. The units depend on the + threshold type as follows: + + Symbol Period: number of errored symbols + Frame: number of errored frames + Frame Period: number of errored frames + Frame Seconds: number of seconds containing at least + 1 frame error"; + reference + "IEEE Std 802.3, 30.3.6.1.34, 30.3.6.1.36, 30.3.6.1.38, + and 30.3.6.1.40"; + } + } + } + leaf mib-retrieval { + if-feature + "remote-mib-retrieval-initiate or remote-mib-retrieval-respond"; + type boolean; + status deprecated; + description + "leaf mib-retrieval is deprecated and changed name to + data-retrieval. + MIB variable retrieval support. + This affects the setting of the 'Variable Retrieval' bit + in the OAM configuration field put in the Information + OAMPDU. This bit indicates to the peer device that the + OAM entity can send and receive Variable Request and + Response OAMPDUs."; + } + leaf data-retrieval { + if-feature + "remote-data-retrieval-initiate or remote-mib-retrieval-respond"; + type boolean; + description + "Variable retrieval support. + This affects the setting of the 'Variable Retrieval' bit + in the OAM configuration field put in the Information + OAMPDU. This bit indicates to the peer device that the + OAM entity can send and receive Variable Request and + Response OAMPDUs."; + } + } + leaf revision { + type uint64; + config false; + description + "Configuration revision."; + reference + "IEEE Std 802.3, 30.3.6.1.12 and 30.3.6.1.13"; + } + leaf oammtu { + type uint16; + units "octets"; + config false; + description + "The maximum OAMPDU size for the local node. The peer OAM + entities exchange the maximum size they can support and + negotiate to use the smaller of the two maximum OAMPDU + sizes."; + reference + "IEEE Std 802.3, 30.3.6.1.8 and 30.3.6.1.9"; + } + } + + grouping discovery-info { + description + "Information relating to the discovery process."; + container local { + description + "Properties of the local device."; + leaf operational-status { + type operational-state; + config false; + mandatory true; + description + "Operational status."; + reference + "IETF RFC 4878, dot3OamOperStatus; IEEE Std 802.3, + 30.3.6.1.4, 30.3.6.1.10, and 30.3.6.1.11"; + } + leaf loopback-mode { + if-feature + "remote-loopback-initiate or remote-loopback-respond"; + type loopback-status; + config false; + mandatory true; + description + "The loopback mode the interface is in."; + reference + "IEEE Std 802.3, 30.3.6.1.14"; + } + uses discovery-local; + } + container remote { + config false; + description + "Properties of the remote (peer) device."; + leaf mac-address { + type ieee:mac-address; + description + "Remote MAC address."; + reference + "IEEE Std 802.3, 30.3.6.1.5"; + } + leaf vendor-oui { + type vendor-oui; + description + "Remote vendor OUI."; + reference + "IEEE Std 802.3, 30.3.6.1.16"; + } + leaf vendor-info { + type uint64; + description + "Remote vendor info. The semantics of this value are + proprietary and specific to the vendor."; + reference + "IEEE Std 802.3, 30.3.6.1.17"; + } + leaf loopback-mode { + type loopback-status; + mandatory true; + description + "The loopback mode the interface is in."; + reference + "IEEE Std 802.3, 30.3.6.1.15"; + } + uses discovery-remote; + } + } + + augment "/if:interfaces/if:interface" { + when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or + derived-from-or-self(if:type, 'ianaift:ptm') " { + description + "Augments the interface model with nodes + specific to Ethernet Link OAM."; + } + description + "Augments Ethernet interface model with nodes + specific to Ethernet Link OAM."; + container link-oam { + presence "Implies Link OAM is configured on the interface."; + description + "Interface operational state for Ethernet Link OAM."; + action remote-loopback { + if-feature "remote-loopback-initiate"; + description + "Start/stop remote loopback on the specified interface."; + reference + "IEEE Std 802.3, 57.1.2 b)"; + input { + leaf enable { + type boolean; + mandatory true; + description + "Whether to enable or disable remote loopback."; + } + } + output { + leaf success { + type boolean; + mandatory true; + description + "True if the operation was successful, + false otherwise."; + } + leaf error-message { + type string; + description + "If the operation failed, optionally used to + provide extra details."; + } + } + } + action reset-stats { + description + "Reset Ethernet Link OAM statistics on this interface."; + output { + leaf success { + type boolean; + mandatory true; + description + "True if the operation was successful, + false otherwise."; + } + leaf error-message { + type string; + description + "If the operation failed, optionally used to provide + extra details."; + } + } + } + notification non-threshold-event { + description + "This notification is sent when a local or remote + non-threshold crossing event is detected."; + uses event-details { + refine "event-type" { + must ". != 'ieee802-link-oam:threshold-event-type'" { + description + "This leaf is not set to + 'threshold-event-type'."; + } + } + } + } + notification threshold-event { + if-feature + "link-monitoring-local or link-monitoring-remote"; + description + "This notification is sent when a local or remote + threshold crossing event is detected."; + uses event-details { + refine "event-type" { + must ". = 'ieee802-link-oam:threshold-event-type'" { + description + "This leaf is set to 'threshold-event-type'."; + } + } + } + uses threshold-event-details; + } + leaf admin { + type admin-state; + default "disabled"; + description + "This object is used to provision the default + administrative OAM mode for this interface. This object + represents the desired state of OAM for this interface. + It starts in the disabled state until an explicit + management action or configuration information retained + by the system causes a transition to the enabled(1) + state. When enabled(1), Ethernet OAM will attempt to + operate over this interface. The default value is + implementation dependent."; + } + container discovery-info { + description + "Information relating to the discovery process."; + uses discovery-info; + } + container event-log { + config false; + description + "List of Ethernet Link OAM event log entries on the + interface."; + list event-log-entry { + key "index"; + description + "Ethernet Link OAM event log entry."; + leaf index { + type uint64; + description + "Index of this event in the event log."; + } + uses event-details; + uses threshold-event-details; + } + } + container statistics { + config false; + description + "Statistics for an 802.3 OAM interface."; + uses statistics-common; + leaf local-error-symbol-period-log-entries { + type yang:counter64; + mandatory true; + description + "Number of local error symbol period log entries."; + } + leaf local-error-frame-log-entries { + type yang:counter64; + mandatory true; + description + "Number of local error frame log entries."; + } + leaf local-error-frame-period-log-entries { + type yang:counter64; + mandatory true; + description + "Number of local error frame period log entries."; + } + leaf local-error-frame-second-log-entries { + type yang:counter64; + mandatory true; + description + "Number of local error frame second log entries."; + } + leaf remote-error-symbol-period-log-entries { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of remote error symbol period log entries."; + } + leaf remote-error-frame-log-entries { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of remote error frame log entries."; + } + leaf remote-error-frame-period-log-entries { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of remote error frame period log entries."; + } + leaf remote-error-frame-second-log-entries { + if-feature "link-monitoring-remote"; + type yang:counter64; + mandatory true; + description + "Number of remote error frame second log entries."; + } + } + } + } +} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-lldp.yang b/standard/ieee/published/802.3/ieee802-ethernet-lldp.yang similarity index 91% rename from standard/ieee/draft/802.3/ieee802-ethernet-lldp.yang rename to standard/ieee/published/802.3/ieee802-ethernet-lldp.yang index 61d1c90da..a82dd1210 100644 --- a/standard/ieee/draft/802.3/ieee802-ethernet-lldp.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-lldp.yang @@ -21,14 +21,14 @@ module ieee802-ethernet-lldp { "Web URL: http://www.ieee802.org/3/"; description "This module contains YANG definitions for configuring LLDP for - 802.3 Ethernet Interfaces. + 802.3 Ethernet interfaces. In this YANG module, 'Ethernet interface' can be interpreted as referring to 'IEEE Std 802.3 compliant Ethernet interfaces'."; - revision 2025-04-17 { + revision 2025-09-10 { description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; + "Updates under IEEE Std 802.3.2-2025"; reference "IEEE Std 802.3-2022, unless dated explicitly"; } @@ -279,10 +279,10 @@ module ieee802-ethernet-lldp { description "PSE powered by a backup power source"; } - enum pse-unknwon { + enum pse-unknown { value 2; description - "PSE powered by an unkown power source"; + "PSE powered by an unknown power source"; } enum pd-pse-and-local { value 3; @@ -302,7 +302,7 @@ module ieee802-ethernet-lldp { enum pd-unknown { value 6; description - "PD powered by an uknown source"; + "PD powered by an unknown source"; } } description @@ -445,7 +445,7 @@ module ieee802-ethernet-lldp { of the ifMauAutoNegCapAdvertisedBits object (defined in IETF RFC 4836) which is associated with the given port on the local system. - Superseeded by auto-negotiation-cap-bits."; + Superseded by auto-negotiation-cap-bits."; reference "IEEE Std802.3, 30.12.2.1.3"; } @@ -456,7 +456,7 @@ module ieee802-ethernet-lldp { description "32-bit integer value that indicates the operational MAU type of the given port. - Superseeded by operational-pmd-type."; + Superseded by operational-pmd-type."; reference "IEEE Std 802.3, 30.12.2.1.4"; } @@ -476,9 +476,9 @@ module ieee802-ethernet-lldp { description "Operational PMD type of the given port"; reference - "IEEE Std 802.3, Clause 30.5.1.1.2 aMAUType"; + "IEEE Std 802.3, 30.5.1.1.2 aMAUType"; } - /* Clause 30 & 145 PoE related LLDP definitions */ + /* Clause 30 & Clause 145 PoE related LLDP definitions */ leaf power-port-class { type port-class-type; description @@ -511,7 +511,7 @@ module ieee802-ethernet-lldp { leaf power-pairs { type pse-pinout-type; description - "Indicates which pinout alernative is used for PD detection + "Indicates which pinout alternative is used for PD detection and power"; reference "IEEE Std 802.3, 30.12.2.1.9"; @@ -524,8 +524,8 @@ module ieee802-ethernet-lldp { "IEEE Std 802.3, 30.12.2.1.10"; } /* Obsolete Link Aggregation objects - Link aggregation has not been part of 802.3 since IEEE 802.1AX-2008 - */ + Link aggregation has not been part of IEEE Std 802.3 + since IEEE Std 802.1AX-2008 */ leaf link-aggregation-status { type bits { bit aggregation-capability { @@ -554,7 +554,7 @@ module ieee802-ethernet-lldp { status obsolete; description "The unique identifier allocated to this Aggregation Port - by the local System."; + by the local system."; reference "IEEE Std 802.3, 30.12.2.1.12"; } @@ -589,7 +589,7 @@ module ieee802-ethernet-lldp { Type 1 or greater than Type 1. The second bit indicates PSE or PD. A PSE sets this bit to indicate a PSE. A PD sets this bit to indicate a PD. See also aLldpXdot3LocPowerTypeExt. - Superseeded by power-support"; + Superseded by power-support"; reference "IEEE Std 802.3, 30.12.2.1.14"; } @@ -615,7 +615,7 @@ module ieee802-ethernet-lldp { } description "A read-only attribute that returns a bit string indicating - whether local system PoE support."; + the local system PoE support."; reference "IEEE Std 802.3, 79.3.2.1 MDI power support"; } @@ -627,7 +627,7 @@ module ieee802-ethernet-lldp { indicates whether it is being powered by a primary power source; a backup power source; or unknown. A PD indicates whether it is being powered by a PSE and locally; by a PSE - only; or unknown.;"; + only; or unknown."; reference "IEEE Std 802.3, 30.12.2.1.15"; } @@ -675,7 +675,7 @@ module ieee802-ethernet-lldp { "PSE allocated power value. For a PSE, it is the power value that the PSE has currently allocated to the remote system. For a PD, it is the power value that the PD mirrors - back to the remote syste"; + back to the remote system"; reference "IEEE Std 802.3, 30.12.2.1.20"; } @@ -684,7 +684,7 @@ module ieee802-ethernet-lldp { config false; description " PSE allocated power value for the Alternative A pairset - in units of 0.1 W.For a PSE, it is the power value for the + in units of 0.1 W. For a PSE, it is the power value for the Alternative A pairset that the PSE has currently allocated to the remote system. For a PD, it is the power value for the Mode A pairset that the PD echoes back to the remote @@ -732,8 +732,8 @@ module ieee802-ethernet-lldp { "A read-only value that identifies the supported PSE Pinout Alternative specified in 145.2.4. For a PSE, this attribute contains the value of the aPSEPowerPairs - attribute (see 30.9.1.1.4). For a PD, the contents of this - attribute are undefined"; + attribute (see 30.9.1.1.4). For a PD, the contents of this + attribute are undefined"; reference "IEEE Std 802.3, 30.12.2.1.25"; } @@ -744,12 +744,12 @@ module ieee802-ethernet-lldp { "For a dual-signature PD, a read-only value that indicates the requested Class for Mode A during Physical Layer Classification (see 145.3.6). For a single-signature PD, a - read-only value set to ‘singlesig’.For a PSE connected to + read-only value set to 'singlesig'. For a PSE connected to a dual-signature PD, a read-only value that indicates the currently assigned Class for Mode A (see 145.2.8). For a PSE connected to a single-signature PD or a PSE that operates only in 2-pair mode, a read-only value set to - ‘singlesig’"; + 'singlesig'."; reference "IEEE Std 802.3, 30.12.2.1.26"; } @@ -760,12 +760,12 @@ module ieee802-ethernet-lldp { "For a dual-signature PD, a read-only value that indicates the requested Class for Mode B during Physical Layer Classification (see 145.3.6). For a single-signature PD, - a read-only value set to ‘singlesig’.For a PSE connected to + a read-only value set to 'singlesig'. For a PSE connected to a dual-signature PD, a read-only value that indicates the currently assigned Class for Mode B (see 145.2.8). For a PSE connected to a single-signature PD or a PSE that operates only in 2-pair mode, a read-only value set to - ‘singlesig’"; + 'singlesig'."; reference "IEEE Std 802.3, 30.12.2.1.27"; } @@ -776,12 +776,12 @@ module ieee802-ethernet-lldp { "For a single-signature PD, a read-only value that indicates the requested Class during Physical Layer Classification (see 145.3.6). For a dual-signature - PD, a read-only value set to ‘dualsig’. + PD, a read-only value set to 'dualsig'. For a PSE connected to a single-signature PD or a PSE that operates only in 2-pair mode, a read-only value that indicates the currently assigned Class (see 145.2.8). For a PSE connected to a dual-signature PD, - a read-only value set to ‘dualsig’.’"; + a read-only value set to 'dualsig'."; reference "IEEE Std 802.3, 30.12.2.1.28"; } @@ -849,7 +849,7 @@ module ieee802-ethernet-lldp { config false; description "A read-only Boolean attribute indicating whether the local - PD system is requesting an Autoclass measurement;"; + PD system is requesting an Autoclass measurement."; reference "IEEE Std 802.3, 30.12.2.1.35"; } @@ -857,7 +857,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-write attribute that indicates the local PD system - is requesting a power down when the value is 0x1D.;"; + is requesting a power down when the value is 0x1D."; reference "IEEE Std 802.3, 30.12.2.1.36"; } @@ -866,7 +866,7 @@ module ieee802-ethernet-lldp { description "A read-write attribute that indicates the number of seconds the PD requests to stay powered off. A value of - zero indicates an indefinite amount of time;"; + zero indicates an indefinite amount of time."; reference "IEEE Std 802.3, 30.12.2.1.37"; } @@ -875,7 +875,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the local device is - capable of providing a voltage measurement.;"; + capable of providing a voltage measurement."; reference "IEEE Std 802.3, 30.12.2.1.38"; } @@ -883,7 +883,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the local device is - capable of providing a current measurement.;"; + capable of providing a current measurement."; reference "IEEE Std 802.3, 30.12.2.1.39"; } @@ -891,7 +891,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the local device is - capable of providing a power measurement.;"; + capable of providing a power measurement."; reference "IEEE Std 802.3, 30.12.2.1.40"; } @@ -899,22 +899,25 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the local device is - capable of providing a energy measurement.;"; + capable of providing a energy measurement."; reference "IEEE Std 802.3, 30.12.2.1.41"; } - /* NOTE - What do these values mean? */ leaf measurement-source { type bits { bit bit1 { position 0; description - "????"; + "MSB of Measurement Source. Used with the LSB of + Measurement Source to determine where the measurement + is to be taken. See IEEE Std 802.3, Table 79-21."; } bit bit2 { position 1; description - "-"; + "LSB of Measurement Source. Used with the MSB of + Measurement Source to determine where the measurement + is to be taken. See IEEE Std 802.3, Table 79-21."; } } status obsolete; @@ -965,7 +968,7 @@ module ieee802-ethernet-lldp { type boolean; config false; description - "A read-only attribute that indicates the local device’s + "A read-only attribute that indicates the local device's voltage measurement is valid."; reference "IEEE Std 802.3, 30.12.2.1.47"; @@ -974,7 +977,7 @@ module ieee802-ethernet-lldp { type boolean; config false; description - "A read-only attribute that indicates the local device’s + "A read-only attribute that indicates the local device's current measurement is valid."; reference "IEEE Std 802.3, 30.12.2.1.48"; @@ -983,7 +986,7 @@ module ieee802-ethernet-lldp { type boolean; config false; description - "A read-only attribute that indicates the local device’s + "A read-only attribute that indicates the local device's power measurement is valid."; reference "IEEE Std 802.3, 30.12.2.1.49"; @@ -992,7 +995,7 @@ module ieee802-ethernet-lldp { type boolean; config false; description - "A read-only attribute that indicates the local device’s + "A read-only attribute that indicates the local device's energy measurement is valid."; reference "IEEE Std 802.3, 30.12.2.1.50"; @@ -1002,7 +1005,7 @@ module ieee802-ethernet-lldp { config false; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the device’s + uncertainty (coverage factor k = 2) for the device's voltage measurement."; reference "IEEE Std 802.3, 30.12.2.1.51"; @@ -1012,7 +1015,7 @@ module ieee802-ethernet-lldp { config false; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the device’s + uncertainty (coverage factor k = 2) for the device's current measurement."; reference "IEEE Std 802.3, 30.12.2.1.52"; @@ -1022,7 +1025,7 @@ module ieee802-ethernet-lldp { config false; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the device’s + uncertainty (coverage factor k = 2) for the device's power measurement."; reference "IEEE Std 802.3, 30.12.2.1.53"; @@ -1032,7 +1035,7 @@ module ieee802-ethernet-lldp { config false; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the device’s + uncertainty (coverage factor k = 2) for the device's energy measurement."; reference "IEEE Std 802.3, 30.12.2.1.54"; @@ -1114,7 +1117,7 @@ module ieee802-ethernet-lldp { type int32; config false; description - "Returns the value of Tw_sys_tx that the emote system is + "Returns the value of Tw_sys_tx that the remote system is advertising that it can support in the transmit direction and is echoed by the local system under the control of the EEE DLL receiver state diagram."; @@ -1224,7 +1227,7 @@ module ieee802-ethernet-lldp { config false; description "Indicates whether the given port (associated with the local - System) supports the preemption capability."; + system) supports the preemption capability."; reference "IEEE Std 802.3, 30.12.2.1.74"; } @@ -1233,7 +1236,7 @@ module ieee802-ethernet-lldp { config false; description "Indicates whether the preemption capability is enabled on - the given port associated with the local System."; + the given port associated with the local system."; reference "IEEE Std 802.3, 30.12.2.1.75"; } @@ -1242,7 +1245,7 @@ module ieee802-ethernet-lldp { config false; description "Indicates whether the preemption capability is active on - the given port associated with the local System.;"; + the given port associated with the local system."; reference "IEEE Std 802.3, 30.12.2.1.76"; } @@ -1250,9 +1253,9 @@ module ieee802-ethernet-lldp { type int32; config false; description - "Indicate the minimum size of non-final fragments supported + "Indicates the minimum size of non-final fragments supported by the receiver on the given port associated with the local - System. This value is expressed in units of 64 octets of + system. This value is expressed in units of 64 octets of additional fragment length."; reference "IEEE Std 802.3, 30.12.2.1.77"; @@ -1261,7 +1264,7 @@ module ieee802-ethernet-lldp { augment "/lldp:lldp/lldp:port" { description - "Augments port with 802.3 port read-write objects"; + "Augments port with IEEE 802.3 port read-write objects"; leaf tlvs-port-config-enable { type bits { bit mac-phy-config-status { @@ -1330,7 +1333,7 @@ module ieee802-ethernet-lldp { augment "/lldp:lldp/lldp:port/lldp:remote-systems-data" { description - "Augments port with 802.3 port config tlvs"; + "Augments port with IEEE 802.3 port config tlvs"; leaf auto-negotiation-supported { type boolean; description @@ -1354,9 +1357,9 @@ module ieee802-ethernet-lldp { description "A read-only 2-octet value that contains the value (bitmap) of the ifMauAutoNegCapAdvertisedBits object (defined in - IETF RFC 4836)which is associated with the given port on + IETF RFC 4836) which is associated with the given port on the local system. - Supersceeded by auto-negotiation-cap-bits."; + Superseded by auto-negotiation-cap-bits."; reference "IEEE Std 802.3, 30.12.3.1.3"; } @@ -1366,7 +1369,7 @@ module ieee802-ethernet-lldp { description "32-bit integer value that indicates the operational MAU type of the given port. - Supersceeded by operational-pmd-type."; + Superseded by operational-pmd-type."; reference "IEEE Std 802.3, 30.12.3.1.4"; } @@ -1420,7 +1423,7 @@ module ieee802-ethernet-lldp { leaf power-pairs { type pse-pinout-type; description - "Indicates which pinout alernative is used for PD + "Indicates which pinout alternative is used for PD detection and power"; reference "IEEE Std 802.3, 30.12.3.1.9"; @@ -1433,8 +1436,8 @@ module ieee802-ethernet-lldp { "IEEE Std 802.3, 30.12.3.1.10"; } /* Obsolete Link Aggregation objects - Link aggregation has not been part of 802.3 since IEEE 802.1AX-2008 - */ + Link aggregation has not been part of IEEE Std 802.3 + since IEEE Std 802.1AX-2008 */ leaf link-aggregation-status { type bits { bit aggregation-capability { @@ -1491,7 +1494,7 @@ module ieee802-ethernet-lldp { status obsolete; description "The unique identifier allocated to this Aggregation Port - by the local System."; + by the local system."; reference "IEEE Std 802.3, 30.12.3.1.12"; } @@ -1504,11 +1507,6 @@ module ieee802-ethernet-lldp { reference "IEEE Std 802.3, 30.12.3.1.13"; } - /* POE objects - Consistency errors between PoE definitions in 30.9 (PoE), - 30.12 (LLDP), 79.3.2 (PoE TLV), 79.3.8 (PoE measurement TLV). - Need to get these clauses reviewed against clause 145 and each other - */ leaf power-type { type bits { bit type1-or-greater { @@ -1541,7 +1539,7 @@ module ieee802-ethernet-lldp { indicates whether it is being powered by a primary power source; a backup power source; or unknown. A PD indicates whether it is being powered by a PSE and locally; by a PSE - only; or unknown.;"; + only; or unknown."; reference "IEEE Std 802.3, 30.12.3.1.15"; } @@ -1600,7 +1598,7 @@ module ieee802-ethernet-lldp { "PSE allocated power value. For a PSE, it is the power value that the PSE has currently allocated to the remote system. For a PD, it is the power value that the PD mirrors back to - the remote syste"; + the remote system"; reference "IEEE Std 802.3, 30.12.3.1.20"; } @@ -1669,12 +1667,12 @@ module ieee802-ethernet-lldp { the currently assigned Class for Mode A by the remote 4-pair PSE. For a single-signature PD or a dual-signature PD connected to a 2-pair only PSE, a read-only value set - to ‘singlesig’ by the remote PSE. For a PSE connected to a + to 'singlesig' by the remote PSE. For a PSE connected to a dual-signature PD, a read-only value that indicates the requested Class for Mode A during Physical Layer classification (see 145.2.8) by the remote PD. For a PSE connected to a single-signature PD, a read-only value set - to ‘singlesig’ by the remote PD"; + to 'singlesig' by the remote PD"; reference "IEEE Std 802.3, 30.12.3.1.26"; } @@ -1685,12 +1683,12 @@ module ieee802-ethernet-lldp { the currently assigned Class for Mode B by the remote 4-pair PSE. For a single-signature PD or a dual-signature PD connected to a 2-pair only PSE, a read-only value set - to ‘singlesig’ by the remote PSE. For a PSE connected to a + to 'singlesig' by the remote PSE. For a PSE connected to a dual-signature PD, a read-only value that indicates the requested Class for Mode B during Physical Layer classification (see 145.2.8) by the remote PD. For a PSE connected to a single-signature PD, a read-only value set - to ‘singlesig’ by the remote PD"; + to 'singlesig' by the remote PD"; reference "IEEE Std 802.3, 30.12.3.1.27"; } @@ -1701,12 +1699,12 @@ module ieee802-ethernet-lldp { to a 2-pair only PSE, a read-only value that indicates the currently assigned Class by the remote PSE. For a dual-signature PD connected to a 4-pair capable PSE, a - read-only value set to ‘dualsig’ by the remote PSE. For a + read-only value set to 'dualsig' by the remote PSE. For a PSE connected to a single-signature PD, a read-only value that indicates the requested Class during Physical Layer classification (see 145.2.8) by the remote PD. For a PSE connected to a dual-signature PD, a read-only value set to - ‘dualsig’ by the remote PD."; + 'dualsig' by the remote PD."; reference "IEEE Std 802.3, 30.12.3.1.28"; } @@ -1774,7 +1772,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-write attribute that indicates the remote PD system - is requesting a power down when the value is 0x1D.;"; + is requesting a power down when the value is 0x1D."; reference "IEEE Std 802.3, 30.12.3.1.36"; } @@ -1792,7 +1790,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the remote device is - capable of providing a voltage measurement.;"; + capable of providing a voltage measurement."; reference "IEEE Std 802.3, 30.12.3.1.38"; } @@ -1800,7 +1798,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the remote device is - capable of providing a current measurement.;"; + capable of providing a current measurement."; reference "IEEE Std 802.3, 30.12.3.1.39"; } @@ -1808,7 +1806,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the remote device is - capable of providing a power measurement.;"; + capable of providing a power measurement."; reference "IEEE Std 802.3, 30.12.3.1.40"; } @@ -1816,7 +1814,7 @@ module ieee802-ethernet-lldp { type boolean; description "A read-only attribute that indicates the remote device is - capable of providing a energy measurement.;"; + capable of providing an energy measurement."; reference "IEEE Std 802.3, 30.12.3.1.41 "; } @@ -1885,7 +1883,7 @@ module ieee802-ethernet-lldp { leaf meas-voltage-valid { type boolean; description - "A read-only attribute that indicates the remote device’s + "A read-only attribute that indicates the remote device's voltage measurement is valid."; reference "IEEE Std 802.3, 30.12.3.1.47"; @@ -1893,7 +1891,7 @@ module ieee802-ethernet-lldp { leaf meas-current-valid { type boolean; description - "A read-only attribute that indicates the remote device’s + "A read-only attribute that indicates the remote device's current measurement is valid."; reference "IEEE Std 802.3, 30.12.3.1.48"; @@ -1901,7 +1899,7 @@ module ieee802-ethernet-lldp { leaf meas-power-valid { type boolean; description - "A read-only attribute that indicates the remote device’s + "A read-only attribute that indicates the remote device's power measurement is valid."; reference "IEEE Std 802.3, 30.12.3.1.49"; @@ -1909,7 +1907,7 @@ module ieee802-ethernet-lldp { leaf meas-energy-valid { type boolean; description - "A read-only attribute that indicates the remote device’s + "A read-only attribute that indicates the remote device's energy measurement is valid."; reference "IEEE Std 802.3, 30.12.3.1.50"; @@ -1918,7 +1916,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the remote device’s + uncertainty (coverage factor k = 2) for the remote device's voltage measurement."; reference "IEEE Std 802.3, 30.12.3.1.51"; @@ -1927,7 +1925,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the remote device’s + uncertainty (coverage factor k = 2) for the remote device's current measurement."; reference "IEEE Std 802.3, 30.12.3.1.52"; @@ -1936,7 +1934,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the remote device’s + uncertainty (coverage factor k = 2) for the remote device's power measurement."; reference "IEEE Std 802.3, 30.12.3.1.53"; @@ -1945,7 +1943,7 @@ module ieee802-ethernet-lldp { type int32; description "A read-only attribute that indicates the expanded - uncertainty (coverage factor k = 2) for the remote device’s + uncertainty (coverage factor k = 2) for the remote device's energy measurement."; reference "IEEE Std 802.3, 30.12.3.1.54"; @@ -2031,7 +2029,7 @@ module ieee802-ethernet-lldp { type int32; description "Returns the value of the fallback Tw_sys_tx that the - remote system is advertising to the remote system."; + remote system is advertising."; reference "IEEE Std 802.3, 30.12.3.1.64"; } @@ -2042,17 +2040,19 @@ module ieee802-ethernet-lldp { "Returns the value of LPI_FW that the remote system can support in the transmit direction."; reference - "IEEE Std 802.3, 30.12.3.1.65"; + "IEEE Std 802.3, 30.12.3.1.65 (second instance of + 30.12.3.1.24 in IEEE Std 802.3-2022)"; } leaf tx-system-fw-echo { type boolean; description "Returns the value of LPI_FW that the local system is advertising that it can support in the transmit direction - and is echoed by the local system under the control of the + and is echoed by the remote system under the control of the EEE DLL receiver state diagram."; reference - "IEEE Std 802.3, 30.12.3.1.66"; + "IEEE Std 802.3, 30.12.3.1.66 (second instance of + 30.12.3.1.25 in IEEE Std 802.3-2022)"; } leaf rx-system-fw { type boolean; @@ -2060,52 +2060,58 @@ module ieee802-ethernet-lldp { "Returns the value of LPI_FW that the remote system is requesting in the receive direction."; reference - "IEEE Std 802.3, 30.12.3.1.67"; + "IEEE Std 802.3, 30.12.3.1.67 (second instance of + 30.12.3.1.26 in IEEE Std 802.3-2022)"; } leaf rx-system-fw-echo { type boolean; description "Returns the value of LPI_FW that the local system is advertising that it is requesting in the receive direction - and is echoed by the local system under the control of the + and is echoed by the remote system under the control of the EEE DLL transmitter state diagram."; reference - "IEEE Std 802.3, 30.12.3.1.68"; + "IEEE Std 802.3, 30.12.3.1.68 (second instance of + 30.12.3.1.27 in IEEE Std 802.3-2022)"; } /* LLDP preemption objects */ leaf preemption-supported { type boolean; description "Indicates whether the given port (associated with the - remote System) supports the preemption capability."; + remote system) supports the preemption capability."; reference - "IEEE Std 802.3, 30.12.3.1.69"; + "IEEE Std 802.3, 30.12.3.1.69 (second instance of + 30.12.3.1.28 in IEEE Std 802.3-2022)"; } leaf preemption-enabled { type boolean; description "Indicates whether the preemption capability is enabled on - the given port associated with the remote System."; + the given port associated with the remote system."; reference - "IEEE Std 802.3, 30.12.3.1.70"; + "IEEE Std 802.3, 30.12.3.1.70 (second instance of + 30.12.3.1.29 in IEEE Std 802.3-2022)"; } leaf preemption-active { type boolean; description "Indicates whether the preemption capability is active on - the given port associated with the remote System.;"; + the given port associated with the remote system."; reference - "IEEE Std 802.3, 30.12.3.1.72"; + "IEEE Std 802.3, 30.12.3.1.71 (second instance of + 30.12.3.1.30 in IEEE Std 802.3-2022)"; } leaf additional-fragment-size { type int32; description - "Indicate the minimum size of non-final fragments supported + "Indicates the minimum size of non-final fragments supported by the receiver on the given port associated with the - remote System. This value is expressed in units of 64 + remote system. This value is expressed in units of 64 octets of additional fragment length."; reference - "IEEE Std 802.3, 30.12.3.1.72 "; + "IEEE Std 802.3, 30.12.3.1.72 (second instance of + 30.12.3.1.31 in IEEE Std 802.3-2022)"; } } } diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-mac-merge.yang b/standard/ieee/published/802.3/ieee802-ethernet-mac-merge.yang similarity index 95% rename from standard/ieee/draft/802.3/ieee802-ethernet-mac-merge.yang rename to standard/ieee/published/802.3/ieee802-ethernet-mac-merge.yang index 46905fb94..6b389a6e0 100644 --- a/standard/ieee/draft/802.3/ieee802-ethernet-mac-merge.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-mac-merge.yang @@ -16,7 +16,7 @@ module ieee802-ethernet-mac-merge { import ieee802-ethernet-interface { prefix ieee802-eth-if; reference - "IEEE Std 802.3.2-2019"; + "IEEE Std 802.3.2"; } organization @@ -28,11 +28,11 @@ module ieee802-ethernet-mac-merge { "The Yang model for managing devices that support the MAC Merge (aka preemption) sublayer as defined in Clause 99. Unless otherwise indicated, the references in this model module are to - IEEE Std 802.3-2022."; + IEEE Std 802.3-2022."; - revision 2025-04-17 { + revision 2025-09-10 { description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; + "Updates under IEEE Std 802.3.2-2025"; reference "IEEE Std 802.3-2022, unless dated explicitly"; } @@ -87,9 +87,9 @@ module ieee802-ethernet-mac-merge { description "Does MAC Merge check to make sure the link partner supports MAC Merge? - The check is peformed by sending a verify request and + The check is performed by sending a verify request and getting a verify response. - It may be modified using an edit operation.;"; + It may be modified using an edit operation."; reference "IEEE Std 802.3, 30.14.1.4"; } @@ -222,7 +222,7 @@ module ieee802-ethernet-mac-merge { type yang:counter64; description "A count of preemptable MAC frames that were successfully - reassembled and delivered to MAC."; + reassembled and delivered to the MAC."; reference "IEEE Std 802.3, 30.14.1.10"; } diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-phy-type.yang b/standard/ieee/published/802.3/ieee802-ethernet-phy-type.yang similarity index 91% rename from standard/ieee/draft/802.3/ieee802-ethernet-phy-type.yang rename to standard/ieee/published/802.3/ieee802-ethernet-phy-type.yang index c4ae8eca1..c32562c49 100644 --- a/standard/ieee/draft/802.3/ieee802-ethernet-phy-type.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-phy-type.yang @@ -10,10 +10,10 @@ module ieee802-ethernet-phy-type { "Web URL: http://www.ieee802.org/3/"; description "This module contains YANG definitions for Physical Layer device - (PHY) and Physical Medium Dependent(PMD) indentities and related + (PHY) and Physical Medium Dependent (PMD) identities and related types."; - revision 2025-04-17 { + revision 2025-09-10 { description "Initial revision derived from IANA-MAU-MIB REVISION 202309070000Z using smidump."; @@ -27,7 +27,7 @@ module ieee802-ethernet-phy-type { description "Base type for PHY types."; reference - "IEEE Std 802.3, Clause 30.3.2.1.2 aPhyType"; + "IEEE Std 802.3, 30.3.2.1.2 aPhyType"; } identity phy-type-other { @@ -185,14 +185,14 @@ module ieee802-ethernet-phy-type { identity phy-type-10G-2p5GGBASE-SP { base phy-type; description - "Clause 164.3 10 Gb/s downstream and 2.5 Gb/s upstream + "Subclause 164.3 10 Gb/s downstream and 2.5 Gb/s upstream 256B/257B"; } identity phy-type-10GBASE-SP { base phy-type; description - "Clause 164.3 10 Gb/s 256B/257B"; + "Subclause 164.3 10 Gb/s 256B/257B"; } identity phy-type-25G-10GBASE-PQ { @@ -289,9 +289,9 @@ module ieee802-ethernet-phy-type { identity pmd-type { description - "Base type for Physical Medium Dependent(PMD)sublayer types."; + "Base type for Physical Medium Dependent (PMD) sublayer types."; reference - "IEEE Std 802.3, Clause 30.5.1.1.2 aMAUType"; + "IEEE Std 802.3, 30.5.1.1.2 aMAUType"; } identity pmd-type-global { @@ -661,7 +661,7 @@ module ieee802-ethernet-phy-type { identity pmd-type-10GBASE-BR40-D { base pmd-type; description - "One single-mode fiber OLT PHY upporting a distance of at + "One single-mode fiber OLT PHY supporting a distance of at least 40 km as specified in Clause 158"; } @@ -714,8 +714,8 @@ module ieee802-ethernet-phy-type { identity pmd-type-10GBASE-LRM { base pmd-type; description - "10GBASE-LRM fiber over 1310 nm optics as specified in Clause - 68"; + "10GBASE-LRM fiber over 1310 nm optics as specified in + Clause 68"; } identity pmd-type-10GBASE-LW { @@ -847,70 +847,70 @@ module ieee802-ethernet-phy-type { identity pmd-type-10GBASE-SP { base pmd-type; description - "Clause 164.3 10 Gb/s 256B/257B"; + "Subclause 164.3 10 Gb/s 256B/257B"; } identity pmd-type-25G-10GBASE-PQG-D2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, medium + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQG-D3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, high + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQG-U2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, medium power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQG-U3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, high power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQX-D2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, medium + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQX-D3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, high + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQX-U2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, medium power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-25G-10GBASE-PQX-U3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, high power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, high power class, as specified in Clause 141"; } @@ -1001,64 +1001,64 @@ module ieee802-ethernet-phy-type { identity pmd-type-25GBASE-PQG-D2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQG-D3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQG-U2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQG-U3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQX-D2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQX-D3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 1 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQX-U2 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-25GBASE-PQX-U3 { base pmd-type; description - "One single mode fiber, 1 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 1 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } @@ -1142,128 +1142,128 @@ module ieee802-ethernet-phy-type { identity pmd-type-50G-10GBASE-PQG-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQG-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQG-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, medium power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQG-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQX-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQX-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 10.3125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 10.3125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQX-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, medium power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50G-10GBASE-PQX-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 10.3125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 10.3125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQG-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQG-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQG-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQG-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQX-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQX-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 1 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 1 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQX-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50G-25GBASE-PQX-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 1 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 1 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } @@ -1347,64 +1347,64 @@ module ieee802-ethernet-phy-type { identity pmd-type-50GBASE-PQG-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 2 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 2 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQG-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 2 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 2 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQG-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 2 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 2 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQG-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 2 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 2 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQX-D2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 2 × 25.78125 GBd burst mode reception, medium + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 2 x 25.78125 GBd burst mode reception, medium power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQX-D3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous - transmission / 2 × 25.78125 GBd burst mode reception, high + "One single mode fiber, 2 x 25.78125 GBd continuous + transmission / 2 x 25.78125 GBd burst mode reception, high power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQX-U2 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 2 × 25.78125 GBd burst mode transmission, medium power + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 2 x 25.78125 GBd burst mode transmission, medium power class, as specified in Clause 141"; } identity pmd-type-50GBASE-PQX-U3 { base pmd-type; description - "One single mode fiber, 2 × 25.78125 GBd continuous reception - / 2 × 25.78125 GBd burst mode transmission, high power class, + "One single mode fiber, 2 x 25.78125 GBd continuous reception + / 2 x 25.78125 GBd burst mode transmission, high power class, as specified in Clause 141"; } @@ -1422,7 +1422,7 @@ module ieee802-ethernet-phy-type { Clause 138"; } - identity pmd-type-100CR1 { + identity pmd-type-100GBASE-CR1 { base pmd-type; description "100GBASE-CR1 as specified in Clause 162 or 100GBASE-KR1 as @@ -1765,7 +1765,7 @@ module ieee802-ethernet-phy-type { base pmd-type; description "Multi-lane PCS as specified in Clause 172 over - undefined PMA/PMD"; + undefined PMA/PMD"; } identity pmd-type-800GBASE-SR8 { @@ -2628,7 +2628,7 @@ module ieee802-ethernet-phy-type { description "25GBASE-T1"; } - /* 802.3ca-2023 */ + /* 802.3df-2024 */ bit bit400GBaseDR4d2 { description "400GBASE-DR4-2"; @@ -2666,7 +2666,7 @@ module ieee802-ethernet-phy-type { "This data type is used to report the set of pmd-type values an interface can implement."; reference - "IEEE Std 802.3, Clause 30.5.1.1.3 aMAUTypeList"; + "IEEE Std 802.3, 30.5.1.1.3 aMAUTypeList"; } typedef media-available-type { @@ -2738,7 +2738,7 @@ module ieee802-ethernet-phy-type { description "This data type is used to report media availability."; reference - "IEEE Std 802.3, Clause 30.5.1.1.4 aMediaAvailable"; + "IEEE Std 802.3, 30.5.1.1.4 aMediaAvailable"; } typedef auto-neg-ability-bits { @@ -2950,6 +2950,6 @@ module ieee802-ethernet-phy-type { and ieee802-eth-phy-auto-neg-cap-received-bits objects in ieee802-eth-phy-auto-neg-table."; reference - "IEEE Std 802.3, Clause 30.6.1.1.5"; + "IEEE Std 802.3, 30.6.1.1.5"; } } diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-phy.yang b/standard/ieee/published/802.3/ieee802-ethernet-phy.yang similarity index 92% rename from standard/ieee/draft/802.3/ieee802-ethernet-phy.yang rename to standard/ieee/published/802.3/ieee802-ethernet-phy.yang index 29e04107d..e27aed1c6 100644 --- a/standard/ieee/draft/802.3/ieee802-ethernet-phy.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-phy.yang @@ -29,9 +29,9 @@ module ieee802-ethernet-phy { contact "Web URL: http://www.ieee802.org/3/"; description - "This module contains YANG definitions for 802.3 PHYs and PMDs."; + "This module contains YANG definitions for 802.3 PHYs and PMDs."; - revision 2025-04-17 { + revision 2025-09-10 { description "Initial revision derived from IEEE8023-MAU-MIB using smidump."; @@ -112,7 +112,7 @@ module ieee802-ethernet-phy { } } description - "Enabled, disabled or unknown."; + "Enabled, disabled, or unknown."; } augment "/if:interfaces/if:interface" { @@ -160,12 +160,12 @@ module ieee802-ethernet-phy { MAY be implemented as a read-only object by devices that do not implement software control of the interface state. Some devices may not support setting the value - tof this object to some of the enumerated values. + of this object to some of the enumerated values. - This can be set to “standby”, “operational”, and - “shutdown” state, except that a “standby” action + This can be set to 'standby', 'operational', and + 'shutdown' state, except that a 'standby' action to a multidrop interface will cause the interface - to enter the “shutdown” management state."; + to enter the 'shutdown' management state."; reference "IEEE Std 802.3, 30.5.1.2.2 acMAUAdminControl"; } @@ -199,7 +199,7 @@ module ieee802-ethernet-phy { } description "The FEC mode across the MDI of the port. - BASE-R-enabled, RS-FEC-enabled and + BASE-R-enabled, RS-FEC-enabled, and RS-FEC-Int-enabled are only used for PHYs which support more than one type of FEC operation. When Clause 73 Auto-Negotiation is enabled, this @@ -227,7 +227,7 @@ module ieee802-ethernet-phy { description "This object identifies the PHY type."; reference - "IEEE Std 802.3, 30.5.1.1.2, aPHYType."; + "IEEE Std 802.3, 30.3.2.1.2, aPHYType."; } leaf pmd-type { type identityref { @@ -271,7 +271,7 @@ module ieee802-ethernet-phy { leaf phy-media-available { type ieee802-phy:media-available-type; description - "This object reports if the media is availeable."; + "This object reports if the media is available."; reference "IEEE Std 802.3, 30.5.1.1.4, aMediaAvailable."; } @@ -305,7 +305,7 @@ module ieee802-ethernet-phy { leaf jabbering-state-enters { type yang:counter64; description - "The number of times this interface detected JABBER."; + "The number of times this interface detected JABBER."; reference "IEEE Std 802.3, 30.5.1.1.6, aJabber.jabberCounter."; @@ -350,7 +350,7 @@ module ieee802-ethernet-phy { description "The FEC modes this port supports."; reference - "IEEE Std 802.3, 30.5.1.1.15, 30.5.1.1.16 + "IEEE Std 802.3, 30.5.1.1.15, 30.5.1.1.16, 30.5.1.1.29, 30.5.1.1.30, 30.5.1.1.33, 30.5.1.1.34"; } @@ -383,7 +383,7 @@ module ieee802-ethernet-phy { } description "The FEC mode of the PHY. - BASE-R-enabled, RS-FEC-enabled and + BASE-R-enabled, RS-FEC-enabled, and RS-FEC-Int-enabled are only used by PHYs which support more than one type of FEC operation."; reference @@ -430,7 +430,7 @@ module ieee802-ethernet-phy { leaf snr-op-margin-chnl-d { type snr-value; description - "The current SNR operating margin on channel CD + "The current SNR operating margin on channel D on this port for MultiGBASE-T PMAs."; reference "IEEE Std 802.3, 30.5.1.1.22"; @@ -454,7 +454,7 @@ module ieee802-ethernet-phy { } } description - "The TimeSync capabities of this port."; + "The TimeSync capabilities of this port."; reference "IEEE Std 802.3, 30.13.1.1, 30.13.1.2"; } @@ -463,7 +463,7 @@ module ieee802-ethernet-phy { units "nano-seconds"; description "The maximum transmit data delay between - the xMII input to the MDI output."; + the xMII input and the MDI output."; reference "IEEE Std 802.3, 30.13.1.3"; } @@ -472,7 +472,7 @@ module ieee802-ethernet-phy { units "nano-seconds"; description "The minimum transmit data delay between - the xMII input to the MDI output."; + the xMII input and the MDI output."; reference "IEEE Std 802.3, 30.13.1.4"; } @@ -481,18 +481,18 @@ module ieee802-ethernet-phy { units "nano-seconds"; description "The maximum receive data delay between - the MDI input to the xMII output."; + the MDI input and the xMII output."; reference - "IEEE Std 802.3, 30.13.5"; + "IEEE Std 802.3, 30.13.1.5"; } leaf time-sync-delay-rx-min { type int32; units "nano-seconds"; description "The minimum receive data delay between - the MDI input to the xMII output."; + the MDI input and the xMII output."; reference - "IEEE Std 802.3, 30.13.5"; + "IEEE Std 802.3, 30.13.1.6"; } } } @@ -526,7 +526,7 @@ module ieee802-ethernet-phy { will always indicate zero. It can increment at a maximum rate of once - per 100 ms for 100BASE-X and once per 10us + per 100 ms for 100BASE-X and once per 10 us for 1000BASE-X."; reference "IEEE Std 802.3, 30.5.1.1.10, aFalseCarriers."; @@ -534,8 +534,8 @@ module ieee802-ethernet-phy { leaf pcs-coding-violations { type yang:counter64; description - "The number of PCS coding violations for 100Mb/s and - 1000Mb/s ports. + "The number of PCS coding violations for 100 Mb/s and + 1000 Mb/s ports. This counter increments at a maximum rate of 25 thousand per second for 100 Mb/s implementations and @@ -589,14 +589,14 @@ module ieee802-ethernet-phy { leaf fec-corrected-blocks { type counter-pcs-lane; description - "The number blocks that FEC corrected."; + "The number of blocks that FEC corrected."; reference "IEEE Std 802.3, 30.5.1.1.17"; } leaf fec-uncorrected-blocks { type counter-pcs-lane; description - "The number blocks that FEC could not correct."; + "The number of blocks that FEC could not correct."; reference "IEEE Std 802.3, 30.5.1.1.18"; } @@ -617,7 +617,7 @@ module ieee802-ethernet-phy { description "Enable/disable Auto-Negotiation for this interface."; reference - "IEEE Std 802.3, 30.6.1.1.2, acAutoNegAdminControl."; + "IEEE Std 802.3, 30.6.1.2.2, acAutoNegAdminControl."; } leaf auto-neg-restart { type boolean; @@ -668,7 +668,7 @@ module ieee802-ethernet-phy { enum parallelDetectFail { description "Auto-Negotiation failed because the - link partner does not suport, or has + link partner does not support, or has disabled, Auto-Negotiation."; } } @@ -692,7 +692,7 @@ module ieee802-ethernet-phy { Auto-Negotiation entity."; reference "IEEE Std 802.3, 30.6.1.1.6, - aAutoNegadvertisedTechnologyAbility."; + aAutoNegAdvertisedTechnologyAbility."; } leaf auto-neg-cap-received-bits { type ieee802-phy:auto-neg-ability-bits; @@ -701,7 +701,7 @@ module ieee802-ethernet-phy { the link partner."; reference "IEEE Std 802.3, 30.6.1.1.7, - aAutoNegreceivedTechnologyAbility."; + aAutoNegReceivedTechnologyAbility."; } } } diff --git a/standard/ieee/published/802.3/ieee802-ethernet-pon.yang b/standard/ieee/published/802.3/ieee802-ethernet-pon.yang index 37c54c2aa..36ac46163 100755 --- a/standard/ieee/published/802.3/ieee802-ethernet-pon.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-pon.yang @@ -1,2467 +1,2195 @@ -module ieee802-ethernet-pon { - yang-version 1.1; - - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pon"; - - prefix "ieee802-eth-pon"; - - import ietf-yang-types { - prefix "yang"; - reference "IETF RFC 6991"; - } - - import ietf-interfaces { - prefix "if"; - reference "IETF RFC 8343"; - } - - import ieee802-ethernet-interface { - prefix "ieee802-eth-if"; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - - contact - "Web URL: http://www.ieee802.org/3/"; - - description - "This module contains a collection of YANG definitions for - managing the Multi Point Control Protocol for Ethernet PON (EPON), - as defined in IEEE Std 802.3, Clause 64 and Clause 77. - - This YANG module augments the 'ethernet' module."; - - revision 2019-06-21{ - description "Initial revision."; - reference - "IEEE Std 802.3-2018, Clause 64 and Clause 77, unless dated explicitly - IEEE Std 802.3.1-2013, Clause 9, unless dated explicitly"; - } - - typedef mpcp-supported { - type boolean; - - description - "This object indicates that the given interface supports MPCP, - i.e., it is an Ethernet PON (EPON) interface."; - } - - typedef mpcp-llid { - type uint64 { - range "0 .. 32767"; - } - - description - "Logical Link Identifiers (LLIDs) are used to identify a single - MAC from a number of MACs which may be present in the - EPON OLT or ONU. LLIDs between the value of 0x07FFE - and 0x7FFF are assigned for ONU discovery and registration. - Other LLIDs are dynamically assigned by the OLT during the - registration process. For a complete description of how the - LLID is used in an EPON device, see IEEE Std 802.3, Clause 65 - for 1G-EPON and Clause 76 for 10G-EPON."; - - reference - "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and 76.2.6.1.3 for 10G-EPON"; - } - - typedef mpcp-maximum-queue-count-per-report { - type uint8 { - range "0..7"; - } - - default "0"; - - description - "Defines the maximum number of queues (0-7) in the REPORT - MPCPDU as defined in IEEE Std 802.3, Clause 64 and Clause 77."; - } - - typedef mpcp-llid-count { - type uint64 { - range "0 .. 32767"; - } - - description - "Indicates the number of registered LLIDs. The initialization - value is 0. This is applicable for an OLT with the same value - for all logical interfaces and for an ONU."; - - reference - "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and 76.2.6.1.3 for 10G-EPON"; - - } - - typedef mpcp-admin-state { - type enumeration { - - enum enabled { - description - "When selecting the value of 'enabled', the MultiPoint - Control Protocol sublayer on the OLT / ONU is enabled."; - } - - enum disabled { - description - "When selecting the value of 'disabled', the MultiPoint - Control Protocol sublayer on the OLT / ONU is disabled."; - } - } - - description - "Enumeration of valid administrative states for a MultiPoint MAC - Control sublayer on the OLT or ONU."; - - reference - "IEEE Std 802.3, 30.3.5.2.1"; - } - - typedef mpcp-mode { - type enumeration { - enum olt { - description - "MPCP mode: olt"; - } - - enum onu { - description - "MPCP mode: onu"; - } - } - - description - "Enumeration of valid MPCP modes for EPON interfaces."; - - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - - typedef mpcp-logical-link-state { - type enumeration { - enum unregistered { - description - "MPCP registration state: logical link is NOT registered."; - } - - enum registering { - description - "MPCP registration state: logical link is currently in the - process of registering."; - } - - enum registered { - description - "MPCP registration state: logical link is currently - registered."; - } - } - - description - "Enumeration of valid MPCP registration states for EPON - interfaces."; - - reference - "IEEE Std 802.3, 30.3.5.1.6"; - } - - typedef mpcp-logical-link-admin-state { - type enumeration { - enum reset { - description - "When read, the value of 'reset' indicates that the given - logical link on the OLT / ONU has been reset."; - } - enum operate { - description - "When read, the value of 'operate' indicates that the - given logical link on the OLT / ONU has moved into - operating mode."; - } - enum unknown { - description - "When read, the value of 'unknown' indicates that the - status of the given logical link on the OLT / ONU is - currently not known."; - } - enum registered { - description - "When read, the value of 'registered' indicates that the - given logical link on the OLT / ONU has been registered."; - } - enum deregistered { - description - "When read, the value of 'deregistered' indicates that the - given logical link on the OLT / ONU has been deregistered."; - } - enum reregistered { - description - "When read, the value of 'reregistered' indicates that the - given logical link on the OLT / ONU has been reregistered."; - } - } - description - "Enumeration of valid administrative states for a logical link - on the OLT or ONU."; - } - - typedef ompe-mode { - type enumeration { - enum unknown { - description - "omp-emulation mode: unknown = system is initializing"; - } - - enum olt { - description - "omp-emulation mode: olt"; - } - - enum onu { - description - "omp-emulation mode: onu"; - } - } - - description - "Enumeration of valid OMP-Emulation modes for EPON - interfaces."; - - reference - "IEEE Std 802.3, 30.3.7.1.2"; - } - - typedef fec-capability { - type enumeration { - enum unknown { - description - "FEC capability: unknown = system is initializing."; - } - - enum supported { - description - "FEC capability: supported."; - } - - enum "not supported" { - description - "FEC capability: not supported."; - } - } - - description - "Enumeration of valid FEC capability values for EPON - interfaces with enabled MPCP."; - - reference - "IEEE Std 802.3, 30.5.1.1.15"; - } - - typedef fec-mode { - type enumeration { - enum unknown { - description - "FEC mode: unknown = system is initializing."; - } - - enum disabled { - description - "FEC mode: disabled = FEC is disabled for the given - logical link (both Tx and Rx directions)."; - } - - enum enabled-Tx-Rx { - description - "FEC mode: enabled-Tx-Rx = FEC is enabled for the given - logical link in both Tx and Rx directions."; - } - - enum enabled-Tx-only { - description - "FEC mode: enabled-Tx-only = FEC is enabled for - the given logical link but only in Tx direction."; - } - - enum enabled-Rx-only { - description - "FEC mode: enabled-Rx-only = FEC is enabled for - the given logical link but only in Rx direction."; - } - } - - description - "Enumeration of valid FEC modes for EPON interfaces."; - - reference - "IEEE Std 802.3, 30.5.1.1.16"; - } - - typedef trx-admin-state { - type enumeration { - enum enabled { - description - "When read as 'enabled', the transmitter is enabled and - operating under the control of the logical control protocol. - When set to 'enabled', the transmitter is enabled to - operate under the control of the logical control protocol."; - } - - enum disabled { - description - "When read as 'disabled', the transmitter is currently - disabled (not transmitting). When set to 'disabled', the - transmitter is expected to be disabled (to stop transmitting)."; - } - } - - description - "Enumeration of valid administrative states for an optical - transceiver."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; - } - - feature trx-power-level-reporting-supported { - - description - "This object indicates the support for optical transceiver power - level monitoring and reporting capability. When 'true', the - given interface supports the optical power level monitoring - and reporting function. Otherwise, the value is 'false'."; - } - - feature - fec-supported { - description - "This object indicates the support of operation of the optional - FEC sublayer of the 1G-EPON PHY specified in IEEE Std 802.3, - 65.2. The value of 'unknown' is reported in the initialization, - for non FEC support state or type not yet known. The value of - 'not supported' is reported when the sublayer is not supported. - The value of 'supported' is reported when the sublayer is - supported. This object is applicable for an OLT, with the - same value for all logical links, and for an ONU."; - - reference - "IEEE Std 802.3, 30.5.1.1.15"; - } - - identity state-change-action-type { - description - "Type of interface state change requested."; - } - identity power-down { - base state-change-action-type; - description - "Power down the EPON logical interface. - Power-down actions are applicable for the OLT and ONU. A - power down of a specific logical interface affects only - the logical interface (and not the physical interface). - the logical interface will be unavailable while the - power-down occurs and data may be lost. Other logical - interface are unaffected by power-down. - - This action is relevant when the admin state is active."; - - } - identity power-up { - base state-change-action-type; - description - "Exit EPON logical interface power-down state."; - } - - identity reset-action-type { - description - "Type of reset action requested."; - } - identity reset-interface { - base reset-action-type; - description - "Reset the EPON logical interface. Resetting an interface - can lead an interruption of service for the users connected - to the respective EPON interface. - - This object is applicable for an OLT and an ONU. At the - OLT, it has a distinct value for each logical interface. - A reset for a specific logical interface resets only - this logical interface and not the physical interface. - - Thus, a logical link that is malfunctioning can be - reset without affecting the operation of other logical - interfaces. - - The reset can cause Discontinuities in the values of the - counters of the interface, similar to re-initialization - of the management system."; - } - identity register-type { - description - "Type of registration requested."; - } - identity register { - base register-type; - description - "Register indicates a request to register an LLID. - This action applies to an OLT or ONU logical interface."; - } - identity reregister { - base register-type; - description - "Re-register indicates an request to re-register an LLID. - This action applies to an OLT or ONU logical interface."; - } - identity deregister { - base register-type; - description - "De-register indicates an request to de-register an LLID. - This action applies to an OLT or ONU logical interface. - Deregister may result in an interruption of service to - users connected to the respective EPON interface."; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - description - "Augments the definition of Ethernet interface (/if:interfaces/ - if:interface/ieee802-eth-if:ethernet) module with nodes - specific to Ethernet PON (EPON)."; - - - leaf fec-mode { - if-feature "fec-supported"; - - type fec-mode; - - description - "This object reflects the current administrative state of the - FEC function for the given logical link on an ONU or OLT. - - When reading the value of 'disabled', the FEC function on the - given logical link is disabled. - - When reading the value of 'enabled-Tx-Rx', the FEC function on - the given logical link is enabled in both Tx and Rx directions. - - When reading the value of 'enabled-Tx-only', the FEC function - on the given logical link is enabled in Tx direction only. - - When reading the value of 'enabled-Rx-only', the FEC function - on the given logical link is enabled in Rx direction only. - - When reading the value of 'unknown', the state of the FEC - function on the given logical link is unknown or the FEC - function is currently initializing. - - This object is applicable for an OLT and an ONU. This object has - the same value for each logical link."; - - reference - "IEEE Std 802.3, 30.5.1.1.16"; - } - - leaf mpcp-admin-state { - type mpcp-admin-state; - - description - "This object reflects the current administrative state of the - MultiPoint MAC Control sublayer, as defined in IEEE Std 802.3, - Clause 64 and Clause 77, for the OLT / ONU. - - When reading the value of 'enabled', the MultiPoint Control - Protocol on the OLT / ONU is enabled. - - When reading the value of 'disabled', the MultiPoint Control - Protocol on the OLT / ONU is disabled. - - This object is applicable for an OLT and an ONU. It has the - same value for all logical links."; - - reference - "IEEE Std 802.3, 30.3.5.1.2"; - } - - leaf mpcp-logical-link-admin-state { - type mpcp-logical-link-admin-state; - config false; - description - "This object reflects the current administrative state of a - logical link on an ONU or OLT. - - When reading the value of 'reset', the given logical link is - undergoing a reset. - - When reading the value of 'unknown', the current status of the - given logical link is unknown and the link might be undergoing - initialization. - - When reading the value of 'operate', the given logical link is - operating normally. - - When reading the value of 'registered', the given logical link - was requested to perform registration. - - When reading the value of 'deregistered', the given logical - link was requested to perform deregistration. - - When reading the value of 'reregistered', the given logical - link was requested to perform reregistration. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectRegisterAction"; - } - - leaf trx-transmit-admin-state { - when - "../../ieee802-eth-if:ethernet/ - ieee802-eth-pon:mpcp-admin-state = 'enabled'"; - - if-feature "trx-power-level-reporting-supported"; - - type trx-admin-state; - - description - "This object reflects the current status of the transmitter in - the optical transceiver. - - When read as 'enabled', the optical transmitter is enabled and - operating under the control of the logical control protocol. - - When read as 'disabled', the optical transmitter is disabled. - - This object is applicable for an OLT and an ONU. At the OLT, this - object has a distinct value for each logical link. - - The value of this object is only reliable when - /if:interfaces-state/if:interface/ieee802-eth-if:ethernet/ - 'mpcp-admin-state' is equal to 'enabled'."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; - } - - container capabilities { - - config false; - description - "This container includes all EPON interface-specific capabilities."; - - leaf mpcp-supported { - type mpcp-supported; - - default - "true"; - description - "This object indicates that the given interface supports MPCP, - i.e., it is an Ethernet PON (EPON) interface."; - } - } - - container statistics-mpcp { - config false; - description - "This container defines a set of MPCP-related statistics - counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 64 and Clause 77."; - - leaf out-mpcp-mac-ctrl-frames { - type yang:counter64; - - units frames; - - config false; - - description - "A count of MPCP frames passed to the MAC sublayer for - transmission. - - This counter is incremented when a MA_CONTROL.request - service primitive is generated within the MAC control - sublayer with an opcode indicating an MPCP frame. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system, and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.7"; - } - - leaf in-mpcp-mac-ctrl-frames { - type yang:counter64; - - units frames; - - config false; - - description - "A count of MPCP frames passed by the MAC sublayer to the - MAC Control sublayer. - - This counter is incremented when a frame is received at the - interface which is an MPCP frame or has a Length/Type Ethernet - header field value equal to the Type assigned for - 802.3_MAC_Control as specified in IEEE Std 802.3, 31.4.1.3. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.8"; - } - - leaf mpcp-discovery-window-count { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units "discovery windows"; - - config false; - - description - "A count of discovery windows generated by the OLT. - - The counter is incremented by one for each generated - discovery window. - - This object is applicable for an OLT and has the same value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.22"; - } - - leaf mpcp-discovery-timeout-count { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units "discovery timeouts"; - - config false; - - description - "A count of the number of times a discovery timeout occurs. - - This counter is incremented by one for each discovery - processing state-machine reset resulting from timeout - waiting for message arrival. - - This object is applicable for an OLT and has the same value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.23"; - } - - leaf out-mpcp-register-req { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER_REQ MPCP frame - transmission occurs. - - This counter is incremented by one for each REGISTER_REQ MPCP - frame transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has the same value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.12"; - } - - leaf in-mpcp-register-req { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER_REQ MPCP frame - reception occurs. - - This counter is incremented by one for each REGISTER_REQ MPCP - frame received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has the same value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.17"; - } - - leaf out-mpcp-register-ack { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER_ACK MPCP frame - transmission occurs. - - This counter is incremented by one for each REGISTER_ACK MPCP - frame transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.10"; - } - - leaf in-mpcp-register-ack { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER_ACK MPCP frame - reception occurs. - - This counter is incremented by one for each REGISTER_ACK MPCP - frame received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.15"; - } - - leaf out-mpcp-report { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REPORT MPCP frame - transmission occurs. - - This counter is incremented by one for each REPORT MPCP frame - transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct value for - each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.13"; - } - - leaf in-mpcp-report { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REPORT MPCP frame - reception occurs. - - This counter is incremented by one for each REPORT MPCP frame - received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.18"; - } - - leaf out-mpcp-gate { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a GATE MPCP frame - transmission occurs. - - This counter is incremented by one for each GATE MPCP frame - transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.9"; - } - - leaf in-mpcp-gate { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a GATE MPCP frame reception - occurs. - - This counter is incremented by one for each GATE MPCP frame - received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct value - for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.14"; - } - - leaf out-mpcp-register { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER MPCP frame - transmission occurs. - - This counter is incremented by one for each REGISTER MPCP - frame transmitted as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct - value for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.11"; - } - - leaf in-mpcp-register { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of the number of times a REGISTER MPCP frame - reception occurs. - - This counter is incremented by one for each REGISTER MPCP - frame received as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - This object is applicable for an ONU and has a distinct value - for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.5.1.16"; - } - } - - container statistics-ompe { - description - "This container defines a set of OMP-Emulation-related - statistics counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 65 and Clause 76."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; - - leaf in-ompe-frames-errored-sld { - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that do not contain a valid SLD - field as defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.3"; - } - - leaf in-ompe-frames-errored-crc8 { - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1 as - appropriate, but do not pass the CRC-8 check as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3 as appropriate. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities of this counter can occur at - re-initialization of the management system and at other - times, as indicated by the value of the 'discontinuity-time' - leaf defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.4"; - } - - leaf ompe-onu-frames-with-good-llid-good-crc8 { - when "../../ompe-mode = 'onu'"; - type yang:counter64; - units frames; - config false; - description - "A count of frames received that 1) contain a valid SLD field - in an ONU, 2) meet the rule for frame acceptance, and - 3) pass the CRC-8 check. - - The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - The rules for LLID acceptance are defined in IEEE Std 802.3, - 65.1.3.3.2 or 76.2.6.1.3.2, as appropriate. - - The CRC-8 check is defined in IEEE Std 802.3, - 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. - - This object is applicable for an ONU and has a distinct value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - reference - "IEEE Std 802.3, 30.3.7.1.6"; - } - - leaf ompe-olt-frames-with-good-llid-good-crc8 { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - units frames; - config false; - description - "A count of frames received that 1) contain a valid SLD field - in an OLT, and 2) pass the CRC-8 check. - - The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or - 76.2.6.1.3.1, as appropriate. - - The frame acceptance are defined in IEEE Std 802.3, - 65.1.3.3.2 or 76.2.6.1.3.2, as appropriate. - - The CRC-8 check is defined in IEEE Std 802.3, - 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. - - This object is applicable for an OLT and has a distinct - value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other - times as indicated by the value of the - 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.6"; - } - - leaf in-ompe-frames-with-bad-llid { - when "../../ompe-mode = 'olt'"; - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, as - defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, and pass the CRC-8 check as defined in IEEE Std - 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate, but are - discarded due to the LLID check. - - This object is applicable for an OLT and has a distinct value - for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.8"; - } - - leaf in-ompe-frames-with-good-llid { - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1 as - appropriate, but do not pass the CRC-8 check as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3 as appropriate. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.4"; - } - - leaf in-ompe-frames { - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, and pass the CRC-8 check as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.3.7.1.6 (ONU) and 30.3.7.1.7 (OLT)"; - } - - leaf in-ompe-frames-not-match-onu-llid-broadcast { - when "../../ompe-mode = 'onu'"; - - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, pass the CRC-8 check, as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate, - and contain the broadcast bit in the LLID and not the ONU's - LLID (frame accepted) as defined in IEEE Std 802.3, - Clause 65 and Clause 76, as appropriate. - - This object is applicable for an ONU only. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationBroadcastBitNotOnuLlid"; - } - - leaf in-ompe-frames-match-onu-llid-not-broadcast { - when "../../ompe-mode = 'onu'"; - - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, pass the CRC-8 check, as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate, - and contain the ONU's LLID (frame accepted) as defined in - IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. - - This object is applicable for an ONU only. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationOnuLLIDNotBroadcast"; - } - - leaf in-ompe-frames-match-onu-llid-broadcast { - when "../../ompe-mode = 'onu'"; - - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, pass the CRC-8 check, as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate, - and contain the broadcast bit in the LLID and the ONU's LLID - (frame accepted) as defined in IEEE Std 802.3, Clause 65 and - Clause 76, as appropriate. - - This object is applicable for an ONU only. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationBroadcastBitPlusOnuLlid"; - } - - leaf in-ompe-frames-not-match-onu-llid-not-broadcast { - when "../../ompe-mode = 'onu'"; - - type yang:counter64; - - units frames; - - config false; - - description - "A count of frames received that contain a valid SLD field, - as defined in IEEE Std 802.3, 65.1.3.3.1 or 76.2.6.1.3.1, as - appropriate, pass the CRC-8 check, as defined in - IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate, - do not contain the broadcast bit in the LLID and do not - contain the ONU's LLID (frame is NOT accepted) as defined in - IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. - - This object is applicable for an ONU only. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationNotBroadcastBitNotOnuLlid"; - } - } - container thresholds-trx { - if-feature "trx-power-level-reporting-supported"; - - description - "This container defines a set of optical transceiver - thresholds of an EPON interface as defined in - IEEE Std 802.3, Clause 60 and Clause 75."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; - - leaf in-trx-power-low-threshold { - if-feature "trx-power-level-reporting-supported"; - - type int32; - - units "0.1 dBm"; - - description - "This object reflects the current setting of low alarm - threshold for the input power into the optical receiver. - If the value reported in 'in-trx-power' object drops below - the value set in 'in-trx-power-low-threshold', a - 'in-trx-power-low-threshold-crossing' event is generated. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowerInputPowerThreshold"; - } - - leaf in-trx-power-high-threshold { - if-feature "trx-power-level-reporting-supported"; - - type int32; - - units "0.1 dBm"; - - description - "This object reflects the current setting of high alarm - threshold for the input power into the optical receiver. If - the value reported in 'in-trx-power' object exceeds the - value set in 'in-trx-power-high-threshold', a - 'in-trx-power-high-threshold-crossing' event is generated. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfUpperInputPowerThreshold"; - } - - leaf out-trx-power-low-threshold { - if-feature "trx-power-level-reporting-supported"; - - type int32; - - units "0.1 dBm"; - - description - "This object reflects the current setting of low alarm - threshold for the output power out of the optical - transmitter. If the value reported in 'out-trx-power' object - drops below the value set in 'out-trx-power-low-threshold', - a 'out-trx-power-low-threshold-crossing' event is generated. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowerOutputPowerThreshold"; - } - - leaf out-trx-power-high-threshold { - if-feature "trx-power-level-reporting-supported"; - - type int32; - - units "0.1 dBm"; - - description - "This object reflects the current setting of high alarm - threshold for the output power out of the optical - transmitter. If the value reported in 'out-trx-power' object - exceeds the value set in 'out-trx-power-high-threshold', a - 'out-trx-power-high-threshold-crossing' event is generated. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfUpperOutputPowerThreshold"; - } - } - container statistics-trx { - if-feature "trx-power-level-reporting-supported"; - - description - "This container defines a set of optical transceiver - statistics counters of an EPON interface as defined in - IEEE Std 802.3, Clause 60 and Clause 75."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; - - leaf in-trx-power-signal-detect { - type boolean; - - config false; - - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not (when read as 'false') - at the input to the optical transceiver. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSignalDetect"; - } - - leaf in-trx-power { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the value of the input power, as - measured at the optical transceiver, expressed in units of - 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner. - - At the OLT, the measurement is performed in a burst-mode - manner, for each incoming data burst. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfInputPower"; - } - - leaf in-trx-power-low-15-minutes-bin { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the lowest value of the input power - during the period of the last 15 minutes, as measured at the - optical transceiver, and expressed in units of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long observation - bin. - - At the OLT, the measurement is the average power for each - incoming data burst, and stored in a rolling 15-minutes' - long observation bin. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowInputPower"; - } - - leaf in-trx-power-high-15-minutes-bin { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the highest value of the input power - during the period of the last 15 minutes, as measured at the - optical transceiver, and expressed in units of 0.1 dBm. - - At the ONU, the measurement is performed in a continuous - manner and stored in a rolling 15-minutes' long observation - bin. - - At the OLT, the measurement is the average power for each - incoming data burst, and stored in a rolling 15-minutes' - long observation bin. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighInputPower"; - } - - leaf out-trx-power-signal-detect { - type boolean; - - config false; - - description - "This object indicates whether a valid optical signal was - detected (when read as 'true') or not (when read as 'false') - at the output from the optical transceiver. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitAlarm"; - } - - leaf out-trx-power { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the value of the output power, as - measured at the optical transceiver, expressed in units of - 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner for each outgoing data burst. - - At the OLT, the measurement is performed in a continuous - manner. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfOutputPower"; - } - - leaf out-trx-power-low-15-minutes-bin { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the lowest value of the output power - during the period of the last 15 minutes, as measured at the - optical transceiver, and expressed in units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long observation - bin. - - At the OLT, the measurement is the average power for each - incoming data burst, and stored in a rolling 15-minutes' - long observation bin. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfLowOutputPower"; - } - - leaf out-trx-power-high-15-minutes-bin { - type int32; - - units "0.1 dBm"; - - config false; - - description - "This object reflects the highest value of the output power - during the period of the last 15 minutes, as measured at the - optical transceiver, and expressed in units of 0.1 dBm. - - At the ONU, the measurement is performed in a burst-mode - manner and stored in a rolling 15-minutes' long observation - bin. - - At the OLT, the measurement is the average power for each - incoming data burst, and stored in a rolling 15-minutes' - long observation bin. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfHighOutputPower"; - } - - leaf trx-data-reliable { - if-feature "trx-power-level-reporting-supported"; - - type boolean; - - config false; - - description - "This object indicates whether data contained in individual - counters in 'statistics-trx' container are reliable - (when read as 'true') or not (when read as 'false'). - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgOptIfSuspectedFlag"; - } - - } - - container statistics-pon-fec { - when - "(../fec-capability = 'supported') and - (../fec-mode = 'enabled-Tx-Rx')"; - - if-feature "fec-supported"; - - config false; - - description - "This container defines a set of FEC-related statistics - counters of an EPON interface, as defined in - IEEE Std 802.3, Clause 65 and Clause 76."; - - reference - "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; - - leaf fec-code-group-violations { - type yang:counter64; - - units code-group; - - config false; - - description - "For 1G-EPON this is a count of the number of events that - cause the PHY to indicate ’Data reception error’ or - ’Carrier Extend Error’ on the GMII (see IEEE Std 802.3, - Table 35-1). The contents of this counter is undefined when - FEC is operating. For 10G-EPON this object is not applicable. - - This object is applicable for an OLT and an ONU. At the - OLT, it has a distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.5.1.1.14"; - } - - leaf fec-buffer-head-coding-violations { - type yang:counter64; - - units code-group; - - config false; - - description - "For 1G-EPON PHY, this object represents the count of the - number of invalid code-groups received directly from the - link when FEC is enabled. When FEC is disabled this - counter stops counting. - - For 10G-EPON PHYs, this object is set to zero. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3EponFecBufferHeadCodingViolation"; - } - - leaf fec-code-word-corrected-errors { - type yang:counter64; - - units code-group; - - config false; - - description - "For 1G-EPON or 10G-EPON PHYs, this object represents a count - of corrected FEC blocks. - - This counter increments by one for each received FEC block - that contained detected errors and was corrected by the FEC - function in the PHY. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.5.1.1.17"; - } - - leaf fec-code-word-uncorrected-errors { - type yang:counter64; - - units code-group; - - config false; - - description - "For 1G-EPON or 10G-EPON PHYs, this object represents a count of - uncorrectable FEC blocks. - - This counter increments by one for each received FEC block - that contained detected errors and was not corrected by the - FEC function in the PHY. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3, 30.5.1.1.18"; - } - } - - container mpcp-logical-link-admin-actions { - description - "Container of actions."; - action state-change-action-type { - description - "Request a state change on the interface."; - input { - leaf state-change-action-type { - type identityref { - base state-change-action-type; - } - description - "Type of interface state change requested."; - } - } - } - action reset-action-type { - description - "Request a reset-action of the interface."; - input { - leaf reset-action-type { - type identityref { - base reset-action-type; - } - description - "Type of reset action requested of the interface."; - } - } - } - action register-type { - description - "Request a registration action."; - input { - leaf register-type { - type identityref { - base register-type; - } - description - "Type of registration action requested of the interface."; - } - } - } - } - - list mpcp-queues { - key mpcp-queue-index; - - description - "An instance of this object for each value of - 'mpcp-queue-index' is created when a new logical link is - registered and deleted when the logical link is deregistered. - - All instances of this object in the ONU associated with the - given logical link are then mapped to a REPORT MPCPDU, when - generated. - - +-----------------------------------+ - | Destination Address | - +-----------------------------------+ - | Source Address | - +-----------------------------------+ - | Length/Type | - +-----------------------------------+ - | OpCode | - +-----------------------------------+ - | TimeStamp | - +-----------------------------------+ - | Number of Queue Sets | - +-----------------------------------+ -| - | Report bitmap | | - +-----------------------------------+ | - | Queue 0 report | | - +-----------------------------------+ | repeated - | Queue 1 report | | for every - +-----------------------------------+ | Queue Set - | Queue 2 report | | - +-----------------------------------+ | - | Queue 3 report | | - +-----------------------------------+ | - | Queue 4 report | | - +-----------------------------------+ | - | Queue 5 report | | - +-----------------------------------+ | - | Queue 6 report | | - +-----------------------------------+ | - | Queue 7 report | | - +-----------------------------------+ -| - | Pad/reserved | - +-----------------------------------+ - | FCS | - +-----------------------------------+ - - The 'Queue N report' field reports the current occupancy of - each upstream transmission queue associated with the given - logical link. - - The 'Number of Queue Sets' field defines the number of - reported 'Queue N report' sets. - - For each Queue Set, the 'Report bitmap' field defines which - upstream transmission queues are present in the REPORT MPCPDU. - Although the REPORT MPCPDU can report current occupation for - up to 8 upstream transmission queues in a single REPORT MPCPDU - , the actual number is flexible. The 'mpcp-queue-group' - grouping has a variable size that is limited by value of - 'mpcp-maximum-queue-count-per-report' object, allowing ONUs - report the occupancy of fewer upstream transmission queues, as - needed. - - This object is applicable for an OLT and an ONU. At the OLT, - this object has a distinct value for each logical link and - every queue. At the ONU, it has a distinct value for - every queue."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgQueueEntry"; - - leaf mpcp-queue-index { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a queue in - the ONU. It can have a value between 0 and 7, limited by - the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - - reference - "See 'mpcp-maximum-queue-count-per-report' object"; - } - } - - description - "An object represents the index of an upstream transmission - queue storing subscriber packets. The size (occupancy) of - the upstream transmission queue identified by this object is - then reported within REPORT MPCPDU, defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object indicates the identity (index) of a queue in the - ONU. It can have a value between 0 and 7, limited by the value - stored in the 'mpcp-maximum-queue-count-per-report' object. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue."; - - reference - "IEEE Std 802.3.1, dot3QueueIndex"; - } - - leaf mpcp-queue-threshold-count { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a queue in - the ONU. It can have a value between 0 and 7, limited by - the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - - reference - "See 'mpcp-queue-threshold-count-max' object"; - } - } - - description - "This object reflects the number of reporting thresholds for - the specific upstream transmission queue, reflected in the - REPORT MPCPDU, as defined in IEEE Std 802.3, - Clause 64 and Clause 77. - - Each 'Queue set' provides information for the specific - upstream transmission queue occupancy of frames below the - matching reporting threshold. - - A read of this object reflects the number of reporting - thresholds for the specific upstream transmission queue. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportNumThreshold"; - } - - leaf mpcp-queue-threshold-count-max { - type uint8 { - range "0 .. 7" { - description - "This object can have a value between 0 and 7."; - } - } - config false; - description - "This object reflects the maximum number of reporting - thresholds for the specific upstream transmission queue, - reflected in the REPORT MPCPDU, as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - A read of this object reflects the maximum number of - reporting thresholds for the specific upstream transmission - queue. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportMaximumNumThreshold"; - } - - list mpcp-queue-thresholds { - when "../mpcp-queue-threshold-count > 0"; - - key mpcp-queue-set-index; - - max-elements 7; - - description - "An instance of this object for each value of - 'mpcp-queue-index' is created when a new logical link is - registered and deleted when the logical link is - deregistered. - - All instances of this object in the ONU associated with the - given logical link are then mapped to a REPORT MPCPDU, - when generated. - - +-----------------------------------+ - | Destination Address | - +-----------------------------------+ - | Source Address | - +-----------------------------------+ - | Length/Type | - +-----------------------------------+ - | OpCode | - +-----------------------------------+ - | TimeStamp | - +-----------------------------------+ - | Number of Queue Sets | - +-----------------------------------+ -| - | Report bitmap | | - +-----------------------------------+ | - | Queue 0 report | | - +-----------------------------------+ | repeated for - | Queue 1 report | | every - +-----------------------------------+ | Queue Set - | Queue 2 report | | - +-----------------------------------+ | - | Queue 3 report | | - +-----------------------------------+ | - | Queue 4 report | | - +-----------------------------------+ | - | Queue 5 report | | - +-----------------------------------+ | - | Queue 6 report | | - +-----------------------------------+ | - | Queue 7 report | | - +-----------------------------------+ -| - | Pad/reserved | - +-----------------------------------+ - | FCS | - +-----------------------------------+ - - The 'Queue N report' field reports the current occupancy of - each upstream transmission queue associated with the given - logical link. - - The 'Number of Queue Sets' field defines the number of - reported 'Queue N report' sets. - - For each Queue Set, the 'Report bitmap' field defines which - upstream transmission queues are present in the - REPORT MPCPDU. Although the REPORT MPCPDU can report current - occupation for up to 8 upstream transmission queues in a - single REPORT MPCPDU, the actual number is flexible. - - The 'mpcp-queue-group' grouping has a variable size that is - limited by value of 'mpcp-maximum-queue-count-per-report' - object, allowing ONUs to report the occupancy of fewer - upstream transmission queues, as needed. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link and every queue. - At the ONU, it has a distinct value for every queue."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgQueueSetsEntry"; - - leaf mpcp-queue-set-index { - type uint8 { - range "0 .. 7" { - description - "This object indicates the identity (index) of a queue - in the ONU. It can have a value between 0 and 7, - limited by the value stored in the - 'mpcp-maximum-queue-count-per-report' object."; - - reference - "See 'mpcp-maximum-queue-count-per-report' object"; - } - } - - description - "This object represents the index of the Queue Set for the - 'mpcp-queue-set-group' grouping. The size (occupancy) of - the upstream transmission queues belonging to the given - Queue Set is then reported within REPORT MPCPDU, defined - in IEEE Std 802.3, Clause 64 and Clause 77. - - This object can have a value between 0 and 7, limited by - the value stored in the 'mpcp-queue-threshold-count-max' - object."; - - reference - "IEEE Std 802.3.1, dot3QueueSetIndex"; - } - - leaf mpcp-queue-set-threshold { - type uint64; - - units "TQ"; - - default "0"; - - description - "This object defines the value of a reporting threshold - for each Queue Set stored in REPORT MPCPDU defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - The number of Queue Sets for each upstream transmission - queue is defined in the 'mpcp-queue-threshold-count' - object. - - Within REPORT MPCPDU, each Queue Set provides information - on the current upstream transmission queue occupancy for - frames below the matching threshold. - - The value stored in this object is expressed in the units - of Time quanta (TQ), where 1 TQ = 16 ns. - - A read of this object provides the current threshold value - for the specific upstream transmission queue. - - This object is applicable for an OLT and an ONU. At the - OLT, it has a distinct value for each logical link, each - queue, and each Queue Set. - - At the ONU, it has a distinct value for each queue and - each Queue Set."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportThreshold"; - } - } - - leaf in-mpcp-queue-frames { - type yang:counter64; - - config false; - - description - "A count of the number of times a frame reception event - results in a frame being queued in (for ONUs) or received - from (for OLTs) the corresponding queue. This object is - incremented by one for each frame written to (in the case - of the ONU) or received for (in case of the OLT) the - associated queue. - - The queue index matches the queue number in REPORT MPCPDU, - as defined in IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and an ONU. At the OLT, - it has a distinct value for each logical link and each queue. - At the ONU, it has a distinct value for each queue. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgStatRxFramesQueue"; - } - - leaf out-mpcp-queue-frames { - when "../../mpcp-mode = 'onu'"; - - type yang:counter64; - - config false; - - description - "This object reflects the number of frame transmission - events from the corresponding upstream transmission queue. - This object is incremented by one for each frame transmitted - , when it is output from the associated queue. - - The queue index matches the queue number in REPORT MPCPDU, - as defined in IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an ONU only. At the ONU, it - has a distinct value for each queue. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgStatTxFramesQueue"; - } - - leaf mpcp-queue-frames-drop { - when "../../mpcp-mode = 'onu'"; - - type yang:counter64; - - config false; - - description - "This object reflects the number of frame drop events from - the corresponding upstream transmission queue. This object - is incremented by one for each frame dropped in the - associated queue. - - The queue index matches the queue number in REPORT MPCPDU, - as defined in IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an ONU only. At the ONU, it - has a distinct value for each queue. - - Discontinuities in the value of this counter can occur at - re-initialization of the management system, and at other times - as indicated by the value of the 'discontinuity-time' leaf - defined in the ietf-interfaces YANG module (IETF RFC 8343)."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgStatDroppedFramesQueue"; - } - } - - list multicast-IDs { - key multicast-ID; - description - "Multicast-IDs list of multicast IDs - to be recognized by the device."; - leaf multicast-ID { - type uint32; - description - "Multicast-IDs to be recognized by the device."; - reference - "IEEE Std 802.3, 30.3.5.1.25"; - } - } - - leaf fec-capability { - type fec-capability; - - config false; - - description - "This object is used to identify whether the given interface - is capable of supporting FEC or not."; - } - - leaf mpcp-mode { - type mpcp-mode; - - config false; - - description - "This object is used to identify the operational state of the - MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - Reading 'olt' for an OLT (controller) mode and 'onu' for an ONU - (client) mode. - - This object is used to identify the operational mode for the - MPCP objects. - - This object is applicable for an OLT, with the same value for - all logical links, and for an ONU."; - - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - - leaf mpcp-sync-time { - type uint64; - - units "TQ (16ns)"; - - config false; - - description - "This object reports the 'sync lock time' of the OLT - receiver in units of Time Quanta (TQ; 1 TQ = 16 ns; see - IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [sync lock time ns]/16, - rounded up to the nearest TQ. If this value exceeds - 4,294,967,295 TQ, the value 4,294,967,295 TQ is returned. - - This object is applicable for an OLT, with distinct values for - all logical links, and for an ONU."; - - reference - "IEEE Std 802.3.1, dot3MpcpSyncTime"; - } - - leaf mpcp-logical-link-id { - type mpcp-supported; - - config false; - - description - "This object is used to identify the operational state of the - MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - Reading 'olt' for an OLT (controller) mode and 'onu' for an ONU - (client) mode. - - This object is used to identify the operational mode for the - MPCP objects. - - This object is applicable for an OLT, with the same value for - all logical links, and for an ONU."; - - reference - "IEEE Std 802.3, 30.3.5.1.3"; - } - - leaf mpcp-remote-mac-address { - type yang:mac-address; - - config false; - - description - "This object identifies the source_address parameter of the - last MPCPDUs passed to the MAC Control. This value is updated - on reception of a valid frame with: - - 1) a destination Field equal to the multicast address assigned - for MAC Control as specified in IEEE Std 802.3, Annex 31A; - - 2) the lengthOrType field value equal to the Type assigned for - MAC Control as specified in IEEE Std 802.3, Annex 31A; - - 3) an MPCP Control opcode value equal to the subtype assigned - for MPCP as specified in IEEE Std 802.3, Annex 31A. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link. - - The value reflects the MAC address of the remote entity and - therefore the OLT holds a value for each LLID, which is - the MAC address of the ONU. - - The ONU has a single value that is the OLT MAC address."; - - reference - "IEEE Std 802.3, 30.3.5.1.5"; - } - - leaf mpcp-logical-link-state { - type mpcp-logical-link-state; - - config false; - - description - "This object identifies the registration state of the - MultiPoint MAC Control sublayer as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - When this object has the enumeration 'unregistered', the - interface is unregistered and may be used for registering - a link partner. - - When this object has the enumeration 'registering', - the interface is in the process of registering a link-partner. - - When this object has the enumeration 'registered', the - interface has an established link-partner. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3, 30.3.5.1.6"; - } - - leaf mpcp-elapsed-time-out { - type uint64; - - units "TQ (16ns)"; - - config false; - - description - "This object reports the interval from the last MPCP frame - transmission in increments of Time Quanta (TQ; 1 TQ = 16 ns; - see IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [interval from last MPCP - frame transmission on this EPON interface, expressed - in ns]/16. If this value exceeds 4,294,967,295 TQ, the value - 4,294,967,295 TQ is returned. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3, 30.3.5.1.19"; - } - - leaf mpcp-elapsed-time-in { - type uint64; - - units "TQ (16ns)"; - - config false; - - description - "This object reports the interval from the last MPCP frame - reception in increments of Time Quanta (TQ; 1 TQ = 16 ns; see - IEEE Std 802.3, Clause 64 and Clause 77). - - The value returned is equal to [interval from last MPCP - frame reception on this EPON interface, expressed in - ns]/16. If this value exceeds 4,294,967,295 TQ, the value - 4,294,967,295 TQ is returned. - - This object is applicable for an OLT and an ONU. It has a - distinct value for each logical link."; - - reference - "IEEE Std 802.3, 30.3.5.1.20"; - } - - leaf mpcp-round-trip-time { - when "../ompe-mode = 'olt'"; - type uint16; - - units "TQ (16ns)"; - - config false; - - description - "This object reports the MPCP round trip time in increments - of Time Quanta (TQ; 1 TQ = 16 ns; see IEEE Std 802.3, - Clause 64 and Clause 77). - - The value returned is equal to [round trip time in ns]/16. - If this value exceeds 65,535 TQ, the value 65,535 TQ is - returned. - - This object is applicable for an OLT. It has a distinct value - for each logical link."; - - reference - "IEEE Std 802.3, 30.3.5.1.21"; - } - - leaf mpcp-maximum-grant-count { - when "../ompe-mode = 'onu'"; - type uint8; - - config false; - - description - "This object reports the maximum number of grants that an - ONU can store for handling. The maximum number of grants that - an ONU can store for handling has a range of 0 to 255. - - This object is applicable for an ONU and has a distinct value - for each logical link."; - - reference - "IEEE Std 802.3, 30.3.5.1.24"; - } - - leaf mpcp-logical-link-count { - type mpcp-llid-count; - - units LLID; - - config false; - - description - "This object reflects the number of logical links registered - on the OLT / ONU. The LLID field, as defined in the - IEEE Std 802.3, Clause 65 and Clause 76, is a 2-byte register - (15-bit field and a broadcast bit) limiting the number of - logical links to 32,768. - - This object is initialized to the value of 0 when the - OLT / ONU is powered up. - - This object is applicable for an OLT and an ONU. It has the same - value for all logical links."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectNumberOfLLIDs"; - } - - leaf mpcp-maximum-queue-count-per-report { - when "../ompe-mode = olt'"; - type mpcp-maximum-queue-count-per-report; - - config false; - - description - "This object reflects the maximum number of queues (0-7) that can - be accepted by the OLT in a single REPORT MPCPDU, as defined in - IEEE Std 802.3, Clause 64 and Clause 77. - - This object is applicable for an OLT and has a distinct value - for each logical link."; - - reference - "IEEE Std 802.3.1, dot3ExtPkgObjectReportMaximumNumQueues"; - } - - leaf ompe-mode { - type ompe-mode; - - config false; - - description - "This object indicates the mode of operation of the - Reconciliation Sublayer for Point-to-Point Emulation (see - IEEE Std 802.3, 65.1 or 76.2 as appropriate). - - The value of 'unknown' is assigned in initialization; true - state or type is not yet known. - - The value of 'olt' is assigned when the sublayer is operating - in OLT mode. - - The value of 'onu' is assigned when the sublayer is operating - in ONU mode. - - This object is applicable for an OLT and an ONU. It has the same - value for each logical link."; - - reference - "IEEE Std 802.3, 30.3.7.1.2"; - } - } -} \ No newline at end of file +module ieee802-ethernet-pon { + yang-version 1.1; + namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pon"; + prefix ieee802-eth-pon; + + import ieee802-types { + prefix ieee; + reference + "IEEE 802 types"; + } + import ietf-yang-types { + prefix yang; + reference + "IETF RFC 6991"; + } + import ietf-interfaces { + prefix if; + reference + "IETF RFC 8343"; + } + import ieee802-ethernet-interface { + prefix ieee802-eth-if; + } + + organization + "IEEE 802.3 Ethernet Working Group + Web URL: http://www.ieee802.org/3/"; + contact + "Web URL: http://www.ieee802.org/3/"; + description + "This module contains a collection of YANG definitions for + managing the Multi Point Control Protocol for + Ethernet PON (EPON), as defined in IEEE Std 802.3, Clause 64 + and Clause 77. + + This YANG module augments the 'ethernet' module."; + + revision 2025-09-10 { + description + "Updates under IEEE Std 802.3.2-2025"; + reference + "IEEE Std 802.3-2022, unless dated explicitly"; + } + + feature trx-power-level-reporting-supported { + description + "This object indicates the support for optical transceiver + power level monitoring and reporting capability. + When 'true', the given interface supports the optical power + level monitoring and reporting function. Otherwise, + the value is 'false'."; + } + + feature fec-supported { + description + "This object indicates the support of operation of the + optional FEC sublayer of the 1G-EPON PHY specified in + IEEE Std 802.3, 65.2. The value of 'unknown' is reported in + the initialization, for non FEC support state or type not + yet known. The value of 'not supported' is reported when the + sublayer is not supported. The value of 'supported' is + reported when the sublayer is supported. This object is + applicable for an OLT, with the same value for all logical + links, and for an ONU."; + reference + "IEEE Std 802.3, 30.5.1.1.15"; + } + + identity state-change-action-type { + description + "Type of interface state change requested."; + } + + identity power-down { + base state-change-action-type; + description + "Power down the EPON logical interface. + Power-down actions are applicable for the OLT and ONU. A + power down of a specific logical interface affects only + the logical interface (and not the physical interface). + the logical interface will be unavailable while the + power-down occurs and data may be lost. Other logical + interface are unaffected by power-down. + + This action is relevant when the admin state is active."; + } + + identity power-up { + base state-change-action-type; + description + "Exit EPON logical interface power-down state."; + } + + identity reset-action-type { + description + "Type of reset action requested."; + } + + identity reset-interface { + base reset-action-type; + description + "Reset the EPON logical interface. Resetting an interface + can lead an interruption of service for the users connected + to the respective EPON interface. + + This object is applicable for an OLT and an ONU. At the + OLT, it has a distinct value for each logical interface. + A reset for a specific logical interface resets only + this logical interface and not the physical interface. + + Thus, a logical link that is malfunctioning can be + reset without affecting the operation of other logical + interfaces. + + The reset can cause discontinuities in the values of the + counters of the interface, similar to re-initialization + of the management system."; + } + + identity register-type { + description + "Type of registration requested."; + } + + identity register { + base register-type; + description + "Register indicates a request to register an LLID. + This action applies to an OLT or ONU logical interface."; + } + + identity reregister { + base register-type; + description + "Re-register indicates an request to re-register an LLID. + This action applies to an OLT or ONU logical interface."; + } + + identity deregister { + base register-type; + description + "De-register indicates an request to de-register an LLID. + This action applies to an OLT or ONU logical interface. + Deregister may result in an interruption of service to + users connected to the respective EPON interface."; + } + + typedef mpcp-supported { + type boolean; + description + "This object indicates that the given interface supports + MPCP, i.e., it is an Ethernet PON (EPON) interface."; + } + + typedef mpcp-llid { + type uint64 { + range "0 .. 32767"; + } + description + "Logical Link Identifiers (LLIDs) are used to identify a + single MAC from a number of MACs which may be present in the + EPON OLT or ONU. LLIDs between the value of 0x07FFE + and 0x7FFF are assigned for ONU discovery and registration. + Other LLIDs are dynamically assigned by the OLT during the + registration process. For a complete description of how the + LLID is used in an EPON device, see IEEE Std 802.3, + Clause 65 for 1G-EPON and Clause 76 for 10G-EPON."; + reference + "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and + 76.2.6.1.3 for 10G-EPON"; + } + + typedef mpcp-maximum-queue-count-per-report { + type uint8 { + range "0..7"; + } + default "0"; + description + "Defines the maximum number of queues (0-7) in the REPORT + MPCPDU as defined in IEEE Std 802.3, Clause 64 and + Clause 77."; + } + + typedef mpcp-llid-count { + type uint64 { + range "0 .. 32767"; + } + description + "Indicates the number of registered LLIDs. The initialization + value is 0. This is applicable for an OLT with the same + value for all logical interfaces and for an ONU."; + reference + "IEEE Std 802.3, 65.1.3.3 for 1G-EPON and + 76.2.6.1.3 for 10G-EPON"; + } + + typedef mpcp-admin-state { + type enumeration { + enum enabled { + description + "When selecting the value of 'enabled', the MultiPoint + Control Protocol sublayer on the OLT / ONU is enabled."; + } + enum disabled { + description + "When selecting the value of 'disabled', the MultiPoint + Control Protocol sublayer on the OLT / ONU is + disabled."; + } + } + description + "Enumeration of valid administrative states for a + MultiPoint MAC Control sublayer on the OLT or ONU."; + reference + "IEEE Std 802.3, 30.3.5.2.1"; + } + + typedef mpcp-mode { + type enumeration { + enum olt { + description + "MPCP mode: olt"; + } + enum onu { + description + "MPCP mode: onu"; + } + } + description + "Enumeration of valid MPCP modes for EPON interfaces."; + reference + "IEEE Std 802.3, 30.3.5.1.3"; + } + + typedef mpcp-logical-link-state { + type enumeration { + enum unregistered { + description + "MPCP registration state: logical link is + NOT registered."; + } + enum registering { + description + "MPCP registration state: logical link is currently in + the process of registering."; + } + enum registered { + description + "MPCP registration state: logical link is currently + registered."; + } + } + description + "Enumeration of valid MPCP registration states for EPON + interfaces."; + reference + "IEEE Std 802.3, 30.3.5.1.6"; + } + + typedef mpcp-logical-link-admin-state { + type enumeration { + enum reset { + description + "When read, the value of 'reset' indicates that the given + logical link on the OLT / ONU has been reset."; + } + enum operate { + description + "When read, the value of 'operate' indicates that the + given logical link on the OLT / ONU has moved into + operating mode."; + } + enum unknown { + description + "When read, the value of 'unknown' indicates that the + status of the given logical link on the OLT / ONU is + currently not known."; + } + enum registered { + description + "When read, the value of 'registered' indicates that the + given logical link on the OLT / ONU has been + registered."; + } + enum deregistered { + description + "When read, the value of 'deregistered' indicates that the + given logical link on the OLT / ONU has been + deregistered."; + } + enum reregistered { + description + "When read, the value of 'reregistered' indicates that the + given logical link on the OLT / ONU has been + reregistered."; + } + } + description + "Enumeration of valid administrative states for a logical + link on the OLT or ONU."; + } + + typedef ompe-mode { + type enumeration { + enum unknown { + description + "omp-emulation mode: unknown = system is initializing"; + } + enum olt { + description + "omp-emulation mode: olt"; + } + enum onu { + description + "omp-emulation mode: onu"; + } + } + description + "Enumeration of valid OMP-Emulation modes for EPON + interfaces."; + reference + "IEEE Std 802.3, 30.3.7.1.2"; + } + + typedef fec-capability { + type enumeration { + enum unknown { + description + "FEC capability: unknown = system is initializing."; + } + enum supported { + description + "FEC capability: supported."; + } + enum NotSupported { + description + "FEC capability: not supported."; + } + } + description + "Enumeration of valid FEC capability values for EPON + interfaces with enabled MPCP."; + reference + "IEEE Std 802.3, 30.5.1.1.15"; + } + + typedef fec-mode { + type enumeration { + enum unknown { + description + "FEC mode: unknown = system is initializing."; + } + enum disabled { + description + "FEC mode: disabled = FEC is disabled for the given + logical link (both Tx and Rx directions)."; + } + enum enabled-Tx-Rx { + description + "FEC mode: enabled-Tx-Rx = FEC is enabled for the given + logical link in both Tx and Rx directions."; + } + enum enabled-Tx-only { + description + "FEC mode: enabled-Tx-only = FEC is enabled for + the given logical link but only in Tx direction."; + } + enum enabled-Rx-only { + description + "FEC mode: enabled-Rx-only = FEC is enabled for + the given logical link but only in Rx direction."; + } + } + description + "Enumeration of valid FEC modes for EPON interfaces."; + reference + "IEEE Std 802.3, 30.5.1.1.16"; + } + + typedef power-level { + type int32; + units "0.1 dBm"; + description + "Power level reflects the value of power, as measured at the + optical transceiver, expressed in units of 0.1 dBm."; + } + + typedef trx-admin-state { + type enumeration { + enum enabled { + description + "When read as 'enabled', the transmitter is enabled and + operating under the control of the logical control + protocol. When set to 'enabled', the transmitter is + enabled to operate under the control of the logical + control protocol."; + } + enum disabled { + description + "When read as 'disabled', the transmitter is currently + disabled (not transmitting). When set to 'disabled', + the transmitter is expected to be disabled + (to stop transmitting)."; + } + } + description + "Enumeration of valid administrative states for an optical + transceiver."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; + } + + augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { + description + "Augments the definition of Ethernet interface ( + /if:interfaces/if:interface/ieee802-eth-if:ethernet) + module with nodes specific to Ethernet PON (EPON)."; + leaf fec-mode { + if-feature "fec-supported"; + type fec-mode; + description + "This object reflects the current administrative state of + the FEC function for the given logical link on an ONU or + OLT. + + When reading the value of 'disabled', the FEC function on + the given logical link is disabled. + + When reading the value of 'enabled-Tx-Rx', the FEC function + on the given logical link is enabled in both Tx and Rx + directions. + + When reading the value of 'enabled-Tx-only', the FEC + function on the given logical link is enabled in Tx + direction only. + + When reading the value of 'enabled-Rx-only', the FEC + function on the given logical link is enabled in Rx + direction only. + + When reading the value of 'unknown', the state of the FEC + function on the given logical link is unknown or the FEC + function is currently initializing. + + This object is applicable for an OLT and an ONU. This + object has the same value for each logical link."; + reference + "IEEE Std 802.3, 30.5.1.1.16"; + } + leaf mpcp-admin-state { + type mpcp-admin-state; + description + "This object reflects the current administrative state of + the MultiPoint MAC Control sublayer, as defined in + IEEE Std 802.3, Clause 64 and Clause 77, for the + OLT / ONU. + + When reading the value of 'enabled', the MultiPoint + Control Protocol on the OLT / ONU is enabled. + + When reading the value of 'disabled', the MultiPoint + Control Protocol on the OLT / ONU is disabled. + + This object is applicable for an OLT and an ONU. It has + the same value for all logical links."; + reference + "IEEE Std 802.3, 30.3.5.1.2"; + } + leaf mpcp-logical-link-admin-state { + type mpcp-logical-link-admin-state; + config false; + description + "This object reflects the current administrative state of a + logical link on an ONU or OLT. + + When reading the value of 'reset', the given logical link + is undergoing a reset. + + When reading the value of 'unknown', the current status of + the given logical link is unknown and the link might be + undergoing initialization. + + When reading the value of 'operate', the given logical + link is operating normally. + + When reading the value of 'registered', the given logical + link was requested to perform registration. + + When reading the value of 'deregistered', the given + logical link was requested to perform deregistration. + + When reading the value of 'reregistered', the given + logical link was requested to perform reregistration. + + This object is applicable for an OLT and an ONU. It has a + distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgObjectRegisterAction"; + } + leaf trx-transmit-admin-state { + when "../../ieee802-eth-if:ethernet/ + ieee802-eth-pon:mpcp-admin-state = 'enabled'"; + if-feature "trx-power-level-reporting-supported"; + type trx-admin-state; + description + "This object reflects the current status of the transmitter + in the optical transceiver. + + When read as 'enabled', the optical transmitter is enabled + and operating under the control of the logical control + protocol. + + When read as 'disabled', the optical transmitter is + disabled. + + This object is applicable for an OLT and an ONU. + At the OLT, this object has a distinct value for each + logical link. + + The value of this object is only reliable when + /if:interfaces-state/if:interface/ieee802-eth-if:ethernet/ + 'mpcp-admin-state' is equal to 'enabled'."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitEnable"; + } + container capabilities { + config false; + description + "This container includes all EPON interface-specific + capabilities."; + leaf mpcp-supported { + type mpcp-supported; + default "true"; + description + "This object indicates that the given interface supports + MPCP, i.e., it is an Ethernet PON (EPON) interface."; + } + } + container statistics-mpcp { + config false; + description + "This container defines a set of MPCP-related statistics + counters of an EPON interface, as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + Discontinuities in the values of counters in this + container can occur at re-initialization of the management + system, and at other times as indicated by the value of + the 'discontinuity-time' leaf defined in the ietf-interfaces + YANG module (IETF RFC 8343)."; + leaf out-mpcp-mac-ctrl-frames { + type yang:counter64; + units "frames"; + config false; + description + "A count of MPCP frames passed to the MAC sublayer for + transmission. + + This counter is incremented when a MA_CONTROL.request + service primitive is generated within the MAC control + sublayer with an opcode indicating an MPCP frame. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.7"; + } + leaf in-mpcp-mac-ctrl-frames { + type yang:counter64; + units "frames"; + config false; + description + "A count of MPCP frames passed by the MAC sublayer to the + MAC Control sublayer. + + This counter is incremented when a frame is received at + the interface which is an MPCP frame or has a + Length/Type Ethernet header field value equal to the + Type assigned for 802.3_MAC_Control as specified in + IEEE Std 802.3, 31.4.1.3. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.8"; + } + leaf mpcp-discovery-window-count { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "discovery windows"; + config false; + description + "A count of discovery windows generated by the OLT. + + The counter is incremented by one for each generated + discovery window. + + This object is applicable for an OLT and has the same + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.22"; + } + leaf mpcp-discovery-timeout-count { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "discovery timeouts"; + config false; + description + "A count of the number of times a discovery timeout + occurs. + + This counter is incremented by one for each discovery + processing state-machine reset resulting from timeout + waiting for message arrival. + + This object is applicable for an OLT and has the same + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.23"; + } + leaf out-mpcp-register-req { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER_REQ MPCP frame + transmission occurs. + + This counter is incremented by one for each + REGISTER_REQ MPCP frame transmitted as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an ONU and has the same + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.12"; + } + leaf in-mpcp-register-req { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER_REQ MPCP frame + reception occurs. + + This counter is incremented by one for each + REGISTER_REQ MPCP frame received as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an OLT and has the same + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.17"; + } + leaf out-mpcp-register-ack { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER_ACK MPCP frame + transmission occurs. + + This counter is incremented by one for each + REGISTER_ACK MPCP frame transmitted as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.10"; + } + leaf in-mpcp-register-ack { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER_ACK MPCP frame + reception occurs. + + This counter is incremented by one for each + REGISTER_ACK MPCP frame received as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.15"; + } + leaf out-mpcp-report { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REPORT MPCP frame + transmission occurs. + + This counter is incremented by one for each REPORT MPCP + frame transmitted as defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.13"; + } + leaf in-mpcp-report { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REPORT MPCP frame + reception occurs. + + This counter is incremented by one for each REPORT MPCP + frame received as defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.18"; + } + leaf out-mpcp-gate { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a GATE MPCP frame + transmission occurs. + + This counter is incremented by one for each GATE MPCP + frame transmitted as defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.9"; + } + leaf in-mpcp-gate { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a GATE MPCP frame + reception occurs. + + This counter is incremented by one for each GATE MPCP + frame received as defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.14"; + } + leaf out-mpcp-register { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER MPCP frame + transmission occurs. + + This counter is incremented by one for each + REGISTER MPCP frame transmitted as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.11"; + } + leaf in-mpcp-register { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of the number of times a REGISTER MPCP frame + reception occurs. + + This counter is incremented by one for each + REGISTER MPCP frame received as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.16"; + } + } + container statistics-ompe { + description + "This container defines a set of OMP-Emulation-related + statistics counters of an EPON interface, as defined in + IEEE Std 802.3, Clause 65 and Clause 76. + + Discontinuities in the values of counters in this + container can occur at re-initialization of the management + system, and at other times as indicated by the value of + the 'discontinuity-time' leaf defined in the + ietf-interfaces YANG module (IETF RFC 8343)."; + reference + "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; + leaf in-ompe-frames-errored-sld { + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that do not contain a valid + SLD field as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate. + + This object is applicable for an OLT and an ONU. + It has a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.3"; + } + leaf in-ompe-frames-errored-crc8 { + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1 as appropriate, but do not pass the CRC-8 + check as defined in IEEE Std 802.3, 65.1.3.3.3 or + 76.2.6.1.3.3 as appropriate. + + This object is applicable for an OLT and an ONU. + It has a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.4"; + } + leaf ompe-onu-frames-with-good-llid-good-crc8 { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that 1) contain a valid SLD + field in an ONU, 2) meet the rule for frame acceptance, + and 3) pass the CRC-8 check. + + The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate. + + The rules for LLID acceptance are defined in + IEEE Std 802.3, 65.1.3.3.2 or 76.2.6.1.3.2, + as appropriate. + + The CRC-8 check is defined in IEEE Std 802.3, + 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.6"; + } + leaf ompe-olt-frames-with-good-llid-good-crc8 { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that 1) contain a valid SLD + field in an OLT, and 2) pass the CRC-8 check. + + The SLD is defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate. + + The frame acceptance rules are defined in IEEE Std 802.3, + 65.1.3.3.2 or 76.2.6.1.3.2, as appropriate. + + The CRC-8 check is defined in IEEE Std 802.3, + 65.1.3.3.3 or 76.2.6.1.3.3, as appropriate. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.7"; + } + leaf in-ompe-frames-with-bad-llid { + when "../../ompe-mode = 'olt'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, and pass the CRC-8 check + as defined in IEEE Std 802.3, 65.1.3.3.3 or + 76.2.6.1.3.3, as appropriate, but are discarded due to + the LLID check. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.8"; + } + leaf in-ompe-frames-with-good-llid { + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1 as appropriate, but do not pass the CRC-8 + check as defined in IEEE Std 802.3, 65.1.3.3.3 or + 76.2.6.1.3.3 as appropriate. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.4"; + } + leaf in-ompe-frames { + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, and pass the CRC-8 + check as defined in IEEE Std 802.3, 65.1.3.3.3 or + 76.2.6.1.3.3, as appropriate. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.6 (ONU) and 30.3.7.1.7 (OLT)"; + } + leaf in-ompe-frames-not-match-onu-llid-broadcast { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as + defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, + as appropriate, and contain the broadcast bit in the + LLID and not the ONU's LLID (frame accepted) as defined + in IEEE Std 802.3, Clause 65 and Clause 76, + as appropriate. + + This object is applicable for an ONU only."; + reference + "IEEE Std 802.3.1, + dot3OmpEmulationBroadcastBitNotOnuLlid"; + } + leaf in-ompe-frames-match-onu-llid-not-broadcast { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as + defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, + as appropriate, and contain the ONU's LLID + (frame accepted) as defined in IEEE Std 802.3, Clause 65 + and Clause 76, as appropriate. + + This object is applicable for an ONU only."; + reference + "IEEE Std 802.3.1, dot3OmpEmulationOnuLLIDNotBroadcast"; + } + leaf in-ompe-frames-match-onu-llid-broadcast { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, as + defined in IEEE Std 802.3, 65.1.3.3.3 or 76.2.6.1.3.3, + as appropriate, and contain the broadcast bit in the + LLID and the ONU's LLID (frame accepted) as defined in + IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. + + This object is applicable for an ONU only."; + reference + "IEEE Std 802.3.1, + dot3OmpEmulationBroadcastBitPlusOnuLlid"; + } + leaf in-ompe-frames-not-match-onu-llid-not-broadcast { + when "../../ompe-mode = 'onu'"; + type yang:counter64; + units "frames"; + config false; + description + "A count of frames received that contain a valid SLD + field, as defined in IEEE Std 802.3, 65.1.3.3.1 or + 76.2.6.1.3.1, as appropriate, pass the CRC-8 check, + as defined in IEEE Std 802.3, 65.1.3.3.3 or + 76.2.6.1.3.3, as appropriate, do not contain the + broadcast bit in the LLID and do not contain the ONU's + LLID (frame is NOT accepted) as defined in + IEEE Std 802.3, Clause 65 and Clause 76, as appropriate. + + This object is applicable for an ONU only."; + reference + "IEEE Std 802.3.1, + dot3OmpEmulationNotBroadcastBitNotOnuLlid"; + } + } + container thresholds-trx { + if-feature "trx-power-level-reporting-supported"; + description + "This container defines a set of optical transceiver + thresholds of an EPON interface as defined in + IEEE Std 802.3, Clause 60 and Clause 75."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; + leaf in-trx-power-low-threshold { + if-feature "trx-power-level-reporting-supported"; + type power-level; + description + "This object reflects the current setting of low alarm + threshold for the input power into the optical receiver. + If the value reported in the 'in-trx-power' object drops + below the value set in 'in-trx-power-low-threshold', an + 'in-trx-power-low-threshold-crossing' event is + generated. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, + dot3ExtPkgOptIfLowerInputPowerThreshold"; + } + leaf in-trx-power-high-threshold { + if-feature "trx-power-level-reporting-supported"; + type power-level; + description + "This object reflects the current setting of high alarm + threshold for the input power into the optical receiver. + If the value reported in the 'in-trx-power' object + exceeds the value set in 'in-trx-power-high-threshold', + an 'in-trx-power-high-threshold-crossing' event is + generated. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, + dot3ExtPkgOptIfUpperInputPowerThreshold"; + } + leaf out-trx-power-low-threshold { + if-feature "trx-power-level-reporting-supported"; + type power-level; + description + "This object reflects the current setting of low alarm + threshold for the output power out of the optical + transmitter. If the value reported in the 'out-trx-power' + object drops below the value set in + 'out-trx-power-low-threshold', an + 'out-trx-power-low-threshold-crossing' event is + generated. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, + dot3ExtPkgOptIfLowerOutputPowerThreshold"; + } + leaf out-trx-power-high-threshold { + if-feature "trx-power-level-reporting-supported"; + type power-level; + description + "This object reflects the current setting of high alarm + threshold for the output power out of the optical + transmitter. If the value reported in the 'out-trx-power' + object exceeds the value set in + 'out-trx-power-high-threshold', an + 'out-trx-power-high-threshold-crossing' event is + generated. + + This object is applicable for an OLT and an ONU. + It has a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, + dot3ExtPkgOptIfUpperOutputPowerThreshold"; + } + } + container statistics-trx { + if-feature "trx-power-level-reporting-supported"; + status deprecated; + description + "This container defines a set of optical transceiver + statistics counters of an EPON interface as defined in + IEEE Std 802.3, Clause 60 and Clause 75."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; + leaf in-trx-power-signal-detect { + type boolean; + config false; + description + "This object indicates whether a valid optical signal was + detected (when read as 'true') or not + (when read as 'false') at the input to the + optical transceiver. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfSignalDetect"; + } + leaf in-trx-power { + type power-level; + config false; + description + "This object reflects the value of the input power, as + measured at the optical transceiver, expressed in units + of 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner. + + At the OLT, the measurement is performed in a burst-mode + manner, for each incoming data burst. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfInputPower"; + } + leaf in-trx-power-low-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the lowest value of the input power + during the period of the last 15 minutes, as measured at + the optical transceiver, and expressed in units of + 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfLowInputPower"; + } + leaf in-trx-power-high-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the highest value of the input + power during the period of the last 15 minutes, as + measured at the optical transceiver, and expressed in + units of 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfHighInputPower"; + } + leaf out-trx-power-signal-detect { + type boolean; + config false; + description + "This object indicates whether a valid optical signal was + detected (when read as 'true') or not + (when read as 'false') at the output from the + optical transceiver. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitAlarm"; + } + leaf out-trx-power { + type power-level; + config false; + description + "This object reflects the value of the output power, as + measured at the optical transceiver, expressed in units + of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner for each outgoing data burst. + + At the OLT, the measurement is performed in a continuous + manner. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfOutputPower"; + } + leaf out-trx-power-low-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the lowest value of the output + power during the period of the last 15 minutes, as + measured at the optical transceiver, and expressed in + units of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfLowOutputPower"; + } + leaf out-trx-power-high-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the highest value of the output + power during the period of the last 15 minutes, as + measured at the optical transceiver, and expressed in + units of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfHighOutputPower"; + } + leaf trx-data-reliable { + if-feature "trx-power-level-reporting-supported"; + type boolean; + config false; + description + "This object indicates whether data contained in + individual counters in the 'statistics-trx' container are + reliable (when read as 'true') or not + (when read as 'false'). + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfSuspectedFlag"; + } + } + container monitoring-trx { + if-feature "trx-power-level-reporting-supported"; + description + "This container defines a set of optical transceiver + statistics counters of an EPON interface as defined in + IEEE Std 802.3, Clause 60 and Clause 75."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfEntry"; + leaf in-trx-power-signal-detect { + type boolean; + config false; + description + "This object indicates whether a valid optical signal was + detected (when read as 'true') or not + (when read as 'false') at the input to the + optical transceiver. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfSignalDetect"; + } + leaf in-trx-power { + type power-level; + config false; + description + "This object reflects the value of the input power, as + measured at the optical transceiver, expressed in units + of 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner. + + At the OLT, the measurement is performed in a burst-mode + manner, for each incoming data burst. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfInputPower"; + } + leaf in-trx-power-low-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the lowest value of the input power + during the period of the last 15 minutes, as measured at + the optical transceiver, and expressed in units of + 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. + It has a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfLowInputPower"; + } + leaf in-trx-power-high-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the highest value of the input + power during the period of the last 15 minutes, + as measured at the optical transceiver, + and expressed in units of 0.1 dBm. + + At the ONU, the measurement is performed in a continuous + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfHighInputPower"; + } + leaf out-trx-power-signal-detect { + type boolean; + config false; + description + "This object indicates whether a valid optical signal was + detected (when read as 'true') or not + (when read as 'false') at the output from the + optical transceiver. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfTransmitAlarm"; + } + leaf out-trx-power { + type power-level; + config false; + description + "This object reflects the value of the output power, as + measured at the optical transceiver, expressed in units + of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner for each outgoing data burst. + + At the OLT, the measurement is performed in a continuous + manner. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfOutputPower"; + } + leaf out-trx-power-low-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the lowest value of the output + power during the period of the last 15 minutes, as + measured at the optical transceiver, and expressed in + units of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfLowOutputPower"; + } + leaf out-trx-power-high-15-minutes-bin { + type power-level; + config false; + description + "This object reflects the highest value of the output + power during the period of the last 15 minutes, as + measured at the optical transceiver, and expressed in + units of 0.1 dBm. + + At the ONU, the measurement is performed in a burst-mode + manner and stored in a rolling 15-minute observation bin. + + At the OLT, the measurement is the average power for + each incoming data burst, and stored in a rolling + 15-minute observation bin. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfHighOutputPower"; + } + leaf trx-data-reliable { + if-feature "trx-power-level-reporting-supported"; + type boolean; + config false; + description + "This object indicates whether data contained in + individual counters in 'statistics-trx' container are + reliable (when read as 'true') or not + (when read as 'false'). + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgOptIfSuspectedFlag"; + } + } + container statistics-pon-fec { + when "(../fec-capability = 'supported') and + (../fec-mode = 'enabled-Tx-Rx')"; + if-feature "fec-supported"; + config false; + description + "This container defines a set of FEC-related statistics + counters of an EPON interface, as defined in + IEEE Std 802.3, Clause 65 and Clause 76. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of the + 'discontinuity-time' leaf defined in the ietf-interfaces + YANG module (IETF RFC 8343)."; + reference + "IEEE Std 802.3.1, dot3OmpEmulationStatEntry"; + leaf fec-code-group-violations { + type yang:counter64; + units "code-group"; + config false; + description + "For 1G-EPON this is a count of the number of events that + cause the PHY to indicate 'Data reception error' or + 'Carrier Extend Error' on the GMII (see IEEE Std 802.3, + Table 35-1). The contents of this counter is undefined + when FEC is operating. For 10G-EPON this object is not + applicable. + + This object is applicable for an OLT and an ONU. At the + OLT, it has a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.5.1.1.14"; + } + leaf fec-buffer-head-coding-violations { + type yang:counter64; + units "code-group"; + config false; + description + "For 1G-EPON PHYs, this object represents the count of the + number of invalid code-groups received directly from the + link when FEC is enabled. When FEC is disabled this + counter stops counting. + + For 10G-EPON PHYs, this object is set to zero. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3.1, dot3EponFecBufferHeadCodingViolation"; + } + leaf fec-code-word-corrected-errors { + type yang:counter64; + units "code-group"; + config false; + description + "For 1G-EPON or 10G-EPON PHYs, this object represents a + count of corrected FEC blocks. + + This counter increments by one for each received + FEC block that contained detected errors and was + corrected by the FEC function in the PHY. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.5.1.1.17"; + } + leaf fec-code-word-uncorrected-errors { + type yang:counter64; + units "code-group"; + config false; + description + "For 1G-EPON or 10G-EPON PHYs, this object represents a + count of uncorrectable FEC blocks. + + This counter increments by one for each received FEC + block that contained detected errors and was not + corrected by the FEC function in the PHY. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.5.1.1.18"; + } + } + container mpcp-logical-link-admin-actions { + description + "Container of actions."; + action state-change-action-type { + description + "Request a state change on the interface."; + input { + leaf state-change-action-type { + type identityref { + base state-change-action-type; + } + description + "Type of interface state change requested."; + } + } + } + action reset-action-type { + description + "Request a reset-action of the interface."; + input { + leaf reset-action-type { + type identityref { + base reset-action-type; + } + description + "Type of reset action requested of the interface."; + } + } + } + action register-type { + description + "Request a registration action."; + input { + leaf register-type { + type identityref { + base register-type; + } + description + "Type of registration action requested of the + interface."; + } + } + } + } + list mpcp-queues { + key "mpcp-queue-index"; + description + "An instance of this object for each value of + 'mpcp-queue-index' is created when a new logical link is + registered and deleted when the logical link is + deregistered. + + All instances of this object in the ONU associated with + the given logical link are then mapped to a REPORT MPCPDU, + when generated. + + +-----------------------------------+ + | Destination Address | + +-----------------------------------+ + | Source Address | + +-----------------------------------+ + | Length/Type | + +-----------------------------------+ + | OpCode | + +-----------------------------------+ + | TimeStamp | + +-----------------------------------+ + | Number of Queue Sets | + +-----------------------------------+ -| + | Report bitmap | | + +-----------------------------------+ | + | Queue 0 report | | + +-----------------------------------+ | repeated + | Queue 1 report | | for every + +-----------------------------------+ | Queue Set + | Queue 2 report | | + +-----------------------------------+ | + | Queue 3 report | | + +-----------------------------------+ | + | Queue 4 report | | + +-----------------------------------+ | + | Queue 5 report | | + +-----------------------------------+ | + | Queue 6 report | | + +-----------------------------------+ | + | Queue 7 report | | + +-----------------------------------+ -| + | Pad/reserved | + +-----------------------------------+ + | FCS | + +-----------------------------------+ + + The 'Queue N report' field reports the current occupancy + of each upstream transmission queue associated with the + given logical link. + + The 'Number of Queue Sets' field defines the number of + reported 'Queue N report' sets. + + For each Queue Set, the 'Report bitmap' field defines + which upstream transmission queues are present in the + REPORT MPCPDU. + Although the REPORT MPCPDU can report current occupation + for up to 8 upstream transmission queues in a single + REPORT MPCPDU, the actual number is flexible. + The 'mpcp-queue-group' grouping has a variable size that + is limited by the value of the + 'mpcp-maximum-queue-count-per-report' object, allowing + ONUs report the occupancy of fewer upstream transmission + queues, as needed. + + This object is applicable for an OLT and an ONU. + At the OLT, this object has a distinct value for each + logical link and every queue. At the ONU, it has a + distinct value for every queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgQueueEntry"; + leaf mpcp-queue-index { + type uint8 { + range "0 .. 7" { + description + "This object indicates the identity (index) of a + queue in the ONU. It can have a value between + 0 and 7, limited by the value stored in the + 'mpcp-maximum-queue-count-per-report' object."; + reference + "See 'mpcp-maximum-queue-count-per-report' object"; + } + } + description + "An object represents the index of an upstream + transmission queue storing subscriber packets. + The size (occupancy) of the upstream transmission queue + identified by this object is then reported within + REPORT MPCPDU, defined in IEEE Std 802.3, Clause 64 + and Clause 77. + + This object indicates the identity (index) of a queue in + the ONU. It can have a value between 0 and 7, limited by + the value stored in the + 'mpcp-maximum-queue-count-per-report' object. + + This object is applicable for an OLT and an ONU. + It has a distinct value for each logical link and each + queue. + At the ONU, it has a distinct value for each queue."; + reference + "IEEE Std 802.3.1, dot3QueueIndex"; + } + leaf mpcp-queue-threshold-count { + type uint8 { + range "0 .. 7" { + description + "This object indicates the identity (index) of a + queue in the ONU. It can have a value between + 0 and 7, limited by the value stored in the + 'mpcp-maximum-queue-count-per-report' object."; + reference + "See 'mpcp-queue-threshold-count-max' object"; + } + } + description + "This object reflects the number of reporting thresholds + for the specific upstream transmission queue, reflected + in the REPORT MPCPDU, as defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + Each 'Queue Set' provides information for the specific + upstream transmission queue occupancy of frames below + the matching reporting threshold. + + A read of this object reflects the number of reporting + thresholds for the specific upstream transmission queue. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link and each queue. + At the ONU, it has a distinct value for each queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgObjectReportNumThreshold"; + } + leaf mpcp-queue-threshold-count-max { + type uint8 { + range "0 .. 7" { + description + "This object can have a value between 0 and 7."; + } + } + config false; + description + "This object reflects the maximum number of reporting + thresholds for the specific upstream transmission queue, + reflected in the REPORT MPCPDU, as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + A read of this object reflects the maximum number of + reporting thresholds for the specific upstream + transmission queue. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link and each queue. + At the ONU, it has a distinct value for each queue."; + reference + "IEEE Std 802.3.1, + dot3ExtPkgObjectReportMaximumNumThreshold"; + } + list mpcp-queue-thresholds { + when '../mpcp-queue-threshold-count > 0'; + key "mpcp-queue-set-index"; + max-elements 7; + description + "An instance of this object for each value of + 'mpcp-queue-index' is created when a new logical link is + registered and deleted when the logical link is + deregistered. + + All instances of this object in the ONU associated with + the given logical link are then mapped to a + REPORT MPCPDU, when generated. + + +-----------------------------------+ + | Destination Address | + +-----------------------------------+ + | Source Address | + +-----------------------------------+ + | Length/Type | + +-----------------------------------+ + | OpCode | + +-----------------------------------+ + | TimeStamp | + +-----------------------------------+ + | Number of Queue Sets | + +-----------------------------------+ -| + | Report bitmap | | + +-----------------------------------+ | + | Queue 0 report | | + +-----------------------------------+ | repeated for + | Queue 1 report | | every + +-----------------------------------+ | Queue Set + | Queue 2 report | | + +-----------------------------------+ | + | Queue 3 report | | + +-----------------------------------+ | + | Queue 4 report | | + +-----------------------------------+ | + | Queue 5 report | | + +-----------------------------------+ | + | Queue 6 report | | + +-----------------------------------+ | + | Queue 7 report | | + +-----------------------------------+ -| + | Pad/reserved | + +-----------------------------------+ + | FCS | + +-----------------------------------+ + + The 'Queue N report' field reports the current occupancy + of each upstream transmission queue associated with the + given logical link. + + The 'Number of Queue Sets' field defines the number of + reported 'Queue N report' sets. + + For each Queue Set, the 'Report bitmap' field defines + which upstream transmission queues are present in the + REPORT MPCPDU. Although the REPORT MPCPDU can report + current occupation for up to 8 upstream transmission + queues in a single REPORT MPCPDU, the actual number is + flexible. + + The 'mpcp-queue-group' grouping has a variable size that + is limited by the value of the + 'mpcp-maximum-queue-count-per-report' object, allowing + ONUs to report the occupancy of fewer upstream + transmission queues, as needed. + + This object is applicable for an OLT and an ONU. It has + a distinct value for each logical link and every queue. + At the ONU, it has a distinct value for every queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgQueueSetsEntry"; + leaf mpcp-queue-set-index { + type uint8 { + range "0 .. 7" { + description + "This object indicates the identity (index) of a + queue in the ONU. It can have a value between + 0 and 7, limited by the value stored in the + 'mpcp-maximum-queue-count-per-report' object."; + reference + "See 'mpcp-maximum-queue-count-per-report' object"; + } + } + description + "This object represents the index of the Queue Set for + the 'mpcp-queue-set-group' grouping. The size + (occupancy) of the upstream transmission queues + belonging to the given Queue Set is then reported + within REPORT MPCPDU, defined in IEEE Std 802.3, + Clause 64 and Clause 77. + + This object can have a value between 0 and 7, limited + by the value stored in the + 'mpcp-queue-threshold-count-max' object."; + reference + "IEEE Std 802.3.1, dot3QueueSetIndex"; + } + leaf mpcp-queue-set-threshold { + type uint64; + units "TQ"; + default "0"; + description + "This object defines the value of a reporting threshold + for each Queue Set stored in REPORT MPCPDU defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + The number of Queue Sets for each upstream + transmission queue is defined in the + 'mpcp-queue-threshold-count' object. + + Within REPORT MPCPDU, each Queue Set provides + information on the current upstream transmission queue + occupancy for frames below the matching threshold. + + The value stored in this object is expressed in the + units of Time Quanta (TQ), where 1 TQ = 16 ns. + + A read of this object provides the current threshold + value for the specific upstream transmission queue. + + This object is applicable for an OLT and an ONU. At + the OLT, it has a distinct value for each logical link, + each queue, and each Queue Set. + + At the ONU, it has a distinct value for each queue and + each Queue Set."; + reference + "IEEE Std 802.3.1, dot3ExtPkgObjectReportThreshold"; + } + } + leaf in-mpcp-queue-frames { + type yang:counter64; + config false; + description + "A count of the number of times a frame reception event + results in a frame being queued in (for ONUs) or + received from (for OLTs) the corresponding queue. This + object is incremented by one for each frame written to + (in the case of the ONU) or received for (in case of the + OLT) the associated queue. + + The queue index matches the queue number in + REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 + and Clause 77. + + This object is applicable for an OLT and an ONU. + At the OLT, it has a distinct value for each logical link + and each queue. At the ONU, it has a distinct value for + each queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgStatRxFramesQueue"; + } + leaf out-mpcp-queue-frames { + when "../../mpcp-mode = 'onu'"; + type yang:counter64; + config false; + description + "This object reflects the number of frame transmission + events from the corresponding upstream transmission + queue. This object is incremented by one for each frame + transmitted, when it is output from the associated + queue. + + The queue index matches the queue number in + REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 + and Clause 77. + + This object is applicable for an ONU only. At the ONU, + it has a distinct value for each queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgStatTxFramesQueue"; + } + leaf mpcp-queue-frames-drop { + when "../../mpcp-mode = 'onu'"; + type yang:counter64; + config false; + description + "This object reflects the number of frame drop events + from the corresponding upstream transmission queue. + This object is incremented by one for each frame dropped + in the associated queue. + + The queue index matches the queue number in + REPORT MPCPDU, as defined in IEEE Std 802.3, Clause 64 + and Clause 77. + + This object is applicable for an ONU only. At the ONU, + it has a distinct value for each queue."; + reference + "IEEE Std 802.3.1, dot3ExtPkgStatDroppedFramesQueue"; + } + } + list multicast-IDs { + key "multicast-ID"; + description + "Multicast-IDs list of multicast IDs + to be recognized by the device."; + leaf multicast-ID { + type uint32; + description + "Multicast-IDs to be recognized by the device."; + reference + "IEEE Std 802.3, 30.3.5.1.25"; + } + } + leaf fec-capability { + type fec-capability; + config false; + description + "This object is used to identify whether the given + interface is capable of supporting FEC or not."; + } + leaf mpcp-mode { + type mpcp-mode; + config false; + description + "This object is used to identify the operational state of + the MultiPoint MAC Control sublayer as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + Reading 'olt' for an OLT (controller) mode and 'onu' for + an ONU (client) mode. + + This object is used to identify the operational mode for + the MPCP objects. + + This object is applicable for an OLT, with the same value + for all logical links, and for an ONU."; + reference + "IEEE Std 802.3, 30.3.5.1.3"; + } + leaf mpcp-sync-time { + type uint64; + units "TQ (16ns)"; + config false; + description + "This object reports the 'sync lock time' of the OLT + receiver in units of Time Quanta (TQ; 1 TQ = 16 ns; see + IEEE Std 802.3, Clause 64 and Clause 77). + + The value returned is equal to [sync lock time ns]/16, + rounded up to the nearest TQ. If this value exceeds + 4,294,967,295 TQ, the value 4,294,967,295 TQ is returned. + + This object is applicable for an OLT, with distinct values + for all logical links, and for an ONU."; + reference + "IEEE Std 802.3.1, dot3MpcpSyncTime"; + } + leaf mpcp-logical-link-id { + type mpcp-supported; + config false; + description + "This object is used to identify the operational state of + the MultiPoint MAC Control sublayer as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + Reading 'olt' for an OLT (controller) mode and 'onu' for + an ONU (client) mode. + + This object is used to identify the operational mode for + the MPCP objects. + + This object is applicable for an OLT, with the same value + for all logical links, and for an ONU."; + reference + "IEEE Std 802.3, 30.3.5.1.3"; + } + leaf mpcp-remote-mac-address { + type ieee:mac-address; + config false; + description + "This object identifies the source_address parameter of the + last MPCPDUs passed to the MAC Control. This value is + updated on reception of a valid frame with: + + 1) A destination field equal to the multicast address + assigned for MAC Control as specified in + IEEE Std 802.3, Annex 31A; + + 2) The lengthOrType field value equal to the Type assigned + for MAC Control as specified in IEEE Std 802.3, Annex 31A; + + 3) An MPCP Control opcode value equal to the subtype + assigned for MPCP as specified in IEEE Std 802.3, + Annex 31A. + + This object is applicable for an OLT and an ONU. It has a + distinct value for each logical link. + + The value reflects the MAC address of the remote entity + and therefore the OLT holds a value for each LLID, which + is the MAC address of the ONU. + + The ONU has a single value that is the OLT MAC address."; + reference + "IEEE Std 802.3, 30.3.5.1.5"; + } + leaf mpcp-logical-link-state { + type mpcp-logical-link-state; + config false; + description + "This object identifies the registration state of the + MultiPoint MAC Control sublayer as defined in + IEEE Std 802.3, Clause 64 and Clause 77. + + When this object has the enumeration 'unregistered', the + interface is unregistered and may be used for registering + a link partner. + + When this object has the enumeration 'registering', + the interface is in the process of registering a + link-partner. + + When this object has the enumeration 'registered', the + interface has an established link-partner. + + This object is applicable for an OLT and an ONU. It has a + distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.6"; + } + leaf mpcp-elapsed-time-out { + type uint64; + units "TQ (16ns)"; + config false; + description + "This object reports the interval from the last MPCP frame + transmission in increments of Time Quanta + (TQ; 1 TQ = 16 ns; + see IEEE Std 802.3, Clause 64 and Clause 77). + + The value returned is equal to [interval from last MPCP + frame transmission on this EPON interface, expressed + in ns]/16. If this value exceeds 4,294,967,295 TQ, the + value 4,294,967,295 TQ is returned. + + This object is applicable for an OLT and an ONU. It has a + distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.19"; + } + leaf mpcp-elapsed-time-in { + type uint64; + units "TQ (16ns)"; + config false; + description + "This object reports the interval from the last MPCP frame + reception in increments of Time Quanta (TQ; 1 TQ = 16 ns; + see IEEE Std 802.3, Clause 64 and Clause 77). + + The value returned is equal to [interval from last MPCP + frame reception on this EPON interface, expressed in + ns]/16. If this value exceeds 4,294,967,295 TQ, the value + 4,294,967,295 TQ is returned. + + This object is applicable for an OLT and an ONU. It has a + distinct value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.20"; + } + leaf mpcp-round-trip-time { + when "../ompe-mode = 'olt'"; + type uint16; + units "TQ (16ns)"; + config false; + description + "This object reports the MPCP round trip time in increments + of Time Quanta (TQ; 1 TQ = 16 ns; see IEEE Std 802.3, + Clause 64 and Clause 77). + + The value returned is equal to [round trip time in ns]/16. + If this value exceeds 65,535 TQ, the value 65,535 TQ is + returned. + + This object is applicable for an OLT. It has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.21"; + } + leaf mpcp-maximum-grant-count { + when "../ompe-mode = 'onu'"; + type uint8; + config false; + description + "This object reports the maximum number of grants that an + ONU can store for handling. The maximum number of grants + that an ONU can store for handling has a range of + 0 to 255. + + This object is applicable for an ONU and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3, 30.3.5.1.24"; + } + leaf mpcp-logical-link-count { + type mpcp-llid-count; + units "LLID"; + config false; + description + "This object reflects the number of logical links + registered on the OLT / ONU. The LLID field, as defined in + IEEE Std 802.3, Clause 65 and Clause 76, is a 2-byte + register (15-bit field and a broadcast bit) limiting the + number of logical links to 32,768. + + This object is initialized to the value of 0 when the + OLT / ONU is powered up. + + This object is applicable for an OLT and an ONU. It has + the same value for all logical links."; + reference + "IEEE Std 802.3.1, dot3ExtPkgObjectNumberOfLLIDs"; + } + leaf mpcp-maximum-queue-count-per-report { + when "../ompe-mode = 'olt'"; + type mpcp-maximum-queue-count-per-report; + config false; + description + "This object reflects the maximum number of queues (0-7) + that can be accepted by the OLT in a single REPORT MPCPDU, + as defined in IEEE Std 802.3, Clause 64 and Clause 77. + + This object is applicable for an OLT and has a distinct + value for each logical link."; + reference + "IEEE Std 802.3.1, dot3ExtPkgObjectReportMaximumNumQueues"; + } + leaf ompe-mode { + type ompe-mode; + config false; + description + "This object indicates the mode of operation of the + Reconciliation Sublayer for Point-to-Point Emulation (see + IEEE Std 802.3, 65.1 or 76.2 as appropriate). + + The value of 'unknown' is assigned in initialization; true + state or type is not yet known. + + The value of 'olt' is assigned when the sublayer is + operating in OLT mode. + + The value of 'onu' is assigned when the sublayer is + operating in ONU mode. + + This object is applicable for an OLT and an ONU. It has + the same value for each logical link."; + reference + "IEEE Std 802.3, 30.3.7.1.2"; + } + } +} diff --git a/standard/ieee/draft/802.3/ieee802-ethernet-pse-2.yang b/standard/ieee/published/802.3/ieee802-ethernet-pse-2.yang similarity index 95% rename from standard/ieee/draft/802.3/ieee802-ethernet-pse-2.yang rename to standard/ieee/published/802.3/ieee802-ethernet-pse-2.yang index 6cc5ac75d..8b281bf21 100644 --- a/standard/ieee/draft/802.3/ieee802-ethernet-pse-2.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-pse-2.yang @@ -1,7 +1,7 @@ module ieee802-ethernet-pse-2 { yang-version 1.1; namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pse-2"; - prefix ieee802-pse-2024; + prefix ieee802-pse-2; import ietf-interfaces { prefix if; @@ -24,28 +24,28 @@ module ieee802-ethernet-pse-2 { "Web URL: http://www.ieee802.org/3/"; description "This module contains YANG definitions for configuring and - managing ports with Power Over Ethernet features defined by + managing ports with Power over Ethernet features defined by IEEE Std 802.3-2022. - This module is based on,and superscedes ieee802-ethernet-pse.yang + This module is based on, and supersedes ieee802-ethernet-pse.yang from IEEE Std 802.3.2-2019."; - revision 2025-04-17 { + revision 2025-09-10 { description - "Updates under IEEE Std 802.3.2-202x, Draft D3.3"; + "Updates under IEEE Std 802.3.2-2025"; reference - "IEEE Std IEEE Std 802.3.2-202x, unless dated explicitly"; + "IEEE Std IEEE Std 802.3.2-2025, unless dated explicitly"; } feature multi-pair-pse { description "This object indicates the support for IEEE Std 802.3 - Clause 33 and/or 145."; + Clause 33 and/or Clause 145."; } feature single-pair-pse { description "This object indicates the support for IEEE Std 802.3 - Clause 104."; + Clause 104."; } typedef multi-pair-detection-state { @@ -160,7 +160,7 @@ module ieee802-ethernet-pse-2 { description "Multi-pair PoE power class."; reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassification "; + "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerClassification "; } typedef pse-support { @@ -171,7 +171,8 @@ module ieee802-ethernet-pse-2 { } enum four-pair { description - "PSE port supports IEEE Std 802.3, Clause 33 and 145."; + "PSE port supports IEEE Std 802.3, Clause 33 and + Clause 145."; } enum single-pair { description @@ -364,10 +365,10 @@ module ieee802-ethernet-pse-2 { can occur at re-initialization of the management system, and at other times as indicated by the value of the 'discontinuity-time' leaf defined in the ietf-interfaces - YANG module (IETF RFC 8343)."; + YANG module (IETF RFC 8343)."; reference "IEEE Std 802.3, 30.9.1 multi-pair PoE PSE and - IEEE Std 802.3, 30.15.1 single-pair PoE PSE"; + IEEE Std 802.3, 30.15.1 single-pair PoE PSE"; leaf supported-pse-type { type pse-support; config false; @@ -378,7 +379,7 @@ module ieee802-ethernet-pse-2 { container multi-pair { if-feature "multi-pair-pse"; presence "PSE port supports IEEE Std 802.3 Clause 33 - and/or Clause 145."; + and/or Clause 145."; description "PSE port configuration in IEEE Std 802.3, 30.9.1."; leaf pse-enable { @@ -436,7 +437,7 @@ module ieee802-ethernet-pse-2 { description "The power class of the detected PD."; reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; + "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerClassfication"; } /* Multi-pair statistics */ container statistics { diff --git a/standard/ieee/published/802.3/ieee802-ethernet-pse.yang b/standard/ieee/published/802.3/ieee802-ethernet-pse.yang index 7bd4d1079..b4cca6207 100755 --- a/standard/ieee/published/802.3/ieee802-ethernet-pse.yang +++ b/standard/ieee/published/802.3/ieee802-ethernet-pse.yang @@ -1,570 +1,657 @@ -module ieee802-ethernet-pse{ - yang-version 1.1; - namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pse"; - prefix ieee802-pse; - - import ietf-interfaces { - prefix "if"; - reference "IETF RFC 8343"; - } - - import ietf-yang-types { - prefix yang; - reference "IETF RFC 6991"; - } - - import ieee802-ethernet-interface { - prefix ieee802-eth-if; - } - - organization - "IEEE 802.3 Ethernet Working Group - Web URL: http://www.ieee802.org/3/"; - - contact - "Web URL: http://www.ieee802.org/3/"; - - description - "This module contains YANG definitions for configuring and - managing ports with Power Over Ethernet feature defined by - IEEE 802.3. It provides functionality roughly equivalent to - that of the POWER-ETHERNET-MIB defined in IETF RFC 3621."; - - revision 2019-06-21{ - description "Initial revision."; - reference "IEEE Std 802.3-2018, unless dated explicitly"; - } - - typedef multi-pair-detection-state { - type enumeration { - enum disabled { - value 1; - description "PSE disabled."; - } - enum searching { - value 2; - description "PSE is searching."; - } - enum deliveringPower { - value 3; - description "PSE is delivering power."; - } - enum fault { - value 4; - description "PSE fault detected."; - } - enum test { - value 5; - description "PSE test mode."; - } - enum otherFault { - value 6; - description "PSE implementation specific fault detected."; - } - } - description - "Detection state of a multi-pair PSE."; - reference - "IEEE Std 802.3, 30.9.1.1.5"; - } - - typedef single-pair-detection-state{ - type enumeration { - enum unknown { - value 1; - description "True detection state unknown."; - } - enum disabled { - value 2; - description "PoDL PSE is disabled."; - } - enum searching { - value 3; - description "PoDL PSE is searching."; - } - enum deliveringPower { - value 4; - description "PoDL PSE is delivering power."; - } - enum sleep { - value 5; - description "PoDL PSE is in sleep state."; - } - enum idle { - value 6; - description "PoDL PSE is idle."; - } - enum error { - value 7; - description "PoDL PSE error."; - } - } - - description - "Detection state of a PoDL PSE."; - reference - "IEEE Std 802.3, 30.15.1.1.3"; - } - - typedef power-class { - type enumeration { - enum class0 { - value 1; - description "Class 0"; - } - enum class1 { - value 2; - description "Class 1"; - } - enum class2 { - value 3; - description "Class 2"; - } - enum class3 { - value 4; - description "Class 3"; - } - enum class4 { - value 5; - description "Class 4"; - } - enum class5 { - value 6; - description "Class 5 (for PoDL-only)"; - } - enum class6 { - value 7; - description "Class 6 (for PoDL-only)"; - } - enum class7 { - value 8; - description "Class 7 (for PoDL-only)"; - } - enum class8 { - value 9; - description "Class 8 (for PoDL-only)"; - } - enum class9 { - value 10; - description "Class 9 (for PoDL-only)"; - } - enum unknown { - value 11; - description - "Initializing, true Power Class not yet known - (only for PoDL PSE)."; - } - } - description - "Power class."; - reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassification and - IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass."; - } - - identity pse-type { - description "Base type for PSE."; - } - - identity multi-pair { - base pse-type; - description "PSE supports IEEE Std 802.3, Clause 33."; - } - - identity single-pair { - base pse-type; - description "PSE support IEEE Std 802.3, Clause 104."; - } - - identity powering-pairs { - description "Base type for powering pairs."; - } - identity signal { - base powering-pairs; - description "The signal pair is in use."; - } - identity spare { - base powering-pairs; - description "The spare pair is in use."; - } - - augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { - description - "Augments ethernet interface configuration model with - nodes specific to DTE Power via MDI devices and ports"; - - container pse { - description - "DTE Power via MDI port configuration"; - reference - "IEEE Std 802.3, 30.9.1 PoE PSE & IEEE Std 802.3, 30.15.1 PoDL - PSE"; - - leaf supported-pse-type { - type identityref { - base ieee802-pse:pse-type ; - } - config false; - description - "PSE may support IEEE Std 802.3, Clause 33 or - IEEE Std 802.3, Clause 104."; - } - - container multi-pair { - presence "PSE port supports IEEE Std 802.3, Clause 33."; - - description - "PSE port configuration in IEEE Std 802.3, 30.9.1."; - - leaf pse-enable { - type boolean; - default false; - description - "When true enables the PSE function on the interface, - when false disables the PSE function on the interface."; - reference - "IEEE Std 802.3, 30.9.1.1.2 aPSEAdminState"; - } - - leaf powering-pairs { - type identityref{ - base powering-pairs; - } - description - "Describes or controls the PSE pairs in use. If the value of - pairs-control-ability is true, this object is - writeable."; - - reference - "IEEE Std 802.3, 30.9.1.1.4 aPSEPowerPairs"; - } - - leaf pairs-control-ability { - type boolean; - default true; - config false; - description - "Describes the ability to control switching the - power sourcing pins of the PSE."; - reference - "IEEE Std 802.3, 30.9.1.1.3 aPSEPowerPairsControlAbility"; - } - - leaf detection-status { - type multi-pair-detection-state; - config false; - description - "Describes the operational status of the port - PD detection."; - reference - "IEEE Std 802.3, 30.9.1.1.5 aPSEPowerDetectionStatus"; - } - - leaf classifications { - when "../detection-status = 'deliveringPower'" { - description - "This node only applies when the detection status is - delivering power."; - } - type power-class; - config false; - description - "The power class of the PSE port."; - reference - "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; - } - - container statistics { - config false; - description - "statistics information of the multi-pair port."; - - leaf power-denied { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - enters the POWER_DENIED state, per IEEE Std 802.3, - Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerDeniedCounter"; - } - - leaf invalid-signature { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - enters the SIGNATURE_INVALID state per IEEE Std 802.3, - Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.7 aPSEInvalidSignatureCounter"; - } - - leaf mps-absent { - type yang:counter64; - description - "This counter is incremented when the PSE - transitions directly from the POWER_ON state to the - IDLE state due to tmpdo_timer_done being asserted, - per IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.11 aPSEMPSAbsentCounter"; - } - - leaf overload { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - enters the ERROR_DELAY state due to the ovld_detected - variable being TRUE, per IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.9 aPSEOverLoadCounter"; - } - - leaf short { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - enters the ERROR_DELAY state due to the short_detected - variable being TRUE, per IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.9.1.1.10 aPSEShortCounter"; - } - - leaf cumulative-energy { - type yang:counter64; - units millijoules; - description - "The cumulative energy supplied by the PSE as measured at - the MDI in millijoules."; - - reference - "IEEE Std 802.3, 30.9.1.1.14 aPSECumulativeEnergy"; - } - - } - - leaf actual-power { - type decimal64 { - fraction-digits 4; - } - - units milliwatts; - config false; - description - "The actual power drawn by a PD over the port."; - reference - "IEEE Std 802.3, 30.9.1.1.12 aPSEActualPower"; - } - - leaf power-accuracy { - type int64; - units milliwatts; - config false; - description - "An integer value indicating the accuracy - associated with power-accuracy in +/- milliwatts."; - reference - "IEEE Std 802.3, 30.9.1.1.13 aPSEPowerAccuracy"; - } - - } - - container single-pair { - presence "PSE port working in PoDL."; - - description - "PoDL PSE configuration as defined in - IEEE Std 802.3, 30.15.1."; - - leaf pse-enable { - type boolean; - default false; - description - "When true enables the PSE function on the interface, - when false disables the PSE function on the interface."; - reference - "IEEE Std 802.3, 30.15.1.1.2 aPoDLPSEAdminState"; - } - - leaf detection-status { - type single-pair-detection-state; - config false; - description - "Indicates the current status of the PoDL PSE."; - reference - "IEEE Std 802.3, 30.15.1.1.3 aPoDLPSEPowerDetectionStatus"; - } - - leaf podl-type { - type enumeration { - enum unknown { - description "Unknown PSE type."; - } - enum typeA { - description "TypeA"; - } - enum typeB { - description "TypeB"; - } - enum typeC { - description "TypeC"; - } - enum typeD { - description "TypeD"; - } - } - config false; - description "PSE type specified in IEEE Std 802.3, 104.4.1."; - } - - leaf detected-pd-type { - when "../detection-status = 'deliveringPower'" { - description - "This node only applies when the detection status is - delivering power."; - } - - type enumeration { - enum unknown { - description "Unknown"; - } - enum typeA { - description "TypeA"; - } - enum typeB { - description "TypeB"; - } - enum typeC { - description "TypeC"; - } - enum typeD { - description "TypeD"; - } - } - config false; - description - "Indicates the Type of the detected PoDL PD as specified in - IEEE Std 802.3, 104.5.1."; - - reference - "IEEE Std 802.3, 30.15.1.1.5 aPoDLPSEDetectedPDType"; - } - - leaf pd-power-class { - - when "../detection-status = 'deliveringPower'" { - description - "This node only applies when the detection status is - delivering power."; - } - - type power-class; - config false; - description - "Power class of the PD detected on the PSE port."; - reference - "IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass"; - } - - container statistics { - config false; - description "Statistics information of the single-pair PSE"; - - leaf power-denied { - type yang:counter64; - description - "This counter is incremented when the PoDL PSE state - diagram variable power_available transitions from true - to false (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.9 aPoDLPSEPowerDeniedCounter"; - } - - leaf invalid-signature { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - enters the SIGNATURE_INVALID state per - IEEE Std 802.3, Figure 33-9."; - reference - "IEEE Std 802.3, 30.15.1.1.7 - aPoDLPSEInvalidSignatureCounter"; - } - - leaf invalid-class { - type yang:counter64; - description - "This counter is incremented when the PoDL PSE state - diagram variable tclass_timer_done transitions from false - to true or when the valid_class variable transitions from - true to false (see IEEE Std 802.3, 104.4.3.3)."; - - reference - "IEEE Std 802.3, 30.15.1.1.8 aPoDLPSEInvalidClassCounter"; - } - - leaf overload { - type yang:counter64; - description - "This counter is incremented when the PSE state diagram - variable overload_held transitions from false to true - (see IEEE Std 802.3, 104.4.3.3)."; - reference - "IEEE Std 802.3, 30.15.1.1.10 aPoDLPSEOverLoadCounter"; - } - - leaf fvs-absence { - type yang:counter64; - description - "Maintain Full Voltage Signature absent counter. - This counter is incremented when the PoDL PSE state - diagram variable mfvs_timeout transitions from false to - true (see IEEE Std 802.3, 104.4.3.3)."; - - reference - "IEEE Std 802.3, 30.15.1.1.11 - aPoDLPSEMaintainFullVoltageSignatureAbsentCounter"; - } - - leaf cumulative-energy { - type yang:counter64; - units millijoules; - description - "A count of the cumulative energy supplied by the PoDL - PSE, measured at the MDI, and expressed in units of - millijoules."; - reference - "IEEE Std 802.3, 30.15.1.1.14 aPoDLPSECumulativeEnergy"; - } - - } - - leaf actual-power { - type decimal64 { - fraction-digits 4 ; - } - - units milliwatts; - config false; - description - "An integer value indicating present (actual) power being - supplied by the PoDL PSE as measured at the MDI in - milliwatts."; - reference - "IEEE Std 802.3, 30.15.1.1.12 aPoDLPSEActualPower"; - } - - leaf power-accuracy { - type int64; - units milliwatts; - config false; - description - "A signed integer value indicating the accuracy associated - with power-accuracy in milliwatts."; - reference - "IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy"; - } - } - } - } -} \ No newline at end of file +module ieee802-ethernet-pse { + yang-version 1.1; + namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pse"; + prefix ieee802-pse; + + import ietf-interfaces { + prefix if; + reference + "IETF RFC 8343"; + } + import ietf-yang-types { + prefix yang; + reference + "IETF RFC 6991"; + } + import ieee802-ethernet-interface { + prefix ieee802-eth-if; + } + + organization + "IEEE 802.3 Ethernet Working Group + Web URL: http://www.ieee802.org/3/"; + contact + "Web URL: http://www.ieee802.org/3/"; + description + "This module is deprecated and superseded by + ieee802-ethernet-pse-2. + This module contains YANG definitions for configuring and + managing ports with Power over Ethernet features defined by + IEEE Std 802.3. It provides functionality roughly equivalent to + that of the POWER-ETHERNET-MIB defined in IETF RFC 3621."; + + revision 2025-09-10 { + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2"; + reference + "IEEE Std IEEE Std 802.3.2-2025, unless dated explicitly"; + } + + identity pse-type { + description + "Base type for PSE."; + } + + identity all { + base powering-pairs; + description + "All pairs are in use."; + } + + identity four-pair { + base pse-type; + description + "PSE supports IEEE Std 802.3, Clause 145."; + } + + identity two-pair { + base pse-type; + description + "PSE supports IEEE Std 802.3, Clause 33."; + } + + identity single-pair { + base pse-type; + description + "PSE supports IEEE Std 802.3, Clause 104."; + } + + identity powering-pairs { + description + "Base type for powering pairs."; + } + + identity signal { + base powering-pairs; + description + "The signal pairs are in use."; + } + + identity spare { + base powering-pairs; + description + "The spare pairs are in use."; + } + + typedef multi-pair-detection-state { + type enumeration { + enum disabled { + value 1; + description + "PSE disabled."; + } + enum searching { + value 2; + description + "PSE is searching."; + } + enum deliveringPower { + value 3; + description + "PSE is delivering power."; + } + enum fault { + value 4; + description + "PSE fault detected."; + } + enum test { + value 5; + description + "PSE test mode."; + } + enum otherFault { + value 6; + description + "PSE implementation specific fault detected."; + } + } + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Detection state of a multi-pair PSE."; + reference + "IEEE Std 802.3, 30.9.1.1.5"; + } + + typedef single-pair-detection-state { + type enumeration { + enum unknown { + value 1; + description + "True detection state unknown."; + } + enum disabled { + value 2; + description + "PoDL PSE is disabled."; + } + enum searching { + value 3; + description + "PoDL PSE is searching."; + } + enum deliveringPower { + value 4; + description + "PoDL PSE is delivering power."; + } + enum sleep { + value 5; + description + "PoDL PSE is in sleep state."; + } + enum idle { + value 6; + description + "PoDL PSE is idle."; + } + enum error { + value 7; + description + "PoDL PSE error."; + } + } + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Detection state of a PoDL PSE."; + reference + "IEEE Std 802.3, 30.15.1.1.3"; + } + + typedef power-class { + type enumeration { + enum class0 { + value 1; + description + "Class 0"; + } + enum class1 { + value 2; + description + "Class 1"; + } + enum class2 { + value 3; + description + "Class 2"; + } + enum class3 { + value 4; + description + "Class 3"; + } + enum class4 { + value 5; + description + "Class 4"; + } + enum class5 { + value 6; + description + "Class 5 (for PoDL-only)"; + } + enum class6 { + value 7; + description + "Class 6 (for PoDL-only)"; + } + enum class7 { + value 8; + description + "Class 7 (for PoDL-only)"; + } + enum class8 { + value 9; + description + "Class 8 (for PoDL-only)"; + } + enum class9 { + value 10; + description + "Class 9 (for PoDL-only)"; + } + enum unknown { + value 11; + description + "Initializing, true Power Class not yet known + (only for PoDL PSE)."; + } + } + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + The power class."; + reference + "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerClassification and + IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass."; + } + + augment "/if:interfaces/if:interface/ieee802-eth-if:ethernet" { + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Augments ethernet interface configuration model with + nodes specific to DTE Power via MDI devices and ports"; + container pse { + description + "DTE Power via MDI port configuration"; + reference + "IEEE Std 802.3, 30.9.1 PoE PSE & IEEE Std 802.3, 30.15.1 + PoDL PSE"; + leaf supported-pse-type { + type identityref { + base ieee802-pse:pse-type; + } + config false; + description + "PSE supports one or more of IEEE Std 802.3 Clause 33, + Clause 104, or Clause 145."; + } + container multi-pair { + presence "PSE port supports IEEE Std 802.3, Clause 33."; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + PSE port configuration in IEEE Std 802.3, 30.9.1."; + leaf pse-enable { + type boolean; + default "false"; + description + "When true enables the PSE function on the interface, + when false disables the PSE function on the + interface."; + reference + "IEEE Std 802.3, 30.9.1.1.2 aPSEAdminState"; + } + leaf powering-pairs { + type identityref { + base powering-pairs; + } + description + "Describes or controls the PSE pairs in use. If the + value of pairs-control-ability is true, this object + is writeable."; + reference + "IEEE Std 802.3, 30.9.1.1.4 aPSEPowerPairs"; + } + leaf pairs-control-ability { + type boolean; + default "true"; + config false; + description + "Describes the ability to control switching the + power sourcing pins of the PSE."; + reference + "IEEE Std 802.3, 30.9.1.1.3 + aPSEPowerPairsControlAbility"; + } + leaf detection-status { + type multi-pair-detection-state; + config false; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Describes the operational status of the port + PD detection."; + reference + "IEEE Std 802.3, 30.9.1.1.5 aPSEPowerDetectionStatus"; + } + leaf classifications { + when "../detection-status = 'deliveringPower'" { + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + This node only applies when the detection status is + delivering power."; + } + type power-class; + config false; + status deprecated; + description + "The power class of the PSE port."; + reference + "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerClassfication"; + } + container statistics { + config false; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Statistics information of the multi-pair + port."; + leaf power-denied { + type yang:counter64; + description + "This counter is incremented when the PSE state + diagram enters the POWER_DENIED state, per + IEEE Std 802.3, Figure 33-9."; + reference + "IEEE Std 802.3, 30.9.1.1.14"; + } + leaf invalid-signature { + type yang:counter64; + description + "This counter is incremented when the PoDL PSE state + diagram variable mr_invalid_signature transitions + from false to true."; + reference + "IEEE Std 802.3, 30.9.1.1.11"; + } + leaf mps-absent { + type yang:counter64; + description + "This counter is incremented when the PSE + transitions directly from the POWER_ON state to the + IDLE state due to tmpdo_timer_done being asserted, + per IEEE Std 802.3, Figure 33-9."; + reference + "IEEE Std 802.3, 30.9.1.1.20"; + } + leaf overload { + type yang:counter64; + status deprecated; + description + "This counter is incremented when the PSE state + diagram enters the ERROR_DELAY state due to the + ovld_detected variable being TRUE, per + IEEE Std 802.3, Figure 33-9."; + reference + "IEEE Std 802.3, 30.9.1.1.17"; + } + leaf short { + type yang:counter64; + status deprecated; + description + "This Yang object is deprecated as its not defined in + base standard. + This counter is incremented when the PSE state + diagram enters the ERROR_DELAY state due to the + short_detected variable being TRUE, per + IEEE Std 802.3, Figure 33-9."; + reference + "IEEE Std 802.3-2018, 30.9.1.1.10 aPSEShortCounter"; + } + leaf cumulative-energy { + type yang:counter64; + units "millijoules"; + description + "The cumulative energy supplied by the PSE as + measured at the MDI in millijoules."; + reference + "IEEE Std 802.3, 30.9.1.1.25"; + } + } + leaf actual-power { + type decimal64 { + fraction-digits 4; + } + units "milliwatts"; + config false; + description + "The actual power drawn by a PD over the port."; + reference + "IEEE Std 802.3, 30.9.1.1.23"; + } + leaf power-accuracy { + type int64; + units "milliwatts"; + config false; + description + "An integer value indicating the accuracy + associated with power-accuracy in +/- milliwatts."; + reference + "IEEE Std 802.3, 30.9.1.1.24"; + } + } + container single-pair { + presence "PSE port working in PoDL."; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + PoDL PSE configuration as defined in + IEEE Std 802.3, 30.15.1."; + leaf pse-enable { + type boolean; + default "false"; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + When true enables the PSE function on the interface, + when false disables the PSE function on the + interface."; + reference + "IEEE Std 802.3, 30.15.1.1.2 aPoDLPSEAdminState"; + } + leaf detection-status { + type single-pair-detection-state; + config false; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Indicates the current status of the PoDL PSE."; + reference + "IEEE Std 802.3, 30.15.1.1.3 + aPoDLPSEPowerDetectionStatus"; + } + leaf podl-type { + type enumeration { + enum unknown { + description + "Unknown PSE type."; + } + enum typeA { + description + "TypeA PSE"; + } + enum typeB { + description + "TypeB PSE"; + } + enum typeC { + description + "Type PSEC"; + } + enum typeD { + description + "TypeD PSE"; + } + enum typeE { + description + "TypeE PSE"; + } + enum typeF { + description + "TypeF PSE"; + } + } + config false; + description + "PSE type specified in and + IEEE Std 802.3, 30.15.1.1.4."; + } + leaf detected-pd-type { + when "../detection-status = 'deliveringPower'" { + description + "This node only applies when the detection status is + delivering power."; + } + type enumeration { + enum unknown { + description + "Unknown PD type"; + } + enum typeA { + description + "TypeA PD"; + } + enum typeB { + description + "TypeB PD"; + } + enum typeC { + description + "TypeC PD"; + } + enum typeD { + description + "TypeD PD"; + } + enum typeE { + description + "TypeE PD"; + } + enum typeF { + description + "TypeF PD"; + } + } + config false; + description + "Indicates the Type of the detected PoDL PD as + specified in IEEE Std 802.3, 104.5.1."; + reference + "IEEE Std 802.3, 30.15.1.1.5 aPoDLPSEDetectedPDType"; + } + leaf pd-power-class { + when "../detection-status = 'deliveringPower'" { + description + "This node only applies when the detection status is + delivering power."; + } + type power-class; + config false; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Power class of the PD detected on the PSE port."; + reference + "IEEE Std 802.3, 30.15.1.1.6 + aPoDLPSEDetectedPDPowerClass"; + } + container statistics { + config false; + status deprecated; + description + "Deprecated in IEEE Std 802.3.2-2025, superseded by + ieee802-ethernet-pse-2 + Discontinuities in the values of counters in this + container can occur at re-initialization of the + management system, and at other times as indicated by + the value of the 'discontinuity-time' leaf defined in + the ietf-interfaces YANG module (IETF RFC 8343)."; + leaf power-denied { + type yang:counter64; + description + "This counter is incremented when the PoDL PSE state + diagram variable power_available transitions from + true to false (see IEEE Std 802.3, 104.4.4.3)."; + reference + "IEEE Std 802.3, 30.15.1.1.9 + aPoDLPSEPowerDeniedCounter"; + } + leaf invalid-signature { + type yang:counter64; + description + "This counter is incremented when the PSE state + diagram enters the SIGNATURE_INVALID state per + IEEE Std 802.3, Figure 33-9."; + reference + "IEEE Std 802.3, 30.15.1.1.7 + aPoDLPSEInvalidSignatureCounter"; + } + leaf invalid-class { + type yang:counter64; + description + "This counter is incremented when the PoDL PSE state + diagram variable tclass_timer_done transitions from + false to true or when the valid_class variable + transitions from true to false + (see IEEE Std 802.3, 104.4.4.3)."; + reference + "IEEE Std 802.3, 30.15.1.1.8 + aPoDLPSEInvalidClassCounter"; + } + leaf overload { + type yang:counter64; + description + "This counter is incremented when the PSE state + diagram variable overload_held transitions from + false to true (see IEEE Std 802.3, 104.4.4.3)."; + reference + "IEEE Std 802.3, 30.15.1.1.10 + aPoDLPSEOverLoadCounter"; + } + leaf fvs-absence { + type yang:counter64; + description + "Maintain Full Voltage Signature absent counter. + This counter is incremented when the PoDL PSE state + diagram variable mfvs_timeout transitions from false + to true (see IEEE Std 802.3, 104.4.4.3)."; + reference + "IEEE Std 802.3, 30.15.1.1.11 + aPoDLPSEMaintainFullVoltageSignatureAbsentCounter"; + } + leaf cumulative-energy { + type yang:counter64; + units "millijoules"; + description + "A count of the cumulative energy supplied by the + PoDL PSE, measured at the MDI, and expressed in + units of millijoules."; + reference + "IEEE Std 802.3, 30.15.1.1.14 + aPoDLPSECumulativeEnergy"; + } + } + leaf actual-power { + type decimal64 { + fraction-digits 4; + } + units "milliwatts"; + config false; + description + "An integer value indicating present (actual) power + being supplied by the PoDL PSE as measured at the MDI + in milliwatts."; + reference + "IEEE Std 802.3, 30.15.1.1.12 aPoDLPSEActualPower"; + } + leaf power-accuracy { + type int64; + units "milliwatts"; + config false; + description + "A signed integer value indicating the accuracy + associated with actual-power in milliwatts."; + reference + "IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy"; + } + } + } + } +} diff --git a/standard/itu b/standard/itu index 429becbcf..3dd2cec75 160000 --- a/standard/itu +++ b/standard/itu @@ -1 +1 @@ -Subproject commit 429becbcf4dc030531b67d65b982732af60fbde1 +Subproject commit 3dd2cec75dadec9fcd6ac2a3514b4bd65b11100b