RFC 3635

Definitions of Managed Objects for the Ethernet-like Interface Types

๐Ÿ“… published October 2003, from ietf

RFC 3635 ๐ŸŽ€

  • Network Working Group ๐Ÿ’œ
  • Request for Comments: 3635
  • Title: Definitions of Managed Objects for the Ethernet-like Interface Types
  • Author: J. Flick, Hewlett-Packard Company
  • Date: September 2003
  • Category: Standards Track
  • Obsoletes: 2665 (RFC 2665)
  • Updates: the specification in RFC 2665 (see the Abstract)

Status of This Memo ๐ŸŒธ

Okay so this is an Internet standards track protocol for the whole Internet community, and it's literally asking for discussion and suggestions for improvements ๐Ÿซถ. If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). And distribution of this memo is unlimited ๐Ÿ’….

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract โœจ

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. It's all about objects for managing Ethernet-like interfaces ๐Ÿงš. This memo obsoletes RFC 2665. It also updates that specification by including management information useful for managing 10 Gigabit per second (Gb/s) Ethernet interfaces ๐Ÿ”ฅ.

Table of Contents ๐Ÿ“œ

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
2.  The Internet-Standard Management Framework . . . . . . . . . .  3
3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
    3.1.  Relation to MIB-2. . . . . . . . . . . . . . . . . . . .  4
    3.2.  Relation to the Interfaces MIB . . . . . . . . . . . . .  4
          3.2.1.  Layering Model . . . . . . . . . . . . . . . . .  4
          3.2.2.  Virtual Circuits . . . . . . . . . . . . . . . .  4
          3.2.3.  ifRcvAddressTable. . . . . . . . . . . . . . . .  5
          3.2.4.  ifType . . . . . . . . . . . . . . . . . . . . .  5
          3.2.5.  ifXxxOctets. . . . . . . . . . . . . . . . . . .  5
          3.2.6.  ifXxxXcastPkts . . . . . . . . . . . . . . . . .  6
          3.2.7.  ifMtu. . . . . . . . . . . . . . . . . . . . . .  8
          3.2.8.  ifSpeed and ifHighSpeed. . . . . . . . . . . . .  8
          3.2.9.  ifPhysAddress. . . . . . . . . . . . . . . . . .  9
          3.2.10.  Specific Interface MIB Objects. . . . . . . . . 10
    3.3.  Relation to the 802.3 MAU MIB. . . . . . . . . . . . . . 13
    3.4.  dot3StatsEtherChipSet. . . . . . . . . . . . . . . . . . 13
    3.5.  Mapping of IEEE 802.3 Managed Objects. . . . . . . . . . 14
4.  Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.  Intellectual Property Statement. . . . . . . . . . . . . . . . 55
6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 56
7.  Normative References . . . . . . . . . . . . . . . . . . . . . 57
8.  Informative References . . . . . . . . . . . . . . . . . . . . 58
9.  Security Considerations. . . . . . . . . . . . . . . . . . . . 59
10. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 60
A.  Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 61
    A.1.  Changes since RFC 2665 . . . . . . . . . . . . . . . . . 61
    A.2.  Changes between RFC 2358 and RFC 2665  . . . . . . . . . 62
    A.3.  Changes between RFC 1650 and RFC 2358. . . . . . . . . . 62
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 63
Full Copyright Statement  . . . . . . . . . . . . . . . . . . . . .64

1. Introduction โœจ

Same energy as the abstract, bestie ๐Ÿ’–. This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community, and it's specifically about objects for managing Ethernet-like interfaces ๐ŸŽ€.

This memo also includes a MIB module. This MIB module updates the list of managed objects from the earlier version of this MIB module, RFC 2665 [RFC2665] ๐ŸŒˆ.

Ethernet technology, as defined by the 802.3 Working Group of the IEEE, keeps evolving. We're getting scalable speed increases, new cabling and interface types, and new features ๐Ÿš€. That evolution may mean the managed objects need to change to reflect the new functionality. This document, like other documents from this working group, captures one stage in the evolution of Ethernet technology ๐Ÿฆ‹. Down the line, this document might get revised, or new documents might be issued by the Ethernet Interfaces and Hub MIB Working Group, so the specs keep up with Ethernet ๐Ÿ’….

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐Ÿ“œ.

2. The Internet-Standard Management Framework ๐Ÿงš

If you want a detailed overview of the documents describing the current Internet-Standard Management Framework, check section 7 of RFC 3410 [RFC3410] ๐ŸŒธ.

Managed objects are accessed via a virtual information store called the Management Information Base, or MIB ๐Ÿซถ. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant with the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] ๐Ÿ”ฅ.

3. Overview ๐ŸŽ€

Instances of these object types represent attributes of an interface to an ethernet-like communications medium ๐Ÿ’œ. Right now, ethernet-like media are identified by the value ethernetCsmacd(6) of the ifType object in the Interfaces MIB [RFC2863]. Some older implementations may return the values iso88023Csmacd(7) or starLan(11) for ifType for ethernet-like media ๐Ÿ™ˆ.

The definitions here are based on Section 30, "10 Mb/s, 100 Mb/s 1000 Mb/s and 10 Gb/s Management", and Annex 30A, "GDMO Specification for 802.3 managed object classes" of IEEE Std. 802.3, 2002 Edition [IEEE802.3]. They're amended by IEEE Std. 802.3ae-2002 [IEEE802.3ae], as originally interpreted by Frank Kastenholz, then of Interlan in [KASTEN] โœจ. Implementors of these MIB objects should note that IEEE Std. 802.3 [IEEE802.3] explicitly describes (in the form of Pascal pseudocode) when, where, and how various MAC attributes are measured ๐Ÿง . The IEEE document also describes the effects of MAC actions that may be invoked by manipulating instances of the MIB objects defined here ๐Ÿ‘‘.

To the extent that some attributes defined in [IEEE802.3] are already represented by previously defined objects in MIB-2 [RFC1213] or in the Interfaces MIB [RFC2863], those attributes are not redundantly represented by objects defined in this memo ๐Ÿ’…. Attributes represented by objects defined in other memos include the number of octets transmitted or received on a particular interface, the number of frames transmitted or received on a particular interface, the promiscuous status of an interface, the MAC address of an interface, and multicast information associated with an interface ๐Ÿ“.

3.1. Relation to MIB-2 ๐ŸŒท

This section applies only when this MIB is used in conjunction with the "old" [RFC1213] interface group ๐Ÿ™ˆ.

The relationship between an ethernet-like interface and an interface in the context of MIB-2 is one-to-one ๐Ÿ’–. So the value of an ifIndex object instance can be used directly to identify corresponding instances of the objects defined here ๐Ÿซถ.

For agents that implement the (now deprecated) ifSpecific object, an instance of that object associated with an ethernet-like interface has the OBJECT IDENTIFIER value:

      dot3    OBJECT IDENTIFIER ::= { transmission 7 }

3.2. Relation to the Interfaces MIB ๐Ÿฆ‹

The Interface MIB [RFC2863] requires that any MIB which is an adjunct of the Interface MIB clarify specific areas within the Interface MIB ๐Ÿ“œ. Those areas were intentionally left vague in the Interface MIB, so it wouldn't over-constrain the MIB and rule out managing certain media types ๐ŸŒˆ.

Section 4 of [RFC2863] lists several areas a media-specific MIB must clarify. Each one gets its own subsection below ๐Ÿ’…. If you want the general intent behind these areas, go read [RFC2863] ๐Ÿงš.

3.2.1. Layering Model ๐Ÿ“

Ordinarily, there are no sublayers for an ethernet-like interface. However, there may be implementation-specific requirements that call for sublayers โœจ. One example is 802.3 link aggregation. In that case, Annex 30C of [IEEE802.3] describes the layering model and the use of the ifStackTable for representing aggregated links ๐Ÿ”ฅ. Another example is the 802.3 WAN Interface Sublayer. In this case, The 802.3 WIS MIB [RFC3637] describes the layering model and the use of the ifStackTable for representing the WAN sublayer ๐ŸŽ€.

3.2.2. Virtual Circuits ๐Ÿซถ

This medium does not support virtual circuits, so this area is not applicable to this MIB ๐Ÿ™….

3.2.3. ifRcvAddressTable ๐Ÿ’œ

This table contains all IEEE 802.3 addresses, unicast, multicast, and broadcast, for which this interface will receive packets and forward them up to a higher layer entity for local consumption ๐Ÿš€. The format of the address, contained in ifRcvAddressAddress, is the same as for ifPhysAddress.

If the interface is part of a MAC bridge, this table does not include unicast addresses that are accepted for possible forwarding out some other port. This table is explicitly not intended to provide a bridge address filtering mechanism ๐Ÿ™ˆ.

3.2.4. ifType ๐Ÿ‘‘

This MIB applies to interfaces that have the ifType value ethernetCsmacd(6). It is REQUIRED that all ethernet-like interfaces use an ifType of ethernetCsmacd(6), regardless of the speed the interface is running at or the link-layer encapsulation in use ๐Ÿ’–. The ifType values iso88023Csmacd(7) and starLan(11) are deprecated, but some older implementations may still return them ๐ŸŒธ. Management applications should be prepared to receive these deprecated ifType values from older implementations ๐Ÿซถ.

There are three other interface types for Ethernet defined in the IANAifType-MIB: fastEther(62), fastEtherFX(69), and gigabitEthernet(117) ๐Ÿ”ฅ. Individual vendors registered these interface types, not any IETF working group ๐Ÿง . A requirement for compliance with this document is that all ethernet-like interfaces MUST return ethernetCsmacd(6) for ifType, and MUST NOT return fastEther(62), fastEtherFX(69), or gigabitEthernet(117) ๐Ÿ’…. However, there are fielded implementations that do return these obsolete ifType values, so management applications SHOULD be prepared to receive them from older implementations ๐Ÿฆ‹.

Info on the particular flavor of Ethernet an interface is running is available from ifSpeed in the Interfaces MIB, and from ifMauType in the 802.3 MAU MIB [RFC3636] ๐ŸŒˆ. Note that implementation of the 802.3 MAU MIB [RFC3636] is REQUIRED for all ethernet-like interfaces โญ.

3.2.5. ifXxxOctets โœจ

okay so the octet counters (ifInOctets, ifOutOctets, ifHCInOctets and ifHCOutOctets) are giving main character energy ๐Ÿ’… They MUST include all octets in valid frames sent or received on the interface, including the MAC header and FCS, but NOT the preamble, start of frame delimiter, or extension octets. This lines up with frameSize/8 in section 4.2.7.1 of [IEEE802.3] ๐Ÿค“ (frameSize is measured in bits, not octets, and it's 2 x addressSize + lengthOrTypeSize + dataSize + crcSize).

They don't count octets from collided or failed transmit attempts, because the MAC layer driver usually can't even see those octets ๐Ÿ™ˆ They also skip octets in received invalid frames, since that info usually never gets passed up to the MAC layer. And non-promiscuous MAC implementations can't reliably tell if an invalid frame was actually meant for them, so yeah, they're left out too ๐Ÿ’€

Tbh these counters DO include octets in valid MAC control frames sent or received on the interface ๐ŸŽ€ They also include octets in otherwise valid received MAC frames that the MAC layer throws away for some reason (not enough buffer space, unknown protocol, etc.).

Now the IF-MIB octet counters don't exactly match the IEEE 802.3 octet counters, and this is where it gets a little messy ๐Ÿซ  aOctetsTransmittedOK and aOctetsReceivedOK only count octets in the clientData and Pad fields. ifInOctets and ifOutOctets count the entire MAC frame, MAC header and FCS included. BUT you can derive the IF-MIB counters from the IEEE 802.3 counters like this:

ifInOctets = aOctetsReceivedOK + (18 * aFramesReceivedOK)
ifOutOctets = aOctetsTransmittedOK + (18 * aFramesTransmittedOK)

Another thing to keep in mind ๐Ÿงš In IEEE 802.3, the frame counters and octet counters always go up together. aOctetsTransmittedOK counts the octets in frames that were counted by aFramesTransmittedOK, and aOctetsReceivedOK counts the octets in frames that were counted by aFramesReceivedOK. The IF-MIB counters do NOT work like that. The IF-MIB octet counters count the octets sent to or received from the layer below this interface, while the packet counters count the packets sent to or received from the layer above. So received MAC Control frames, ifInDiscards, and ifInUnknownProtos are counted by ifInOctets but not ifInXcastPkts. Transmitted MAC Control frames are counted by ifOutOctets but not ifOutXcastPkts. ifOutDiscards and ifOutErrors are counted by ifOutXcastPkts but not ifOutOctets. Iconic, I know ๐Ÿ‘‘

3.2.6. ifXxxXcastPkts ๐Ÿฆ‹

The packet counters in the IF-MIB don't exactly match the frame counters in IEEE 802.3 either ๐Ÿ˜ญ aFramesTransmittedOK counts the frames successfully transmitted on the interface. But ifOutUcastPkts, ifOutMulticastPkts and ifOutBroadcastPkts count the transmit requests made from a higher layer, whether or not the transmit attempt actually worked. So packets counted by ifOutErrors or ifOutDiscards ALSO show up in ifOutXcastPkts, but NOT in aFramesTransmittedOK.

Also, since MAC Control frames are generated by a sublayer inside the interface layer (not by a higher layer), they are NOT counted by ifOutXcastPkts, but they ARE counted by aFramesTransmittedOK. Roughly:

aFramesTransmittedOK = ifOutUcastPkts + ifOutMulticastPkts +
                       ifOutBroadcastPkts + dot3OutPauseFrames -
                       (ifOutErrors + ifOutDiscards)

Same vibe on the receiving side ๐ŸŒธ aFramesReceivedOK counts the frames received successfully by the interface, whether or not they get passed up to a higher layer. ifInUcastPkts, ifInMulticastPkts and ifInBroadcastPkts only count packets that were passed up to a higher layer. That means packets counted by ifInDiscards or ifInUnknownProtos ALSO count toward aFramesReceivedOK, but NOT toward ifInXcastPkts. And since MAC Control frames are consumed by a sublayer inside the interface layer and never passed up, they are not counted by ifInXcastPkts, but they are counted by aFramesReceivedOK. Roughly:

aFramesReceivedOK = ifInUcastPkts + ifInMulticastPkts +
                    ifInBroadcastPkts + dot3InPauseFrames +
                    ifInDiscards + ifInUnknownProtos

This spec decides to treat MAC control frames as originated and consumed inside the interface, so the IF-MIB packet counters don't count them ๐Ÿ™…โ€โ™€๏ธ MAC control frames are usually sent as multicast packets, and in lots of networks they can totally outnumber the multicast frames carrying actual data. If MAC control frames were included in ifInMulticastPkts and ifOutMulticastPkts, the real data-carrying multicast count would get drowned out and those counters would be way less useful. Nobody wants that, periodt โœจ

If you want to really get how the IF-MIB packet and octet counters map onto an Ethernet interface, it helps to look at a Case Diagram [CASE] for the IF-MIB counters. This one has been tweaked to show the right interpretation for the Ethernet interface layer ๐Ÿ—บ๏ธ

                               layer above
   --------------------------------------------------------------------
       ifInUcastPkts+         ^           |     ifOutUcastPkts+
       ifInBroadcastPkts+ ----|----   ----|---- ifOutBroadcastPkts+
       ifInMulticastPkts      |           |     ifOutMulticastPkts
                              |           |
        dot3InPauseFrames <---|           |<--- dot3OutPauseFrames
                              |           |
             ifInDiscards <---|           |
                              |           |
        ifInUnknownProtos <---|           |---> ifOutDiscards
                              |           |
               ifInOctets ----|----   ----|---- ifOutOctets
                              |           |
               ifInErrors <---|           |---> ifOutErrors
                              |           V
   --------------------------------------------------------------------
                               layer below

3.2.7. ifMtu ๐Ÿ“

The defined standard MTU for ethernet-like interfaces is 1500 octets. Lowkey though, a lot of implementations today support bigger packet sizes than the IEEE 802.3 standard ๐Ÿ“ฆ The value of this object MUST reflect the actual MTU in use on the interface, whether it matches the standard MTU or not. No cheating allowed ๐Ÿ™…โ€โ™€๏ธ

This value should reflect the value seen by the MAC client interface. When a higher layer protocol, like IP, runs over Ethernet framing, this is the MTU that higher layer protocol will see. But most ethernet-like interfaces today run multiple protocols that use a mix of different framing types ๐ŸŒˆ For example, an IEEE 802.2 LLC type 1 client protocol will see an MTU of 1497 octets on an interface using the IEEE standard maximum packet size, and a protocol running over SNAP will see an MTU of 1492 octets on that same interface. Still, since the specification says to use the MTU as seen at the MAC client interface, the value of ifMtu would be reported as 1500 octets in these cases ๐Ÿ’–

3.2.8. ifSpeed and ifHighSpeed ๐ŸŽ๏ธ

For ethernet-like interfaces running at 1000 Megabits per second (Mb/s) or less, ifSpeed represents the current operational speed of the interface in bits per second. For current interface types, this will be equal to 1,000,000 (1 million), 10,000,000 (10 million), 100,000,000 (100 million), or 1,000,000,000 (1 billion). ifHighSpeed represents the current operational speed in millions of bits per second. For current ethernet-like interfaces, this will be equal to 1, 10, 100, or 1,000. If the interface implements auto-negotiation, auto-negotiation is enabled for this interface, and the interface hasn't yet negotiated to an operational speed, these objects SHOULD reflect the maximum speed supported by the interface ๐Ÿค

For ethernet-like interfaces running at greater than 1000 Mb/s, ifHighSpeed represents the current operational speed of the interface in millions of bits per second. Note that for WAN implementations, this will be the payload data rate over the WAN interface sublayer ๐Ÿ’ซ For current implementations, this will be equal to 10,000 for LAN implementations of 10 Gb/s, and 9,294 for WAN implementations of the 10 Gb/s MAC over an OC-192 PHY. For these speeds, ifSpeed should report a maximum unsigned 32-bit value of 4,294,967,295 as specified in [RFC2863].

Note that these object MUST NOT indicate a doubled value when operating in full-duplex mode ๐Ÿ™…โ€โ™€๏ธ It MUST indicate the correct line speed regardless of the current duplex mode. The duplex mode of the interface may be determined by examining either the dot3StatsDuplexStatus object in this MIB module, or the ifMauType object in the 802.3 MAU MIB [RFC3636].

3.2.9. ifPhysAddress ๐Ÿ”‘

This object contains the IEEE 802.3 address that gets placed in the source-address field of any Ethernet, Starlan, or IEEE 802.3 frames that originate at this interface. Usually this is kept in ROM on the interface hardware. Some systems may set this address via software ๐Ÿ› ๏ธ

In a system where there are several such addresses, the designer has a tougher choice ๐Ÿค” The address chosen should be the one most likely to be of use to network management (e.g. the address placed in ARP responses for systems which are primarily IP systems).

If the designer truly can not chose, use of the factory-provided ROM address is suggested.

If the address can not be determined, an octet string of zero length should be returned.

The address is stored in binary in this object. It's stored in "canonical" bit order, which means the Group Bit is positioned as the low-order bit of the first octet. So the first byte of a multicast address would have the bit 0x01 set ๐ŸŽ€

3.2.10. Specific Interface MIB Objects ๐ŸŽ€

okay bestie, this part is basically a cheat sheet ๐Ÿ“‹ for how each Interface group object gets handled on ethernet-like media. Here's the whole table:

     Object                     Guidelines

     ifIndex                    Each ethernet-like interface is
                                represented by an ifEntry.  The
                                dot3StatsTable in this MIB module is
                                indexed by dot3StatsIndex. The interface
                                identified by a particular value of
                                dot3StatsIndex is the same interface as
                                identified by the same value of ifIndex.

     ifDescr                    Refer to [RFC2863].

     ifType                     Refer to section 3.2.4.

     ifMtu                      Refer to section 3.2.7.

     ifSpeed                    Refer to section 3.2.8.

     ifPhysAddress              Refer to section 3.2.9.

     ifAdminStatus              Write access is not required.  Support
                                for 'testing' is not required.

     ifOperStatus               The operational state of the interface.
                                Support for 'testing' is not required.
                                The value 'dormant' has no meaning for
                                an ethernet-like interface.

     ifLastChange               Refer to [RFC2863].

     ifInOctets                 The number of octets in valid MAC frames
                                received on this interface, including
                                the MAC header and FCS.  This does
                                include the number of octets in valid
                                MAC Control frames received on this
                                interface.  See section 3.2.5.

     ifInUcastPkts              Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are consumed by the
                                interface layer and are not passed to
                                any higher layer protocol.  See
                                section 3.2.6.

     ifInDiscards               Refer to [RFC2863].

     ifInErrors                 The sum for this interface of
                                dot3StatsAlignmentErrors,
                                dot3StatsFCSErrors,
                                dot3StatsFrameTooLongs,
                                and dot3StatsInternalMacReceiveErrors.

     ifInUnknownProtos          Refer to [RFC2863].

     ifOutOctets                The number of octets transmitted in
                                valid MAC frames on this interface,
                                including the MAC header and FCS.  This
                                does include the number of octets in
                                valid MAC Control frames transmitted on
                                this interface.  See section 3.2.5.

     ifOutUcastPkts             Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are generated by the
                                interface layer, and are not passed from
                                any higher layer protocol.  See section
                                3.2.6.

     ifOutDiscards              Refer to [RFC2863].

     ifOutErrors                The sum for this interface of:
                                dot3StatsSQETestErrors,
                                dot3StatsLateCollisions,
                                dot3StatsExcessiveCollisions,
                                dot3StatsInternalMacTransmitErrors and
                                dot3StatsCarrierSenseErrors.

     ifName                     Locally-significant textual name for the
                                interface (e.g. lan0).

     ifInMulticastPkts          Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are consumed by the
                                interface layer and are not passed to
                                any higher layer protocol.  See section
                                3.2.6.

     ifInBroadcastPkts          Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are consumed by the
                                interface layer, and are not passed to
                                any higher layer protocol.  See section
                                3.2.6.

     ifOutMulticastPkts         Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are generated by the
                                interface layer, and are not passed from
                                any higher layer protocol.  See section
                                3.2.6.

     ifOutBroadcastPkts         Refer to [RFC2863].  Note that this does
                                not include MAC Control frames, since
                                MAC Control frames are generated by the
                                interface layer, and are not passed from
                                any higher layer protocol.  See section
                                3.2.6.

     ifHCInOctets               64-bit versions of counters.  Required
     ifHCOutOctets              for ethernet-like interfaces that are
                                capable of operating at 20 Mb/s or
                                faster, even if the interface is
                                currently operating at less than
                                20 Mb/s.

     ifHCInUcastPkts            64-bit versions of packet counters.
     ifHCInMulticastPkts        Required for ethernet-like interfaces
     ifHCInBroadcastPkts        that are capable of operating at
     ifHCOutUcastPkts           640 Mb/s or faster, even if the
     ifHCOutMulticastPkts       interface is currently operating at
     ifHCOutBroadcastPkts       less than 640 Mb/s.

     ifLinkUpDownTrapEnable     Refer to [RFC2863].  Default is
                                'enabled'

     ifHighSpeed                Refer to section 3.2.8.

     ifPromiscuousMode          Refer to [RFC2863].

     ifConnectorPresent         This will normally be 'true'. It will
                                be 'false' in the case where this
                                interface uses the WAN Interface
                                Sublayer.  See [RFC3637] for details.

     ifAlias                    Refer to [RFC2863].

     ifCounterDiscontinuityTime Refer to [RFC2863].  Note that a
                                discontinuity in the Interface MIB
                                counters may also indicate a
                                discontinuity in some or all of the
                                counters in this MIB that are associated
                                with that interface.

     ifStackHigherLayer         Refer to section 3.2.1.
     ifStackLowerLayer
     ifStackStatus

     ifRcvAddressAddress        Refer to section 3.2.3.
     ifRcvAddressStatus
     ifRcvAddressType

Basically, most of these just say "go look at [RFC2863]" ๐Ÿ™„, and the ethernet-specific stuff is in the counters. ifInErrors and ifOutErrors are sums of specific dot3Stats counters, and the 64-bit HC counters are needed on faster interfaces (20 Mb/s and up for the octet counters, 640 Mb/s and up for the packet counters) ๐Ÿš€ even if the link is currently running slower.

3.3. Relation to the 802.3 MAU MIB ๐Ÿ”Œ

Support for the mauModIfCompl3 compliance statement of the MAU-MIB [RFC3636] is REQUIRED for Ethernet-like interfaces. ๐Ÿซถ This MIB is what lets apps figure out which MAU type the interface is currently using, and control autonegotiation and duplex mode. If you implement this MIB module without the MAU-MIB, apps have no standard way to tell what media type is in use or to control the duplex mode, and that's just sad ๐Ÿ˜ญ.

3.4. dot3StatsEtherChipSet ๐Ÿงš

This document defines an object called dot3StatsEtherChipSet, which identifies the MAC hardware used to communicate on an interface. ๐Ÿ”ง Earlier versions of this document had a bunch of OID assignments for existing Ethernet chipsets, but keeping that list here turned into a hassle, so those assignments moved to a separate document [RFC2666].

dot3StatsEtherChipSet is now deprecated. ๐Ÿ’€ Implementation feedback says it's way more useful in theory than in practice. It doesn't help much with debugging field problems, and even when it does, it only names the MAC chip, not the PHY, PMD, or driver. Running a central registry of chipset OIDs isn't worth it for something this questionable.

Implementations that still support this object for backwards compatibility may keep using the values defined in [RFC2666]. For chipsets not listed in [RFC2666], implementors that want to support this object and return a valid OBJECT IDENTIFIER value may assign OBJECT IDENTIFIERS within the part of the registration tree delegated to individual enterprises. ๐ŸŒธ

3.5. Mapping of IEEE 802.3 Managed Objects ๐Ÿ—บ๏ธ

Here's how the IEEE 802.3 managed objects line up with the SNMP objects. Think of it as a translation chart ๐Ÿ’…:

   IEEE 802.3 Managed Object         Corresponding SNMP Object

oMacEntity
 .aMACID                          dot3StatsIndex or
                                  IF-MIB - ifIndex
 .aFramesTransmittedOK            IF-MIB - ifOutUCastPkts +
                                           ifOutMulticastPkts +
                                           ifOutBroadcastPkts*
 .aSingleCollisionFrames          dot3StatsSingleCollisionFrames
 .aMultipleCollisionFrames        dot3StatsMultipleCollisionFrames
 .aFramesReceivedOK               IF-MIB - ifInUcastPkts +
                                           ifInMulticastPkts +
                                           ifInBroadcastPkts*
 .aFrameCheckSequenceErrors       dot3StatsFCSErrors
 .aAlignmentErrors                dot3StatsAlignmentErrors
 .aOctetsTransmittedOK            IF-MIB - ifOutOctets*
 .aFramesWithDeferredXmissions    dot3StatsDeferredTransmissions
 .aLateCollisions                 dot3StatsLateCollisions
 .aFramesAbortedDueToXSColls      dot3StatsExcessiveCollisions
 .aFramesLostDueToIntMACXmitError dot3StatsInternalMacTransmitErrors
 .aCarrierSenseErrors             dot3StatsCarrierSenseErrors
 .aOctetsReceivedOK               IF-MIB - ifInOctets*
 .aFramesLostDueToIntMACRcvError  dot3StatsInternalMacReceiveErrors
 .aPromiscuousStatus              IF-MIB - ifPromiscuousMode
 .aReadMulticastAddressList       IF-MIB - ifRcvAddressTable
 .aMulticastFramesXmittedOK       IF-MIB - ifOutMulticastPkts*
 .aBroadcastFramesXmittedOK       IF-MIB - ifOutBroadcastPkts*
 .aMulticastFramesReceivedOK      IF-MIB - ifInMulticastPkts*
 .aBroadcastFramesReceivedOK      IF-MIB - ifInBroadcastPkts*
 .aFrameTooLongErrors             dot3StatsFrameTooLongs
 .aReadWriteMACAddress            IF-MIB - ifPhysAddress
 .aCollisionFrames                dot3CollFrequencies
 .aDuplexStatus                   dot3StatsDuplexStatus
 .aRateControlAbility             dot3StatsRateControlAbility
 .aRateControlStatus              dot3StatsRateControlStatus
 .acAddGroupAddress               IF-MIB - ifRcvAddressTable
 .acDeleteGroupAddress            IF-MIB - ifRcvAddressTable
 .acExecuteSelfTest               dot3TestLoopBack
oPHYEntity
 .aPHYID                          dot3StatsIndex or
                                  IF-MIB - ifIndex
 .aSQETestErrors                  dot3StatsSQETestErrors
 .aSymbolErrorDuringCarrier       dot3StatsSymbolErrors

oMACControlEntity
 .aMACControlID                   dot3StatsIndex or
                                  IF-MIB - ifIndex
 .aMACControlFunctionsSupported   dot3ControlFunctionsSupported and
                                  dot3ControlFunctionsEnabled
 .aUnsupportedOpcodesReceived     dot3ControlInUnknownOpcodes

oPAUSEEntity
 .aPAUSEMACCtrlFramesTransmitted  dot3OutPauseFrames
 .aPAUSEMACCtrlFramesReceived     dot3InPauseFrames
  • Heads up, bestie: the octet counters in IF-MIB don't exactly match the IEEE 802.3 definition of the octet counters. Check out section 3.2.5 for the full tea. ๐Ÿซ–โœจ
  • Also, the packet counters in IF-MIB don't line up perfectly with the IEEE 802.3 frame counters either. Section 3.2.6 has the details, so go get them ๐Ÿ’…๐ŸŽ€

The following IEEE 802.3 managed objects got removed from this MIB module because of implementation feedback. Honestly, the devs spoke and we listened ๐Ÿ™ˆ๐Ÿ’œ

oMacEntity
  .aFramesWithExcessiveDeferral
  .aInRangeLengthErrors
  .aOutOfRangeLengthField
  .aMACEnableStatus
  .aTransmitEnableStatus
  .aMulticastReceiveStatus
  .acInitializeMAC

Please see [RFC1369] for the full detailed reasoning behind why these objects got the boot. It's a whole story ๐Ÿฆ‹

Then there are the IEEE 802.3 managed objects that didn't make it into this MIB at all, and each one has its own reason. Let's look at the receipts ๐Ÿงพ๐ŸŒธ

IEEE 802.3 Managed Object         Disposition

oMACEntity
 .aMACCapabilities                Can be derived from
                                  MAU-MIB - ifMauTypeListBits

  .aStretchRatio                  Implementation constant.

oPHYEntity
 .aPhyType                        Can be derived from
                                  MAU-MIB - ifMauType

 .aPhyTypeList                    Can be derived from
                                  MAU-MIB - ifMauTypeListBits

 .aMIIDetect                      Not considered useful.

 .aPhyAdminState                  Can already obtain interface
                                  state from IF-MIB - ifAdminStatus
                                  and MAU state from MAU-MIB -
                                  ifMauStatus.  Providing an
                                  additional state for the PHY
                                  was not considered useful.

 .acPhyAdminControl               Can already control interface
                                  state from IF-MIB - ifAdminStatus
                                  and MAU state from MAU-MIB -
                                  ifMauStatus.  Providing separate
                                  admin control of the PHY was not
                                  considered useful.

oMACControlEntity
 .aMACControlFramesTransmitted    Can be determined by summing the
                                  OutFrames counters for the
                                  individual control functions

 .aMACControlFramesReceived       Can be determined by summing the
                                  InFrames counters for the
                                  individual control functions

oPAUSEEntity
 .aPAUSELinkDelayAllowance        Not considered useful.

4. Definitions โœจ

Okay, this is the actual MIB module, so it's time to get serious (but still cute) ๐ŸŽ€ Every line below is copied exactly, because implementers rely on every single character.

EtherLike-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
        Integer32, Counter32, Counter64, mib-2, transmission
            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
        TruthValue
            FROM SNMPv2-TC
        ifIndex, InterfaceIndex
            FROM IF-MIB;

    etherMIB MODULE-IDENTITY
        LAST-UPDATED "200309190000Z"  -- September 19, 2003
        ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
                     Working Group"
        CONTACT-INFO
            "WG E-mail: hubmib@ietf.org
          To subscribe: hubmib-request@ietf.org

                 Chair: Dan Romascanu
                Postal: Avaya Inc.
                        Atidum Technology Park, Bldg. 3
                        Tel Aviv 61131
                        Israel
                   Tel: +972 3 645 8414
                E-mail: dromasca@avaya.com

               Editor: John Flick
               Postal: Hewlett-Packard Company
                       8000 Foothills Blvd. M/S 5557
                       Roseville, CA 95747-5557
                       USA
                  Tel: +1 916 785 4018
                  Fax: +1 916 785 1199
               E-mail: johnf@rose.hp.com"

        DESCRIPTION "The MIB module to describe generic objects for
                    ethernet-like network interfaces.

                    The following reference is used throughout this
                    MIB module:

                    [IEEE 802.3 Std] refers to:
                       IEEE Std 802.3, 2002 Edition: 'IEEE Standard
                       for Information technology -
                       Telecommunications and information exchange
                       between systems - Local and metropolitan
                       area networks - Specific requirements -
                       Part 3: Carrier sense multiple access with
                       collision detection (CSMA/CD) access method
                       and physical layer specifications', as
                       amended by IEEE Std 802.3ae-2002:
                       'Amendment: Media Access Control (MAC)
                       Parameters, Physical Layer, and Management
                       Parameters for 10 Gb/s Operation', August,
                       2002.

                    Of particular interest is Clause 30, '10 Mb/s,
                    100 Mb/s, 1000 Mb/s, and 10 Gb/s Management'.

                    Copyright (C) The Internet Society (2003).  This
                    version of this MIB module is part of RFC 3635;
                    see the RFC itself for full legal notices."

        REVISION    "200309190000Z"  -- September 19, 2003
        DESCRIPTION "Updated to include support for 10 Gb/sec
                     interfaces.  This resulted in the following
                     revisions:

                     - Updated dot3StatsAlignmentErrors and
                       dot3StatsSymbolErrors DESCRIPTIONs to
                       reflect behaviour at 10 Gb/s
                     - Added dot3StatsRateControlAbility and
                       dot3RateControlStatus for management
                       of the Rate Control function in 10 Gb/s
                       WAN applications
                     - Added 64-bit versions of all counters
                       that are used on high-speed ethernet
                       interfaces
                     - Added object groups to contain the new
                       objects
                     - Deprecated etherStatsBaseGroup and
                       split into etherStatsBaseGroup2 and
                       etherStatsHalfDuplexGroup, so that
                       interfaces which can only operate at
                       full-duplex do not need to implement
                       half-duplex-only statistics
                     - Deprecated dot3Compliance and replaced
                       it with dot3Compliance2, which includes
                       the compliance information for the new
                       object groups

                     In addition, the dot3Tests and dot3Errors
                     object identities have been deprecated,
                     since there is no longer a standard method
                     for using them.

                     This version published as RFC 3635."

        REVISION    "199908240400Z"  -- August 24, 1999
        DESCRIPTION "Updated to include support for 1000 Mb/sec
                     interfaces and full-duplex interfaces.
                     This version published as RFC 2665."

        REVISION    "199806032150Z"  -- June 3, 1998
        DESCRIPTION "Updated to include support for 100 Mb/sec
                     interfaces.
                     This version published as RFC 2358."

        REVISION    "199402030400Z"  -- February 3, 1994
        DESCRIPTION "Initial version, published as RFC 1650."
        ::= { mib-2 35 }

    etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 }

    dot3    OBJECT IDENTIFIER ::= { transmission 7 }

    -- the Ethernet-like Statistics group

    dot3StatsTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF Dot3StatsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "Statistics for a collection of ethernet-like
                    interfaces attached to a particular system.
                    There will be one row in this table for each
                    ethernet-like interface in the system."
        ::= { dot3 2 }

    dot3StatsEntry OBJECT-TYPE
        SYNTAX     Dot3StatsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "Statistics for a particular interface to an
                    ethernet-like medium."
        INDEX       { dot3StatsIndex }
        ::= { dot3StatsTable 1 }

    Dot3StatsEntry ::=
        SEQUENCE {

            dot3StatsIndex                      InterfaceIndex,
            dot3StatsAlignmentErrors            Counter32,
            dot3StatsFCSErrors                  Counter32,
            dot3StatsSingleCollisionFrames      Counter32,
            dot3StatsMultipleCollisionFrames    Counter32,
            dot3StatsSQETestErrors              Counter32,
            dot3StatsDeferredTransmissions      Counter32,
            dot3StatsLateCollisions             Counter32,
            dot3StatsExcessiveCollisions        Counter32,
            dot3StatsInternalMacTransmitErrors  Counter32,
            dot3StatsCarrierSenseErrors         Counter32,
            dot3StatsFrameTooLongs              Counter32,
            dot3StatsInternalMacReceiveErrors   Counter32,
            dot3StatsEtherChipSet               OBJECT IDENTIFIER,
            dot3StatsSymbolErrors               Counter32,
            dot3StatsDuplexStatus               INTEGER,
            dot3StatsRateControlAbility         TruthValue,
            dot3StatsRateControlStatus          INTEGER
        }

    dot3StatsIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-only  -- read-only since originally an
                               -- SMIv1 index
        STATUS      current
        DESCRIPTION "An index value that uniquely identifies an
                    interface to an ethernet-like medium.  The
                    interface identified by a particular value of
                    this index is the same interface as identified
                    by the same value of ifIndex."
        REFERENCE   "RFC 2863, ifIndex"
        ::= { dot3StatsEntry 1 }

    dot3StatsAlignmentErrors OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A count of frames received on a particular
                    interface that are not an integral number of
                    octets in length and do not pass the FCS check.
                       The count represented by an instance of this
                       object is incremented when the alignmentError
                       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.

                       This counter does not increment for group
                       encoding schemes greater than 4 bits per group.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsAlignmentErrors object for 10 Gb/s
                       or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7,
                       aAlignmentErrors"
           ::= { dot3StatsEntry 2 }

       dot3StatsFCSErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames received on a particular
                       interface that are an integral number of octets
                       in length but do not pass the FCS check.  This
                       count does not include frames received with
                       frame-too-long or frame-too-short error.

                       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.

                       Note:  Coding errors detected by the physical
                       layer for speeds above 10 Mb/s will cause the
                       frame to fail the FCS check.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsFCSErrors object for 10 Gb/s or
                       faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6,
                       aFrameCheckSequenceErrors."
           ::= { dot3StatsEntry 3 }

       dot3StatsSingleCollisionFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           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 the ifOutUcastPkts,
                       ifOutMulticastPkts, or ifOutBroadcastPkts,
                       and is not counted by the corresponding
                       instance of the dot3StatsMultipleCollisionFrames
                       object.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.3,
                       aSingleCollisionFrames."
           ::= { dot3StatsEntry 4 }

       dot3StatsMultipleCollisionFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames that are involved in more

                       than one 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 the ifOutUcastPkts,
                       ifOutMulticastPkts, or ifOutBroadcastPkts,
                       and is not counted by the corresponding
                       instance of the dot3StatsSingleCollisionFrames
                       object.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.4,
                       aMultipleCollisionFrames."
           ::= { dot3StatsEntry 5 }

       dot3StatsSQETestErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           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, 2000 Edition,
                       section 7.2.4.6.

                       This counter does not increment on interfaces
                       operating at speeds greater than 10 Mb/s, or on
                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 7.2.4.6, also 30.3.2.1.4,
                       aSQETestErrors."
           ::= { dot3StatsEntry 6 }

       dot3StatsDeferredTransmissions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which the first
                       transmission attempt on a particular interface
                       is delayed because the medium is busy.

                       The count represented by an instance of this
                       object does not include frames involved in
                       collisions.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.9,
                       aFramesWithDeferredXmissions."
           ::= { dot3StatsEntry 7 }

       dot3StatsLateCollisions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "The number of times that a collision is
                       detected on a particular 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
                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.10,
                       aLateCollisions."
           ::= { dot3StatsEntry 8 }

       dot3StatsExcessiveCollisions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which transmission on a
                       particular interface fails due to excessive
                       collisions.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.11,
                       aFramesAbortedDueToXSColls."
           ::= { dot3StatsEntry 9 }

       dot3StatsInternalMacTransmitErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which transmission on a
                       particular interface fails due to an internal
                       MAC sublayer transmit error. A frame is only
                       counted by an instance of this object if it is
                       not counted by the corresponding instance of
                       either the dot3StatsLateCollisions object, the
                       dot3StatsExcessiveCollisions object, or the
                       dot3StatsCarrierSenseErrors object.

                       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 interface that are not
                       otherwise counted.

okay the 10 Gb/s rollover thing is giving urgency ๐Ÿ˜ญ๐Ÿ’– a counter that can wrap in under 5 minutes means your poll cycle has to be quick, bestie ๐Ÿซถโœจ

Okay so we're still deep in the dot3Stats table and it is giving stress for the sake of counters ๐Ÿ˜ญ๐ŸŽ€ Here's the next chunk:

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsInternalMacTransmitErrors object for
                       10 Gb/s or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12,
                       aFramesLostDueToIntMACXmitError."
           ::= { dot3StatsEntry 10 }

       dot3StatsCarrierSenseErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "The number of times that the carrier sense
                       condition was lost or never asserted when
                       attempting to transmit a frame on a particular
                       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
                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.13,
                       aCarrierSenseErrors."
           ::= { dot3StatsEntry 11 }

       -- { dot3StatsEntry 12 } is not assigned

       dot3StatsFrameTooLongs OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames received on a particular
                       interface that exceed the maximum permitted
                       frame size.

                       The count represented by an instance of this
                       object is incremented when the frameTooLong
                       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.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 80 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsFrameTooLongs object for 10 Gb/s
                       or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25,
                       aFrameTooLongErrors."
           ::= { dot3StatsEntry 13 }

       -- { dot3StatsEntry 14 } is not assigned

       -- { dot3StatsEntry 15 } is not assigned

       dot3StatsInternalMacReceiveErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which reception on a
                       particular 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 dot3StatsFrameTooLongs object, the
                       dot3StatsAlignmentErrors object, or the
                       dot3StatsFCSErrors object.

                       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 interface that are not
                       otherwise counted.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsInternalMacReceiveErrors object for
                       10 Gb/s or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15,
                       aFramesLostDueToIntMACRcvError."
           ::= { dot3StatsEntry 16 }

       dot3StatsEtherChipSet OBJECT-TYPE
           SYNTAX      OBJECT IDENTIFIER
           MAX-ACCESS  read-only
           STATUS      deprecated
           DESCRIPTION "******** THIS OBJECT IS DEPRECATED ********

                       This object contains an OBJECT IDENTIFIER
                       which identifies the chipset used to
                       realize the interface. Ethernet-like
                       interfaces are typically built out of
                       several different chips. The MIB implementor
                       is presented with a decision of which chip
                       to identify via this object. The implementor
                       should identify the chip which is usually
                       called the Medium Access Control chip.
                       If no such chip is easily identifiable,
                       the implementor should identify the chip
                       which actually gathers the transmit
                       and receive statistics and error
                       indications. This would allow a
                       manager station to correlate the
                       statistics and the chip generating
                       them, giving it the ability to take
                       into account any known anomalies
                       in the chip.

                       This object has been deprecated.  Implementation
                       feedback indicates that it is of limited use for
                       debugging network problems in the field, and
                       the administrative overhead involved in
                       maintaining a registry of chipset OIDs is not
                       justified."

           ::= { dot3StatsEntry 17 }

       dot3StatsSymbolErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "For an interface operating at 100 Mb/s, the
                       number of times there was an invalid data symbol
                       when a valid carrier was present.

                       For an interface operating in half-duplex mode
                       at 1000 Mb/s, the number of times the receiving
                       media is non-idle (a carrier event) for a period
                       of time equal to or greater than slotTime, and
                       during which there was at least one occurrence
                       of an event that causes the PHY to indicate
                       'Data reception error' or 'carrier extend error'
                       on the GMII.

                       For an interface operating in full-duplex mode
                       at 1000 Mb/s, the number of times the receiving
                       media is non-idle (a carrier event) for a period
                       of time equal to or greater than minFrameSize,
                       and during which there was at least one
                       occurrence of an event that causes the PHY to
                       indicate 'Data reception error' on the GMII.

                       For an interface operating at 10 Gb/s, the
                       number of times the receiving media is non-idle
                       (a carrier event) for a period of time equal to
                       or greater than minFrameSize, and during which
                       there was at least one occurrence of an event
                       that causes the PHY to indicate 'Receive Error'
                       on the XGMII.

                       The count represented by an instance of this
                       object is incremented at most once per carrier
                       event, even if multiple symbol errors occur
                       during the carrier event.  This count does
                       not increment if a collision is present.

                       This counter does not increment when the
                       interface is operating at 10 Mb/s.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCStatsSymbolErrors object for 10 Gb/s
                       or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5,
                       aSymbolErrorDuringCarrier."
           ::= { dot3StatsEntry 18 }

       dot3StatsDuplexStatus OBJECT-TYPE
           SYNTAX      INTEGER {
                           unknown(1),
                           halfDuplex(2),
                           fullDuplex(3)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "The current mode of operation of the MAC
                       entity.  'unknown' indicates that the current
                       duplex mode could not be determined.

The 10 Gb/s rollover warnings are giving poll it before it wraps energy ๐Ÿ’€ Some of these counters can roll over in under 5 minutes, and others in under 80 minutes, if they're ticking at full speed. If your management station checks in less often than that, you could lose data, so the spec says to poll the dot3HC versions of those objects for 10 Gb/s or faster interfaces ๐Ÿงš Discontinuities can also show up at re-initialization and whenever ifCounterDiscontinuityTime says so, so keep an eye on that too ๐Ÿ‘‘

Also, dot3StatsCarrierSenseErrors only ticks up once per transmission attempt, even if carrier sense flickers during it, and it doesn't count at all in full-duplex mode ๐Ÿฆ‹ And dot3StatsEtherChipSet is deprecated, bestie ๐Ÿฅบ The people in charge basically said that tracking chipset OIDs was more admin hassle than it was worth ๐Ÿ™ˆ

We're not done with the duplex vibes yet, so the rest of this definition is coming up next ๐ŸŒˆโœจ

                       Management control of the duplex mode is
                       accomplished through the MAU MIB.  When
                       an interface does not support autonegotiation,
                       or when autonegotiation is not enabled, the
                       duplex mode is controlled using
                       ifMauDefaultType.  When autonegotiation is
                       supported and enabled, duplex mode is controlled
                       using ifMauAutoNegAdvertisedBits.  In either
                       case, the currently operating duplex mode is
                       reflected both in this object and in ifMauType.

                       Note that this object provides redundant
                       information with ifMauType.  Normally, redundant
                       objects are discouraged.  However, in this
                       instance, it allows a management application to
                       determine the duplex status of an interface
                       without having to know every possible value of
                       ifMauType.  This was felt to be sufficiently
                       valuable to justify the redundancy."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.32,
                       aDuplexStatus."
           ::= { dot3StatsEntry 19 }

Okay so the duplex story wraps up here ๐Ÿ’– Duplex mode gets managed through the MAU MIB ๐ŸŽ€. If the interface can't autonegotiate, or autonegotiation is switched off, you use ifMauDefaultType ๐Ÿงš. If autonegotiation is supported and on, it's ifMauAutoNegAdvertisedBits doing the job โœจ. Either way, the duplex mode that's actually running shows up in this object and in ifMauType ๐Ÿฆ‹. The redundancy is lowkey intentional, bestie ๐Ÿ’…. It means a management app can check duplex status without having to memorise every single possible ifMauType value ๐Ÿ™ˆ The text literally says it was "felt to be sufficiently valuable to justify the redundancy" and I'm obsessed with that energy ๐Ÿ˜ญ๐Ÿซถ

       dot3StatsRateControlAbility OBJECT-TYPE
           SYNTAX      TruthValue
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "'true' for interfaces operating at speeds above
                       1000 Mb/s that support Rate Control through
                       lowering the average data rate of the MAC
                       sublayer, with frame granularity, and 'false'
                       otherwise."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.33,
                       aRateControlAbility."
           ::= { dot3StatsEntry 20 }

       dot3StatsRateControlStatus OBJECT-TYPE
           SYNTAX      INTEGER {
                           rateControlOff(1),
                           rateControlOn(2),
                           unknown(3)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "The current Rate Control mode of operation of
                       the MAC sublayer of this interface."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.34,
                       aRateControlStatus."
           ::= { dot3StatsEntry 21 }

Next up is Rate Control ๐ŸŒธ dot3StatsRateControlAbility is a TruthValue, and it's 'true' only for interfaces running faster than 1000 Mb/s that can do Rate Control by lowering the average data rate of the MAC sublayer, with frame granularity ๐Ÿ’… Otherwise it's 'false' ๐Ÿ™ˆ Then dot3StatsRateControlStatus tells you the current Rate Control mode, and it can be rateControlOff(1), rateControlOn(2), or unknown(3) ๐Ÿ”ฅ Very clean, very obvious, no notes ๐Ÿ˜Œ

       -- the Ethernet-like Collision Statistics group

       -- Implementation of this group is optional; it is appropriate
       -- for all systems which have the necessary metering

       dot3CollTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3CollEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "A collection of collision histograms for a
                       particular set of interfaces."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.30,
                       aCollisionFrames."
           ::= { dot3 5 }

       dot3CollEntry OBJECT-TYPE
           SYNTAX      Dot3CollEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "A cell in the histogram of per-frame
                       collisions for a particular interface.  An
                       instance of this object represents the
                       frequency of individual MAC frames for which
                       the transmission (successful or otherwise) on a
                       particular interface is accompanied by a
                       particular number of media collisions."
           INDEX       { ifIndex, dot3CollCount }
           ::= { dot3CollTable 1 }

       Dot3CollEntry ::=
           SEQUENCE {
               dot3CollCount        Integer32,
               dot3CollFrequencies  Counter32
           }

       -- { dot3CollEntry 1 } is no longer in use

       dot3CollCount OBJECT-TYPE
           SYNTAX      Integer32 (1..16)
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "The number of per-frame media collisions for
                       which a particular collision histogram cell
                       represents the frequency on a particular
                       interface."
           ::= { dot3CollEntry 2 }

       dot3CollFrequencies OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           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 interface 77 after experiencing
                       exactly 4 collisions would be indicated
                       by incrementing only dot3CollFrequencies.77.4.
                       No other instance of dot3CollFrequencies 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 ifCounterDiscontinuityTime."
           ::= { dot3CollEntry 3 }

Now we're in the collision stats group ๐Ÿ“ Heads up, this whole group is optional, and it's the right call for any system that has the metering for it โœจ The dot3CollTable is a histogram of collisions per frame, and each cell is indexed by ifIndex and dot3CollCount ๐ŸŽ€ dot3CollCount is the number of per-frame media collisions, ranging from 1 to 16 ๐Ÿ“Š dot3CollFrequencies is the counter for frames that went out after hitting exactly that many collisions ๐Ÿ’œ The example is so good: a frame sent on interface 77 after exactly 4 collisions only bumps dot3CollFrequencies.77.4 ๐Ÿงš And it doesn't count at all when the interface is in full-duplex mode ๐Ÿ™…โ€โ™€๏ธ Also, discontinuities can happen at management re-initialisation, or whenever ifCounterDiscontinuityTime says so ๐ŸŒˆ

       dot3ControlTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3ControlEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "A table of descriptive and status information
                       about the MAC Control sublayer on the
                       ethernet-like interfaces attached to a
                       particular system.  There will be one row in
                       this table for each ethernet-like interface in
                       the system which implements the MAC Control
                       sublayer.  If some, but not all, of the
                       ethernet-like interfaces in the system implement
                       the MAC Control sublayer, there will be fewer
                       rows in this table than in the dot3StatsTable."
           ::= { dot3 9 }

       dot3ControlEntry OBJECT-TYPE
           SYNTAX      Dot3ControlEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "An entry in the table, containing information
                       about the MAC Control sublayer on a single
                       ethernet-like interface."
           INDEX       { dot3StatsIndex }
           ::= { dot3ControlTable 1 }

       Dot3ControlEntry ::=
           SEQUENCE {
               dot3ControlFunctionsSupported       BITS,
               dot3ControlInUnknownOpcodes         Counter32,
               dot3HCControlInUnknownOpcodes       Counter64
           }

       dot3ControlFunctionsSupported OBJECT-TYPE
           SYNTAX      BITS {
                           pause(0)   -- 802.3 flow control
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A list of the possible MAC Control functions
                       implemented for this interface."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.2,
                       aMACControlFunctionsSupported."

           ::= { dot3ControlEntry 1 }

       dot3ControlInUnknownOpcodes OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames received on this
                       interface that contain an opcode that is not
                       supported by this device.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCControlInUnknownOpcodes object for 10 Gb/s
                       or faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5,
                       aUnsupportedOpcodesReceived"
           ::= { dot3ControlEntry 2 }

       dot3HCControlInUnknownOpcodes OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames received on this
                       interface that contain an opcode that is not
                       supported by this device.

                       This counter is a 64 bit version of
                       dot3ControlInUnknownOpcodes.  It should be used
                       on interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5,
                       aUnsupportedOpcodesReceived"
           ::= { dot3ControlEntry 3 }

Next, the MAC Control table ๐Ÿงš dot3ControlTable gets one row per ethernet-like interface that implements the MAC Control sublayer, so if only some interfaces do, there are fewer rows than in dot3StatsTable ๐Ÿซถ The index is dot3StatsIndex ๐Ÿ’– Then we get dot3ControlFunctionsSupported, a BITS value with pause(0) for 802.3 flow control ๐ŸŒŠ dot3ControlInUnknownOpcodes counts MAC Control frames with an opcode the device doesn't support ๐Ÿ˜ค This one is giving drama, bestie ๐Ÿ˜ญ For 10 Gb/s interfaces, it can roll over in under 5 minutes at max rate, so the text advises polling dot3HCControlInUnknownOpcodes for 10 Gb/s or faster interfaces ๐Ÿš€ That's the 64-bit version, and it's the one meant for those speeds โœจ

       dot3PauseTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3PauseEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "A table of descriptive and status information
                       about the MAC Control PAUSE function on the
                       ethernet-like interfaces attached to a
                       particular system. There will be one row in
                       this table for each ethernet-like interface in
                       the system which supports the MAC Control PAUSE
                       function (i.e., the 'pause' bit in the
                       corresponding instance of
                       dot3ControlFunctionsSupported is set).  If some,
                       but not all, of the ethernet-like interfaces in
                       the system implement the MAC Control PAUSE
                       function (for example, if some interfaces only
                       support half-duplex), there will be fewer rows
                       in this table than in the dot3StatsTable."
           ::= { dot3 10 }

       dot3PauseEntry OBJECT-TYPE
           SYNTAX      Dot3PauseEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "An entry in the table, containing information
                       about the MAC Control PAUSE function on a single
                       ethernet-like interface."
           INDEX       { dot3StatsIndex }
           ::= { dot3PauseTable 1 }

       Dot3PauseEntry ::=

           SEQUENCE {
               dot3PauseAdminMode                  INTEGER,
               dot3PauseOperMode                   INTEGER,
               dot3InPauseFrames                   Counter32,
               dot3OutPauseFrames                  Counter32,
               dot3HCInPauseFrames                 Counter64,
               dot3HCOutPauseFrames                Counter64
           }

Last stop in this part is the PAUSE table ๐Ÿ’… It only gets a row for interfaces that support the PAUSE function, meaning the pause bit in dot3ControlFunctionsSupported is set ๐ŸŽ€ The example in there is "if some interfaces only support half-duplex", so fewer rows again, same vibe as before ๐Ÿ“ It's indexed by dot3StatsIndex too ๐Ÿฆ‹ The Dot3PauseEntry sequence lists six objects, dot3PauseAdminMode, dot3PauseOperMode, dot3InPauseFrames, dot3OutPauseFrames, dot3HCInPauseFrames, and dot3HCOutPauseFrames, and their definitions are coming up next ๐Ÿ‘‘โœจ

Okay bestie, we're picking up with the PAUSE objects, and these MIB definitions are literally so pretty ๐ŸŽ€โœจ Here's the next chunk, untouched.

       dot3PauseAdminMode OBJECT-TYPE
           SYNTAX      INTEGER {
                           disabled(1),
                           enabledXmit(2),
                           enabledRcv(3),
                           enabledXmitAndRcv(4)
                       }

           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION "This object is used to configure the default
                       administrative PAUSE mode for this interface.

                       This object represents the
                       administratively-configured PAUSE mode for this
                       interface.  If auto-negotiation is not enabled
                       or is not implemented for the active MAU
                       attached to this interface, the value of this
                       object determines the operational PAUSE mode
                       of the interface whenever it is operating in
                       full-duplex mode.  In this case, a set to this
                       object will force the interface into the
                       specified mode.

                       If auto-negotiation is implemented and enabled
                       for the MAU attached to this interface, the
                       PAUSE mode for this interface is determined by
                       auto-negotiation, and the value of this object
                       denotes the mode to which the interface will
                       automatically revert if/when auto-negotiation is
                       later disabled.  Note that when auto-negotiation
                       is running, administrative control of the PAUSE
                       mode may be accomplished using the
                       ifMauAutoNegCapAdvertisedBits object in the
                       MAU-MIB.

                       Note that the value of this object is ignored
                       when the interface is not operating in
                       full-duplex mode.

                       An attempt to set this object to
                       'enabledXmit(2)' or 'enabledRcv(3)' will fail
                       on interfaces that do not support operation
                       at greater than 100 Mb/s."
           ::= { dot3PauseEntry 1 }

dot3PauseAdminMode is the admin knob ๐ŸŽ›๏ธ๐Ÿ’– You set it, and on full-duplex it's the mode the interface gets forced into, unless auto-negotiation is running, in which case the negotiation decides and this value is just the fallback once autoneg is turned off ๐Ÿ™ˆ The enabledXmit(2) and enabledRcv(3) settings are gated to faster-than-100 Mb/s gear, so slower ports just say no ๐Ÿ’€

       dot3PauseOperMode OBJECT-TYPE
           SYNTAX      INTEGER {
                           disabled(1),
                           enabledXmit(2),
                           enabledRcv(3),
                           enabledXmitAndRcv(4)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "This object reflects the PAUSE mode currently

                       in use on this interface, as determined by
                       either (1) the result of the auto-negotiation
                       function or (2) if auto-negotiation is not
                       enabled or is not implemented for the active MAU
                       attached to this interface, by the value of
                       dot3PauseAdminMode.  Interfaces operating at
                       100 Mb/s or less will never return
                       'enabledXmit(2)' or 'enabledRcv(3)'.  Interfaces
                       operating in half-duplex mode will always return
                       'disabled(1)'.  Interfaces on which
                       auto-negotiation is enabled but not yet
                       completed should return the value
                       'disabled(1)'."
           ::= { dot3PauseEntry 2 }

dot3PauseOperMode is the "what's actually happening rn" read-only vibe โœจ It comes from autoneg if that's running, or from the admin value if not. Half-duplex is always disabled(1), and at 100 Mb/s or less you'll never see the xmit or rcv-only values. Autoneg enabled but not finished? Still disabled(1) ๐Ÿซถ

       dot3InPauseFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames received on this
                       interface with an opcode indicating the PAUSE
                       operation.

                       This counter does not increment when the
                       interface is operating in half-duplex mode.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCInPauseFrames object for 10 Gb/s or
                       faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3,
                       aPAUSEMACCtrlFramesReceived."
           ::= { dot3PauseEntry 3 }

dot3InPauseFrames counts the PAUSE MAC Control frames that come in ๐Ÿ“ฅ It doesn't tick in half-duplex, and it's a 32-bit counter, so at 10 Gb/s it can wrap in under 5 minutes ๐Ÿ˜ญ That's faster than a poll cycle can keep up with, so the text tells management stations to grab dot3HCInPauseFrames on 10 Gb/s and up. Real talk, that's the kind of detail that saves your whole dashboard ๐Ÿงš

       dot3OutPauseFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames transmitted on
                       this interface with an opcode indicating the
                       PAUSE operation.

                       This counter does not increment when the
                       interface is operating in half-duplex mode.

                       For interfaces operating at 10 Gb/s, this
                       counter can roll over in less than 5 minutes if
                       it is incrementing at its maximum rate.  Since
                       that amount of time could be less than a
                       management station's poll cycle time, in order
                       to avoid a loss of information, a management
                       station is advised to poll the
                       dot3HCOutPauseFrames object for 10 Gb/s or
                       faster interfaces.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2,
                       aPAUSEMACCtrlFramesTransmitted."
           ::= { dot3PauseEntry 4 }

dot3OutPauseFrames is the transmit-side twin ๐Ÿ“ค Same deal: no counting in half-duplex, same 5-minute rollover warning at 10 Gb/s, and the same advice to use the 64-bit version (dot3HCOutPauseFrames) on those faster links ๐Ÿ’…

       dot3HCInPauseFrames OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames received on this
                       interface with an opcode indicating the PAUSE
                       operation.

                       This counter does not increment when the
                       interface is operating in half-duplex mode.

                       This counter is a 64 bit version of
                       dot3InPauseFrames.  It should be used on
                       interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3,
                       aPAUSEMACCtrlFramesReceived."
           ::= { dot3PauseEntry 5 }

       dot3HCOutPauseFrames OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of MAC Control frames transmitted on
                       this interface with an opcode indicating the
                       PAUSE operation.

                       This counter does not increment when the
                       interface is operating in half-duplex mode.

                       This counter is a 64 bit version of
                       dot3OutPauseFrames.  It should be used on
                       interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2,
                       aPAUSEMACCtrlFramesTransmitted."
           ::= { dot3PauseEntry 6 }

The 64-bit PAUSE pair is literally the upgrade everyone needs ๐Ÿš€ Both are 64-bit versions of the 32-bit counters, both are meant for 10 Gb/s or faster, and both stay still in half-duplex. Discontinuities can still happen on management re-init or whenever ifCounterDiscontinuityTime says so, so keep that in mind ๐Ÿ™ˆ

       dot3HCStatsTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3HCStatsEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "A table containing 64-bit versions of error
                       counters from the dot3StatsTable.  The 32-bit
                       versions of these counters may roll over quite
                       quickly on higher speed ethernet interfaces.
                       The counters that have 64-bit versions in this
                       table are the counters that apply to full-duplex
                       interfaces, since 10 Gb/s and faster
                       ethernet-like interfaces do not support
                       half-duplex, and very few 1000 Mb/s
                       ethernet-like interfaces support half-duplex.

                       Entries in this table are recommended for
                       interfaces capable of operating at 1000 Mb/s or
                       faster, and are required for interfaces capable
                       of operating at 10 Gb/s or faster.  Lower speed
                       ethernet-like interfaces do not need entries in
                       this table, in which case there may be fewer
                       entries in this table than in the
                       dot3StatsTable. However, implementations
                       containing interfaces with a mix of speeds may
                       choose to implement entries in this table for
                       all ethernet-like interfaces."
           ::= { dot3 11 }

       dot3HCStatsEntry OBJECT-TYPE
           SYNTAX      Dot3HCStatsEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "An entry containing 64-bit statistics for a
                       single ethernet-like interface."
           INDEX       { dot3StatsIndex }
           ::= { dot3HCStatsTable 1 }

       Dot3HCStatsEntry ::=
           SEQUENCE {
               dot3HCStatsAlignmentErrors           Counter64,
               dot3HCStatsFCSErrors                 Counter64,
               dot3HCStatsInternalMacTransmitErrors Counter64,
               dot3HCStatsFrameTooLongs             Counter64,
               dot3HCStatsInternalMacReceiveErrors  Counter64,
               dot3HCStatsSymbolErrors              Counter64
           }

       dot3HCStatsAlignmentErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames received on a particular
                       interface that are not an integral number of
                       octets in length and do not pass the FCS check.

                       The count represented by an instance of this
                       object is incremented when the alignmentError
                       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.

                       This counter does not increment for group
                       encoding schemes greater than 4 bits per group.

dot3HCStatsTable is the 64-bit error-counter hub ๐Ÿฆ‹ It holds 64-bit versions of the dot3StatsTable error counters, because the 32-bit ones can roll over fast on quick links. The text says the full-duplex counters are the ones that get 64-bit versions, since 10 Gb/s and up don't do half-duplex and barely any 1000 Mb/s gear does either. Entries are recommended at 1000 Mb/s and up, and required at 10 Gb/s and up ๐ŸŒˆ Slower ports don't need them, though a box with mixed speeds can add them everywhere if it wants ๐Ÿ’œ

Each dot3HCStatsEntry is one interface's worth of 64-bit stats ๐Ÿ‘, indexed by dot3StatsIndex, and the Dot3HCStatsEntry sequence lists the six 64-bit counters: alignment errors, FCS errors, internal MAC transmit errors, frame-too-longs, internal MAC receive errors, and symbol errors ๐Ÿง

Last bit of this chunk: dot3HCStatsAlignmentErrors counts frames that aren't a whole number of octets and also fail the FCS check. It goes up when the MAC service hands the LLC an alignmentError status, and if a frame has several error conditions, it only gets counted under the one the LLC sees ๐Ÿง It also doesn't increment for group encoding schemes bigger than 4 bits per group ๐Ÿ™ˆ

okay bestie, we're picking up mid-description ๐Ÿฆ‹ the 64-bit alignment counter is basically saying "hey, use me on 10 Gb/s or faster" ๐Ÿ’…

                       This counter is a 64 bit version of
                       dot3StatsAlignmentErrors.  It should be used
                       on interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7,
                       aAlignmentErrors"
           ::= { dot3HCStatsEntry 1 }

       dot3HCStatsFCSErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames received on a particular
                       interface that are an integral number of octets
                       in length but do not pass the FCS check.  This
                       count does not include frames received with
                       frame-too-long or frame-too-short error.

                       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.

                       Note:  Coding errors detected by the physical
                       layer for speeds above 10 Mb/s will cause the
                       frame to fail the FCS check.

                       This counter is a 64 bit version of
                       dot3StatsFCSErrors.  It should be used on
                       interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6,
                       aFrameCheckSequenceErrors."
           ::= { dot3HCStatsEntry 2 }

       dot3HCStatsInternalMacTransmitErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which transmission on a
                       particular interface fails due to an internal
                       MAC sublayer transmit error. A frame is only
                       counted by an instance of this object if it is
                       not counted by the corresponding instance of
                       either the dot3StatsLateCollisions object, the
                       dot3StatsExcessiveCollisions object, or the
                       dot3StatsCarrierSenseErrors object.

                       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 interface that are not
                       otherwise counted.

                       This counter is a 64 bit version of
                       dot3StatsInternalMacTransmitErrors.  It should
                       be used on interfaces operating at 10 Gb/s or
                       faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12,
                       aFramesLostDueToIntMACXmitError."
           ::= { dot3HCStatsEntry 3 }

       dot3HCStatsFrameTooLongs OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames received on a particular
                       interface that exceed the maximum permitted
                       frame size.

                       The count represented by an instance of this
                       object is incremented when the frameTooLong
                       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.

                       This counter is a 64 bit version of
                       dot3StatsFrameTooLongs.  It should be used on
                       interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25,
                       aFrameTooLongErrors."
           ::= { dot3HCStatsEntry 4 }

       dot3HCStatsInternalMacReceiveErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "A count of frames for which reception on a
                       particular 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 dot3StatsFrameTooLongs object, the
                       dot3StatsAlignmentErrors object, or the
                       dot3StatsFCSErrors object.

                       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 interface that are not
                       otherwise counted.

                       This counter is a 64 bit version of
                       dot3StatsInternalMacReceiveErrors.  It should be
                       used on interfaces operating at 10 Gb/s or
                       faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15,
                       aFramesLostDueToIntMACRcvError."
           ::= { dot3HCStatsEntry 5 }

       dot3HCStatsSymbolErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "For an interface operating at 100 Mb/s, the
                       number of times there was an invalid data symbol
                       when a valid carrier was present.

                       For an interface operating in half-duplex mode
                       at 1000 Mb/s, the number of times the receiving
                       media is non-idle (a carrier event) for a period
                       of time equal to or greater than slotTime, and
                       during which there was at least one occurrence
                       of an event that causes the PHY to indicate
                       'Data reception error' or 'carrier extend error'
                       on the GMII.

                       For an interface operating in full-duplex mode
                       at 1000 Mb/s, the number of times the receiving
                       media is non-idle (a carrier event) for a period
                       of time equal to or greater than minFrameSize,
                       and during which there was at least one
                       occurrence of an event that causes the PHY to
                       indicate 'Data reception error' on the GMII.

                       For an interface operating at 10 Gb/s, the
                       number of times the receiving media is non-idle
                       (a carrier event) for a period of time equal to
                       or greater than minFrameSize, and during which
                       there was at least one occurrence of an event
                       that causes the PHY to indicate 'Receive Error'
                       on the XGMII.

                       The count represented by an instance of this
                       object is incremented at most once per carrier
                       event, even if multiple symbol errors occur
                       during the carrier event.  This count does
                       not increment if a collision is present.

                       This counter is a 64 bit version of
                       dot3StatsSymbolErrors.  It should be used on
                       interfaces operating at 10 Gb/s or faster.

                       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 ifCounterDiscontinuityTime."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5,
                       aSymbolErrorDuringCarrier."
           ::= { dot3HCStatsEntry 6 }


       --  802.3 Tests

       dot3Tests   OBJECT IDENTIFIER ::= { dot3 6 }
       dot3Errors  OBJECT IDENTIFIER ::= { dot3 7 }

       --  TDR Test

       dot3TestTdr OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******

                       The Time-Domain Reflectometry (TDR) test is
                       specific to ethernet-like interfaces of type
                       10Base5 and 10Base2.  The TDR value may be
                       useful in determining the approximate distance
                       to a cable fault.  It is advisable to repeat
                       this test to check for a consistent resulting
                       TDR value, to verify that there is a fault.

                       A TDR test returns as its result the time
                       interval, measured in 10 MHz ticks or 100 nsec
                       units, between the start of TDR test
                       transmission and the subsequent detection of a
                       collision or deassertion of carrier.  On
                       successful completion of a TDR test, the result
                       is stored as the value of an appropriate
                       instance of an appropriate vendor specific MIB
                       object, and the OBJECT IDENTIFIER of that
                       instance is stored in the appropriate instance
                       of the appropriate test result code object
                       (thereby indicating where the result has been
                       stored).

the TDR test bit is giving deprecated era energy ๐Ÿงš these identifiers are still in the MIB, just marked as deprecated, so we keep them exactly as written ๐Ÿ’œ

Okay bestie, picking up right where we left off ๐Ÿ’– Everything below is deprecated, so the old test identities and error codes are kinda retired now ๐Ÿฅบ

                       This object identity has been deprecated, since
                       the ifTestTable in the IF-MIB was deprecated,
                       and there is no longer a standard mechanism for
                       initiating an interface test.  This left no
                       standard way of using this object identity."
           ::= { dot3Tests 1 }

       -- Loopback Test

       dot3TestLoopBack OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******

                       This test configures the MAC chip and executes
                       an internal loopback test of memory, data paths,
                       and the MAC chip logic.  This loopback test can
                       only be executed if the interface is offline.
                       Once the test has completed, the MAC chip should
                       be reinitialized for network operation, but it
                       should remain offline.

                       If an error occurs during a test, the
                       appropriate test result object will be set
                       to indicate a failure.  The two OBJECT
                       IDENTIFIER values dot3ErrorInitError and
                       dot3ErrorLoopbackError may be used to provided
                       more information as values for an appropriate
                       test result code object.

                       This object identity has been deprecated, since
                       the ifTestTable in the IF-MIB was deprecated,
                       and there is no longer a standard mechanism for
                       initiating an interface test.  This left no
                       standard way of using this object identity."
           ::= { dot3Tests 2 }

       dot3ErrorInitError OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******

                       Couldn't initialize MAC chip for test.

                       This object identity has been deprecated, since
                       the ifTestTable in the IF-MIB was deprecated,
                       and there is no longer a standard mechanism for
                       initiating an interface test.  This left no
                       standard way of using this object identity."
           ::= { dot3Errors 1 }

       dot3ErrorLoopbackError OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******

                       Expected data not received (or not received
                       correctly) in loopback test.

                       This object identity has been deprecated, since
                       the ifTestTable in the IF-MIB was deprecated,
                       and there is no longer a standard mechanism for
                       initiating an interface test.  This left no
                       standard way of using this object identity."
           ::= { dot3Errors 2 }

       -- { dot3 8 }, the dot3ChipSets tree, is defined in [RFC2666]

       -- conformance information
       etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 }

       etherGroups      OBJECT IDENTIFIER ::= { etherConformance 1 }
       etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 }

       -- compliance statements

       etherCompliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********

                       The compliance statement for managed network
                       entities which have ethernet-like network
                       interfaces.

                       This compliance is deprecated and replaced by
                       dot3Compliance."

           MODULE  -- this module
               MANDATORY-GROUPS { etherStatsGroup }

               GROUP       etherCollisionTableGroup
               DESCRIPTION "This group is optional. It is appropriate
                           for all systems which have the necessary
                           metering. Implementation in such systems is
                           highly recommended."
           ::= { etherCompliances 1 }

       ether100MbsCompliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********

                       The compliance statement for managed network
                       entities which have 100 Mb/sec ethernet-like
                       network interfaces.

                       This compliance is deprecated and replaced by
                       dot3Compliance."

           MODULE  -- this module
               MANDATORY-GROUPS { etherStats100MbsGroup }

               GROUP       etherCollisionTableGroup
               DESCRIPTION "This group is optional. It is appropriate
                           for all systems which have the necessary
                           metering. Implementation in such systems is
                           highly recommended."
           ::= { etherCompliances 2 }

       dot3Compliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********

                       The compliance statement for managed network
                       entities which have ethernet-like network
                       interfaces.

                       This compliance is deprecated and replaced by
                       dot3Compliance2."

           MODULE  -- this module
               MANDATORY-GROUPS { etherStatsBaseGroup }

               GROUP       etherDuplexGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating in full-duplex mode.
                           It is highly recommended for all
                           ethernet-like network interfaces."

               GROUP       etherStatsLowSpeedGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at 10 Mb/s or slower in
                           half-duplex mode."

               GROUP       etherStatsHighSpeedGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at 100 Mb/s or faster."

               GROUP       etherControlGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control sublayer."

               GROUP       etherControlPauseGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control PAUSE function."

               GROUP       etherCollisionTableGroup
               DESCRIPTION "This group is optional. It is appropriate
                           for all ethernet-like network interfaces
                           which are capable of operating in
                           half-duplex mode and have the necessary
                           metering. Implementation in systems with
                           such interfaces is highly recommended."
           ::= { etherCompliances 3 }

           dot3Compliance2 MODULE-COMPLIANCE
               STATUS      current
               DESCRIPTION "The compliance statement for managed network
                           entities which have ethernet-like network
                           interfaces.

                           Note that compliance with this MIB module
                           requires compliance with the ifCompliance3
                           MODULE-COMPLIANCE statement of the IF-MIB
                           (RFC2863).  In addition, compliance with this
                           MIB module requires compliance  with the
                           mauModIfCompl3 MODULE-COMPLIANCE statement of
                           the MAU-MIB (RFC3636)."

           MODULE  -- this module
               MANDATORY-GROUPS { etherStatsBaseGroup2 }

               GROUP       etherDuplexGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating in full-duplex mode.
                           It is highly recommended for all
                           ethernet-like network interfaces."

               GROUP       etherRateControlGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at speeds faster than
                           1000 Mb/s. It is highly recommended for all
                           ethernet-like network interfaces."

               GROUP       etherStatsLowSpeedGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at 10 Mb/s or slower in
                           half-duplex mode."

               GROUP       etherStatsHighSpeedGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at 100 Mb/s or faster."

               GROUP       etherStatsHalfDuplexGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating in half-duplex mode."

               GROUP       etherHCStatsGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces which are
                           capable of operating at 10 Gb/s or faster.
                           It is recommended for all ethernet-like
                           network interfaces which are capable of
                           operating at 1000 Mb/s or faster."

               GROUP       etherControlGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control sublayer."

               GROUP       etherHCControlGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control sublayer and are
                           capable of operating at 10 Gb/s or faster."

               GROUP       etherControlPauseGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control PAUSE function."

               GROUP       etherHCControlPauseGroup
               DESCRIPTION "This group is mandatory for all
                           ethernet-like network interfaces that
                           support the MAC Control PAUSE function and
                           are capable of operating at 10 Gb/s or
                           faster."

Phew, that's the whole compliance family ๐ŸŒˆ The dot3Compliance2 one is the current one, and the rest are deprecated, so keep that in mind when you're reading the groups ๐Ÿฆ‹

               GROUP       etherCollisionTableGroup
               DESCRIPTION "This group is optional. It is appropriate
                           for all ethernet-like network interfaces
                           which are capable of operating in
                           half-duplex mode and have the necessary
                           metering. Implementation in systems with
                           such interfaces is highly recommended."
           ::= { etherCompliances 4 }

       -- units of conformance

       etherStatsGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsSQETestErrors,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors,
                         dot3StatsEtherChipSet
                       }
           STATUS      deprecated
           DESCRIPTION "********* THIS GROUP IS DEPRECATED **********

                       A collection of objects providing information
                       applicable to all ethernet-like network
                       interfaces.

                       This object group has been deprecated and
                       replaced by etherStatsBaseGroup and
                       etherStatsLowSpeedGroup."
           ::= { etherGroups 1 }

       etherCollisionTableGroup OBJECT-GROUP
           OBJECTS     { dot3CollFrequencies
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing a histogram
                       of packets successfully transmitted after
                       experiencing exactly N collisions."
           ::= { etherGroups 2 }

       etherStats100MbsGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors,
                         dot3StatsEtherChipSet,
                         dot3StatsSymbolErrors

                       }
           STATUS      deprecated
           DESCRIPTION "********* THIS GROUP IS DEPRECATED **********

                       A collection of objects providing information
                       applicable to 100 Mb/sec ethernet-like network
                       interfaces.

                       This object group has been deprecated and
                       replaced by etherStatsBaseGroup and
                       etherStatsHighSpeedGroup."
           ::= { etherGroups 3 }

       etherStatsBaseGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors
                       }
           STATUS      deprecated
           DESCRIPTION "********* THIS GROUP IS DEPRECATED **********

                       A collection of objects providing information
                       applicable to all ethernet-like network
                       interfaces.

                       This object group has been deprecated and
                       replaced by etherStatsBaseGroup2 and
                       etherStatsHalfDuplexGroup, to separate
                       objects which must be implemented by all
                       ethernet-like network interfaces from
                       objects that need only be implemented on
                       ethernet-like network interfaces that are
                       capable of half-duplex operation."
           ::= { etherGroups 4 }

       etherStatsLowSpeedGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSQETestErrors }
           STATUS      current
           DESCRIPTION "A collection of objects providing information

                       applicable to ethernet-like network interfaces
                       capable of operating at 10 Mb/s or slower in
                       half-duplex mode."
           ::= { etherGroups 5 }

       etherStatsHighSpeedGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSymbolErrors }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       applicable to ethernet-like network interfaces
                       capable of operating at 100 Mb/s or faster."
           ::= { etherGroups 6 }

       etherDuplexGroup OBJECT-GROUP
           OBJECTS     { dot3StatsDuplexStatus }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       about the duplex mode of an ethernet-like
                       network interface."
           ::= { etherGroups 7 }

       etherControlGroup OBJECT-GROUP
           OBJECTS     { dot3ControlFunctionsSupported,
                         dot3ControlInUnknownOpcodes
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       about the MAC Control sublayer on ethernet-like
                       network interfaces."
           ::= { etherGroups 8 }

       etherControlPauseGroup OBJECT-GROUP
           OBJECTS     { dot3PauseAdminMode,
                         dot3PauseOperMode,
                         dot3InPauseFrames,
                         dot3OutPauseFrames
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       about and control of the MAC Control PAUSE
                       function on ethernet-like network interfaces."
           ::= { etherGroups 9 }

       etherStatsBaseGroup2 OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       applicable to all ethernet-like network
                       interfaces."
           ::= { etherGroups 10 }

       etherStatsHalfDuplexGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsCarrierSenseErrors
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       applicable only to half-duplex ethernet-like
                       network interfaces."
           ::= { etherGroups 11 }

       etherHCStatsGroup OBJECT-GROUP
           OBJECTS     { dot3HCStatsAlignmentErrors,
                         dot3HCStatsFCSErrors,
                         dot3HCStatsInternalMacTransmitErrors,
                         dot3HCStatsFrameTooLongs,
                         dot3HCStatsInternalMacReceiveErrors,
                         dot3HCStatsSymbolErrors
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing high-capacity
                       statistics applicable to higher-speed
                       ethernet-like network interfaces."
           ::= { etherGroups 12 }

       etherHCControlGroup OBJECT-GROUP
           OBJECTS     { dot3HCControlInUnknownOpcodes }
           STATUS      current
           DESCRIPTION "A collection of objects providing high-capacity
                       statistics for the MAC Control sublayer on
                       higher-speed ethernet-like network interfaces."
           ::= { etherGroups 13 }

       etherHCControlPauseGroup OBJECT-GROUP
           OBJECTS     { dot3HCInPauseFrames,
                         dot3HCOutPauseFrames

                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing high-capacity
                       statistics for the MAC Control PAUSE function on
                       higher-speed ethernet-like network interfaces."
           ::= { etherGroups 14 }

       etherRateControlGroup OBJECT-GROUP
           OBJECTS     { dot3StatsRateControlAbility,
                         dot3StatsRateControlStatus
                       }
           STATUS      current
           DESCRIPTION "A collection of objects providing information
                       about the Rate Control function on ethernet-like
                       interfaces."
           ::= { etherGroups 15 }

   END

5. Intellectual Property Statement โœจ

okay so the IETF is being super neutral here ๐Ÿซถ it doesn't take a position on whether any intellectual property or other rights someone might claim over the tech in this doc are valid or in scope. it also doesn't know if a license under those rights is actually available, and it's not claiming it went looking for any. if you want the IETF's rules on rights for standards-track and standards-related docs, check BCP-11 ๐Ÿ“š

if someone has filed claims of rights for publication, or there are assurances of licenses, or the result of an attempt to get a general license or permission for implementers or users to use those proprietary rights, you can get all of that from the IETF Secretariat ๐Ÿ’ผ

and the IETF invites anyone who's interested to flag any copyrights, patents or patent applications, or other proprietary rights that might cover tech needed to practice this standard ๐Ÿ”ฅ just send that info to the IETF Executive Director ๐Ÿ’Œ

6. Acknowledgements ๐ŸŒธ

okay bestie, this is the shoutout section ๐Ÿซถ this doc was made by the IETF Ethernet Interfaces and Hub MIB Working Group, and these people's work is literally why it exists:

  • Ran Atkinson
  • Mike Ayers
  • Mike Heard
  • Jeffrey Johnson
  • Lynn Kubinec
  • Kam Lam
  • Kerry McDonald
  • Steve McRobert
  • K.C. Norseth
  • Dan Romascanu
  • Randy Presuhn
  • Andrew Smith
  • Kaj Tesink
  • Geoff Thompson

so this doc is based on the Proposed Standard Ethernet MIB, RFC 2665 [RFC2665] ๐Ÿ“š, edited by John Flick of Hewlett-Packard and Jeffrey Johnson of RedBack Networks and produced by the Ethernet Interfaces and Hub MIB Working Group. it levels up that doc by adding support for 10 Gb/s Ethernet interfaces as defined in [IEEE802.3ae] โšก

then RFC 2665 is based on the Proposed Standard Ethernet MIB, RFC 2358 [RFC2358] ๐Ÿงš, also edited by John Flick of Hewlett-Packard and Jeffrey Johnson of RedBack Networks, and produced by the 802.3 Hub MIB Working Group. RFC 2665 extended that one with full-duplex Ethernet interfaces and 1000 Mb/sec Ethernet interfaces as outlined in [IEEE802.3] ๐Ÿ’œ

RFC 2358 is almost completely based on both the Standard Ethernet MIB, RFC 1643 [RFC1643], and the Proposed Standard Ethernet MIB using the SNMPv2 SMI, RFC 1650 [RFC1650]. both of those were edited by Frank Kastenholz of FTP Software and produced by the Interfaces MIB Working Group. RFC 2358 added support for 100 Mb/sec ethernet interfaces ๐Ÿ“

RFC 1643 and RFC 1650 are based on the Draft Standard Ethernet MIB, RFC 1398 [RFC1398], also edited by Frank Kastenholz and produced by the Ethernet MIB Working Group ๐Ÿฆ‹

and RFC 1398 is based on the Proposed Standard Ethernet MIB, RFC 1284 [RFC1284], which was edited by John Cook of Chipcom and produced by the Transmission MIB Working Group. the Ethernet MIB Working Group gathered implementation experience of the variables specified in RFC 1284, wrote that experience down in RFC 1369 [RFC1369], and used that info to build this revised MIB ๐Ÿค“

RFC 1284 is based on a doc written by Frank Kastenholz, then of Interlan, called IEEE 802.3 Layer Management Draft M compatible MIB for TCP/IP Networks [KASTEN] ๐Ÿ’…. that doc got modestly reworked, first by the SNMP Working Group and then by the Transmission Working Group, so it matched the current conventions for defining objects for MIB interfaces. James Davin, of the MIT Laboratory for Computer Science, and Keith McCloghrie of Hughes LAN Systems, contributed to later drafts of this memo. Marshall Rose of Performance Systems International, Inc. converted the document into RFC 1212 [RFC1212] concise format ๐Ÿ‘‘. Anil Rijsinghani of DEC contributed text that more adequately describes the TDR test. and big thanks to Frank Kastenholz of Interlan and Louis Steinberg of IBM for their experimentation ๐Ÿซถโœจ

7. Normative References ๐Ÿ“Œ

[RFC2119]     Bradner, S., "Key words for use in RFCs to Indicate
              Requirements Levels", BCP 14, RFC 2119, March 1997.

[RFC2578]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
              J., Rose, M. and S. Waldbusser, "Structure of
              Management Information Version 2 (SMIv2)", STD 58, RFC
              2578, April 1999.

[RFC2579]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
              J., Rose, M. and S. Waldbusser, "Textual Conventions
              for SMIv2", STD 58, RFC 2579, April 1999.

[RFC2580]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
              J., Rose, M. and S. Waldbusser, "Conformance Statements
              for SMIv2", STD 58, RFC 2580, April 1999.

[RFC2863]     McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB using SMIv2", RFC 2863, June 2000.

[IEEE802.3]   IEEE, IEEE Std 802.3, 2002 Edition: "Carrier Sense
              Multiple Access with Collision Detection (CSMA/CD)
              Access Method and Physical Layer Specifications", March
              2002.

[IEEE802.3ae] IEEE, IEEE Std 802.3ae-2002, "Amendment: Media Access
              Control (MAC) Parameters, Physical Layers, and
              Management Parameters for 10 Gb/s Operation", August,
              2002.

[RFC3636]     Flick, J., "Definitions of Managed Objects for IEEE
              802.3 Medium Attachment Units (MAUs) using SMIv2", RFC
              3636, September 2003.

8. Informative References ๐Ÿง 

[RFC1212]     Rose, M. and K. McCloghrie, Editors, "Concise MIB
              Definitions", STD 16, RFC 1212, March 1991.

[RFC1213]     McCloghrie, K. and M. Rose, Editors, "Management
              Information Base for Network Management of TCP/IP-based
              internets: MIB-II", STD 17, RFC 1213, March 1991.

[RFC1284]     Cook, J., "Definitions of Managed Objects for
              Ethernet-Like Interface Types", RFC 1284, December
              1991.

[RFC1369]     Kastenholz, F., "Implementation Notes and Experience
              for The Internet Ethernet MIB", RFC 1369, October 1992.

[RFC1398]     Kastenholz, F., "Definitions of Managed Objects for the
              Ethernet-like Interface Types", RFC 1398, January 1993.

[RFC1643]     Kastenholz, F., "Definitions of Managed Objects for the
              Ethernet-like Interface Types", STD 50, RFC 1643, July
              1994.

[RFC1650]     Kastenholz, F., "Definitions of Managed Objects for the
              Ethernet-like Interface Types using SMIv2", RFC 1650,
              August 1994.

[RFC2358]     Flick, J. and J. Johnson, "Definitions of Managed
              Objects for the Ethernet-like Interface Types", RFC
              2358, June 1998.

[RFC2665]     Flick, J. and J. Johnson, "Definitions of Managed
              Objects for the Ethernet-like Interface Types", RFC
              2665, August 1999.

[RFC2666]     Flick, J., "Definitions of Object Identifiers for
              Identifying Ethernet Chip Sets", RFC 2666, August 1999.

[RFC3410]     Case, J., Mundy, R., Partain, D. and B. Stewart,
              "Introduction and Applicability Statements for
              Internet-Standard Network Management Framework", RFC
              3410, December 2002.

[CASE]        Case, J., and C. Partridge, "Case Diagrams: A First
              Step to Diagrammed Management Information Bases",
              Computer Communications Review, 19(1):13-16, January
              1989.

[RFC3637]     Heard, C., "Definitions of Managed Objects for the
              Ethernet WAN Interface Sublayer", RFC 3637, September
              2003.

[KASTEN]      Kastenholz, F., "IEEE 802.3 Layer Management Draft
              compatible MIB for TCP/IP Networks", electronic mail
              message to mib-wg@nnsc.nsf.net, 9 June 1989.

9. Security Considerations ๐Ÿšจ

okay this one is SERIOUS bestie, so read carefully ๐Ÿ˜ญ๐Ÿ”

there is one management object in this MIB with a MAX-ACCESS clause of read-write. that object, dot3PauseAdminMode, can be used to change the flow control config on a network interface. that could cause dropped packets, or send flow control packets on links where the link partner won't understand them. either one could be seriously bad for network performance ๐Ÿ’€

these objects might be considered sensitive or vulnerable in some network environments. supporting SET operations in a non-secure environment without proper protection can have a negative effect on network operations ๐Ÿ™ˆ

some of the readable objects in this MIB module (so, objects with a MAX-ACCESS other than not-accessible) might also be considered sensitive or vulnerable in some network environments. the one to watch is dot3StatsEtherChipSet, since in many environments it's sensitive: it would let an intruder find out which vendor's equipment is on the network. note that this object has been deprecated, but some implementors may still choose to implement it for backwards compatability ๐Ÿง

most objects in this MIB module hold statistical info about particular network links. in some network environments, that info may be considered sensitive too ๐Ÿ‘€

so it's important to control even GET and/or NOTIFY access to these objects, and possibly even encrypt their values when sending them over the network via SNMP ๐Ÿ”’

SNMP versions before SNMPv3 did not include adequate security. even if the network itself is secure (for example by using IPSec), there's still no control over who on that secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module ๐Ÿ˜ค

it is recommended that implementors consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy) ๐Ÿ”โœจ

and furthermore, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. instead, it is RECOMMENDED to deploy SNMPv3 and enable cryptographic security. then it's a customer/operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is properly configured, so the objects are only accessible to those principals (users) who have legitimate rights to actually GET or SET (change/create/delete) them ๐Ÿ‘‘

10. IANA Considerations ๐Ÿ“‹

this doc doesn't define any new name space for IANA to administer. however, section 3.2.4 does say that some of the defined values in a current IANA-maintained name space need to be marked as deprecated or obsolete ๐Ÿฆ‹. specifically, these enumerated values in the IANAifType TEXTUAL-CONVENTION in the IANAifType-MIB module got an ASN.1 comment from IANA saying they're deprecated:

  • iso88032Csmacd(7)
  • starLan(11)

and these ones got an ASN.1 comment saying they're obsolete:

  • fastEther(62)
  • fastEtherFX(69)
  • gigabitEthernet(117)

in every one of these cases, the ASN.1 comment says ethernetCsmacd(6) should be used instead ๐Ÿ’–

A. Change Log ๐ŸŒˆ

A.1. Changes since RFC 2665 ๐Ÿ“โœจ

okay so this section is basically the changelog bestie ๐Ÿ’… it lists everything that changed from RFC 2665 to make this document, and honestly the glow-up list is kinda iconic ๐Ÿฆ‹

(1) Updated references to the IEEE 802.3 standard to refer to the 2002 edition. ๐ŸŒธ

(2) Added reference to IEEE 802.3ae-2002. ๐ŸŽ€

(3) Updated WG e-mail address. ๐Ÿ’Œ

(4) The following DESCRIPTION clauses have been updated to reflect behaviour on 10 Gb/s interfaces: ๐Ÿ’ป

dot3StatsAlignmentErrors and dot3StatsSymbolErrors.

(5) The following objects have been added for management of the Rate Control function in WAN applications of ethernet: ๐ŸŒ

dot3StatsRateControlAbility and dot3StatsRateControlStatus.

(6) The following 64-bit counters have been added to support operation on high-speed ethernet interfaces: ๐Ÿš€

dot3HCControlInUnknownOpcodes, dot3HCInPauseFrames,
dot3HCOutPauseFrames, dot3HCStatsAlignmentErrors,
dot3HCStatsFCSErrors, dot3HCStatsFrameTooLongs,
dot3HCStatsInternalMacTransmitErrors,
dot3HCStatsInternalMacReceiveErrors,
dot3HCStatsSymbolErrors

(7) Object groups and compliances have been added to contain the new objects. ๐Ÿงš

(8) The MODULE-IDENTITY clause has been updated to reflect the changes in the MIB module. ๐Ÿช„

(9) Use of the various ifType values for ethernet has been clarified to emphasize that all ethernet-like interfaces must use the ethernetCsmacd ifType. ๐Ÿซถ

(10) Several clarifications were made to the section on the mapping of the Interface MIB objects to ethernet. ๐Ÿ“

(11) MIB boilerplate in section 2 has been updated to the latest approved text. โœจ


A.2. Changes between RFC 2358 and RFC 2665 ๐ŸŽ€

this one is the previous glow-up, from RFC 2358 to RFC 2665. the vibe is very "we fixed the counters and the duplex stuff" ๐Ÿ™ˆ

This section enumerates changes made to RFC 2358 to produce RFC 2665.

(1) Section 2 has been replaced with the current SNMP Management Framework boilerplate. ๐Ÿ“ฆ

(2) The ifMtu mapping has been clarified. ๐Ÿ“

(3) The relationship between the IEEE 802.3 octet counters and the IF-MIB octet counters has been clarified. ๐Ÿ”ข

(4) REFERENCE clauses have been updated to reflect the actual IEEE 802.3 managed object that each MIB object is based on. ๐Ÿ”

(5) The following object DESCRIPTION clauses have been updated to reflect that they do not increment in full-duplex mode: ๐Ÿ”„

dot3StatsSingleCollisionFrames,
dot3StatsMultipleCollisionFrames, dot3StatsSQETestErrors,
dot3StatsDeferredTransmissions, dot3StatsLateCollisions,
dot3StatsExcessiveCollisions, dot3StatsCarrierSenseErrors,
dot3CollFrequencies.

(6) The following object DESCRIPTION clauses have been updated to reflect behaviour on full-duplex and 1000 Mb/s interfaces: ๐Ÿš€

dot3StatsAlignmentErrors,
dot3StatsFCSErrors, dot3StatsSQETestErrors,
dot3StatsLateCollisions, dot3StatsSymbolErrors.

(7) Two new tables, dot3ControlTable and dot3PauseTable, have been added. ๐Ÿ—‚๏ธ

(8) A new object, dot3StatsDuplexStatus, has been added. ๐ŸŒŸ

(9) The object groups and compliances have been restructured. ๐Ÿงฉ

(10) The dot3StatsEtherChipSet object has been deprecated. ๐Ÿ™…โ€โ™€๏ธ

(11) The dot3ChipSets have been moved to a separate document. ๐Ÿšš


A.3. Changes between RFC 1650 and RFC 2358 ๐Ÿฆ‹

this is the oldest glow-up on the list, from RFC 1650 to RFC 2358. lowkey the origin story ๐ŸŒท

This section enumerates changes made to RFC 1650 to produce RFC 2358.

(1) The MODULE-IDENTITY has been updated to reflect the changes in the MIB. ๐Ÿชช

(2) A new object, dot3StatsSymbolErrors, has been added. โœจ

(3) The definition of the object dot3StatsIndex has been converted to use the SMIv2 OBJECT-TYPE macro. ๐Ÿ”ง

(4) A new conformance group, etherStats100MbsGroup, has been added. ๐ŸŒˆ

(5) A new compliance statement, ether100MbsCompliance, has been added. ๐Ÿ“‹

(6) The Acknowledgements were extended to provide a more complete history of the origin of this document. ๐Ÿซถ

(7) The discussion of ifType has been expanded. ๐Ÿ’ฌ

(8) A section on mapping of Interfaces MIB objects has been added. ๐Ÿ—บ๏ธ

(9) A section defining the relationship of this MIB to the MAU MIB has been added. ๐Ÿ”—

(10) A section on the mapping of IEEE 802.3 managed objects to this MIB and the Interfaces MIB has been added. ๐Ÿงญ

(11) Converted the dot3Tests, dot3Errors, and dot3ChipSets OIDs to use the OBJECT-IDENTITY macro. ๐Ÿ†”

(12) Added to the list of registered dot3ChipSets. ๐Ÿ’œ

(13) An intellectual property notice and copyright notice were added, as required by RFC 2026. โš–๏ธ


Author's Address ๐Ÿ“ฎ

John Flick ๐Ÿ’– Hewlett-Packard Company 8000 Foothills Blvd. M/S 5557 Roseville, CA 95747-5557

Phone: +1 916 785 4018 ๐Ÿ“ž EMail: johnf@rose.hp.com ๐Ÿ’Œ


Copyright (C) The Internet Society (2003). All Rights Reserved. ๐Ÿ’œ

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. ๐ŸŒ

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. โ™พ๏ธ

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐Ÿ™


Acknowledgement ๐Ÿซถ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from