This module contains YANG definitions for configuring IEEE Std 802.3 Ethernet Interfaces. In this YANG module, 'Ethernet interfa...
Version: 2025-04-17
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" { value 0; description "Full duplex."; } enum "half" { value 1; description "Half duplex."; } enum "unknown" { value 2; 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" { value 0; description "Flow-control disabled in both ingress and egress directions."; } enum "ingress-only" { value 1; description "PAUSE frame based flow control is enabled in the ingress direction only."; } enum "egress-only" { value 2; description "PAUSE frame based flow control is enabled in the egress direction only."; } enum "bi-directional" { value 3; description "PAUSE frame based flow control is enabled in both ingress and egress directions."; } enum "undefined" { value 4; 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" { value 0; description "The auto-negotiation protocol is running and negotiation is currently in-progress."; } enum "complete" { value 1; description "The auto-negotiation protocol has completed successfully."; } enum "failed" { value 2; description "The auto-negotiation protocol has failed."; } enum "unknown" { value 3; 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" { value 4; 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"; } } // container auto-negotiation 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"; } 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 statistics } // container pause 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"; } } // container statistics } // container pfc 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"; } } // container flow-control 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 capabilities 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 control-and-status 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 } // container ethernet-pause 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 frame 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 lpi } // container phy 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"; } } // container mac-control } // container statistics } // container ethernet } } // module ieee802-ethernet-interface
© 2024 YumaWorks, Inc. All rights reserved.