RFC 1231
IEEE 802.5 Token Ring MIB
RFC 1231: IEEE 802.5 Token Ring MIB π
okay so this is RFC 1231 (Request for Comments: 1231), and it's called IEEE 802.5 Token Ring MIB π It came out of the Network Working Group in May 1991 β¨ Three authors wrote it: K. McCloghrie from Hughes LAN Systems, Inc., R. Fox from Synoptics, Inc., and E. Decker from cisco Systems, Inc. π«Ά The Status section calls it an IAB standards track protocol, and the header doesn't list anything it obsoletes or updates, so no drama there π
Status of This Memo β¨
so this memo defines a MIB for 805.5 networks to use with the SNMP protocol π§ It's a product of the Transmission Working Group of the Internet Engineering Task Force (IETF) π This RFC specifies an IAB standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements π₯ For the standardization state and status of this protocol, check the current edition of the "IAB Official Protocol Standards" π Distribution of this memo is unlimited πΈ
Table of Contents π
1. Abstract .............................................. 1
2. The Network Management Framework....................... 2
3. Objects ............................................... 2
3.1 Format of Definitions ............................... 3
4. Overview .............................................. 3
4.1 Scope of Definitions ................................ 3
4.2 Textual Conventions ................................. 3
5. Definitions ........................................... 4
6. Acknowledgements ...................................... 21
7. References ............................................ 22
8. Security Considerations................................ 23
9. Authors' Addresses..................................... 23
1. Abstract π¦
okay so this memo defines an experimental piece of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets π Specifically, it defines managed objects for managing subnetworks that use the IEEE 802.5 Token Ring technology from 802.5 Token Ring Access Method and Physical Layer Specifications, IEEE Standard 802.5-1989 π
2. The Network Management Framework π
the Internet-standard Network Management Framework is made up of three components β¨
- RFC 1155 defines the SMI, which covers the mechanisms for describing and naming objects for management purposes. RFC 1212 gives a more concise description mechanism, and it's totally consistent with the SMI π§
- RFC 1156 defines MIB-I, the core set of managed objects for the Internet suite of protocols. RFC 1213 defines MIB-II, which evolved from MIB-I thanks to implementation experience and new operational requirements π
- RFC 1157 defines SNMP, the protocol used for network access to managed objects π‘
the Framework also lets people define new objects for experimenting and evaluating stuff π§ͺ
3. Objects πΈ
managed objects get accessed through a virtual information store called the Management Information Base, or MIB ποΈ Objects in the MIB are defined using a subset of Abstract Syntax Notation One (ASN.1) [7] that the SMI defines π Each object has a name, a syntax, and an encoding. The name is an object identifier, an administratively assigned name that specifies an object type. The object type plus an object instance uniquely identifies one specific instantiation of the object π For human convenience, we often use a textual string, called the OBJECT DESCRIPTOR, to refer to the object type too π«Ά
the syntax of an object type defines the abstract data structure for that object type, and it uses ASN.1 for this purpose. The SMI [3] deliberately restricts which ASN.1 constructs can be used, and that's explicitly done for simplicity π
the encoding of an object type is basically how that object type gets represented using its syntax. Tied right into the idea of syntax and encoding is how the object type is represented when it's sent over the network π
the SMI specifies using the basic encoding rules of ASN.1 [8], with the extra requirements that SNMP imposes π₯
3.1. Format of Definitions β¨
Section 5 contains the specification of all object types in this MIB module π The object types are defined using the conventions from the SMI, as amended by the extensions specified in [9,10] π
4. Overview π§
this memo defines three tables, and they're the main event π
- 802.5 Interface Table: state and parameter info that's specific to 802.5 interfaces
- 802.5 Statistics Table: 802.5 interface statistics
- 802.5 Timer Table: the values of 802.5-defined timers
every managed system gets one entry in the 802.5 Interface Table and one entry in the 802.5 Statistics Table for each of its 802.5 interfaces β¨ Implementation of the 802.5 Timer Table is optional π¦
this memo also defines OBJECT IDENTIFIERs. Some identify 802.5 tests, for use with the ifExtnsTestTable defined in [11], and some identify Token Ring interface Chip Sets, for use with the ifExtnsChipSet object defined in [11] π
4.1. Scope of Definitions π
all the objects in this memo are registered in one subtree inside the experimental namespace [3], and they're for use with every interface that follows the IEEE 802.5 Token Ring Access Method and Physical Layer Specifications [10] π«Ά Right now, that means interfaces where the ifType variable in the Internet-standard MIB [4,6] has the value:
iso88025-tokenRing(9)
For these interfaces, the ifSpecific variable in MIB-II [6] has the OBJECT IDENTIFIER value:
dot5 OBJECT IDENTIFIER ::= { experimental 4 }
as defined below π
4.2. Textual Conventions π
okay so a new datatype, MacAddress, is introduced here as a textual convention π This convention has NO effect on the syntax or the semantics of any managed object. Objects that use it are always encoded using the rules that define their primitive type π§ So no changes to the SMI or SNMP are needed to make room for it. It's only adopted for the convenience of readers π€
5. Definitions π
ok the main event π Here's the MIB module itself, character for character:
RFC1231-MIB DEFINITIONS ::= BEGIN
-- IEEE 802.5 Token Ring MIB
IMPORTS
experimental
FROM RFC1155-SMI
OBJECT-TYPE
FROM RFC-1212;
-- This MIB Module uses the extended OBJECT-TYPE macro as
-- defined in [9].
dot5 OBJECT IDENTIFIER ::= { experimental 4 }
-- All representations of MAC addresses in this MIB Module
-- use, as a textual convention (i.e. this convention does
-- not affect their encoding), the data type:
MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet
-- address in the
-- defined by IEEE 802.1a, i.e., as if it were transmitted
-- least significant bit first, even though 802.5 (in
-- contrast to other 802.x protocols) requires MAC addresses
-- to be transmitted most significant bit first.
--
-- 16-bit addresses, if needed, are represented by setting
-- their upper 4 octets to all 0's, i.e., AAFF would be
-- represented as 00000000AAFF.
-- The Interface Table
-- This table contains state and parameter information which
-- is specific to 802.5 interfaces. It is mandatory that
-- systems having 802.5 interfaces implement this table in
-- addition to the generic interfaces table [4,6] and its
-- generic extensions [11].
dot5Table OBJECT-TYPE
SYNTAX SEQUENCE OF Dot5Entry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table contains Token Ring interface
parameters and state variables, one entry
per 802.5 interface."
::= { dot5 1 }
dot5Entry OBJECT-TYPE
SYNTAX Dot5Entry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of Token Ring status and parameter
values for an 802.5 interface."
INDEX { dot5IfIndex }
::= { dot5Table 1 }
Dot5Entry
::= SEQUENCE {
dot5IfIndex
INTEGER,
dot5Commands
INTEGER,
dot5RingStatus
INTEGER,
dot5RingState
INTEGER,
dot5RingOpenStatus
INTEGER,
dot5RingSpeed
INTEGER,
dot5UpStream
MacAddress,
dot5ActMonParticipate
INTEGER,
dot5Functional
MacAddress
}
dot5IfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this object identifies the
802.5 interface for which this entry
contains management information. The
value of this object for a particular
interface has the same value as the
ifIndex object, defined in [4,6],
for the same interface."
::= { dot5Entry 1 }
to be continued in part 2 π«Άβ¨
okay so we're picking right back up in the token ring stuff π and dot5Commands is giving remote control energy πΉοΈ. You tell the station to open, reset, or close, and no-op is the chill option that does nothing. Reading it back always gives no-op, periodt π
dot5Commands OBJECT-TYPE
SYNTAX INTEGER {
no-op(1),
open(2),
reset(3),
close(4)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"When this object is set to the value of
open(2), the station should go into the
open state. The progress and success of
the open is given by the values of the
objects dot5RingState and
dot5RingOpenStatus.
When this object is set to the value
of reset(3), then the station should do
a reset. On a reset, all MIB counters
should retain their values, if possible.
Other side affects are dependent on the
hardware chip set.
When this object is set to the value
of close(4), the station should go into
the stopped state by removing itself
from the ring.
Setting this object to a value of
no-op(1) has no effect.
When read, this object always has a
value of no-op(1)."
::= { dot5Entry 2 }
dot5RingStatus is the diagnostic vibe check π. It's a sum of values, one for each condition that's currently happening, so you add up everything that applies. 0 means no problems, and 131072 means no status yet because the open hasn't finished. Before the open is done, this is the value you'll see. It's also the object to watch when the station keeps flickering in and out of the ring π«Ά
dot5RingStatus OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current interface status which can
be used to diagnose fluctuating problems
that can occur on token rings, after a
station has successfully been added to
the ring.
Before an open is completed, this
object has the value for the 'no status'
condition. The dot5RingState and
dot5RingOpenStatus objects provide for
debugging problems when the station
can not even enter the ring.
The object's value is a sum of
values, one for each currently applicable
condition. The following values are
defined for various conditions:
0 = No Problems detected
32 = Ring Recovery
64 = Single Station
256 = Remove Received
512 = reserved
1024 = Auto-Removal Error
2048 = Lobe Wire Fault
4096 = Transmit Beacon
8192 = Soft Error
16384 = Hard Error
32768 = Signal Loss
131072 = no status, open not completed."
::= { dot5Entry 3 }
dot5RingState is the station's entering-or-leaving-the-ring status πΈ. The six options are opened, closed, opening, closing, openFailure, and ringFailure, so you can see if it's mid-entry, mid-exit, or stuck somewhere sad.
dot5RingState OBJECT-TYPE
SYNTAX INTEGER {
opened(1),
closed(2),
opening(3),
closing(4),
openFailure(5),
ringFailure(6)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current interface state with respect
to entering or leaving the ring."
::= { dot5Entry 4 }
dot5RingOpenStatus is the story of the station's most recent attempt to get in π. It tells you whether it worked, or the reason it flopped. noOpen(1) means no open was tried at all, and open(11) means the last open was successful.
dot5RingOpenStatus OBJECT-TYPE
SYNTAX INTEGER {
noOpen(1), -- no open attempted
badParam(2),
lobeFailed(3),
signalLoss(4),
insertionTimeout(5),
ringFailed(6),
beaconing(7),
duplicateMAC(8),
requestFailed(9),
removeReceived(10),
open(11) -- last open successful
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object indicates the success, or the
reason for failure, of the station's most
recent attempt to enter the ring."
::= { dot5Entry 5 }
dot5RingSpeed is the ring's bandwidth π¦. It can be unknown, one megabit, four megabit, or sixteen megabit, and it's read-write, so you can set it too.
dot5RingSpeed OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
oneMegabit(2),
fourMegabit(3),
sixteenMegabit(4)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The ring's bandwidth."
::= { dot5Entry 6 }
dot5UpStream gives you the MAC address of the upstream neighbor in the ring π. It's read-only, so think of it as the station's little gossip source for who's right before it.
dot5UpStream OBJECT-TYPE
SYNTAX MacAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The MAC-address of the up stream neighbor
station in the ring."
::= { dot5Entry 7 }
dot5ActMonParticipate is a yes-or-no for joining the active monitor selection process π. true(1) means the interface takes part, and false(2) means it sits it out. Heads up, changing it might not do anything until the interface is opened again, so don't panic if nothing happens right away π
dot5ActMonParticipate OBJECT-TYPE
SYNTAX INTEGER {
true(1),
false(2)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"If this object has a value of true(1) then
this interface will participate in the
active monitor selection process. If the
value is false(2) then it will not.
Setting this object might not have an
effect until the next time the interface
is opened."
::= { dot5Entry 8 }
dot5Functional is a bit mask of all the Token Ring functional addresses this interface will accept frames for π. It's read-write, so you can tune which functional addresses it listens to.
dot5Functional OBJECT-TYPE
SYNTAX MacAddress
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The bit mask of all Token Ring functional
addresses for which this interface will
accept frames."
::= { dot5Entry 9 }
-- The Statistics Table
-- This table contains statistics and error counter which are
-- specific to 802.5 interfaces. It is mandatory that systems
-- having 802.5 interfaces implement this table.
dot5StatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot5StatsEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A table containing Token Ring statistics,
one entry per 802.5 interface.
All the statistics are defined using
the syntax Counter as 32-bit wrap around
counters. Thus, if an interface's
hardware maintains these statistics in
16-bit counters, then the agent must read
the hardware's counters frequently enough
to prevent loss of significance, in order
to maintain 32-bit counters in software."
::= { dot5 2 }
dot5StatsEntry OBJECT-TYPE
SYNTAX Dot5StatsEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An entry contains the 802.5 statistics
for a particular interface."
INDEX { dot5StatsIfIndex }
::= { dot5StatsTable 1 }
The statistics table is the error-counter hall of fame π. It's mandatory for any system with 802.5 interfaces, no cap π§ The counters are 32-bit wrap-arounds, so if the hardware only has 16-bit counters, the agent has to keep reading them often enough to avoid losing significance while it builds the 32-bit versions in software. One row goes in per interface, and dot5StatsIfIndex is the key.
Dot5StatsEntry
::= SEQUENCE {
dot5StatsIfIndex
INTEGER,
dot5StatsLineErrors
Counter,
dot5StatsBurstErrors
Counter,
dot5StatsACErrors
Counter,
dot5StatsAbortTransErrors
Counter,
dot5StatsInternalErrors
Counter,
dot5StatsLostFrameErrors
Counter,
dot5StatsReceiveCongestions
Counter,
dot5StatsFrameCopiedErrors
Counter,
dot5StatsTokenErrors
Counter,
dot5StatsSoftErrors
Counter,
dot5StatsHardErrors
Counter,
dot5StatsSignalLoss
Counter,
dot5StatsTransmitBeacons
Counter,
dot5StatsRecoverys
Counter,
dot5StatsLobeWires
Counter,
dot5StatsRemoves
Counter,
dot5StatsSingles
Counter,
dot5StatsFreqErrors
Counter
}
dot5StatsIfIndex is the row's ID card π It holds the same value as the ifIndex for the same interface, which is defined in [4,6].
dot5StatsIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this object identifies the
802.5 interface for which this entry
contains management information. The
value of this object for a particular
interface has the same value as the
ifIndex object, defined in [4,6], for
the same interface."
::= { dot5StatsEntry 1 }
Okay bestie, this part is all about the Token Ring error and event counters, the dot5Stats ones that tally up everything that goes sideways on the ring π§΅π. We're also starting the timer table at the end π°οΈβ¨
dot5StatsLineErrors is the counter for when a frame or token gets copied or repeated by a station, the E bit is zero, and one of two things happens: there's a J or K non-data bit between SD and ED, or there's an FCS error in the frame π«
dot5StatsLineErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a frame
or token is copied or repeated by a
station, the E bit is zero in the frame
or token and one of the following
conditions exists: 1) there is a
non-data bit (J or K bit) between the SD
and the ED of the frame or token, or
2) there is an FCS error in the frame."
::= { dot5StatsEntry 2 }
dot5StatsBurstErrors ticks up when a station notices no transitions for five half-bit timers. That's the burst-five error, and it's giving signal drama π
dot5StatsBurstErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
detects the absence of transitions for five
half-bit timers (burst-five error)."
::= { dot5StatsEntry 3 }
dot5StatsACErrors is kind of a "this station can't set its AC bits" confession π. It goes up when a station gets an AMP or SMP frame where A and C are both 0, and then gets another SMP frame with A and C both 0 without an AMP frame coming first π
dot5StatsACErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
receives an AMP or SMP frame in which A is
equal to C is equal to 0, and then receives
another SMP frame with A is equal to C is
equal to 0 without first receiving an AMP
frame. It denotes a station that cannot set
the AC bits properly."
::= { dot5StatsEntry 4 }
dot5StatsAbortTransErrors counts the times a station sends an abort delimiter while it's already transmitting. Honestly, a station doing two things at once and getting caught π
dot5StatsAbortTransErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
transmits an abort delimiter while
transmitting."
::= { dot5StatsEntry 5 }
dot5StatsInternalErrors goes up whenever a station recognizes an internal error. Simple, but it still hits different π§
dot5StatsInternalErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
recognizes an internal error."
::= { dot5StatsEntry 6 }
dot5StatsLostFrameErrors is the TRR timer story π©. It increments when a station is transmitting and its TRR timer expires. That happens when a transmitting station in strip mode doesn't get the trailer of its frame back before the TRR timer goes off. Major "I left the room and the timer didn't wait" energy β°
dot5StatsLostFrameErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
is transmitting and its TRR timer expires.
This condition denotes a condition where a
transmitting station in strip mode does not
receive the trailer of the frame before the
TRR timer goes off."
::= { dot5StatsEntry 7 }
dot5StatsReceiveCongestions tracks the moment a station gets a frame addressed to its own specific address but has no buffer space left to hold it. That's a congested station, bestie, and it needs a little breather π
dot5StatsReceiveCongestions OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
recognizes a frame addressed to its
specific address, but has no available
buffer space indicating that the station
is congested."
::= { dot5StatsEntry 8 }
dot5StatsFrameCopiedErrors is for frames addressed to a station's specific address where the FS field A bits are set to 1. That signals a possible line hit or a duplicate address, so someone's got a twin on the ring π―ββοΈ
dot5StatsFrameCopiedErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
recognizes a frame addressed to its
specific address and detects that the FS
field A bits are set to 1 indicating a
possible line hit or duplicate address."
::= { dot5StatsEntry 9 }
dot5StatsTokenErrors goes up when a station acting as the active monitor recognizes an error condition that needs a token transmitted. The active monitor is the one keeping the whole ring in check, so this is its main character moment π
dot5StatsTokenErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This counter is incremented when a station
acting as the active monitor recognizes an
error condition that needs a token
transmitted."
::= { dot5StatsEntry 10 }
dot5StatsSoftErrors is the count of Soft Errors this interface has detected. It lines up exactly with the number of Report Error MAC frames it has transmitted. Soft Errors are the ones the MAC layer protocols can recover from on their own, so they're the "oops, I've got this" errors π©Ή
dot5StatsSoftErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of Soft Errors the interface
has detected. It directly corresponds to
the number of Report Error MAC frames
that this interface has transmitted.
Soft Errors are those which are
recoverable by the MAC layer protocols."
::= { dot5StatsEntry 11 }
dot5StatsHardErrors is the serious one π¨. It counts how many times the interface has detected an immediately recoverable fatal error, which is the same as the number of times it's either transmitting or receiving beacon MAC frames. Fatal but recoverable is a whole mood, honestly π
dot5StatsHardErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times this interface has
detected an immediately recoverable
fatal error. It denotes the number of
times this interface is either
transmitting or receiving beacon MAC
frames."
::= { dot5StatsEntry 12 }
dot5StatsSignalLoss counts the times the interface has detected a loss of signal from the ring. The ring went quiet on it π‘
dot5StatsSignalLoss OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times this interface has
detected the loss of signal condition from
the ring."
::= { dot5StatsEntry 13 }
dot5StatsTransmitBeacons is simple: it counts how many times this interface has transmitted a beacon frame π£
dot5StatsTransmitBeacons OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times this interface has
transmitted a beacon frame."
::= { dot5StatsEntry 14 }
dot5StatsRecoverys counts Claim Token MAC frames that get received or transmitted after the interface has received a Ring Purge MAC frame. Each one is a sign that the ring got purged and is being brought back to normal operation. Glow-up arc, bestie πΈ
dot5StatsRecoverys OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of Claim Token MAC frames
received or transmitted after the interface
has received a Ring Purge MAC frame. This
counter signifies the number of times the
ring has been purged and is being recovered
back into a normal operating state."
::= { dot5StatsEntry 15 }
dot5StatsLobeWires goes up when the interface detects an open or short circuit in the lobe data path. When that happens the adapter gets closed, and dot5RingState shows that condition π
dot5StatsLobeWires OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times the interface has
detected an open or short circuit in the
lobe data path. The adapter will be closed
and dot5RingState will signify this
condition."
::= { dot5StatsEntry 16 }
dot5StatsRemoves counts the times the interface has received a Remove Ring Station MAC frame request. Once that frame arrives, the interface enters the close state and dot5RingState shows it. Being removed from the party, iykyk πͺ
dot5StatsRemoves OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times the interface has
received a Remove Ring Station MAC frame
request. When this frame is received
the interface will enter the close state
and dot5RingState will signify this
condition."
::= { dot5StatsEntry 17 }
dot5StatsSingles counts the times the interface has sensed that it's the only station on the ring. That happens if it's the first one up on a ring, or if there's a hardware problem. Being alone is either a vibe or a crisis π₯²
dot5StatsSingles OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times the interface has
sensed that it is the only station on the
ring. This will happen if the interface
is the first one up on a ring, or if
there is a hardware problem."
::= { dot5StatsEntry 18 }
dot5StatsFreqErrors is the optional one π. It counts the times the interface has detected that the frequency of the incoming signal is off from the expected frequency by more than the IEEE 802.5 standard allows, which you can read about in chapter 7 of [10]. It's marked optional, so an implementation can skip it and still be totally valid β¨
dot5StatsFreqErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS optional
DESCRIPTION
"The number of times the interface has
detected that the frequency of the
incoming signal differs from the expected
frequency by more than that specified by
the IEEE 802.5 standard, see chapter 7
in [10]."
::= { dot5StatsEntry 19 }
Time for the timer table π°οΈπ This group holds the values of the timers defined in [10] for 802.5 interfaces. Systems with 802.5 interfaces may implement this group, and the text says that implementing it is optional for them π«Ά
-- The Timer Table
-- This group contains the values of the timers defined in
-- [10] for 802.5 interfaces. It is optional that systems
-- having 802.5 interfaces implement this group.
dot5TimerTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot5TimerEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table contains Token Ring interface
timer values, one entry per 802.5
interface."
::= { dot5 5 }
dot5TimerEntry OBJECT-TYPE
SYNTAX Dot5TimerEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of Token Ring timer values for an
802.5 interface."
INDEX { dot5TimerIfIndex }
::= { dot5TimerTable 1 }
okay so we're back in the MIB, and the first thing on the menu is the timer table row shape π each one of these is an INTEGER, and the rest of this section is basically the ring's timers getting their own little labels π
Dot5TimerEntry
::= SEQUENCE {
dot5TimerIfIndex
INTEGER,
dot5TimerReturnRepeat
INTEGER,
dot5TimerHolding
INTEGER,
dot5TimerQueuePDU
INTEGER,
dot5TimerValidTransmit
INTEGER,
dot5TimerNoToken
INTEGER,
dot5TimerActiveMon
INTEGER,
dot5TimerStandbyMon
INTEGER,
dot5TimerErrorReport
INTEGER,
dot5TimerBeaconTransmit
INTEGER,
dot5TimerBeaconReceive
INTEGER
}
ok first up is dot5TimerIfIndex π¦ it's the bestie key that lines the row up with the interface. it has the same value as the ifIndex object from [4,6] for that same interface, so it's giving matchmaker energy π
dot5TimerIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this object identifies the
802.5 interface for which this entry
contains timer values. The value of
this object for a particular interface
has the same value as the ifIndex
object, defined in [4,6], for the same
interface."
::= { dot5TimerEntry 1 }
next is dot5TimerReturnRepeat β±οΈ this one is the timeout that makes sure the interface gets back to Repeat State, counted in units of 100 micro-seconds πΈ it should be bigger than the maximum ring latency, and the doc also encourages implementors to offer read-write access if that's possible and useful for their system, while keeping the dangers of writable timers in mind π
dot5TimerReturnRepeat OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value used to ensure the
interface will return to Repeat State, in
units of 100 micro-seconds. The value
should be greater than the maximum ring
latency.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 2 }
dot5TimerHolding is next π it's the maximum amount of time a station is allowed to keep transmitting frames after it grabs a token, measured in 100 micro-second units. same read-write encouragement and same "be careful with writable timers" warning as the last one π
dot5TimerHolding OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Maximum period of time a station is
permitted to transmit frames after capturing
a token, in units of 100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 3 }
dot5TimerQueuePDU π§ this is the timeout for enqueuing an SMP PDU after an AMP or SMP frame shows up with the A and C bits both equal to 0. again in 100 micro-second units, and the same read-write note sits at the bottom. (there's a little blank line in the middle of the note, so don't be confused by that, it's just how the doc is formatted π)
dot5TimerQueuePDU OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value for enqueuing of an SMP
PDU after reception of an AMP or SMP
frame in which the A and C bits were
equal to 0, in units of 100
micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 4 }
dot5TimerValidTransmit π this is the active monitor's timeout for spotting the absence of valid transmissions, in 100 micro-second units. the same read-write encouragement and warning come along for the ride β¨
dot5TimerValidTransmit OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value used by the active
monitor to detect the absence of valid
transmissions, in units of 100
micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 5 }
dot5TimerNoToken is the one that helps the ring recover from various error situations, and it's a whole vibe π the doc says that if N is the maximum number of stations on the ring, this timer is normally dot5TimerReturnRepeat + N*dot5TimerHolding. it also cites [9] for the error-recovery stuff, so that's where you'd go for the deeper dive π
dot5TimerNoToken OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value used to recover from
various-related error situations [9].
If N is the maximum number of stations on
the ring, the value of this timer is
normally:
dot5TimerReturnRepeat + N*dot5TimerHolding.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 6 }
dot5TimerActiveMon π₯ this is the active monitor's timeout for stimulating the enqueuing of an AMP PDU for transmission, in 100 micro-second units. read-write encouragement + writable-timer warning, as usual π«Ά
dot5TimerActiveMon OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value used by the active
monitor to stimulate the enqueuing of an
AMP PDU for transmission, in units of
100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 7 }
dot5TimerStandbyMon π this one belongs to the stand-by monitors. it makes sure there's an active monitor on the ring and helps detect a continuous stream of tokens, measured in 100 micro-second units. same deal with the read-write note β¨
dot5TimerStandbyMon OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value used by the stand-by
monitors to ensure that there is an active
monitor on the ring and to detect a
continuous stream of tokens, in units of
100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 8 }
dot5TimerErrorReport π£ this is the timeout that decides how often a station has to send a Report Error MAC frame to report its error counters, in 100 micro-second units. read-write note, same as always π
dot5TimerErrorReport OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value which determines how
often a station shall send a Report Error
MAC frame to report its error counters,
in units of 100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 9 }
dot5TimerBeaconTransmit π¨ this one covers how long a station stays in the state of transmitting Beacon frames before it enters the Bypass state, again in 100 micro-second units. the read-write encouragement and the warning are still here too π₯Ή
dot5TimerBeaconTransmit OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value which determines how
long a station shall remain in the state
of transmitting Beacon frames before
entering the Bypass state, in units of
100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 10 }
last timer in the row is dot5TimerBeaconReceive π¦ this is how long a station keeps receiving Beacon frames from its downstream neighbor before it enters the Bypass state, in 100 micro-second units. and yep, the read-write note is back for one more round π
dot5TimerBeaconReceive OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The time-out value which determines how
long a station shall receive Beacon
frames from its downstream neighbor
before entering the Bypass state, in
units of 100 micro-seconds.
Implementors are encouraged to provide
read-write access to this object if that is
possible/useful in their system, but giving
due consideration to the dangers of
write-able timers."
::= { dot5TimerEntry 11 }
-- 802.5 Interface Tests
dot5Tests OBJECT IDENTIFIER ::= { dot5 3 }
-- The extensions to the interfaces table proposed in [11]
-- define a table object, ifExtnsTestTable, through which a
-- network manager can instruct an agent to test an interface
-- for various faults. A test to be performed is identified
-- (as the value of ifExtnsTestType) via an OBJECT IDENTIFIER.
--
-- The Full-Duplex Loop Back Test is a common test, defined
-- in [11] as:
--
-- testFullDuplexLoopBack
--
-- Invoking this test on a 802.5 interface causes the
-- interface to check the path from memory through the
-- chip set's internal logic and back to memory, thus
-- checking the proper functioning of the systems's
-- interface to the chip set.
-- The Insert Function test is defined by:
testInsertFunc OBJECT IDENTIFIER ::= { dot5Tests 1 }
-- Invoking this test causes the station to test the insert
-- ring logic of the hardware if the station's lobe media
-- cable is connected to a wiring concentrator. Note that
-- this command inserts the station into the network, and
-- thus, could cause problems if the station is connected
-- to a operational network.
-- 802.5 Hardware Chip Sets
dot5ChipSets OBJECT IDENTIFIER ::= { dot5 4 }
-- The extensions to the interfaces table proposed in [11]
-- define an object, ifExtnsChipSet, with the syntax of
-- OBJECT IDENTIFIER, to identify the hardware chip set in
-- use by an interface. That definition specifies just
-- one applicable object identifier:
--
-- unknownChipSet
--
-- for use as the value of ifExtnsChipSet when the specific
-- chip set is unknown.
--
-- This MIB defines the following for use as values of
-- ifExtnsChipSet:
-- IBM 16/4 Mb/s
chipSetIBM16 OBJECT IDENTIFIER ::= { dot5ChipSets 1 }
-- TI 4Mb/s
chipSetTItms380 OBJECT IDENTIFIER ::= { dot5ChipSets 2 }
-- TI 16/4 Mb/s
chipSetTItms380c16 OBJECT IDENTIFIER ::= { dot5ChipSets 3 }
END
6. Acknowledgements π«Ά
Okay bestie, this whole doc was cooked up under the IETF's Transmission Working Group π¦, and these three legends gave comments that got acknowledged π:
- Tom Benkart, Advanced Computer Communications
- Stan Froyd, Advanced Computer Communications
- Marshall T. Rose, Performance Systems International, Inc.
7. References π
Here's the full reading list, every single source, no cap π :
- [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", 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 (SNMP), 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", 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] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.
- [10] Token Ring Access Method and Physical Layer Specifications, Institute of Electrical and Electronic Engineers, IEEE Standard 802.5-1989, 1989.
- [11] McCloghrie, K., Editor, "Extensions to the Generic-Interface MIB", RFC 1229, Hughes LAN Systems, May 1991.
8. Security Considerations π
Okay, real talk, this section is short but it's a big deal. Security issues are not discussed in this memo. π So if you came here looking for the security tea, it's not in this doc, bestie. Go look somewhere else for that. π
9. Authors' Addresses π
Meet the squad behind the doc β¨:
Keith McCloghrie, Hughes LAN Systems, Inc., 1225 Charleston Road, Mountain View, CA 94043. Phone: (415) 966-7934. EMail: kzm@hls.com
Richard Fox, Synoptics, Inc., 4401 Great America Pkwy, PO Box 58185, Santa Clara, Cal. 95052. Phone: (408) 764-1372. EMail: rfox@synoptics.com
Eric Decker, cisco Systems, Inc., 1525 O'Brien Dr., Menlo Park, CA 94025. Phone: (415) 688-8241. EMail: cire@cisco.com π
π¦ where this page comes from
- ietf: rfc1231 1991-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms