RFC 3592

Definitions of Managed Objects for the Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Interface Type

πŸ“… published September 2003, from ietf

RFC 3592: Definitions of Managed Objects for the SONET/SDH Interface Type πŸŽ€

Okay bestie, this is Part 1 of 12 of RFC 3592, and it's giving foundational vibes πŸ’…βœ¨. Here's the tea: K. Tesink from Telcordia Technologies wrote it in September 2003. It's a Standards Track document, and it obsoletes RFC 2558 πŸ¦‹.

Status of this Memo ✨

This document is an Internet standards track protocol for the Internet community, and it's basically asking everyone to talk about it and suggest improvements 🫢. For where this protocol sits in standardization, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited 🌈.

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract 🌸

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 managing Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) interfaces πŸ”₯. It's a companion to the documents defining Managed Objects for the DS1/E1/DS2/E2 and DS3/E3 Interface Types, so they're besties πŸ‘―β€β™€οΈ.

This memo replaces RFC 2558 😭. If you want the full glow-up list of what changed, look in the MIB module's REVISION clause ✨.

Table of Contents πŸ“–

1.  Conventions ..................................................  2
2.  The Internet-Standard Management Framework ...................  3
3.  Overview .....................................................  3
    3.1.  Use of the ifTable .....................................  3
    3.2.  Use of ifTable for SONET/SDH
          Medium/Section/Line Layer ..............................  5
    3.3.  Use of ifTable for SONET/SDH Paths .....................  6
    3.4.  Use of ifTable for SONET/SDH VTs/VCs ...................  7
    3.5.  SONET/SDH Terminology ..................................  7
4.  Object Definitions ........................................... 15
    4.1.  The SONET/SDH Medium Group ............................. 19
    4.2.  The SONET/SDH Section Group ............................ 23

          4.2.1.  The SONET/SDH Section Current Group ............ 23
          4.2.2.  The SONET/SDH Section Interval Group ........... 25
    4.3.  The SONET/SDH Line Group ............................... 28
          4.3.1.  The SONET/SDH Line Current Group ............... 28
          4.3.2.  The SONET/SDH Line Interval Group .............. 30
    4.4.  The SONET/SDH Far End Line Group ....................... 32
          4.4.1.  The SONET/SDH Far End Line Current Group ....... 32
          4.4.2.  The SONET/SDH Far End Line Interval Group ...... 34
    4.5.  The SONET/SDH Path Group ............................... 37
          4.5.1.  The SONET/SDH Path Current Group ............... 37
          4.5.2.  The SONET/SDH Path Interval Group .............. 39
    4.6.  The SONET/SDH Far End Path Group ....................... 42
          4.6.1.  The SONET/SDH Far End Path Current Group ....... 42
          4.6.2.  The SONET/SDH Far End Path Interval Group ...... 44
    4.7.  The SONET/SDH Virtual Tributary Group .................. 46
          4.7.1.  The SONET/SDH VT Current Group ................. 46
          4.7.2.  The SONET/SDH VT Interval Group ................ 49
    4.8.  The SONET/SDH Far End VT Group ......................... 51
          4.8.1.  The SONET/SDH Far End VT Current Group ......... 51
          4.8.2.  The SONET/SDH Far End VT Interval Group......... 53
    4.9.  Conformance Information ................................ 56
    4.10. Compliance Statements .................................. 56
5.  Acknowledgments .............................................. 65
6.  Security Considerations ...................................... 65
7.  References ................................................... 66
    7.1.  Normative References ................................... 66
    7.2.  Informative References ................................. 68
8.  Intellectual Property Statement .............................. 68
Appendix A: The delay-line approach to statistics collection ..... 69
Appendix B: RFC 1595 SES interpretation .......................... 71
Author's Address ................................................. 72
Full Copyright Statement ......................................... 73

1. Conventions 🩷

Here's the key word rundown πŸ”‘. When these words show up in this document, they're "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL", and you interpret them as described in BCP 14, RFC 2119 [RFC2119] πŸŽ€.

2. The Internet-Standard Management Framework πŸ¦‹

If you want the full overview of the current Internet-Standard Management Framework docs, go read section 7 of RFC 3410 [RFC3410] πŸ“š.

Managed objects are accessed through a virtual information store called the Management Information Base, or MIB 🌈. MIB objects are usually accessed with the Simple Network Management Protocol (SNMP) 🧚. Objects in the MIB are defined using the Structure of Management Information (SMI) πŸ’…. This memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] πŸ”₯.

The textual conventions used in this document are defined in RFC 2579 [RFC2579] and RFC 3593 [RFC3593] ✨.

3. Overview 🌟

These objects are used when the media realizing an interface is a SONET/SDH interface 🫢. Right now, that's for 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 specs in ANSI T1.105 and T1.106-1988 [T1.105a][T1.105b][T1.106] and CCITT G.707, 708, 709, and G.783 [G.707][G.708][G.709][G.783] πŸ“–πŸ’œ.

3.1. Use of the ifTable πŸ“

This section explains how the MIB II interfaces group, as defined in [RFC2863], gets used for SONET/SDH interfaces πŸ’–. SONET/SDH layers support several multiplexing possibilities, and they're giving variety 🌸.

For example, in SONET a Synchronous Transport Signal 3 (STS-3) has 3 SONET Paths, and an STS-3c has 1 SONET Path 🧚. Another example is an STS-12 having 4 SONET STS-3c Paths πŸ’…. A SONET Synchronous Payload Envelope (SPE) can carry many Virtual Tributaries (VTs), like one SONET SPE carrying 28 VT1.5s πŸ¦‹. It's important to note that an SPE and a VT in SONET are collectively called a Virtual Container (VC) in SDH πŸ”₯. Also, an STS is called a Synchronous Transport Module (STM) in SDH ✨.

Not all SONET/SDH equipment terminates all SONET/SDH layers πŸ™ˆ. For example, a SONET/SDH STE regenerator terminates SONET/SDH Sections only, and it's transparent for 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 [RFC1213], as extended by [RFC2863], handles these cases with proper 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 are configured and multiplexed πŸ’œ. This works through proper representation of SONET/SDH Layers by ifEntries, as defined in [RFC2863], 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 [RFC2863] and in the ifInvStackTable [RFC2864] πŸ”₯✨.

3.2. Use of ifTable for SONET/SDH Medium/Section/Line Layer 🌊

Only the ifGeneralInformationGroup needs to be supported 🫧.

ifTable Object    Use for combined SONET/SDH
                  Medium/Section/Line Layer
=====================================================================
 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     May be implemented with 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   Default value is enabled(1).
                          May be implemented with read-only access.

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

 ifConnectorPresent Set to true(1).

 ifAlias            The (non-volatile) alias name for this interface
                    as assigned by the network manager.

3.3. Use of ifTable for SONET/SDH Paths

okay so for SONET/SDH paths, only the ifGeneralInformationGroup needs to be supported πŸ’– that's the bare minimum, bestie, and it's still a lot of fields to keep straight πŸŽ€

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     May be implemented with 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).
                          May be implemented with read-only access.

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

 ifConnectorPresent Set to false(2).

 ifAlias            The (non-volatile) alias name for this interface
                    as assigned by the network manager.

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

same energy here: only the ifGeneralInformationGroup needs to be supported ✨ this time the table is for VTs and VCs πŸ¦‹

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     May be implemented with 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).
                          May be implemented with read-only access.

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

 ifConnectorPresent Set to false(2).

 ifAlias            The (non-volatile) alias name for this interface
                    as assigned by the network manager.

3.5. SONET/SDH Terminology

okay this section is where the error-condition vocab lives, and it's giving very precise πŸ€“πŸ’… the SONET terms come from T1.231 [T1M1.3][T1.231a][T1.231b], and the SDH terms come from CCITT G.783 [G.783] 🌸 only the SONET Performance Monitoring terminology is defined in this document. the SDH Performance Monitoring terms are similar but not identical, so go check [G.783] for those ✨

the big rule: if the definition here doesn't match the one in the T1.231 document, the implementer should follow the definition described in this document πŸ‘‘ and in some cases other or additional references are used compared with the ones cited above, and the text will say so when that happens 🫢

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

an Out of Frame (OOF) event (or Severely Errored Frame defect) is the occurrence of four contiguous errored frame alignment words 😭 a frame alignment word sits in the A1 and A2 bytes of an STS frame, and it's defined in T1.105. the SEF defect ends when two contiguous error-free frame words are detected πŸ’–

any implementation of the frame recovery circuitry that achieves realignment after an OOF within the 250 microsecond (two frames) interval implied by this definition is acceptable ✨

a Loss of Frame (LOF) defect is declared when an OOF/SEF defect persists for a period of 3 milliseconds πŸŽ€ the LOF defect is terminated when the incoming signal stays continuously in-frame for a period of 1 ms to 3 ms πŸ¦‹

a LOF failure is declared when the LOF defect persists for a period of 2.5 +/- 0.5 seconds, except when an LOS defect or failure is present πŸ’… the LOF failure is cleared 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 gets detected upon observing 2.3 to 100 microseconds of no transitions 😭 and the LOS defect is cleared 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 a period of 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 is cleared when the LOS defect is absent for a period of 10 +/- 0.5 seconds πŸ’œ declaration of LOS failure clears any existing LOF failure, and clearing the LOS failure allows immediate declaration of the LOF failure if conditions warrant πŸ‘‘

STS-Path Loss of Pointer

a Loss of Pointer (LOP) defect is declared when either a valid pointer is not 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 is terminated 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 a period of 2.5 +/- 0.5 seconds πŸ’– an STS-Path LOP failure is cleared 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 is not 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 is terminated 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 πŸ¦‹ a VT LOP failure is cleared 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 πŸŽ€ the following 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 2.5 +/- 0.5 seconds πŸ’œ a Line AIS failure is cleared 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 πŸ”₯ the following 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.

an STS-Path AIS failure is declared when the STS-Path AIS defect persists for 2.5 +/- 0.5 seconds πŸ‘‘ an STS-Path AIS failure is cleared when the STS-Path AIS defect is absent for 10 +/- 0.5 seconds 🌈

VT-Path Alarm Indication Signal

the VT-Path Alarm Indication Signal (AIS) is only applicable for VTs in the floating mode of operation 🧚 VT-Path AIS is used to alert the downstream VT Path Terminating Entity (PTE) of an upstream failure 🫢 upon detection of a failure, Line AIS, or STS-Path AIS, an STS PTE will generate downstream VT-Path AIS if the STS Synchronous Payload Envelope (SPE) is carrying floating VTs πŸ’– VT-Path AIS is specified in ANSI T1.105 as all ones in bytes V1, V2, V3, and V4, as well as all ones in the entire VT SPE πŸ¦‹ the following criteria are specific to the VT-Path AIS defect:

  • VT-Path AIS defect is detected by a VT PTE as all ones in bytes V1 and V2 in three contiguous VT superframes.
  • VT-Path AIS defect is terminated when a valid VT pointer with a valid VT size is detected with the NDF set to "1001" (inverted) for one VT superframe, or "0110" (normal) for three contiguous VT superframes are detected.

a VT-Path AIS failure is declared when the VT-Path AIS defect persists for 2.5 +/- 0.5 seconds πŸŽ€ a VT-Path AIS failure is cleared when the VT-Path AIS defect is absent for 10 +/- 0.5 seconds πŸ’…

Line Remote Defect Indication

Line Remote Defect Indication (RDI) (aka Line FERF) signal is the occurrence of a "110" pattern in bit positions 6, 7, and 8 of the K2 byte in STS-1 #1 of the STS-N signal 🌸 Line RDI is defined in ANSI T1.105 ✨ the following criteria are specific to the Line RDI defect:

  • Line RDI defect is a "110" code in bits 6, 7, and 8 of the K2 byte of in STS-1 #1 in x consecutive frames, where x = 5 [T1.231a][T1.231b] or 10 [T1.231b].
  • Line RDI defect is terminated when any code other than "110" is detected in bits 6, 7, and 8 of the K2 byte in x consecutive frames, where x = 5 [T1.231a][T1.231b] or 10 [T1.231b].

a Line Remote Failure Indication (RFI) failure is declared when the incoming Line RDI defects last for 2.5 +/- 0.5 seconds πŸ”₯ the Line RFI failure is cleared when no Line RDI defects are detected for 10 +/- 0.5 seconds πŸ’œ

STS-Path Remote Defect Indication

STS-Path RDI (aka STS-Path FERF) signal shall be generated within 100 milliseconds by the STS PTE upon detection of an AIS or LOP defect πŸ‘‘ transmission of the STS-Path RDI signal shall cease within 100 milliseconds when the STS PTE no longer detects STS-Path AIS or STS-Path LOP defect 🌈 the STS-Path RDI shall accurately report the presence or absence of STS-Path AIS or STS-Path LOP defects 🧚 STS-Path RDI defect is defined in ANSI T1.105 🫢 the following requirements are specific to the STS-Path RDI defect:

  • STS-Path RDI is detected by all STS PTEs. STS-Path RDI is detected by the upstream STS PTE as a "1" in bit five of the Path Status byte (G1) for x consecutive frames, where x = 5 [T1.231a] or 10 [T1.231b].

Okay so the STS-Path RDI removal bit is detected by a "0" in bit 5 of the G1 byte, but only after x consecutive frames, where x = 5 [T1.231a] or 10 [T1.231b]. πŸŽ€

  • Removal of STS-Path Remote Defect Indication is detected by a "0" in bit 5 of the G1 byte in x consecutive frames, where x = 5 [T1.231a] or 10 [T1.231b].

Now the STS-Path RFI failure. It gets declared when the incoming STS-Path RDI defects last for 2.5 +/- 0.5 seconds, and it only clears once no STS-Path RDI defects have shown up for 10 +/- 0.5 seconds. Patience is literally a protocol feature here 🫢

VT-Path Remote Defect Indication

Okay, this one is giving timing drama πŸ’… The VT Path RDI (aka VT Path FERF) signal SHALL be generated within 100 milliseconds by the VT PTE once it detects a VT-Path AIS or LOP defect. When the VT PTE stops detecting VT-Path AIS or VT-Path LOP defects, transmission of the VT-Path RDI signal SHALL cease within 100 milliseconds. The VT-Path RDI SHALL accurately report whether VT-Path AIS or VT-Path LOP defects are present or absent. The VT-Path RDI defect is defined in ANSI T1.105, and these are the requirements that are specific to it:

  • The VT-Path RDI defect is the occurrence of a "1" in bit 4 of the VT-Path Overhead byte (V5) in x consecutive frames, where x = 5 [T1.231a] or 10 [T1.231b].
  • The VT-Path RDI defect is terminated when a "0" is detected in bit 4 of the VT-Path Overhead byte (V5) for x consecutive frames, where x = 5 [T1.231a] or 10 [T1.231b].

A VT-Path Remote Failure Indication (RFI) (derived) failure is declared when the incoming VT-Path RDI defects last for 2.5 +/- 0.5 seconds. It gets cleared when no VT-Path RDI defects are detected for 10 +/- 0.5 seconds. ✨

VT-Path Remote Failure Indication

Real talk, this one is picky πŸ™ˆ The VT-Path RFI signal is only REQUIRED for byte synch mapped DS1s where the DS1 frame bit is not mapped. It's specified in ANSI T1.105, where it's currently called VT path yellow. When it's provided, the VT-Path RFI signal is used to indicate far-end failures. When it's not provided, far-end failures are derived from the local timing of the VT-Path RDI defect. The VT-Path RFI failure is declared within 5 ms of detecting the incoming VT-Path RFI signal, and it's cleared within 50 ms of detecting that the incoming VT-Path RFI signal has been removed. πŸ¦‹

Coding Violation

Coding Violations (CV) are Bit Interleaved Parity (BIP) errors detected in the incoming signal. Every BIP error that gets detected bumps the CV counter by one. So each BIP-8 can detect up to eight errors per STS-N frame, and each one of those increments the CV counter. 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. So on an STS-N signal, up to 8 x N CVs may occur in each frame. Path CVs SHALL be collected using the BIP-8 in the B3 byte of the STS-Path Overhead of the STS SPE. Finally, VT CVs SHALL be collected using the BIP-2 in the V5 overhead byte of the floating VT. πŸ’–

Errored Seconds

At each layer, an Errored Second (ES) is a second with 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. So basically, if anything went wrong that second, it counts πŸ“

Severely Errored Seconds

Okay, this part has a lot of sources πŸ“š According to [T1M1.3][T1.231a][TR253][GR253][T1.231b] at each layer, an 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 values of x in RFC 1595 [RFC1595] were based on [T1M1.3] and [TR253] (see Appendix B). Those values were later relaxed in [T1.231a][GR253][T1.231b]. On top of that, according to G.826 [G.826], SESs are measured as a percentage of errored blocks. Multiple definitions, who knew 😭

To keep all these definitions straight, this memo defines an object called sonetSESthresholdSet, which determines the correct interpretation of SES. For backward compatibility, if this object is not implemented, the interpretation in Appendix B SHALL apply. Otherwise, a more recent interpretation is suggested. An agent is NOT REQUIRED to support all sets of definitions. Totally chill 🌸

Note that CV counts SHOULD be frozen during SESs.

Also, if a manager changes the value of this object, all SES statistics collected before that change SHALL be invalidated. Reset energy 🧹

Severely Errored Framing Seconds

A Severely Errored Framing Second (SEFS) is a second containing one or more SEF events. This counter only counts at the Section Layer. 🧚

Unavailable Seconds

Now this is the main character of the whole section πŸ‘‘ At the Line, Path, and VT layers, an unavailable second is calculated by counting the number of seconds that the interface is unavailable. At each layer, the SONET/SDH interface is said to be unavailable at the onset of 10 contiguous SESs. Those 10 SESs are included in unavailable time. Once it's unavailable, the SONET/SDH interface only becomes available at the onset of 10 contiguous seconds with no SESs. Those 10 seconds with no SESs are excluded from unavailable time. For the error counts at each layer, all counters at that layer are incremented while the SONET/SDH interface is deemed available there. While the interface is deemed unavailable at that layer, the only count that gets incremented is UASs at that layer.

Note that this definition means the agent can't tell until after a ten second interval has passed whether a given one-second interval belongs to available or unavailable time. If the agent updates the performance statistics in real time, it MUST be prepared to retroactively reduce the ES, SES, and SEFS counts by 10 and increase the UAS count by 10 when it determines that available time has been entered. It MUST also be prepared to reduce the CV count by the number of violations counted since the onset of unavailable time. The agent MUST be similarly prepared to retroactively decrease the UAS count by 10 and increase the ES and CV counts as necessary upon entering available time.

There's also a special case πŸ™ƒ When the 10 second period leading to available or unavailable time crosses a 900 second statistics window boundary, the foregoing description implies that the CV, ES, SES, SEFS, and UAS counts of the PREVIOUS interval must be adjusted. In that case, successive GETs of the affected sonetPathIntervalSES and sonetPathIntervalUAS objects (and the analogous Line and VT objects also) will return differing values if the first GET happens during the first few seconds of the window.

According to ANSI T1.231, unavailable time begins at the _onset_ of 10 contiguous severely errored seconds. In other words, unavailable time starts with the _first_ of the 10 contiguous SESs. Also, while an interface is deemed unavailable, all counters for that interface are frozen except for the UAS count. So an implementation that strictly complies with this standard MUST NOT increment any counters other than the UAS count, even temporarily, as a result of anything that happens during those 10 seconds. Since changes in the signal state lag the data they apply to by 10 seconds, an ANSI-compliant implementation MUST pass the one-second statistics through a 10-second delay line before updating any counters. That can be done by performing the following steps at the end of each one second interval:

i) Read near/far end CV counter and alarm status flags from the hardware.

ii) Accumulate the CV counts for the preceding second and compare them to the ES and SES threshold for the layer in question. Update the signal state and shift the one-second CV counts and ES/SES flags into the 10-element delay line. Note that far-end one-second statistics are to be flagged as "absent" during any second in which there is an incoming defect at the layer in question or at any lower layer.

iii) Update the current interval statistics using the signal state from the _previous_ update cycle, plus the one-second CV counts and ES/SES flags shifted out of the 10-element delay line.

This approach is further described in Appendix A. An agent MAY choose to use this approach in lieu of retroactive adjustments to the counters.

In any case, a linkDown trap SHALL be sent only after the agent has determined for certain that the unavailable state has been entered. The time on the trap will be that of the first UAS, which is 10 seconds earlier. A linkUp trap SHALL be handled similarly. πŸ””

Unequipped

If a Path or VT connection isn't provisioned (idle), the SONET equipment signals that state by transmitting the Path or VT Signal Label as follows:

  • 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 is considered mismatched if it doesn't equal either the locally provisioned value or the value 'equipped non-specific' (1 hex). Any received non-zero Signal Label is considered a locally provisioned value of 'equipped non-specific', so keep that in mind πŸ’œ Only in-service, provisioned Path Terminating equipment can detect mismatched Signal Labels. It counts as provisioned if it has been configured for a mapping and has been assigned the signals to and from which the mapping takes place. While a Path is unequipped or has mismatched Signal Labels, ES/SES counts continue, but these conditions don't themselves contribute to ES/SES. 🧩

Circuit Identifier

This is a character string specified by the circuit vendor. It's super useful when you're talking to the vendor during troubleshooting πŸ“ž


4. Object Definitions ✨

Now the actual MIB module, so let's get into it πŸŽ€

   SONET-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       Integer32, transmission
             FROM SNMPv2-SMI
       DisplayString, TruthValue
             FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP
             FROM SNMPv2-CONF
       ifIndex
             FROM IF-MIB
       PerfCurrentCount, PerfIntervalCount
             FROM PerfHist-TC-MIB;

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

   sonetMIB MODULE-IDENTITY
       LAST-UPDATED "200308110000Z"
       ORGANIZATION "IETF AToM MIB Working Group"
       CONTACT-INFO
         "WG charter:
            http://www.ietf.org/html.charters/atommib-charter.html

          Mailing Lists:
            General Discussion: atommib@research.telcordia.com
            To Subscribe: atommib-request@research.telcordia.com

          Kaj Tesink
          Telcordia Technologies
          Tel: (732) 758-5254
          Fax: (732) 758-2269
          E-mail: kaj@research.telcordia.com."
       DESCRIPTION
         "The MIB module to describe SONET/SDH interface objects.

okay the revision history is literally a lot πŸ˜­πŸ’… the MIB keeps every single detail exactly as written, bestie πŸŽ€

          Copyright (C) The Internet Society (2003).  This version
          of this MIB module is part of RFC 3592;  see the RFC
          itself for full legal notices."
       REVISION      "200308110000Z"
       DESCRIPTION
           "The key changes made to this MIB module
           since its publication in RFC 2558
           are as follows.

           (1) Corrected typographical error
               (bellcore1991(2) in sonetSESthresholdSet)

           (2) Added support for sts192cSTM64(6) and
               sts768cSTM256(7) in sonetPathCurrentWidth

           (3) Corrected description of the applicability
               of VTs for SDH for improved accuracy

           (4) Added clarification in the SES description that
               CV counts should be frozen during SESs

           (5) Corrected typographical errors:
               - Line Alarm Indication Signal description of the
                 Terminology section (20.5 --> 2.5 seconds)
               - In the Terminology section
                 sonetSESThresholdSet  --> sonetSESthresholdSet
               "
       REVISION      "199810190000Z"
       DESCRIPTION
           "The RFC 2558 version of this MIB module.

           The key changes made to this MIB module
           since its initial publication in RFC 1595
           are as follows.

           (1) The MODULE-IDENTITY has been updated to reflect the
               changes to the MIB.

           (2) Where applicable, the textual conventions
               PerfCurrentCount and PerfIntervalCount from
               PerfHist-TC-MIB have been used in place of Gauge32.

           (3) An agent now has the option to delay updates to
               the various performance counts in lieu of performing
               retroactive adjustments upon entering into or exiting
               from unavailable time. This implementation option is
               described in Appendix A of this memo.

           (4) In order to make the SONET-MIB more useful for
               circuit provisioning, the formerly read-only objects
               sonetMediumType, sonetMediumLineCoding,
               sonetMediumLineType, and sonetMediumCircuitIdentifier
               have been given a MAX-ACCESS of read-write. The
               MIN-ACCESS remains read-only.

           (5) The DESCRIPTION clause for sonetMediumTimeElapsed has
               been updated to describe its behaviour if the duration
               of the current interval exceeds the maximum value.

           (6) The DESCRIPTION clause for sonetMediumValidIntervals
               has been updated to describe its behaviour when some
               intervals may be unavailable, and the object
               sonetMediumInvalidIntervals has been added to keep
               count of the number of missing intervals (if any).

           (7) The object sonetMediumLoopbackConfig has been added
               to enable or disable loopback configurations.

           (8) Because the error count thresholds for declaring
               severely errored seconds that are specified in ANSI
               T1.231-1993, ITU-T G.826-1995, and ANSI T1.231-1997
               are all different from each other and from the thresholds
               specified in RFC 1595, an enumerated INTEGER object
               sonetSESthresholdSet has been added to allow an agent
               to specify which threshold set is in use. Text has
               been added to Section 3 stating that if this object is
               not implemented the thresholds specified in RFC 1595
               should be assumed, and the table containing those
               thresholds has been moved to Appendix B of this memo.

           (9) A column with SYNTAX TruthValue has been added to each
               interval table.  The purpose of the additional column
               is to indicate, for each interval, whether the data
               is valid in the sense intended by ANSI T1.231 clause
               9.1.2.2 [T1.231a][T1.231b]. The objects in question are:

                   sonetSectionIntervalValidData
                   sonetLineIntervalValidData
                   sonetFarEndLineIntervalValidData
                   sonetPathIntervalValidData
                   sonetFarEndPathIntervalValidData
                   sonetVTIntervalValidData
                   sonetFarEndVTIntervalValidData

          (10) The ranges for sonetPathCurrentStatus and
               sonetVTCurrentStatus have been made consistent
               with the DESCRIPTION clauses.

          (11) The conformance information has been updated. Previous
               conformance information from RFC 1595 has been
               deprecated. Some typographical errors in the deprecated
               section have been corrected in order to prevent
               MIB compilation errors."

       REVISION      "199401030000Z"
       DESCRIPTION
           "The RFC 1595 version of this MIB module."

       ::= { 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,
            sonetMediumInvalidIntervals   Integer32,
            sonetMediumLoopbackConfig     BITS
       }

   sonetMediumType OBJECT-TYPE
       SYNTAX  INTEGER  {
                  sonet(1),
                  sdh(2)

               }
       MAX-ACCESS  read-write
       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
          measurement period. If, for some reason, such as an
          adjustment in the system's time-of-day clock, the
          current interval exceeds the maximum value, the
          agent will return the maximum value."
       ::= { sonetMediumEntry 2 }

   sonetMediumValidIntervals OBJECT-TYPE
       SYNTAX  Integer32 (0..96)
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "The number of previous 15-minute intervals
          for which data was collected.
          A SONET/SDH interface must be capable
          of supporting 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 will be <n> unless the measurement was
          (re-)started within the last (<n>*15) minutes, in which
          case the value will be the number of complete 15
          minute intervals for which the agent has at least
          some data. In certain cases (e.g., in the case
          where the agent is a proxy) it is possible that some
          intervals are unavailable.  In this case, this
          interval is the maximum interval number for
          which data is available. "
       ::= { sonetMediumEntry 3 }

   sonetMediumLineCoding OBJECT-TYPE
       SYNTAX  INTEGER {
                   sonetMediumOther(1),
                   sonetMediumB3ZS(2),
                   sonetMediumCMI(3),
                   sonetMediumNRZ(4),
                   sonetMediumRZ(5)
               }
       MAX-ACCESS  read-write
       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-write
       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-write
       STATUS  current
       DESCRIPTION
          "This variable contains the transmission
          vendor's circuit identifier, for the
          purpose of facilitating troubleshooting.
          Note that the circuit identifier, if available,
          is also represented by ifPhysAddress."
       ::= { sonetMediumEntry 6 }

   sonetMediumInvalidIntervals OBJECT-TYPE
       SYNTAX  Integer32 (0..96)
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "The number of intervals in the range from
           0 to sonetMediumValidIntervals for which no
           data is available. This object will typically
           be zero except in cases where the data for some
           intervals are not available (e.g., in proxy
           situations)."
       ::= { sonetMediumEntry 7 }

   sonetMediumLoopbackConfig OBJECT-TYPE
       SYNTAX      BITS {
                     sonetNoLoop(0),
                     sonetFacilityLoop(1),
                     sonetTerminalLoop(2),
                     sonetOtherLoop(3) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "The current loopback state of the SONET/SDH interface.  The
           values mean:

             sonetNoLoop
                Not in the loopback state. A device that is not
                capable of performing a loopback on this interface
                shall always return this value.

Okay bestie, the loopback options and the SES threshold set are up first πŸ’…

             sonetFacilityLoop
                The received signal at this interface is looped back
                out through the corresponding transmitter in the return
                direction.

             sonetTerminalLoop
                The signal that is about to be transmitted is connected
                to the associated incoming receiver.

             sonetOtherLoop
                Loopbacks that are not defined here."

       ::= { sonetMediumEntry 8 }

   sonetSESthresholdSet    OBJECT-TYPE
       SYNTAX   INTEGER {
                  other(1),
                  bellcore1991(2),
                  ansi1993(3),
                  itu1995(4),
                  ansi1997(5)
                         }
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
         "An enumerated integer indicating which
          recognized set of SES thresholds that
          the agent uses for determining severely
          errored seconds and unavailable time.

          other(1)
            None of the following.

          bellcore1991(2)
            Bellcore TR-NWT-000253, 1991 [TR253], or
            ANSI T1M1.3/93-005R2, 1993 [T1M1.3].
            See also Appendix B.

          ansi1993(3)
            ANSI T1.231, 1993 [T1.231a], or
            Bellcore GR-253-CORE, Issue 2, 1995 [GR253]

          itu1995(4)
            ITU Recommendation G.826, 1995 [G.826]

          ansi1997(5)
            ANSI T1.231, 1997 [T1.231b]

          If a manager changes the value of this
          object then the SES statistics collected
          prior to this change must be invalidated."
        ::= { sonetMedium 2 }

So loopbacks come in three flavours: facility (the incoming signal gets bounced back out the transmitter πŸ”), terminal (the outgoing signal gets wired straight into the receiver πŸŽ€), and other (anything not defined here, which is giving "not my problem" πŸ™ˆ).

The sonetSESthresholdSet is the knob that picks which recognised set of SES thresholds the agent uses to decide what counts as a severely errored second or unavailable time. Each option points to its own source doc, and if a manager flips this knob, any SES stats gathered before the flip get invalidated. Main character energy for data hygiene ✨

   -- 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      PerfCurrentCount,
           sonetSectionCurrentSESs     PerfCurrentCount,
           sonetSectionCurrentSEFSs    PerfCurrentCount,
           sonetSectionCurrentCVs      PerfCurrentCount
       }

   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.

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

   sonetSectionCurrentESs OBJECT-TYPE
       SYNTAX  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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     PerfIntervalCount,
            sonetSectionIntervalSESs    PerfIntervalCount,
            sonetSectionIntervalSEFSs   PerfIntervalCount,
            sonetSectionIntervalCVs     PerfIntervalCount,
            sonetSectionIntervalValidData  TruthValue
       }

   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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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 }

   sonetSectionIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."
       ::= { sonetSectionIntervalEntry 6 }

   -- 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       PerfCurrentCount,
            sonetLineCurrentSESs      PerfCurrentCount,
            sonetLineCurrentCVs       PerfCurrentCount,
            sonetLineCurrentUASs      PerfCurrentCount
        }

   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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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 }

The SONET/SDH Section group is all about the stats πŸ“Š There are two tables here, Current and Interval, and they're basically the same vibe: the Current table tracks the live 15-minute window πŸ•’, while the Interval table keeps the historical receipts 🧾 for the past day. The Section Current table counts errored seconds, severely errored seconds, severely errored framing seconds, and coding violations, plus a status bitmap that flags LOS and LOF defects, and the no-defect flag only shows up when nothing else is going on 🌸

The Interval table is the same counting energy but per interval, and it adds a validity flag so you know whether that interval's data is legit πŸ’… The Line group comes next, and it's the same shape again: a Current table with its own status bitmap, now with AIS and RDI flags instead, plus an unavailable seconds counter πŸ¦‹

okay so we're picking up right where the current stats end πŸ’– The first bit is the sonetLineCurrentUASs counter, which is the Unavailable Seconds tally for the current 15 minute window πŸŽ€

   sonetLineCurrentUASs OBJECT-TYPE
       SYNTAX  PerfCurrentCount
       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 }

Next up is the Line Interval Table πŸ¦‹ It's basically a history log that keeps stats from the last 24 hours, split into 96 chunks of 15 minutes each. The comments say each system has to keep at least 4 completed intervals, and the default is 32 ✨

   -- 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       PerfIntervalCount,
           sonetLineIntervalSESs      PerfIntervalCount,
           sonetLineIntervalCVs       PerfIntervalCount,
           sonetLineIntervalUASs      PerfIntervalCount,
           sonetLineIntervalValidData TruthValue
       }

Each row gets its own number 🧚 Interval 1 is the newest completed window, and every bigger N is one step further back than N-1 πŸ’œ

   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 }

   sonetLineIntervalESs OBJECT-TYPE
       SYNTAX  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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 }

   sonetLineIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."
       ::= { sonetLineIntervalEntry 6 }

Now the Far End Line group πŸ‘‘ This one only shows up on systems that report far end block error (FEBE) info at the Line Layer. It has two tables: the current one and the interval one ✨

   -- 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       PerfCurrentCount,
           sonetFarEndLineCurrentSESs      PerfCurrentCount,
           sonetFarEndLineCurrentCVs       PerfCurrentCount,
           sonetFarEndLineCurrentUASs      PerfCurrentCount
          }

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

   sonetFarEndLineCurrentSESs OBJECT-TYPE
      SYNTAX  PerfCurrentCount
      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  PerfCurrentCount
      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  PerfCurrentCount
      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 }

   -- 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       PerfIntervalCount,
            sonetFarEndLineIntervalSESs      PerfIntervalCount,
            sonetFarEndLineIntervalCVs       PerfIntervalCount,
            sonetFarEndLineIntervalUASs      PerfIntervalCount,
            sonetFarEndLineIntervalValidData TruthValue
       }

   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  PerfIntervalCount
      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  PerfIntervalCount
      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  PerfIntervalCount
       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  PerfIntervalCount
      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 }

   sonetFarEndLineIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."

       ::= { sonetFarEndLineIntervalEntry 6 }

And now we're at the SONET/SDH Path group 🌸 It's got two tables too, a current one and an interval one. We're just starting the current table here, so the story continues in the next part 🫢

   -- 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 }

Okay bestie, the SONET/SDH path tables are up next and they are giving main character energy πŸ’…βœ¨

   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        PerfCurrentCount,
           sonetPathCurrentSESs       PerfCurrentCount,
           sonetPathCurrentCVs        PerfCurrentCount,
           sonetPathCurrentUASs       PerfCurrentCount
       }

   sonetPathCurrentWidth OBJECT-TYPE
       SYNTAX  INTEGER  {
               sts1(1),
               sts3cSTM1(2),
               sts12cSTM4(3),
               sts24c(4),
               sts48cSTM16(5),
               sts192cSTM64(6),
               sts768cSTM256(7)
        }
       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, 48, 192 and 768.
        STS-1 is equal to 51.84 Mbps.  For SDH, the assigned
        types are the STM-Nc VCs, where N = 1, 4, 16, 64 and 256."
   ::= { sonetPathCurrentEntry 1 }

   sonetPathCurrentStatus OBJECT-TYPE
       SYNTAX  Integer32 (1..62)
       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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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 }

That's the current-stats table sorted, and it's giving tidy snapshot energy πŸ¦‹ The counters are all per-Path and they're all about the current 15 minute window, so think of it as the live feed πŸ“‘πŸŒΈ

   -- 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        PerfIntervalCount,
            sonetPathIntervalSESs       PerfIntervalCount,
            sonetPathIntervalCVs        PerfIntervalCount,
            sonetPathIntervalUASs       PerfIntervalCount,
            sonetPathIntervalValidData  TruthValue
       }

   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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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 }

   sonetPathIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this

           interval is valid."
       ::= { sonetPathIntervalEntry 6 }

Now the interval table is the history book πŸ“š It keeps the 15 minute chunks from the past 24 hours, and the interval numbers run from 1 to 96 🌈 Interval 1 is the newest one, and each higher number goes one step further back in time πŸ’œ

   -- 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       PerfCurrentCount,
           sonetFarEndPathCurrentSESs      PerfCurrentCount,
           sonetFarEndPathCurrentCVs       PerfCurrentCount,
           sonetFarEndPathCurrentUASs      PerfCurrentCount
       }

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

   sonetFarEndPathCurrentSESs OBJECT-TYPE
       SYNTAX  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
      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 }

   SonetFarEndPathIntervalEntry ::=
       SEQUENCE {
            sonetFarEndPathIntervalNumber     Integer32,
            sonetFarEndPathIntervalESs        PerfIntervalCount,
            sonetFarEndPathIntervalSESs       PerfIntervalCount,
            sonetFarEndPathIntervalCVs        PerfIntervalCount,
            sonetFarEndPathIntervalUASs       PerfIntervalCount,
            sonetFarEndPathIntervalValidData  TruthValue
       }

   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.

okay bestie, we're picking up mid-description for the far end path interval table, and the MIB code is literally giving main character energy πŸ¦‹βœ¨

           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  PerfIntervalCount
      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  PerfIntervalCount
      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  PerfIntervalCount
       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  PerfIntervalCount
      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 }

   sonetFarEndPathIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."
       ::= { sonetFarEndPathIntervalEntry 6 }

   -- the SONET/SDH Virtual Tributary group

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

   -- Corresponding SDH signals for SONET VTs are
   -- as follows:

   -- A VT1.5 = TU11
   -- A VT2 = TU12
   -- A VT3 = none
   -- none  = TU3
   -- A VT6 = TU2

   -- 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        PerfCurrentCount,
           sonetVTCurrentSESs       PerfCurrentCount,
           sonetVTCurrentCVs        PerfCurrentCount,
           sonetVTCurrentUASs       PerfCurrentCount
       }

   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..126)
       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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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  PerfCurrentCount
       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 }

   -- 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        PerfIntervalCount,
           sonetVTIntervalSESs       PerfIntervalCount,
           sonetVTIntervalCVs        PerfIntervalCount,
           sonetVTIntervalUASs       PerfIntervalCount,
           sonetVTIntervalValidData  TruthValue
       }

   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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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 }

   sonetVTIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."
       ::= { sonetVTIntervalEntry 6 }

   -- 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

   -- 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       PerfCurrentCount,
           sonetFarEndVTCurrentSESs      PerfCurrentCount,
           sonetFarEndVTCurrentCVs       PerfCurrentCount,
           sonetFarEndVTCurrentUASs      PerfCurrentCount
       }

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

   sonetFarEndVTCurrentSESs OBJECT-TYPE
       SYNTAX  PerfCurrentCount
       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 }

Okay bestie, we're picking up right where the Far End VT counters left off πŸ¦‹βœ¨

   sonetFarEndVTCurrentCVs OBJECT-TYPE
       SYNTAX  PerfCurrentCount
       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  PerfCurrentCount
      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 }

   -- 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        PerfIntervalCount,
            sonetFarEndVTIntervalSESs       PerfIntervalCount,
            sonetFarEndVTIntervalCVs        PerfIntervalCount,
            sonetFarEndVTIntervalUASs       PerfIntervalCount,
            sonetFarEndVTIntervalValidData  TruthValue
       }

   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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
       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  PerfIntervalCount
      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 }

   sonetFarEndVTIntervalValidData OBJECT-TYPE
       SYNTAX  TruthValue
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
          "This variable indicates if the data for this
           interval is valid."
       ::= { sonetFarEndVTIntervalEntry 6 }

Next up is the conformance info, which is basically the MIB's rulebook for who has to implement what πŸ“œπŸ’…

   -- conformance information

   sonetConformance OBJECT IDENTIFIER ::= { sonetMIB 4 }

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

   -- deprecated compliance statement

   sonetCompliance MODULE-COMPLIANCE
       STATUS  deprecated
       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      sonetPathCurrentWidth
           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      sonetVTCurrentWidth
           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 }

   -- current compliance statements

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

       MODULE  -- this module
           MANDATORY-GROUPS { sonetMediumStuff2, sonetSectionStuff2 }

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

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

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

           OBJECT      sonetMediumCircuitIdentifier
           MIN-ACCESS  read-only
           DESCRIPTION

               "Write access is not required."

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

           OBJECT      sonetSESthresholdSet
           MIN-ACCESS  read-only
           DESCRIPTION
             "Write access is not required, and only one
             of the enumerated values need be supported."

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

           GROUP       sonetFarEndLineStuff2
           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       sonetPathStuff2
           DESCRIPTION
               "Implementation of this group is mandatory for all
                SONET/SDH systems that terminate SONET/SDH
                Paths or Virtual Tributaries."

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

           GROUP       sonetFarEndPathStuff2
           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       sonetVTStuff2
           DESCRIPTION
               "Implementation of this group is mandatory for all

                SONET/SDH systems that terminate SONET/SDH Virtual
                Tributaries."

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

           GROUP       sonetFarEndVTStuff2
           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 2 }

Last bit of this part is the units of conformance, starting with the deprecated groups 🌿✨

   -- units of conformance

   -- deprecated groups

   sonetMediumStuff    OBJECT-GROUP
       OBJECTS { sonetMediumType,
                 sonetMediumTimeElapsed,
                 sonetMediumValidIntervals,
                 sonetMediumLineCoding,
                 sonetMediumLineType,
                 sonetMediumCircuitIdentifier }
       STATUS  deprecated
       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  deprecated
       DESCRIPTION
               "A collection of objects providing information
               specific to SONET/SDH Section interfaces."
       ::= { sonetGroups 2 }

πŸŽ€ Part 10 is next, the groups get even more iconic from here πŸ‘‘

okay bestie, the MIB module keeps going with the group definitions πŸ’…πŸŽ€

   sonetLineStuff    OBJECT-GROUP
       OBJECTS { sonetLineCurrentStatus,
                 sonetLineCurrentESs,
                 sonetLineCurrentSESs,
                 sonetLineCurrentCVs,
                 sonetLineCurrentUASs,
                 sonetLineIntervalESs,
                 sonetLineIntervalSESs,
                 sonetLineIntervalCVs,
                 sonetLineIntervalUASs }
       STATUS  deprecated
       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  deprecated
       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  deprecated
       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  deprecated
       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  deprecated
       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  deprecated
       DESCRIPTION

               "A collection of objects providing information
               specific to SONET/SDH VT interfaces,
               and maintaining VT Far End information."
       ::= { sonetGroups 8 }

   -- current groups

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

   sonetSectionStuff2    OBJECT-GROUP
       OBJECTS { sonetSectionCurrentStatus,
                 sonetSectionCurrentESs,
                 sonetSectionCurrentSESs,
                 sonetSectionCurrentSEFSs,
                 sonetSectionCurrentCVs,
                 sonetSectionIntervalESs,
                 sonetSectionIntervalSESs,
                 sonetSectionIntervalSEFSs,
                 sonetSectionIntervalCVs,
                 sonetSectionIntervalValidData }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to SONET/SDH Section interfaces."
       ::= { sonetGroups 10 }

   sonetLineStuff2    OBJECT-GROUP
       OBJECTS { sonetLineCurrentStatus,
                 sonetLineCurrentESs,
                 sonetLineCurrentSESs,
                 sonetLineCurrentCVs,
                 sonetLineCurrentUASs,
                 sonetLineIntervalESs,
                 sonetLineIntervalSESs,
                 sonetLineIntervalCVs,
                 sonetLineIntervalUASs,
                 sonetLineIntervalValidData }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to SONET/SDH Line interfaces."
       ::= { sonetGroups 11 }

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

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

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

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

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

   END

5. Acknowledgments ✨

This spec is a product of the AToM MIB Working Group 🫢 and the author wants to give a huge shoutout to Mike Heard for all of his super valuable contributions to this memo πŸ’œ

6. Security Considerations πŸ”

okay this section is serious bestie, but it's also dramatic 😭 There are a bunch of management objects in this MIB module that have a MAX-ACCESS clause of read-write: sonetMediumType, sonetMediumLineCoding, sonetMediumLineType, sonetMediumCircuitIdentifier, sonetMediumLoopbackConfig, sonetSESthresholdSet, sonetPathCurrentWidth, and sonetVTCurrentWidth. Writes to these can be seriously disruptive to network operation, anywhere from messed-up performance data to full-on traffic interruptions πŸ’€ So users of this MIB module really have to be aware that supporting SET operations in a non-secure environment without proper protection can have a negative effect on network operations 🚨

The readable objects in this MIB module (aka the objects with a MAX-ACCESS other than not-accessible) may be considered sensitive in some environments πŸ‘€ Collectively they give extensive info about the performance of interfaces in SONET/SDH equipment or networks, and they can reveal some aspects of configuration too. In those environments it's important to control even GET and NOTIFY access to these objects, and possibly to encrypt their values when sending them over the network via SNMP πŸ”’

SNMP versions prior to SNMPv3 did not include adequate security πŸ™ˆ Even if the network itself is secure (for example by using IPSec), there is still no control over who on that secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. Not it, bestie πŸ’…

It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). πŸ¦‹

Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security πŸ”βœ¨ It is then a customer/operator responsibility to make sure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. Main character energy for the security team πŸ‘‘

7. References πŸ“š

the reference list keeps going in the next part 🧚

7.1. Normative References πŸ“š

These are the must-read docs the spec leans on. Every one is listed below with all its details. πŸŽ€

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirements Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2578] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
  • [RFC2579] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [RFC2580] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
  • [RFC3593] Tesink, K., "Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals", RFC 3593, September 2003.
  • [T1.105a] American National Standard for Telecommunications - Digital Hierarchy - Optical Interface Rates and Formats Specification, ANSI T1.105-1988.
  • [T1.105b] American National Standard for Telecommunications - Digital Hierarchy - Optical Interface Rates and Formats Specification, ANSI T1.105-1991.
  • [T1.106] American National Standard for Telecommunications - Digital Hierarchy - Optical Interface Specification (Single-Mode), ANSI T1.106-1988.
  • [T1M1.3] Draft American National Standard for Telecommunications - Digital Hierarchy - Layer 1 In-Service Digital Transmission Performance Monitoring, T1M1.3/93-005R2, July 1993.
  • [G.707] CCITT Recommendation G.707, "Synchronous Digital Hierarchy Bit Rates", June 1992.
  • [G.708] CCITT Recommendation G.708, "Network Node Interface for the Synchronous Digital Hierarchy", June 1992.
  • [G.709] CCITT Recommendation G.709, "Synchronous Multiplexing Structure", June 1992.
  • [G.783] CCITT Recommendation G.783, "Characteristics of Synchronous Digital Hierarchy (SDH) Multiplexing Equipment Functional Blocks", November 1992.
  • [RFC1213] McCloghrie, K. and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", RFC 1213, March 1991.
  • [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.
  • [RFC2864] McCloghrie, K. and G. Hanson, "The Inverted Stack Table Extension to the Interfaces Group MIB", RFC 2864, June 2000.
  • [T1.231a] American National Standard for Telecommunications - Digital Hierarchy - Layer 1 In-Service Digital Transmission Performance Monitoring, ANSI T1.231-1993, September 1993.
  • [TR253] Bellcore TR-NWT-000253, Issue 1, "Synchronous Optical Network (SONET) Transport Systems: Common Generic Criteria", December 1991.
  • [G.826] ITU Recommendation G.826, "Error Performance Parameters and Objectives for International Constant Bit Rate Digital Paths at or above Primary Rate", September 1995 (COM 13-R57E).
  • [GR253] Bellcore GR-253-CORE, Issue 2, "Synchronous Optical Network (SONET) Transport Systems Common Generic Criteria", December 1995.
  • [T1.231b] American National Standard for Telecommunications - Digital Hierarchy - Layer 1 In-Service Digital Transmission Performance Monitoring, ANSI T1.231-1997, September 1997.

7.2. Informative References πŸ¦‹

These ones are just extra reading if you want the backstory. πŸ’œ

  • [RFC1595] Brown, T. and K. Tesink, "Definitions of Managed Objects for the SONET/SDH Interface Type", RFC 1595, March 1994.
  • [RFC2495] Fowler, D., "Definitions of Managed Objects for the DS1, E1, DS2 and E2 Interface Types", RFC 2495, January 1999.
  • [RFC2496] Fowler, D., "Definitions of Managed Objects for the DS3/E3 Interface Type", RFC 2496, January 1999.
  • [RFC2558] Tesink, K., "Definitions of Managed Objects for the SONET/SDH Interface Type", RFC 2558, March 1999.
  • [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.

8. Intellectual Property Statement πŸ”₯

Okay, legal part, but make it cute. The IETF doesn't take a side on whether any intellectual property rights might be claimed over the tech in this doc, or whether licenses for those rights exist or are available. It also doesn't say it has looked for any such rights. If you want the IETF's rules on rights for standards-track and standards-related docs, check out BCP-11. Any claims of rights that were filed for publication, any promises of licenses, or results from trying to get a general license or permission for proprietary rights for implementers or users of this spec can be requested from the IETF Secretariat. πŸ“

The IETF also invites anyone who's interested to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to practice this standard. Send that info to the IETF Executive Director. 🫢


Appendix A: The delay-line approach to statistics collection 🧚

Okay bestie, this appendix is the secret sauce for keeping your stats accurate. πŸ“

ANSI T1.231 says unavailable time begins at the onset of 10 contiguous severely errored seconds. Basically, unavailable time starts with the first of those 10 contiguous SESs. While an interface is deemed unavailable, all of its counters are frozen except the UAS count. πŸ™ˆ Here's the catch: changes in the signal state lag the data they apply to by 10 seconds. So if an implementation wants to avoid making retroactive adjustments to the counts, it must pass the one-second statistics through a 10-second delay line before updating any counters. You can do that by performing the following steps at the end of each one second interval. ✨

i) Read near/far end line and path CV counts and alarm status flags from the hardware. πŸ”Œ

ii) Accumulate the CV counts for the preceding second and compare them to the ES and SES threshold for the layer in question. Then update the signal state and shift the one-second CV counts and ES/SES flags into the 10-element delay line. Note that far-end one-second statistics are to be flagged as "absent" during any second in which there is an incoming defect at the layer in question or at any lower layer. 🚫

iii) Update the current interval statistics using the signal state from the previous update cycle and the one-second CV counts and ES/SES flags shifted out of the 10-element delay line. πŸ’…

This procedure guarantees that the statistical counters will be correctly updated at all times, even though they lag real time by 10 seconds. 🌈 Here's how it looks in the figure below. At the end of each 15 minutes interval, the current interval counts are transferred to the most recent interval entry, and each interval is shifted up by one position. The oldest one gets discarded if necessary to make room. Then the current interval counts start over from zero. Heads up though: the signal state calculation does not start anew at each interval boundary. Instead, signal state information is retained across interval boundaries. πŸ‘‘

   +--------------------------------------------------------------+
   |          READ COUNTERS & STATUS INFO FROM HARDWARE           |
   |                                                              |
   |LOS OOF/ SECT  LINE LINE LINE LINE  PATH PATH PATH PATH PATH  |
   |    LOF   CV    AIS  CV   RDI FEBE   AIS  LOP  CV   RDI  CV   |
   +--------------------------------------------------------------+
     |   |     |     |    |    |   |      |    |    |    |    |
     |   |     |     |    |    |   |      |    |    |    |    |
     V   V     V     V    V    V   V      V    V    V    V    V
   +--------------------------------------------------------------+
   | ACCUM ONE-SEC STATS, CHK ERR THRESHOLDS, & UPDT SIGNAL STATE |
   |                                                              |
   |                                                              |
   |                  NEAR END/FAR END       NEAR END/FAR END     |
   |SECT SECT SECT  LINE LINE LINE  LINE   PATH PATH PATH  PATH   |
   |CV   ES   SES    CV   ES   SES AVA/UNA  CV   ES   SES AVA/UNA |
   +--------------------------------------------------------------+
     |    |    |      |    |    |     |      |    |    |     |
     |    |    |      |    |    |     |      |    |    |     |
     V    V    V      V    V    V     |      V    V    V     |
   +-------------+  +-------------+   |    +-------------+   |
   |ONE-SEC DELAY|  |ONE-SEC DELAY|   |    |ONE-SEC DELAY|   |
   | (1 OF 10)   |  | (1 OF 10)   |   |    | (1 OF 10)   |   |
   |CV   ES   SES|  |CV   ES   SES|   |    |CV   ES   SES|   |
   +-------------+  +-------------+   |    +-------------+   |
     |    |    |      |    |    |     |      |    |    |     |
     /    /    /      /    /    /     /      /    /    /     /
     /    /    /      /    /    /     /      /    /    /     /
     |    |    |      |    |    |     |      |    |    |     |
     V    V    V      V    V    V     |      V    V    V     |
   +-------------+  +-------------+   |    +-------------+   |
   |ONE-SEC DELAY|  |ONE-SEC DELAY|   |    |ONE-SEC DELAY|   |
   | (10 OF 10)  |  | (10 OF 10)  |   |    | (10 OF 10)  |   |
   |CV   ES   SES|  |CV   ES   SES|   |    |CV   ES   SES|   |
   +-------------+  +-------------+   |    +-------------+   |
     |    |    |      |    |    |     |      |    |    |     |
     |    |    |      |    |    |     |      |    |    |     |
     V    V    V      V    V    V     V      V    V    V     V
   +--------------------------------------------------------------+
   |              UPDATE STATISTICS COUNTERS                      |
   |                                                              |
   |                   NEAR END/FAR END       NEAR END/FAR END    |
   |   SECTION               LINE                   PATH          |
   | CV ES EFS SES   CV ES EFS SES AS UAS   CV ES EFS SES AS UAS  |
   +--------------------------------------------------------------+

Quick note: if you go with this procedure, there's no current interval data for the first ten seconds after a system comes up. πŸ₯Ί During that time, noSuchInstance must be returned if a management station tries to access the current interval counters. ⏳ Last thing: it's up to the implementation whether an agent assumes the initial state of the interface is available or unavailable. Your call, bestie. πŸŽ€

Appendix B - RFC 1595 SES interpretation ✨

okay so this appendix is the lookup table bestie, the one you open when you need the magic x numbers for the Section, Line, Path, and VT layers 🧚. It's used in [T1M1.3][RFC1595][TR253], so these are the exact values everyone's SES math leans on πŸ’….

Value for x for SONET/SDH Section SES Definition

Rate            x               Minimum Bit Error Rate
=======================================================
OC-1             9                      1.5 x 10^-7
OC-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
OC-3            32                       2 x 10^-7
OC-9            47                       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

Author's Address

Kaj Tesink Telcordia Technologies 331 Newman Springs Road P.O. Box 7020 Red Bank, NJ 07701-7020

Phone: (732) 758-5254 EMail: kaj@research.telcordia.com

Copyright (C) The Internet Society (2003). All Rights Reserved. πŸ¦‹

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. πŸ’œ

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society. 🌸

πŸ“¦ where this page comes from