RFC 1512
FDDI Management Information Base
RFC 1512: FDDI Management Information Base ๐
okay bestie, let's get into it ๐ this doc is the FDDI MIB, which is basically the instruction manual for how SNMP can manage FDDI devices ๐ฆ
- Network Working Group
- Authors: J. Case (The University of Tennesse and SNMP Research, Incorporated) and A. Rijsinghani (Digital Equipment Corporation) ๐
- Date: September 1993 ๐
- Category: Internet standards track protocol ๐ฅ
- Updates: 1285 (it doesn't list anything it obsoletes) โจ
Status of This Memo ๐ธ
so this one is an Internet standards track protocol for the whole Internet community, and it's asking for discussion and suggestions to make it better ๐ซถ for the official standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards." and distribution of this memo is unlimited, so share it with everyone ๐
Abstract ๐ง
this memo defines a chunk of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets ๐ specifically, it defines objects for managing devices that implement FDDI, based on the ANSI FDDI SMT 7.3 draft standard [8], which the X3T9.5 committee forwarded for publication ๐
Table of Contents ๐
1. The Network Management Framework ...................... 2
1.1 Object Definitions ................................... 2
1.2 Format of Definitions ................................ 2
2. Overview .............................................. 2
2.1 Textual Conventions .................................. 3
3. Changes from RFC 1285 ................................. 3
4. Object Definitions .................................... 4
4.1 The SMT Group ........................................ 6
4.2 The MAC Group ........................................ 17
4.3 The Enhanced MAC Counters Group ...................... 29
4.4 The PATH Group ....................................... 32
4.5 The PORT Group ....................................... 38
5. Acknowledgements ...................................... 48
6. References ............................................ 50
7. Security Considerations ............................... 51
8. Authors' Addresses .................................... 51
1. The Network Management Framework โจ
okay so the Internet-standard Network Management Framework is made up of three components ๐
- STD 16, RFC 1155 defines the SMI, which is the set of mechanisms used for describing and naming objects for management purposes. STD 16, RFC 1212 adds a more concise description mechanism that is totally consistent with the SMI ๐
- STD 17, RFC 1213 defines MIB-II, the core set of managed objects for the Internet suite of protocols ๐ธ
- STD 15, RFC 1157 defines SNMP, the protocol used for network access to managed objects ๐ฅ
the Framework also lets people define new objects for experimentation and evaluation ๐งช
1.1. Object Definitions ๐ฆ
managed objects get accessed through a virtual information store called the Management Information Base, or MIB ๐ objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) that the SMI defines. each object type gets named by an OBJECT IDENTIFIER, which is an administratively assigned name ๐ซถ the object type plus an object instance together uniquely identify one specific instantiation of the object โจ and because humans need nicknames, we often use a textual string called the descriptor to refer to the object type ๐
1.2. Format of Definitions ๐
Section 4 contains the specification of all object types in this MIB module ๐ง the object types are defined using the conventions in the SMI, as amended by the extensions specified in [7] ๐
2. Overview ๐ธ
this document defines the managed objects for FDDI devices that need to be accessible via the Simple Network Management Protocol (SNMP) ๐ฆ right now, that applies to this value of the ifType variable in the Internet-standard MIB:
fddi(15)
for these interfaces, the value of the ifSpecific variable in MIB-II [4] has the OBJECT IDENTIFIER value:
fddimib OBJECT IDENTIFIER ::= { fddi 73 }
the object definitions here draw heavily from related work in the ANSI X3T9.5 committee and its SMT subcommittee [8] ๐ฅ honestly, the managed objects in this document are, to the maximum extent possible, identical to the ones the ANSI committee identified ๐ each managed object's semantics should stay the same, with syntactic changes made as needed so the objects fit the Internet-standard SMI and MIB and work with SNMP โจ examples of those syntactic changes are remapping booleans to enumerated integers, remapping bit strings to octet strings, and things like that ๐ the objects were also renamed to get that compatibility ๐
these minimal syntactic changes (with no semantic changes) should let SNMP-manageable FDDI systems share instrumentation with other network management schemes, which cuts down on implementation cost ๐ translating information between network management schemes gets easier too, thanks to those shared definitions ๐
only the essential variables got kept in this document, meaning the ones marked mandatory in the ANSI specification ๐ง variables with optional status in ANSI were seen as less widely accepted, so they didn't make the cut ๐
2.1. Textual Conventions ๐
this MIB document introduces several new datatypes as textual conventions ๐ they make the document easier to read and make it simpler to compare with its ANSI counterpart โจ the textual conventions have no effect on the syntax or semantics of any managed objects ๐ซถ they're just an artifact of the explanatory method, so objects defined with them are always encoded using the rules that define the primitive type ๐ฆ which means no changes to the SMI or SNMP are needed to accommodate them ๐ฅ they're adopted purely for the convenience of readers and writers chasing the elusive goal of clear, concise, and unambiguous MIB documents ๐ธ
3. Changes from RFC 1285 ๐
the changes from RFC 1285 [2] to this document were based on the changes from ANSI SMT 6.2 to SMT 7.3, and they were so numerous that the objects in this MIB module live on a different branch of the MIB tree ๐ญ no assumptions should be made about compatibility with RFC 1285 ๐
4. Object Definitions ๐
the whole MIB module is below, and it's the actual spec, so every line matters ๐ซถ
FDDI-SMT73-MIB DEFINITIONS ::= BEGIN
IMPORTS
Counter
FROM RFC1155-SMI
OBJECT-TYPE
FROM RFC-1212;
-- This MIB module uses the extended OBJECT-TYPE macro as
-- defined in [7].
-- this is the FDDI MIB module
fddi OBJECT IDENTIFIER ::= { transmission 15 }
fddimib OBJECT IDENTIFIER ::= { fddi 73 }
-- textual conventions
FddiTimeNano ::= INTEGER (0..2147483647)
-- This data type specifies 1 nanosecond units as
-- an integer value.
--
-- NOTE: The encoding is normal integer representation, not
-- two's complement. Since this type is used for variables
-- which are encoded as TimerTwosComplement in the ANSI
-- specification, two operations need to be performed on such
-- variables to convert from ANSI form to SNMP form:
--
-- 1) Convert from two's complement to normal integer
-- representation
-- 2) Multiply by 80 to convert from 80 nsec to 1 nsec units
--
-- No resolution is lost. Moreover, the objects for which
-- this data type is used effectively do not lose any range
-- due to the lower maximum value since they do not require
-- the full range.
--
-- Example: If fddimibMACTReq had a value of 8 ms, it would
-- be stored in ANSI TimerTwosComplement format as 0xFFFE7960
-- [8 ms is 100000 in 80 nsec units, which is then converted
-- to two's complement] but be reported as 8000000 in SNMP
-- since it is encoded here as FddiTimeNano.
FddiTimeMilli ::= INTEGER (0..2147483647)
-- This data type is used for some FDDI timers. It specifies
-- time in 1 millisecond units, in normal integer
-- representation.
FddiResourceId ::= INTEGER (0..65535)
-- This data type is used to refer to an instance of a MAC,
-- PORT, or PATH Resource ID. Indexing begins
-- at 1. Zero is used to indicate the absence of a resource.
FddiSMTStationIdType ::= OCTET STRING (SIZE (8))
-- The unique identifier for the FDDI station. This is a
-- string of 8 octets, represented as X' yy yy xx xx xx xx
-- xx xx' with the low order 6 octet (xx) from a unique IEEE
-- assigned address. The high order two bits of the IEEE
-- address, the group address bit and the administration bit
-- (Universal/Local) bit should both be zero. The first two
-- octets, the yy octets, are implementor-defined.
--
-- The representation of the address portion of the station id
-- is in the IEEE (ANSI/IEEE P802.1A) canonical notation for
-- 48 bit addresses. The canonical form is a 6-octet string
-- where the first octet contains the first 8 bits of the
-- address, with the I/G(Individual/Group) address bit as the
-- least significant bit and the U/L (Universal/Local) bit
-- as the next more significant bit, and so on. Note that
-- addresses in the ANSI FDDI standard SMT frames are
-- represented in FDDI MAC order.
FddiMACLongAddressType ::= OCTET STRING (SIZE (6))
-- The representation of long MAC addresses as management
-- values is in the IEEE (ANSI/IEEE P802.1A) canonical
-- notation for 48 bit addresses. The canonical form is a
-- 6-octet string where the first octet contains the first 8
-- bits of the address, with the I/G (Individual/Group)
-- address bit as the least significant bit and the U/L
-- (Universal/Local) bit as the next more significant bit,
-- and so on. Note that the addresses in the SMT frames are
-- represented in FDDI MAC order.
-- groups in the FDDI MIB module
fddimibSMT OBJECT IDENTIFIER ::= { fddimib 1 }
fddimibMAC OBJECT IDENTIFIER ::= { fddimib 2 }
fddimibMACCounters OBJECT IDENTIFIER ::= { fddimib 3 }
fddimibPATH OBJECT IDENTIFIER ::= { fddimib 4 }
fddimibPORT OBJECT IDENTIFIER ::= { fddimib 5 }
-- the SMT group
-- Implementation of the SMT group is mandatory for all
-- systems which implement manageable FDDI subsystems.
Okay bestie, let's get into the SMT numbers ๐ฆ The first one is the count of SMT implementations on this entity, and the rule is it has to stay steady across re-initializations. Iconic consistency ๐
fddimibSMTNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of SMT implementations (regardless of
their current state) on this network management
application entity. The value for this variable
must remain constant at least from one re-
initialization of the entity's network management
system to the next re-initialization."
::= { fddimibSMT 1 }
-- the SMT table
fddimibSMTTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibSMTEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of SMT entries. The number of entries
shall not exceed the value of fddimibSMTNumber."
::= { fddimibSMT 2 }
fddimibSMTEntry OBJECT-TYPE
SYNTAX FddimibSMTEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An SMT entry containing information common to a
given SMT."
INDEX { fddimibSMTIndex }
::= { fddimibSMTTable 1 }
FddimibSMTEntry ::=
SEQUENCE {
fddimibSMTIndex
INTEGER,
fddimibSMTStationId
FddiSMTStationIdType,
fddimibSMTOpVersionId
INTEGER,
fddimibSMTHiVersionId
INTEGER,
fddimibSMTLoVersionId
INTEGER,
fddimibSMTUserData
OCTET STRING,
fddimibSMTMIBVersionId
INTEGER,
fddimibSMTMACCts
INTEGER,
fddimibSMTNonMasterCts
INTEGER,
fddimibSMTMasterCts
INTEGER,
fddimibSMTAvailablePaths
INTEGER,
fddimibSMTConfigCapabilities
INTEGER,
fddimibSMTConfigPolicy
INTEGER,
fddimibSMTConnectionPolicy
INTEGER,
fddimibSMTTNotify
INTEGER,
fddimibSMTStatRptPolicy
INTEGER,
fddimibSMTTraceMaxExpiration
FddiTimeMilli,
fddimibSMTBypassPresent
INTEGER,
fddimibSMTECMState
INTEGER,
fddimibSMTCFState
INTEGER,
fddimibSMTRemoteDisconnectFlag
INTEGER,
fddimibSMTStationStatus
INTEGER,
fddimibSMTPeerWrapFlag
INTEGER,
fddimibSMTTimeStamp
FddiTimeMilli,
fddimibSMTTransitionTimeStamp
FddiTimeMilli,
fddimibSMTStationAction
INTEGER
}
Now the table row index, which is basically the unique ID for each SMT. It also has to stay put across re-initializations, so no shuffling the rows around ๐ซถ
fddimibSMTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A unique value for each SMT. The value for each
SMT must remain constant at least from one re-
initialization of the entity's network management
system to the next re-initialization."
::= { fddimibSMTEntry 1 }
fddimibSMTStationId OBJECT-TYPE
SYNTAX FddiSMTStationIdType -- OCTET STRING (SIZE (8))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Used to uniquely identify an FDDI station."
REFERENCE
"ANSI { fddiSMT 11 }"
::= { fddimibSMTEntry 2 }
fddimibSMTOpVersionId OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The version that this station is using for its
operation (refer to ANSI 7.1.2.2). The value of
this variable is 2 for this SMT revision."
REFERENCE
"ANSI { fddiSMT 13 }"
::= { fddimibSMTEntry 3 }
fddimibSMTHiVersionId OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The highest version of SMT that this station
supports (refer to ANSI 7.1.2.2)."
REFERENCE
"ANSI { fddiSMT 14 }"
::= { fddimibSMTEntry 4 }
fddimibSMTLoVersionId OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The lowest version of SMT that this station
supports (refer to ANSI 7.1.2.2)."
REFERENCE
"ANSI { fddiSMT 15 }"
::= { fddimibSMTEntry 5 }
fddimibSMTUserData OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (32))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This variable contains 32 octets of user defined
information. The information shall be an ASCII
string."
REFERENCE
"ANSI { fddiSMT 17 }"
::= { fddimibSMTEntry 6 }
fddimibSMTMIBVersionId OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The version of the FDDI MIB of this station. The
value of this variable is 1 for this SMT
revision."
REFERENCE
"ANSI { fddiSMT 18 }"
::= { fddimibSMTEntry 7 }
fddimibSMTMACCts OBJECT-TYPE
SYNTAX INTEGER (0..255)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of MACs in this station or
concentrator."
REFERENCE
"ANSI { fddiSMT 21 }"
::= { fddimibSMTEntry 8 }
fddimibSMTNonMasterCts OBJECT-TYPE
SYNTAX INTEGER (0..2)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this variable is the number of A, B,
and S ports in this station or concentrator."
REFERENCE
"ANSI { fddiSMT 22 }"
::= { fddimibSMTEntry 9 }
fddimibSMTMasterCts OBJECT-TYPE
SYNTAX INTEGER (0..255)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of M Ports in a node. If the node is
not a concentrator, the value of the variable is
zero."
REFERENCE
"ANSI { fddiSMT 23 }"
::= { fddimibSMTEntry 10 }
Next up is the PATH bitmask, which is giving pure math-puzzle energy ๐ง You add up powers of two for each PATH type the station has, so a station with Primary and Local ends up at 5. Literally just binary vibes ๐
fddimibSMTAvailablePaths OBJECT-TYPE
SYNTAX INTEGER (0..7)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A value that indicates the PATH types available
in the station.
The value is a sum. This value initially takes
the value zero, then for each type of PATH that
this node has available, 2 raised to a power is
added to the sum. The powers are according to the
following table:
Path Power
Primary 0
Secondary 1
Local 2
For example, a station having Primary and Local
PATHs available would have a value of 5 (2**0 +
2**2)."
REFERENCE
"ANSI { fddiSMT 24 }"
::= { fddimibSMTEntry 11 }
fddimibSMTConfigCapabilities OBJECT-TYPE
SYNTAX INTEGER (0..3)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A value that indicates the configuration
capabilities of a node. The 'Hold Available' bit
indicates the support of the optional Hold
Function, which is controlled by
fddiSMTConfigPolicy. The 'CF-Wrap-AB' bit
indicates that the station has the capability of
performing a wrap_ab (refer to ANSI SMT 9.7.2.2).
The value is a sum. This value initially takes
the value zero, then for each of the configuration
policies currently enforced on the node, 2 raised
to a power is added to the sum. The powers are
according to the following table:
Policy Power
holdAvailable 0
CF-Wrap-AB 1 "
REFERENCE
"ANSI { fddiSMT 25 }"
::= { fddimibSMTEntry 12 }
fddimibSMTConfigPolicy OBJECT-TYPE
SYNTAX INTEGER (0..1)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A value that indicates the configuration policies
currently desired in a node. 'Hold' is one of the
terms used for the Hold Flag, an optional ECM flag
used to enable the optional Hold policy.
The value is a sum. This value initially takes
the value zero, then for each of the configuration
policies currently enforced on the node, 2 raised
to a power is added to the sum. The powers are
according to the following table:
Policy Power
configurationhold 0 "
REFERENCE
"ANSI { fddiSMT 26 }"
::= { fddimibSMTEntry 13 }
fddimibSMTConnectionPolicy OBJECT-TYPE
Okay, we're pausing right on the connection policy, and the next part picks up from there ๐
okay bestie, we're picking up right in the middle of the connection policy object and it's giving bit-map drama ๐ โจ
SYNTAX INTEGER (32768..65535)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A value representing the connection policies in
effect in a node. A station sets the corresponding
bit for each of the connection types that it
rejects. The letter designations, X and Y, in the
'rejectX-Y' names have the following significance:
X represents the PC-Type of the local PORT and Y
represents the PC_Type of the adjacent PORT
(PC_Neighbor). The evaluation of Connection-
Policy (PC-Type, PC-Neighbor) is done to determine
the setting of T- Val(3) in the PC-Signalling
sequence (refer to ANSI 9.6.3). Note that Bit 15,
(rejectM-M), is always set and cannot be cleared.
The value is a sum. This value initially takes
the value zero, then for each of the connection
policies currently enforced on the node, 2 raised
to a power is added to the sum. The powers are
according to the following table:
Policy Power
rejectA-A 0
rejectA-B 1
rejectA-S 2
rejectA-M 3
rejectB-A 4
rejectB-B 5
rejectB-S 6
rejectB-M 7
rejectS-A 8
rejectS-B 9
rejectS-S 10
rejectS-M 11
rejectM-A 12
rejectM-B 13
rejectM-S 14
rejectM-M 15 "
REFERENCE
"ANSI { fddiSMT 27 }"
::= { fddimibSMTEntry 14 }
so the vibe here is: each bit is a little "nope, not from me" switch ๐ โโ๏ธ๐. the bit for rejectM-M is locked on, it's always set and can't be cleared, so that one is basically a permanent no-go ๐๐. the table is the cheat sheet for which power of two each policy gets, and it's giving very organised ๐ง
fddimibSMTTNotify OBJECT-TYPE
SYNTAX INTEGER (2..30)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The timer, expressed in seconds, used in the
Neighbor Notification protocol. It has a range of
2 seconds to 30 seconds, and its default value is
30 seconds (refer to ANSI SMT 8.2)."
REFERENCE
"ANSI { fddiSMT 29 }"
::= { fddimibSMTEntry 15 }
fddimibSMTStatRptPolicy OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-write
STATUS mandatory
DESCRIPTION
"If true, indicates that the node will generate
Status Reporting Frames for its implemented events
and conditions. It has an initial value of true.
This variable determines the value of the
SR_Enable Flag (refer to ANSI SMT 8.3.2.1)."
REFERENCE
"ANSI { fddiSMT 30 }"
::= { fddimibSMTEntry 16 }
fddimibSMTTraceMaxExpiration OBJECT-TYPE
SYNTAX FddiTimeMilli
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Reference Trace_Max (refer to ANSI SMT
9.4.4.2.2)."
REFERENCE
"ANSI { fddiSMT 31 }"
::= { fddimibSMTEntry 17 }
fddimibSMTBypassPresent OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A flag indicating if the station has a bypass on
its AB port pair."
REFERENCE
"ANSI { fddiSMT 34 }"
::= { fddimibSMTEntry 18 }
fddimibSMTECMState OBJECT-TYPE
SYNTAX INTEGER {
ec0(1), -- Out
ec1(2), -- In
ec2(3), -- Trace
ec3(4), -- Leave
ec4(5), -- Path_Test
ec5(6), -- Insert
ec6(7), -- Check
ec7(8) -- Deinsert
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the current state of the ECM state
machine (refer to ANSI SMT 9.5.2)."
REFERENCE
"ANSI { fddiSMT 41 }"
::= { fddimibSMTEntry 19 }
fddimibSMTCFState OBJECT-TYPE
SYNTAX INTEGER {
cf0(1), -- isolated
cf1(2), -- local_a
cf2(3), -- local_b
cf3(4), -- local_ab
cf4(5), -- local_s
cf5(6), -- wrap_a
cf6(7), -- wrap_b
cf7(8), -- wrap_ab
cf8(9), -- wrap_s
cf9(10), -- c_wrap_a
cf10(11), -- c_wrap_b
cf11(12), -- c_wrap_s
cf12(13) -- thru
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The attachment configuration for the station or
concentrator (refer to ANSI SMT 9.7.2.2)."
REFERENCE
"ANSI { fddiSMT 42 }"
::= { fddimibSMTEntry 20 }
okay the timers and flags here are giving main character energy ๐ธโญ. TNotify is the Neighbor Notification timer, 2 to 30 seconds with 30 as the default ๐. StatRptPolicy is the on/off switch for Status Reporting Frames, starting at true โจ. the ECM and CF states are basically a whole cast of little labelled states, and I'm obsessed with how neatly they're listed ๐ฆ
fddimibSMTRemoteDisconnectFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A flag indicating that the station was remotely
disconnected from the network as a result of
receiving an fddiSMTAction, disconnect (refer to
ANSI SMT 6.4.5.3) in a Parameter Management Frame.
A station requires a Connect Action to rejoin and
clear the flag (refer to ANSI SMT 6.4.5.2)."
REFERENCE
"ANSI { fddiSMT 44 }"
::= { fddimibSMTEntry 21 }
fddimibSMTStationStatus OBJECT-TYPE
SYNTAX INTEGER { concatenated(1), separated(2), thru(3) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current status of the primary and secondary
paths within this station."
REFERENCE
"ANSI { fddiSMT 45 }"
::= { fddimibSMTEntry 22 }
fddimibSMTPeerWrapFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable assumes the value of the
PeerWrapFlag in CFM (refer to ANSI SMT
9.7.2.4.4)."
REFERENCE
"ANSI { fddiSMT 46 }"
::= { fddimibSMTEntry 23 }
fddimibSMTTimeStamp OBJECT-TYPE
SYNTAX FddiTimeMilli
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable assumes the value of TimeStamp
(refer to ANSI SMT 8.3.2.1)."
REFERENCE
"ANSI { fddiSMT 51 }"
::= { fddimibSMTEntry 24 }
fddimibSMTTransitionTimeStamp OBJECT-TYPE
SYNTAX FddiTimeMilli
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable assumes the value of
TransitionTimeStamp (refer to ANSI SMT 8.3.2.1)."
REFERENCE
"ANSI { fddiSMT 52 }"
::= { fddimibSMTEntry 25 }
the remote disconnect flag is the "I got kicked off the network by a management frame" receipt ๐, and only a Connect Action clears it so it can rejoin ๐. the station status and timestamps are the vibes-check of the station, showing its paths and when stuff happened โฑ๏ธ๐
fddimibSMTStationAction OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
connect(2),
disconnect(3),
path-Test(4),
self-Test(5),
disable-a(6),
disable-b(7),
disable-m(8)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object, when read, always returns a value of
other(1). The behavior of setting this variable
to each of the acceptable values is as follows:
other(1): Results in an appropriate error.
connect(2): Generates a Connect signal to ECM
to begin a connection sequence. See ANSI
Ref 9.4.2.
disconnect(3): Generates a Disconnect signal
to ECM. see ANSI Ref 9.4.2.
path-Test(4): Initiates a station Path_Test.
The Path_Test variable (see ANSI Ref
9.4.1) is set to 'Testing'. The results
of this action are not specified in this
standard.
self-Test(5): Initiates a station Self_Test.
The results of this action are not
specified in this standard.
disable-a(6): Causes a PC_Disable on the A
port if the A port mode is peer.
disable-b(7): Causes a PC_Disable on the B
port if the B port mode is peer.
disable-m(8): Causes a PC_Disable on all M
ports.
Attempts to set this object to all other values
results in an appropriate error. The result of
setting this variable to path-Test(4) or self-
Test(5) is implementation-specific."
REFERENCE
"ANSI { fddiSMT 60 }"
::= { fddimibSMTEntry 26 }
the station action object is basically a remote control with a bunch of buttons ๐ฎ๐ซถ. reading it always gives you other(1), and each value you write kicks off its own little action, like connect, disconnect, or the disable options on the A, B, and M ports ๐. anything not on the list gets an error, and the path-Test and self-Test results are left up to the implementation ๐คทโโ๏ธ๐
-- the MAC group
-- Implementation of the MAC Group is mandatory for all
-- systems which implement manageable FDDI subsystems.
fddimibMACNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The total number of MAC implementations (across
all SMTs) on this network management application
entity. The value for this variable must remain
constant at least from one re-initialization of
the entity's network management system to the next
re-initialization."
::= { fddimibMAC 1 }
-- the MAC table
fddimibMACTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibMACEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of MAC entries. The number of entries
shall not exceed the value of fddimibMACNumber."
::= { fddimibMAC 2 }
and now we've hit the MAC group ๐, which is mandatory for any system that implements manageable FDDI subsystems, so no skipping it ๐ญ๐. the MAC number has to stay the same across re-initializations, and the MAC table can't have more entries than that number ๐
okay the MAC table is where things get juicy ๐ first up is the entry that holds all the info shared by a given MAC ๐ฆ
fddimibMACEntry OBJECT-TYPE
SYNTAX FddimibMACEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A MAC entry containing information common to a
given MAC."
INDEX { fddimibMACSMTIndex, fddimibMACIndex }
::= { fddimibMACTable 1 }
FddimibMACEntry ::=
SEQUENCE {
fddimibMACSMTIndex
INTEGER,
fddimibMACIndex
INTEGER,
fddimibMACIfIndex
INTEGER,
fddimibMACFrameStatusFunctions
INTEGER,
fddimibMACTMaxCapability
FddiTimeNano,
fddimibMACTVXCapability
FddiTimeNano,
fddimibMACAvailablePaths
INTEGER,
fddimibMACCurrentPath
INTEGER,
fddimibMACUpstreamNbr
FddiMACLongAddressType,
fddimibMACDownstreamNbr
FddiMACLongAddressType,
fddimibMACOldUpstreamNbr
FddiMACLongAddressType,
fddimibMACOldDownstreamNbr
FddiMACLongAddressType,
fddimibMACDupAddressTest
INTEGER,
fddimibMACRequestedPaths
INTEGER,
fddimibMACDownstreamPORTType
INTEGER,
fddimibMACSMTAddress
FddiMACLongAddressType,
fddimibMACTReq
FddiTimeNano,
fddimibMACTNeg
FddiTimeNano,
fddimibMACTMax
FddiTimeNano,
fddimibMACTvxValue
FddiTimeNano,
fddimibMACFrameCts
Counter,
fddimibMACCopiedCts
Counter,
fddimibMACTransmitCts
Counter,
fddimibMACErrorCts
Counter,
fddimibMACLostCts
Counter,
fddimibMACFrameErrorThreshold
INTEGER,
fddimibMACFrameErrorRatio
INTEGER,
fddimibMACRMTState
INTEGER,
fddimibMACDaFlag
INTEGER,
fddimibMACUnaDaFlag
INTEGER,
fddimibMACFrameErrorFlag
INTEGER,
fddimibMACMAUnitdataAvailable
INTEGER,
fddimibMACHardwarePresent
INTEGER,
fddimibMACMAUnitdataEnable
INTEGER
}
Now the columns of the table, one by one ๐ธ The SMT index comes first, and it's read-only with a range of 1 to 65535 ๐
fddimibMACSMTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the SMT index associated with this
MAC."
::= { fddimibMACEntry 1 }
fddimibMACIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Index variable for uniquely identifying the MAC
object instances, which is the same as the
corresponding resource index in SMT."
REFERENCE
"ANSI { fddiMAC 34 }"
::= { fddimibMACEntry 2 }
fddimibMACIfIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the MIB-II ifIndex corresponding to
this MAC. If none is applicable, 0 is returned."
REFERENCE
"MIB-II"
::= { fddimibMACEntry 3 }
fddimibMACFrameStatusFunctions OBJECT-TYPE
SYNTAX INTEGER (0..7)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the MAC's optional Frame Status
processing functions.
The value is a sum. This value initially takes
the value zero, then for each function present, 2
raised to a power is added to the sum. The powers
are according to the following table:
function Power
fs-repeating 0
fs-setting 1
fs-clearing 2 "
REFERENCE
"ANSI { fddiMAC 11 }"
::= { fddimibMACEntry 4 }
The next few are all about capability and paths, so it's giving mapping and routing vibes ๐ง
fddimibMACTMaxCapability OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the maximum time value of fddiMACTMax
that this MAC can support."
REFERENCE
"ANSI { fddiMAC 13 }"
::= { fddimibMACEntry 5 }
fddimibMACTVXCapability OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the maximum time value of
fddiMACTvxValue that this MAC can support."
REFERENCE
"ANSI { fddiMAC 14 }"
::= { fddimibMACEntry 6 }
fddimibMACAvailablePaths OBJECT-TYPE
SYNTAX INTEGER (0..7)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the paths available for this MAC (refer
to ANSI SMT 9.7.7).
The value is a sum. This value initially takes
the value zero, then for each type of PATH that
this MAC has available, 2 raised to a power is
added to the sum. The powers are according to the
following table:
Path Power
Primary 0
Secondary 1
Local 2 "
REFERENCE
"ANSI { fddiMAC 22 }"
::= { fddimibMACEntry 7 }
fddimibMACCurrentPath OBJECT-TYPE
SYNTAX INTEGER {
isolated(1),
local(2),
secondary(3),
primary(4),
concatenated(5),
thru(6)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the Path into which this MAC is
currently inserted (refer to ANSI 9.7.7)."
REFERENCE
"ANSI { fddiMAC 23 }"
::= { fddimibMACEntry 8 }
Neighbours time, bestie ๐ซถ Every one of these addresses is an FddiMACLongAddressType, and the way they start life is so specific it's iconic ๐ญ
fddimibMACUpstreamNbr OBJECT-TYPE
SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The MAC's upstream neighbor's long individual MAC
address. It has an initial value of the SMT-
Unknown-MAC Address and is only modified as
specified by the Neighbor Information Frame
protocol (refer to ANSI SMT 7.2.1 and 8.2)."
REFERENCE
"ANSI { fddiMAC 24 }"
::= { fddimibMACEntry 9 }
fddimibMACDownstreamNbr OBJECT-TYPE
SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The MAC's downstream neighbor's long individual
MAC address. It has an initial value of the SMT-
Unknown-MAC Address and is only modified as
specified by the Neighbor Information Frame
protocol (refer to ANSI SMT 7.2.1 and 8.2)."
REFERENCE
"ANSI { fddiMAC 25 }"
::= { fddimibMACEntry 10 }
fddimibMACOldUpstreamNbr OBJECT-TYPE
SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The previous value of the MAC's upstream
neighbor's long individual MAC address. It has an
initial value of the SMT- Unknown- MAC Address and
is only modified as specified by the Neighbor
Information Frame protocol (refer to ANSI SMT
7.2.1 and 8.2)."
REFERENCE
"ANSI { fddiMAC 26 }"
::= { fddimibMACEntry 11 }
fddimibMACOldDownstreamNbr OBJECT-TYPE
SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The previous value of the MAC's downstream
neighbor's long individual MAC address. It has an
initial value of the SMT- Unknown-MAC Address and
is only modified as specified by the Neighbor
Information Frame protocol (refer to ANSI SMT
7.2.1 and 8.2)."
REFERENCE
"ANSI { fddiMAC 27 }"
::= { fddimibMACEntry 12 }
Last stretch, and it's a good one ๐ฅ The Duplicate Address Test flag and the requested paths are both in here, and the paths one is read-write, so it's the only one you can actually change ๐
fddimibMACDupAddressTest OBJECT-TYPE
SYNTAX INTEGER { none(1), pass(2), fail(3) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The Duplicate Address Test flag, Dup_Addr_Test
(refer to ANSI 8.2)."
REFERENCE
"ANSI { fddiMAC 29 }"
::= { fddimibMACEntry 13 }
fddimibMACRequestedPaths OBJECT-TYPE
SYNTAX INTEGER (0..255)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"List of permitted Paths which specifies the
Path(s) into which the MAC may be inserted (refer
to ansi SMT 9.7).
The value is a sum which represents the individual
paths that are desired. This value initially
takes the value zero, then for each type of PATH
that this node is, 2 raised to a power is added to
the sum. The powers are according to the
following table:
Path Power
local 0
secondary-alternate 1
primary-alternate 2
concatenated-alternate 3
secondary-preferred 4
primary-preferred 5
concatenated-preferred 6
thru 7 "
REFERENCE
"ANSI { fddiMAC 32 }"
::= { fddimibMACEntry 14 }
okay so we're picking right back up in the MAC table, bestie ๐ and the next few objects are giving main character energy ๐ Here we go!
fddimibMACDownstreamPORTType OBJECT-TYPE
SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the PC-Type of the first port that is
downstream of this MAC (the exit port)."
REFERENCE
"ANSI { fddiMAC 33 }"
::= { fddimibMACEntry 15 }
So fddimibMACDownstreamPORTType tells you the PC-Type of the first port downstream of this MAC, aka the exit port ๐ช It's read-only and comes in five flavors: a, b, s, m, and none โจ
fddimibMACSMTAddress OBJECT-TYPE
SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The 48-bit individual address of the MAC used for
SMT frames."
REFERENCE
"ANSI { fddiMAC 41 }"
::= { fddimibMACEntry 16 }
fddimibMACSMTAddress is the 48-bit individual address the MAC uses for SMT frames ๐ฆ It's a six-octet string, so it's basically a MAC address with a little extra drama ๐
fddimibMACTReq OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable is the T_Req_value passed to the
MAC. Without having detected a duplicate, the
time value of this variable SHALL assume the
maximum supported time value which is less than or
equal to the time value of fddiPATHMaxT-Req. When
a MAC has an address detected as a duplicate, it
MAY use a time value for this variable greater
than the time value of fddiPATHTMaxLowerBound. A
station SHALL cause claim when the new T_Req may
cause the value of T_Neg to change in the claim
process, (i.e., time value new T_Req < T_Neg, or
old T_Req = T_Neg)."
REFERENCE
"ANSI { fddiMAC 51 }"
::= { fddimibMACEntry 17 }
Okay, fddimibMACTReq is the T_Req_value that gets passed to the MAC, and this one is packed with rules ๐ซถ Without a duplicate detected, it SHALL assume the largest supported time value that's still less than or equal to fddiPATHMaxT-Req. If a MAC has a duplicate address, it MAY use something bigger than fddiPATHTMaxLowerBound. And a station SHALL cause claim when the new T_Req might change T_Neg in the claim process, which is the case when new T_Req < T_Neg, or old T_Req = T_Neg. Not me being dramatic about the claim process ๐ญ
fddimibMACTNeg OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"It is reported as a FddiTimeNano number."
REFERENCE
"ANSI { fddiMAC 52 }"
::= { fddimibMACEntry 18 }
fddimibMACTNeg is simple and iconic: it's reported as a FddiTimeNano number ๐
fddimibMACTMax OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable is the T_Max_value passed to the
MAC. The time value of this variable shall assume
the minimum suported time value which is greater
than or equal to the time value of fddiPATHT-
MaxLowerBound"
REFERENCE
"ANSI { fddiMAC 53 }"
::= { fddimibMACEntry 19 }
fddimibMACTMax is the T_Max_value passed to the MAC. Its time value SHALL be the smallest supported one that's greater than or equal to fddiPATHT-MaxLowerBound ๐ง Small but mighty.
fddimibMACTvxValue OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable is the TVX_value passed to the MAC.
The time value of this variable shall assume the
minimum suported time value which is greater than
or equal to the time value of
fddiPATHTVXLowerBound."
REFERENCE
"ANSI { fddiMAC 54 }"
::= { fddimibMACEntry 20 }
fddimibMACTvxValue is the TVX_value passed to the MAC, and same vibe as TMax: its time value SHALL be the minimum supported time value that's greater than or equal to fddiPATHTVXLowerBound ๐
fddimibMACFrameCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count of the number of frames received by this
MAC (refer to ANSI MAC 7.5.1)."
REFERENCE
"ANSI { fddiMAC 71 }"
::= { fddimibMACEntry 21 }
fddimibMACFrameCts counts the frames this MAC has received, and you can look up ANSI MAC 7.5.1 if you want the full tea โ
fddimibMACCopiedCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of frames addressed to (A bit set) and
successfully copied into the station's receive
buffers (C bit set) by this MAC (refer to ANSI MAC
7.5). Note that this count does not include MAC
frames."
REFERENCE
"ANSI { fddiMAC 72 }"
::= { fddimibMACEntry 22 }
fddimibMACCopiedCts SHOULD match, as closely as possible, the frames addressed to this station (A bit set) and successfully copied into its receive buffers (C bit set) ๐ฏ And it does NOT include MAC frames, so don't count those, bestie ๐
fddimibMACTransmitCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of frames transmitted by this MAC
(refer to ANSI MAC 7.5). Note that this count
does not include MAC frames."
REFERENCE
"ANSI { fddiMAC 73 }"
::= { fddimibMACEntry 23 }
fddimibMACTransmitCts is the transmit side of that same energy ๐ค It SHOULD match the frames this MAC transmitted as closely as possible, and again, MAC frames are excluded ๐ธ
fddimibMACErrorCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count of the number of frames that were
detected in error by this MAC that had not been
detected in error by another MAC (refer to ANSI
MAC 7.5.2)."
REFERENCE
"ANSI { fddiMAC 81 }"
::= { fddimibMACEntry 24 }
fddimibMACErrorCts counts frames this MAC caught in error that no other MAC had already caught ๐ Nobody gets to take credit for someone else's error, periodt ๐
fddimibMACLostCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count of the number of instances that this MAC
detected a format error during frame reception
such that the frame was stripped (refer to ANSI
MAC 7.5.3)."
REFERENCE
"ANSI { fddiMAC 82 }"
::= { fddimibMACEntry 25 }
fddimibMACLostCts counts the instances where this MAC spotted a format error during frame reception and the frame got stripped ๐ญ Rough day, but the counter is keeping receipts โจ
fddimibMACFrameErrorThreshold OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A threshold for determining when a MAC Condition
report (see ANSI 8.3.1.1) SHALL be generated.
Stations not supporting variable thresholds SHALL
have a value of 0 and a range of (0..0)."
REFERENCE
"ANSI { fddiMAC 95 }"
::= { fddimibMACEntry 26 }
fddimibMACFrameErrorThreshold is the threshold for deciding when a MAC Condition report (see ANSI 8.3.1.1) SHALL be generated ๐จ It's read-write, so you can set it, but stations that don't support variable thresholds SHALL have a value of 0 and a range of (0..0). No exceptions, no vibes-based thresholds ๐
fddimibMACFrameErrorRatio OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable is the value of the ratio,
((delta fddiMACLostCts + delta fddiMACErrorCts) /
(delta fddiMACFrameCts + delta fddiMACLostCts ))
* 2**16 "
REFERENCE
"ANSI { fddiMAC 96 }"
::= { fddimibMACEntry 27 }
fddimibMACFrameErrorRatio is a little math moment ๐งฎ It's (delta fddiMACLostCts + delta fddiMACErrorCts) divided by (delta fddiMACFrameCts + delta fddiMACLostCts), then multiplied by 2**16. Obsessed with how it's just the error ratio in a fancy outfit ๐
fddimibMACRMTState OBJECT-TYPE
SYNTAX INTEGER {
rm0(1), -- Isolated
rm1(2), -- Non_Op
rm2(3), -- Ring_Op
rm3(4), -- Detect
rm4(5), -- Non_Op_Dup
rm5(6), -- Ring_Op_Dup
rm6(7), -- Directed
rm7(8) -- Trace
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the current state of the RMT State
Machine (refer to ANSI 10.3.2)."
REFERENCE
"ANSI { fddiMAC 111 }"
::= { fddimibMACEntry 28 }
fddimibMACRMTState tells you the current state of the RMT State Machine (see ANSI 10.3.2) ๐ฆ There are eight states, rm0 through rm7: Isolated, Non_Op, Ring_Op, Detect, Non_Op_Dup, Ring_Op_Dup, Directed, and Trace. Iconic lineup, honestly ๐
fddimibMACDaFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The RMT flag Duplicate Address Flag, DA_Flag
(refer to ANSI 10.2.1.2)."
REFERENCE
"ANSI { fddiMAC 112 }"
::= { fddimibMACEntry 29 }
fddimibMACDaFlag is the RMT flag Duplicate Address Flag, DA_Flag (see ANSI 10.2.1.2) ๐ฉ It's true or false, same as every other flag in this section, so no surprises here ๐
fddimibMACUnaDaFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A flag, UNDA_Flag (refer to ANSI 8.2.2.1), set
when the upstream neighbor reports a duplicate
address condition. Cleared when the condition
clears."
REFERENCE
"ANSI { fddiMAC 113 }"
::= { fddimibMACEntry 30 }
fddimibMACUnaDaFlag (UNDA_Flag, see ANSI 8.2.2.1) gets set when your upstream neighbor says there's a duplicate address condition ๐ And once that condition clears, the flag clears too. Very fair, very tidy ๐
fddimibMACFrameErrorFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the MAC Frame Error Condition is
present when set. Cleared when the condition
clears and on station initialization."
REFERENCE
"ANSI { fddiMAC 114 }"
::= { fddimibMACEntry 31 }
fddimibMACFrameErrorFlag tells you whether the MAC Frame Error Condition is present. It gets cleared when the condition clears, and also on station initialization, so it starts fresh every time ๐ธ
fddimibMACMAUnitdataAvailable OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable shall take on the value of the
MAC_Avail flag defined in RMT."
REFERENCE
"ANSI { fddiMAC 116 }"
::= { fddimibMACEntry 32 }
fddimibMACMAUnitdataAvailable SHALL take on the value of the MAC_Avail flag defined in RMT โจ It's basically a mirror, and mirrors are iconic ๐ช
fddimibMACHardwarePresent OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable indicates the presence of
underlying hardware support for this MAC object.
If the value of this object is false(2), the
reporting of the objects in this entry may be
handled in an implementation-specific manner."
REFERENCE
"ANSI { fddiMAC 117 }"
::= { fddimibMACEntry 33 }
fddimibMACHardwarePresent says whether there's underlying hardware support for this MAC object ๐ง If it's false(2), the objects in this entry MAY be reported in an implementation-specific way. Choices, choices ๐ง
fddimibMACMAUnitdataEnable OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This variable determines the value of the
MA_UNITDATA_Enable flag in RMT. The default and
initial value of this flag is true(1)."
REFERENCE
"ANSI { fddiMAC 118 }"
::= { fddimibMACEntry 34 }
fddimibMACMAUnitdataEnable is read-write and controls the MA_UNITDATA_Enable flag in RMT ๐๏ธ Its default and initial value is true(1), so it starts out switched on, bestie ๐
Next up is the Enhanced MAC Counters group, and this part is kind of a vibe check. Implementing this group is optional, BUT if you claim support, you have to implement every variable in it ๐ซถ
-- the Enhanced MAC Counters group
-- Implementation of this Group is optional, but systems
-- claiming support must implement all variables in this
-- group
-- the MAC Counters table
fddimibMACCountersTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibMACCountersEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of MAC Counters entries. The number of
entries shall not exceed the value of
fddimibMACNumber."
::= { fddimibMACCounters 1 }
And last but not least, fddimibMACCountersTable is the MAC Counters table ๐ It's a list of MAC Counters entries, and the number of entries SHALL NOT exceed the value of fddimibMACNumber. Limits are important, and this table knows it ๐
okay the MAC counters table is where the real stats live, bestie ๐โจ these count how often things happen on a MAC (token received, TVX expired, frames not copied, late TRT, ring ops), plus a ratio and a flag that goes with them ๐งฎ๐
fddimibMACCountersEntry OBJECT-TYPE
SYNTAX FddimibMACCountersEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A MAC Counters entry containing information
common to a given MAC."
INDEX { fddimibMACSMTIndex, fddimibMACIndex }
::= { fddimibMACCountersTable 1 }
FddimibMACCountersEntry ::=
SEQUENCE {
fddimibMACTokenCts
Counter,
fddimibMACTvxExpiredCts
Counter,
fddimibMACNotCopiedCts
Counter,
fddimibMACLateCts
Counter,
fddimibMACRingOpCts
Counter,
fddimibMACNotCopiedRatio
INTEGER,
fddimibMACNotCopiedFlag
INTEGER,
fddimibMACNotCopiedThreshold
INTEGER
}
fddimibMACTokenCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of times the station has received a
token (total of non-restricted and restricted) on
this MAC (see ANSI MAC 7.4). This count is
valuable for determination of network load."
REFERENCE
"ANSI { fddiMAC 74 }"
::= { fddimibMACCountersEntry 1 }
fddimibMACTvxExpiredCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of times that TVX has expired."
REFERENCE
"ANSI { fddiMAC 83 }"
::= { fddimibMACCountersEntry 2 }
fddimibMACNotCopiedCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of frames that were addressed to this
MAC but were not copied into its receive buffers
(see ANSI MAC 7.5). For example, this might occur
due to local buffer congestion. Because of
implementation considerations, this count may not
match the actual number of frames not copied. It
is not a requirement that this count be exact.
Note that this count does not include MAC frames."
REFERENCE
"ANSI { fddiMAC 84 }"
::= { fddimibMACCountersEntry 3 }
fddimibMACLateCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A count that should as closely as possible match
the number of TRT expirations since this MAC was
reset or a token was received (refer to ANSI MAC
7.4.5)."
REFERENCE
"ANSI { fddiMAC 85 }"
::= { fddimibMACCountersEntry 4 }
fddimibMACRingOpCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of the number of times the ring has
entered the 'Ring_Operational' state from the
'Ring Not Operational' state. This count is
updated when a SM_MA_STATUS.Indication of a change
in the Ring_Operational status occurs (refer to
ANSI 6.1.4). Because of implementation
considerations, this count may be less than the
actual RingOp_Ct. It is not a requirement that
this count be exact."
REFERENCE
"ANSI { fddiMAC 86 }"
::= { fddimibMACCountersEntry 5 }
fddimibMACNotCopiedRatio OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable is the value of the ratio:
(delta fddiMACNotCopiedCts /
(delta fddiMACCopiedCts +
delta fddiMACNotCopiedCts )) * 2**16 "
REFERENCE
"ANSI { fddiMAC 105 }"
::= { fddimibMACCountersEntry 6 }
fddimibMACNotCopiedFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates that the Not Copied condition is
present when read as true(1). Set to false(2)
when the condition clears and on station
initialization."
REFERENCE
"ANSI { fddiMAC 115 }"
::= { fddimibMACCountersEntry 7 }
fddimibMACNotCopiedThreshold OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A threshold for determining when a MAC condition
report shall be generated. Stations not
supporting variable thresholds shall have a value
of 0 and a range of (0..0)."
REFERENCE
"ANSI { fddiMAC 103 }"
::= { fddimibMACCountersEntry 8 }
-- the PATH group
-- Implementation of the PATH group is mandatory for all
-- systems which implement manageable FDDI subsystems.
fddimibPATHNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The total number of PATHs possible (across all
SMTs) on this network management application
entity. The value for this variable must remain
constant at least from one re-initialization of
the entity's network management system to the next
re-initialization."
::= { fddimibPATH 1 }
-- the PATH table
fddimibPATHTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibPATHEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of PATH entries. The number of entries
shall not exceed the value of fddimibPATHNumber."
::= { fddimibPATH 2 }
fddimibPATHEntry OBJECT-TYPE
SYNTAX FddimibPATHEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A PATH entry containing information common to a
given PATH."
INDEX { fddimibPATHSMTIndex, fddimibPATHIndex }
::= { fddimibPATHTable 1 }
FddimibPATHEntry ::=
SEQUENCE {
fddimibPATHSMTIndex
INTEGER,
fddimibPATHIndex
INTEGER,
fddimibPATHTVXLowerBound
FddiTimeNano,
fddimibPATHTMaxLowerBound
FddiTimeNano,
fddimibPATHMaxTReq
FddiTimeNano
}
fddimibPATHSMTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the SMT index associated with this
PATH."
::= { fddimibPATHEntry 1 }
fddimibPATHIndex OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Index variable for uniquely identifying the
primary, secondary and local PATH object
instances. Local PATH object instances are
represented with integer values 3 to 255."
REFERENCE
"ANSI { fddiPATH 11 }"
::= { fddimibPATHEntry 2 }
fddimibPATHTVXLowerBound OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Specifies the minimum time value of
fddiMACTvxValue that shall be used by any MAC that
is configured in this path. The operational value
of fddiMACTvxValue is managed by settting this
variable. This variable has the time value range
of:
0 < fddimibPATHTVXLowerBound < fddimibPATHMaxTReq
Changes to this variable shall either satisfy the
time value relationship:
fddimibPATHTVXLowerBound <=
fddimibMACTVXCapability
of each of the MACs currently on the path, or be
considered out of range. The initial value of
fddimibPATHTVXLowerBound shall be 2500 nsec (2.5
ms)."
REFERENCE
"ANSI { fddiPATH 21 }"
::= { fddimibPATHEntry 3 }
fddimibPATHTMaxLowerBound OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Specifies the minimum time value of fddiMACTMax
that shall be used by any MAC that is configured
in this path. The operational value of
fddiMACTMax is managed by setting this variable.
This variable has the time value range of:
fddimibPATHMaxTReq <= fddimibPATHTMaxLowerBound
and an absolute time value range of:
10000nsec (10 msec) <= fddimibPATHTMaxLowerBound
Changes to this variable shall either satisfy the
time value relationship:
fddimibPATHTMaxLowerBound <
fddimibMACTMaxCapability
of each of the MACs currently on the path, or be
considered out of range. The initial value of
fddimibPATHTMaxLowerBound shall be 165000 nsec
(165 msec)."
REFERENCE
"ANSI { fddiPATH 22 }"
::= { fddimibPATHEntry 4 }
fddimibPATHMaxTReq OBJECT-TYPE
SYNTAX FddiTimeNano
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Specifies the maximum time value of fddiMACT-Req
that shall be used by any MAC that is configured
in this path. The operational value of fddiMACT-
Req is managed by setting this variable. This
variable has the time value range of:
okay bestie, we're picking up right where the PATH stuff was getting spicy ๐
The fddimibPATHMaxTReq default is the star of this next bit โจ
fddimibPATHTVXLowerBound < fddimibPATHMaxTReq <=
fddimibPATHTMaxLowerBound.
The default value of fddimibPATHMaxTReq is 165000
nsec (165 msec)."
REFERENCE
"ANSI { fddiPATH 23 }"
::= { fddimibPATHEntry 5 }
-- the PATH Configuration table
fddimibPATHConfigTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibPATHConfigEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A table of Path configuration entries. This
table lists all the resources that may be in this
Path."
REFERENCE
"ANSI { fddiPATH 18 }"
::= { fddimibPATH 3 }
fddimibPATHConfigEntry OBJECT-TYPE
SYNTAX FddimibPATHConfigEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A collection of objects containing information
for a given PATH Configuration entry."
INDEX { fddimibPATHConfigSMTIndex,
fddimibPATHConfigPATHIndex,
fddimibPATHConfigTokenOrder }
::= { fddimibPATHConfigTable 1 }
FddimibPATHConfigEntry ::=
SEQUENCE {
fddimibPATHConfigSMTIndex
INTEGER,
fddimibPATHConfigPATHIndex
INTEGER,
fddimibPATHConfigTokenOrder
INTEGER,
fddimibPATHConfigResourceType
INTEGER,
fddimibPATHConfigResourceIndex
INTEGER,
fddimibPATHConfigCurrentPath
INTEGER
}
fddimibPATHConfigSMTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the SMT index associated with this
configuration entry."
::= { fddimibPATHConfigEntry 1 }
fddimibPATHConfigPATHIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the PATH resource index associated
with this configuration entry."
::= { fddimibPATHConfigEntry 2 }
fddimibPATHConfigTokenOrder OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"An object associated with Token order for this
entry. Thus if the token passes resources a, b, c
and d, in that order, then the value of this
object for these resources would be 1, 2, 3 and 4
respectively."
::= { fddimibPATHConfigEntry 3 }
fddimibPATHConfigResourceType OBJECT-TYPE
SYNTAX INTEGER { mac(2), port(4) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The type of resource associated with this
configuration entry."
::= { fddimibPATHConfigEntry 4 }
fddimibPATHConfigResourceIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the SMT resource index used to refer
to the instance of this MAC or Port resource."
::= { fddimibPATHConfigEntry 5 }
fddimibPATHConfigCurrentPath OBJECT-TYPE
SYNTAX INTEGER {
isolated(1), local(2), secondary(3), primary(4),
concatenated(5), thru(6)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current insertion status for this resource on
this Path."
::= { fddimibPATHConfigEntry 6 }
Now we're in the PORT group, and this part is giving strict rules ๐ซถ Implementing it is mandatory for any system that has manageable FDDI subsystems, so no skipping ๐
-- the PORT group
-- Implementation of the PORT group is mandatory for all
-- systems which implement manageable FDDI subsystems.
fddimibPORTNumber OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The total number of PORT implementations (across
all SMTs) on this network management application
entity. The value for this variable must remain
constant at least from one re-initialization of
the entity's network management system to the next
re-initialization."
::= { fddimibPORT 1 }
-- the PORT table
fddimibPORTTable OBJECT-TYPE
SYNTAX SEQUENCE OF FddimibPORTEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of PORT entries. The number of entries
shall not exceed the value of fddimibPORTNumber."
::= { fddimibPORT 2 }
fddimibPORTEntry OBJECT-TYPE
SYNTAX FddimibPORTEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A PORT entry containing information common to a
given PORT."
INDEX { fddimibPORTSMTIndex, fddimibPORTIndex }
::= { fddimibPORTTable 1 }
FddimibPORTEntry ::=
SEQUENCE {
fddimibPORTSMTIndex
INTEGER,
fddimibPORTIndex
INTEGER,
fddimibPORTMyType
INTEGER,
fddimibPORTNeighborType
INTEGER,
fddimibPORTConnectionPolicies
INTEGER,
fddimibPORTMACIndicated
INTEGER,
fddimibPORTCurrentPath
INTEGER,
fddimibPORTRequestedPaths
OCTET STRING,
fddimibPORTMACPlacement
FddiResourceId,
fddimibPORTAvailablePaths
INTEGER,
fddimibPORTPMDClass
INTEGER,
fddimibPORTConnectionCapabilities
INTEGER,
fddimibPORTBSFlag
INTEGER,
fddimibPORTLCTFailCts
Counter,
fddimibPORTLerEstimate
INTEGER,
fddimibPORTLemRejectCts
Counter,
fddimibPORTLemCts
Counter,
fddimibPORTLerCutoff
INTEGER,
fddimibPORTLerAlarm
INTEGER,
fddimibPORTConnectState
INTEGER,
fddimibPORTPCMState
INTEGER,
fddimibPORTPCWithhold
INTEGER,
fddimibPORTLerFlag
INTEGER,
fddimibPORTHardwarePresent
INTEGER,
fddimibPORTAction
INTEGER
}
fddimibPORTSMTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the SMT index associated with this
PORT."
::= { fddimibPORTEntry 1 }
fddimibPORTIndex OBJECT-TYPE
SYNTAX INTEGER (1..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A unique value for each PORT within a given SMT,
which is the same as the corresponding resource
index in SMT. The value for each PORT must remain
constant at least from one re-initialization of
the entity's network management system to the next
re-initialization."
REFERENCE
"ANSI { fddiPORT 29 }"
::= { fddimibPORTEntry 2 }
fddimibPORTMyType OBJECT-TYPE
SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of the PORT's PC_Type (refer to ANSI
9.4.1, and 9.6.3.2)."
REFERENCE
"ANSI { fddiPORT 12 }"
::= { fddimibPORTEntry 3 }
fddimibPORTNeighborType OBJECT-TYPE
SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The type of the remote PORT as determined in PCM.
This variable has an initial value of none, and is
only modified in PC_RCode(3)_Actions (refer to
ANSI SMT 9.6.3.2)."
REFERENCE
"ANSI { fddiPORT 13 }"
::= { fddimibPORTEntry 4 }
fddimibPORTConnectionPolicies OBJECT-TYPE
SYNTAX INTEGER (0..3)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A value representing the PORT's connection
policies desired in the node. The value of pc-
mac-lct is a term used in the PC_MAC_LCT Flag (see
9.4.3.2). The value of pc-mac-loop is a term used
in the PC_MAC_Loop Flag.
The value is a sum. This value initially takes
the value zero, then for each PORT policy, 2
raised to a power is added to the sum. The powers
are according to the following table:
Policy Power
pc-mac-lct 0
pc-mac-loop 1 "
REFERENCE
"ANSI { fddiPORT 14 }"
::= { fddimibPORTEntry 5 }
fddimibPORTMACIndicated OBJECT-TYPE
SYNTAX INTEGER {
tVal9FalseRVal9False(1),
tVal9FalseRVal9True(2),
tVal9TrueRVal9False(3),
tVal9TrueRVal9True(4)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The indications (T_Val(9), R_Val(9)) in PC-
Signalling, of the intent to place a MAC in the
output token path to a PORT (refer to ANSI SMT
9.6.3.2.)."
REFERENCE
"ANSI { fddiPORT 15 }"
::= { fddimibPORTEntry 6 }
That's the end of this part, babe ๐ง Stay tuned for the next chapter of the FDDI MIB glow-up ๐๐
Okay so bestie, we're deep in the PORT table now and it is SO good ๐ Every object here describes one FDDI PORT, and the entry index is the 7th through 24th slots. Let's go ๐ง
fddimibPORTCurrentPath OBJECT-TYPE
SYNTAX INTEGER {
ce0(1), -- isolated
ce1(2), -- local
ce2(3), -- secondary
ce3(4), -- primary
ce4(5), -- concatenated
ce5(6) -- thru
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the Path(s) into which this PORT is
currently inserted."
REFERENCE
"ANSI { fddiPORT 16 }"
::= { fddimibPORTEntry 7 }
The CurrentPath object is the one that tells you which Path(s) this PORT is slotted into right now ๐ฅ It's read-only, it's mandatory, and the options are isolated, local, secondary, primary, concatenated, and thru. Main character energy, honestly ๐
fddimibPORTRequestedPaths OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (3))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This variable is a list of permitted Paths where
each list element defines the Port's permitted
Paths. The first octet corresponds to 'none', the
second octet to 'tree', and the third octet to
'peer'."
REFERENCE
"ANSI { fddiPORT 17 }"
::= { fddimibPORTEntry 8 }
RequestedPaths is a 3-octet string, and it's read-write, so you can actually set it ๐ฆ Each octet lines up with one thing: the first is none, the second is tree, and the third is peer. Three little slots, very organised, I'm obsessed ๐ญ
fddimibPORTMACPlacement OBJECT-TYPE
SYNTAX FddiResourceId -- INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the MAC, if any, whose transmit path
exits the station via this PORT. The value shall
be zero if there is no MAC associated with the
PORT. Otherwise, the MACIndex of the MAC will be
the value of the variable."
REFERENCE
"ANSI { fddiPORT 18 }"
::= { fddimibPORTEntry 9 }
MACPlacement tells you which MAC, if there is one, has its transmit path leaving the station through this PORT ๐ธ If no MAC is hooked up, the value is zero. If one is, the value is that MAC's MACIndex. Simple, clean, iconic โจ
fddimibPORTAvailablePaths OBJECT-TYPE
SYNTAX INTEGER (0..7)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates the Paths which are available to this
Port. In the absence of faults, the A and B Ports
will always have both the Primary and Secondary
Paths available.
The value is a sum. This value initially takes
the value zero, then for each type of PATH that
this port has available, 2 raised to a power is
added to the sum. The powers are according to the
following table:
Path Power
Primary 0
Secondary 1
Local 2 "
REFERENCE
"ANSI { fddiPORT 19 }"
::= { fddimibPORTEntry 10 }
AvailablePaths is a read-only sum from 0 to 7 ๐งฎ Start at zero, then add 2 to the power for each Path type the PORT has: Primary is 2^0, Secondary is 2^1, and Local is 2^2. Also, if nothing's broken, the A and B Ports always have both Primary and Secondary available, so that's a nice little guarantee ๐
fddimibPORTPMDClass OBJECT-TYPE
SYNTAX INTEGER {
multimode(1),
single-mode1(2),
single-mode2(3),
sonet(4),
low-cost-fiber(5),
twisted-pair(6),
unknown(7),
unspecified(8)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable indicates the type of PMD entity
associated with this port."
REFERENCE
"ANSI { fddiPORT 22 }"
::= { fddimibPORTEntry 11 }
PMDClass tells you what kind of PMD entity is attached to the PORT ๐ Your choices are multimode, single-mode1, single-mode2, sonet, low-cost-fiber, twisted-pair, unknown, and unspecified. Eight options, zero drama ๐
fddimibPORTConnectionCapabilities OBJECT-TYPE
SYNTAX INTEGER (0..3)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A value that indicates the connection
capabilities of the port. The pc-mac-lct bit
indicates that the station has the capability of
setting the PC_MAC_LCT Flag. The pc-mac-loop bit
indicates that the station has the capability of
setting the PC_MAC_Loop Flag (refer to ANSI
9.4.3.2).
The value is a sum. This value initially takes
the value zero, then for each capability that this
port has, 2 raised to a power is added to the sum.
The powers are according to the following table:
capability Power
pc-mac-lct 0
pc-mac-loop 1 "
REFERENCE
"ANSI { fddiPORT 23 }"
::= { fddimibPORTEntry 12 }
ConnectionCapabilities is another read-only sum, from 0 to 3 ๐ Two bits are involved: pc-mac-lct is 2^0, and it means the station can set the PC_MAC_LCT Flag. pc-mac-loop is 2^1, and it means the station can set the PC_MAC_Loop Flag. The ANSI reference for that is 9.4.3.2. Bestie, it's giving binary ๐ค
fddimibPORTBSFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable assumes the value of the BS_Flag
(refer to ANSI SMT 9.4.3.3)."
REFERENCE
"ANSI { fddiPORT 33 }"
::= { fddimibPORTEntry 13 }
BSFlag just mirrors the BS_Flag, which is true or false, and you can check the details in ANSI SMT 9.4.3.3 ๐ฆ
fddimibPORTLCTFailCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of the consecutive times the link
confidence test (LCT) has failed during connection
management (refer to ANSI 9.4.1)."
REFERENCE
"ANSI { fddiPORT 42 }"
::= { fddimibPORTEntry 14 }
LCTFailCts counts the consecutive times the link confidence test (LCT) has failed during connection management ๐ It's a read-only Counter, and the details are in ANSI 9.4.1. Each failure in a row adds up, so keep an eye on it, babe ๐
fddimibPORTLerEstimate OBJECT-TYPE
SYNTAX INTEGER (4..15)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A long term average link error rate. It ranges
from 10**-4 to 10**-15 and is reported as the
absolute value of the base 10 logarithm (refer to
ANSI SMT 9.4.7.5.)."
REFERENCE
"ANSI { fddiPORT 51 }"
::= { fddimibPORTEntry 15 }
LerEstimate is a long-term average link error rate, and it runs from 10^-4 down to 10^-15 ๐ธ Instead of writing the rate out, it reports the absolute value of the base 10 logarithm. The reference is ANSI SMT 9.4.7.5. Math girl dinner, but make it networking ๐
fddimibPORTLemRejectCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A link error monitoring count of the times that a
link has been rejected."
REFERENCE
"ANSI { fddiPORT 52 }"
::= { fddimibPORTEntry 16 }
LemRejectCts is a read-only Counter that counts how many times a link has been rejected in link error monitoring ๐ Rejected links, yikes ๐
fddimibPORTLemCts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The aggregate link error monitor error count, set
to zero only on station initialization."
REFERENCE
"ANSI { fddiPORT 53 }"
::= { fddimibPORTEntry 17 }
LemCts is the total link error monitor error count, and it only gets reset to zero when the station initialises ๐ง Read-only, mandatory, and very loyal to its starting value ๐ซถ
fddimibPORTLerCutoff OBJECT-TYPE
SYNTAX INTEGER (4..15)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The link error rate estimate at which a link
connection will be broken. It ranges from 10**-4
to 10**-15 and is reported as the absolute value
of the base 10 logarithm (default of 7)."
REFERENCE
"ANSI { fddiPORT 58 }"
::= { fddimibPORTEntry 18 }
LerCutoff is the link error rate estimate where a link connection gets broken ๐ฅ It's read-write, so you can change it, and the range runs from 10^-4 to 10^-15 with the same logarithm reporting. The default is 7, so that's where it starts ๐
fddimibPORTLerAlarm OBJECT-TYPE
SYNTAX INTEGER (4..15)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The link error rate estimate at which a link
connection will generate an alarm. It ranges from
10**-4 to 10**-15 and is reported as the absolute
value of the base 10 logarithm of the estimate
(default of 8)."
REFERENCE
"ANSI { fddiPORT 59 }"
::= { fddimibPORTEntry 19 }
LerAlarm is the link error rate estimate where a link connection raises an alarm ๐จ It's also read-write, same range, same logarithm reporting, and the default here is 8. Notice that the alarm default (8) is one step above the cutoff default (7) โจ
fddimibPORTConnectState OBJECT-TYPE
SYNTAX INTEGER {
disabled(1),
connecting(2),
standby(3),
active(4)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"An indication of the connect state of this PORT
and is equal to the value of Connect_State (refer
to ANSI 9.4.1)"
REFERENCE
"ANSI { fddiPORT 61 }"
::= { fddimibPORTEntry 20 }
ConnectState shows the connect state of this PORT, and it matches the Connect_State value (see ANSI 9.4.1) ๐ The options are disabled, connecting, standby, and active ๐ฆ
fddimibPORTPCMState OBJECT-TYPE
SYNTAX INTEGER {
pc0(1), -- Off
pc1(2), -- Break
pc2(3), -- Trace
pc3(4), -- Connect
pc4(5), -- Next
pc5(6), -- Signal
pc6(7), -- Join
pc7(8), -- Verify
pc8(9), -- Active
pc9(10) -- Maint
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The state of this Port's PCM state machine refer
to ANSI SMT 9.6.2)."
REFERENCE
"ANSI { fddiPORT 62 }"
::= { fddimibPORTEntry 21 }
PCMState reports the state of this PORT's PCM state machine ๐ง There are ten options, from pc0 (Off) all the way up to pc9 (Maint), with Break, Trace, Connect, Next, Signal, Join, Verify, and Active in between. See ANSI SMT 9.6.2 for the full story ๐
fddimibPORTPCWithhold OBJECT-TYPE
SYNTAX INTEGER {
none(1),
m-m(2),
otherincompatible(3),
pathnotavailable(4)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of PC_Withhold (refer to ANSI SMT
9.4.1)."
REFERENCE
"ANSI { fddiPORT 63 }"
::= { fddimibPORTEntry 22 }
PCWithhold gives you the value of PC_Withhold (see ANSI SMT 9.4.1) ๐ The options are none, m-m, otherincompatible, and pathnotavailable, and it's read-only
fddimibPORTLerFlag OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The condition becomes active when the value of
fddiPORTLerEstimate is less than or equal to
fddiPORTLerAlarm. This will be reported with the
Status Report Frames (SRF) (refer to ANSI SMT
7.2.7 and 8.3)."
REFERENCE
"ANSI { fddiPORT 64 }"
::= { fddimibPORTEntry 23 }
LerFlag is true or false, and it's how the alarm condition shows up. The condition becomes active when LerEstimate is less than or equal to LerAlarm, and it's reported in Status Report Frames (SRF), with details in ANSI SMT 7.2.7 and 8.3 ๐จ So the flag and the alarm are basically best friends
fddimibPORTHardwarePresent OBJECT-TYPE
SYNTAX INTEGER { true(1), false(2) }
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This variable indicates the presence of
underlying hardware support for this Port object.
If the value of this object is false(2), the
reporting of the objects in this entry may be
handled in an implementation-specific manner."
REFERENCE
"ANSI { fddiPORT 65 }"
::= { fddimibPORTEntry 24 }
HardwarePresent is a read-only true or false that says whether there's underlying hardware support for this Port object ๐ ๏ธ If it's false, the reporting of the objects in this entry may be handled in an implementation-specific way. Honestly, that's a very chill way to say "it depends" ๐
fddimibPORTAction OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
maintPORT(2),
enablePORT(3),
disablePORT(4),
startPORT(5),
stopPORT(6)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Causes a Control signal to be generated with a
control_action of 'Signal' and the 'variable'
parameter set with the appropriate value (i.e.,
PC_Maint, PC_Enable, PC_Disable, PC_Start, or
PC_Stop) (refer to ANSI 9.4.2)."
REFERENCE
"ANSI { fddiPORT 70 }"
::= { fddimibPORTEntry 25 }
END
And that's the last object wrapped up, bestie! ๐ It's a read-write one, so it's giving control ๐ , and the DESCRIPTION says it causes a Control signal with a control_action of 'Signal' and a 'variable' set to PC_Maint, PC_Enable, PC_Disable, PC_Start, or PC_Stop. ๐ง Check ANSI 9.4.2 if you want the deep dive. โจ And that's the END of the MIB module. ๐ฆ
5. Acknowledgements ๐ซถ
This document was made by the IETF FDDI MIB working group, and honestly the list of people is iconic ๐ Here they are, exactly as they're written:
Hossein Alaee, 3Com Corporation
Haggar Alsaleh, Bell Northern Research
William Anderson, Mitre Corporation
Alan Apt, Addison-Wesley
Mary Artibee, Silicon Graphics
Karen Auerbach, Epilogue Technologies
Doug Bagnall, Apollo/Hewlett Packard
Chet Birger, Coral Network Corporation
Pablo Brenner, Fibronics
Howard Brown, Cabletron
Jack Brown, US Army Computer Engineering Center
Eric Brunner
Jeff Case, The University of Tennessee
Tammy Chan, Fibercom
Asheem Chandna, AT&T
Cho Y. Chang, Apollo/Hewlett Packard
Chris Chiotasso, Fibronics
Paul Ciarfella, Digital Equipment Corporation
John Cook, Chipcom
Don Coolidge, Silicon Graphics
Burt Cyr, Unisys
James R. Davin, Massachusetts Institute of Technology
Nabil Damouny
Nadya El-Afandi, Network Systems Corporation
Hunaid Engineer, Cray Research
Jeff Fitzgerald, Fibercom
Richard Fox, Synoptics
Stan Froyd, ACC
Debbie Futcher, U.S. Naval Surface Warfare Center
Joseph Golio, Cray Research
Jeremy Greene, Coral
Peter Hayden, Digital Equipment Corporation
Scott Hiles, U.S. Naval Surface Warfare Center
Greg Jones, Data General
Satish Joshi, SynOptics Communications
Jayant Kadambi, AT&T Bell Labs
Joanna Karwowska, Data General
Frank Kastenholz, Interlan
Jim Kinder, Fibercom
Christopher Kolb, PSI
Cheryl Krupczak, NCR
Peter Lin, Vitalink
Then Liu
John R. LoVerso, Concurrent Computer Corporation
Ron Mackey, Distributed Systems International, Inc.
Gary Malkin, Proteon
Bruce McClure, Synernetics
Keith McCloghrie, Hughes Lan Systems
Donna McMaster, SynOptics
John O'Hara, Massachusetts Institute of Technology
Luc Pariseau, Digital Equipment Corporation
Dave Perkins, SynOptics Communications
James E. Reeves, SynOptics Communications
Jim Reinstedler, Ungermann-Bass
Radhi Renous, Fibronics
Sal Ricci, AT&T/NCR
Anil Rijsinghani, Digital Equipment Corporation
Bob Rolla, Synernetics
Nelson Ronkin, Synernetics
Marshall T. Rose, Performance Systems International, Inc.
Milt Roselinsky, CMC
Jon Saperia, Digital Equipment Corporation
Greg Satz, cisco Systems
Steven Senum, Network Systems Corporation
Jim Sheridan, IBM Corporation
Jeffrey Schiller, MIT
Dror Shindelman, Fibronics
Mark Sleeper, Sparta
Lou Steinberg, IBM Corporation
Larry Stefani, Digital Equipment Corporation
Mary Jane Strohl, Apollo/Hewlett Packard
Sally Tarquinio, Mitre Corporation
Kaj Tesink, Bellcore
Ian Thomas, Chipcom
Dean Throop, Data General
Bill Townsend, Xylogics
Ahmet H. Tuncay, SynOptics Communications
Mike Turico, Motorola
Chris VandenBerg, ACC
Sudhanshu Verma, Hewlett Packard
Joe Vermeulen, UNISYS
David Waiteman, BBN
Bert Williams, Synernetics
Mark Wood, Distributed Systems International, Inc.
Y. C. Yang
Denis Yaro, Sun Microsystems
Jeff Young, Cray Research
The author gratefully acknowledges the labors of Judi Talley and David Reid of SNMP Research, Inc. for their editorial assistance in the preparation of this document. ๐ Thank you, besties! ๐ธ
6. References ๐
- [1] 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.
- [2] Case, J., "FDDI Management Information Base", RFC 1285, SNMP Research, Incorporated, January 1992.
- [3] 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.
- [4] 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.
- [5] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).
- [6] 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).
- [7] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", STD 16, RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.
- [8] American National Standards Institute, FDDI Station Management (SMT), Draft Proposed American National Standard, American National Standards Institute, X3T9.5/84-49 REV 7.3.
7. Security Considerations ๐
Security issues are not discussed in this memo. ๐ Lowkey a big deal, so keep it in mind when you're implementing.
8. Authors' Addresses ๐ฆ
Jeffrey D. Case
The University of Tennessee
Department of Computer Science
107 Ayres Hall
Knoxville, Tennessee 37996
and
SNMP Research, Incorporated
3001 Kimberlin Heights Road
Knoxville, Tennessee 37920
Phone: (615) 974-5067 or (615) 573-1434
EMail: case@CS.UTK.EDU
Anil Rijsinghani
Digital Equipment Corporation
295 Foster Street
Littleton, MA 01460-1123
Phone: (508) 952-3520
EMail: anil@levers.enet.dec.com
๐ฆ where this page comes from
- ietf: rfc1512 1993-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms