module ieee802-ethernet-interface { yang-version "1.1"; namespace "urn:ieee:params:xml:ns:yang:ieee802-ethernet-interface"; prefix eth-if; import ietf-yang-types { prefix yang; } import ietf-interfaces { prefix if; } import iana-if-type { prefix ianaift; } organization "Web URL: http://www.ieee802.org/3/ Working Group Chair: David Law dlaw@hpe.com Working Group Vice-chair: Adam Healey adam.healey@broadcom.com Acting YANG Data Model Definitions Task Force Chair: Yan Zhuang zhuangyan.zhuang@huawei.com Editor: Robert Wilton rwilton@cisco.com"; contact "Robert Wilton - rwilton@cisco.com"; description "This module contains YANG definitions for configuring IEEE 802.3 Ethernet Interfaces. In this YANG module, 'Ethernet interface' can be interpretted as referring to 'IEEE 802.3 standard compliant Ethernet interfaces'"; reference "IEEE 802.3-2015, unless dated explicitly"; revision 2017-02-23 { description "Initial revision of YANG model for IEEE 802.3 Ethernet interfaces. Changes from previous draft: - Changed speed to decimal64, in Gb/s to 3 decimal places. - Moved Ethernet stats under the Ethernet interface container, since someone retrieving the higher layer stats may not want to get Ethernet statistics at the same time because they are a lower layer. - Changed counters from uint64 to yang:counter64: - More consistent with the RFC 7223 and MIB counters. - Rejigged auto-neg, duplex, speed, fc, pfc to be more inline with how IETF NETMOD thinks that future models should look like. Specifically to allow for an easy migrate to combined config and state trees."; reference "IEEE P802.3.2 (IEEE 802.3cf) YANG Data Model Definitions Task Force"; } 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"; } } default full; description "The current duplex mode of operation 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 on ingress are discarded without processing"; } enum "ingress-only" { description "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 on ingress are dicarded without reducing the egress traffic rate."; } enum "egress-only" { description "Flow control is enabled in the egress direction only. I.e. PAUSE frames are not transmitted, but PAUSE frames received on ingress are processed to reduce the egress traffic rate."; } enum "bi-directional" { description "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."; } } description "Enumerates the possible PAUSE frame based flow control settings that can be used in explicit configuration, or when reporting the operational state"; /* * TODO - Remove/replace references to 802.3.1 here, is there * a clause 30 equivalent? */ reference "IEEE 802.3.1, dot3PauseAdminMode and dot3PauseOperMode"; } feature ethernet-pfc { description "This device supports Ethernet priority flow-control"; } // TODO - How should MPCP be handled? augment "/if:interfaces/if:interface" { when "if:type = 'ianaift:ethernetCsmacd'" { description "Applies to all P2P Ethernet interfaces"; } description "Augment interface model with IEEE 802.3 Ethernet interface specific configuration nodes"; container ethernet { description "Contains all Ethernet interface related configuration"; container auto-negotiation { description "Contains auto-negotiation transmission parameters XXX, reference the general interface configuration. Allows the advertised duplex value in the negotiation to be restricted. If not specified then the default behaviour is to negotiate all available values for the particular type of Ethernet PHY associated with the interface. If auto-negotiation is enabled, and flow control has not been explicitly configured, then the default flow control capabilities that are negotiated allows for bi-directional or egress-only flow control to be negotiated (depending on the peer device capabilities/configuration). If auto-negotiation is enabled, and 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 flow control to be negotiated without also allowing bi-directional flow control."; reference "IEEE 802.3 section 28 and annexes 28A-D"; leaf enable { type boolean; description "Controls whether auto-negotiation is enabled or disabled. For interface types that support auto-negotiation then it defaults to being enabled. TODO - Or should the default just be left to vendor discretion?"; } } leaf duplex { type duplex-type; default full; description "Force the Ethernet interface to run in full or half duplex mode (if supported). If auto-negotiation is enabled then explicitly configuring duplex restricts the duplex value that may be negotiated. If the peer device does not accept a configured duplex value then auto-negotiation will fail, and the link will not come up. Half duplex can only be negotiated for some interface types - as specified in 802.3, annex section 28B.3."; reference "IEEE 802.3, 30.3.1.1.32, aDuplexStatus"; } leaf speed { type eth-if-speed-type; description "For PHY types that may operate at various speeds, this leaf allows the interface to be forced to operate at a particular speed. Without any explicit configuration, Ethernet interfaces run at the maximum speed that they are capable of operating at Allows the advertised speed value (Gb/s) in the negotiation to be restricted. Speed is only negotiated for some PHYs, many higher speed PHYs operate at a fixed speed. If this leaf is not set then the default behaviour is to negotiate all available speeds, generally choosing the fastest speed as per 802.3 Annex 28B.3."; } container flow-control { description "Holds the different types of Ethernet flow control that can be enabled"; container pause { description "802.3 PAUSE frame based flow control"; reference "IEEE 802.3, xxx"; leaf direction { type pause-fc-direction-type; description "Indicates which direction 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 negoiated by default."; } } container pfc { if-feature "ethernet-pfc"; description "802.3 Priority-based flow control"; reference "IEEE 802.3, Annex 31 D"; leaf enable { type boolean; // TODO - Add must statement to enforce pfc xor pause, // must ""; description "True indicates that 802.3 priority-based flow control is enabled, false indicates that 802.3 priority-based flow control is disabled. For interfaces that have auto-negotiation, then priority-based flow control is negotiated by default. If explicitly configured, when auto-negotiated is enabled, then the configuration will restrict the priority flow control settings that can be negotiated. "; } } leaf force-flow-control { type boolean; default false; description "Explicitly force the local flow control settings regardless of what has been negotiated. Since the auto-negotiation of flow-control settings doesn't 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 doesn't cause the auto-negotation to fail completely, then it is sometimes useful to be able to explicitly enable particular flow control settings on the local device regardless of what is being advertised or negotiated"; reference "IEEE 802.3 Table 28B-3-Pause resolution"; } } } } /* * Operational State. */ augment "/if:interfaces-state/if:interface" { when "if:type = 'ianaift:ethernetCsmacd'" { description "Applies to all Ethernet interfaces"; } description "Augments interfaces-state model with 802.3 Ethernet specific operational state nodes"; container ethernet { description "Contains operational state for Ethernet interfaces"; container auto-negotiation { description "Holds all operational state related to auto-negotiation."; leaf enable { type boolean; description "Indicates whether auto-negotiation is enabled or disabled. If the interface is not capable of supporting auto-negotiation then this must be reported as false"; } 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-negotation protocol has completed successfully"; } enum failed { description "The auto-negotation 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)"; } } 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 of the Ethernet interface"; } container flow-control { description "Holds the different types of Ethernet flow control that can be enabled"; container pause { description "802.3 PAUSE frame based flow control"; reference "IEEE 802.3, xxx"; leaf direction { type pause-fc-direction-type; description "Indicates which direction 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 negoiated by default."; } container statistics { description "Contains the number of PAUSE frames received or transmitted"; leaf in-pkts-pause { type yang:counter64; units frames; description "A count of PAUSE MAC Control frames transmitted on this Ethernet interface. Discontinuities in the values of this 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 (RFC 7223)."; reference "IEEE 802.3, 30.3.4.3, aPAUSEMACCtrlFramesReceived"; } leaf out-pkts-pause { type yang:counter64; units frames; description "A count of PAUSE MAC Control frames transmitted on this Ethernet interface. Discontinuities in the values of this 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 (RFC 7223)."; reference "IEEE 802.3, 30.3.4.2, aPAUSEMACCtrlFramesTransmitted"; } } } container pfc { if-feature "ethernet-pfc"; description "802.3 Priority-based flow control"; reference "IEEE 802.3, Annex 31 D"; leaf enable { type boolean; // TODO - Add must statement to enforce pfc or pause, // not both. // must ""; description "True indicates that 802.3 priority-based flow control is enabled, false indicates that 802.3 priority-based flow control is disabled. For interfaces that have auto-negotiation, then priority-based flow control is negotiated by default. If explicitly configured, when auto-negotiated is enabled, then the configuration will restrict the priority flow control settings that can be negotiated."; } container statistics { description "TODO"; leaf in-pkts-pfc { type yang:counter64; units frames; description "A count of PFC MAC Control frames received on this Ethernet interface. Discontinuities in the values of this 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 (RFC 7223)."; reference "IEEE 802.3.1, dot3HCInPFCFrames"; } leaf out-pkts-pfc { type yang:counter64; units frames; description "A count of PFC MAC Control frames transmitted on this interface. Discontinuities in the values of this 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 (RFC 7223)."; reference "IEEE 802.3.1, dot3HCInPFCFrames"; } } } leaf force-flow-control { type boolean; description "Explicitly force the local flow control settings regardless of what has been negotiated. Since the auto-negotiation of flow-control settings doesn't 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 doesn't cause the auto-negotation to fail completely, then it is sometimes useful to be able to explicitly enable particular flow control settings on the local device regardless of what is being advertised or negotiated"; reference "IEEE 802.3 Table 28B-3-Pause resolution"; } } leaf max-frame-length { type uint16; units octets; description "This indicates the MAC frame length (including FCS bytes) at which frames are dropped for being too long."; reference "IEEE 802.3, 30.3.1.1.25, aMaxFrameLength"; } // TODO - Do we need this? Can it be express in a better way? leaf macc-extension-control { type boolean; 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 "; } /* * TODO - Should this leaf also be configurable? Is this a * current leaf? */ leaf frame-limit-slow-protocol { type uint32; units fps; default 10; 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"; } /* * TODO - Figure out whether capabilities should just be * reported as a state container, or whether they would * be better represented as a grouping and accessible * via an RPC. */ container capabilities { description "Container all Ethernet interface specific capabilties."; leaf auto-negotiation { type boolean; default false; description "Indicates whether auto-negotiation may be configured on this interface."; } /* * TODO - Extend these with other capabilities: * speed, duplex, fc, pfc, etc. */ } /* * Ethernet statistics. */ container frame-statistics { description "Contains 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 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 (RFC 7223). Discontinuities in the values of this 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 (RFC 7223)."; leaf in-total-pkts { 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 802.3 clause 30 counters: aFramesReceivedOK + aFrameCheckSequenceErrors + aAlignmentErrors + aFrameTooLongErrors + aFrameTooShortErrors + aFramesLostDueToIntMACRcvError Also see the 'description' statement associated with the parent 'statistics' container for additional common semantics related to this counter. "; // REVIEW NOTE - aFrameTooShortErrors is not currently // defined. reference "IEEE 802.3, various 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 byte FCS. Also see the 'description' statement associated with the parent 'statistics' container for additional common semantics related to this counter."; // REVIEW NOTE - There does not appear to be any clause 30 // register defined for this counter. reference "(RMON MIB: etherStatsOctets) IEEE 802.3, TODO"; } leaf in-pkts { 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 802.3, 30.3.1.1.5 aFramesReceivedOK"; } leaf in-multicast-pkts { 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-pkts. 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 802.3, 30.3.1.1.21 aMulticastFramesReceivedOK"; } leaf in-broadcast-pkts { 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-pkts. 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 802.3, 30.3.1.1.22 aBroadcastFramesReceivedOK"; } /* * REVIEW NOTE - DELETE FOR PUBLICATION * * It looks like the definition of the aAlignmentErrors, * means that the counter is not incremented by interfaces * that are 1Gb/s or faster. Hence, I used the definition * from the RMON MIB that combined FCS and Alignment into a * single counter. */ leaf in-error-fcs-pkts { 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 effective 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 802.3, 30.3.1.1.6, aFrameCheckSequenceErrors; IEEE 802.3, 30.3.1.1.7, aAlignmentErrors"; } /* * REVIEW NOTE - DELETE FOR PUBLICATION: * * RMON MIB has two separate counters for packets less than 64 bytes: * (etherStatsUndersizePkts etherStatsFragments) depending on * whether the frame passes the FCS check. Neither clause * 30, nor the Etherlike MIB supports this split, so I've * not included the split counters (it would require two new * counters in clause 30). * * Further, the reference is to clause 30.1.1.1.10, aRunts, * but it isn't clear to me that this reference is entirely * correct. */ leaf in-error-undersize-pkts { 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."; // REVIEW NOTE - This reference does not appear to be // correct, is a new clause 30 register // definition required? reference "IEEE 802.3, "; } /* * REVIEW NOTE - DELETE FOR PUBLICATION: * * RMON MIB has two separate counters for oversized packets * (etherStatsOversizePkts and etherStatsJabbers) depending on * whether the frame passes the FCS check. Neither clause * 30, nor the Etherlike MIB supports this split, so I've * not included the split counters (it would require two new * counters in clause 30). */ leaf in-error-oversize-pkts { 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 802.3, 30.3.1.1.25, aFrameTooLongErrors"; } leaf in-error-mac-internal-pkts { 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-pkts, in-error-undersize-pkts, or in-error-oversize-pkts. 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 802.3, 30.3.1.1.15, aFramesLostDueToIntMACRcvError"; } /* * Egress counters. */ // REVIEW NOTE: No out-total-octets counter since the // definition would match the out-octets counter in the // ietf-interfaces YANG module. leaf out-pkts { 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 802.3, 30.3.1.1.2 aFramesTransmittedOK"; } leaf out-multicast-pkts { 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-pkts. Also see the 'description' statement associated with the parent 'statistics' container for additional common semantics related to this counter."; reference "IEEE 802.3, 30.3.1.1.18 aMulticastFramesXmittedOK"; } leaf out-broadcast-pkts { 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-pkts. Also see the 'description' statement associated with the parent 'statistics' container for additional common semantics related to this counter."; reference "IEEE 802.3, 30.3.1.1.19 aBroadcastFramesXmittedOK"; } leaf out-error-mac-internal-pkts { 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-statistics { description "Ethernet statistics related to the PHY layer. Discontinuities in the values of this 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 (RFC 7223)."; 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 802.3, section 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 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 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 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 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 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 of the LPI transmit state diagram is 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 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 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 802.3, 30.3.2.1.8 aTransmitPIMicroseconds"; } } } container mac-control-statistics { description "Group of statistics specific to MAC Control operation of selected Ethernet interfaces. Discontinuities in the values of this 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 (RFC 7223)."; reference "IEEE 802.3, IEEE 802.3.1, dot3ExtensionTable"; leaf in-pkts-macc-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 (RFC 7223). Also see the 'description' statement associated with the parent 'mac-control-statistics' container for additional semantics."; reference "IEEE 802.3, 30.3.3.5 aUnsupportedOpcodesReceived"; } leaf in-pkts-macc-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 802.3, 30.3.8.2 aEXTENSIONMACCtrlFramesReceived"; } leaf out-pkts-macc-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 802.3, 30.3.8.1 aEXTENSIONMACCtrlFramesTransmitted"; } } } } }