RFC 1595

Definitions of Managed Objects for the SONET/SDH Interface Type

๐Ÿ“… published March 1994, from ietf

RFC 1595 ๐ŸŽ€ Definitions of Managed Objects for the SONET/SDH Interface Type

Part 1 of 10 โœจ

Title block ๐Ÿ“‹

  • RFC number: 1595 ๐Ÿ’–
  • Series: Network Working Group, Request for Comments: 1595
  • Editors: T. Brown and K. Tesink, both at Bell Communications Research ๐Ÿ’…
  • Category: Standards Track ๐Ÿ‘‘
  • Date: March 1994 ๐ŸŒธ
  • Obsoletes / Updates: this copy of the title block doesn't list anything here ๐Ÿ™ˆ

Okay bestie, this RFC is all about giving SONET/SDH interfaces their own managed objects so network management tools can see them. ๐Ÿฆ‹


Status of This Memo

Okay, this part is the official fine print ๐Ÿ“œ. This document is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements ๐Ÿซถ. If you want to know where it stands, check the current "Internet Official Protocol Standards" (STD 1) edition, because that's the source of truth ๐Ÿ’œ. And distribution of this memo is unlimited, so share away! ๐ŸŒˆ

Abstract

This is the vibe โœจ: this memo defines a chunk of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets ๐ŸŒ. Specifically, it's all about objects for managing SONET/SDH objects ๐Ÿ”ฅ. It's a companion to the DS1/E1 and DS3/E3 interface documents, RFC1406 [14] and RFC1407 [13] ๐Ÿฆ‹.

It also writes a MIB module that's compliant with the SNMPv2 SMI and semantically identical to the SNMPv1 definitions. Iconic consistency ๐Ÿ’…๐Ÿ‘‘.

Table of Contents

   1. The SNMPv2 Network Management Framework ...............    2
   2. Objects ...............................................    3
   2.1 Format of Definitions ................................    3
   3. Overview ..............................................    4
   3.1 Use of the ifTable ...................................    4
   3.2 Use of ifTable for  SONET/SDH  Medium/Section/Line
       Layer ................................................    6
   3.3 Use of ifTable for SONET/SDH Paths. ..................    7
   3.4 Use of ifTable for SONET/SDH VTs/VCs .................    8
   3.5 SONET/SDH Terminology ................................    9
   3.6 Values for x for the Section, Line, Path,  and  VT
       Layers ...............................................   16
   4. Object Definitions ....................................   17
   4.1 The SONET/SDH Medium Group ...........................   18
   4.2 The SONET/SDH Section Group ..........................   21
   4.2.1 The SONET/SDH Section Current Group ................   21
   4.2.2 The SONET/SDH Section Interval Group ...............   23
   4.3 The SONET/SDH Line Group .............................   25
   4.3.1 The SONET/SDH Line Current Group ...................   25
   4.3.2 The SONET/SDH Line Interval Group ..................   27
   4.4 The SONET/SDH Far End Line Group .....................   30
   4.4.1 The SONET/SDH Far End Line Current Group ...........   30
   4.4.2 The SONET/SDH Far End Line Interval Group ..........   32
   4.5 The SONET/SDH Path Group .............................   34
   4.5.1 The SONET/SDH Path Current Group ...................   34
   4.5.2 The SONET/SDH Path Interval Group ..................   37
   4.6 The SONET/SDH Far End Path Group .....................   39
   4.6.1 The SONET/SDH Far End Path Current Group ...........   39
   4.6.2 The SONET/SDH Far End Path Interval Group ..........   41
   4.7 The SONET/SDH Virtual Tributary Group ................   43
   4.7.1 The SONET/SDH VT Current Group .....................   43
   4.7.2 The SONET/SDH VT Interval Group ....................   46
   4.8 The SONET/SDH Far End VT Group .......................   48
   4.8.1 The SONET/SDH Far End VT Current Group .............   48
   4.8.2 The SONET/SDH Far End VT Interval Group ............   50
   4.9 Conformance Information ..............................   52
   4.10 Compliance Statements ...............................   52
   5. Acknowledgments .......................................   56
   6. References ............................................   57
   7. Security Considerations ...............................   59
   8. Authors' Addresses ....................................   59

1. The SNMPv2 Network Management Framework โœจ

The SNMPv2 Network Management Framework is built from four major components ๐Ÿงฉ. They are:

  • RFC 1442 [1] ๐Ÿ“˜: the SMI, which covers how objects get described and named for management.
  • STD 17, RFC 1213 [6] ๐Ÿ“—: this defines MIB-II, the core set of managed objects for the Internet suite of protocols. Reference [12] explains how the Interfaces Group of MIB-II evolves through extensions and precise applications of its objects.
  • RFC 1445 [4] ๐Ÿ“™: the administrative and other architectural pieces of the framework.
  • RFC 1448 [5] ๐Ÿ“•: the protocol used for network access to managed objects.

The Framework lets new objects be defined for experimentation and evaluation ๐Ÿงช. This specification also uses:

  • RFC 1443 [2] ๐Ÿ’œ: textual conventions for specifying managed objects.
  • RFC 1444 [3] ๐Ÿฉท: conformance statements for specifying managed objects.

2. Objects ๐Ÿฆ‹

Managed objects get accessed through a virtual information store called the Management Information Base, or MIB ๐Ÿ—‚๏ธ. Objects in the MIB are defined with a subset of Abstract Syntax Notation One (ASN.1) [7], as allowed by the SMI ๐Ÿง . Each object has a name, a syntax, and an encoding. The name is an object identifier, which is an administratively assigned name that specifies an object type. The object type plus an object instance uniquely identifies one specific instance of the object ๐ŸŽฏ. For human convenience, we often use a textual string called the OBJECT DESCRIPTOR to refer to the object type too ๐Ÿ’….

The syntax of an object type defines the abstract data structure for that type, and it's written in ASN.1 ๐ŸŒธ. The SMI in RFC 1442 deliberately restricts which ASN.1 constructs can be used, and that's explicitly for simplicity ๐Ÿ™ˆ.

The encoding of an object type is how that type gets represented using its syntax ๐ŸŽ€. Tied implicitly to syntax and encoding is how the object type is represented when it's transmitted on the network ๐Ÿ“ก. The SMI specifies that the basic encoding rules of ASN.1 [8] are used, subject to the additional requirements that SNMP imposes ๐Ÿ”.

2.1. Format of Definitions ๐Ÿ“

Section 4 has the specification of all object types in this MIB module โœจ. The object types use the conventions defined in the SMI, as amended by the extensions in the SNMPv2 SMI ๐Ÿ”ฅ.

3. Overview ๐ŸŒˆ

These objects get used when the particular media realizing an interface is a SONET/SDH interface ๐ŸŒ. Right now, that applies to these values of the ifType variable in the Internet-standard MIB:

               sonet (39), sonetPath (50), sonetVT (51)

The definitions here are based on the SONET/SDH specifications in ANSI T1.105 and T1.106-1988 [9, 9a, 10], and on CCITT G.707, 708, 709, and G.783 [15-18] ๐Ÿฆ‹.

3.1. Use of the ifTable ๐Ÿ’–

This section specifies how the MIB II interfaces group, as defined in [12], gets used for SONET/SDH interfaces ๐ŸŽ€. The SONET/SDH layers support several multiplexing possibilities, and they're kind of a lot, ngl ๐Ÿ˜ญ.

For example, in SONET an STS-3 has 3 SONET Paths, and an STS-3c has 1 SONET Path ๐Ÿง. Another example: an STS-12 has 4 SONET STS-3c Paths ๐Ÿ’…. Similarly, a SONET Synchronous Payload Envelope (SPE) can carry many Virtual Tributaries (VTs). For instance, one SONET SPE can carry 28 VT1.5s ๐Ÿคฏ. It's important to note that an SPE plus a VT in SONET is collectively called a Virtual Container (VC) in SDH ๐Ÿ’œ. Also, an STS is called a Synchronous Transport Module (STM) in SDH ๐Ÿซถ.

Not every piece of SONET/SDH equipment terminates every layer ๐Ÿ™ˆ. For example, a SONET/SDH STE regenerator terminates SONET/SDH Sections only, and it's transparent to every layer above that ๐Ÿชž. SONET/SDH Add-Drop multiplexers and Digital Cross Connect Systems terminate SONET/SDH Lines ๐Ÿ”. SONET/SDH Terminal Multiplexers may also terminate SONET/SDH Paths and VTs/VCs ๐Ÿงš.

MIB II [6], as extended by [12], handles these cases through the right use of the MIB II system group and the interfaces group ๐Ÿ’ซ. The system group can name and describe the type of managed resource ๐Ÿท๏ธ. The interfaces group defines which SONET/SDH layers apply, and how those layers get configured and multiplexed ๐Ÿงฉ. It does this by representing SONET/SDH layers as ifEntries, as defined in [12], like this:

                        _____________________________
                       |             |          |    |  >
                       |             |          |    |  |
                       |    VT 1     |..........|VT K|   > K ifEntries
                       |             |          |    |  |
                       |_____________|__________|____|  >
                       |               |      |      |  >
                       |               |      |      |  |
                       |    Path 1     |......|Path L|   > L ifEntries
                       |               |      |      |  |
                       |_______________|______|______|  >
                       |                             |  >
                       |                             |  |
                       |    Line                     |  |
                       |                             |  |
                       |_____________________________|  |
                       |                             |  |
                       |                             |  |
                       |    Section Layer            |   > 1 ifEntry
                       |                             |  |
                       |_____________________________|  |
                       |                             |  |
                       |                             |  |
                       |    Physical Medium Layer    |  |
                       |                             |  |
                       |_____________________________|  >

                       Use of ifTable for a SONET/SDH port

The exact configuration and multiplexing of the layers is kept in the ifStackTable [12] ๐Ÿ—ƒ๏ธโœจ.

3.2. Use of ifTable for SONET/SDH Medium/Section/Line Layer ๐ŸŽ€

Okay this one's short and sweet ๐ŸŒˆ: only the ifGeneralGroup needs to be supported ๐Ÿ’….

ifTable Object    Use for combined SONET/SDH Medium/Section/Line Layer

Part 2 is coming up next, so stay tuned! ๐Ÿ’–๐Ÿฆ‹

Okay bestie, the ifTable rows for SONET/SDH Medium/Section/Line just keep going, so here's the rest of that table ๐Ÿฆ‹

           ifIndex           Interface index.

           ifDescr           SONET/SDH Medium/Section/Line

           ifType            sonet(39)

           ifSpeed           Speed of line rate for SONET/SDH,
                             (e.g., 155520000 bps).

           ifPhysAddress     The value of the Circuit Identifier.
                             If no Circuit Identifier has been assigned
                             this object should have an octet string with
                             zero length.

           ifAdminStatus     Supports read-only access.
                             The desired administrative status of the
                             interface.

           ifOperStatus      The value testing(3) is not used.
                             This object assumes the value down(2),
                             if the objects sonetSectionCurrentStatus
                             and sonetLineCurrentStatus have
                             any other value than sonetSectionNoDefect(1)
                             and sonetLineNoDefect(1), respectively.

           ifLastChange      sysUpTime at the last change in
                             ifOperStatus.

           ifName            Textual name of the interface or an
                             OCTET STRING of zero length.

           ifLinkUpDownTrapEnable   Set to enabled(1).
                                    Supports read-only access.

           ifHighSpeed       Speed of line in Mega-bits per second
                             (e.g., 155 Mbps)

           ifConnectorPresent Set to true(1).

3.3. Use of ifTable for SONET/SDH Paths

Okay so for paths, the only thing you have to support is the ifGeneralGroup. Literally that's it, no cap ๐Ÿ’…

          ifTable Object    Use for SONET/SDH Paths
          =========================================
           ifIndex           Interface index.

           ifDescr           SONET/SDH Path

           ifType            sonetPath(50)

           ifSpeed           set to speed of SONET/SDH path
                             (e.g., an STS-1 path has a
                             rate of 50112000 bps.)

           ifPhysAddress     Circuit Identifier or OCTET STRING of
                             zero length.

           ifAdminStatus     Supports read-only access.
                             The desired administrative status of the
                             interface.

           ifOperStatus      This object assumes the value down(2),
                             if the object sonetPathCurrentStatus has
                             any other value than sonetPathNoDefect(1).

           ifLastChange      sysUpTime at the last change in ifOperStatus.

           ifName            Textual name of the interface or an
                             OCTET STRING of zero length.

           ifLinkUpDownTrapEnable   Default value is disabled(2).
                                    Just read-only access may be
                                    supported.

           ifHighSpeed       Set to rate of SONET/SDH path
                             in Mega-bits per second.

           ifConnectorPresent Set to false(2).

3.4. Use of ifTable for SONET/SDH VTs/VCs

Same energy here: only the ifGeneralGroup needs support, periodt ๐ŸŽ€

          ifTable Object    Use for SONET/SDH VTs/VCs
          ===========================================
           ifIndex           Interface index.

           ifDescr           SONET/SDH VT/VC

           ifType            sonetVT(51)

           ifSpeed           Set to speed of VT/VC
                             (e.g., a VT1.5 has a rate of
                             1728000 bps.)

           ifPhysAddress     Circuit Identifier or OCTET STRING of
                             zero length.

           ifAdminStatus     Supports read-only access.
                             The desired administrative status of the
                             interface.

           ifOperStatus      This object assumes the value down(2),
                             if the object sonetVTCurrentStatus has
                             any other value than sonetVTNoDefect(1).

           ifLastChange      sysUpTime at the last change in
                             ifOperStatus.

           ifName            Textual name of the interface or an
                             OCTET STRING of zero length.

           ifLinkUpDownTrapEnable   Default value is disabled(2).
                                    Just read-only access may be
                                    supported.

           ifHighSpeed       Set to rate of VT in Mega-bits per second.

           ifConnectorPresent Set to false(2).

3.5. SONET/SDH Terminology

Okay this one is the vocab section and it's super important ๐Ÿค“ For SONET error conditions as a SONET system monitors them, the terms come from ANSI T1M1.3/93-005R2 [11]. For SDH circuits watched by an SDH system, the terms come from CCITT G.783 [18]. Only the SONET Performance Monitoring terminology gets defined in this document. SDH Performance Monitoring terms are similar but not identical, and you can find them in [18]. If the definition here doesn't match the ANSI T1M1.3/93-005R2 draft, the implementer should follow the definition in this document. Bestie, this document wins ๐Ÿ‘‘

Section Loss Of Frame Failure (Out of Frame Event, Severely Errored Frame Defect)

An Out of Frame (OOF) event, or Severely Errored Frame (SEF) defect, happens when four contiguous errored frame alignment words show up. A frame alignment word lives in the A1 and A2 bytes of an STS frame and is defined in T1.105. The SEF defect ends when two contiguous error-free frame words are detected. Any frame recovery circuitry that realigns after an OOF within the 250 microsecond (two frames) interval implied by this definition is acceptable โœจ

A Loss of Frame (LOF) defect gets declared when an OOF/SEF defect persists for 3 milliseconds. The LOF defect ends when the incoming signal stays continuously in-frame for 1 ms to 3 ms.

An LOF failure gets declared when the LOF defect persists for 2.5 +/- 0.5 seconds, except when an LOS defect or failure is present. The LOF failure clears when the LOS failure is declared, or when the LOF defect is absent for 10 +/- 0.5 seconds.

Loss of Signal

The Loss of Signal (LOS) defect is declared when no transitions are detected on the incoming signal (before descrambling). It's detected upon observing 2.3 to 100 microseconds of no transitions. The LOS defect clears after a 125 microsecond interval (one frame) during which no LOS defect is detected ๐ŸŒธ

The LOS failure is declared when the LOS defect persists for 2.5 +/- 0.5 seconds, or if the LOS defect is present when the criteria for LOF failure declaration have been met. The LOS failure clears when the LOS defect is absent for 10 +/- 0.5 seconds. Declaring an LOS failure clears any existing LOF failure. Clearing the LOS failure allows immediate declaration of the LOF failure if conditions warrant.

STS-Path Loss of Pointer

An Loss of Pointer (LOP) defect is declared when either a valid pointer isn't detected in eight consecutive frames, or when eight consecutive frames are detected with the New Data Flag (NDF) set to "1001" without a valid concatenation indicator (see ANSI T1.105). A LOP defect ends when either a valid pointer with a normal NDF set to "0110", or a valid concatenation indicator, is detected for three contiguous frames. Incoming STS-Path AIS shall not result in the declaration of a LOP defect.

An STS-Path LOP failure is declared when the STS-Path LOP defect persists for 2.5 +/- 0.5 seconds. It clears when the STS-Path LOP defect is absent for 10 +/- 0.5 seconds.

VT Loss of Pointer

A VT LOP defect is declared when either a valid pointer isn't detected in eight consecutive VT superframes, or when eight consecutive VT superframes are detected with the NDF set to "1001" without a valid concatenation indicator. A VT LOP defect ends when either a valid pointer with a normal NDF set to "0110", or a valid concatenation indicator, is detected for three contiguous VT superframes. Incoming VT-Path AIS shall not result in declaring a VT LOP defect.

A VT LOP failure is declared when the VT LOP defect persists for 2.5 +/- 0.5 seconds. It clears when the VT LOP defect is absent for 10 +/- 0.5 seconds.

Line Alarm Indication Signal

A Line Alarm Indication Signal (L-AIS) is defined in ANSI T1.105. These criteria are specific to the L-AIS defect:

  • Line AIS defect is detected as a "111" pattern in bits 6, 7, and 8 of the K2 byte in five consecutive frames.
  • Line AIS defect is terminated when bits 6, 7, and 8 of the K2 byte do not contain the code "111" for five consecutive frames.

A Line AIS failure is declared when the Line AIS defect persists for a period of 20.5 +/- 0.5 seconds. A Line AIS failure clears when the Line AIS defect is absent for 10 +/- 0.5 seconds. ๐Ÿซถ

STS-Path Alarm Indication Signal

The STS-Path Alarm Indication Signal (AIS) is defined in ANSI T1.105 as all ones in bytes H1, H2, and H3, as well as all ones in the entire STS SPE. These criteria are specific to the STS-Path AIS defect:

  • STS-Path AIS defect is detected as all ones in bytes H1 and H2 in three contiguous frames.
  • The STS-Path AIS defect is terminated when a valid STS Pointer is detected with the NDF set to "1001" (inverted) for one frame, or "0110" (normal) for three contiguous frames.

A STS-Path AIS failure is declared when the STS-Path AIS defect persists for 2.5 +/- 0.5 seconds. It clears when the STS-Path AIS defect is absent for 10 +/- 0.5 seconds. ๐Ÿ’œ

VT-Path Alarm Indication Signal

okay so the VT-Path AIS is only a thing for VTs in the floating mode of operation ๐Ÿฆ‹ its whole job is to warn the downstream VT Path Terminating Entity (PTE) that something broke upstream. when an STS PTE spots a failure (Line AIS or STS-Path AIS), it sends VT-Path AIS downstream as long as the STS SPE is carrying floating VTs ๐Ÿ’… the spec (ANSI T1.105) says it looks like all ones in bytes V1, V2, V3, and V4, plus all ones across the entire VT SPE ๐Ÿ˜ญ

how a VT-Path AIS defect works:

  • a VT PTE detects it when it sees all ones in bytes V1 and V2 across three contiguous VT superframes ๐Ÿ‘€
  • it ends when a valid VT pointer with a valid VT size shows up with the NDF set to "1001" (inverted) for one VT superframe, OR "0110" (normal) for three contiguous VT superframes ๐ŸŒธ

the actual failure gets declared once the VT-Path AIS defect sticks around for 2.5 +/- 0.5 seconds, and it clears when the defect is gone for 10 +/- 0.5 seconds โœจ

Line Remote Defect Indication

Line RDI (aka Line FERF) is the "110" pattern showing up in bit positions 6, 7, and 8 of the K2 byte in STS-1 #1 of the STS-N signal ๐ŸŽ€ it's also defined in ANSI T1.105, and the criteria are very specific bestie ๐Ÿง

  • a Line RDI defect is a "110" code in bits 6, 7, and 8 of the K2 byte of in STS-1 #1 across five consecutive frames ๐Ÿ”ฅ
  • it ends when any code other than "110" shows up in those same bits, across five consecutive frames ๐Ÿซถ

a Line Remote Failure Indication (RFI) failure gets declared when incoming Line RDI defects last for 2.5 +/- 0.5 seconds, and it clears when no Line RDI defects are seen for 10 +/- 0.5 seconds ๐Ÿ’œ

STS-Path Remote Defect Indication

STS-Path RDI (aka STS-Path FERF) is the one that tells the other side "hey, I'm seeing AIS or LOP over here" ๐ŸŒˆ the STS PTE shall generate it within 100 milliseconds of detecting an AIS or LOP defect, and it shall stop within 100 milliseconds once the STS PTE no longer detects STS-Path AIS or STS-Path LOP defect ๐Ÿงš it also shall accurately report whether those defects are present or absent, because lying about it would be so not it ๐Ÿ’€ it's defined in ANSI T1.105 too โœจ

the requirements for this one:

  • every STS PTE detects STS-Path RDI ๐ŸŒธ the upstream STS PTE sees it as a "1" in bit five of the Path Status byte (G1) for five contiguous frames
  • removal gets detected by a "0" in bit 5 of the G1 byte across five contiguous frames ๐Ÿฆ‹

an STS-Path Remote Failure Indication (RFI) failure is declared when incoming STS-Path RDI defects last for 2.5 +/- 0.5 seconds, and it's cleared when no STS-Path RDI defects are detected for 10 +/- 0.5 seconds ๐Ÿ’–

VT-Path Remote Defect Indication

VT Path RDI (aka VT Path FERF) follows the exact same energy as the STS one, just at the VT level ๐Ÿ“ the VT PTE shall generate it within 100 milliseconds upon detecting a VT-Path AIS or LOP defect, and transmission shall cease within 100 milliseconds when the VT PTE no longer detects VT-Path AIS or VT-Path LOP defect ๐ŸŽ€ the VT-Path RDI shall accurately report whether those defects are there or not, and it's defined in ANSI T1.105 ๐Ÿซถ

the requirements specific to this one:

  • a VT-Path RDI defect is a "1" in bit 4 of the VT-Path Overhead byte (V5) across five contiguous frames ๐Ÿ”ฅ
  • it terminates when a "0" is detected in bit 4 of the V5 byte for five contiguous frames ๐Ÿ‘‘

a VT-Path Remote Failure Indication (RFI) (derived) failure gets declared when incoming VT-Path RDI defects last for 2.5 +/- 0.5 seconds, and it clears when no VT-Path RDI defects are detected for 10 +/- 0.5 seconds ๐ŸŒธ

VT-Path Remote Failure Indication

the VT-Path RFI signal is only required for byte synch mapped DS1s where the DS1 frame bit is not mapped ๐Ÿงš ANSI T1.105 calls it "VT path yellow" right now ๐Ÿ’… when it's provided, it's what tells you about far-end failures. when it's NOT provided, the far-end failures get derived from the local timing of the VT-Path RDI defect instead ๐Ÿค“

timing check, bestie โฐ:

  • the VT-Path RFI failure is declared within 5 ms of detecting the incoming VT-Path RFI signal ๐Ÿ”ฅ
  • it's cleared within 50 ms of detecting the removal of the incoming VT-Path RFI signal ๐Ÿฆ‹

Coding Violation

Coding Violations (CV) are Bit Interleaved Parity (BIP) errors detected in the incoming signal ๐Ÿ’œ every BIP error detected bumps the CV counter up by one. so each BIP-8 can catch up to eight errors per STS-N frame, and each one increments the counter ๐ŸŒˆ

where each layer collects its CVs:

  • Section CVs shall be collected using the BIP-8 in the B1 byte located in the Section Overhead of STS-1 #1 ๐Ÿงš
  • Line CVs shall be collected using the BIP-8s in the B2 bytes located in the Line Overhead of each STS-1. since all CVs on an STS-N line get counted together, this is the same as counting each error in the BIP-8*N contained in the B2 bytes of the STS-N Line Overhead ๐Ÿคฏ
  • Path CVs shall be collected using the BIP-8 in the B3 byte of the STS-Path Overhead of the STS SPE ๐Ÿ“
  • VT CVs shall be collected using the BIP-2 in the V5 overhead byte of the floating VT โœจ

so yeah, on an STS-N signal you can get up to 8 x N CVs in each frame. that's a LOT of errors bestie ๐Ÿ˜ญ

Errored Seconds

at each layer, an Errored Second (ES) is a second that has one or more Coding Violations at that layer, OR one or more incoming defects (e.g., SEF, LOS, AIS, LOP) at that layer has occurred ๐ŸŽ€ literally that simple, lowkey iconic ๐Ÿ’…

Severely Errored Seconds

at each layer, a Severely Errored Second (SES) is a second with x or more CVs at that layer, OR a second during which at least one or more incoming defects at that layer has occurred ๐ŸŒธ the value of x changes depending on the line rate and the Bit Error Rate, so check Section 3.4 for the actual numbers ๐Ÿง

Severely Errored Framing Seconds

a Severely Errored Framing Second (SEFS) is a second containing one or more SEF events ๐Ÿฆ‹ this counter only gets counted at the Section Layer, so don't look for it anywhere else ๐Ÿ™ˆ

Unavailable Seconds

at the Line, Path, and VT layers, unavailable seconds get calculated by counting the seconds the interface is unavailable ๐Ÿ’– at each layer, the SONET/SDH interface becomes unavailable at the onset of 10 contiguous SESs. those 10 SESs are included in unavailable time ๐Ÿ˜ญ once it's unavailable, it only goes back to available at the onset of 10 contiguous seconds with no SESs, and those 10 clean seconds get excluded from unavailable time ๐ŸŒˆ

the error counts work like this: while the interface is available at a layer, ALL the counters at that layer get incremented ๐Ÿซถ while it's unavailable at that layer, the ONLY count that increments is UASs at that layer ๐Ÿ”ฅ

โš ๏ธ okay this part is a whole plot twist: when the 10 or more second period crosses the 900 second statistics window boundary, the SES and UAS counters have to be adjusted when the Unavailable Signal State is entered. so successive GETs of the affected sonetPathIntervalSES and sonetPathIntervalUAS objects (for Line and VT too) will return different values if the first GET happens during the first few seconds of the window ๐Ÿ’€ the spec calls this an unavoidable side-effect of picking the currently defined managed objects as the basis for this memo ๐Ÿ™ƒ

Unequipped

if a Path or VT connection isn't provisioned (idle), the SONET equipment signals this state by transmitting the Path or VT Signal Label like this ๐Ÿงš

  • byte C2 of the STS Path Overhead equal to 0 for an unequipped Path,
  • byte V5 of the VT Path Overhead equal to 0 for an unequipped VT.

Signal Label Mismatch

a Path or VT connection is NOT correctly provisioned if a received Path or VT Signal Label mismatch occurs ๐Ÿ˜ฌ a received Signal Label counts as mismatched if it doesn't equal either the locally provisioned value OR the value 'equipped non-specific' (1 hex) ๐Ÿ“ heads up: any received non-zero Signal Label is treated as a locally provisioned value of 'equipped non-specific' ๐Ÿ‘€

only in-service, provisioned Path Terminating equipment can detect mismatched Signal Labels. it's considered provisioned if it's been configured for a mapping AND has been assigned the signals the mapping takes place to and from ๐ŸŽ€

Circuit Identifier

this is a character string set by the circuit vendor, and it's super useful when you're talking to the vendor while troubleshooting ๐Ÿซถ basically your secret handshake with the vendor ๐Ÿคโœจ

3.6. Values for x for the Section, Line, Path, and VT Layers ๐ŸŽ€

Okay bestie, here's the cheat sheet for the x values at each layer, with the Minimum Bit Error Rate for each one ๐Ÿ’…

            Value for x for SONET/SDH Section SES Definition

       Rate            x               Minimum Bit Error Rate
       =======================================================
       OC-1             9                      1.5 x 10^-7
       0C-3            16                        1 x 10^-7
       OC-9            47                        1 x 10^-7
       OC-12           63                        1 x 10^-7
       OC-18           94                        1 x 10^-7
       OC-24          125                        1 x 10^-7
       OC-36          187                        1 x 10^-7
       OC-48          249                        1 x 10^-7


            Value for x for SONET/SDH Line SES Definition

       Rate            x               Minimum Bit Error Rate
       =======================================================
       OC-1            12                       2 x 10^-7
       0C-3            32                       2 x 10^-7
       OC-9            94                       2 x 10^-7
       OC-12          124                       2 x 10^-7
       OC-18          186                       2 x 10^-7
       OC-24          248                       2 x 10^-7
       OC-36          370                       2 x 10^-7
       OC-48          494                       2 x 10^-7


            Value for x for SONET/SDH STS-Path SES Definition

       Rate            x               Minimum Bit Error Rate
       =======================================================
       STS-1            9                       1.5 x 10^-7
       STS-3           16                         1 x 10^-7


            Value for x for SONET/SDH VT-Path SES Definition

       Rate            x               Minimum Bit Error Rate
       =======================================================
       VT1.5            4                       2 x 10^-6
       VT2              6                       2 x 10^-6
       VT3              8                       2 x 10^-6
       VT6             14                       2 x 10^-6

4. Object Definitions ๐Ÿงš

Now the main event, the MIB module itself. This is the SONET-MIB, so get ready for all the OBJECT-TYPEs ๐Ÿคฉ

  SONET-MIB DEFINITIONS ::= BEGIN


  IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
      Integer32,
            FROM SNMPv2-SMI
      TEXTUAL-CONVENTION, DisplayString
            FROM SNMPv2-TC
      MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
      ifIndex, transmission
            FROM RFC-1213;

  --  This is the MIB module for the SMDS Interface objects.


  sonetMIB MODULE-IDENTITY
      LAST-UPDATED "9401030000Z"
      ORGANIZATION "IETF AToM MIB Working Group"
      CONTACT-INFO
        "        Tracy Brown

         Postal: Bell Communications Research
                 331 Newman Springs Road
                 P.O. Box 7020
                 Red Bank, NJ  07701-7020
                 US

            Tel: +1 908 758 2107
            Fax: +1 908 758 4177

         E-mail: tacox@mail.bellcore.com


                 Kaj Tesink

         Postal: Bell Communications Research
                 331 Newman Springs Road
                 P.O. Box 7020
                 Red Bank, NJ  07701-7020
                 US

            Tel: +1 908 758 5254
            Fax: +1 908 758 4196

         E-mail: kaj@cc.bellcore.com"
      DESCRIPTION
           "The MIB module to describe
           SONET/SDH interfaces objects."
      ::= { transmission 39 }


  --  This is the MIB module for the SONET/SDH objects

  sonetObjects      OBJECT IDENTIFIER ::= { sonetMIB 1 }

  sonetObjectsPath  OBJECT IDENTIFIER ::= { sonetMIB 2 }

  sonetObjectsVT    OBJECT IDENTIFIER ::= { sonetMIB 3 }


  -- groups in the SONET/SDH MIB module

  sonetMedium       OBJECT IDENTIFIER ::= { sonetObjects 1 }

  sonetSection      OBJECT IDENTIFIER ::= { sonetObjects 2 }

  sonetLine         OBJECT IDENTIFIER ::= { sonetObjects 3 }

  sonetFarEndLine   OBJECT IDENTIFIER ::= { sonetObjects 4 }

  sonetPath         OBJECT IDENTIFIER ::= { sonetObjectsPath 1 }

  sonetFarEndPath   OBJECT IDENTIFIER ::= { sonetObjectsPath 2 }

  sonetVT           OBJECT IDENTIFIER ::= { sonetObjectsVT 1 }

  sonetFarEndVT     OBJECT IDENTIFIER ::= { sonetObjectsVT 2 }


  -- the SONET/SDH Medium group

  -- SONET/SDH interfaces for some applications may be
  -- electrical interfaces and not optical interfaces.
  -- This group handles the configuration information for
  -- both optical SONET/SDH interfaces and electrical
  -- SONET/SDH interfaces.

  sonetMediumTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF SonetMediumEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION

         "The SONET/SDH Medium table."
       ::= { sonetMedium 1 }

  sonetMediumEntry OBJECT-TYPE
      SYNTAX  SonetMediumEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the SONET/SDH Medium table."
      INDEX   { ifIndex }
       ::= { sonetMediumTable 1 }

  SonetMediumEntry ::=
      SEQUENCE {
           sonetMediumType               INTEGER,
           sonetMediumTimeElapsed        Integer32,
           sonetMediumValidIntervals     Integer32,
           sonetMediumLineCoding         INTEGER,
           sonetMediumLineType           INTEGER,
           sonetMediumCircuitIdentifier  DisplayString
      }


  sonetMediumType OBJECT-TYPE
      SYNTAX  INTEGER  {
                 sonet(1),
                 sdh(2)
              }
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "This variable identifies whether a SONET
         or a SDH signal is used across this interface."
      ::= { sonetMediumEntry 1 }

  sonetMediumTimeElapsed OBJECT-TYPE
      SYNTAX  Integer32 (1..900)
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "The number of seconds, including partial
         seconds, that have elapsed since the beginning of
         the current error-measurement period."
      ::= { sonetMediumEntry 2 }

  sonetMediumValidIntervals OBJECT-TYPE
      SYNTAX  Integer32 (0..96)
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "The number of previous intervals for which valid
         data has been stored.  A SONET device must support
         at least n intervals.
         The minimum value of n is 4.
         The default of n is 32.
         The maximum value of n is 96.
         The value of this object will be n unless
         the device was brought online within the last
         (nx15) minutes, in which case the value will be the
         number of complete 15 minute intervals the device has
         been online."
      ::= { sonetMediumEntry 3 }

  sonetMediumLineCoding OBJECT-TYPE
      SYNTAX  INTEGER {
                  sonetMediumOther(1),
                  sonetMediumB3ZS(2),
                  sonetMediumCMI(3),
                  sonetMediumNRZ(4),
                  sonetMediumRZ(5)
              }
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "This variable describes the line coding for
         this interface. The B3ZS and CMI are used for
         electrical SONET/SDH signals (STS-1 and STS-3).
         The Non-Return to Zero (NRZ) and the Return
         to Zero are used for optical SONET/SDH signals."
      ::= { sonetMediumEntry 4 }

  sonetMediumLineType OBJECT-TYPE
      SYNTAX  INTEGER {
                  sonetOther(1),
                  sonetShortSingleMode(2),
                  sonetLongSingleMode(3),
                  sonetMultiMode(4),
                  sonetCoax(5),
                  sonetUTP(6)
              }
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "This variable describes the line type for
         this interface. The line types are
         Short and Long Range
         Single Mode fiber or Multi-Mode fiber interfaces,
         and coax and UTP for electrical interfaces.  The
         value sonetOther should be used when the Line Type is
         not one of the listed values."
      ::= { sonetMediumEntry 5 }

  sonetMediumCircuitIdentifier OBJECT-TYPE
      SYNTAX  DisplayString (SIZE (0..255))
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "This variable contains the transmission
         vendor's circuit identifier, for the
         purpose of facilitating troubleshooting."
      ::= { sonetMediumEntry 6 }


  -- the SONET/SDH Section group

  -- this group consists of 2 tables:
  -- - the SONET/SDH Section Current Table
  -- - the SONET/SDH Section Interval Table



  -- the SONET/SDH Section Current Table

  -- The SONET/SDH Section
  -- current table contains various statistics
  -- being collected for the current 15 minute interval.

  sonetSectionCurrentTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF SonetSectionCurrentEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The SONET/SDH Section Current table."
       ::= { sonetSection 1 }

  sonetSectionCurrentEntry OBJECT-TYPE
      SYNTAX  SonetSectionCurrentEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the SONET/SDH Section Current table."
      INDEX   { ifIndex }
       ::= { sonetSectionCurrentTable 1 }

  SonetSectionCurrentEntry ::=
      SEQUENCE {
          sonetSectionCurrentStatus   Integer32,
          sonetSectionCurrentESs      Gauge32,
          sonetSectionCurrentSESs     Gauge32,
          sonetSectionCurrentSEFSs    Gauge32,
          sonetSectionCurrentCVs      Gauge32
      }


  sonetSectionCurrentStatus OBJECT-TYPE
      SYNTAX  Integer32 (1..6)
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "This variable indicates the
         status of the interface.
         The sonetSectionCurrentStatus
         is a bit map represented
         as a sum, therefore,
         it can represent multiple defects
         simultaneously.
         The sonetSectionNoDefect should be
         set if and only if
         no other flag is set.

okay the bit flags are where the vibes get technical ๐Ÿซถ here's the rest of the Section and Line stuff, bestie ๐Ÿ’…

                 The various bit positions are:
                       1   sonetSectionNoDefect
                       2   sonetSectionLOS
                       4   sonetSectionLOF"
               ::= { sonetSectionCurrentEntry 1 }

          sonetSectionCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of Errored
                 Seconds encountered by a SONET/SDH
                 Section in the current 15 minute interval."
               ::= { sonetSectionCurrentEntry 2 }

          sonetSectionCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Severely Errored Seconds
                 encountered by a SONET/SDH Section in the current 15
                 minute interval."
               ::= { sonetSectionCurrentEntry 3 }

          sonetSectionCurrentSEFSs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Severely Errored Framing Seconds
                 encountered by a SONET/SDH Section in the current
                 15 minute interval."
              ::= { sonetSectionCurrentEntry 4 }

          sonetSectionCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of Coding
                 Violations encountered by a
                 SONET/SDH Section in the current 15 minute interval."
               ::= { sonetSectionCurrentEntry 5 }


          -- the SONET/SDH Section Interval Table

          -- The SONET/SDH Section Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetSectionIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetSectionIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "The SONET/SDH Section Interval table."
               ::= { sonetSection 2 }

          sonetSectionIntervalEntry OBJECT-TYPE

              SYNTAX  SonetSectionIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "An entry in the SONET/SDH Section Interval table."
              INDEX   { ifIndex,
                        sonetSectionIntervalNumber }
               ::= { sonetSectionIntervalTable 1 }

          SonetSectionIntervalEntry ::=
              SEQUENCE {
                   sonetSectionIntervalNumber  Integer32,
                   sonetSectionIntervalESs     Gauge32,
                   sonetSectionIntervalSESs    Gauge32,
                   sonetSectionIntervalSEFSs   Gauge32,
                   sonetSectionIntervalCVs     Gauge32
              }


          sonetSectionIntervalNumber OBJECT-TYPE
              SYNTAX  Integer32 (1..96)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "A number between 1 and 96, which identifies the
                interval for which the set of statistics is available.
                The interval identified by 1 is the most recently
                completed 15 minute interval,
                and the interval identified
                by N is the interval immediately preceding the
                one identified
                by N-1."
               ::= { sonetSectionIntervalEntry 1 }

          sonetSectionIntervalESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Errored Seconds encountered
                 by a SONET/SDH Section in a
                 particular 15-minute interval
                 in the past 24 hours."
               ::= { sonetSectionIntervalEntry 2 }

          sonetSectionIntervalSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Severely Errored Seconds
                 encountered by a SONET/SDH Section in a
                 particular 15-minute interval
                 in the past 24 hours."
              ::= { sonetSectionIntervalEntry 3 }

          sonetSectionIntervalSEFSs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Severely Errored Framing Seconds
                 encountered by a SONET/SDH Section in a
                 particular 15-minute interval
                 in the past 24 hours."
              ::= { sonetSectionIntervalEntry 4 }

          sonetSectionIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of Coding
                 Violations encountered by a
                 SONET/SDH Section in a particular 15-minute interval
                 in the past 24 hours."
              ::= { sonetSectionIntervalEntry 5 }


          -- the SONET/SDH Line group

          -- this group consists of 2 tables:
          -- - the SONET/SDH Line Current Table
          -- - the SONET/SDH Line Interval Table


          -- the SONET/SDH Line Current Table

          -- The SONET/SDH Line
          -- current table contains various statistics
          -- being collected for the current 15 minute interval.

          sonetLineCurrentTable OBJECT-TYPE

              SYNTAX  SEQUENCE OF SonetLineCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "The SONET/SDH Line Current table."
              ::= { sonetLine 1 }

          sonetLineCurrentEntry OBJECT-TYPE
              SYNTAX  SonetLineCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "An entry in the SONET/SDH Line Current table."
              INDEX   { ifIndex }
              ::= { sonetLineCurrentTable 1 }

          SonetLineCurrentEntry ::=
              SEQUENCE {
                   sonetLineCurrentStatus    Integer32,
                   sonetLineCurrentESs       Gauge32,
                   sonetLineCurrentSESs      Gauge32,
                   sonetLineCurrentCVs       Gauge32,
                   sonetLineCurrentUASs      Gauge32
               }


          sonetLineCurrentStatus OBJECT-TYPE
              SYNTAX  Integer32 (1..6)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "This variable indicates the
                 status of the interface.
                 The sonetLineCurrentStatus
                 is a bit map represented
                 as a sum, therefore,
                 it can represent multiple defects
                 simultaneously.
                 The sonetLineNoDefect should be
                 set if and only if
                 no other flag is set.

                 The various bit positions are:
                  1   sonetLineNoDefect
                  2   sonetLineAIS
                  4   sonetLineRDI"
               ::= { sonetLineCurrentEntry 1 }

          sonetLineCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Errored
               Seconds encountered by a SONET/SDH
               Line in the current 15 minute interval."
              ::= { sonetLineCurrentEntry 2 }

          sonetLineCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Severely Errored Seconds
               encountered by a SONET/SDH Line in the current 15
               minute
               interval."
              ::= { sonetLineCurrentEntry 3 }

          sonetLineCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Coding
               Violations encountered by a
               SONET/SDH Line in the current 15 minute interval."
              ::= { sonetLineCurrentEntry 4 }

          sonetLineCurrentUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Unavailable Seconds
               encountered by a SONET/SDH Line in the current 15
               minute
               interval."
              ::= { sonetLineCurrentEntry 5 }


          -- the SONET/SDH Line Interval Table

          -- The SONET/SDH Line Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetLineIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetLineIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "The SONET/SDH Line Interval table."
               ::= { sonetLine 2 }

          sonetLineIntervalEntry OBJECT-TYPE
              SYNTAX  SonetLineIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "An entry in the SONET/SDH Line Interval table."
             INDEX   { ifIndex,
                       sonetLineIntervalNumber }
             ::= { sonetLineIntervalTable 1 }

          SonetLineIntervalEntry ::=
              SEQUENCE {
                  sonetLineIntervalNumber    Integer32,
                  sonetLineIntervalESs       Gauge32,
                  sonetLineIntervalSESs      Gauge32,
                  sonetLineIntervalCVs       Gauge32,
                  sonetLineIntervalUASs      Gauge32
              }


          sonetLineIntervalNumber OBJECT-TYPE
              SYNTAX  Integer32 (1..96)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A number between 1 and 96, which identifies the
                  interval for which the set of statistics is available.
                  The interval identified by 1 is the most recently
                  completed 15 minute interval,
                  and the interval identified
                  by N is the interval immediately preceding the
                  one identified
                  by N-1."
               ::= { sonetLineIntervalEntry 1 }

that's the end of this chunk, and the Line interval stuff is next ๐Ÿฆ‹โœจ

okay so the Line Interval counters are giving "keeping receipts for the last 24 hours" ๐Ÿงพ๐Ÿ’… each one is a Gauge32 that's read-only, and they track errored seconds, severely errored seconds, coding violations, and unavailable seconds for one 15-minute slot ๐Ÿซถ bestie this is the stuff that makes network debugging feel like detective work โœจ

          sonetLineIntervalESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Errored Seconds encountered
                 by a SONET/SDH Line in a
                 particular 15-minute interval
                 in the past 24 hours."
               ::= { sonetLineIntervalEntry 2 }

          sonetLineIntervalSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                 "The counter associated with the number of
                 Severely Errored Seconds
                 encountered by a SONET/SDH Line in a
                 particular 15-minute interval
                 in the past 24 hours."
                ::= { sonetLineIntervalEntry 3 }

          sonetLineIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                "The counter associated with the number of Coding
                Violations encountered by a
                SONET/SDH Line in a
                particular 15-minute interval
                in the past 24 hours."
              ::= { sonetLineIntervalEntry 4 }

          sonetLineIntervalUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                "The counter associated with the
                number of Unavailable Seconds
                encountered by a SONET/SDH Line in
                a particular 15-minute interval
                in the past 24 hours."
              ::= { sonetLineIntervalEntry 5 }

okay now we're entering the Far End Line group ๐Ÿ›ฐ๏ธ๐ŸŒธ and the spec is literally like "this group may only be implemented by systems that provide far end block error (FEBE) info at the Line Layer" ๐Ÿ’€ so not everyone gets to play, which is so exclusive of them lmao ๐Ÿ‘‘ it's made up of two tables: a Current table and an Interval table โœจ

the Current table is for the current 15-minute interval ๐ŸŽ€ its stats come from the FEBE bits in the third Z2 byte of the Line Overhead, in Broadband ISDN applications, and the definitions match the near-end ones ๐Ÿ’œ

          -- The SONET/SDH Far End Line group.
          -- This group may only be implemented by SONET/SDH (LTEs)
          -- systems that provide for a far end block error (FEBE)
          -- information at the SONET/SDH Line Layer.

          -- This group consists of two tables:
          --    SONET/SDH Far End Line Current Table
          --    SONET/SDH Far End Line Interval Table



          -- The SONET/SDH Far End Line Current Table

          -- The SONET/SDH Far End Line Current table contains
          -- various statistics being
          -- collected for the current 15 minute interval.
          -- The statistics are collected from the far end
          -- block error code (FEBE)
          -- within the third Z2 byte of the Line Overhead
          -- in Broadband ISDN applications.
          -- The definitions are the same as described for
          -- the near-end information.

          sonetFarEndLineCurrentTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetFarEndLineCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "The SONET/SDH Far End Line Current table."
              ::= { sonetFarEndLine 1 }

          sonetFarEndLineCurrentEntry OBJECT-TYPE
              SYNTAX  SonetFarEndLineCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "An entry in the SONET/SDH Far End Line Current table."
              INDEX   { ifIndex }
              ::= { sonetFarEndLineCurrentTable 1 }

          SonetFarEndLineCurrentEntry ::=
              SEQUENCE {
                  sonetFarEndLineCurrentESs       Gauge32,
                  sonetFarEndLineCurrentSESs      Gauge32,
                  sonetFarEndLineCurrentCVs       Gauge32,
                  sonetFarEndLineCurrentUASs      Gauge32
                 }


          sonetFarEndLineCurrentESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of Far
                 Far End Errored Seconds encountered by a SONET/SDH
                 interface in the current 15 minute interval."
             ::= { sonetFarEndLineCurrentEntry 1 }

          sonetFarEndLineCurrentSESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Severely Errored Seconds
                 encountered by a SONET/SDH Medium/Section/Line
                 interface in the current 15 minute
                 interval."
             ::= { sonetFarEndLineCurrentEntry 2 }

          sonetFarEndLineCurrentCVs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Coding Violations reported via
                 the far end block error count
                 encountered by a
                 SONET/SDH Medium/Section/Line
                 interface in the current 15 minute interval."
             ::= { sonetFarEndLineCurrentEntry 3 }

          sonetFarEndLineCurrentUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Unavailable Seconds
                 encountered by a
                 SONET/SDH Medium/Section/Line
                 interface in the current 15 minute interval."
             ::= { sonetFarEndLineCurrentEntry 4 }

next up is the Far End Line Interval table ๐Ÿง this one is basically the history book: it holds stats collected over the previous 24 hours, which can be split into 96 completed 15-minute intervals ๐Ÿ•ฐ๏ธ the spec says a system is required to store at least 4 completed intervals, and the default is 32, so that's your baseline bestie ๐Ÿ’–

          -- The SONET/SDH Far End Line Interval Table

          -- The SONET/SDH Far End Line Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetFarEndLineIntervalTable OBJECT-TYPE
             SYNTAX  SEQUENCE OF SonetFarEndLineIntervalEntry
             MAX-ACCESS  not-accessible
             STATUS  current
             DESCRIPTION
                "The SONET/SDH Far End Line Interval table."
             ::= { sonetFarEndLine 2 }

          sonetFarEndLineIntervalEntry OBJECT-TYPE
             SYNTAX  SonetFarEndLineIntervalEntry
             MAX-ACCESS  not-accessible
             STATUS  current
             DESCRIPTION
               "An entry in the SONET/SDH Far
               End Line Interval table."
             INDEX   { ifIndex,
                       sonetFarEndLineIntervalNumber }
             ::= { sonetFarEndLineIntervalTable 1 }

          SonetFarEndLineIntervalEntry ::=
              SEQUENCE {
                   sonetFarEndLineIntervalNumber    Integer32,
                   sonetFarEndLineIntervalESs       Gauge32,
                   sonetFarEndLineIntervalSESs      Gauge32,
                   sonetFarEndLineIntervalCVs       Gauge32,
                   sonetFarEndLineIntervalUASs      Gauge32
              }


          sonetFarEndLineIntervalNumber OBJECT-TYPE

             SYNTAX  Integer32 (1..96)
             MAX-ACCESS  not-accessible
             STATUS  current
             DESCRIPTION
                   "A number between 1 and 96, which identifies the
                   interval for which the set of statistics is available.
                   The interval identified by 1 is the most recently
                   completed 15 minute interval,
                   and the interval identified
                   by N is the interval immediately preceding the
                   one identified
                   by N-1."
             ::= { sonetFarEndLineIntervalEntry 1 }

          sonetFarEndLineIntervalESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                  "The counter associated with the number of
                  Far End Errored Seconds encountered
                  by a SONET/SDH Line
                  interface in a particular 15-minute interval
                  in the past 24 hours."
            ::= { sonetFarEndLineIntervalEntry 2 }

          sonetFarEndLineIntervalSESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                  "The counter associated with the number of
                  Far End Severely Errored Seconds
                  encountered by a SONET/SDH Line
                  interface in a particular 15-minute interval
                  in the past 24 hours."
            ::= { sonetFarEndLineIntervalEntry 3 }

          sonetFarEndLineIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of
                   Far End Coding Violations reported via
                   the far end block error count
                   encountered by a
                   SONET/SDH Line
                   interface in a particular 15-minute interval
                   in the past 24 hours."
              ::= { sonetFarEndLineIntervalEntry 4 }

          sonetFarEndLineIntervalUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Unavailable Seconds
                 encountered by a
                 SONET/SDH Line
                 interface in a particular 15-minute interval
                 in the past 24 hours."
             ::= { sonetFarEndLineIntervalEntry 5 }

now the Path group ๐Ÿ›ค๏ธ๐Ÿ’œ same deal, two tables, and the Path Current table is up first โœจ it's for stats collected in the current 15-minute interval, and the path current entry adds a Width and a Status field on top of the usual ES, SES, CV, and UAS counters ๐Ÿฆ‹

          -- the SONET/SDH Path group

          -- this group consists of 2 tables:
          -- - the SONET/SDH Path Current Table
          -- - the SONET/SDH Path Interval Table


          -- the SONET/SDH Path Current Table

          -- The SONET/SDH Path
          -- current table contains various statistics
          -- being collected for the current 15 minute interval.

          sonetPathCurrentTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetPathCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "The SONET/SDH Path Current table."
          ::= { sonetPath 1 }

          sonetPathCurrentEntry OBJECT-TYPE
              SYNTAX  SonetPathCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "An entry in the SONET/SDH Path Current table."
              INDEX   { ifIndex }
          ::= { sonetPathCurrentTable 1 }
          SonetPathCurrentEntry ::=
              SEQUENCE {
                  sonetPathCurrentWidth      INTEGER,
                  sonetPathCurrentStatus     Integer32,
                  sonetPathCurrentESs        Gauge32,
                  sonetPathCurrentSESs       Gauge32,
                  sonetPathCurrentCVs        Gauge32,
                  sonetPathCurrentUASs       Gauge32
              }

Okay so this is where the path stuff gets really juicy ๐Ÿฆ‹ Let's look at what each SONET/SDH Path object is doing, starting with the current-width type and status.

          sonetPathCurrentWidth OBJECT-TYPE
              SYNTAX  INTEGER  {
                      sts1(1),
                      sts3cSTM1(2),
                      sts12cSTM4(3),
                      sts24c(4),
                      sts48cSTM16(5)
               }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
               "A value that indicates the type of the SONET/SDH
               Path.  For SONET, the assigned types are
               the STS-Nc SPEs, where N = 1, 3, 12, 24, and 48.
               STS-1 is equal to 51.84 Mbps.  For SDH, the assigned
               types are the STM-Nc VCs, where N = 1, 4, and 16."
          ::= { sonetPathCurrentEntry 1 }

          sonetPathCurrentStatus OBJECT-TYPE
              SYNTAX  Integer32 (1..14)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                "This variable indicates the
                status of the interface.
                The sonetPathCurrentStatus
                is a bit map represented
                as a sum, therefore,
                it can represent multiple defects
                simultaneously.
                The sonetPathNoDefect should be
                set if and only if
                no other flag is set.

                The various bit positions are:
                   1   sonetPathNoDefect
                   2   sonetPathSTSLOP
                   4   sonetPathSTSAIS
                   8   sonetPathSTSRDI
                  16   sonetPathUnequipped
                  32   sonetPathSignalLabelMismatch"
          ::= { sonetPathCurrentEntry 2 }

          sonetPathCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Errored
               Seconds encountered by a SONET/SDH
               Path in the current 15 minute interval."
          ::= { sonetPathCurrentEntry 3 }

          sonetPathCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Severely Errored Seconds
               encountered by a SONET/SDH Path in the current 15
               minute
               interval."
          ::= { sonetPathCurrentEntry 4 }

          sonetPathCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Coding
               Violations encountered by a
               SONET/SDH Path in the current 15 minute interval."
          ::= { sonetPathCurrentEntry 5 }

          sonetPathCurrentUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Unavailable Seconds
               encountered by a Path in the current
               15 minute, interval."
          ::= { sonetPathCurrentEntry 6 }
          -- the SONET/SDH Path Interval Table

Now the bit map in sonetPathCurrentStatus is giving sum vibes ๐Ÿงฎ Each defect has its own number, so you add them up and multiple defects can show at once. Lowkey genius. And sonetPathNoDefect only shows up when literally nothing else is going on. Iconic ๐Ÿ’…

The next chunk is the Path Interval table, which keeps a history of up to 24 hours of these stats in 15 minute slices ๐Ÿ•’

          -- The SONET/SDH Path Interval Table

          -- The SONET/SDH Path Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetPathIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetPathIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "The SONET/SDH Path Interval table."
          ::= { sonetPath 2 }

          sonetPathIntervalEntry OBJECT-TYPE
              SYNTAX  SonetPathIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "An entry in the SONET/SDH Path Interval table."
              INDEX   { ifIndex,
                        sonetPathIntervalNumber }
          ::= { sonetPathIntervalTable 1 }


          SonetPathIntervalEntry ::=
              SEQUENCE {
                   sonetPathIntervalNumber     Integer32,
                   sonetPathIntervalESs        Gauge32,
                   sonetPathIntervalSESs       Gauge32,
                   sonetPathIntervalCVs        Gauge32,
                   sonetPathIntervalUASs       Gauge32
              }


          sonetPathIntervalNumber OBJECT-TYPE
              SYNTAX  Integer32 (1..96)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "A number between 1 and 96, which identifies the
                 interval for which the set of statistics is available.

                 The interval identified by 1 is the most recently
                 completed 15 minute interval,
                 and the interval identified
                 by N is the interval immediately preceding the
                 one identified
                 by N-1."
          ::= { sonetPathIntervalEntry 1 }

          sonetPathIntervalESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Errored Seconds encountered
               by a SONET/SDH Path in a
               particular 15-minute interval
               in the past 24 hours."
          ::= { sonetPathIntervalEntry 2 }

          sonetPathIntervalSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Severely Errored Seconds
               encountered by a SONET/SDH Path in
               a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetPathIntervalEntry 3 }

          sonetPathIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Coding
               Violations encountered by a
               SONET/SDH Path in a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetPathIntervalEntry 4 }

          sonetPathIntervalUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION

               "The counter associated with the number of
               Unavailable Seconds
               encountered by a Path in a
               particular 15-minute interval
               in the past 24 hours."
          ::= { sonetPathIntervalEntry 5 }

Interval number 1 is the newest completed slice and N is always one step further back โช The table can hold up to 96 slices, but a system only has to store at least 4, with 32 as the default. Real talk, that's a lot of storage flexibility ๐Ÿงš

Next up is the Far End Path group ๐ŸŒธ It's built from two tables, and the current one takes its numbers from the FEBE bits in the G1 byte of the Path Overhead. Yes, the G1 byte. Very precise, very cute.

          -- The SONET/SDH Far End Path group

          -- This group consists of two tables:
          --  - SONET/SDH Far End Path Current Table
          --  - SONET/SDH Far End Path Interval Table

          -- The SONET/SDH Far End Path Current Table

          -- The SONET/SDH Far End Path Current table
          -- contains various statistics
          -- being collected for the current 15 minute interval.
          -- The statistics are collected from
          -- the far end block error code
          -- (FEBE) within the G1 byte of the Path Overhead.
          -- The definitions are the same as described for
          -- the near-end information.

          sonetFarEndPathCurrentTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetFarEndPathCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                   "The SONET/SDH Far End Path Current table."
              ::= { sonetFarEndPath 1 }

          sonetFarEndPathCurrentEntry OBJECT-TYPE
              SYNTAX  SonetFarEndPathCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                   "An entry in the SONET/SDH Far End Path Current table."
              INDEX   { ifIndex }
              ::= { sonetFarEndPathCurrentTable 1 }

          SonetFarEndPathCurrentEntry ::=
              SEQUENCE {
                  sonetFarEndPathCurrentESs       Gauge32,
                  sonetFarEndPathCurrentSESs      Gauge32,
                  sonetFarEndPathCurrentCVs       Gauge32,
                  sonetFarEndPathCurrentUASs      Gauge32

              }


          sonetFarEndPathCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of Far
                   Far End Errored Seconds encountered by a SONET/SDH
                   interface in the current 15 minute interval."
              ::= { sonetFarEndPathCurrentEntry 1 }

          sonetFarEndPathCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of
                   Far End Severely Errored Seconds
                   encountered by a SONET/SDH Path
                   interface in the current 15 minute
                   interval."
              ::= { sonetFarEndPathCurrentEntry 2 }

          sonetFarEndPathCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of
                   Far End Coding Violations reported via
                   the far end block error count
                   encountered by a
                   SONET/SDH Path interface in
                   the current 15 minute interval."
              ::= { sonetFarEndPathCurrentEntry 3 }

          sonetFarEndPathCurrentUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Unavailable Seconds
                 encountered by a
                 SONET/SDH Path interface in
                 the current 15 minute interval."

             ::= { sonetFarEndPathCurrentEntry 4 }


          -- The SONET/SDH Far End Path Interval Table

          -- The SONET/SDH Far End Path Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetFarEndPathIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetFarEndPathIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "The SONET/SDH Far End Path Interval table."
              ::= { sonetFarEndPath 2 }

          sonetFarEndPathIntervalEntry OBJECT-TYPE
              SYNTAX  SonetFarEndPathIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "An entry in the SONET/SDH Far
                 End Path Interval table."
              INDEX   { ifIndex,
                        sonetFarEndPathIntervalNumber }
              ::= { sonetFarEndPathIntervalTable 1 }

okay so we're picking up right where the far end path stuff left off, and the SONET/SDH path counters are giving main character energy ๐Ÿ’…โœจ

          SonetFarEndPathIntervalEntry ::=
              SEQUENCE {
                   sonetFarEndPathIntervalNumber     Integer32,
                   sonetFarEndPathIntervalESs        Gauge32,
                   sonetFarEndPathIntervalSESs       Gauge32,
                   sonetFarEndPathIntervalCVs        Gauge32,
                   sonetFarEndPathIntervalUASs       Gauge32
              }


          sonetFarEndPathIntervalNumber OBJECT-TYPE
             SYNTAX  Integer32 (1..96)
             MAX-ACCESS  not-accessible
             STATUS  current
             DESCRIPTION
                  "A number between 1 and 96, which identifies the
                  interval for which the set of statistics is available.
                  The interval identified by 1 is the most recently
                  completed 15 minute interval,
                  and the interval identified
                  by N is the interval immediately preceding the
                  one identified
                  by N-1."
             ::= { sonetFarEndPathIntervalEntry 1 }

          sonetFarEndPathIntervalESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                  "The counter associated with the number of
                  Far End Errored Seconds encountered
                  by a SONET/SDH Path interface in a
                  particular 15-minute interval
                  in the past 24 hours."
             ::= { sonetFarEndPathIntervalEntry 2 }

          sonetFarEndPathIntervalSESs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                  "The counter associated with the number of
                  Far End Severely Errored Seconds
                  encountered by a SONET/SDH Path interface
                  in a particular 15-minute interval
                  in the past 24 hours."
             ::= { sonetFarEndPathIntervalEntry 3 }

          sonetFarEndPathIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of
                   Far End Coding Violations reported via
                   the far end block error count
                   encountered by a
                   SONET/SDH Path interface
                   in a particular 15-minute interval
                   in the past 24 hours."
              ::= { sonetFarEndPathIntervalEntry 4 }

          sonetFarEndPathIntervalUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Unavailable Seconds
                 encountered by a
                 SONET/SDH Path interface in
                 a particular 15-minute interval
                 in the past 24 hours."
             ::= { sonetFarEndPathIntervalEntry 5 }


          -- the SONET/SDH Virtual Tributary group

          -- this group consists of 2 tables:
          -- - the SONET/SDH VT Current Table
          -- - the SONET/SDH VT Interval Table

          -- For SDH signals, virtual tributaries are
          -- called VCs instead of VTs

          -- A VT1.5 = VC11
          -- A VT2 = VC12
          -- A VT3 = none
          -- A VT6 = VC3

okay the VT group is where it gets really detailed, so let's zoom in on the current table ๐Ÿ”๐ŸŽ€

          -- the SONET/SDH VT Current Table

          -- The SONET/SDH VT current table
          -- contains various statistics
          -- being collected for the
          -- current 15 minute interval.

          sonetVTCurrentTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetVTCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "The SONET/SDH VT Current table."
          ::= { sonetVT 1 }

          sonetVTCurrentEntry OBJECT-TYPE
              SYNTAX  SonetVTCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "An entry in the SONET/SDH VT Current table."
              INDEX   { ifIndex }
          ::= { sonetVTCurrentTable 1 }

          SonetVTCurrentEntry ::=
              SEQUENCE {
                  sonetVTCurrentWidth      INTEGER,
                  sonetVTCurrentStatus     Integer32,
                  sonetVTCurrentESs        Gauge32,
                  sonetVTCurrentSESs       Gauge32,
                  sonetVTCurrentCVs        Gauge32,
                  sonetVTCurrentUASs       Gauge32
              }


          sonetVTCurrentWidth OBJECT-TYPE
              SYNTAX  INTEGER {
                      vtWidth15VC11(1),
                      vtWidth2VC12(2),
                      vtWidth3(3),
                      vtWidth6VC2(4),
                      vtWidth6c(5)
                   }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
              "A value that indicates the type of the SONET
               VT and SDH VC.  Assigned widths are
               VT1.5/VC11, VT2/VC12, VT3, VT6/VC2, and VT6c."
          ::= { sonetVTCurrentEntry 1 }

          sonetVTCurrentStatus OBJECT-TYPE
              SYNTAX  Integer32 (1..30)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                "This variable indicates the
                status of the interface.
                The sonetVTCurrentStatus
                is a bit map represented
                as a sum, therefore,
                it can represent multiple defects
                and failures
                simultaneously.
                The sonetVTNoDefect should be
                set if and only if
                no other flag is set.

                The various bit positions are:
                   1   sonetVTNoDefect
                   2   sonetVTLOP
                   4   sonetVTPathAIS
                   8   sonetVTPathRDI
                  16   sonetVTPathRFI
                  32   sonetVTUnequipped
                  64   sonetVTSignalLabelMismatch"
          ::= { sonetVTCurrentEntry 2 }

          sonetVTCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Errored
               Seconds encountered by a SONET/SDH
               VT in the current 15 minute interval."
          ::= { sonetVTCurrentEntry 3 }

          sonetVTCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Severely Errored Seconds
               encountered by a SONET/SDH VT in the current 15 minute
               interval."
          ::= { sonetVTCurrentEntry 4 }

          sonetVTCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Coding
               Violations encountered by a
               SONET/SDH VT in the current 15 minute interval."
          ::= { sonetVTCurrentEntry 5 }

          sonetVTCurrentUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Unavailable Seconds
               encountered by a VT in the current
               15 minute, interval."
          ::= { sonetVTCurrentEntry 6 }

next up is the VT interval table, which keeps up to 24 hours of history, so it's basically a diary ๐Ÿ“–๐Ÿฆ‹

          -- the SONET/SDH VT Interval Table

          -- The SONET/SDH VT Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetVTIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetVTIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "The SONET/SDH VT Interval table."
          ::= { sonetVT 2 }

          sonetVTIntervalEntry OBJECT-TYPE
              SYNTAX  SonetVTIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
               "An entry in the SONET/SDH VT Interval table."
              INDEX   { ifIndex,
                        sonetVTIntervalNumber }
          ::= { sonetVTIntervalTable 1 }

          SonetVTIntervalEntry ::=
              SEQUENCE {
                  sonetVTIntervalNumber     Integer32,
                  sonetVTIntervalESs        Gauge32,
                  sonetVTIntervalSESs       Gauge32,
                  sonetVTIntervalCVs        Gauge32,
                  sonetVTIntervalUASs       Gauge32
              }


          sonetVTIntervalNumber OBJECT-TYPE
              SYNTAX  Integer32 (1..96)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "A number between 1 and 96, which identifies the
                interval for which the set of statistics is available.
                The interval identified by 1 is the most recently
                completed 15 minute interval,
                and the interval identified
                by N is the interval immediately preceding the
                one identified
                by N-1."
          ::= { sonetVTIntervalEntry 1 }

          sonetVTIntervalESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Errored Seconds encountered
               by a SONET/SDH VT in a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetVTIntervalEntry 2 }

          sonetVTIntervalSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Severely Errored Seconds
               encountered by a SONET/SDH VT
               in a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetVTIntervalEntry 3 }

          sonetVTIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of Coding
               Violations encountered by a
               SONET/SDH VT in a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetVTIntervalEntry 4 }

          sonetVTIntervalUASs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
               "The counter associated with the number of
               Unavailable Seconds
               encountered by a VT in a particular 15-minute interval
               in the past 24 hours."
          ::= { sonetVTIntervalEntry 5 }


          -- The SONET/SDH Far End VT group

          -- This group consists of two tables:
          --    SONET/SDH Far End VT Current Table
          --    SONET/SDH Far End VT Interval Table


          -- The SONET/SDH Far End VT Current

okay so we're deep in the Far End VT stuff now, and it is giving detail ๐Ÿงšโœจ

The Far End VT Current table is where the far end stats for the current 15 minute interval live. The comments say they come from the far end block error code (FEBE) in the G1 byte of the VT Overhead. ๐Ÿฆ‹

          -- The SONET/SDH Far End VT Current table
          -- contains various statistics
          -- being collected for the current 15 minute interval.
          -- The statistics are collected from
          -- the far end block error code
          -- (FEBE) within the G1 byte of the VT Overhead.
          -- The definitions are the same as described for
          -- the near-end information.

          sonetFarEndVTCurrentTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetFarEndVTCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "The SONET/SDH Far End VT Current table."
              ::= { sonetFarEndVT 1 }

          sonetFarEndVTCurrentEntry OBJECT-TYPE
              SYNTAX  SonetFarEndVTCurrentEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "An entry in the SONET/SDH Far End VT Current table."
              INDEX   { ifIndex }
              ::= { sonetFarEndVTCurrentTable 1 }

          SonetFarEndVTCurrentEntry ::=
              SEQUENCE {
                  sonetFarEndVTCurrentESs       Gauge32,
                  sonetFarEndVTCurrentSESs      Gauge32,
                  sonetFarEndVTCurrentCVs       Gauge32,
                  sonetFarEndVTCurrentUASs      Gauge32
              }


          sonetFarEndVTCurrentESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "The counter associated with the number of Far
                  Far End Errored Seconds encountered by a SONET/SDH
                  interface in the current 15 minute interval."
          ::= { sonetFarEndVTCurrentEntry 1 }

          sonetFarEndVTCurrentSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "The counter associated with the number of
                  Far End Severely Errored Seconds
                  encountered by a SONET/SDH VT interface
                  in the current 15 minute
                  interval."
              ::= { sonetFarEndVTCurrentEntry 2 }

          sonetFarEndVTCurrentCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "The counter associated with the number of
                  Far End Coding Violations reported via
                  the far end block error count
                  encountered by a
                  SONET/SDH VT interface
                  in the current 15 minute interval."
              ::= { sonetFarEndVTCurrentEntry 3 }

          sonetFarEndVTCurrentUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                "The counter associated with the number of
                Far End Unavailable Seconds
                encountered by a
                SONET/SDH VT interface
                in the current 15 minute interval."
             ::= { sonetFarEndVTCurrentEntry 4 }

Next up is the Far End VT Interval table, which is basically the history version of the same stats. ๐Ÿ’… It holds up to 96 completed 15 minute intervals, covering the past 24 hours, and the default is 32. The comments also say a system is required to store at least 4 completed intervals, so that's the floor, bestie. ๐ŸŽ€

Interval 1 is the most recently completed one, and each number after that goes further back in time. ๐ŸŒธ

          -- The SONET/SDH Far End VT Interval Table

          -- The SONET/SDH Far End VT Interval Table
          -- contains various statistics
          -- collected by each system over a maximum
          -- of the previous 24 hours of
          -- operation.  The past 24 hours may be broken into 96
          -- completed 15 minute intervals.
          -- A system is required to store at
          -- least 4 completed 15 minute interval.
          -- The default value is 32 intervals.

          sonetFarEndVTIntervalTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SonetFarEndVTIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "The SONET/SDH Far End VT Interval table."
              ::= { sonetFarEndVT 2 }

          sonetFarEndVTIntervalEntry OBJECT-TYPE
              SYNTAX  SonetFarEndVTIntervalEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                "An entry in the SONET/SDH Far
                End VT Interval table."
              INDEX   { ifIndex,
                        sonetFarEndVTIntervalNumber }
              ::= { sonetFarEndVTIntervalTable 1 }

          SonetFarEndVTIntervalEntry ::=
             SEQUENCE {
                   sonetFarEndVTIntervalNumber     Integer32,
                   sonetFarEndVTIntervalESs        Gauge32,
                   sonetFarEndVTIntervalSESs       Gauge32,
                   sonetFarEndVTIntervalCVs        Gauge32,
                   sonetFarEndVTIntervalUASs       Gauge32
              }


          sonetFarEndVTIntervalNumber OBJECT-TYPE

              SYNTAX  Integer32 (1..96)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                 "A number between 1 and 96, which identifies the
                 interval for which the set of statistics is available.
                 The interval identified by 1 is the most recently
                 completed 15 minute interval,
                 and the interval identified
                 by N is the interval immediately preceding the
                 one identified
                 by N-1."
              ::= { sonetFarEndVTIntervalEntry 1 }

          sonetFarEndVTIntervalESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                    "The counter associated with the number of
                    Far End Errored Seconds encountered
                    by a SONET/SDH VT interface
                    in a particular 15-minute interval
                    in the past 24 hours."
             ::= { sonetFarEndVTIntervalEntry 2 }

          sonetFarEndVTIntervalSESs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                    "The counter associated with the number of
                    Far End Severely Errored Seconds
                    encountered by a SONET/SDH VT interface
                    in a particular 15-minute interval
                    in the past 24 hours."
              ::= { sonetFarEndVTIntervalEntry 3 }

          sonetFarEndVTIntervalCVs OBJECT-TYPE
              SYNTAX  Gauge32
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                   "The counter associated with the number of
                   Far End Coding Violations reported via
                   the far end block error count
                   encountered by a
                   SONET/SDH VT interface in a
                   particular 15-minute interval
                   in the past 24 hours."
              ::= { sonetFarEndVTIntervalEntry 4 }

          sonetFarEndVTIntervalUASs OBJECT-TYPE
             SYNTAX  Gauge32
             MAX-ACCESS  read-only
             STATUS  current
             DESCRIPTION
                 "The counter associated with the number of
                 Far End Unavailable Seconds
                 encountered by a
                 SONET/SDH VT interface in a
                 particular 15-minute interval
                 in the past 24 hours."
             ::= { sonetFarEndVTIntervalEntry 5 }

Now we get to conformance, the part where the MIB says which groups you have to build. ๐ŸŽฏ The compliance statement for SONET/SDH interfaces says which groups are mandatory and which are optional, depending on what your system actually terminates: Lines, Paths, or Virtual Tributaries. The sonetLineStuff, sonetPathStuff and sonetVTStuff groups are mandatory for the systems that terminate those layers, and the far end groups are optional. ๐Ÿ“

          -- conformance information

          sonetConformance OBJECT IDENTIFIER ::= { sonetMIB 4 }

          sonetGroups      OBJECT IDENTIFIER ::= { sonetConformance 1 }
          sonetCompliances OBJECT IDENTIFIER ::= { sonetConformance 2 }


          -- compliance statements

          sonetCompliance MODULE-COMPLIANCE
              STATUS  current
              DESCRIPTION
                      "The compliance statement for SONET/SDH
                       interfaces."

              MODULE  -- this module
                  MANDATORY-GROUPS { sonetMediumStuff, sonetSectionStuff }

                  GROUP       sonetLineStuff
                  DESCRIPTION
                      "Implementation of this group is mandatory for all
                       SONET/SDH systems that terminate SONET/SDH Lines,
                       Paths or Virtual Tributaries."

                  GROUP       sonetFarEndLineStuff
                  DESCRIPTION
                      "Implementation of this group is optional for all
                       SONET/SDH systems that terminate SONET/SDH Lines,
                       Paths or Virtual Tributaries, and that
                       provide for a far end block error (FEBE)
                       information at the SONET/SDH Line Layer."

                  GROUP       sonetPathStuff
                  DESCRIPTION
                      "Implementation of this group is mandatory for all
                       SONET/SDH systems that terminate SONET/SDH
                       Paths or Virtual
                       Tributaries."

                  OBJECT      sonetPathWidth
                  MIN-ACCESS  read-only
                  DESCRIPTION
                      "Write access is not required."

                  GROUP       sonetFarEndPathStuff
                  DESCRIPTION
                      "Implementation of this group is optional for all
                       SONET/SDH systems that terminate SONET/SDH
                       Paths or Virtual
                       Tributaries, and that process
                       Far End information."

                  GROUP       sonetVTStuff
                  DESCRIPTION
                      "Implementation of this group is mandatory for all
                       SONET/SDH systems that terminate SONET/SDH
                       Virtual Tributaries."

                  OBJECT      sonetVTWidth
                  MIN-ACCESS  read-only
                  DESCRIPTION
                      "Write access is not required."

                  GROUP       sonetFarEndVTStuff
                  DESCRIPTION
                      "Implementation of this group is optional for
                       all SONET/SDH systems that terminate the
                       SONET/SDH floating Virtual Tributaries, and
                       that process Far End information."

              ::= { sonetCompliances 1 }

Last bit for this part: the units of conformance. These are the object groups themselves, and they're grouped under sonetGroups. sonetMediumStuff covers the config info for every SONET/SDH interface, and sonetSectionStuff covers the Section-specific stuff. โœจ

          -- units of conformance

          sonetMediumStuff    OBJECT-GROUP
              OBJECTS { sonetMediumType,
                        sonetMediumTimeElapsed,
                        sonetMediumValidIntervals,
                        sonetMediumLineCoding,
                        sonetMediumLineType,
                        sonetMediumCircuitIdentifier }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing configuration
                      information applicable to all SONET/SDH
                      interfaces."
              ::= { sonetGroups 1 }

          sonetSectionStuff    OBJECT-GROUP
              OBJECTS { sonetSectionCurrentStatus,
                        sonetSectionCurrentESs,
                        sonetSectionCurrentSESs,
                        sonetSectionCurrentSEFSs,
                        sonetSectionCurrentCVs,
                        sonetSectionIntervalESs,
                        sonetSectionIntervalSESs,
                        sonetSectionIntervalSEFSs,
                        sonetSectionIntervalCVs
           }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH Section interfaces."
              ::= { sonetGroups 2 }
          sonetLineStuff    OBJECT-GROUP
              OBJECTS { sonetLineCurrentStatus,
                        sonetLineCurrentESs,
                        sonetLineCurrentSESs,
                        sonetLineCurrentCVs,
                        sonetLineCurrentUASs,
                        sonetLineIntervalESs,
                        sonetLineIntervalSESs,
                        sonetLineIntervalCVs,
                        sonetLineIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH Line interfaces."
              ::= { sonetGroups 3 }

          sonetFarEndLineStuff    OBJECT-GROUP
              OBJECTS { sonetFarEndLineCurrentESs,
                        sonetFarEndLineCurrentSESs,
                        sonetFarEndLineCurrentCVs,
                        sonetFarEndLineCurrentUASs,
                        sonetFarEndLineIntervalESs,
                        sonetFarEndLineIntervalSESs,
                        sonetFarEndLineIntervalCVs,
                        sonetFarEndLineIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH Line interfaces,
                      and maintaining Line Far End information."
              ::= { sonetGroups 4 }

          sonetPathStuff    OBJECT-GROUP
              OBJECTS { sonetPathCurrentWidth,
                        sonetPathCurrentStatus,
                        sonetPathCurrentESs,
                        sonetPathCurrentSESs,
                        sonetPathCurrentCVs,
                        sonetPathCurrentUASs,
                        sonetPathIntervalESs,
                        sonetPathIntervalSESs,
                        sonetPathIntervalCVs,
                        sonetPathIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH Path interfaces."
              ::= { sonetGroups 5 }

          sonetFarEndPathStuff    OBJECT-GROUP
              OBJECTS { sonetFarEndPathCurrentESs,
                        sonetFarEndPathCurrentSESs,
                        sonetFarEndPathCurrentCVs,
                        sonetFarEndPathCurrentUASs,
                        sonetFarEndPathIntervalESs,
                        sonetFarEndPathIntervalSESs,
                        sonetFarEndPathIntervalCVs,
                        sonetFarEndPathIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH Path interfaces,
                      and maintaining Path Far End information."
              ::= { sonetGroups 6 }

          sonetVTStuff    OBJECT-GROUP
              OBJECTS { sonetVTCurrentWidth,
                        sonetVTCurrentStatus,
                        sonetVTCurrentESs,
                        sonetVTCurrentSESs,
                        sonetVTCurrentCVs,
                        sonetVTCurrentUASs,
                        sonetVTIntervalESs,
                        sonetVTIntervalSESs,
                        sonetVTIntervalCVs,
                        sonetVTIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH VT interfaces."
              ::= { sonetGroups 7 }

          sonetFarEndVTStuff    OBJECT-GROUP
              OBJECTS { sonetFarEndVTCurrentESs,
                        sonetFarEndVTCurrentSESs,
                        sonetFarEndVTCurrentCVs,
                        sonetFarEndVTCurrentUASs,
                        sonetFarEndVTIntervalESs,
                        sonetFarEndVTIntervalSESs,
                        sonetFarEndVTIntervalCVs,
                        sonetFarEndVTIntervalUASs }
              STATUS  current
              DESCRIPTION
                      "A collection of objects providing information
                      specific to SONET/SDH VT interfaces,
                      and maintaining VT Far End information."
              ::= { sonetGroups 8 }



          END

5. Acknowledgments ๐Ÿซถ

okay so this whole spec is a product of the AToM MIB Working Group, and they absolutely deserve the flowers ๐Ÿ’ bestie, the team that made this happen is giving main character energy ๐Ÿ‘‘

6. References ๐Ÿ“š

[1] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of Management Information for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1442, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.

[2] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual Conventions for version 2 of the the Simple Network Management Protocol (SNMPv2)", RFC 1443, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.

[3] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Conformance Statements for version 2 of the the Simple Network Management Protocol (SNMPv2)", RFC 1444, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.

[4] Galvin, J., and K. McCloghrie, "Administrative Model for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1445, Trusted Information Systems, Hughes LAN Systems, April 1993.

[5] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1448, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993.

[6] McCloghrie, K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", STD 17, RFC 1213, Hughes LAN Systems, Inc., Performance Systems International, March 1991.

[7] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).

[8] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization. International Standard 8825, (December, 1987).

[9] American National Standard for Telecommunications - Digital Hierarchy - Optical Interface Rates and Formats Specification, ANSI T1.105-1988.

[9a] ANSI T1.105-1991.

[10] American National Standard for Telecommunications - Digital Hierarchy - Optical Interface Specification (Single-Mode), ANSI T1.106-1988.

[11] American National Standard for Telecommunications -- Layer 1 In-Service Digital Transmission Performance Monitoring T1M1.3/93-005R2, July 1993.

[12] McCloghrie, K., and F. Kastenholz, "Evolution of Interfaces Group of MIB-II", RFC 1573, Hughes LAN Systems, FTP Software, January 1994.

[13] Cox, T., and K. Tesink, Editors, "Definitions of Managed Objects for the DS3/E3 Interface Type", RFC 1407, Bellcore, January 1993.

[14] Baker, F., and J. Watt, Editors, "Definitions of Managed Objects for the DS1/E1 Interface Type", RFC 1406, Advanced Computer Communications, Newbridge Networks Corporation, January 1993.

[15] CCITT Recommendation G.707, "Synchronous Digital Hierarchy Bit Rates", June 1992.

[16] CCITT Recommendation G.708, "Network Node Interface for the Synchronous Digital Hierarchy", June 1992.

[17] CCITT Recommendation G.709, "Synchronous Multiplexing Structure", June 1992.

[18] CCITT Recommendation G.783, "Characteristics of Synchronous Digital Hierarchy (SDH) Multiplexing Equipment Functional Blocks", November 1992.

7. Security Considerations ๐Ÿ”’

plot twist: this memo does not discuss security issues at all ๐Ÿ’€ Security issues are not discussed in this memo.

8. Authors' Addresses ๐Ÿ’Œ

these are the lovely people who wrote it ๐ŸŽ€

Tracy A. Brown
Bell Communications Research
331 Newman Springs Road
P.O. Box 7020
Red Bank, NJ  07701-7020

Phone: (908) 758-2107
EMail: tacox@mail.bellcore.com


Kaj Tesink
Bell Communications Research
331 Newman Springs Road
P.O. Box 7020
Red Bank, NJ  07701-7020

Phone: (908) 758-5254
EMail: kaj@cc.bellcore.com
๐Ÿ“ฆ where this page comes from