RFC 1512

FDDI Management Information Base

๐Ÿ“… published September 1993, from ietf

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