RFC 1650
Definitions of Managed Objects for the Ethernet-like Interface Types using SMIv2
RFC 1650 π Definitions of Managed Objects for the Ethernet-like Interface Types using SMIv2
- Network Working Group π
- Request for Comments: 1650 β¨
- Author: F. Kastenholz, FTP Software, Inc. π§
- Category: Standards Track π
- Date: August 1994 π
- Obsoletes / Updates: The title block doesn't list anything under obsoletes or updates. The text does say this is an updated version of RFC 1398, and the Change Log in Section 3 explains what changed π¦
Status of This Memo π
Okay bestie, this is a standards track protocol doc for the whole Internet community π It's asking for discussion and suggestions for improvements π«Ά For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1) π₯ Distribution of this memo is unlimited β¨
Table of Contents π
1. Introduction .......................................... 1
2. The SNMPv2 Network Management Framework ............... 2
2.1 Object Definitions ................................... 2
3. Change Log ............................................ 2
4. Overview .............................................. 3
4.1 Relation to RFC 1213 ................................. 4
4.2 Relation to RFC 1573 ................................. 4
4.2.1 Layering Model ..................................... 4
4.2.2 Virtual Circuits ................................... 4
4.2.3 ifTestTable ........................................ 4
4.2.4 ifRcvAddressTable .................................. 5
4.2.5 ifPhysAddress ...................................... 5
4.2.6 ifType ............................................. 6
5. Definitions ........................................... 6
6. Acknowledgements ...................................... 18
7. References ............................................ 19
8. Security Considerations ............................... 20
9. Author's Address ...................................... 20
1. Introduction πΈ
Okay so this memo defines a chunk of the Management Information Base (MIB) for network management protocols in the Internet community π¦ Specifically, it defines objects for managing ethernet-like objects π
It also includes a MIB module. This module fixes minor errors in the earlier version of this MIB, RFC 1398 [15] β¨ It also re-specifies that MIB so it's compliant with the SNMPv2 SMI and semantically identical to the existing SNMPv1-based definitions. Main character energy π
2. The SNMPv2 Network Management Framework π§
The SNMPv2 Network Management Framework is made up of four major components. They are:
- RFC 1442 [16] defines the SMI, which is the mechanisms used for describing and naming objects for the purpose of management π
- STD 17, RFC 1213 [6] defines MIB-II, the core set of managed objects for the Internet suite of protocols π
- RFC 1445 [17] defines the administrative and other architectural aspects of the framework π
- RFC 1448 [18] defines the protocol used for network access to managed objects β
The Framework permits new objects to be defined for experimentation and evaluation. Iykyk, it's giving research era π¬
2.1. Object Definitions π
Managed objects are accessed via a virtual information store, which is called the Management Information Base or MIB π Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) [7] defined in the SMI [16]. Each object type is named by an OBJECT IDENTIFIER, which is an administratively assigned name π¦
The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, called the descriptor, to refer to the object type π
3. Change Log π
This section lists the changes made to RFC 1398 to produce this document. Here's the tea β
- The "boilerplate" was changed to reflect the new boilerplate for SNMPv2 β¨
- A section describing the applicability of various parts of RFC 1573 to ethernet-like interfaces has been added π§
- A minor error in the description of the TDR test was fixed π
- A loopback test was defined to replace the standard loopback test that was defined in RFC 1229 π
- The description of dot3CollFrequencies was made a bit clearer π
- A new object, EtherChipset, has been added. This object replaces the ifExtnsChipSet object, which has been removed per the Interface MIB Evolution effort πΈ
- Several minor editorial changes, spelling corrections, grammar and punctuation corrections, and so forth, were made π
4. 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 three values of the ifType object in the Internet-standard MIB π
ethernet-csmacd(6)
iso88023-csmacd(7)
starLan(11)
For these interfaces, the value of the ifSpecific variable in the MIB-II [6] has the OBJECT IDENTIFIER value:
dot3 OBJECT IDENFIER ::= { transmission 7 }
The definitions here are based on the IEEE 802.3 Layer Management Specification [9], as originally interpreted by Frank Kastenholz then of Interlan in [10]. Implementors of these MIB objects should note that the IEEE document 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 [9] are already represented by previously defined objects in the Internet-standard MIB or in the Generic Interface Extensions MIB [11], those attributes are not redundantly represented by objects defined in this memo. Among the attributes represented by objects in other memos are 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 π
4.1. Relation to RFC 1213 π«§
This section applies only when this MIB is used with the "old" (i.e., pre-RFC 1573) interface group π°οΈ
The relationship between an ethernet-like interface and an interface in the context of the Internet-standard MIB is one-to-one. As such, the value of an ifIndex object instance can be directly used to identify corresponding instances of the objects defined herein π
4.2. Relation to RFC 1573 π
RFC 1573, the Interface MIB Evolution, requires that any MIB which is an adjunct of the Interface MIB clarify specific areas within the Interface MIB. These areas were intentionally left vague in RFC 1573 so they don't over constrain the MIB and accidentally rule out managing certain media-types π
Section 3.3 of RFC 1573 lists several areas which a media-specific MIB must clarify. Each of these areas gets its own subsection below. The implementor is referred to RFC 1573 to understand the general intent of these areas π
4.2.1. Layering Model π₯
This MIB does not provide for layering. There are no sublayers π ββοΈ
EDITOR'S NOTE: There could be a future 802.2 MIB and a future enet-transceiver MIB. They could be higher and lower sublayers, respectively. All THIS document should do is hint at those possibilities and urge the implementor to be aware of them, since they may have requirements that supersede the requirements in this document. π
4.2.2. Virtual Circuits π«
This medium does not support virtual circuits, so this area is not applicable to this MIB. Nothing to see here, bestie π€
4.2.3. ifTestTable π§ͺ
This MIB defines two tests for media that are instrumented with this MIB: TDR and Loopback. Implementation of these tests is not required. Lots of common interface chips don't support one or both of these tests π¬
These two tests are provided as a convenience, so there's a common method to invoke the test π«Ά
Standard MIBs don't include objects to return the results of the TDR test. Any needed objects MUST be provided in the vendor specific MIB β οΈ
4.2.4. 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 π§
4.2.5. ifPhysAddress πͺͺ
This object contains the IEEE 802.3 address that is placed in the source-address field of any Ethernet, Starlan, or IEEE 802.3 frames that originate at this interface. Usually this will be kept in ROM on the interface hardware. Some systems may set this address via software πΎ
In a system with 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 choose, using 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. The address is 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 π’
4.2.6. ifType π·οΈ
This MIB applies to interfaces that have any of the following three ifType values:
ethernet-csmacd(6)
iso88023-csmacd(7)
starLan(11)
Interfaces with any of these ifType values map to the EtherLike-MIB in the same manner. The EtherLike-MIB applies equally to all three types, and there are no implementation differences π₯°
5. Definitions π
EtherLike-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
Integer32, FROM SNMPv2-SMI
TEXTUAL-CONVENTION, PhysAddress, FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
ifIndex, ifEntry FROM IF-MIB
mib-2 FROM RFC1213-MIB;
etherMIB MODULE-IDENTITY
LAST-UPDATED "9402030400Z"
ORGANIZATION "IETF Interfaces MIB Working Group"
CONTACT-INFO
" Frank Kastenholz
Postal: FTP Software
2 High Street
North Andover, MA 01845
US
Tel: +1 508 685 4000
E-Mail: kasten@ftp.com"
DESCRIPTION
"The MIB module to describe generic objects for
Ethernet-like network interfaces. This MIB is an
updated version of the Ethernet-like MIB in RFC
1398."
::= { mib-2 35 }
etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 }
dot3 OBJECT IDENTIFIER ::= { transmission 7 }
-- the Ethernet-like Statistics group
okay so this is where the big table lives π dot3StatsTable is a whole collection of stats for ethernet-like interfaces on one system, and dot3StatsEntry is one row per interface. the row index is dot3StatsIndex, and it points at the same interface as ifIndex. so they line up perfectly π
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."
::= { 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 INTEGER,
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
}
dot3StatsIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
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."
::= { dot3StatsEntry 1 }
dot3StatsAlignmentErrors and dot3StatsFCSErrors π₯
these two are like sibling errors π―ββοΈ dot3StatsAlignmentErrors counts frames that are not a whole number of octets AND fail the FCS check. dot3StatsFCSErrors counts frames that are a whole number of octets but still fail the FCS check. both get bumped when the MAC service hands the matching error status up to the LLC (or whatever MAC user is listening). and if a frame has more than one error going on, IEEE 802.3 Layer Management says it only gets counted once, based on the error status the LLC was shown. no double dipping π ββοΈ
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 obtain are,
according to the conventions of IEEE 802.3
Layer Management, counted exclusively according
to the error status presented to the LLC."
REFERENCE
"IEEE 802.3 Layer Management"
::= { 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.
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 obtain are,
according to the conventions of IEEE 802.3
Layer Management, counted exclusively according
to the error status presented to the LLC."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 3 }
dot3StatsSingleCollisionFrames and dot3StatsMultipleCollisionFrames π
collisions, but make it organized π dot3StatsSingleCollisionFrames is for frames that got through successfully, but only after exactly one collision held them up. dot3StatsMultipleCollisionFrames is the same vibe for frames that needed more than one collision before they went through. a frame in either count also shows up in ifOutUcastPkts, ifOutMulticastPkts, or ifOutBroadcastPkts, and it is not in the other collision count. one or the other, never both, periodt π
dot3StatsSingleCollisionFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of successfully transmitted frames on
a particular interface for which transmission
is inhibited by exactly one collision.
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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 4 }
dot3StatsMultipleCollisionFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of successfully transmitted frames on
a particular interface for which transmission
is inhibited by more than one collision.
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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 5 }
dot3StatsSQETestErrors π§ͺ
this one's got a paper trail, ngl π dot3StatsSQETestErrors counts how many times the PLS sublayer generates an SQE TEST ERROR message on a given interface. that message is defined in section 7.2.2.2.4 of ANSI/IEEE 802.3-1985, and the section on how it gets generated is 7.2.4.6 of that same document. it's citing the source material like a good academic π€
dot3StatsSQETestErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of times that the SQE TEST ERROR
message is generated by the PLS sublayer for a
particular interface. The SQE TEST ERROR
message is defined in section 7.2.2.2.4 of
ANSI/IEEE 802.3-1985 and its generation is
described in section 7.2.4.6 of the same
document."
REFERENCE
"ANSI/IEEE Std 802.3-1985 Carrier Sense
Multiple Access with Collision Detection Access
Method and Physical Layer Specifications"
::= { dot3StatsEntry 6 }
dot3StatsDeferredTransmissions and dot3StatsLateCollisions π¦
timing is everything, bestie β±οΈ dot3StatsDeferredTransmissions counts frames whose first transmission attempt gets pushed back because the medium is busy. collisions don't count toward this one, so keep those separate in your head π§ dot3StatsLateCollisions is about collisions that happen after the 512 bit-times mark into a packet. 512 bit-times works out to 51.2 microseconds on a 10 Mbit/s system. a late collision also counts as a regular (generic) collision for the other collision stats, so it's in both places. very layered, very iconic π
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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { 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
512 bit-times into the transmission of a
packet.
Five hundred and twelve bit-times corresponds
to 51.2 microseconds on a 10 Mbit/s system. A
(late) collision included in a count
represented by an instance of this object is
also considered as a (generic) collision for
purposes of other collision-related
statistics."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 8 }
dot3StatsExcessiveCollisions, dot3StatsInternalMacTransmitErrors, and dot3StatsCarrierSenseErrors π¨
the transmit-side drama bestie π dot3StatsExcessiveCollisions counts frames that fail to transmit because of excessive collisions. dot3StatsInternalMacTransmitErrors counts frames that fail to transmit because of an internal MAC sublayer transmit error. the catch is that a frame only shows up here if it isn't already counted in late collisions, excessive collisions, or carrier sense errors. and the exact meaning of this one is up to each implementation, so it might also count transmit errors that aren't tracked anywhere else π€·ββοΈ dot3StatsCarrierSenseErrors counts the times carrier sense was lost or never asserted when trying to send a frame. it gets bumped at most once per transmission attempt, even if carrier sense flickers during that attempt. one attempt, one count, that's the rule π
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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { 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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { 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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 11 }
dot3StatsFrameTooLongs and dot3StatsInternalMacReceiveErrors π¦
receive side, we see you π dot3StatsFrameTooLongs counts frames received on an interface that go over the maximum permitted frame size. it gets incremented when the frameTooLong status is handed up from the MAC service to the LLC (or other MAC user), and multi-error frames follow the same IEEE 802.3 Layer Management rule: counted once, by the error status the LLC saw. dot3StatsInternalMacReceiveErrors counts frames where reception fails because of an internal MAC sublayer receive error. same deal as its transmit cousin: a frame only lands here if it isn't already counted in FrameTooLongs, AlignmentErrors, or FCSErrors, and what it means is up to the implementation. also heads up, entries 12, 14, and 15 aren't assigned, so the numbering just skips them π
-- { 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 obtain are,
according to the conventions of IEEE 802.3
Layer Management, counted exclusively according
to the error status presented to the LLC."
REFERENCE
"IEEE 802.3 Layer Management"
::= { 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."
REFERENCE
"IEEE 802.3 Layer Management"
::= { dot3StatsEntry 16 }
okay so we're picking up right where the MIB definitions left off π next up: the chipset object, the collision histogram, the TDR test, the loopback test, and the chipset registry. let's gooo π¦
dot3StatsEtherChipSet is the "which chip is actually doing the work?" object π₯
dot3StatsEtherChipSet OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"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."
::= { dot3StatsEntry 17 }
so the vibe here is: an Ethernet-like interface is usually built from a bunch of chips π§ the implementor gets to pick which one gets named. the go-to pick is the one usually called the Medium Access Control chip. if that one isn't easy to spot, pick the chip that actually collects the transmit and receive stats and error indications instead. the whole point is that a manager station can line up the stats with the chip that made them, so it can account for any known quirks in that chip π
the Ethernet-like Collision Statistics group is next, and it's giving histogram energy π
-- 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."
::= { 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 INTEGER,
dot3CollFrequencies Counter32
}
-- { dot3CollEntry 1 } is no longer in use
dot3CollCount OBJECT-TYPE
SYNTAX INTEGER (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."
::= { dot3CollEntry 3 }
-- 802.3 Tests
dot3Tests OBJECT IDENTIFIER ::= { dot3 6 }
dot3Errors OBJECT IDENTIFIER ::= { dot3 7 }
the collision table is basically a scoreboard for how many frames needed exactly N collisions before they got through π each cell counts frames that were sent (successfully or not) after exactly that many collisions. so a frame on interface 77 that hit exactly 4 collisions only bumps dot3CollFrequencies.77.4, and nothing else moves. it's optional, but the doc says it's highly recommended for any system that has the metering for it πΈ
the TDR test is up next, and it's a whole detective vibe π΅οΈββοΈ
-- TDR Test
-- The Time-Domain Reflectometry (TDR) test is specific
-- to ethernet-like interfaces with the exception of
-- 10BaseT and 10BaseF. 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.
dot3TestTdr OBJECT IDENTIFIER ::= { dot3Tests 1 }
-- 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 the appropriate instance of the
-- MIB object dot3TestTdrValue, and the OBJECT IDENTIFIER
-- of that instanceis stored in the corresponding instance
-- of ifExtnsTestCode (thereby indicating where the
-- result has been stored).
so the TDR test is for Ethernet-like interfaces, except 10BaseT and 10BaseF π the value can help estimate how far away a cable fault is, and the doc says it's a good idea to run it again so you can check that the result stays consistent and really confirm there's a fault. the result is a time interval, measured in 10 MHz ticks (100 nsec units), from when the TDR transmission starts until a collision or carrier deassertion gets detected. when it finishes, the value lands in dot3TestTdrValue, and the OBJECT IDENTIFIER of that instance gets stored in ifExtnsTestCode so you know where to find it π
the loopback test is the full-duplex one, and it's kind of intense π
-- Loopback Test
-- Another test is the full-duplex loopback test.
-- 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.
dot3TestLoopBack OBJECT IDENTIFIER ::= { dot3Tests 2 }
-- If an error occurs during a test, the object
-- ifTestResult (defined in RFC1573) will be set
-- to failed(7). The following two OBJECT
-- IDENTIFIERs may be used to provided more
-- information as values for ifTestCode.
-- couldn't initialize MAC chip for test
dot3ErrorInitError OBJECT IDENTIFIER ::= { dot3Errors 1 }
-- expected data not received (or not
-- received correctly) in loopback test
dot3ErrorLoopbackError OBJECT IDENTIFIER ::= { dot3Errors 2 }
this one configures the MAC chip and runs an internal loopback check on memory, data paths, and the MAC chip logic π§ͺ it can only run while the interface is offline. afterwards, the MAC chip should get reinitialized for network operation, but the interface should stay offline. if a test fails, ifTestResult gets set to failed(7), and the two error OBJECT IDENTIFIERs give you more detail through ifTestCode: one for "couldn't initialize MAC chip for test", and one for "expected data not received (or not received correctly) in loopback test" π€
the chipset registry is the throwback section π°οΈ the doc says RFC1573 dropped the interface chipset object, so these are only kept around for backwards compatibility with pre-RFC1573 systems π«Ά
-- RFC1573 does away with the interface chipset object.
-- The following OBJECT IDENTIFIER definitions are
-- retained for purposes of backwards compatibility
-- with pre-RFC1573 systems.
-- 802.3 Hardware Chipsets
-- The object ifExtnsChipSet is provided in RFC1229 to
-- identify the MAC hardware used to communicate on an
-- interface. The following hardware chipsets are
-- provided for 802.3:
dot3ChipSets OBJECT IDENTIFIER ::= { dot3 8 }
dot3ChipSetAMD OBJECT IDENTIFIER ::= { dot3ChipSets 1 }
dot3ChipSetAMD7990 OBJECT IDENTIFIER ::= { dot3ChipSetAMD 1 }
dot3ChipSetAMD79900 OBJECT IDENTIFIER ::= { dot3ChipSetAMD 2 }
dot3ChipSetAMD79C940 OBJECT IDENTIFIER ::= { dot3ChipSetAMD 3 }
dot3ChipSetIntel OBJECT IDENTIFIER ::= { dot3ChipSets 2 }
dot3ChipSetIntel82586 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 1 }
dot3ChipSetIntel82596 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 2 }
dot3ChipSetSeeq OBJECT IDENTIFIER ::= { dot3ChipSets 3 }
dot3ChipSetSeeq8003 OBJECT IDENTIFIER ::= { dot3ChipSetSeeq 1 }
dot3ChipSetNational OBJECT IDENTIFIER ::= { dot3ChipSets 4 }
dot3ChipSetNational8390 OBJECT IDENTIFIER ::=
{ dot3ChipSetNational 1 }
dot3ChipSetNationalSonic OBJECT IDENTIFIER ::=
{ dot3ChipSetNational 2 }
dot3ChipSetFujitsu OBJECT IDENTIFIER ::= { dot3ChipSets 5 }
dot3ChipSetFujitsu86950 OBJECT IDENTIFIER ::=
{ dot3ChipSetFujitsu 1 }
dot3ChipSetDigital OBJECT IDENTIFIER ::= { dot3ChipSets 6 }
dot3ChipSetDigitalDC21040 OBJECT IDENTIFIER ::=
{ dot3ChipSetDigital 1 }
-- For those chipsets not represented above, OBJECT IDENTIFIER
-- assignment is required in other documentation, e.g., assignment
-- within that part of the registration tree delegated to
-- individual enterprises (see RFC1155).
so the older chipsets each get their own OBJECT IDENTIFIER, grouped by vendor: AMD, Intel, Seeq, National, Fujitsu, and Digital π anything that isn't listed here needs its OBJECT IDENTIFIER assigned somewhere else in the docs, like in the part of the registration tree that's delegated to individual enterprises (see RFC1155) π
Last bit of the MIB: the conformance info, which is how the whole module gets its groups and compliance statements β¨
-- conformance information
etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 }
etherGroups OBJECT IDENTIFIER ::= { etherConformance 1 }
etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 }
-- compliance statements
etherCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for SNMPv2 entities which
have ethernet-like network interfaces."
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 }
-- units of conformance
etherStatsGroup OBJECT-GROUP
OBJECTS { dot3StatsIndex, dot3StatsAlignmentErrors,
dot3StatsFCSErrors,
dot3StatsSingleCollisionFrames,
dot3StatsMultipleCollisionFrames,
dot3StatsSQETestErrors,
dot3StatsDeferredTransmissions,
dot3StatsLateCollisions,
dot3StatsExcessiveCollisions,
dot3StatsInternalMacTransmitErrors,
dot3StatsCarrierSenseErrors,
dot3StatsFrameTooLongs,
dot3StatsInternalMacReceiveErrors,
dot3StatsEtherChipSet}
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to all ethernet-like network interfaces."
::= { etherGroups 1 }
etherCollisionTableGroup OBJECT-GROUP
OBJECTS { dot3CollCount, dot3CollFrequencies }
STATUS current
DESCRIPTION
"A collection of objects providing a histogram
of packets successfully transmitted after
experiencing exactly N collisions."
::= { etherGroups 2 }
END
the compliance stuff is where the groups get their names and rules: etherStatsGroup is the mandatory one, with all the stats objects, and etherCollisionTableGroup is the optional collision histogram one π it's the bit that tells implementers what they've signed up for π
6. Acknowledgements π«Ά
This doc was produced by the Ethernet MIB Working Group. π
It's based on the Proposed Standard Ethernet MIB, RFC 1284 [14], which Jihn Cook of Chipcom edited. The Ethernet MIB Working Group collected real implementation experience with the variables in RFC 1284 and used that info to build this revised MIB π₯
RFC 1284 was itself based on a doc Frank Kastenholz of Interlan wrote, titled IEEE 802.3 Layer Management Draft M compatible MIB for TCP/IP Networks [10]. This one got a modest makeover, first by the SNMP Working Group and then by the Transmission Working Group, so it matches the current conventions for defining MIB objects π James Davin of the MIT Laboratory for Computer Science and Keith McCloghrie of Hughes LAN Systems helped with later drafts. Marshall Rose of Performance Systems International, Inc. turned it into its current concise format β¨ Anil Rijsinghani of DEC wrote text that describes the TDR test more adequately π¦
Thanks to Frank Kastenholz of Interlan and Louis Steinberg of IBM for their experimentation! π
7. References π§Ύ
okay so these are the receipts π§Ύ every single source this doc leans on, and I'm keeping every detail because citations are sacred bestie π«Ά
- [1] Cerf, V., "IAB Recommendations for the Development of Internet Network Management Standards", RFC 1052, NRI, April 1988.
- [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review Group," RFC 1109, NRI, August 1989.
- [3] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", STD 16, RFC 1155, Performance Systems International, Hughes LAN Systems, May 1990.
- [4] McCloghrie K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1156, Hughes LAN Systems, Performance Systems International, May 1990.
- [5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, SNMP Research, Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990.
- [6] McCloghrie K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets", STD 17, RFC 1213, Performance Systems International, March 1991.
- [7] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization, International Standard 8824, December 1987.
- [8] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization, International Standard 8825, December 1987.
- [9] IEEE, IEEE 802.3 Layer Management, November 1988.
- [10] 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. - [11] McCloghrie, K., Editor, "Extensions to the Generic-Interface MIB, RFC 1229, Hughes LAN Systems", Inc., May 1991.
- [12] IEEE, Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, ANSI/IEEE Std 802.3-1985.
- [13] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", STD 16, RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.
- [14] Cook, J., "Definitions of Managed Objects for Ethernet-Like Interface Types", RFC 1284, Chipcom Corporation, December 1991.
- [15] Kastenholz, F., "Definitions of Managed Objects for the Ethernet-like Interface Types", RFC 1398, FTP Software, Inc., January 1993.
- [16] Case, J., McCloghrie, K. Rose, M, and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1442, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.
- [17] Davin, J., and K. McCloghrie, "Administrative Model for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1445, Trusted Information Systems, Hughes LAN Systems, April 1993.
- [18] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1448, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.
- [19] McCloghrie, K., and F. Kastenholz, "Evolution of the Interfaces Group of MIB-II RFC 1573", Hughes LAN Systems, FTP Software, January 1994.
8. Security Considerations π
okay this one is short but it's SERIOUS bestie π the memo itself says it plainly:
Security issues are not discussed in this memo. π
so no security guidance lives in this doc, full stop. please don't go assuming anything about security from what's here π
9. Author's Address π
and here's who wrote it π Frank Kastenholz from FTP Software, Inc. (you can reach him at the details below):
Frank Kastenholz
FTP Software, Inc.
2 High Street
North Andover, Mass, USA 01845
Phone: 508-685-4000
EMail: kasten@ftp.com
that's the whole doc, bestie πβ¨ you did it π
π¦ where this page comes from
- ietf: rfc1650 1994-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms