RFC 3591

Definitions of Managed Objects for the Optical Interface Type

πŸ“… published September 2003, from ietf

Title Block πŸŽ€ RFC 3591

RFC 3591: Definitions of Managed Objects for the Optical Interface Type πŸ¦‹

okay bestie, let's start with the header. This is RFC 3591, and it's a Standards Track doc from the Network Working Group, dated September 2003. The authors are H-K. Lam (Lucent Technologies), M. Stewart (Dorado Software), and A. Huynh (Cetus Networks). The header has no Obsoletes or Updates lines, so it doesn't replace or change any other RFC. πŸ’…


Status of this Memo ✨

so this section says the doc specifies an Internet standards track protocol for the Internet community and asks for discussion and suggestions for improvements 🫢 for the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). distribution of this memo is unlimited, so share it freely πŸ’–

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

Abstract 🌈

okay so the abstract says this memo defines a piece of the Management Information Base (MIB) for use with Simple Network Management Protocol (SNMP) in TCP/IP-based internets πŸ“ specifically, it defines objects for managing Optical Interfaces tied to WavelengthDivision Multiplexing systems, or ones characterized by the Optical Transport Network (OTN) following the OTN architecture in ITU-T Recommendation G.872. it's giving infrastructure energy ⭐

the MIB module here can be used for performance monitoring and/or configuration of those optical interfaces. slay πŸ‘‘

Table of Contents 🧚

1.  The Internet-Standard Management Framework .................   2
     2.  Overview ...................................................   3
        2.1.  Use of the ifTable ..................................   3
        2.2.  Use of ifTable for OTN OTS/OMS Layer.................   8
        2.3.  Use of ifTable for OTN OChGroup Layer................   9
        2.4.  Use of ifTable for OTN OCh Layer.....................  10
        2.5.  Use of ifStackTable..................................  12
        2.6.  Optical Network Terminology .........................  13
        2.7.  Tandem Connection Monitoring (TCM) ..................  20
   3.  Structure of the MIB........................................  21
        3.1.  The optIfOTMn group..................................  23
        3.2.  The optIfPerfMon group...............................  24
        3.3.  The optIfOTSn groups.................................  24
        3.4.  The optIfOMSn groups.................................  25
        3.5.  The optIfOChGroup groups.............................  26
        3.6.  The optIfOCh groups..................................  27
        3.7.  The optIfOTUk groups.................................  28
        3.8.  The optIfODUk groups.................................  29
        3.9.  The optIfODUkT groups................................  30
   4.  Object Definitions .........................................  30
   5.  Security Considerations .................................... 167
   6.  Acknowledgments............................................. 169
   7.  References ................................................. 169
       7.1.  Normative References ................................. 169
       7.2.  Informative References ............................... 171
   8.  Intellectual Property Statement ............................ 171
   9.  Authors' Addresses ......................................... 172
   10. Full Copyright Statement ................................... 173

1. The Internet-Standard Management Framework ✨

for a detailed overview of the docs that describe the current Internet-Standard Management Framework, check 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 generally accessed through the Simple Network Management Protocol (SNMP). objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). this memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. πŸŽ€

2. Overview πŸ¦‹

in this doc, the term OTN (Optical Transport Network) system is used to describe devices that comply with the requirements in ITU-T Recommendations G.872 [ITU-T G.872], G.709 [ITU-T G.709], G.798 [ITU-T G.798], G.874 [ITU-T G.874], and G.874.1 [ITU-T G.874.1]. 🫢

the optical objects will be managed using the MIB II ifTable and ifStackTable. more tables will also be supported to monitor layer-specific status and provide performance monitoring data. in the tables, some entries are required for OTN systems only. πŸ”₯

a Configuration (Config) table, a Current Performance Monitoring (PM) table, and an Interval PM table will be maintained for the OTSn, OMSn, OChGroup, and OCh layers on a source and sink trail termination basis. these tables will be linked to the ifTable by using the ifIndex that is associated with that layer. main character energy πŸ’œ

these objects are used when the particular media being used to realize an interface is an Optical Transport interface. right now, this applies to these values of the ifType variable in the Internet-standard MIB:

opticalChannel (195), opticalChannelGroup (219), opticalTransport
(196)

the definitions in here are based on the OTN specifications in ITU-T G.872[ITU-T G.872], G.709 [ITU-T G.709], G.798[ITU-T G.798], G.874[ITU-T G.874], and G.874.1 [ITU-T G.874.1]. iykyk, and now you do too 🌈

2.1. Use of the ifTable πŸ¦‹βœ¨

Okay bestie, this section is all about how the MIB II interfaces group from RFC 2863 [RFC2863] gets used for optical interfaces πŸ’– Only the ifGeneralInformationGroup will be supported for the ifTable and the ifStackTable, and those two tables are what keep track of how the various layers relate to each other 🧚 The OTN layers get managed in the ifTable using IfEntries that correlate to the layers shown in Figure 1.

For example, a DWDM device with an Optical Network Node Interface (ONNI) has an Optical Transmission Section (OTS) physical layer, an Optical Multiplex Section (OMS) layer (which transports multiple optical channels), and an Optical Channel (OCh) layer 🌈 The OMS and OTS layers have a one to one relationship, and the OMS layer has fixed connectivity via the OTS, so there's no connectivity flexibility at the OMS layer πŸ™ˆ

A device with an ONNI that does not multiplex would consist of the OTS and OCh layers, supporting a single channel πŸ“

MIB-II (RFC 1213) [RFC1213], as amended and extended by RFC 3418 [RFC3418], RFC 2863 [RFC2863], and RFC 2864 [RFC2864], handles these cases through the right use of the system and interfaces groups πŸ‘‘ The system group names and describes the type of managed resource. The interfaces group defines which OTN layers exist and how they're configured and multiplexed. This happens through proper representation of OTN Layers as IfEntries, as defined in RFC 2863 [RFC2863], like so πŸ’…

In the following figures, opticalChannel and opticalTransport are abbreviated as och and otn respectively.

   _____________________
                        \
      Path Data Unit    |\
          (ODUk)        | \
   _____________________|  \ ______________________
                        |   |                      |  >
     Tandem Data Unit   |   |                      |  |
          (ODUkT)       |   |    OCh  Layer        |   > n och IfEntries
   _____________________|   |                      |  |
                        |   |______________________|  >
           Optical      |  /|                      |  >
       Transport Unit   | / |                      |  |
           (OTUk)       |/  |    OMSn Layer        |  |
   _____________________/   |                      |  |
                            |______________________|  |
      Sub-layers in         |                      |   > m otn IfEntries
      the OCh Layer         |                      |  |
                            |    OTSn Layer        |  |
                            |                      |  |
                            |______________________|  >

                         Figure 1: OTN Layers

Since the OMSn and OTSn layers have a one to one relationship, only one otn IfEntry is required to support these two layers 🫢 So each opticalChannel IfEntry may be mapped to m opticalTransport IfEntries, where m is greater than or equal to 1. And the other way around: each opticalTransport entry may be mapped to n opticalChannel IfEntries, where n is greater than or equal to 1 ✨

Now here's a plot twist 😭 There are implementations with banded amplifers that operate on a group of optical channels separately (for example, C and L band channels) before finally muxing them together and transporting them over a physical layer. For these DWDM system implementations, it's important to be able to model each of the groups (or bands) with an ifIndex and measure the pre-OTN PM parameters for each band separately πŸ’œ

The OTN layering from Figure 1 can be extended to accomodate these implementations by introducing another layer called the OChGroup Layer πŸŽ€

As an example, Figure 2 depicts the OTN layering of a DWDM system with 80 C-band and 80 L-band channels, combined into their respective channel band groups before being muxed into the OMS and transported over the OTS 🌸

                   _________    ____________
                  |O|O|  |O |  |O |O |  |O  | >
                  |C|C|  |C |  |C |C |  |C  | |
                  |h|h|..|h |  |h |h |..|h  |  > x och IfEntries
                  |1|2|  |80|  |81|82|  |160| |
                  |_|_|__|__|  |__|__|__|___| >
                  |         |  |            | >
                  |         |  |            | |
                  |OChGroup1|  | OChGroup2  |  > n ochgroup IfEntries
                  |         |  |            | |
                  |_________|__|____________| >
                  |                         | >
                  |                         | |
                  |        OMSn Layer       | |
                  |                         | |
                  |_________________________| |
                  |                         |  > m otn IfEntries
                  |                         | |
                  |        OTSn Layer       | |
                  |                         | |
                  |_________________________| >

             Figure 2: OTN Layers for a Banded Configuration

If an implementation doesn't want to model the banded configuration, the OChGroup layer is absent and the OTN layering model degenerates to the description in Figure 1 πŸ™ƒ In other words, when there's an amplifier that covers the whole band, the optIfOMSn objects should be used, rather than using the optIfOChGroup objects with a degenerate group that covers all channels πŸ‘‘

The design of the Optical Interface MIB gives you the option to model an interface either as a single bidirectional object containing both sink and source functions, or as a pair of unidirectional objects, one containing sink functions and the other containing source functions. Pick your fighter πŸ’…

If the sink and source for a given protocol layer are modelled as separate objects, then there need to be two ifTable entries, one that corresponds to the sink and one that corresponds to the source πŸ¦‹ The directionality information goes in the configuration tables for that layer via the xxxDirectionality objects. The agent is expected to maintain consistent directionality values between ifStackTable layers (for example, a sink must not be stacked in a 1:1 manner on top of a source, or vice-versa). All protocol layers represented by a given ifTable entry are expected to have the same directionality. That means instances of optIfOTSnDirectionality and optIfOMSnDirectionality that correspond to a given ifIndex value must have the same value, and instances of optIfOChDirectionality, optIfOTUkDirectionality, and optIfODUkDirectionality that correspond to a given ifIndex value must have the same value 🧚

When separate ifTable entries are used for the source and sink functions of a given physical interface, the association between the two uni-directional ifTable entries (one for the source function and the other for the sink functions) should be provided πŸ’– It is recommended that identical ifName values are used for the two ifTable entries to indicate that association. An implementation shall explicitly state what mechanism is used to indicate the association, if ifName is not used 🫢

Example 1: Management of unterminated opticalChannel (och) using passive optics 🌈

An OTN device connected with two adjacent nodes in a single fiber ring that supports 10 wavelengths per fiber would have 2 opticalTransport IfEntries and 20 opticalChannel IfEntries, as depicted in Figure 3. So 10 opticalChannel IfEntries are stacked above the first opticalTransport IfEntry, and the other 10 opticalChannel IfEntries are stacked above the second opticalTransport IfEntry. Note that the optical channels in this example are un-terminated, so no OTUk objects will be instantiated for these optical channels πŸ™ˆ The opticalChannel IfEntries of one otn may be dropped/added from/to the OTN device, or cross-connected with the opticalChannel IfEntries of the other otn. Cross-connection from a member of the first 10 opticalChannel IfEntries to a member of the second 10 could be modelled using a cross-connect object, which is not yet defined in this version of the MIB πŸ’€

    ______________________                      ______________________
   |       |      |       |                    |       |      |       |
   | och1  | ...  | och10 |                    | och11 | ...  | och20 |
   |_______|______|_______|                    |_______|______|_______|
   |                      |                    |                      |
   |         otn1         |                    |         otn2         |
   |______________________|                    |______________________|
                               ____________
                              |            |
          ___________________\|    OTN     |__________________\
                             /|   device   |                  /
                              |____________|

          Figure 3: Interface stacks when channels are unterminated

Example 2: Management of terminated opticalChannel (och) interfaces πŸ“

An OTN device connected with two adjacent nodes in a single fiber ring that supports 10 wavelengths per fiber would have 2 opticalTransport IfEntries and 20 opticalChannel IfEntries, as depicted in Figure 4. So 10 opticalChannel IfEntries are stacked above the first opticalTransport IfEntry, and the other 10 opticalChannel IfEntries are stacked above the second opticalTransport IfEntry. Since the optical channels in this example are terminated, OTUk objects and possibly ODUk objects will be instantiated for the terminated opticalChannel IfEntries 🌟

    ______________________                      ______________________
   |       |      |       |                    |       |      |       |
   | och1  | ...  | och10 |                    | och11 | ...  | och20 |
   |_______|______|_______|                    |_______|______|_______|
   |                      |                    |                      |
   |         otn1         |                    |         otn2         |
   |______________________|                    |______________________|
                               ____________
                              |            |
          ___________________\|    OTN     |__________________\
                             /|   device   |                  /
                              |____________|

          Figure 4: Interface stacks when channels are terminated

Note that the two examples above depict the interface stacks when the banded configuration is not modeled 🧚

The exact configuration and multiplexing of the layers is maintained in the ifStackTable (RFC 2863) [RFC2863] and in the ifInvStackTable (RFC 2864) [RFC2864]. See section 2.5 for details πŸ’œ

2.2. Use of ifTable for OTN OTS/OMS Layer

okay bestie, for this layer you only need to support the ifGeneralInformationGroup πŸ’… that's the whole list, no extra groups πŸŽ€

   ifTable Object      Use for combined OTN OTS/OMS Layer
   =====================================================================
    ifIndex             The interface index.

    ifDescr             Optical Transport Network (OTN) Optical
                        Transmission Section (OTS)/Optical Multiplex
                        Section (OMS)

    ifType              opticalTransport (196)

    ifSpeed             Actual bandwidth of the interface in bits per
                        second.  If the bandwidth of the interface is
                        greater than the maximum value of 4,294,967,295,
                        then the maximum value is reported and
                        ifHighSpeed must be used to report the
                        interface's speed.

    ifPhysAddress       An octet string with zero length.  (There is
                        no specific address associated with the
                        interface.)

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

    ifOperStatus        The operational status of the interface.  The
                        value lowerLayerDown(7) is not used, since
                        there is no lower layer interface.  This object
                        is set to notPresent(6) if a component is
                        missing, otherwise it is set to down(2) if
                        either of the objects optIfOTSnCurrentStatus or
                        optIfOMSnCurrentStatus indicates that any
                        defect is present.

    ifLastChange        The value of sysUpTime at the last change in
                        ifOperStatus.

    ifName              Enterprise-specific convention (e.g., TL-1 AID)
                        to identify the physical or data entity
                        associated with this interface or an
                        OCTET STRING of zero length.  The
                        enterprise-specific convention is intended to
                        provide the means to reference one or more
                        enterprise-specific tables.

    ifLinkUpDownTrapEnable  Default value is enabled(1).  Supports
                            read-only access.

    ifHighSpeed         Actual bandwidth of the interface in Mega-bits
                        per second.  A value of n represents a range of
                        'n-0.5' to 'n+0.499999'.

    ifConnectorPresent  Set to true(1).

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

2.3. Use of ifTable for OTN OChGroup Layer

same deal here: only the ifGeneralInformationGroup needs support ✨

   ifTable Object      Use for OTN OChGroup Layer
   =====================================================================
    ifIndex             The interface index.

    ifDescr             Optical Transport Network (OTN) Optical
                        Channel Group (OChGroup)

    ifType              opticalChannelGroup(219)

    ifSpeed             Current bandwidth of the interface in bits per
                        second.  If the bandwidth of the interface is
                        greater than the maximum value of 4,294,967,295,
                        then the maximum value is reported and
                        ifHighSpeed must be used to report the
                        interface's speed.

    ifPhysAddress       A string that specifies the range of wavelengths
                        in the format of w1-w2, where w1 and w2 are the
                        lower and upper end of the wavelength range,
                        both in ASCII decimal digits expressed in
                        nanometers (e.g., 1350-1650)

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

    ifOperStatus        The operational status of the interface.  This
                        object is set to lowerLayerDown(7) if the
                        ifOperStatus of its otn interface is down(2).
                        Otherwise, it is set to down(2) if the
                        amplifier for this band is unable to carry
                        traffic.

    ifLastChange        The value of sysUpTime at the last change in
                        ifOperStatus.

    ifName              Enterprise-specific convention (e.g., TL-1 AID)
                        to identify the physical or data entity
                        associated with this interface or an
                        OCTET STRING of zero length.  The
                        enterprise-specific convention is
                        intended to provide the means to reference one
                        or more enterprise-specific tables.

    ifLinkUpDownTrapEnable  Default value is disabled(2).  Supports
                            read-only access.

    ifHighSpeed         Current bandwidth of the interface in Mega-bits
                        per second.  A value of n represents a range of
                        'n-0.5' to 'n+0.499999'.

    ifConnectorPresent  Set to false(2).

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

2.4. Use of ifTable for OTN OCh Layer

and once more, same rule: only the ifGeneralInformationGroup is needed 🌸

   ifTable Object      Use for OTN OCh Layer
   =====================================================================
    ifIndex             The interface index.

    ifDescr             Optical Transport Network (OTN) Optical
                        Channel (OCh)

    ifType              opticalChannel(195)
    ifSpeed             Current bandwidth of the interface in bits per
                        second.  If the bandwidth of the interface is
                        greater than the maximum value of 4,294,967,295,
                        then the maximum value is reported and
                        ifHighSpeed must be used to report the
                        interface's speed.

    ifPhysAddress       A string of ASCII decimal digits containing the
                        wavelength of the optical channel, expressed
                        in nanometers (e.g., 1550).

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

    ifOperStatus        The operational status of the interface.  This
                        object is set to lowerLayerDown(7) if the
                        ifOperStatus of its otn interface or of its
                        OChGroup interface is down(2).
                        Otherwise, it is set to down(2) if one or more
                        of the objects optIfOChCurrentStatus,
                        optIfOTUkCurrentStatus, optIfODUkTCurrentStatus,
                        and optIfODUkTtpCurrentStatus indicates
                        that any defect is present.


    ifLastChange        The value of sysUpTime at the last change in
                        ifOperStatus.

    ifName              Enterprise-specific convention (e.g., TL-1 AID)
                        to identify the physical or data entity
                        associated with this interface or an
                        OCTET STRING of zero length.  The
                        enterprise-specific convention is
                        intended to provide the means to reference one
                        or more enterprise-specific tables.

    ifLinkUpDownTrapEnable  Default value is disabled(2).  Supports
                            read-only access.

    ifHighSpeed         Current bandwidth of the interface in Mega-bits
                        per second.  A value of n represents a range of
                        'n-0.5' to 'n+0.499999'.

    ifConnectorPresent  Set to false(2).

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

2.5. Use of ifStackTable

the stack table is how you tie the opticalTransport and opticalChannel entries together, and Figure 5 shows it best πŸ¦‹ here the otn interface is ifIndex i, and it carries two multiplexed och interfaces, j and k. so j and k are stacked above (aka multiplexed into) i. i has no layer below it, and j and/or k have no layer above them πŸ’–

                     HigherLayer   LowerLayer
                    --------------------------
                         0             j
                         0             k
                         j             i
                         k             i
                         i             0

Figure 5: Use of ifStackTable for an OTN port

Figure 6 is the banded version 🧚 the otn interface is ifIndex i, carrying two multiplexed och groups, u and v. group u combines och interfaces a and b, and group v combines och interfaces c and d. so a and b are stacked above u, c and d are stacked above v, and u and v are multiplexed into i. again, nothing sits below i, and nothing sits above a, b, c, and/or d. u has a and b as its higher layers, and v has c and d as its higher layers 🌈

                     HigherLayer   LowerLayer
                    --------------------------
                         0             a
                         0             b
                         0             c
                         0             d
                         a             u
                         b             u
                         c             v
                         d             v
                         u             i
                         v             i
                         i             0

Figure 6: Use of ifStackTable for an OTN port for a banded configuration

the inverse stack table is basically the same info as the interface stack table, just with the Higher and Lower layer columns flipped πŸ”„βœ¨

2.6. Optical Network Terminology ✨

okay so this part is the glossary bit, and it's giving alphabet soup 🍜 but we're gonna make it make sense, bestie πŸ’… The terms here describe the layers of an optical network, plus the error conditions and performance monitoring parameters on an optical circuit as an optical system sees them. These terms are defined in ITU-T Recommendations G.872 [ITU-T G.872], G.709 [ITU-T G.709], G.798 [ITU-T G.798], G.874 [ITU-T G.874], G.874.1 [ITU-T G.874.1], and G.806 [ITU-T G.806]. We also added some quick definitions here so the doc is easier to read πŸ¦‹

Degraded Threshold (DEGTHR) - G.806

This is a threshold level for declaring a performance monitoring (PM) Second (a time period of one second) to be bad. A PM Second is declared bad if the percentage of detected errored blocks in that second or the number of errored blocks in that Second is greater than or equal to DEGTHR. main character energy πŸŽ€

DEGM - G.806

This is a threshold level for declaring a Degraded Signal defect (dDEG). A dDEG shall be declared if DEGM consecutive bad PM Seconds are detected. 🌸

Expected Destination Access Point Identifier (ExDAPI) - G.798

The Expected Destination Access Point Identifier (ExDAPI) is provisioned by the managing system. It gets compared with the TTI accepted at the overhead position of the sink, so you can check that connectivity is intact πŸ”—

Expected Source Access Point Identifier (ExSAPI) - G.798

The Expected Source Access Point Identifier (ExSAPI) is also provisioned by the managing system. Same deal as ExDAPI: it gets compared with the TTI accepted at the overhead position of the sink to check the integrity of connectivity ✨

Inter-Domain Interface (IrDI) - G.872

This is a physical interface that represents the boundary between two administrative domains. G.709 defines the requirements for the IrDI at the Network Node Interface (NNI). 🧚

Intra-Domain Interface (IaDI) - G.872

This one is a physical interface within an administrative domain. Inter is between, intra is inside, easy 🫢

Optical Channel Layer Network (OCh) - G.872

This layer network provides end-to-end networking of optical channels. It transparently conveys client information of varying format (e.g., SDH STM-N, PDH 565 Mbit/s, cell based ATM, etc.). The OCh is basically the layer that carries anybody's data without caring what it looks like πŸ¦‹

Optical Channel Data Unit Path Layer Network (ODUk) - G.709/Y.1331

This layer network provides functionality for the transport of an information structure. That structure has the information payload (OPUk) and the related overhead for management of an optical channel πŸ“¦

Optical Channel Data Unit Tandem Connection Sub-Layer Network (ODUkT) - G.709/Y.1331

This layer network is a sub-layer of the optical data unit layer, and it gives you the capability for tandem connection monitoring. One to six nested levels of monitoring are defined for OTN. Nested monitoring, iconic πŸ‘‘

Optical Channel Payload Unit (OPUk) - G.709/Y.1331

The OPUk is the information structure used to adapt client information for transport over an optical channel. OPUk capacities for k=1, k=2, k=3 are defined in ITU-T. The index "k" is used to represent different versions of OPUk, ODUk and OTUk. k=1 represents an approximate bit rate of 2.5 Gbit/s, k=2 represents an approximate bit rate of 10 Gbit/s, and k=3 represents an approximate bit rate of 40 Gbit/s. So k is basically the speed tier, and the bigger the k, the faster it goes πŸš€

Optical Multiplex Section Layer Network (OMS) - G.872

This layer network provides functionality for networking of a multi-wavelength optical signal. Note that a "multi-wavelength" signal includes the case of just one optical channel. So even a single wavelength counts, which is lowkey iconic 🌈

Optical Transport Module (OTM-n[r].m) - G.872

The OTM is the information structure that is transported across an ONNI. The index n and m define the number of supported wavelengths and bit rates at the interface.

There are two OTM structures: OTM with full functionality (OTM-n.m) and OTM with reduced functionality (OTM-0.m & OTM-nr.m).

The OTM-n.m consists of up to n multiplexed optical channels and an OTM overhead signal to support the non-associated overhead. The OTM-0 consists of a single optical channel without a specific color assigned. The OTM-nr.m consists of up to n multiplexed optical channels. Non associated overhead is not supported. πŸ’œ

Optical Transport Network (OTN) - G.872

This is a transport network bounded by optical channel access points. The optical transport network layered structure is made up of the optical channel, optical multiplex section and optical transmission section layer networks.

According to G.872, an OTN-compliant interface is an interface of the optical transport network based on the architecture defined in G.872. An OTN-non-compliant interface is an interface that does not comply with the interface recommendations that will be defined for the optical transport network based on the architecture defined in G.872. Compliant vs non-compliant, the drama πŸ’€

Optical Transmission Section Layer Network (OTS) - G.872

This layer network provides functionality for transmission of optical signals on optical media of various types. 🌟

Optical Channel Transport Unit Section Layer Network (OTUk) - G.709

The OTUk is the layer network that provides for the transport of an ODUk over one or more optical channel link connections. It consists of the optical channel data unit and OTUk related overhead (FEC and overhead for management of an optical channel link connection). It is characterized by its frame structure, bit rate, and bandwidth. πŸ“

Payload Type Mismatch (PLM)

The detection of a mismatch of payload type is based on a comparison between the expected Payload Type signal, provisioned via the management interface, and the received Payload Type signal. So it's checking what's expected against what actually showed up πŸ™ˆ

Trail Trace Identifier Transmitted (TxTI) - G.798

This is the Trail Trace Identifier (TTI) information, provisioned by the managing system, to be placed in the TTI overhead position of the source of a trail for transmission. Think of it as the outgoing name tag 🏷️

Trail Trace Identifier Accepted (AcTI) - G.798

This is the Trail Trace Identifier (TTI) information accepted from the TTI overhead position at the sink of a trail. So it's the incoming name tag, at the receiving end πŸ“¬

Trail Trace Identifier Accepted Status (AcTIStatus) - G.798

This is the Status of the Trail Trace Identifier (TTI) accepted from the TTI overhead position at the sink of a trail. It's the status report on that incoming tag πŸ“‹

Trace Identifier Mismatch (TIM) - G.798

The detection of TIM is based on a comparison between the expected Trial Trace Identifier (TTI), configured via the management interface, and the received TTI. Yes, the original says "Trial" there, so we're keeping it exactly as it is 🀭

Trace Identifier Mismatch Consequent Action Enabled (TimActEnabled) - G.798

The Consequent Action function of TIM is disabled. ⚠️

Trace Identifier Mismatch Detection Mode (TimDetMode) - G.798

This is the mode of detecting Trace Identifier Mismatch (TIM). The possible modes are:

  • (1) off - no checking
  • (2) SAPI - checking the SAPI only
  • (3) DAPI - checking the DAPI only
  • (4) Both - checking both the SAPI and DAPI

2.6.1. Defect Conditions 🚨

The following Defect conditions are defined in G.798 (as fault cause) for OTN monitoring. Here's the full list:

ais          Alarm Indication Signal (AIS)
bdi          Backward Defect Indication (BDI)
bdiO         Backward Defect Indication - Overhead (BDI-O)
bdiP         Backward Defect Indication - Payload (BDI-P)
deg          Degraded (DEG)
lck          Locked (LCK)
lof          Loss of Frame (LOF)
lom          Loss of Multi Frame
los          Loss of Signal (LOS)
losO         Loss of Signal - Overhead (LOS-O)
losP         Loss of Signal - Payload (LOS-P)
oci          Open Connection Indication (OCI)
plm          Payload Mismatch (PLM)
ssf          Server Signal Failure (SSF)
ssfO         Server Signal Failure - Overhead (SSF-O)
ssfP         Server Signal Failure - Payload (SSF-P)
tim          Trace Identifier Mismatch (TIM)

The relationship of these conditions within a network layer and between layers is described in G.798 [ITU-T G.798]. It's like how the layers and the conditions all talk to each other, and G.798 is the place to read the full story πŸ’–

2.6.2. Performance Parameters ✨

Okay so bestie, we need to keep an eye on stuff like optical power at every layer πŸ‘€ so we can figure out which equipment and facilities might need some TLC πŸ”§. These measurements get taken periodically, and there's also a snapshot of the current value ready to go πŸ“Έ. Each layer keeps performance parameters for the current 15-minute interval, the current 24-hour interval, N previous 15-minute intervals where 4 <= N <= 96 πŸ’…, and one previous 24-hour interval πŸŒ™.

Note that some of the previous interval data will be unavailable if the agent has restarted within the last 24 hours πŸ™ˆ.

There is no requirement for an agent to lock the start of a 15-minute or 24-hour interval to any wall clock πŸ•°οΈ. Some agents may line up the 15-minute intervals with quarter hours, and may line up the 24-hour intervals with a particular hour of the day (e.g., 00:00 UTC) ⏰.

Note that some DWDM systems may also monitor the laser temperature of the equipment on top of optical power 🌑️. But industry opinions are all over the place πŸ€·β€β™€οΈ, especially about whether that monitoring is worth it and which temperatures should be watched (all of them, or only some of the pump lasers). Same drama with mid-stage power monitoring. Since no consensus was reached, it was decided that laser temperature monitoring and mid-stage monitoring would not be standardized in the MIB. If an implementation would like to monitor these parameters, it could use a proprietary MIB or the ENTITY-SENSOR-MIB [RFC3433] to capture this information 🧚.

The sink-side monitoring points for the various layers are shown in Figure 7 below πŸ‘‡.

    OCh sink pre-OTN PM params
        |
        |    OChGroup sink pre-OTN params
        |        |
        |        |               OMSn sink pre-OTN PM params
        |        |                    |
        |        |                    |     OTSn sink pre-OTN PM params
        |        |                    |                   |
        V        V                    V                   V
                                                          /|
    ____/|_______/|                   /|                 / |
        \| .    / |__________________/ |________________/  |_____
           .    \ |              ____\ |                \  |
    ____/|_______\|             |     \|              ___\ |
        \|      C-Band          |   Demux            |    \|
                                |                    |
                                |                    |
    ____/|_______/|             |                   OSC
        \| .    / |_____________|
           .    \ |
    ____/|_______\|
        \|     L-Band

   optical     optical              optical       OSC Drop Filter
   rcvr (O/E)  demux                demux

       OCh      OChGroup             OMSn               OTSn

             Figure 7: Sink-side pre-OTN monitoring points

The source-side monitoring points for the various layers are shown in Figure 8 below πŸŽ€.

   OCh src pre-OTN PM params
        |
        |    OChGroup src pre-OTN PM params
        |       |
        |       |            OMSn src pre-OTN PM params
        |       |                  |
        |       |                  |          OTSn src pre-OTN PM params
        |       |                  |                |
        V       V                  V                V
                                                    |\
    ___|\______|\                  |\               | \
       |/    . | \_________________| \______________|  \______
             . | /              ___| /              |  /
           ----|/              |   |/             __| /
          C-Band MUX           |   Mux           |  |/
                               |                 |
                               |                OSC
    ___|\______|\              |
       |/    . | \_____________|
             . | /
           ----|/
          L-Band MUX

    optical  optical             optical      OSC Add Filter
    xmtr     mux                 mux
    (E/O)

     OCh     OChGroup              OMSn             OTSn

            Figure 8: Source-side pre-OTN monitoring points

Note that optical performance parameters are of type Integer32, rather than Counter32 or Gauge32, because these objects can increase or decrease, and can take on negative or positive values πŸ”₯.

2.7. Tandem Connection Monitoring (TCM) πŸŽ€

An ODUk termination can be provisioned to support (0..6) TCM levels 🧩. Each TCM field has these subfields:

  • Trail Trace Identifier (TTI)
  • Bit Interleaved Parity 8 (BIP8)
  • Backward Defect Indication (BDI)
  • Backward Error Indication (BEI)
  • Status bits indicating the presence of TCM overhead, Incoming AlignmentError, or a maintenance signal (STAT)

The insertion of these subfields is controlled by:

  • optIfODUkTSourceMode or otnODUkTsinkMode

The detection and corresponding action of these subfields are controlled by:

  • optIfODUkTTimDetMode
  • optIfODUkTTimActEnabled

The TCM connection is used for monitoring the quality of an end-to-end connection or any segment, as in this example πŸ’œ:

   TCM1 used for the end-to-end connection from A1 to A2.
   TCM2 used for segment B1-B2, then used again for segment B3-B4.
   TCM3-TCM6 these bytes are not in used in this example.

The TCM connection can be nested (B1-B2 is nested in A1-A2) or cascaded (B1-B2 and B3-B4) πŸͺ†.

      ______     ______     ______     ______     ______
      |TCM6|     |TCM6|     |TCM6|     |TCM6|     |TCM6|
      |----|     |----|     |----|     |----|     |----|
      |TCM5|     |TCM5|     |TCM5|     |TCM5|     |TCM5|
      |----|     |----|     |----|     |----|     |----|
      |TCM4|     |TCM4|     |TCM4|     |TCM4|     |TCM4|
      |----|     |----|     |----|     |----|     |----|
      |TCM3|     |TCM3|     |TCM3|     |TCM3|     |TCM3|
      |----|     |----|     |----|     |----|     |----|
      |TCM2|     |TCM2|     |TCM2|     |TCM2|     |TCM2|
      |----|     |----|     |----|     |----|     |----|
      |TCM1|     |TCM1|     |TCM1|     |TCM1|     |TCM1|
      |----|     |----|     |----|     |----|     |----|
         |         |          |          |           |
         |         |          |          |           |
         |         |          |          |           |
         |         |          |          |           |
         |         |          |          |           |
     |\         |\         /|         |\         /|        /|
----> | \________| \_______/ |_________| \_____  / |______ / | ---->
     | /        | /       \ |         | /       \ |       \ |
     |/         |/         \|         |/         \|        \|

TCM1: A1 <------------------------------------------------> A2
TCM2:            B1 <-----> B2         B3 <-----> B4

3. Structure of the MIB ✨

The managed Optical Networking interface objects are arranged into the following groups of tables πŸ—‚οΈ:

The optIfOTMn group handles the OTM information structure of an optical interface πŸ¦‹.

  • optIfOTMnTable

The optIfPerfMon group handles the current 15-minute and 24-hour interval elapsed time, as well as the number of 15-minute intervals for all layers ⏱️.

  • optIfPerfMonIntervalTable

The optIfOTSn groups handle the configuration and performance monitoring information for OTS layers 🌈.

  • optIfOTSnConfigTable
  • optIfOTSnSinkCurrentTable
  • optIfOTSnSinkIntervalTable
  • optIfOTSnSinkCurDayTable
  • optIfOTSnSinkPrevDayTable
  • optIfOTSnSrcCurrentTable
  • optIfOTSnSrcIntervalTable
  • optIfOTSnSrcCurDayTable
  • optIfOTSnSrcPrevDayTable

The optIfOMSn groups handle the configuration and performance information for OMS layers 🌸.

  • optIfOMSnConfigTable
  • optIfOMSnSinkCurrentTable
  • optIfOMSnSinkIntervalTable
  • optIfOMSnSinkCurDayTable
  • optIfOMSnSinkPrevDayTable
  • optIfOMSnSrcCurrentTable
  • optIfOMSnSrcIntervalTable
  • optIfOMSnSrcCurDayTable
  • optIfOMSnSrcPrevDayTable

The optIfOChGroup groups handle the configuration and performance information for OChGroup layers πŸ“.

  • optIfOChGroupConfigTable
  • optIfOChGroupSinkCurrentTable
  • optIfOChGroupSinkIntervalTable
  • optIfOChGroupSinkCurDayTable
  • optIfOChGroupSinkPrevDayTable
  • optIfOChGroupSrcCurrentTable
  • optIfOChGroupSrcIntervalTable
  • optIfOChGroupSrcCurDayTable
  • optIfOChGroupSrcPrevDayTable

The optIfOCh groups handle the configuration and performance monitoring information for OCh layers πŸ’–.

  • optIfOChConfigTable
  • optIfOChSinkCurrentTable
  • optIfOChSinkIntervalTable
  • optIfOChSinkCurDayTable
  • optIfOChSinkPrevDayTable
  • optIfOChSrcCurrentTable
  • optIfOChSrcIntervalTable
  • optIfOChSrcCurDayTable
  • optIfOChSrcPrevDayTable

The optIfOTUk groups handle configuration information for OTUk 🧁.

  • optIfOTUkConfigTable
  • optIfGCC0ConfigTable

The optIfODUk groups handle configuration information for ODUk 🫧.

  • optIfODUkConfigTable
  • optIfODUkTtpConfigTable
  • optIfODUkPositionSeqTable
  • optIfODUkNimConfigTable
  • optIfGCC12ConfigTable

The optIfODUkT groups handle configuration information for ODUkT 🌷.

  • optIfODUkTConfigTable
  • optIfODUkTNimConfigTable
This memo does not define MIB objects for optical system cross-connects. After a consensus is reached on definitions of the interface MIB objects for optical systems (resulting from resolution of discussions on the objects proposed in this memo), work can progress on the definitions of tables to represent cross-connects (e.g., OCh optical cross-connects and ODUk electrical cross-connects) 🚧.

3.1. The optIfOTMn group

3.1.1. optIfOTMnTable

This table contains the OTM structure information of an optical interface πŸ¦‹.

3.2. The optIfPerfMon group

3.2.1. optIf Performance Monitoring Interval Table

This table applies to all performance monitoring on an NE. It records on a per-interface basis the elapsed time in the current 15-minute and 24-hour interval, as well as the total number of 15-minute intervals and the number of invalid 15-minute intervals ⏱️.

3.3. The optIfOTSn groups

3.3.1. optIfOTSn Configuration group

3.3.1.1. optIfOTSn Configuration Table

This table contains information on configuration of optIfOTSn interfaces, in addition to the information on such interfaces contained in the ifTable πŸ› οΈ.

3.3.2. optIfOTSn Pre-OTN PM group

3.3.2.1. optIfOTSn Source Current Table

This table contains information on current performance of optIfOTSn interfaces contained in the ifTable πŸ“ˆ.

3.3.2.2. optIfOTSn Source Interval Table

This table contains information on historic performance of optIfOTSn interfaces contained in the ifTable πŸ“š.

3.3.2.3. optIfOTSn Source Current Day Table

This table contains a snapshot of information for the current 24-hour period for optIfOTSn interfaces contained in the ifTable πŸ“Έ.

3.3.2.4. optIfOTSn Source Previous Day Table

This table contains a snapshot of information for the previous 24-hour period for optIfOTSn interfaces contained in the ifTable πŸŒ™.

3.3.2.5. optIfOTSn Sink Current Table

This table contains information on current performance of optIfOTSn interfaces contained in the ifTable πŸ“ˆ.

3.3.2.6. optIfOTSn Sink Interval Table

This table contains information on historic performance of optIfOTSn interfaces contained in the ifTable πŸ“š.

3.3.2.7. optIfOTSn Sink Current Day Table πŸ“…βœ¨

okay so this table is basically a little snapshot of the current 24-hour period for every optIfOTSn interface chilling in the ifTable πŸ“ΈπŸ’– it's giving "what's happened today" energy, no cap

3.3.2.8. optIfOTSn Sink Previous Day Table πŸŒ™πŸ¦‹

same vibe, but for the previous 24-hour period πŸ§ΎπŸ’… yesterday's receipts, bestie! it's another snapshot, this time for the optIfOTSn interfaces in the ifTable

3.4. The optIfOMSn groups πŸŽ€

3.4.1. optIfOMSn Configuration group 🧚

3.4.1.1. optIfOMSn Configuration Table βš™οΈ

this table is where the config deets for optIfOMSn interfaces live πŸ› οΈ it sits on top of the info already in the ifTable, so they're literally a power couple 🫢

3.4.2. optIfOMSn Pre-OTN PM group πŸ“Š

3.4.2.1. optIfOMSn Source Current Table πŸ’«

this one holds the current performance numbers for optIfOMSn interfaces in the ifTable, so you can see how things are going right now πŸ‘€βœ¨

3.4.2.2. optIfOMSn Source Interval Table πŸ•°οΈ

this is the historic performance version πŸ“š the optIfOMSn interfaces in the ifTable and how they did over time, the tea is all in here β˜•πŸ“

3.4.2.3. optIfOMSn Source Current Day Table 🌞

a snapshot of the current 24-hour period for optIfOMSn interfaces in the ifTable πŸ“ΈπŸŒΈ today's highlight reel, periodt

3.4.2.4. optIfOMSn Source Previous Day Table 🌜

same energy, but for the previous 24-hour period πŸ—“οΈπŸ’œ yesterday's snapshot for those optIfOMSn interfaces in the ifTable, slay

3.4.2.5. optIfOMSn Sink Current Table πŸ’…

current performance of optIfOMSn interfaces in the ifTable, but this time from the sink side πŸ‘‘ the receiving end is serving looks rn

3.4.2.6. optIfOMSn Sink Interval Table πŸ“ˆ

historic performance for those optIfOMSn interfaces in the ifTable, sink side again πŸ¦‹ lowkey the most iconic records in the whole thing

3.4.2.7. optIfOMSn Sink Current Day Table πŸŒ…

a snapshot of the current 24-hour period for optIfOMSn interfaces in the ifTable, sink edition 🫧 okay the sink is really doing the most, bestie

3.4.2.8. optIfOMSn Sink Previous Day Table 🌌

and the previous 24-hour period snapshot for optIfOMSn interfaces in the ifTable, sink side πŸ§ΎπŸŽ€ that's a wrap on the OMSn tables!

3.5. The optIfOChGroup groups πŸ’Ž

3.5.1. optIfOChGroup Configuration group 🧁

3.5.1.1. optIfOChGroup Configuration Table πŸ› οΈ

the configuration info for optIfOChGroup interfaces, stacked on top of what's already in the ifTable πŸ«ΆπŸ’– they really don't go anywhere without each other

3.5.2. optIfOChGroup Pre-OTN PM group πŸ“‰

3.5.2.1. optIfOChGroup Source Current Table ✨

current performance of optIfOChGroup interfaces that are in the ifTable πŸ”₯ real-time receipts, no filter needed

3.5.2.2. optIfOChGroup Source Interval Table πŸ—‚οΈ

historic performance for optIfOChGroup interfaces in the ifTable πŸ“œ the archive era, honestly iconic

3.5.2.3. optIfOChGroup Source Current Day Table β˜€οΈ

a snapshot of the current 24-hour period for optIfOChGroup interfaces in the ifTable πŸ“ΈπŸŒ· today, captured in full glam

3.5.2.4. optIfOChGroup Source Previous Day Table πŸŒ™

the previous 24-hour period snapshot for optIfOChGroup interfaces in the ifTable 🧚 yesterday, but make it cute

3.5.2.5. optIfOChGroup Sink Current Table πŸ’…

current performance of optIfOChGroup interfaces in the ifTable, sink side πŸ‘‘ the receiving end never misses

3.5.2.6. optIfOChGroup Sink Interval Table πŸ•°οΈ

historic performance for optIfOChGroup interfaces in the ifTable, sink side πŸ“š the timeline is giving main character

3.5.2.7. optIfOChGroup Sink Current Day Table 🌞

a snapshot of the current 24-hour period for optIfOChGroup interfaces in the ifTable, sink edition 🫧 today's sink drama, served

3.5.2.8. optIfOChGroup Sink Previous Day Table 🌌

the previous 24-hour period snapshot for optIfOChGroup interfaces in the ifTable, sink side πŸŽ€ and that's the whole OChGroup set, bestie πŸ’–

3.6. The optIfOCh groups 🌈

3.6.1. optIfOCh Configuration group πŸ§šβ€β™€οΈ

3.6.1.1. optIfOCh Configuration Table βš™οΈ

this table is the configuration info for optIfOCh interfaces, on top of the ifTable info 🫢 yes they're a duo, obsessed

3.6.2. optIfOCh Pre-OTN PM group πŸ“Š

3.6.2.1. optIfOCh Source Current Table πŸ’«

current performance of optIfOCh interfaces in the ifTable πŸ‘€ the right-now report

3.6.2.2. optIfOCh Source Interval Table πŸ“š

historic performance for optIfOCh interfaces in the ifTable πŸ“ the lookback era, ngl

3.6.2.3. optIfOCh Source Current Day Table 🌞

a snapshot of the current 24-hour period for optIfOCh interfaces in the ifTable πŸ“Έβœ¨ today, freshly captured

3.6.2.4. optIfOCh Source Previous Day Table 🌜

the previous 24-hour period snapshot for optIfOCh interfaces in the ifTable πŸ—“οΈπŸ’œ yesterday, served cold

3.6.2.5. optIfOCh Sink Current Table πŸ’…

current performance of optIfOCh interfaces in the ifTable, sink side πŸ‘‘ receiving end, eating

3.6.2.6. optIfOCh Sink Interval Table πŸ•°οΈ

historic performance for optIfOCh interfaces in the ifTable, sink side πŸ¦‹ the timeline is a whole vibe

3.6.2.7. optIfOCh Sink Current Day Table πŸŒ…

a snapshot of the current 24-hour period for optIfOCh interfaces in the ifTable, sink edition 🫧 today's sink moment

3.6.2.8. optIfOCh Sink Previous Day Table 🌌

the previous 24-hour period snapshot for optIfOCh interfaces in the ifTable, sink side πŸŽ€ that's the OCh set, periodt

3.7. The optIfOTUk groups πŸ“

3.7.1. optIfOTUk Configuration group 🧁

3.7.1.1. optIfOTUk Configuration Table πŸ› οΈ

configuration info for optIfOTUk interfaces, on top of what's already in the ifTable 🫢 they go together like peanut butter and jelly

3.7.2. optIfGCC0 Configuration group πŸ“‘

3.7.2.1. optIfGCC0 Configuration Table πŸ”§

this one covers the configuration of the GCC0 communication channel πŸ’¬ the GCC0 is the one doing the talking

3.8. The optIfODUk groups πŸ’œ

3.8.1. optIfODUk Configuration group 🧚

3.8.1.1. optIfODUk Configuration Table 🌸

okay this one is the common stuff shared by endpoints (called trail termination points, or TTPs) and connection termination points (CTPs) 🫢 it also has a flag that says whether TTP functions are present, so check that 🚩

3.8.2. optIfODUkTtp Configuration group πŸ¦‹

3.8.2.1. optIfODUkTtp Configuration Table βš™οΈ

the TTP-specific config info for optIfODUk interfaces πŸ’… it sits on top of what's already in the ifTable, so the full picture is here

3.8.3. optIfODUk Position Seq group πŸŽ€

3.8.3.1. optIfODUk Position Seq Table πŸ”’

this table is all about the position sequence of the TCM function and/or GCC12 access that got created inside the optIfODUk interfaces 🧩 plus, it's extra info stacked on the ifTable, so it's a full set

3.8.4. optIfODUk Nim Configuration group πŸ”

3.8.4.1. optIfODUk Nim Configuration Table πŸ•΅οΈ

the configuration info for optIfODUk Non-intrusive monitoring πŸ‘€ the watching-without-touching era

3.8.5. optIfGCC12 Configuration group πŸ“‘

3.8.5.1. optIfGCC12 Configuration Table πŸ”§

configuration of the GCC1 and GCC2 communication channels πŸ’¬ two channels, double the chatter, iykyk

3.9. The optIfODUkT groups 🌟

3.9.1. optIfODUkT Configuration group 🧁

3.9.1.1. optIfODUkT Configuration Table πŸ› οΈ

configuration info for optIfODUkT interfaces, on top of the ifTable info 🫢 yes, it's got the full glow-up

3.9.2. optIfODUkT Nim Configuration group πŸ”

3.9.2.1. optIfODUkT Nim Configuration Table πŸ•΅οΈβ€β™€οΈ

the configuration info for optIfODUkT Non-intrusive monitoring 🧐 watching quietly, looking flawless

4. Object Definitions 🌈

OPT-IF-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Gauge32, Integer32,
      Unsigned32, transmission
          FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowPointer, RowStatus, TruthValue
          FROM SNMPv2-TC
    SnmpAdminString
          FROM SNMP-FRAMEWORK-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP
          FROM SNMPv2-CONF
    ifIndex
          FROM IF-MIB;

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

optIfMibModule MODULE-IDENTITY
    LAST-UPDATED "200308130000Z"
    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

        Editor: Hing-Kam Lam
        Postal: Lucent Technologies, Room 4C-616
                101 Crawfords Corner Road
                Holmdel, NJ 07733
           Tel: +1 732 949 8338
         Email: hklam@lucent.com"
    DESCRIPTION
       "The MIB module to describe pre-OTN and OTN interfaces.

        Copyright (C) The Internet Society (2003).  This version
        of this MIB module is part of RFC 3591;  see the RFC
        itself for full legal notices."
    REVISION  "200308130000Z"
    DESCRIPTION
       "Initial version, published as RFC 3591."
    ::={ transmission 133 }

-- textual conventions

OptIfAcTI ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "The trace identifier (TI) accepted at the receiver."
  SYNTAX  OCTET STRING (SIZE(64))

OptIfBitRateK ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the index 'k' that is used to
     represent a supported bit rate and the different
     versions of OPUk, ODUk and OTUk.
     Allowed values of k are defined in ITU-T G.709.
     Currently allowed values in G.709 are:
        k=1 represents an approximate bit rate of 2.5 Gbit/s,
        k=2 represents an approximate bit rate of 10 Gbit/s,
        k=3 represents an approximate bit rate of 40 Gbit/s."
  SYNTAX  Integer32

OptIfDEGM ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a Degraded Signal
     defect (dDEG).  A dDEG shall be declared if OptIfDEGM
     consecutive bad PM Seconds are detected."
  SYNTAX  Unsigned32 (2..10)

OptIfDEGThr ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a performance
     monitoring (PM) Second to be bad.  A PM Second is declared bad if
     the percentage of detected errored blocks in that second is
     greater than or equal to OptIfDEGThr."
  SYNTAX  Unsigned32 (1..100)

OptIfDirectionality ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of an entity."
  SYNTAX  INTEGER {
    sink(1),
    source(2),
    bidirectional(3)
    }

OptIfSinkOrSource ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of an entity
     that is allowed only to be a source or sink."
  SYNTAX  INTEGER {
    sink(1),
    source(2)
    }

OptIfExDAPI ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "The Destination Access Point Identifier (DAPI)
     expected by the receiver."
  SYNTAX  OCTET STRING (SIZE(16))

OptIfExSAPI ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "The Source Access Point Identifier (SAPI)
     expected by the receiver."
  SYNTAX  OCTET STRING (SIZE(16))

OptIfIntervalNumber ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Uniquely identifies a 15-minute interval.  The interval
     identified by 1 is the most recently completed interval, and
     the interval identified by n is the interval immediately
     preceding the one identified by n-1."
  SYNTAX  Unsigned32 (1..96)

OptIfTIMDetMode ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function."
  SYNTAX  INTEGER {
    off(1),
    dapi(2),
    sapi(3),
    both(4)
    }

OptIfTxTI ::= TEXTUAL-CONVENTION
  STATUS  current
  DESCRIPTION
    "The trace identifier (TI) transmitted."
  SYNTAX  OCTET STRING (SIZE(64))

-- object groups

optIfObjects OBJECT IDENTIFIER ::= { optIfMibModule 1 }
optIfConfs OBJECT IDENTIFIER ::= { optIfMibModule 2 }

optIfOTMn OBJECT IDENTIFIER ::= { optIfObjects 1 }

okay bestie, the OIDs are giving filing cabinet energy πŸ—‚οΈπŸ’… so let's get into the OTM, PM, and OTS groups πŸ¦‹

optIfPerfMon OBJECT IDENTIFIER ::= { optIfObjects 2 }
optIfOTSn OBJECT IDENTIFIER ::= { optIfObjects 3 }
optIfOMSn OBJECT IDENTIFIER ::= { optIfObjects 4 }
optIfOChGroup OBJECT IDENTIFIER ::= { optIfObjects 5 }
optIfOCh OBJECT IDENTIFIER ::= { optIfObjects 6 }

optIfOTUk OBJECT IDENTIFIER ::= { optIfObjects 7 }
optIfODUk OBJECT IDENTIFIER ::= { optIfObjects 8 }
optIfODUkT OBJECT IDENTIFIER ::= { optIfObjects 9 }

optIfGroups OBJECT IDENTIFIER ::= { optIfConfs 1 }
optIfCompl OBJECT IDENTIFIER ::= { optIfConfs 2 }

-- the optIfOTMn group
-- This group defines the OTM structure information of an
-- optical interface.

-- OTMn Table

optIfOTMnTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF OptIfOTMnEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTMn structure information."
  ::= { optIfOTMn 1 }

optIfOTMnEntry OBJECT-TYPE
  SYNTAX  OptIfOTMnEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains the OTMn structure
     information of an optical interface."
  INDEX  { ifIndex }
  ::= { optIfOTMnTable 1 }

OptIfOTMnEntry ::=
  SEQUENCE {
    optIfOTMnOrder         Unsigned32,
    optIfOTMnReduced       TruthValue,
    optIfOTMnBitRates      BITS,
    optIfOTMnInterfaceType SnmpAdminString,
    optIfOTMnTcmMax        Unsigned32,
    optIfOTMnOpticalReach  INTEGER
    }

optIfOTMnOrder OBJECT-TYPE
  SYNTAX  Unsigned32 (1..900)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This object indicates the order of the OTM, which
     represents the maximum number of wavelengths that can be
     supported at the bit rate(s) supported on the interface."
  ::= { optIfOTMnEntry 1 }

optIfOTMnReduced OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This object indicates whether a reduced or full
     functionality is supported at the interface.  A value of
     true means reduced.  A value of false means full."
  ::= { optIfOTMnEntry 2 }

optIfOTMnBitRates OBJECT-TYPE

  SYNTAX  BITS { bitRateK1(0), bitRateK2(1), bitRateK3(2) }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This attribute is a bit map representing the bit
     rate or set of bit rates supported on the interface.
     The meaning of each bit position is as follows:
       bitRateK1(0) is set if the 2.5 Gbit/s rate is supported
       bitRateK2(1) is set if the 10 Gbit/s rate is supported
       bitRateK3(2) is set if the 40 Gbit/s rate is supported
     Note that each bit position corresponds to one possible
     value of the type OptIfBitRateK.
     The default value of this attribute is system specific."
  ::= { optIfOTMnEntry 3 }

optIfOTMnInterfaceType OBJECT-TYPE
  SYNTAX  SnmpAdminString
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This object identifies the type of interface.  The value of
     this attribute will affect the behavior of the OTM with
     respect to presence/absence of OTM Overhead Signal (OOS)
     processing and TCM activation.  For an IrDI interface,
     there is no OOS processing and TCM activation is limited
     to n levels as specified by a TCM level threshold.

     This object contains two fields that are separated by
     whitespace.  The possible values are:
          field 1: one of the 4-character ASCII strings
                    'IrDI' or 'IaDI'
          field 2: free-form text consisting of printable
                   UTF-8 encoded characters

     Note that field 2 is optional.  If it is not present then there
     is no requirement for trailing whitespace after field 1.

     The default values are as follows:
          field 1:  'IaDI'
          field 2: an empty string."

  ::= { optIfOTMnEntry 4 }

optIfOTMnTcmMax OBJECT-TYPE
  SYNTAX  Unsigned32 (0..6)
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION

    "This object identifies the maximum number of TCM
     levels allowed for any Optical Channel contained
     in this OTM.  A new TCM activation will be rejected
     if the requested level is greater than the threshold.
     If InterfaceType object specifies a type of 'IaDI'
     for this OTM, then this attribute is irrelevant.

     Possible values:  unsigned integers in the range
                       from 0 to 6 inclusive.
     Default value:    3."

  ::= { optIfOTMnEntry 5 }

optIfOTMnOpticalReach OBJECT-TYPE
  SYNTAX  INTEGER { intraOffice(1), shortHaul(2), longHaul(3),
                    veryLongHaul(4), ultraLongHaul(5) }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This object indicates the length the optical signal
     may travel before requiring termination or regeneration.
     The meaning of the enumeration are:
       intraOffice(1)  - intra-office (as defined in ITU-T G.957)
       shortHaul(2)    - short haul (as defined in ITU-T G.957)
       longHaul(3)     - long haul (as defined in ITU-T G.957)
       veryLongHaul(4) - very long haul (as defined in ITU-T G.691)
       ultraLongHaul(5)- ultra long haul (as defined in ITU-T G.691)"
  ::= { optIfOTMnEntry 6 }

-- the optIfPerfMon group
-- This group defines performance monitoring objects for all
-- layers.

-- PM interval table

optIfPerfMonIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfPerfMonIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of 15-minute performance monitoring interval
     information."
  ::= { optIfPerfMon 1 }

optIfPerfMonIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfPerfMonIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains 15-minute performance
     monitoring interval information of an interface."
  INDEX  { ifIndex }
  ::= { optIfPerfMonIntervalTable 1 }

OptIfPerfMonIntervalEntry ::=
  SEQUENCE {
    optIfPerfMonCurrentTimeElapsed   Gauge32,
    optIfPerfMonCurDayTimeElapsed    Gauge32,
    optIfPerfMonIntervalNumIntervals         Unsigned32,
    optIfPerfMonIntervalNumInvalidIntervals  Unsigned32
    }

optIfPerfMonCurrentTimeElapsed OBJECT-TYPE
  SYNTAX  Gauge32 (0..900)
  UNITS  "seconds"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Number of seconds elapsed in the current 15-minute
     performance monitoring interval.
     If, for some reason, such as an adjustment in the NE's
     time-of-day clock, the number of seconds elapsed exceeds
     the maximum value, then the maximum value will be returned."
  ::= { optIfPerfMonIntervalEntry 1 }

optIfPerfMonCurDayTimeElapsed OBJECT-TYPE
  SYNTAX  Gauge32 (0..86400)
  UNITS  "seconds"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Number of seconds elapsed in the current 24-hour interval
     performance monitoring period.
     If, for some reason, such as an adjustment in the NE's
     time-of-day clock, the number of seconds elapsed exceeds
     the maximum value, then the maximum value will be returned."
  ::= { optIfPerfMonIntervalEntry 2 }

optIfPerfMonIntervalNumIntervals OBJECT-TYPE
  SYNTAX  Unsigned32 (0..96)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The number of 15-minute intervals for which performance
     monitoring data is available.  The number is the same for all
     the associated sub layers of the interface.

     An optical interface must be capable of supporting at least
     n intervals, where n is defined as follows:
         The minimum value of n is 4.
         The default of n is 32.
         The maximum value of n is 96.

     The value of this object will be n unless performance
     monitoring was (re-)started for the interface within the last
     (n*15) minutes, in which case the value will be the number of
     complete 15-minute intervals since measurement was
     (re-)started."
  ::= { optIfPerfMonIntervalEntry 3 }

optIfPerfMonIntervalNumInvalidIntervals OBJECT-TYPE
  SYNTAX  Unsigned32 (0..96)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The number of intervals in the range from 0 to
     optIfPerfMonIntervalNumIntervals for which no performance
     monitoring data is available and/or the data is invalid."
  ::= { optIfPerfMonIntervalEntry 4 }

-- the optIfOTSn group
-- This group handles the configuration and performance
-- monitoring objects for OTS layers.

-- OTSn config table

optIfOTSnConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn configuration information."
  ::= { optIfOTSn 1 }

optIfOTSnConfigEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfOTSnConfigTable 1 }

OptIfOTSnConfigEntry ::=

  SEQUENCE {
    optIfOTSnDirectionality              OptIfDirectionality,
    optIfOTSnAprStatus                   SnmpAdminString,
    optIfOTSnAprControl                  SnmpAdminString,
    optIfOTSnTraceIdentifierTransmitted  OptIfTxTI,
    optIfOTSnDAPIExpected                OptIfExDAPI,
    optIfOTSnSAPIExpected                OptIfExSAPI,
    optIfOTSnTraceIdentifierAccepted     OptIfAcTI,
    optIfOTSnTIMDetMode                  OptIfTIMDetMode,
    optIfOTSnTIMActEnabled               TruthValue,
    optIfOTSnCurrentStatus               BITS
    }

optIfOTSnDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfOTSnConfigEntry 1 }

optIfOTSnAprStatus OBJECT-TYPE
  SYNTAX  SnmpAdminString
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This attribute indicates the status of the Automatic
     Power Reduction (APR) function of the entity.  Valid
     values are 'on' and 'off'."
  ::= { optIfOTSnConfigEntry 2 }

optIfOTSnAprControl OBJECT-TYPE
  SYNTAX  SnmpAdminString
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "This object is a UTF-8 encoded string that specifies Automatic
     Power Reduction (APR) control actions requested of this entity
     (when written) and that returns the current APR control state
     of this entity (when read).  The values are implementation-defined.
     Any implementation that instantiates this object must document the
     set of values that it allows to be written, the set of values
     that it will return, and what each of those values means."
  ::= { optIfOTSnConfigEntry 3 }

optIfOTSnTraceIdentifierTransmitted OBJECT-TYPE
  SYNTAX  OptIfTxTI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The trace identifier transmitted.
     This object is applicable when optIfOTSnDirectionality has the
     value source(2) or bidirectional(3).
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI').
     If no value is ever set by a management entity for the object
     optIfOTSnTraceIdentifierTransmitted, system-specific default
     value will be used.  Any implementation that instantiates this
     object must document the system-specific default value or how it
     is derived."
  ::= { optIfOTSnConfigEntry 4 }

optIfOTSnDAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExDAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The DAPI expected by the receiver.
     This object is applicable when optIfOTSnDirectionality has the
     value sink(1) or bidirectional(3).  It has no effect if
     optIfOTSnTIMDetMode has the value off(1) or sapi(3).
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI')."
  ::= { optIfOTSnConfigEntry 5 }

Okay so this batch is all about what the receiver expects, what trace identifier it actually gets, and the sink performance stats, bestie πŸŽ€βœ¨

The first two objects are about SAPI and trace identifiers πŸ¦‹ optIfOTSnSAPIExpected is the SAPI the receiver expects. It's only relevant when optIfOTSnDirectionality is sink(1) or bidirectional(3), and it does nothing if optIfOTSnTIMDetMode is off(1) or dapi(2). It also doesn't apply to reduced-capability systems (where optIfOTMnReduced is true(1)) or IrDI interfaces (where optIfOTMnInterfaceType field 1 is 'IrDI') πŸ’…

optIfOTSnSAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExSAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The SAPI expected by the receiver.
     This object is applicable when optIfOTSnDirectionality has the
     value sink(1) or bidirectional(3).  It has no effect if
     optIfOTSnTIMDetMode has the value off(1) or dapi(2).
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI')."
  ::= { optIfOTSnConfigEntry 6 }

optIfOTSnTraceIdentifierAccepted OBJECT-TYPE
  SYNTAX  OptIfAcTI
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The actual trace identifier received.
     This object is applicable when optIfOTSnDirectionality has the
     value sink(1) or bidirectional(3).  Its value is unspecified
     if optIfOTSnCurrentStatus has either or both of the
     losO(5) and los(6) bits set.
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI')."
  ::= { optIfOTSnConfigEntry 7 }

optIfOTSnTIMDetMode OBJECT-TYPE
  SYNTAX  OptIfTIMDetMode
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function.  This object is applicable
     when optIfOTSnDirectionality has the value sink(1)
     or bidirectional(3).  The default value is off(1).
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI').
     The default value of this object is off(1)."
  ::= { optIfOTSnConfigEntry 8 }

optIfOTSnTIMActEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates whether the Trace Identifier Mismatch (TIM)
     Consequent Action function is enabled.  This object
     is applicable when optIfOTSnDirectionality has the
     value sink(1) or bidirectional(3).  It has no effect
     when the value of optIfOTSnTIMDetMode is off(1).
     This object does not apply to reduced-capability systems (i.e.,
     those for which optIfOTMnReduced has the value true(1)) or
     at IrDI interfaces (i.e., when optIfOTMnInterfaceType field 1
     has the value 'IrDI').
     The default value of this object is false(2)."
  ::= { optIfOTSnConfigEntry 9 }

optIfOTSnCurrentStatus OBJECT-TYPE

  SYNTAX  BITS {
    bdiP(0),
    bdiO(1),
    bdi(2),
    tim(3),
    losP(4),
    losO(5),
    los(6)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is applicable when optIfOTSnDirectionality
     has the value sink(1) or bidirectional(3).  In
     reduced-capability systems or at IrDI interfaces
     the only bit position that may be set is los(6)."
  ::= { optIfOTSnConfigEntry 10 }

-- OTSn sink current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOTSnSinkCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn sink performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOTSn 2 }

optIfOTSnSinkCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn sink performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSinkCurrentTable 1 }

OptIfOTSnSinkCurrentEntry ::=
  SEQUENCE {
    optIfOTSnSinkCurrentSuspectedFlag             TruthValue,
    optIfOTSnSinkCurrentInputPower                Integer32,
    optIfOTSnSinkCurrentLowInputPower             Integer32,
    optIfOTSnSinkCurrentHighInputPower            Integer32,
    optIfOTSnSinkCurrentLowerInputPowerThreshold  Integer32,
    optIfOTSnSinkCurrentUpperInputPowerThreshold  Integer32,
    optIfOTSnSinkCurrentOutputPower               Integer32,
    optIfOTSnSinkCurrentLowOutputPower            Integer32,
    optIfOTSnSinkCurrentHighOutputPower           Integer32,
    optIfOTSnSinkCurrentLowerOutputPowerThreshold Integer32,
    optIfOTSnSinkCurrentUpperOutputPowerThreshold Integer32
    }

optIfOTSnSinkCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSinkCurrentEntry 1 }

optIfOTSnSinkCurrentInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the input."
  ::= { optIfOTSnSinkCurrentEntry 2 }

optIfOTSnSinkCurrentLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOTSnSinkCurrentEntry 3 }

optIfOTSnSinkCurrentHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOTSnSinkCurrentEntry 4 }

optIfOTSnSinkCurrentLowerInputPowerThreshold OBJECT-TYPE

  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on input power.  If
     optIfOTSnSinkCurrentInputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSinkCurrentEntry 5 }

optIfOTSnSinkCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on input power.  If
     optIfOTSnSinkCurrentInputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSinkCurrentEntry 6 }

optIfOTSnSinkCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOTSnSinkCurrentEntry 7 }

optIfOTSnSinkCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOTSnSinkCurrentEntry 8 }

optIfOTSnSinkCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 15-minute interval."

  ::= { optIfOTSnSinkCurrentEntry 9 }

optIfOTSnSinkCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOTSnSinkCurrentOutputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSinkCurrentEntry 10 }

optIfOTSnSinkCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOTSnSinkCurrentOutputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSinkCurrentEntry 11 }

-- OTSn sink interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOTSnSinkIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OTSn sink performance monitoring
     information."
  ::= { optIfOTSn 3 }

optIfOTSnSinkIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn sink performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOTSnSinkIntervalNumber }
  ::= { optIfOTSnSinkIntervalTable 1 }

OptIfOTSnSinkIntervalEntry ::=
  SEQUENCE {
    optIfOTSnSinkIntervalNumber           OptIfIntervalNumber,
    optIfOTSnSinkIntervalSuspectedFlag    TruthValue,
    optIfOTSnSinkIntervalLastInputPower   Integer32,
    optIfOTSnSinkIntervalLowInputPower    Integer32,
    optIfOTSnSinkIntervalHighInputPower   Integer32,
    optIfOTSnSinkIntervalLastOutputPower  Integer32,
    optIfOTSnSinkIntervalLowOutputPower   Integer32,
    optIfOTSnSinkIntervalHighOutputPower  Integer32

    }

optIfOTSnSinkIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOTSnSinkIntervalEntry 1 }

optIfOTSnSinkIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSinkIntervalEntry 2 }

optIfOTSnSinkIntervalLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 3 }

optIfOTSnSinkIntervalLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 4 }

optIfOTSnSinkIntervalHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 5 }

optIfOTSnSinkIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 6 }

optIfOTSnSinkIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 7 }

optIfOTSnSinkIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSinkIntervalEntry 8 }

-- OTSn sink current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOTSnSinkCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn sink performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOTSn 4 }

optIfOTSnSinkCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn sink performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSinkCurDayTable 1 }

The sink current table holds stats for the live 15-minute window πŸ“Š Each row is keyed by ifIndex, and it tracks input and output power, plus the lowest and highest readings so far. It also has a suspectedFlag, and if that's true, the data might not be trustworthy πŸ™ˆ The lower and upper thresholds are read-write, so you can set them. When power drops to the lower threshold or below, or climbs to the upper one or above, a Threshold Crossing Alert (TCA) should be sent 🚨

The sink interval table is the history section πŸ“ It keeps data for previous 15-minute intervals, indexed by ifIndex and optIfOTSnSinkIntervalNumber. Each row has the last, lowest, and highest input and output power for that interval.

Last but not least, the sink current day table covers the current 24-hour interval 🌈 It's keyed by ifIndex too, and its entry definition ends right there, so the rest carries on from here πŸ’œ

Picking up with the current-day sink entry: its layout first, then the fields that report the lowest and highest input and output power over the current 24-hour interval. πŸ’–

OptIfOTSnSinkCurDayEntry ::=
  SEQUENCE {
    optIfOTSnSinkCurDaySuspectedFlag    TruthValue,
    optIfOTSnSinkCurDayLowInputPower    Integer32,
    optIfOTSnSinkCurDayHighInputPower   Integer32,
    optIfOTSnSinkCurDayLowOutputPower   Integer32,
    optIfOTSnSinkCurDayHighOutputPower  Integer32
    }

optIfOTSnSinkCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSinkCurDayEntry 1 }

optIfOTSnSinkCurDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOTSnSinkCurDayEntry 2 }

optIfOTSnSinkCurDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOTSnSinkCurDayEntry 3 }

optIfOTSnSinkCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOTSnSinkCurDayEntry 4 }

optIfOTSnSinkCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOTSnSinkCurDayEntry 5 }

Next up is the OTSn sink previous day table ✨. It holds the same kind of power readings, but for the previous 24-hour window, and it adds a last reading for each side. πŸ¦‹

-- OTSn sink previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOTSnSinkPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn sink performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOTSn 5 }

optIfOTSnSinkPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn sink performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSinkPrevDayTable 1 }

OptIfOTSnSinkPrevDayEntry ::=
  SEQUENCE {
    optIfOTSnSinkPrevDaySuspectedFlag    TruthValue,
    optIfOTSnSinkPrevDayLastInputPower   Integer32,
    optIfOTSnSinkPrevDayLowInputPower    Integer32,
    optIfOTSnSinkPrevDayHighInputPower   Integer32,
    optIfOTSnSinkPrevDayLastOutputPower  Integer32,
    optIfOTSnSinkPrevDayLowOutputPower   Integer32,
    optIfOTSnSinkPrevDayHighOutputPower  Integer32
    }

optIfOTSnSinkPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSinkPrevDayEntry 1 }

optIfOTSnSinkPrevDayLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 2 }

optIfOTSnSinkPrevDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 3 }

optIfOTSnSinkPrevDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 4 }

optIfOTSnSinkPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 5 }

optIfOTSnSinkPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 6 }

optIfOTSnSinkPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOTSnSinkPrevDayEntry 7 }

Now the OTSn source current table 🌸, which covers the current 15-minute window. This is where the two threshold objects live. Each one says a Threshold Crossing Alert (TCA) should be sent when its reading crosses the limit. 🚨

-- OTSn source current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOTSnSrcCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn source performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOTSn 6 }

optIfOTSnSrcCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

    "A conceptual row that contains OTSn source performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSrcCurrentTable 1 }

OptIfOTSnSrcCurrentEntry ::=
  SEQUENCE {
    optIfOTSnSrcCurrentSuspectedFlag              TruthValue,
    optIfOTSnSrcCurrentOutputPower                Integer32,
    optIfOTSnSrcCurrentLowOutputPower             Integer32,
    optIfOTSnSrcCurrentHighOutputPower            Integer32,
    optIfOTSnSrcCurrentLowerOutputPowerThreshold  Integer32,
    optIfOTSnSrcCurrentUpperOutputPowerThreshold  Integer32,
    optIfOTSnSrcCurrentInputPower                 Integer32,
    optIfOTSnSrcCurrentLowInputPower              Integer32,
    optIfOTSnSrcCurrentHighInputPower             Integer32,
    optIfOTSnSrcCurrentLowerInputPowerThreshold   Integer32,
    optIfOTSnSrcCurrentUpperInputPowerThreshold   Integer32
    }

optIfOTSnSrcCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSrcCurrentEntry 1 }

optIfOTSnSrcCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOTSnSrcCurrentEntry 2 }

optIfOTSnSrcCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current

  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOTSnSrcCurrentEntry 3 }

optIfOTSnSrcCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOTSnSrcCurrentEntry 4 }

optIfOTSnSrcCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOTSnSrcCurrentOutputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSrcCurrentEntry 5 }

optIfOTSnSrcCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOTSnSrcCurrentOutputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSrcCurrentEntry 6 }

optIfOTSnSrcCurrentInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the input."
  ::= { optIfOTSnSrcCurrentEntry 7 }

optIfOTSnSrcCurrentLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current

  DESCRIPTION

    "The lowest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOTSnSrcCurrentEntry 8 }

optIfOTSnSrcCurrentHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOTSnSrcCurrentEntry 9 }

optIfOTSnSrcCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on input power.  If
     optIfOTSnSrcCurrentInputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSrcCurrentEntry 10 }

optIfOTSnSrcCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on input power.  If
     optIfOTSnSrcCurrentInputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOTSnSrcCurrentEntry 11 }

Last bit of this part is the OTSn source interval table πŸ’œ. It's the historical record for earlier 15-minute windows, and each row is keyed by ifIndex plus an interval number. πŸŽ€

-- OTSn source interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOTSnSrcIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OTSn source performance monitoring
     information."
  ::= { optIfOTSn 7 }

optIfOTSnSrcIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn source performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOTSnSrcIntervalNumber }
  ::= { optIfOTSnSrcIntervalTable 1 }

OptIfOTSnSrcIntervalEntry ::=
  SEQUENCE {
    optIfOTSnSrcIntervalNumber           OptIfIntervalNumber,
    optIfOTSnSrcIntervalSuspectedFlag    TruthValue,
    optIfOTSnSrcIntervalLastOutputPower  Integer32,
    optIfOTSnSrcIntervalLowOutputPower   Integer32,
    optIfOTSnSrcIntervalHighOutputPower  Integer32,
    optIfOTSnSrcIntervalLastInputPower   Integer32,
    optIfOTSnSrcIntervalLowInputPower    Integer32,
    optIfOTSnSrcIntervalHighInputPower   Integer32
    }

optIfOTSnSrcIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOTSnSrcIntervalEntry 1 }

optIfOTSnSrcIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSrcIntervalEntry 2 }

optIfOTSnSrcIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSrcIntervalEntry 3 }

optIfOTSnSrcIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSrcIntervalEntry 4 }

optIfOTSnSrcIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     interval."
  ::= { optIfOTSnSrcIntervalEntry 5 }

Okay so bestie, we are picking right back up in the MIB and it's giving data nerd heaven πŸ€“πŸ’–. These are the input power readings for each interval, plus the current and previous day tables, and then we're onto the OMSn stuff ✨

optIfOTSnSrcIntervalLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     interval."
  ::= { optIfOTSnSrcIntervalEntry 6 }

optIfOTSnSrcIntervalLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     interval."
  ::= { optIfOTSnSrcIntervalEntry 7 }

optIfOTSnSrcIntervalHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     interval."

  ::= { optIfOTSnSrcIntervalEntry 8 }

Next up is the current day table for OTSn sources 🌸. The comment says it holds the data for the current 24-hour performance monitoring interval, so it's the "today so far" tea β˜•

-- OTSn source current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOTSnSrcCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn source performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOTSn 8 }

optIfOTSnSrcCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn source performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSrcCurDayTable 1 }

OptIfOTSnSrcCurDayEntry ::=
  SEQUENCE {
    optIfOTSnSrcCurDaySuspectedFlag    TruthValue,
    optIfOTSnSrcCurDayLowOutputPower   Integer32,
    optIfOTSnSrcCurDayHighOutputPower  Integer32,
    optIfOTSnSrcCurDayLowInputPower    Integer32,
    optIfOTSnSrcCurDayHighInputPower   Integer32
    }

optIfOTSnSrcCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSrcCurDayEntry 1 }

optIfOTSnSrcCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOTSnSrcCurDayEntry 2 }

optIfOTSnSrcCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOTSnSrcCurDayEntry 3 }

optIfOTSnSrcCurDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOTSnSrcCurDayEntry 4 }

optIfOTSnSrcCurDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOTSnSrcCurDayEntry 5 }

Now the previous day table πŸ¦‹. Same vibe as the current day one, but this is yesterday's recap, and it's a bit more stacked because it also tracks the last readings πŸ’…

-- OTSn source previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOTSnSrcPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTSnSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTSn source performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOTSn 9 }

optIfOTSnSrcPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOTSnSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTSn source performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOTSnSrcPrevDayTable 1 }

OptIfOTSnSrcPrevDayEntry ::=
  SEQUENCE {
    optIfOTSnSrcPrevDaySuspectedFlag    TruthValue,
    optIfOTSnSrcPrevDayLastOutputPower  Integer32,
    optIfOTSnSrcPrevDayLowOutputPower   Integer32,
    optIfOTSnSrcPrevDayHighOutputPower  Integer32,
    optIfOTSnSrcPrevDayLastInputPower   Integer32,
    optIfOTSnSrcPrevDayLowInputPower    Integer32,
    optIfOTSnSrcPrevDayHighInputPower   Integer32
    }

optIfOTSnSrcPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOTSnSrcPrevDayEntry 1 }

optIfOTSnSrcPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOTSnSrcPrevDayEntry 2 }

optIfOTSnSrcPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     previous 24-hour interval."

  ::= { optIfOTSnSrcPrevDayEntry 3 }

optIfOTSnSrcPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOTSnSrcPrevDayEntry 4 }

optIfOTSnSrcPrevDayLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSrcPrevDayEntry 5 }

optIfOTSnSrcPrevDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSrcPrevDayEntry 6 }

optIfOTSnSrcPrevDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOTSnSrcPrevDayEntry 7 }

Time for the OMSn group πŸŽ€, which handles config and performance monitoring for OMS layers. We start with the config table, which is where the directionality and the current defect status live 🧚

-- the optIfOMSn group
-- This group handles the configuration and performance monitoring
-- information for OMS layers.

-- OMSn config table
optIfOMSnConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn configuration information."
  ::= { optIfOMSn 1 }

optIfOMSnConfigEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfOMSnConfigTable 1 }

OptIfOMSnConfigEntry ::=
  SEQUENCE {
    optIfOMSnDirectionality OptIfDirectionality,
    optIfOMSnCurrentStatus  BITS
    }

optIfOMSnDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfOMSnConfigEntry 1 }

optIfOMSnCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    ssfP(0),
    ssfO(1),
    ssf(2),
    bdiP(3),
    bdiO(4),
    bdi(5),
    losP(6)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is applicable only to full capability
     systems whose interface type is IaDI and for which
     optIfOMSnDirectionality has the value sink(1) or
     bidirectional(3)."
  ::= { optIfOMSnConfigEntry 2 }

Last stop for this part: the OMSn sink current table πŸ”₯. It's the 15-minute live feed for aggregated input power, output power, and the TCA thresholds that tell you when to panic (lightly) 😭

-- OMSn sink current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOMSnSinkCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn sink performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOMSn 2 }

optIfOMSnSinkCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn sink performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSinkCurrentTable 1 }

OptIfOMSnSinkCurrentEntry ::=
  SEQUENCE {
    optIfOMSnSinkCurrentSuspectedFlag              TruthValue,
    optIfOMSnSinkCurrentAggregatedInputPower       Integer32,
    optIfOMSnSinkCurrentLowAggregatedInputPower    Integer32,
    optIfOMSnSinkCurrentHighAggregatedInputPower   Integer32,
    optIfOMSnSinkCurrentLowerInputPowerThreshold   Integer32,
    optIfOMSnSinkCurrentUpperInputPowerThreshold   Integer32,
    optIfOMSnSinkCurrentOutputPower                Integer32,
    optIfOMSnSinkCurrentLowOutputPower             Integer32,
    optIfOMSnSinkCurrentHighOutputPower            Integer32,
    optIfOMSnSinkCurrentLowerOutputPowerThreshold  Integer32,
    optIfOMSnSinkCurrentUpperOutputPowerThreshold  Integer32
    }

optIfOMSnSinkCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSinkCurrentEntry 1 }

optIfOMSnSinkCurrentAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The aggregated optical power of all the DWDM input
     channels."
  ::= { optIfOMSnSinkCurrentEntry 2 }

optIfOMSnSinkCurrentLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels during the current 15-minute interval."
  ::= { optIfOMSnSinkCurrentEntry 3 }

optIfOMSnSinkCurrentHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels during the current 15-minute interval."
  ::= { optIfOMSnSinkCurrentEntry 4 }

optIfOMSnSinkCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on aggregated input power.  If
     optIfOMSnSinkCurrentAggregatedInputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSinkCurrentEntry 5 }

optIfOMSnSinkCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on aggregated input power.  If
     optIfOMSnSinkCurrentAggregatedInputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSinkCurrentEntry 6 }

optIfOMSnSinkCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOMSnSinkCurrentEntry 7 }

optIfOMSnSinkCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output
     during the current 15-minute interval."
  ::= { optIfOMSnSinkCurrentEntry 8 }

optIfOMSnSinkCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output
     during the current 15-minute interval."
  ::= { optIfOMSnSinkCurrentEntry 9 }

okay so the thresholds are next and bestie, they're giving alerts 🚨✨

optIfOMSnSinkCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOMSnSinkCurrentOutputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSinkCurrentEntry 10 }

optIfOMSnSinkCurrentUpperOutputPowerThreshold OBJECT-TYPE

  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOMSnSinkCurrentOutputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSinkCurrentEntry 11 }

-- OMSn sink interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOMSnSinkIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OMSn sink performance monitoring
     information."
  ::= { optIfOMSn 3 }

optIfOMSnSinkIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn sink performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOMSnSinkIntervalNumber }
  ::= { optIfOMSnSinkIntervalTable 1 }

OptIfOMSnSinkIntervalEntry ::=
  SEQUENCE {
    optIfOMSnSinkIntervalNumber                    OptIfIntervalNumber,
    optIfOMSnSinkIntervalSuspectedFlag             TruthValue,
    optIfOMSnSinkIntervalLastAggregatedInputPower  Integer32,
    optIfOMSnSinkIntervalLowAggregatedInputPower   Integer32,
    optIfOMSnSinkIntervalHighAggregatedInputPower  Integer32,
    optIfOMSnSinkIntervalLastOutputPower           Integer32,
    optIfOMSnSinkIntervalLowOutputPower            Integer32,
    optIfOMSnSinkIntervalHighOutputPower           Integer32
    }

optIfOMSnSinkIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOMSnSinkIntervalEntry 1 }

optIfOMSnSinkIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSinkIntervalEntry 2 }

optIfOMSnSinkIntervalLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power of all the DWDM input
     channels during the interval."
  ::= { optIfOMSnSinkIntervalEntry 3 }

optIfOMSnSinkIntervalLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels during the interval."
  ::= { optIfOMSnSinkIntervalEntry 4 }

optIfOMSnSinkIntervalHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels during the interval."
  ::= { optIfOMSnSinkIntervalEntry 5 }

optIfOMSnSinkIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power at the output
     during the interval."
  ::= { optIfOMSnSinkIntervalEntry 6 }

optIfOMSnSinkIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power at the output
     during the interval."
  ::= { optIfOMSnSinkIntervalEntry 7 }

optIfOMSnSinkIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power at the output
     during the interval."
  ::= { optIfOMSnSinkIntervalEntry 8 }

next up is the current day table, which is the 24-hour tea for the current day πŸ“πŸ’…

-- OMSn sink current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOMSnSinkCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn sink performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOMSn 4 }

optIfOMSnSinkCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn sink performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSinkCurDayTable 1 }

OptIfOMSnSinkCurDayEntry ::=
  SEQUENCE {
    optIfOMSnSinkCurDaySuspectedFlag             TruthValue,
    optIfOMSnSinkCurDayLowAggregatedInputPower   Integer32,
    optIfOMSnSinkCurDayHighAggregatedInputPower  Integer32,
    optIfOMSnSinkCurDayLowOutputPower            Integer32,
    optIfOMSnSinkCurDayHighOutputPower           Integer32
    }

optIfOMSnSinkCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSinkCurDayEntry 1 }

optIfOMSnSinkCurDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels during the current 24-hour interval."
  ::= { optIfOMSnSinkCurDayEntry 2 }

optIfOMSnSinkCurDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels during the current 24-hour interval."
  ::= { optIfOMSnSinkCurDayEntry 3 }

optIfOMSnSinkCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power at the output
     during the current 24-hour interval."
  ::= { optIfOMSnSinkCurDayEntry 4 }

optIfOMSnSinkCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest  optical power at the output
     during the current 24-hour interval."
  ::= { optIfOMSnSinkCurDayEntry 5 }

and now the previous day table, which is giving "yesterday but make it structured" πŸ¦‹

-- OMSn sink previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOMSnSinkPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn sink performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOMSn 5 }

optIfOMSnSinkPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn sink performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSinkPrevDayTable 1 }

OptIfOMSnSinkPrevDayEntry ::=
  SEQUENCE {
    optIfOMSnSinkPrevDaySuspectedFlag             TruthValue,
    optIfOMSnSinkPrevDayLastAggregatedInputPower  Integer32,
    optIfOMSnSinkPrevDayLowAggregatedInputPower   Integer32,
    optIfOMSnSinkPrevDayHighAggregatedInputPower  Integer32,
    optIfOMSnSinkPrevDayLastOutputPower           Integer32,
    optIfOMSnSinkPrevDayLowOutputPower            Integer32,
    optIfOMSnSinkPrevDayHighOutputPower           Integer32
    }

optIfOMSnSinkPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSinkPrevDayEntry 1 }

optIfOMSnSinkPrevDayLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power of all the DWDM input
     channels during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 2 }

optIfOMSnSinkPrevDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 3 }

optIfOMSnSinkPrevDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 4 }

optIfOMSnSinkPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last  optical power at the output
     during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 5 }

optIfOMSnSinkPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power at the output
     during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 6 }

optIfOMSnSinkPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power at the output
     during the previous 24-hour interval."
  ::= { optIfOMSnSinkPrevDayEntry 7 }

last bit for this chunk: the OMSn source current table, which is the 15-minute check-in for the source side ✨πŸ”₯

-- OMSn source current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOMSnSrcCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn source performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOMSn 6 }

optIfOMSnSrcCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn source performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSrcCurrentTable 1 }

OptIfOMSnSrcCurrentEntry ::=
  SEQUENCE {
    optIfOMSnSrcCurrentSuspectedFlag              TruthValue,
    optIfOMSnSrcCurrentOutputPower                Integer32,
    optIfOMSnSrcCurrentLowOutputPower             Integer32,
    optIfOMSnSrcCurrentHighOutputPower            Integer32,
    optIfOMSnSrcCurrentLowerOutputPowerThreshold  Integer32,
    optIfOMSnSrcCurrentUpperOutputPowerThreshold  Integer32,
    optIfOMSnSrcCurrentAggregatedInputPower       Integer32,
    optIfOMSnSrcCurrentLowAggregatedInputPower    Integer32,
    optIfOMSnSrcCurrentHighAggregatedInputPower   Integer32,
    optIfOMSnSrcCurrentLowerInputPowerThreshold   Integer32,
    optIfOMSnSrcCurrentUpperInputPowerThreshold   Integer32
    }

optIfOMSnSrcCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSrcCurrentEntry 1 }

optIfOMSnSrcCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOMSnSrcCurrentEntry 2 }

optIfOMSnSrcCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOMSnSrcCurrentEntry 3 }

okay so the current-interval power readings keep going ✨

optIfOMSnSrcCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOMSnSrcCurrentEntry 4 }

optIfOMSnSrcCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOMSnSrcCurrentOutputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSrcCurrentEntry 5 }

optIfOMSnSrcCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOMSnSrcCurrentOutputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSrcCurrentEntry 6 }

optIfOMSnSrcCurrentAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The aggregated optical power at the input."
  ::= { optIfOMSnSrcCurrentEntry 7 }

optIfOMSnSrcCurrentLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power at the input
     during the current 15-minute interval."
  ::= { optIfOMSnSrcCurrentEntry 8 }

optIfOMSnSrcCurrentHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power at the input
     during the current 15-minute interval."
  ::= { optIfOMSnSrcCurrentEntry 9 }

optIfOMSnSrcCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on aggregated input power.  If
     optIfOMSnSrcCurrentAggregatedInputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSrcCurrentEntry 10 }

optIfOMSnSrcCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on aggregated input power.  If
     optIfOMSnSrcCurrentAggregatedInputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOMSnSrcCurrentEntry 11 }


-- OMSn source interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOMSnSrcIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OMSn source performance monitoring
     information."
  ::= { optIfOMSn 7 }

optIfOMSnSrcIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn source performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOMSnSrcIntervalNumber }
  ::= { optIfOMSnSrcIntervalTable 1 }

OptIfOMSnSrcIntervalEntry ::=

  SEQUENCE {
    optIfOMSnSrcIntervalNumber                    OptIfIntervalNumber,
    optIfOMSnSrcIntervalSuspectedFlag             TruthValue,
    optIfOMSnSrcIntervalLastOutputPower           Integer32,
    optIfOMSnSrcIntervalLowOutputPower            Integer32,
    optIfOMSnSrcIntervalHighOutputPower           Integer32,
    optIfOMSnSrcIntervalLastAggregatedInputPower  Integer32,
    optIfOMSnSrcIntervalLowAggregatedInputPower   Integer32,
    optIfOMSnSrcIntervalHighAggregatedInputPower  Integer32
    }

optIfOMSnSrcIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOMSnSrcIntervalEntry 1 }

optIfOMSnSrcIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSrcIntervalEntry 2 }

optIfOMSnSrcIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     interval."
  ::= { optIfOMSnSrcIntervalEntry 3 }

optIfOMSnSrcIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     interval."
  ::= { optIfOMSnSrcIntervalEntry 4 }

optIfOMSnSrcIntervalHighOutputPower OBJECT-TYPE

  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     interval."
  ::= { optIfOMSnSrcIntervalEntry 5 }

optIfOMSnSrcIntervalLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power at the input
     during the interval."
  ::= { optIfOMSnSrcIntervalEntry 6 }

optIfOMSnSrcIntervalLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power at the input
     during the interval."
  ::= { optIfOMSnSrcIntervalEntry 7 }

optIfOMSnSrcIntervalHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power at the input
     during the interval."
  ::= { optIfOMSnSrcIntervalEntry 8 }

-- OMSn source current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOMSnSrcCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

    "A table of OMSn source performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOMSn 8 }

optIfOMSnSrcCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn source performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSrcCurDayTable 1 }

OptIfOMSnSrcCurDayEntry ::=
  SEQUENCE {
    optIfOMSnSrcCurDaySuspectedFlag             TruthValue,
    optIfOMSnSrcCurDayLowOutputPower            Integer32,
    optIfOMSnSrcCurDayHighOutputPower           Integer32,
    optIfOMSnSrcCurDayLowAggregatedInputPower   Integer32,
    optIfOMSnSrcCurDayHighAggregatedInputPower  Integer32
    }

optIfOMSnSrcCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSrcCurDayEntry 1 }

optIfOMSnSrcCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOMSnSrcCurDayEntry 2 }

optIfOMSnSrcCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "The highest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOMSnSrcCurDayEntry 3 }

optIfOMSnSrcCurDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power at the input
     during the current 24-hour interval."
  ::= { optIfOMSnSrcCurDayEntry 4 }

optIfOMSnSrcCurDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power at the input
     during the current 24-hour interval."
  ::= { optIfOMSnSrcCurDayEntry 5 }

-- OMSn source previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOMSnSrcPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOMSnSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OMSn source performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOMSn 9 }

optIfOMSnSrcPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOMSnSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OMSn source performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOMSnSrcPrevDayTable 1 }

OptIfOMSnSrcPrevDayEntry ::=
  SEQUENCE {
    optIfOMSnSrcPrevDaySuspectedFlag             TruthValue,
    optIfOMSnSrcPrevDayLastOutputPower           Integer32,
    optIfOMSnSrcPrevDayLowOutputPower            Integer32,
    optIfOMSnSrcPrevDayHighOutputPower           Integer32,
    optIfOMSnSrcPrevDayLastAggregatedInputPower  Integer32,
    optIfOMSnSrcPrevDayLowAggregatedInputPower   Integer32,
    optIfOMSnSrcPrevDayHighAggregatedInputPower  Integer32
    }

optIfOMSnSrcPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOMSnSrcPrevDayEntry 1 }

optIfOMSnSrcPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 2 }

optIfOMSnSrcPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 3 }

optIfOMSnSrcPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 4 }

optIfOMSnSrcPrevDayLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power at the input during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 5 }

optIfOMSnSrcPrevDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power at the input during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 6 }

optIfOMSnSrcPrevDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power at the input during the
     previous 24-hour interval."
  ::= { optIfOMSnSrcPrevDayEntry 7 }

-- the optIfOChGroup group
-- This group handles the configuration and performance monitoring
-- information for OChGroup layers.

-- OChGroup config table

optIfOChGroupConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup configuration information."
  ::= { optIfOChGroup 1 }

the OChGroup config table is next, bestie πŸ‘€πŸŽ€

okay so we're picking up right where the config table left off πŸ’… first up is the config entry, which is one conceptual row per interface, keyed by ifIndex πŸ¦‹

optIfOChGroupConfigEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfOChGroupConfigTable 1 }

OptIfOChGroupConfigEntry ::=
  SEQUENCE {
    optIfOChGroupDirectionality OptIfDirectionality
    }

optIfOChGroupDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfOChGroupConfigEntry 1 }

Next up is the sink current table, which holds the data for the current 15-minute performance monitoring interval ⏱️✨

-- OChGroup sink current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOChGroupSinkCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup sink performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOChGroup 2 }

optIfOChGroupSinkCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup sink performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOChGroupSinkCurrentTable 1 }

OptIfOChGroupSinkCurrentEntry ::=
  SEQUENCE {
    optIfOChGroupSinkCurrentSuspectedFlag              TruthValue,
    optIfOChGroupSinkCurrentAggregatedInputPower       Integer32,
    optIfOChGroupSinkCurrentLowAggregatedInputPower    Integer32,
    optIfOChGroupSinkCurrentHighAggregatedInputPower   Integer32,
    optIfOChGroupSinkCurrentLowerInputPowerThreshold   Integer32,
    optIfOChGroupSinkCurrentUpperInputPowerThreshold   Integer32,
    optIfOChGroupSinkCurrentOutputPower                Integer32,
    optIfOChGroupSinkCurrentLowOutputPower             Integer32,
    optIfOChGroupSinkCurrentHighOutputPower            Integer32,
    optIfOChGroupSinkCurrentLowerOutputPowerThreshold  Integer32,
    optIfOChGroupSinkCurrentUpperOutputPowerThreshold  Integer32
    }

optIfOChGroupSinkCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSinkCurrentEntry 1 }

optIfOChGroupSinkCurrentAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The aggregated optical power of all the DWDM input
     channels in the OChGroup."
  ::= { optIfOChGroupSinkCurrentEntry 2 }

optIfOChGroupSinkCurrentLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels in the OChGroup during the current 15-minute interval."
  ::= { optIfOChGroupSinkCurrentEntry 3 }

optIfOChGroupSinkCurrentHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels in the OChGroup during the current 15-minute interval."
  ::= { optIfOChGroupSinkCurrentEntry 4 }

optIfOChGroupSinkCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on aggregated input power.  If
     optIfOChGroupSinkCurrentAggregatedInputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSinkCurrentEntry 5 }

optIfOChGroupSinkCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on aggregated input power.  If
     optIfOChGroupSinkCurrentAggregatedInputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSinkCurrentEntry 6 }

optIfOChGroupSinkCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output
     in the OChGroup."
  ::= { optIfOChGroupSinkCurrentEntry 7 }

optIfOChGroupSinkCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output
     in the OChGroup during the current 15-minute interval."
  ::= { optIfOChGroupSinkCurrentEntry 8 }

optIfOChGroupSinkCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "The highest optical power monitored at the output
     in the OChGroup during the current 15-minute interval."
  ::= { optIfOChGroupSinkCurrentEntry 9 }

optIfOChGroupSinkCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on the output power.  If
     optIfOChGroupSinkCurrentOutputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSinkCurrentEntry 10 }

optIfOChGroupSinkCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on the output power.  If
     optIfOChGroupSinkCurrentOutputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSinkCurrentEntry 11 }

Now the sink interval table, which holds data for the previous 15-minute intervals, so it's basically the history book πŸ“šπŸŒΈ

-- OChGroup sink interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOChGroupSinkIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OChGroup sink performance monitoring
     information."
  ::= { optIfOChGroup 3 }

optIfOChGroupSinkIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup sink performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOChGroupSinkIntervalNumber }
  ::= { optIfOChGroupSinkIntervalTable 1 }

OptIfOChGroupSinkIntervalEntry ::=
  SEQUENCE {
   optIfOChGroupSinkIntervalNumber                  OptIfIntervalNumber,
   optIfOChGroupSinkIntervalSuspectedFlag            TruthValue,
   optIfOChGroupSinkIntervalLastAggregatedInputPower Integer32,
   optIfOChGroupSinkIntervalLowAggregatedInputPower  Integer32,
   optIfOChGroupSinkIntervalHighAggregatedInputPower Integer32,
   optIfOChGroupSinkIntervalLastOutputPower          Integer32,
   optIfOChGroupSinkIntervalLowOutputPower           Integer32,
   optIfOChGroupSinkIntervalHighOutputPower          Integer32
   }

optIfOChGroupSinkIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOChGroupSinkIntervalEntry 1 }

optIfOChGroupSinkIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSinkIntervalEntry 2 }

optIfOChGroupSinkIntervalLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power of all the DWDM input
     channels in the OChGroup during the interval."
  ::= { optIfOChGroupSinkIntervalEntry 3 }

optIfOChGroupSinkIntervalLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels in the OChGroup during the interval."

  ::= { optIfOChGroupSinkIntervalEntry 4 }

optIfOChGroupSinkIntervalHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels in the OChGroup during the interval."
  ::= { optIfOChGroupSinkIntervalEntry 5 }

optIfOChGroupSinkIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output
     in the OChGroup during the interval."
  ::= { optIfOChGroupSinkIntervalEntry 6 }

optIfOChGroupSinkIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output
     in the OChGroup during the interval."
  ::= { optIfOChGroupSinkIntervalEntry 7 }

optIfOChGroupSinkIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output
     in the OChGroup during the interval."
  ::= { optIfOChGroupSinkIntervalEntry 8 }

Last bit for this part: the sink current day table, which covers the current 24-hour performance monitoring interval 🌈

-- OChGroup sink current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOChGroupSinkCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup sink performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOChGroup 4 }

optIfOChGroupSinkCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup sink performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChGroupSinkCurDayTable 1 }

OptIfOChGroupSinkCurDayEntry ::=
  SEQUENCE {
    optIfOChGroupSinkCurDaySuspectedFlag             TruthValue,
    optIfOChGroupSinkCurDayLowAggregatedInputPower   Integer32,
    optIfOChGroupSinkCurDayHighAggregatedInputPower  Integer32,
    optIfOChGroupSinkCurDayLowOutputPower            Integer32,
    optIfOChGroupSinkCurDayHighOutputPower           Integer32
    }

optIfOChGroupSinkCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSinkCurDayEntry 1 }

optIfOChGroupSinkCurDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels in the OChGroup during the current 24-hour interval."
  ::= { optIfOChGroupSinkCurDayEntry 2 }

optIfOChGroupSinkCurDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power of all the DWDM input
     channels in the OChGroup during the current 24-hour interval."
  ::= { optIfOChGroupSinkCurDayEntry 3 }

optIfOChGroupSinkCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output
     in the OChGroup during the current 24-hour interval."
  ::= { optIfOChGroupSinkCurDayEntry 4 }

optIfOChGroupSinkCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output
     in the OChGroup during the current 24-hour interval."
  ::= { optIfOChGroupSinkCurDayEntry 5 }

-- OChGroup sink previous day table

okay so we're still in the previous-day sink table, and it's giving detailed πŸ’… the whole thing is basically a diary of optical power over 24 hours 🌈 here's the next chunk, straight from the source

-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOChGroupSinkPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup sink performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOChGroup 5 }

optIfOChGroupSinkPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup sink performance
     monitoring information of an interface for the previous
     24-hour interval."

  INDEX  { ifIndex }
  ::= { optIfOChGroupSinkPrevDayTable 1 }

OptIfOChGroupSinkPrevDayEntry ::=
  SEQUENCE {
    optIfOChGroupSinkPrevDaySuspectedFlag             TruthValue,
    optIfOChGroupSinkPrevDayLastAggregatedInputPower  Integer32,
    optIfOChGroupSinkPrevDayLowAggregatedInputPower   Integer32,
    optIfOChGroupSinkPrevDayHighAggregatedInputPower  Integer32,
    optIfOChGroupSinkPrevDayLastOutputPower           Integer32,
    optIfOChGroupSinkPrevDayLowOutputPower            Integer32,
    optIfOChGroupSinkPrevDayHighOutputPower           Integer32
    }

optIfOChGroupSinkPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSinkPrevDayEntry 1 }

optIfOChGroupSinkPrevDayLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power of all the DWDM input
     channels in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 2 }

optIfOChGroupSinkPrevDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power of all the DWDM input
     channels in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 3 }

optIfOChGroupSinkPrevDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "The highest aggregated optical power of all the DWDM input
     channels in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 4 }

optIfOChGroupSinkPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output
     in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 5 }

optIfOChGroupSinkPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output
     in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 6 }

optIfOChGroupSinkPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output
     in the OChGroup during the previous 24-hour interval."
  ::= { optIfOChGroupSinkPrevDayEntry 7 }

the source side is next and it's so much more dramatic πŸ”₯ it has its own current 15-minute table, with thresholds that tell you when to sound the alarm 🚨

-- OChGroup source current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOChGroupSrcCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup source performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOChGroup 6 }

optIfOChGroupSrcCurrentEntry OBJECT-TYPE

  SYNTAX  OptIfOChGroupSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup source performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOChGroupSrcCurrentTable 1 }

OptIfOChGroupSrcCurrentEntry ::=
  SEQUENCE {
    optIfOChGroupSrcCurrentSuspectedFlag              TruthValue,
    optIfOChGroupSrcCurrentOutputPower                Integer32,
    optIfOChGroupSrcCurrentLowOutputPower             Integer32,
    optIfOChGroupSrcCurrentHighOutputPower            Integer32,
    optIfOChGroupSrcCurrentLowerOutputPowerThreshold  Integer32,
    optIfOChGroupSrcCurrentUpperOutputPowerThreshold  Integer32,
    optIfOChGroupSrcCurrentAggregatedInputPower       Integer32,
    optIfOChGroupSrcCurrentLowAggregatedInputPower    Integer32,
    optIfOChGroupSrcCurrentHighAggregatedInputPower   Integer32,
    optIfOChGroupSrcCurrentLowerInputPowerThreshold   Integer32,
    optIfOChGroupSrcCurrentUpperInputPowerThreshold   Integer32
    }

optIfOChGroupSrcCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSrcCurrentEntry 1 }

optIfOChGroupSrcCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOChGroupSrcCurrentEntry 2 }

optIfOChGroupSrcCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "The lowest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOChGroupSrcCurrentEntry 3 }

optIfOChGroupSrcCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOChGroupSrcCurrentEntry 4 }

optIfOChGroupSrcCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOChGroupSrcCurrentOutputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSrcCurrentEntry 5 }

optIfOChGroupSrcCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOChGroupSrcCurrentOutputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSrcCurrentEntry 6 }

optIfOChGroupSrcCurrentAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The aggregated optical power monitored at the input."
  ::= { optIfOChGroupSrcCurrentEntry 7 }

optIfOChGroupSrcCurrentLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power monitored at the input
     during the current 15-minute interval."
  ::= { optIfOChGroupSrcCurrentEntry 8 }

optIfOChGroupSrcCurrentHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power monitored at the input
     during the current 15-minute interval."
  ::= { optIfOChGroupSrcCurrentEntry 9 }

optIfOChGroupSrcCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on input power.  If
     optIfOChGroupSrcCurrentAggregatedInputPower drops to this value
     or below, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSrcCurrentEntry 10 }

optIfOChGroupSrcCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on input power.  If
     optIfOChGroupSrcCurrentAggregatedInputPower reaches or exceeds
     this value, a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChGroupSrcCurrentEntry 11 }

and then the source interval table, which is basically the history book of the source side πŸ“šβœ¨ one row per past 15-minute interval, all tracked by the interval number

-- OChGroup source interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOChGroupSrcIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

    "A table of historical OChGroup source performance monitoring
     information."
  ::= { optIfOChGroup 7 }

optIfOChGroupSrcIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup source performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOChGroupSrcIntervalNumber }
  ::= { optIfOChGroupSrcIntervalTable 1 }

OptIfOChGroupSrcIntervalEntry ::=
  SEQUENCE {
   optIfOChGroupSrcIntervalNumber                   OptIfIntervalNumber,
   optIfOChGroupSrcIntervalSuspectedFlag             TruthValue,
   optIfOChGroupSrcIntervalLastOutputPower           Integer32,
   optIfOChGroupSrcIntervalLowOutputPower            Integer32,
   optIfOChGroupSrcIntervalHighOutputPower           Integer32,
   optIfOChGroupSrcIntervalLastAggregatedInputPower  Integer32,
   optIfOChGroupSrcIntervalLowAggregatedInputPower   Integer32,
   optIfOChGroupSrcIntervalHighAggregatedInputPower  Integer32
   }

optIfOChGroupSrcIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOChGroupSrcIntervalEntry 1 }

optIfOChGroupSrcIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSrcIntervalEntry 2 }

optIfOChGroupSrcIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     interval."
  ::= { optIfOChGroupSrcIntervalEntry 3 }

optIfOChGroupSrcIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     interval."
  ::= { optIfOChGroupSrcIntervalEntry 4 }

optIfOChGroupSrcIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     interval."
  ::= { optIfOChGroupSrcIntervalEntry 5 }

optIfOChGroupSrcIntervalLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power monitored at the input
     during the interval."
  ::= { optIfOChGroupSrcIntervalEntry 6 }

optIfOChGroupSrcIntervalLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power monitored at the input
     during the interval."
  ::= { optIfOChGroupSrcIntervalEntry 7 }

optIfOChGroupSrcIntervalHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power monitored at the input
     during the interval."
  ::= { optIfOChGroupSrcIntervalEntry 8 }

next up is the source current day table, which is the 24-hour view 🌸 we're almost at the end of the source side, bestie 🫢

-- OChGroup source current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

Okay so this part is where the current day table lives, and bestie, it's the "right now" snapshot πŸ’– It's basically tracking the optical power levels for a whole 24-hour window while it's happening 🌸

optIfOChGroupSrcCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup source performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOChGroup 8 }

optIfOChGroupSrcCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup source performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChGroupSrcCurDayTable 1 }

OptIfOChGroupSrcCurDayEntry ::=
  SEQUENCE {
    optIfOChGroupSrcCurDaySuspectedFlag             TruthValue,
    optIfOChGroupSrcCurDayLowOutputPower            Integer32,
    optIfOChGroupSrcCurDayHighOutputPower           Integer32,
    optIfOChGroupSrcCurDayLowAggregatedInputPower   Integer32,
    optIfOChGroupSrcCurDayHighAggregatedInputPower  Integer32
    }

optIfOChGroupSrcCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSrcCurDayEntry 1 }

optIfOChGroupSrcCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOChGroupSrcCurDayEntry 2 }

optIfOChGroupSrcCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOChGroupSrcCurDayEntry 3 }

optIfOChGroupSrcCurDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power monitored at the input
     during the current 24-hour interval."
  ::= { optIfOChGroupSrcCurDayEntry 4 }

optIfOChGroupSrcCurDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power monitored at the input
     during the current 24-hour interval."
  ::= { optIfOChGroupSrcCurDayEntry 5 }

Next up is the previous day table, which is the "yesterday, but make it data" version πŸ¦‹ Same vibe, just looking back at the last 24-hour window instead ✨

-- OChGroup source previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOChGroupSrcPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChGroupSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OChGroup source performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOChGroup 9 }

optIfOChGroupSrcPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChGroupSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OChGroup source performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChGroupSrcPrevDayTable 1 }

OptIfOChGroupSrcPrevDayEntry ::=
  SEQUENCE {
    optIfOChGroupSrcPrevDaySuspectedFlag             TruthValue,
    optIfOChGroupSrcPrevDayLastOutputPower           Integer32,
    optIfOChGroupSrcPrevDayLowOutputPower            Integer32,
    optIfOChGroupSrcPrevDayHighOutputPower           Integer32,
    optIfOChGroupSrcPrevDayLastAggregatedInputPower  Integer32,
    optIfOChGroupSrcPrevDayLowAggregatedInputPower   Integer32,
    optIfOChGroupSrcPrevDayHighAggregatedInputPower  Integer32
    }

optIfOChGroupSrcPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChGroupSrcPrevDayEntry 1 }

optIfOChGroupSrcPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 2 }

optIfOChGroupSrcPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 3 }

optIfOChGroupSrcPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 4 }

optIfOChGroupSrcPrevDayLastAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last aggregated optical power monitored at the input
     during the previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 5 }

optIfOChGroupSrcPrevDayLowAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest aggregated optical power monitored at the input
     during the previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 6 }

optIfOChGroupSrcPrevDayHighAggregatedInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest aggregated optical power monitored at the input
     during the previous 24-hour interval."
  ::= { optIfOChGroupSrcPrevDayEntry 7 }

Now we're moving into the OCh group itself πŸ’… This is the part that handles configuration and performance monitoring for the OCh layers, so it's giving full main character energy πŸ‘‘

-- the optIfOCh group
-- This group handles the configuration and
-- performance monitoring information for OCh layers.

-- OCh config table

optIfOChConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh configuration information."
  ::= { optIfOCh 1 }

optIfOChConfigEntry OBJECT-TYPE
  SYNTAX  OptIfOChConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfOChConfigTable 1 }

OptIfOChConfigEntry ::=
  SEQUENCE {
    optIfOChDirectionality     OptIfDirectionality,
    optIfOChCurrentStatus      BITS
    }

optIfOChDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfOChConfigEntry 1 }

optIfOChCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    losP(0),
    los(1),
    oci(2),
    ssfP(3),
    ssfO(4),
    ssf(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is applicable when optIfOChDirectionality
     has the value sink(1) or bidirectional(3).
     In full-capability systems the bit position los(1) is not used.
     In reduced-capability systems or at IrDI interfaces only
     the bit positions los(1) and ssfP(3) are used."
  ::= { optIfOChConfigEntry 2 }

Last stretch for this part: the OCh sink tables πŸ¦‹ The current one covers the live 15-minute window, and the interval one is the history book of earlier 15-minute chunks πŸ“– Also the threshold objects are where you set your own TCA alarm lines, which is so iconic of them πŸ”₯

-- OCh sink current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOChSinkCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh sink performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOCh 2 }

optIfOChSinkCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOChSinkCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh sink performance
     monitoring information for an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOChSinkCurrentTable 1 }

OptIfOChSinkCurrentEntry ::=
  SEQUENCE {
    optIfOChSinkCurrentSuspectedFlag             TruthValue,
    optIfOChSinkCurrentInputPower                Integer32,
    optIfOChSinkCurrentLowInputPower             Integer32,
    optIfOChSinkCurrentHighInputPower            Integer32,
    optIfOChSinkCurrentLowerInputPowerThreshold  Integer32,
    optIfOChSinkCurrentUpperInputPowerThreshold  Integer32
    }

optIfOChSinkCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION

    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSinkCurrentEntry 1 }

optIfOChSinkCurrentInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the input."
  ::= { optIfOChSinkCurrentEntry 2 }

optIfOChSinkCurrentLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOChSinkCurrentEntry 3 }

optIfOChSinkCurrentHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 15-minute interval."
  ::= { optIfOChSinkCurrentEntry 4 }

optIfOChSinkCurrentLowerInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on input power.  If
     optIfOChSinkCurrentInputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChSinkCurrentEntry 5 }

optIfOChSinkCurrentUpperInputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on input power.  If
     optIfOChSinkCurrentInputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChSinkCurrentEntry 6 }

-- OCh sink interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOChSinkIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OCh sink performance monitoring
     information."
  ::= { optIfOCh 3 }

optIfOChSinkIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOChSinkIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh sink performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOChSinkIntervalNumber }
  ::= { optIfOChSinkIntervalTable 1 }

OptIfOChSinkIntervalEntry ::=
  SEQUENCE {
    optIfOChSinkIntervalNumber          OptIfIntervalNumber,
    optIfOChSinkIntervalSuspectedFlag   TruthValue,
    optIfOChSinkIntervalLastInputPower  Integer32,
    optIfOChSinkIntervalLowInputPower   Integer32,
    optIfOChSinkIntervalHighInputPower  Integer32
    }

optIfOChSinkIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOChSinkIntervalEntry 1 }

optIfOChSinkIntervalSuspectedFlag OBJECT-TYPE

  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSinkIntervalEntry 2 }

optIfOChSinkIntervalLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     interval."
  ::= { optIfOChSinkIntervalEntry 3 }

optIfOChSinkIntervalLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     interval."
  ::= { optIfOChSinkIntervalEntry 4 }

optIfOChSinkIntervalHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     interval."
  ::= { optIfOChSinkIntervalEntry 5 }

-- OCh sink current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOChSinkCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh sink performance monitoring information for
     the current 24-hour interval."

  ::= { optIfOCh 4 }

optIfOChSinkCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChSinkCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh sink performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChSinkCurDayTable 1 }

OptIfOChSinkCurDayEntry ::=
  SEQUENCE {
    optIfOChSinkCurDaySuspectedFlag   TruthValue,
    optIfOChSinkCurDayLowInputPower   Integer32,
    optIfOChSinkCurDayHighInputPower  Integer32
    }

optIfOChSinkCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSinkCurDayEntry 1 }

optIfOChSinkCurDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOChSinkCurDayEntry 2 }

optIfOChSinkCurDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     current 24-hour interval."
  ::= { optIfOChSinkCurDayEntry 3 }

-- OCh sink previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOChSinkPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh sink performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOCh 5 }

optIfOChSinkPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChSinkPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh sink performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChSinkPrevDayTable 1 }

OptIfOChSinkPrevDayEntry ::=
  SEQUENCE {
    optIfOChSinkPrevDaySuspectedFlag   TruthValue,
    optIfOChSinkPrevDayLastInputPower  Integer32,
    optIfOChSinkPrevDayLowInputPower   Integer32,
    optIfOChSinkPrevDayHighInputPower  Integer32
    }

optIfOChSinkPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSinkPrevDayEntry 1 }

optIfOChSinkPrevDayLastInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the input during the
     previous 24-hour interval."

  ::= { optIfOChSinkPrevDayEntry 2 }

optIfOChSinkPrevDayLowInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOChSinkPrevDayEntry 3 }

optIfOChSinkPrevDayHighInputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the input during the
     previous 24-hour interval."
  ::= { optIfOChSinkPrevDayEntry 4 }

-- OCh source current table
-- Contains data for the current 15-minute performance monitoring
-- interval.

optIfOChSrcCurrentTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh source performance monitoring information for
     the current 15-minute interval."
  ::= { optIfOCh 6 }

optIfOChSrcCurrentEntry OBJECT-TYPE
  SYNTAX  OptIfOChSrcCurrentEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh source performance
     monitoring information of an interface for the current
     15-minute interval."
  INDEX  { ifIndex }
  ::= { optIfOChSrcCurrentTable 1 }

OptIfOChSrcCurrentEntry ::=
  SEQUENCE {

    optIfOChSrcCurrentSuspectedFlag              TruthValue,
    optIfOChSrcCurrentOutputPower                Integer32,
    optIfOChSrcCurrentLowOutputPower             Integer32,
    optIfOChSrcCurrentHighOutputPower            Integer32,
    optIfOChSrcCurrentLowerOutputPowerThreshold  Integer32,
    optIfOChSrcCurrentUpperOutputPowerThreshold  Integer32
    }

optIfOChSrcCurrentSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSrcCurrentEntry 1 }

optIfOChSrcCurrentOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The optical power monitored at the output."
  ::= { optIfOChSrcCurrentEntry 2 }

optIfOChSrcCurrentLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOChSrcCurrentEntry 3 }

optIfOChSrcCurrentHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 15-minute interval."
  ::= { optIfOChSrcCurrentEntry 4 }

optIfOChSrcCurrentLowerOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The lower limit threshold on output power.  If
     optIfOChSrcCurrentOutputPower drops to this value or below,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChSrcCurrentEntry 5 }

optIfOChSrcCurrentUpperOutputPowerThreshold OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The upper limit threshold on output power.  If
     optIfOChSrcCurrentOutputPower reaches or exceeds this value,
     a Threshold Crossing Alert (TCA) should be sent."
  ::= { optIfOChSrcCurrentEntry 6 }

-- OCh source interval table
-- Contains data for previous 15-minute performance monitoring
-- intervals.

optIfOChSrcIntervalTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of historical OCh source performance monitoring
     information."
  ::= { optIfOCh 7 }

optIfOChSrcIntervalEntry OBJECT-TYPE
  SYNTAX  OptIfOChSrcIntervalEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh source performance
     monitoring information of an interface during a particular
     historical interval."
  INDEX  { ifIndex, optIfOChSrcIntervalNumber }
  ::= { optIfOChSrcIntervalTable 1 }

OptIfOChSrcIntervalEntry ::=
  SEQUENCE {
    optIfOChSrcIntervalNumber           OptIfIntervalNumber,
    optIfOChSrcIntervalSuspectedFlag    TruthValue,
    optIfOChSrcIntervalLastOutputPower  Integer32,
    optIfOChSrcIntervalLowOutputPower   Integer32,
    optIfOChSrcIntervalHighOutputPower  Integer32
    }

optIfOChSrcIntervalNumber OBJECT-TYPE
  SYNTAX  OptIfIntervalNumber
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Uniquely identifies the interval."
  ::= { optIfOChSrcIntervalEntry 1 }

optIfOChSrcIntervalSuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSrcIntervalEntry 2 }

optIfOChSrcIntervalLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     interval."
  ::= { optIfOChSrcIntervalEntry 3 }

optIfOChSrcIntervalLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     interval."
  ::= { optIfOChSrcIntervalEntry 4 }

optIfOChSrcIntervalHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     interval."

  ::= { optIfOChSrcIntervalEntry 5 }

-- OCh source current day table
-- Contains data for the current 24-hour performance
-- monitoring interval.

optIfOChSrcCurDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh source performance monitoring information for
     the current 24-hour interval."
  ::= { optIfOCh 8 }

optIfOChSrcCurDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChSrcCurDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh source performance
     monitoring information of an interface for the current
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChSrcCurDayTable 1 }

OptIfOChSrcCurDayEntry ::=
  SEQUENCE {
    optIfOChSrcCurDaySuspectedFlag    TruthValue,
    optIfOChSrcCurDayLowOutputPower   Integer32,
    optIfOChSrcCurDayHighOutputPower  Integer32
    }

optIfOChSrcCurDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSrcCurDayEntry 1 }

optIfOChSrcCurDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the

     current 24-hour interval."
  ::= { optIfOChSrcCurDayEntry 2 }

optIfOChSrcCurDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     current 24-hour interval."
  ::= { optIfOChSrcCurDayEntry 3 }

-- OCh source previous day table
-- Contains data for the previous 24-hour performance
-- monitoring interval.

optIfOChSrcPrevDayTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOChSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OCh source performance monitoring information for
     the previous 24-hour interval."
  ::= { optIfOCh 9 }

optIfOChSrcPrevDayEntry OBJECT-TYPE
  SYNTAX  OptIfOChSrcPrevDayEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OCh source performance
     monitoring information of an interface for the previous
     24-hour interval."
  INDEX  { ifIndex }
  ::= { optIfOChSrcPrevDayTable 1 }

OptIfOChSrcPrevDayEntry ::=
  SEQUENCE {
    optIfOChSrcPrevDaySuspectedFlag    TruthValue,
    optIfOChSrcPrevDayLastOutputPower  Integer32,
    optIfOChSrcPrevDayLowOutputPower   Integer32,
    optIfOChSrcPrevDayHighOutputPower  Integer32
    }

optIfOChSrcPrevDaySuspectedFlag OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "If true, the data in this entry may be unreliable."
  ::= { optIfOChSrcPrevDayEntry 1 }

okay so the previous-day power readings are giving πŸ’… the last, lowest, and highest optical power at the output, all in 0.1 dBm 🌸

optIfOChSrcPrevDayLastOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The last optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChSrcPrevDayEntry 2 }

optIfOChSrcPrevDayLowOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The lowest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChSrcPrevDayEntry 3 }

optIfOChSrcPrevDayHighOutputPower OBJECT-TYPE
  SYNTAX  Integer32
  UNITS  "0.1 dbm"
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The highest optical power monitored at the output during the
     previous 24-hour interval."
  ::= { optIfOChSrcPrevDayEntry 4 }

-- the optIfOTUk group
-- This group handles the configuration
-- information for OTUk layers.

-- OTUk config table

optIfOTUkConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfOTUkConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of OTUk configuration information."
  ::= { optIfOTUk 1 }

optIfOTUkConfigEntry OBJECT-TYPE
  SYNTAX  OptIfOTUkConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains OTUk configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfOTUkConfigTable 1 }

OptIfOTUkConfigEntry ::=
  SEQUENCE {
    optIfOTUkDirectionality              OptIfDirectionality,
    optIfOTUkBitRateK                    OptIfBitRateK,
    optIfOTUkTraceIdentifierTransmitted  OptIfTxTI,
    optIfOTUkDAPIExpected                OptIfExDAPI,
    optIfOTUkSAPIExpected                OptIfExSAPI,
    optIfOTUkTraceIdentifierAccepted     OptIfAcTI,
    optIfOTUkTIMDetMode                  OptIfTIMDetMode,
    optIfOTUkTIMActEnabled               TruthValue,
    optIfOTUkDEGThr                      OptIfDEGThr,
    optIfOTUkDEGM                        OptIfDEGM,
    optIfOTUkSinkAdaptActive             TruthValue,
    optIfOTUkSourceAdaptActive           TruthValue,
    optIfOTUkSinkFECEnabled              TruthValue,
    optIfOTUkCurrentStatus               BITS
    }

optIfOTUkDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfOTUkConfigEntry 1 }

optIfOTUkBitRateK OBJECT-TYPE
  SYNTAX  OptIfBitRateK
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the bit rate of the entity."
  ::= { optIfOTUkConfigEntry 2 }

optIfOTUkTraceIdentifierTransmitted OBJECT-TYPE
  SYNTAX  OptIfTxTI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The trace identifier transmitted.
     This object is applicable when optIfOTUkDirectionality
     has the value source(2) or bidirectional(3).  It must not
     be instantiated in rows where optIfOTUkDirectionality
     has the value sink(1).
     If no value is ever set by a management entity for this
     object, system-specific default value will be used.
     Any implementation that instantiates this object must
     document the system-specific default value or how it
     is derived."
  ::= { optIfOTUkConfigEntry 3 }

optIfOTUkDAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExDAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The DAPI expected by the receiver.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     This object has no effect when optIfOTUkTIMDetMode has
     the value off(1)."
  ::= { optIfOTUkConfigEntry 4 }

optIfOTUkSAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExSAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The SAPI expected by the receiver.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     This object has no effect when optIfOTUkTIMDetMode has
     the value off(1)."
  ::= { optIfOTUkConfigEntry 5 }

optIfOTUkTraceIdentifierAccepted OBJECT-TYPE
  SYNTAX  OptIfAcTI
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The actual trace identifier accepted.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The value of this object is unspecified when
     optIfOTUkCurrentStatus indicates a near-end defect
     (i.e., ssf(3), lof(4), ais(5), lom(6)) that prevents
     extraction of the trace message."
  ::= { optIfOTUkConfigEntry 6 }

optIfOTUkTIMDetMode OBJECT-TYPE
  SYNTAX  OptIfTIMDetMode
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The default value of this object is off(1)."
  ::= { optIfOTUkConfigEntry 7 }

optIfOTUkTIMActEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates whether the Trace Identifier Mismatch (TIM)
     Consequent Action function is enabled.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     This object has no effect when optIfOTUkTIMDetMode has
     the value off(1).
     The default value of this object is false(2)."
  ::= { optIfOTUkConfigEntry 8 }

optIfOTUkDEGThr OBJECT-TYPE
  SYNTAX  OptIfDEGThr
  UNITS   "percentage"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a performance
     monitoring (PM) Second to be bad.  A PM Second is declared bad if
     the percentage of detected errored blocks in that second is
     greater than or equal to optIfOTUkDEGThr.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The default value of this object is Severely Errored Second
     (SES) Estimator (See ITU-T G.7710)."
  ::= { optIfOTUkConfigEntry 9 }

optIfOTUkDEGM OBJECT-TYPE
  SYNTAX  OptIfDEGM
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a Degraded Signal
     defect (dDEG).  A dDEG shall be declared if optIfOTUkDEGM
     consecutive bad PM Seconds are detected.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The default value of this object is 7 (See ITU-T G.7710)."
  ::= { optIfOTUkConfigEntry 10 }

optIfOTUkSinkAdaptActive OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates whether the sink adaptation function is activated or
     not.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The default value of this object is false(2)."
  ::= { optIfOTUkConfigEntry 11 }

optIfOTUkSourceAdaptActive OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates whether the source adaptation function is activated or
     not.
     This object is only applicable to the source function, i.e.,
     only when optIfOTUkDirectionality has the value source(2)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value sink(1).
     The default value of this object is false(2)."
  ::= { optIfOTUkConfigEntry 12 }

optIfOTUkSinkFECEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "If Forward Error Correction (FEC) is supported, this object
     indicates whether FEC at the OTUk sink adaptation function is
     enabled or not.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2).
     The default value of this object is true(1)."
  ::= { optIfOTUkConfigEntry 13 }

optIfOTUkCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    tim(0),
    deg(1),
    bdi(2),
    ssf(3),
    lof(4),
    ais(5),
    lom(6)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is only applicable to the sink function, i.e.,
     only when optIfOTUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfOTUkDirectionality has the value source(2)."
  ::= { optIfOTUkConfigEntry 14 }

-- GCC0 config table

optIfGCC0ConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfGCC0ConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of GCC0 configuration information."
  ::= { optIfOTUk 2 }

optIfGCC0ConfigEntry OBJECT-TYPE
  SYNTAX  OptIfGCC0ConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains GCC0 configuration
     information of an interface.  Each instance must
     correspond to an instance of optIfOTUkConfigEntry.
     Separate source and/or sink instances may exist
     for a given ifIndex value, or a single bidirectional
     instance may exist, but a bidirectional instance may
     not coexist with a source or sink instance.
     Instances of this conceptual row persist across
     agent restarts."
  INDEX  { ifIndex, optIfGCC0Directionality }
  ::= { optIfGCC0ConfigTable 1 }

OptIfGCC0ConfigEntry ::=
  SEQUENCE {
    optIfGCC0Directionality            OptIfDirectionality,
    optIfGCC0Application               SnmpAdminString,
    optIfGCC0RowStatus                 RowStatus
    }

optIfGCC0Directionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity.
     The values source(2) and bidirectional(3) are
     not allowed if the corresponding instance of
     optIfOTUkDirectionality has the value sink(1).
     The values sink(1) and bidirectional(3) are
     not allowed if the corresponding instance of
     optIfOTUkDirectionality has the value source(2)."
  ::= { optIfGCC0ConfigEntry 1 }

optIfGCC0Application OBJECT-TYPE
  SYNTAX  SnmpAdminString
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the application transported by the GCC0 entity.
     Example applications are ECC, User data channel.

     The value of this object may not be changed when
     optIfGCC0RowStatus has the value active(1)."

  ::= { optIfGCC0ConfigEntry 2 }

the OTUk config table is where the real vibes start πŸ¦‹ the sink-only objects get very particular about which rows they show up in, so pay attention bestie ✨

Okay, picking up right where the GCC0 row left off πŸŽ€

The row status column is the bestie that creates and deletes GCC0 config rows πŸ’… and it lines up with the addGCC0Access and removeGCC0Access operations from G.874.1 πŸ¦‹

optIfGCC0RowStatus OBJECT-TYPE
  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "This columnar object is used for creating and deleting a
     conceptual row of the optIfGCC0 config table.
     It is used to model the addGCC0Access and removeGCC0Access
     operations of an OTUk_TTP for GCC0 access control as defined
     in G.874.1.  Setting RowStatus to createAndGo or createAndWait
     implies addGCC0Access.  Setting RowStatus to destroy implies
     removeGCC0Access."
  ::= { optIfGCC0ConfigEntry 3 }

the optIfODUk group 🌸

Now we're in the ODUk group 🧚 and this part handles the config info for the ODUk layers, so it's basically the ODUk glow-up section ✨

-- the optIfODUk group
-- This group handles the configuration information
-- for the ODUk layers.

-- ODUk config table

optIfODUkConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfODUkConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of ODUk configuration information."
  ::= { optIfODUk 1 }

optIfODUkConfigEntry OBJECT-TYPE
  SYNTAX  OptIfODUkConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains ODUk configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfODUkConfigTable 1 }

OptIfODUkConfigEntry ::=
  SEQUENCE {
    optIfODUkDirectionality              OptIfDirectionality,
    optIfODUkBitRateK                    OptIfBitRateK,
    optIfODUkTcmFieldsInUse              BITS,
    optIfODUkPositionSeqCurrentSize      Unsigned32,
    optIfODUkTtpPresent                  TruthValue
    }

optIfODUkDirectionality OBJECT-TYPE
  SYNTAX  OptIfDirectionality
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the entity."
  ::= { optIfODUkConfigEntry 1 }

optIfODUkBitRateK OBJECT-TYPE
  SYNTAX  OptIfBitRateK
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the bit rate of the entity."
  ::= { optIfODUkConfigEntry 2 }

The TCM fields bitmap is giving main character energy πŸ’– Each bit slot is one of the six TCM fields, and a bit set to 1 means that field is in use πŸ”₯

optIfODUkTcmFieldsInUse OBJECT-TYPE
  SYNTAX  BITS {
    tcmField1(0),
    tcmField2(1),
    tcmField3(2),
    tcmField4(3),
    tcmField5(4),
    tcmField6(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the TCM field(s) that are currently in use.
     The positions of the bits correspond to the TCM fields.
     A bit that is set to 1 means that the corresponding TCM
     field is used.  This object will be updated when rows are
     created in or deleted from the optIfODUkTConfigTable, or
     the optIfODUkTNimConfigTable."
  ::= { optIfODUkConfigEntry 3 }

optIfODUkPositionSeqCurrentSize OBJECT-TYPE
  SYNTAX  Unsigned32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This variable indicates the current size of the position
     sequence (i.e., number of TCM function and/or GCC12
     access that have been created in the ODUk interface).
     When the value of this variable is greater than zero,
     it means that one or more TCM function and/or GCC12
     access have been created in the ODUk interface.  In this
     case, there will be as many rows in the
     optIfODUkPositionSeqTable as the value of
     optIfODUkPositionSeqCurrentSize  corresponding to this
     ODUk interface, one row for each TCM function or GCC12
     access.  The position of the TCM function and/or
     GCC12 access within the sequence is indicated by the
     optIfODUkPositionSeqPosition variable in
     optIfODUkPositionSeqTable.
     The optIfODUkPositionSeqTable also provides pointers
     to the corresponding TCM function (optIfODUkT) and
     GCC12 access (optIfGCC12) entities."
  ::= { optIfODUkConfigEntry 4 }

optIfODUkTtpPresent OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This object has the value true(1) if the ifEntry under which
     it is instantiated contains an ODUk Trail Termination Point,
     i.e., is the endpoint of an ODUk path.  In that case there
     will be a corresponding row in the ODUk TTP config table and
     it will not be possible to create corresponding rows in the
     ODUk NIM config table.  This object has the value false(2)
     if the ifEntry under which it is instantiated contains an
     intermediate ODUk Connection Termination Point.  In that case
     there is no corresponding row in the ODUk TTP config table,
     but it will be possible to create corresponding rows in the
     ODUk NIM config table.  This object also affects the allowable
     options in rows created in the GCC12 config table and in the
     ODUkT config table, as specified in the DESCRIPTION clauses
     of the columns in those tables."
  ::= { optIfODUkConfigEntry 5 }

the ODUk TTP config table πŸ¦‹

This table is the ODUk Trail Termination Point crew πŸ‘‘ It's where the trace identifiers, the expected DAPI and SAPI, the TIM stuff, and the degrade thresholds all live. Lowkey a lot of rules, so read the DESCRIPTION strings carefully πŸ™ˆ

-- ODUk Trail Termination Point (TTP) config table

optIfODUkTtpConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfODUkTtpConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of ODUk TTP configuration information."
  ::= { optIfODUk 2 }

optIfODUkTtpConfigEntry OBJECT-TYPE
  SYNTAX  OptIfODUkTtpConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

    "A conceptual row that contains ODUk TTP configuration
     information of an interface."
  INDEX  { ifIndex }
  ::= { optIfODUkTtpConfigTable 1 }

OptIfODUkTtpConfigEntry ::=
  SEQUENCE {
    optIfODUkTtpTraceIdentifierTransmitted  OptIfTxTI,
    optIfODUkTtpDAPIExpected                OptIfExDAPI,
    optIfODUkTtpSAPIExpected                OptIfExSAPI,
    optIfODUkTtpTraceIdentifierAccepted     OptIfAcTI,
    optIfODUkTtpTIMDetMode                  OptIfTIMDetMode,
    optIfODUkTtpTIMActEnabled               TruthValue,
    optIfODUkTtpDEGThr                      OptIfDEGThr,
    optIfODUkTtpDEGM                        OptIfDEGM,
    optIfODUkTtpCurrentStatus               BITS
    }

optIfODUkTtpTraceIdentifierTransmitted OBJECT-TYPE
  SYNTAX  OptIfTxTI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The trace identifier transmitted.
     This object is applicable when optIfODUkDirectionality
     has the value source(2) or bidirectional(3).  It must not be
     instantiated in rows where optIfODUkDirectionality
     has the value sink(1).
     If no value is ever set by a management entity for this
     object, system-specific default value will be used.
     Any implementation that instantiates this object must
     document the system-specific default value or how it
     is derived."
  ::= { optIfODUkTtpConfigEntry 1 }

optIfODUkTtpDAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExDAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The DAPI expected by the receiver.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     This object has no effect when optIfODUkTtpTIMDetMode has
     the value off(1)."
  ::= { optIfODUkTtpConfigEntry 2 }

optIfODUkTtpSAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExSAPI
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "The SAPI expected by the receiver.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     This object has no effect when optIfODUkTtpTIMDetMode has
     the value off(1)."
  ::= { optIfODUkTtpConfigEntry 3 }

optIfODUkTtpTraceIdentifierAccepted OBJECT-TYPE
  SYNTAX  OptIfAcTI
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The actual trace identifier accepted.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     The value of this object is unspecified when
     optIfODUkTtpCurrentStatus indicates a near-end defect
     (i.e., oci(0), lck(1), ssf(5)) that prevents extraction
     of the trace message."
  ::= { optIfODUkTtpConfigEntry 4 }

optIfODUkTtpTIMDetMode OBJECT-TYPE
  SYNTAX  OptIfTIMDetMode
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     The default value of this object is off(1)."
  ::= { optIfODUkTtpConfigEntry 5 }

optIfODUkTtpTIMActEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates whether the Trace Identifier Mismatch (TIM)
     Consequent Action function is enabled.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     This object has no effect when optIfODUkTtpTIMDetMode has
     the value off(1).
     The default value of this object is false(2)."
  ::= { optIfODUkTtpConfigEntry 6 }

optIfODUkTtpDEGThr OBJECT-TYPE
  SYNTAX  OptIfDEGThr
  UNITS   "percentage"
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a performance
     monitoring (PM) Second to be bad.  A PM Second is declared bad if
     the percentage of detected errored blocks in that second is
     greater than or equal to optIfODUkDEGThr.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     The default value of this object is Severely Errored Second
     (SES) Estimator (See ITU-T G.7710)."
  ::= { optIfODUkTtpConfigEntry 7 }

optIfODUkTtpDEGM OBJECT-TYPE
  SYNTAX  OptIfDEGM
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a Degraded Signal
     defect (dDEG).  A dDEG shall be declared if optIfODUkDEGM
     consecutive bad PM Seconds are detected.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2).
     The default value of this object is 7 (See ITU-T G.7710)."
  ::= { optIfODUkTtpConfigEntry 8 }

optIfODUkTtpCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    oci(0),
    lck(1),
    tim(2),
    deg(3),
    bdi(4),
    ssf(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is only applicable to the sink function, i.e.,
     only when optIfODUkDirectionality has the value sink(1)
     or bidirectional(3).  It must not be instantiated in rows
     where optIfODUkDirectionality has the value source(2)."
  ::= { optIfODUkTtpConfigEntry 9 }

the ODUk Position Sequence table ✨

Last but not least, the Position Sequence table πŸ’… It's the list that keeps track of the TCM functions and GCC12 accesses sitting on an ODUk interface, and the rest of its details get filled in right after this 🌈

-- ODUk Position Sequence table

optIfODUkPositionSeqTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfODUkPositionSeqEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of ODUk Position Sequence information."
  ::= { optIfODUk 3 }

Okay bestie, so this is the position sequence row, and it's basically the little index card that lines up every TCM and GCC12 access function on an ODUk interface πŸŽ€βœ¨

optIfODUkPositionSeqEntry OBJECT-TYPE
  SYNTAX  OptIfODUkPositionSeqEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains ODUk position sequence
     information of an ODUk interface.  The ODUk interface
     is identified by the ifIndex.  Associated with each
     ODUk interface there may be one of more conceptual
     rows in the optIfODUkPositionSeqTable.  Each row
     represents a TCM or GCC12 access function within the
     associated ODUk interface.  Rows of the
     optIfODUkPositionSeqTable table are created/deleted
     as the result of the creation/deletion of the optIfODUkT
     or optIfGCC12 entities."
  INDEX  { ifIndex, optIfODUkPositionSeqIndex }
  ::= { optIfODUkPositionSeqTable 1 }

OptIfODUkPositionSeqEntry ::=
  SEQUENCE {
    optIfODUkPositionSeqIndex            Unsigned32,
    optIfODUkPositionSeqPosition         Unsigned32,
    optIfODUkPositionSeqPointer          RowPointer
    }

optIfODUkPositionSeqIndex OBJECT-TYPE
  SYNTAX  Unsigned32 (1..4294967295)
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "This variable identifies a row in the
     optIfODUkPositionSeqTable Table.
     Each row of the optIfODUkPositionSeqTable Table
     represents a TCM or GCC12 access function within the
     associated ODUk interface."
  ::= { optIfODUkPositionSeqEntry 1 }

optIfODUkPositionSeqPosition OBJECT-TYPE
  SYNTAX  Unsigned32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This variable indicates the position of the TCM or
     GCC12 access function within the sequence of TCMs &
     GCC12 access functions of the associated ODUk
     interface.  The TCM or GCC12 presented by this row is
     referenced by the optIfODUkPositionSeqPointer variable."
  ::= { optIfODUkPositionSeqEntry 2 }

optIfODUkPositionSeqPointer OBJECT-TYPE
  SYNTAX  RowPointer
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "This variable identifies the TCM or GCC12 access function
     by pointing to the corresponding optIfODUkT or optIfGCC12
     entity."
  ::= { optIfODUkPositionSeqEntry 3 }

Next up is the Non-intrusive monitoring (NIM) config table, which is the ODUk NIM stuff πŸ¦‹

-- ODUk Non-intrusive monitoring (Nim) config table

optIfODUkNimConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfODUkNimConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of ODUkNim configuration information."
  ::= { optIfODUk 4 }

optIfODUkNimConfigEntry OBJECT-TYPE

  SYNTAX  OptIfODUkNimConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains ODUkNim configuration
     information of an interface.  Each instance must
     correspond to an instance of optIfODUkConfigEntry
     for which optIfODUkTtpPresent has the value false(2).

     Instances of this conceptual row persist across
     agent restarts, and read-create columns other
     than the status column may be modified while the
     row is active."
  INDEX  { ifIndex, optIfODUkNimDirectionality }
  ::= { optIfODUkNimConfigTable 1 }

OptIfODUkNimConfigEntry ::=
  SEQUENCE {
    optIfODUkNimDirectionality              OptIfSinkOrSource,
    optIfODUkNimDAPIExpected                OptIfExDAPI,
    optIfODUkNimSAPIExpected                OptIfExSAPI,
    optIfODUkNimTraceIdentifierAccepted     OptIfAcTI,
    optIfODUkNimTIMDetMode                  OptIfTIMDetMode,
    optIfODUkNimTIMActEnabled               TruthValue,
    optIfODUkNimDEGThr                      OptIfDEGThr,
    optIfODUkNimDEGM                        OptIfDEGM,
    optIfODUkNimCurrentStatus               BITS,
    optIfODUkNimRowStatus                   RowStatus
    }

optIfODUkNimDirectionality OBJECT-TYPE
  SYNTAX  OptIfSinkOrSource
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Specifies the monitor point for the ODUk Path non-intrusive
     monitoring function.  The value source(2) is not allowed
     if the corresponding instance of optIfODUkDirectionality
     has the value sink(1), and the value sink(1) is not allowed
     if the corresponding instance of optIfODUkDirectionality
     has the value source(2).  Either the value sink(1) or
     source(2) is allowed if the corresponding instance of
     optIfODUkDirectionality has the value bidirectional(3).

     The value sink(1) means monitoring at the sink direction
     path signal of the ODUk CTP.

     The value source(2) means monitoring at the source direction
     path signal of the ODUk CTP.  Monitoring the source direction
     of an ODUk CTP is necessary in those cases where the ODUk CTP
     is at an SNCP (Subnetwork Connection Protection) end (e.g., see
     Figure I.1.2/G.874.1).  If one would like to get the performance
     of the protected connection, one cannot use the NIM function
     at both ODUk CTP sinks (before the matrix), instead one should
     monitor the signal at the source ODUk CTP after the matrix."
  ::= { optIfODUkNimConfigEntry 1 }

optIfODUkNimDAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExDAPI
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "The DAPI expected by the receiver.
     This object has no effect if optIfODUkNimTIMDetMode has
     the value off(1) or sapi(3)."
  ::= { optIfODUkNimConfigEntry 2 }

optIfODUkNimSAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExSAPI
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "The SAPI expected by the receiver.
     This object has no effect if optIfODUkNimTIMDetMode has
     the value off(1) or dapi(2)."
  ::= { optIfODUkNimConfigEntry 3 }

optIfODUkNimTraceIdentifierAccepted OBJECT-TYPE
  SYNTAX  OptIfAcTI
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The actual trace identifier accepted.  The value of
     this object is unspecified if optIfODUkNimCurrentStatus
     has any of the bit positions oci(0), lck(1), or ssf(5)
     set or if optIfODUkNimRowStatus has any value other
     than active(1)."
  ::= { optIfODUkNimConfigEntry 4 }

optIfODUkNimTIMDetMode OBJECT-TYPE
  SYNTAX  OptIfTIMDetMode
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function."

  ::= { optIfODUkNimConfigEntry 5 }

optIfODUkNimTIMActEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates whether the Trace Identifier Mismatch (TIM)
     Consequent Action function is enabled."
  ::= { optIfODUkNimConfigEntry 6 }

optIfODUkNimDEGThr OBJECT-TYPE
  SYNTAX  OptIfDEGThr
  UNITS   "percentage"
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a performance
     monitoring (PM) Second to be bad.  A PM Second is declared bad
     if the percentage of detected errored blocks in that second is
     greater than or equal to optIfODUkNimDEGThr."
  ::= { optIfODUkNimConfigEntry 7 }

optIfODUkNimDEGM OBJECT-TYPE
  SYNTAX  OptIfDEGM
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a Degraded Signal
     defect (dDEG).  A dDEG shall be declared if optIfODUkNimDEGM
     consecutive bad PM Seconds are detected."
  ::= { optIfODUkNimConfigEntry 8 }

optIfODUkNimCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    oci(0),
    lck(1),
    tim(2),
    deg(3),
    bdi(4),
    ssf(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if
     any.  The value of this object is unspecified if
     optIfODUkNimRowStatus has any value other than
     active(1)."
  ::= { optIfODUkNimConfigEntry 9 }

optIfODUkNimRowStatus OBJECT-TYPE
  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "This columnar object is used for creating and deleting
     a conceptual row of the optIfODUkNim config table.
     It is used to model the activateNim and deactivateNim
     operations of an OTUk_CTP for non-intrusive monitoring
     control as defined in G.874.1.  Setting RowStatus to
     createAndGo or createAndWait implies activateNim.
     Setting RowStatus to destroy implies deactivateNim."
  ::= { optIfODUkNimConfigEntry 10 }

Last bit for this part is the GCC12 config table, which handles the GCC overhead bytes 🌸

-- GCC12 config table

optIfGCC12ConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfGCC12ConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of GCC12 configuration information.
     The GCC function processes the GCC overhead bytes passing
     through them but leave the remainder of the ODUk overhead
     and payload data alone."
  ::= { optIfODUk 5 }

optIfGCC12ConfigEntry OBJECT-TYPE
  SYNTAX  OptIfGCC12ConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains GCC12 configuration
     information of an interface.  Each instance must
     correspond to an instance of optIfODUkConfigEntry.
     Separate instances providing GCC1-only access and
     GCC2-only access may exist for a given ifIndex value,
     or a single instance providing GCC1 + GCC2 may exist,
     but a GCC1 + GCC2 instance may not coexist with a
     GCC1-only or GCC2-only instance.

     Instances of this conceptual row persist across agent
     restarts."
  INDEX  { ifIndex, optIfGCC12Codirectional, optIfGCC12GCCAccess }
  ::= { optIfGCC12ConfigTable 1 }

OptIfGCC12ConfigEntry ::=
  SEQUENCE {
    optIfGCC12Codirectional      TruthValue,
    optIfGCC12GCCAccess          INTEGER,
    optIfGCC12GCCPassThrough     TruthValue,
    optIfGCC12Application        SnmpAdminString,
    optIfGCC12RowStatus          RowStatus
    }

optIfGCC12Codirectional OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Indicates the directionality of the GCC12 termination with
     respect to the associated ODUk CTP.  The value true(1) means
     that the sink part of the GCC12 extracts COMMS data from the
     signal at the input to the ODUk CTP sink and the source part
     of the GCC12 inserts COMMS data into the signal at the output
     of the ODUk CTP source.  The value false(2) means that the
     sink part of the GCC12 extracts COMMS data from the signal at
     the output of the ODUk CTP source and the source part of the
     GCC12 inserts COMMS data into the signal at the input of the
     ODUk CTP sink.  This attribute may assume either value when
     the corresponding instance of optIfODUkTtpPresent has the
     value false(2).  When the value of the corresponding instance
     of optIfODUkTtpPresent is true(1) then the only value allowed
     for this attribute is true(1)."
  ::= { optIfGCC12ConfigEntry 1 }

optIfGCC12GCCAccess OBJECT-TYPE
  SYNTAX  INTEGER {
     gcc1 (1),
     gcc2 (2),
     gcc1and2 (3)
   }
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Indicates the GCC access represented by the entity."
  ::= { optIfGCC12ConfigEntry 2 }

optIfGCC12GCCPassThrough OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Controls whether the selected GCC overhead bytes are passed

     through or modified.  The value true(1) means that the selected
     GCC overhead bytes are passed through unmodified from the ODUk
     CTP input to the ODUk CTP output.  The value false(2) means that
     the selected GCC overhead bytes are set to zero at the ODUk CTP
     output after the extraction of the COMMS data.  This object has
     no effect if the corresponding instance of optIfODUkTtpPresent
     has the value true(1).

     The value of this object may not be changed when
     optIfGCC12RowStatus has the value active(1)."
  ::= { optIfGCC12ConfigEntry 3 }

optIfGCC12Application OBJECT-TYPE
  SYNTAX  SnmpAdminString
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the application transported by the GCC12 entity.
     Example applications are ECC, User data channel.

     The value of this object may not be changed when
     optIfGCC12RowStatus has the value active(1)."
  ::= { optIfGCC12ConfigEntry 4 }

optIfGCC12RowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This columnar object is used for creating and deleting a conceptual row of the optIfGCC12 config table. It is used to model the addGCC12Access and removeGCC12Access operations of an ODUk_CTP or ODUk_TTP for GCC12 access control as defined in G.874.1. Setting RowStatus to createAndGo or createAndWait implies addGCC12Access. Setting RowStatus to destroy implies removeGCC12Access. Successful addition/removal of the GCC12 access function will result in updating the optIfODUkPositionSeqCurrentSize variable and the optIfODUkPositionSeqTable table of the associated ODUk entry in the optIfODUkConfigTable." ::= { optIfGCC12ConfigEntry 5 }

-- the optIfODUkT group -- This group handles the configuration information -- for the ODUkT layers.

-- ODUkT config table optIfODUkTConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF OptIfODUkTConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of ODUkT configuration information." ::= { optIfODUkT 1 }

optIfODUkTConfigEntry OBJECT-TYPE SYNTAX OptIfODUkTConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row that contains ODUkT configuration information of an interface. Each instance must correspond to an instance of optIfODUkConfigEntry. Rows in this table are mutually exclusive with rows in the ODUkT NIM config table -- in other words, this row object may not be instantiated for a given pair of ifIndex and TCM field values if a corresponding instance of optIfODUkTNimConfigEntry already exists.

Instances of this conceptual row persist across agent restarts. Except where noted otherwise, read-create columns other than the status column may be modified while the row is active." INDEX { ifIndex, optIfODUkTTcmField, optIfODUkTCodirectional } ::= { optIfODUkTConfigTable 1 }

OptIfODUkTConfigEntry ::= SEQUENCE { optIfODUkTTcmField Unsigned32, optIfODUkTCodirectional TruthValue, optIfODUkTTraceIdentifierTransmitted OptIfTxTI, optIfODUkTDAPIExpected OptIfExDAPI, optIfODUkTSAPIExpected OptIfExSAPI, optIfODUkTTraceIdentifierAccepted OptIfAcTI, optIfODUkTTIMDetMode OptIfTIMDetMode, optIfODUkTTIMActEnabled TruthValue, optIfODUkTDEGThr OptIfDEGThr, optIfODUkTDEGM OptIfDEGM, optIfODUkTSinkMode INTEGER, optIfODUkTSinkLockSignalAdminState INTEGER, optIfODUkTSourceLockSignalAdminState INTEGER, optIfODUkTCurrentStatus BITS, optIfODUkTRowStatus RowStatus }

optIfODUkTTcmField OBJECT-TYPE SYNTAX Unsigned32 (1..6) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the tandem connection monitoring field of the ODUk OH. Valid values are integers from 1 to 6." ::= { optIfODUkTConfigEntry 1 }

optIfODUkTCodirectional OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the directionality of the ODUkT termination point with respect to the associated ODUk CTP. The value true(1) means that the sink part of the ODUkT TP extracts TCM data from the signal at the input to the ODUk CTP sink and the source part of the ODUkT TP inserts TCM data into the signal at the output of the ODUk CTP source. The value false(2) means that the sink part of the ODUkT TP extracts TCM data from the signal at the output of the ODUk CTP source and the source part of the ODUkT TP inserts TCM data into the signal at the input of the ODUk CTP sink. This attribute may assume either value when the corresponding instance of optIfODUkTtpPresent has the value false(2). When the value of the corresponding instance of optIfODUkTtpPresent is true(1) then the only value allowed for this attribute is true(1)." ::= { optIfODUkTConfigEntry 2 }

optIfODUkTTraceIdentifierTransmitted OBJECT-TYPE SYNTAX OptIfTxTI MAX-ACCESS read-create STATUS current DESCRIPTION "The trace identifier transmitted. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value false(2), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value true(1). It must not be instantiated in rows for all other cases." ::= { optIfODUkTConfigEntry 3 }

optIfODUkTDAPIExpected OBJECT-TYPE SYNTAX OptIfExDAPI MAX-ACCESS read-create STATUS current DESCRIPTION "The DAPI expected by the receiver. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. This object has no effect when optIfODUkTTIMDetMode has the value off(1)." ::= { optIfODUkTConfigEntry 4 }

optIfODUkTSAPIExpected OBJECT-TYPE SYNTAX OptIfExSAPI MAX-ACCESS read-create STATUS current DESCRIPTION "The SAPI expected by the receiver. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. This object has no effect when optIfODUkTTIMDetMode has the value off(1)." ::= { optIfODUkTConfigEntry 5 }

optIfODUkTTraceIdentifierAccepted OBJECT-TYPE SYNTAX OptIfAcTI MAX-ACCESS read-only STATUS current DESCRIPTION "The actual trace identifier accepted. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. The value of this object is unspecified when optIfODUkTCurrentStatus indicates a near-end defect (i.e., oci(0), lck(1), ssf(5)) that prevents extraction of the trace message." ::= { optIfODUkTConfigEntry 6 }

optIfODUkTTIMDetMode OBJECT-TYPE SYNTAX OptIfTIMDetMode MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the mode of the Trace Identifier Mismatch (TIM) Detection function. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. The default value of this object is off(1)." ::= { optIfODUkTConfigEntry 7 }

optIfODUkTTIMActEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates whether the Trace Identifier Mismatch (TIM) Consequent Action function is enabled. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. This object has no effect when optIfODUkTTIMDetMode has the value off(1). The default value of this object is false(2)." ::= { optIfODUkTConfigEntry 8 }

optIfODUkTDEGThr OBJECT-TYPE SYNTAX OptIfDEGThr UNITS "percentage" MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the threshold level for declaring a performance monitoring (PM) Second to be bad. A PM Second is declared bad if the percentage of detected errored blocks in that second is greater than or equal to optIfODUkTDEGThr. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. The default value of this object is Severely Errored Second (SES) Estimator (See ITU-T G.7710)." ::= { optIfODUkTConfigEntry 9 }

optIfODUkTDEGM OBJECT-TYPE SYNTAX OptIfDEGM MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the threshold level for declaring a Degraded Signal defect (dDEG). A dDEG shall be declared if optIfODUkTDEGM consecutive bad PM Seconds are detected. This object is applicable only to the following three cases. (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases. The default value of this object is 7 (See ITU-T G.7710)." ::= { optIfODUkTConfigEntry 10 }

optIfODUkTSinkMode OBJECT-TYPE SYNTAX INTEGER { operational (1), monitor (2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This variable specifies the TCM mode at the entity. The value operational(1) means that TCM Overhead (TCMOH) processes (see ITU-T G.798) shall be performed and consequent actions for AIS, Trail Signal Fail (TSF), Trail Signal Degraded (TSD) shall be initiated in case of defects. The value monitor(2) means that TCMOH processes shall be performed but consequent actions for AIS, Trail Server Failure (TSF), Trail Server Degraded (TSD) shall _not_ be initiated in case of defects.

This object is applicable only when the value of optIfODUkTtpPresent is false(2) and also either one of the following three cases holds: (i) optIfODUkDirectionality has the value bidirectional(3), or (ii) optIfODUkDirectionality has the value sink(1) and optIfODUkTCodirectional has the value true(1), or (iii) optIfODUkDirectionality has the value source(3) and optIfODUkTCodirectional has the value false(2). It must not be instantiated in rows for all other cases." ::= { optIfODUkTConfigEntry 11 }

okay bestie, the sink-side LOCK provisioning is next, and it's a whole vibe πŸ’…βœ¨

optIfODUkTSinkLockSignalAdminState OBJECT-TYPE
  SYNTAX  INTEGER {
    locked(1),
    normal(2)
    }
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Provides the capability to provision the LOCK signal, which
     is one of the ODUk maintenance signals, at the ODUKT sink.  When
     a Tandem Connection endpoint is set to admin state locked,
     it inserts the ODUk-LCK signal in the sink direction.

     This object is applicable only when the value of
     optIfODUkTtpPresent is false(2) and also either one of the
     following three cases holds:
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value true(1), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value false(2).
     It must not be instantiated in rows for all other cases."
  ::= { optIfODUkTConfigEntry 12 }

so this one is all about the LOCK signal (one of the ODUk maintenance signals πŸ”’). when a Tandem Connection endpoint gets set to locked, it inserts the ODUk-LCK signal in the sink direction. it only shows up when optIfODUkTtpPresent is false(2) AND one of three combos is true 🫢

optIfODUkTSourceLockSignalAdminState OBJECT-TYPE
  SYNTAX  INTEGER {
    locked(1),
    normal(2)
    }
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Provides the capability to provision the LOCK signal, which
     is one of the ODUk maintenance signals, at the source.
     When a Tandem Connection endpoint is set to admin state
     locked, it inserts the ODUk-LCK signal in the source
     direction.

     This object is applicable only when either one of the
     following three cases holds:
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value false(2), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value true(1).
     It must not be instantiated in rows for all other cases."
  ::= { optIfODUkTConfigEntry 13 }

the source-side twin πŸͺž same locked/normal options, but this one inserts ODUk-LCK in the source direction instead. it's applicable for the bidirectional case, or sink with optIfODUkTCodirectional set to false(2), or source with it set to true(1). the combos are literally flipped, iykyk πŸ™ˆ

optIfODUkTCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    oci(0),
    lck(1),
    tim(2),
    deg(3),
    bdi(4),
    ssf(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     This object is applicable only when either one of the
     following three cases holds:
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value true(1), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value false(2).
     It must not be instantiated in rows for all other cases."
  ::= { optIfODUkTConfigEntry 14 }

optIfODUkTCurrentStatus is the read-only "what's wrong rn" check πŸ‘€ it's a BITS value that can flag oci, lck, tim, deg, bdi, and ssf defects. it's only instantiated for the bidirectional case, sink with codirectional true(1), or source with codirectional false(2) πŸ’€

optIfODUkTRowStatus OBJECT-TYPE
  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "This columnar object is used for creating and deleting a
     conceptual row of the optIfODUkT config table.
     It is used to model the addTCM and removeTCM operations of an
     ODUk_CTP or ODUk_TTP for Tandem connection monitoring as defined
     in ITU-T G.874.1.
     Setting RowStatus to createAndGo or createAndWait implies addTCM.
     Setting RowStatus to destroy implies removeTCM.
     Successful addition/removal of TCM will result in updating the
     optIfODUkTcmFieldsInUse and optIfODUkPositionSeqCurrentSize
     variables and the optIfODUkPositionSeqTable table of the
     associated ODUk entry in the optIfODUkConfigTable."
  ::= { optIfODUkTConfigEntry 15 }

the row-status column is the create/delete button πŸŽ€ createAndGo or createAndWait means addTCM, destroy means removeTCM. it's modelled on the addTCM and removeTCM ops for Tandem connection monitoring from ITU-T G.874.1, and a successful add or remove updates optIfODUkTcmFieldsInUse, optIfODUkPositionSeqCurrentSize, and the optIfODUkPositionSeqTable for the matching ODUk entry 🌸


now we're entering the Nim (non-intrusive monitoring) config table πŸ¦‹ it's the same vibe as the ODUkT table, just watching without touching the signal.

-- ODUkT Non-intrusive monitoring (Nim) config table

optIfODUkTNimConfigTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF OptIfODUkTNimConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A table of ODUkTNim configuration information."
  ::= { optIfODUkT 2 }

optIfODUkTNimConfigEntry OBJECT-TYPE
  SYNTAX  OptIfODUkTNimConfigEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "A conceptual row that contains ODUkTNim configuration
     information of an interface.  Each instance must
     correspond to an instance of optIfODUkConfigEntry.
     Rows in this table are mutually exclusive with rows
     in the ODUkT config table -- in other words, this
     row object may not be instantiated for a given pair
     of ifIndex and TCM field values if a corresponding
     instance of optIfODUkTConfigEntry already exists.

     Instances of this conceptual row persist across
     agent restarts, and read-create columns other
     than the status column may be modified while the
     row is active."
  INDEX  {ifIndex, optIfODUkTNimTcmField, optIfODUkTNimDirectionality}
  ::= { optIfODUkTNimConfigTable 1 }

OptIfODUkTNimConfigEntry ::=
  SEQUENCE {
    optIfODUkTNimTcmField                    Unsigned32,
    optIfODUkTNimDirectionality              OptIfSinkOrSource,
    optIfODUkTNimDAPIExpected                OptIfExDAPI,
    optIfODUkTNimSAPIExpected                OptIfExSAPI,
    optIfODUkTNimTraceIdentifierAccepted     OptIfAcTI,
    optIfODUkTNimTIMDetMode                  OptIfTIMDetMode,
    optIfODUkTNimTIMActEnabled               TruthValue,
    optIfODUkTNimDEGThr                      OptIfDEGThr,
    optIfODUkTNimDEGM                        OptIfDEGM,
    optIfODUkTNimCurrentStatus               BITS,
    optIfODUkTNimRowStatus                   RowStatus
    }

so the Nim table is indexed by ifIndex, optIfODUkTNimTcmField, and optIfODUkTNimDirectionality ✨ and rows here and in the ODUkT config table are mutually exclusive. you can't have both for the same ifIndex and TCM field pair πŸ™…β€β™€οΈ the rows also persist across agent restarts, and every read-create column except status can be changed while the row is active πŸ’–

optIfODUkTNimTcmField OBJECT-TYPE
  SYNTAX  Unsigned32 (1..6)
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Indicates the tandem connection monitoring
     field of the ODUk OH on which non-intrusive monitoring
     is performed.  Valid values are
     integers from 1 to 6."
  ::= { optIfODUkTNimConfigEntry 1 }

optIfODUkTNimDirectionality OBJECT-TYPE
  SYNTAX  OptIfSinkOrSource
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
    "Specifies the monitor point for the ODUk TCM non-intrusive
     monitoring function.  The value source(2) is not allowed
     if the corresponding instance of optIfODUkDirectionality
     has the value sink(1), and the value sink(1) is not allowed
     if the corresponding instance of optIfODUkDirectionality
     has the value source(2).  Either the value sink(1) or
     source(2) is allowed if the corresponding instance of
     optIfODUkDirectionality has the value bidirectional(3).
     The value sink(1) means monitoring at the sink direction
     TCM signal of the ODUk CTP.
     The value source(2) means monitoring at the source direction
     path signal of the ODUk CTP."
  ::= { optIfODUkTNimConfigEntry 2 }

the TCM field is a number from 1 to 6 πŸ”’ and the directionality decides where the monitoring happens. sink(1) watches the sink direction TCM signal, source(2) watches the source direction path signal. the allowed combos depend on what optIfODUkDirectionality says, with bidirectional letting you pick either one 🎯

optIfODUkTNimDAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExDAPI
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "The DAPI expected by the receiver.
     This object has no effect if optIfODUkTNimTIMDetMode has
     the value off(1) or sapi(3)."
  ::= { optIfODUkTNimConfigEntry 3 }

optIfODUkTNimSAPIExpected OBJECT-TYPE
  SYNTAX  OptIfExSAPI
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "The SAPI expected by the receiver.
     This object has no effect if optIfODUkTNimTIMDetMode has
     the value off(1) or dapi(2)."

  ::= { optIfODUkTNimConfigEntry 4 }

the expected DAPI and SAPI are what the receiver is looking for πŸ‘‚ and they get ignored depending on optIfODUkTNimTIMDetMode. DAPI does nothing when the mode is off(1) or sapi(3), and SAPI does nothing when it's off(1) or dapi(2) πŸ™ˆ

optIfODUkTNimTraceIdentifierAccepted OBJECT-TYPE
  SYNTAX  OptIfAcTI
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "The actual trace identifier accepted.  The value of
     this object is unspecified if optIfODUkTNimCurrentStatus
     has any of the bit positions oci(0), lck(1), or ssf(5)
     set or if optIfODUkTNimRowStatus has any value other
     than active(1)."
  ::= { optIfODUkTNimConfigEntry 5 }

optIfODUkTNimTIMDetMode OBJECT-TYPE
  SYNTAX  OptIfTIMDetMode
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the mode of the Trace Identifier Mismatch (TIM)
     Detection function."
  ::= { optIfODUkTNimConfigEntry 6 }

optIfODUkTNimTIMActEnabled OBJECT-TYPE
  SYNTAX  TruthValue
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates whether the Trace Identifier Mismatch (TIM)
     Consequent Action function is enabled."
  ::= { optIfODUkTNimConfigEntry 7 }

the accepted trace identifier is read-only, and it's unspecified when oci(0), lck(1), or ssf(5) is set in the current status, or when the row status isn't active(1) 🌈 then we have the TIM detection mode (how TIM gets detected) and the TIM consequent action toggle, which is just a TruthValue saying whether that action is on πŸ”₯

optIfODUkTNimDEGThr OBJECT-TYPE
  SYNTAX  OptIfDEGThr
  UNITS   "percentage"
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a performance
     monitoring (PM) Second to be bad.  A PM Second is declared bad if
     the percentage of detected errored blocks in that second is
     greater than or equal to optIfODUkTNimDEGThr."
  ::= { optIfODUkTNimConfigEntry 8 }

optIfODUkTNimDEGM OBJECT-TYPE
  SYNTAX  OptIfDEGM
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "Indicates the threshold level for declaring a Degraded Signal
     defect (dDEG).  A dDEG shall be declared if optIfODUkTNimDEGM
     consecutive bad PM Seconds are detected."
  ::= { optIfODUkTNimConfigEntry 9 }

the DEG threshold is a percentage πŸ“Š a PM Second counts as bad if its detected errored blocks are at or above that percentage. DEGM is the number of consecutive bad PM Seconds needed before a dDEG (Degraded Signal defect) gets declared. it's giving threshold stan 😭

optIfODUkTNimCurrentStatus OBJECT-TYPE
  SYNTAX  BITS {
    oci(0),
    lck(1),
    tim(2),
    deg(3),
    bdi(4),
    ssf(5)
    }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
    "Indicates the defect condition of the entity, if any.
     The value of this object is unspecified if
     optIfODUkTNimRowStatus has any value other than
     active(1)."
  ::= { optIfODUkTNimConfigEntry 10 }

optIfODUkTNimRowStatus OBJECT-TYPE
  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
    "This columnar object is used for creating and deleting a
     conceptual row of the optIfODUkTNim config table.
     It is used to model the addTCM and removeTCM operations of an
     ODUk_CTP or ODUk_TTP for non-intrusive Tandem connection
     monitoring as defined in ITU-T G.874.1.
     Setting RowStatus to createAndGo or createAndWait implies addTCM.
     Setting RowStatus to destroy implies removeTCM.
     Successful addition/removal of Nim TCM will result in updating
     the optIfODUkPositionSeqCurrentSize variable and the
     optIfODUkPositionSeqTable table of the associated ODUk entry
     in the optIfODUkConfigTable."
  ::= { optIfODUkTNimConfigEntry 11 }

the Nim current status is the same BITS list, and it's unspecified whenever the row status isn't active(1) 🫠 and the Nim row status is the same add/remove deal as before, just for non-intrusive TCM. createAndGo or createAndWait is addTCM, destroy is removeTCM, and a successful change only touches optIfODUkPositionSeqCurrentSize and optIfODUkPositionSeqTable (no optIfODUkTcmFieldsInUse this time, rude πŸ’…)


last bit of this part: the units of conformance groups πŸŽ€ these are the bundles that say which objects belong together.

-- units of conformance

optIfOTMnGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTMnOrder,
    optIfOTMnReduced,
    optIfOTMnBitRates,
    optIfOTMnInterfaceType,
    optIfOTMnTcmMax,
    optIfOTMnOpticalReach
    }
  STATUS  current
  DESCRIPTION
    "A collection of OTMn structure information objects."
  ::= { optIfGroups 1 }

optIfPerfMonGroup OBJECT-GROUP
  OBJECTS  {
    optIfPerfMonCurrentTimeElapsed,
    optIfPerfMonCurDayTimeElapsed,
    optIfPerfMonIntervalNumIntervals,
    optIfPerfMonIntervalNumInvalidIntervals
    }
  STATUS  current
  DESCRIPTION
    "A collection of performance monitoring interval objects."
  ::= { optIfGroups 2 }

optIfOTSnCommonGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnDirectionality
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OTSn interfaces."
  ::= { optIfGroups 3 }

optIfOTSnSourceGroupFull OBJECT-GROUP
  OBJECTS  {
    optIfOTSnTraceIdentifierTransmitted
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to full-functionality/IaDI OTSn
     interfaces that support source functions."
  ::= { optIfGroups 4 }

optIfOTSnAPRStatusGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnAprStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of objects applicable to
     OTSn interfaces that support Automatic
     Power Reduction functions."
  ::= { optIfGroups 5 }

optIfOTSnAPRControlGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnAprControl
    }
  STATUS  current
  DESCRIPTION
    "A collection of objects applicable to
     OTSn interfaces that provide Automatic
     Power Reduction control functions."
  ::= { optIfGroups 6 }

optIfOTSnSinkGroupBasic OBJECT-GROUP
  OBJECTS  {
    optIfOTSnCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OTSn interfaces that
     support sink functions."
  ::= { optIfGroups 7 }

these groups are the grouping squad πŸ‘―β€β™€οΈ optIfOTMnGroup bundles the OTMn structure info, optIfPerfMonGroup covers the PM interval stuff, and the OTSn groups cover the common config, source (full-functionality/IaDI), APR status and control, and sink basics. they're all numbered under optIfGroups 1 through 7, and it's giving organised ✨

Okay bestie, these are the next batch of groups in the module: the pre-OTN performance monitoring ones for OTSn, OMSn, and OChGroup interfaces, plus a full-functionality sink group πŸ¦‹ Each one is a little bundle of objects, and every group is marked current and gets its own spot in optIfGroups ✨

optIfOTSnSinkGroupFull OBJECT-GROUP
  OBJECTS  {
    optIfOTSnDAPIExpected,
    optIfOTSnSAPIExpected,
    optIfOTSnTraceIdentifierAccepted,
    optIfOTSnTIMDetMode,
    optIfOTSnTIMActEnabled
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to full-functionality/IaDI OTSn
     interfaces that support sink functions."
  ::= { optIfGroups 8 }

optIfOTSnSinkPreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnSinkCurrentSuspectedFlag,
    optIfOTSnSinkCurrentInputPower,
    optIfOTSnSinkCurrentLowInputPower,
    optIfOTSnSinkCurrentHighInputPower,
    optIfOTSnSinkCurrentOutputPower,
    optIfOTSnSinkCurrentLowOutputPower,
    optIfOTSnSinkCurrentHighOutputPower,
    optIfOTSnSinkIntervalSuspectedFlag,
    optIfOTSnSinkIntervalLastInputPower,
    optIfOTSnSinkIntervalLowInputPower,
    optIfOTSnSinkIntervalHighInputPower,
    optIfOTSnSinkIntervalLastOutputPower,
    optIfOTSnSinkIntervalLowOutputPower,
    optIfOTSnSinkIntervalHighOutputPower,
    optIfOTSnSinkCurDaySuspectedFlag,
    optIfOTSnSinkCurDayLowInputPower,
    optIfOTSnSinkCurDayHighInputPower,
    optIfOTSnSinkCurDayLowOutputPower,
    optIfOTSnSinkCurDayHighOutputPower,
    optIfOTSnSinkPrevDaySuspectedFlag,
    optIfOTSnSinkPrevDayLastInputPower,
    optIfOTSnSinkPrevDayLowInputPower,
    optIfOTSnSinkPrevDayHighInputPower,
    optIfOTSnSinkPrevDayLastOutputPower,
    optIfOTSnSinkPrevDayLowOutputPower,
    optIfOTSnSinkPrevDayHighOutputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OTSn interfaces that
     support sink functions."
  ::= { optIfGroups 9 }

optIfOTSnSinkPreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnSinkCurrentLowerInputPowerThreshold,
    optIfOTSnSinkCurrentUpperInputPowerThreshold,
    optIfOTSnSinkCurrentLowerOutputPowerThreshold,
    optIfOTSnSinkCurrentUpperOutputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OTSn interfaces
     that support sink functions."
  ::= { optIfGroups 10 }

optIfOTSnSourcePreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnSrcCurrentSuspectedFlag,
    optIfOTSnSrcCurrentOutputPower,
    optIfOTSnSrcCurrentLowOutputPower,
    optIfOTSnSrcCurrentHighOutputPower,
    optIfOTSnSrcCurrentInputPower,
    optIfOTSnSrcCurrentLowInputPower,
    optIfOTSnSrcCurrentHighInputPower,
    optIfOTSnSrcIntervalSuspectedFlag,
    optIfOTSnSrcIntervalLastOutputPower,
    optIfOTSnSrcIntervalLowOutputPower,
    optIfOTSnSrcIntervalHighOutputPower,
    optIfOTSnSrcIntervalLastInputPower,
    optIfOTSnSrcIntervalLowInputPower,
    optIfOTSnSrcIntervalHighInputPower,
    optIfOTSnSrcCurDaySuspectedFlag,
    optIfOTSnSrcCurDayLowOutputPower,
    optIfOTSnSrcCurDayHighOutputPower,
    optIfOTSnSrcCurDayLowInputPower,
    optIfOTSnSrcCurDayHighInputPower,
    optIfOTSnSrcPrevDaySuspectedFlag,
    optIfOTSnSrcPrevDayLastOutputPower,
    optIfOTSnSrcPrevDayLowOutputPower,
    optIfOTSnSrcPrevDayHighOutputPower,
    optIfOTSnSrcPrevDayLastInputPower,
    optIfOTSnSrcPrevDayLowInputPower,
    optIfOTSnSrcPrevDayHighInputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OTSn interfaces that
     support source functions."
  ::= { optIfGroups 11 }

optIfOTSnSourcePreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTSnSrcCurrentLowerOutputPowerThreshold,
    optIfOTSnSrcCurrentUpperOutputPowerThreshold,
    optIfOTSnSrcCurrentLowerInputPowerThreshold,
    optIfOTSnSrcCurrentUpperInputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OTSn interfaces
     that support source functions."
  ::= { optIfGroups 12 }

optIfOMSnCommonGroup OBJECT-GROUP

  OBJECTS  {
    optIfOMSnDirectionality
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OMSn interfaces."
  ::= { optIfGroups 13 }

optIfOMSnSinkGroupBasic OBJECT-GROUP
  OBJECTS  {
    optIfOMSnCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OMSn interfaces that
     support sink functions."
  ::= { optIfGroups 14 }

optIfOMSnSinkPreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOMSnSinkCurrentSuspectedFlag,
    optIfOMSnSinkCurrentAggregatedInputPower,
    optIfOMSnSinkCurrentLowAggregatedInputPower,
    optIfOMSnSinkCurrentHighAggregatedInputPower,
    optIfOMSnSinkCurrentOutputPower,
    optIfOMSnSinkCurrentLowOutputPower,
    optIfOMSnSinkCurrentHighOutputPower,
    optIfOMSnSinkIntervalSuspectedFlag,
    optIfOMSnSinkIntervalLastAggregatedInputPower,
    optIfOMSnSinkIntervalLowAggregatedInputPower,
    optIfOMSnSinkIntervalHighAggregatedInputPower,
    optIfOMSnSinkIntervalLastOutputPower,
    optIfOMSnSinkIntervalLowOutputPower,
    optIfOMSnSinkIntervalHighOutputPower,
    optIfOMSnSinkCurDaySuspectedFlag,
    optIfOMSnSinkCurDayLowAggregatedInputPower,
    optIfOMSnSinkCurDayHighAggregatedInputPower,
    optIfOMSnSinkCurDayLowOutputPower,
    optIfOMSnSinkCurDayHighOutputPower,
    optIfOMSnSinkPrevDaySuspectedFlag,
    optIfOMSnSinkPrevDayLastAggregatedInputPower,
    optIfOMSnSinkPrevDayLowAggregatedInputPower,
    optIfOMSnSinkPrevDayHighAggregatedInputPower,
    optIfOMSnSinkPrevDayLastOutputPower,
    optIfOMSnSinkPrevDayLowOutputPower,
    optIfOMSnSinkPrevDayHighOutputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OMSn interfaces that
     support sink functions."
  ::= { optIfGroups 15 }

optIfOMSnSinkPreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOMSnSinkCurrentLowerInputPowerThreshold,
    optIfOMSnSinkCurrentUpperInputPowerThreshold,
    optIfOMSnSinkCurrentLowerOutputPowerThreshold,
    optIfOMSnSinkCurrentUpperOutputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OMSn interfaces
     that support sink functions."
  ::= { optIfGroups 16 }

optIfOMSnSourcePreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOMSnSrcCurrentSuspectedFlag,
    optIfOMSnSrcCurrentOutputPower,
    optIfOMSnSrcCurrentLowOutputPower,
    optIfOMSnSrcCurrentHighOutputPower,
    optIfOMSnSrcCurrentAggregatedInputPower,
    optIfOMSnSrcCurrentLowAggregatedInputPower,
    optIfOMSnSrcCurrentHighAggregatedInputPower,
    optIfOMSnSrcIntervalSuspectedFlag,
    optIfOMSnSrcIntervalLastOutputPower,
    optIfOMSnSrcIntervalLowOutputPower,
    optIfOMSnSrcIntervalHighOutputPower,
    optIfOMSnSrcIntervalLastAggregatedInputPower,
    optIfOMSnSrcIntervalLowAggregatedInputPower,
    optIfOMSnSrcIntervalHighAggregatedInputPower,
    optIfOMSnSrcCurDaySuspectedFlag,
    optIfOMSnSrcCurDayLowOutputPower,
    optIfOMSnSrcCurDayHighOutputPower,
    optIfOMSnSrcCurDayLowAggregatedInputPower,
    optIfOMSnSrcCurDayHighAggregatedInputPower,
    optIfOMSnSrcPrevDaySuspectedFlag,
    optIfOMSnSrcPrevDayLastOutputPower,
    optIfOMSnSrcPrevDayLowOutputPower,
    optIfOMSnSrcPrevDayHighOutputPower,
    optIfOMSnSrcPrevDayLastAggregatedInputPower,
    optIfOMSnSrcPrevDayLowAggregatedInputPower,
    optIfOMSnSrcPrevDayHighAggregatedInputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OMSn interfaces that
     support source functions."
  ::= { optIfGroups 17 }

optIfOMSnSourcePreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOMSnSrcCurrentLowerOutputPowerThreshold,
    optIfOMSnSrcCurrentUpperOutputPowerThreshold,
    optIfOMSnSrcCurrentLowerInputPowerThreshold,
    optIfOMSnSrcCurrentUpperInputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OMSn interfaces that
     that support source functions."
  ::= { optIfGroups 18 }

optIfOChGroupCommonGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChGroupDirectionality
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OChGroup interfaces."
  ::= { optIfGroups 19 }

optIfOChGroupSinkPreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChGroupSinkCurrentSuspectedFlag,
    optIfOChGroupSinkCurrentAggregatedInputPower,
    optIfOChGroupSinkCurrentLowAggregatedInputPower,
    optIfOChGroupSinkCurrentHighAggregatedInputPower,
    optIfOChGroupSinkCurrentOutputPower,
    optIfOChGroupSinkCurrentLowOutputPower,
    optIfOChGroupSinkCurrentHighOutputPower,
    optIfOChGroupSinkIntervalSuspectedFlag,
    optIfOChGroupSinkIntervalLastAggregatedInputPower,
    optIfOChGroupSinkIntervalLowAggregatedInputPower,
    optIfOChGroupSinkIntervalHighAggregatedInputPower,
    optIfOChGroupSinkIntervalLastOutputPower,
    optIfOChGroupSinkIntervalLowOutputPower,
    optIfOChGroupSinkIntervalHighOutputPower,
    optIfOChGroupSinkCurDaySuspectedFlag,
    optIfOChGroupSinkCurDayLowAggregatedInputPower,
    optIfOChGroupSinkCurDayHighAggregatedInputPower,
    optIfOChGroupSinkCurDayLowOutputPower,
    optIfOChGroupSinkCurDayHighOutputPower,
    optIfOChGroupSinkPrevDaySuspectedFlag,
    optIfOChGroupSinkPrevDayLastAggregatedInputPower,
    optIfOChGroupSinkPrevDayLowAggregatedInputPower,
    optIfOChGroupSinkPrevDayHighAggregatedInputPower,
    optIfOChGroupSinkPrevDayLastOutputPower,
    optIfOChGroupSinkPrevDayLowOutputPower,
    optIfOChGroupSinkPrevDayHighOutputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OChGroup interfaces that
     support sink functions."
  ::= { optIfGroups 20 }

optIfOChGroupSinkPreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChGroupSinkCurrentLowerInputPowerThreshold,
    optIfOChGroupSinkCurrentUpperInputPowerThreshold,
    optIfOChGroupSinkCurrentLowerOutputPowerThreshold,
    optIfOChGroupSinkCurrentUpperOutputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OChGroup interfaces
     that support sink functions."
  ::= { optIfGroups 21 }

optIfOChGroupSourcePreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChGroupSrcCurrentSuspectedFlag,
    optIfOChGroupSrcCurrentOutputPower,
    optIfOChGroupSrcCurrentLowOutputPower,
    optIfOChGroupSrcCurrentHighOutputPower,
    optIfOChGroupSrcCurrentAggregatedInputPower,
    optIfOChGroupSrcCurrentLowAggregatedInputPower,
    optIfOChGroupSrcCurrentHighAggregatedInputPower,
    optIfOChGroupSrcIntervalSuspectedFlag,
    optIfOChGroupSrcIntervalLastOutputPower,
    optIfOChGroupSrcIntervalLowOutputPower,
    optIfOChGroupSrcIntervalHighOutputPower,
    optIfOChGroupSrcIntervalLastAggregatedInputPower,
    optIfOChGroupSrcIntervalLowAggregatedInputPower,
    optIfOChGroupSrcIntervalHighAggregatedInputPower,
    optIfOChGroupSrcCurDaySuspectedFlag,
    optIfOChGroupSrcCurDayLowOutputPower,
    optIfOChGroupSrcCurDayHighOutputPower,
    optIfOChGroupSrcCurDayLowAggregatedInputPower,
    optIfOChGroupSrcCurDayHighAggregatedInputPower,
    optIfOChGroupSrcPrevDaySuspectedFlag,
    optIfOChGroupSrcPrevDayLastOutputPower,
    optIfOChGroupSrcPrevDayLowOutputPower,
    optIfOChGroupSrcPrevDayHighOutputPower,
    optIfOChGroupSrcPrevDayLastAggregatedInputPower,
    optIfOChGroupSrcPrevDayLowAggregatedInputPower,
    optIfOChGroupSrcPrevDayHighAggregatedInputPower
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OChGroup interfaces that
     support source functions."
  ::= { optIfGroups 22 }
optIfOChGroupSourcePreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChGroupSrcCurrentLowerOutputPowerThreshold,
    optIfOChGroupSrcCurrentUpperOutputPowerThreshold,
    optIfOChGroupSrcCurrentLowerInputPowerThreshold,
    optIfOChGroupSrcCurrentUpperInputPowerThreshold
    }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OChGroup interfaces that
     that support source functions."
  ::= { optIfGroups 23 }

optIfOChCommonGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChDirectionality
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OCh interfaces."
  ::= { optIfGroups 24 }

optIfOChSinkGroupBasic OBJECT-GROUP
  OBJECTS  {
    optIfOChCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OCh interfaces that
     support sink functions."
  ::= { optIfGroups 25 }

optIfOChSinkPreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChSinkCurrentSuspectedFlag,
    optIfOChSinkCurrentInputPower,
    optIfOChSinkCurrentLowInputPower,
    optIfOChSinkCurrentHighInputPower,
    optIfOChSinkIntervalSuspectedFlag,
    optIfOChSinkIntervalLastInputPower,
    optIfOChSinkIntervalLowInputPower,
    optIfOChSinkIntervalHighInputPower,
    optIfOChSinkCurDaySuspectedFlag,
    optIfOChSinkCurDayLowInputPower,
    optIfOChSinkCurDayHighInputPower,
    optIfOChSinkPrevDaySuspectedFlag,
    optIfOChSinkPrevDayLastInputPower,
    optIfOChSinkPrevDayLowInputPower,
    optIfOChSinkPrevDayHighInputPower
     }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OCh interfaces that
     support sink functions."
  ::= { optIfGroups 26 }

optIfOChSinkPreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChSinkCurrentLowerInputPowerThreshold,
    optIfOChSinkCurrentUpperInputPowerThreshold
     }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OCh interfaces
     that support sink functions."
  ::= { optIfGroups 27 }

optIfOChSourcePreOtnPMGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChSrcCurrentSuspectedFlag,
    optIfOChSrcCurrentOutputPower,
    optIfOChSrcCurrentLowOutputPower,
    optIfOChSrcCurrentHighOutputPower,
    optIfOChSrcIntervalSuspectedFlag,
    optIfOChSrcIntervalLastOutputPower,
    optIfOChSrcIntervalLowOutputPower,
    optIfOChSrcIntervalHighOutputPower,
    optIfOChSrcCurDaySuspectedFlag,
    optIfOChSrcCurDayLowOutputPower,
    optIfOChSrcCurDayHighOutputPower,
    optIfOChSrcPrevDaySuspectedFlag,
    optIfOChSrcPrevDayLastOutputPower,
    optIfOChSrcPrevDayLowOutputPower,
    optIfOChSrcPrevDayHighOutputPower
     }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     objects applicable to OCh interfaces that
     support source functions."
  ::= { optIfGroups 28 }

optIfOChSourcePreOtnPMThresholdGroup OBJECT-GROUP
  OBJECTS  {
    optIfOChSrcCurrentLowerOutputPowerThreshold,
    optIfOChSrcCurrentUpperOutputPowerThreshold
     }
  STATUS  current
  DESCRIPTION
    "A collection of pre-OTN performance monitoring
     threshold objects applicable to OCh interfaces
     that support source functions."
  ::= { optIfGroups 29 }

optIfOTUkCommonGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTUkDirectionality,
    optIfOTUkBitRateK
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all OTUk interfaces."
  ::= { optIfGroups 30 }

optIfOTUkSourceGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTUkTraceIdentifierTransmitted,
    optIfOTUkSourceAdaptActive
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to OTUk interfaces that
     support source functions."
  ::= { optIfGroups 31 }

optIfOTUkSinkGroup OBJECT-GROUP
  OBJECTS  {
    optIfOTUkDAPIExpected,
    optIfOTUkSAPIExpected,
    optIfOTUkTraceIdentifierAccepted,
    optIfOTUkTIMDetMode,
    optIfOTUkTIMActEnabled,
    optIfOTUkDEGThr,
    optIfOTUkDEGM,
    optIfOTUkSinkAdaptActive,
    optIfOTUkSinkFECEnabled,
    optIfOTUkCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to OTUk interfaces that
     support sink functions."
  ::= { optIfGroups 32 }

optIfGCC0Group OBJECT-GROUP
  OBJECTS  {
    optIfGCC0Application,
    optIfGCC0RowStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of GCC0 configuration objects."
  ::= { optIfGroups 33 }

optIfODUkGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkDirectionality,
    optIfODUkBitRateK,
    optIfODUkTcmFieldsInUse,
    optIfODUkPositionSeqCurrentSize,
    optIfODUkPositionSeqPosition,
    optIfODUkPositionSeqPointer,
    optIfODUkTtpPresent
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all ODUk interfaces."
  ::= { optIfGroups 34 }

optIfODUkTtpSourceGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTtpTraceIdentifierTransmitted
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all interfaces that support
     ODUk trail termination source functions."
  ::= { optIfGroups 35 }

optIfODUkTtpSinkGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTtpDAPIExpected,
    optIfODUkTtpSAPIExpected,
    optIfODUkTtpTraceIdentifierAccepted,
    optIfODUkTtpTIMDetMode,
    optIfODUkTtpTIMActEnabled,
    optIfODUkTtpDEGThr,
    optIfODUkTtpDEGM,
    optIfODUkTtpCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of ODUk configuration objects
     applicable to all interfaces that support
     ODUk trail termination sink functions."
  ::= { optIfGroups 36 }

optIfODUkNimGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkNimDAPIExpected,
    optIfODUkNimSAPIExpected,
    optIfODUkNimTraceIdentifierAccepted,
    optIfODUkNimTIMDetMode,
    optIfODUkNimTIMActEnabled,
    optIfODUkNimDEGThr,
    optIfODUkNimDEGM,
    optIfODUkNimCurrentStatus,
    optIfODUkNimRowStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of ODUk Nim configuration objects."
  ::= { optIfGroups 37 }

optIfGCC12Group OBJECT-GROUP
  OBJECTS  {
    optIfGCC12GCCPassThrough,
    optIfGCC12Application,
    optIfGCC12RowStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of GCC12 configuration objects."
  ::= { optIfGroups 38 }

optIfODUkTCommonGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTRowStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all ODUkT instances."
  ::= { optIfGroups 39 }

optIfODUkTSourceGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTTraceIdentifierTransmitted,
    optIfODUkTSourceLockSignalAdminState
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all ODUkT instances
     that provide source functions."
  ::= { optIfGroups 40 }

optIfODUkTSinkGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTDAPIExpected,
    optIfODUkTSAPIExpected,
    optIfODUkTTraceIdentifierAccepted,
    optIfODUkTTIMDetMode,
    optIfODUkTTIMActEnabled,
    optIfODUkTDEGThr,
    optIfODUkTDEGM,
    optIfODUkTCurrentStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to all ODUkT instances
     that provide sink functions."
  ::= { optIfGroups 41 }

optIfODUkTSinkGroupCtp OBJECT-GROUP
  OBJECTS  {
    optIfODUkTSinkMode,
    optIfODUkTSinkLockSignalAdminState
    }
  STATUS  current
  DESCRIPTION
    "A collection of configuration objects
     applicable to ODUkT instances not
     colocated with an ODUk TTP that
     provide sink functions."
  ::= { optIfGroups 42 }

optIfODUkTNimGroup OBJECT-GROUP
  OBJECTS  {
    optIfODUkTNimDAPIExpected,
    optIfODUkTNimSAPIExpected,
    optIfODUkTNimTraceIdentifierAccepted,
    optIfODUkTNimTIMDetMode,
    optIfODUkTNimTIMActEnabled,
    optIfODUkTNimDEGThr,
    optIfODUkTNimDEGM,
    optIfODUkTNimCurrentStatus,
    optIfODUkTNimRowStatus
    }
  STATUS  current
  DESCRIPTION
    "A collection of ODUkT Nim configuration objects."
  ::= { optIfGroups 43 }

-- compliance specifications

okay bestie, that's the whole OCh and ODUk group lineup πŸ¦‹βœ¨ the compliance specifications are coming up next, and they're giving final boss energy πŸ’…πŸŒΈ

Okay bestie, this is the compliance statement for the OTN configuration functions, so it's basically the checklist for which groups an implementation has to ship. Here's the whole block, exactly as it's written πŸ’…βœ¨

optIfOtnConfigCompl MODULE-COMPLIANCE
  STATUS  current
  DESCRIPTION
    "Implementation requirements for the OTN configuration
     functions defined in this MIB module."

  MODULE -- this module

    MANDATORY-GROUPS  {
      optIfOTMnGroup,
      optIfOTSnCommonGroup
      }

    GROUP  optIfOTSnSourceGroupFull
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) for which the corresponding
       instance of optIfOTSnDirectionality has the value
       source(2) or bidirectional(3), the corresponding
       instance of optIfOTMnReduced has the value false(2),
       and the corresponding instance of optIfOTMnInterfaceType
       specifies an OTMn interface type of 'IaDI'."

    GROUP  optIfOTSnAPRStatusGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) that support Automatic Power
       Reduction functions."

    GROUP  optIfOTSnAPRControlGroup
    DESCRIPTION
      "This group is optional, but is recommended for interfaces
       of ifType opticalTransport(196) that provide Automatic
       Power Reduction control functions."

    GROUP  optIfOTSnSinkGroupBasic
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) for which the corresponding
       instance of optIfOTSnDirectionality has the value
       sink(1) or bidirectional(3)."

    GROUP  optIfOTSnSinkGroupFull
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) for which the corresponding
       instance of optIfOTSnDirectionality has the value
       sink(1) or bidirectional(3), the corresponding
       instance of optIfOTMnReduced has the value false(2),
       and the corresponding instance of optIfOTMnInterfaceType
       specifies an OTMn interface type of 'IaDI'."

    GROUP  optIfOMSnCommonGroup
    DESCRIPTION

      "This group is mandatory for interfaces of ifType
       opticalTransport(196) that support access to the OMS
       overhead information within the OTN Supervisory Channel."

    GROUP  optIfOMSnSinkGroupBasic
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) that support access to the OMS Overhead
       information within the OSC (OTN Supervisory Channel)
       for which the corresponding
       instance of optIfOMSnDirectionality has the value
       sink(1) or bidirectional(3)."

    GROUP  optIfOChGroupCommonGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannelGroup(219)."

    GROUP  optIfOChCommonGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(195)."

    GROUP  optIfOChSinkGroupBasic
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) for which the corresponding
       instance of optIfOChDirectionality has the value
       sink(1) or bidirectional(3)."

    GROUP  optIfOTUkCommonGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support OTUk layer functions."

    GROUP  optIfOTUkSourceGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support OTUk layer functions
       and for which the corresponding instance of
       optIfOTUkDirectionality has the value source(2) or
       bidirectional(3)."

    GROUP  optIfOTUkSinkGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support OTUk layer functions
       and for which the corresponding instance of
       optIfOTUkDirectionality has the value sink(1) or
       bidirectional(3)."

    GROUP  optIfGCC0Group
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support GCC0 access functions.
       It may be implemented only if the optIfOTUkCommonGroup
       is also implemented."

    GROUP  optIfODUkGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support ODUk layer functions."

    GROUP  optIfODUkTtpSourceGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) for which the corresponding
       instance of optIfODUkTtpPresent has the value
       true(1) and for which the corresponding instance of
       optIfODUkDirectionality has the value source(2) or
       bidirectional(3).  It may be implemented only if the
       optIfODUkGroup is also implemented."

    GROUP  optIfODUkTtpSinkGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) for which the corresponding
       instance of optIfODUkTtpPresent has the value
       true(1) and for which the corresponding instance of
       optIfODUkDirectionality has the value sink(1) or
       bidirectional(3).  It may be implemented only if the
       optIfODUkGroup is also implemented."

    GROUP  optIfODUkNimGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) for which the corresponding
       instance of optIfODUkTtpPresent has the value
       false(2).  It may be implemented only if the
       optIfODUkGroup is also implemented."

    GROUP  optIfGCC12Group
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support GCC12 access functions.
       It may be implemented only if the optIfODUkGroup
       is also implemented."

    GROUP  optIfODUkTCommonGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support intrusive
       tandem connection monitoring.  It may be implemented
       only if the optIfODUkGroup is also implemented."

    GROUP  optIfODUkTSourceGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support intrusive
       tandem connection monitoring and for which
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value false(2), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value true(1).
       It may be implemented only if the optIfODUkGroup is
       also implemented."

    GROUP  optIfODUkTSinkGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support intrusive
       tandem connection monitoring and for which
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value true(1), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value false(2).
       It may be implemented only if the optIfODUkGroup is
       also implemented."

    GROUP  optIfODUkTSinkGroupCtp
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support intrusive
       tandem connection monitoring and for which
       optIfODUkTtpPresent is false(2) and
       (i) optIfODUkDirectionality has the value bidirectional(3), or
       (ii) optIfODUkDirectionality has the value sink(1) and
            optIfODUkTCodirectional has the value true(1), or
       (iii) optIfODUkDirectionality has the value source(3) and
             optIfODUkTCodirectional has the value false(2).
       It may be implemented only if the optIfODUkGroup and
       optIfODUkTSinkGroup are also implemented."

    GROUP  optIfODUkTNimGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support non-intrusive
       tandem connection monitoring.  It may be implemented
       only if the optIfODUkGroup is also implemented."

  ::= { optIfCompl 1 }

Okay bestie, this part is all about the pre-OTN performance monitoring compliance checklist πŸ’… and then the security section, which is seriously important πŸ”’ Let's go!

optIfPreOtnPMCompl MODULE-COMPLIANCE
  STATUS  current
  DESCRIPTION
    "Implementation requirements for Pre-OTN performance
     monitoring functions defined in this MIB module."

  MODULE  -- this module

    MANDATORY-GROUPS  {
      optIfPerfMonGroup
      }

    GROUP  optIfOTSnSinkPreOtnPMGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) that support OTSn sink
       functions (i.e., for which the corresponding instance
       of optIfOTSnDirectionality -- if implemented -- has
       the value sink(1) or bidirectional(3))."

    GROUP  optIfOTSnSinkPreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOTSnSinkPreOtnPMGroup is a prerequisite for
       implementing this group"

    GROUP  optIfOTSnSourcePreOtnPMGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalTransport(196) that support OTSn source
       functions (i.e., for which the corresponding instance
       of optIfOTSnDirectionality -- if implemented -- has
       the value source(2) or bidirectional(3))."

    GROUP  optIfOTSnSourcePreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOTSnSourcePreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOMSnSinkPreOtnPMGroup
    DESCRIPTION
      "This group is optional.  It may be implemented by systems
       with the necessary instrumentation on interfaces of ifType
       opticalTransport(196) that support OMSn sink functions
       (i.e., for which the corresponding instance of
       optIfOMSnDirectionality -- if implemented -- has the value
       sink(1) or bidirectional(3))."

    GROUP  optIfOMSnSinkPreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOMSnSinkPreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOMSnSourcePreOtnPMGroup
    DESCRIPTION
      "This group is optional.  It may be implemented by systems
       with the necessary instrumentation on interfaces of ifType
       opticalTransport(196) that support OMSn source functions
       (i.e., for which the corresponding instance of
       optIfOMSnDirectionality -- if implemented -- has the value
       source(2) or bidirectional(3))."

    GROUP  optIfOMSnSourcePreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOMSnSourcePreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOChGroupSinkPreOtnPMGroup
    DESCRIPTION
      "This group is optional.  It may be implemented by systems
       with the necessary instrumentation on interfaces of ifType
       opticalChannelGroup(219) that support OChGroup sink functions
       (i.e., for which the corresponding instance of
       optIfOChGroupDirectionality -- if implemented -- has the value
       sink(1) or bidirectional(3))."

    GROUP  optIfOChGroupSinkPreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOChGroupSinkPreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOChGroupSourcePreOtnPMGroup
    DESCRIPTION
      "This group is optional.  It may be implemented by systems
       with the necessary instrumentation on interfaces of ifType
       opticalChannelGroup(219) that support OChGroup source functions
       (i.e., for which the corresponding instance of
       optIfOChGroupDirectionality -- if implemented -- has the value
       source(2) or bidirectional(3))."

    GROUP  optIfOChGroupSourcePreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOChGroupSourcePreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOChSinkPreOtnPMGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support OCh sink functions
       (i.e., for which the corresponding instance of
       optIfOChDirectionality -- if implemented -- has the
       value sink(1) or bidirectional(3))."

    GROUP  optIfOChSinkPreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications

       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOChSinkPreOtnPMGroup is a prerequisite for
       implementing this group "

    GROUP  optIfOChSourcePreOtnPMGroup
    DESCRIPTION
      "This group is mandatory for interfaces of ifType
       opticalChannel(195) that support OCh source functions
       (i.e., for which the corresponding instance of
       optIfOChDirectionality -- if implemented -- has the
       value source(2) or bidirectional(3))."

    GROUP  optIfOChSourcePreOtnPMThresholdGroup
    DESCRIPTION
      "This group is mandatory if and only if TCA notifications
       are implemented.  If the objects of this group are instantiated
       then the implementation must also provide, in an
       enterprise MIB, suitable TCA notification definitions and
       notification control objects.  Implementation of the
       optIfOChSourcePreOtnPMGroup is a prerequisite for
       implementing this group "

  ::= { optIfCompl 2 }

END

5. Security Considerations ✨

Okay, this part is serious, so let's be real πŸ₯Ί This MIB module has a bunch of management objects with a MAX-ACCESS of read-write and/or read-create. If you write to them, it can mess up network operation, from junk performance data all the way to full-on traffic interruptions πŸ’€ So anyone using this MIB module has to be aware that doing SET operations in a non-secure environment without proper protection can really hurt network operations.

The most sensitive ones are the read-write and read-create objects listed in the optIfOtnConfigCompl compliance statement. These control the maximum number of TCM levels allowed (optIfOTMnTcmMax), automatic power reduction (optIfOTSnAprControl), transmitted trail trace (optIfOTSnTraceIdentifierTransmitted, optIfOTUkTraceIdentifierTransmitted, optIfODUkTtpTraceIdentifierTransmitted, optIfODUkTTraceIdentifierTransmitted), and expected source/destination access point identifiers (optIfOTSnDAPIExpected, optIfOTSnSAPIExpected, optIfOTUkDAPIExpected, optIfOTUkSAPIExpected, optIfODUkTtpDAPIExpected, optIfODUkTtpSAPIExpected, optIfODUkNimDAPIExpected, optIfODUkNimSAPIExpected, optIfODUkTDAPIExpected, optIfODUkTSAPIExpected, optIfODUkTNimDAPIExpected, optIfODUkTNimSAPIExpected). They also cover the trace identifier mismatch detection mode (optIfOTSnTIMDetMode, optIfOTUkTIMDetMode, optIfODUkTtpTIMDetMode, optIfODUkNimTIMDetMode, optIfODUkTTIMDetMode, optIfODUkTNimTIMDetMode), and the trace identifier mismatch consequent action (optIfOTSnTIMActEnabled, optIfOTUkTIMActEnabled, optIfODUkTtpTIMActEnabled, optIfODUkNimTIMActEnabled, optIfODUkTTIMActEnabled, optIfODUkTNimTIMActEnabled). The threshold level for declaring a PM Second to be bad is in there too (optIfOTUkDEGThr, optIfODUkTtpDEGThr, optIfODUkNimDEGThr, optIfODUkTDEGThr, optIfODUkTNimDEGThr), along with the threshold level for declaring a Degraded Signal defect (optIfOTUkDEGM, optIfODUkTtpDEGM, optIfODUkNimDEGM, optIfODUkTDEGM, optIfODUkTNimDEGM). Then there's whether the sink/source adaptation function is activated (optIfOTUkSinkAdaptActive, optIfOTUkSourceAdaptActive), whether Forward Error Correction is supported (optIfOTUkSinkFECEnabled), and the application transported by the GCC entities (optIfGCC0Application, optIfGCC12Application). Creating and deleting a conceptual row of a config table is also in the mix (optIfGCC0RowStatus, optIfODUkNimRowStatus, optIfGCC12RowStatus, optIfODUkTRowStatus, optIfODUkTNimRowStatus), plus whether the selected GCC overhead bytes are passed through or modified (optIfGCC12GCCPassThrough), the TCM mode (optIfODUkTSinkMode), and provisioning of the sink/source LOCK signal (optIfODUkTSinkLockSignalAdminState, optIfODUkTSourceLockSignalAdminState). These can cause traffic interruptions if they get set wrong, so treat them with care πŸ™ˆ

The readable objects in this MIB module (basically, the objects whose MAX-ACCESS is anything other than not-accessible) might count as sensitive in some environments. Put together, they tell you how the interfaces in OTN equipment or networks are performing, and they can reveal bits of the configuration too πŸ‘€ In those environments it's important to control even GET and NOTIFY access to these objects, and maybe encrypt their values when they travel over the network via SNMP πŸ”

SNMP versions before SNMPv3 didn't have adequate security. Even if the network itself is secure (for example, by using IPSec), there's no control over who on that secure network gets to access and GET/SET (read/change/create/delete) objects in this MIB module. Bestie, that's a big ngl 😭

It is RECOMMENDED that implementers look at the security features that the SNMPv3 framework provides (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy 🫢

Deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED that SNMPv3 be deployed and cryptographic security be enabled. After that, it's on the customer or operator to make sure the SNMP entity that gives access to an instance of this MIB module is configured properly, so that only the principals (users) with legitimate rights can actually GET or SET (change/create/delete) those objects. Main character energy for security, periodt πŸ¦‹βœ¨

6. Acknowledgements ✨

Okay bestie, this is the shoutout section 🫢 Nathan Kohn came up with the concept, then gathered and coordinated the team that led to the initial version of the MIB πŸ‘‘ Mark Stewart/Brian Teer wrote sections on use of interface tables, reviewed the MIB Object Definitions for SNMP SMIv2 compliance, and wrote the PM sections while working with G.7710/Y.1701 πŸ’… Anni Huynh wrote the initial MIB definitions for the OTN interface ✨ Tom Rutt wrote the summary section on the Structure of the MIB πŸ¦‹ Rishi Grover contributed to the objects to monitor banded amplifiers 🌈 Kam Lam wrote the sections on Optical Networking Terminology and the OTN layers configuration parameters, and was the editor for the last several versions of this document. Iconic behavior, honestly 😭

Thanks to Maarten Vissers for providing insight into Optical Networking concepts 🌸 Thanks to Lakshmi Raman and Moshe Rozenblit for reviewing and commenting on a preliminary version of the document πŸ’œ

Special thanks to C. Mike Heard for providing a top notch doctor review and many helpful suggestions to improve the MIB πŸ”₯πŸ”₯


7. References

7.1. Normative References

These are the big ones the document leans on, so no skipping πŸ“š

[RFC1213]       McCloghrie, K. and M. Rose, "Management Information
                Base for Network Management of TCP/IP-based
                internets: MIB-II", STD 17, RFC 1213, March 1991.

[RFC2578]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M. and S. Waldbusser, "Structure of
                Management Information Version 2 (SMIv2)", STD 58,
                RFC 2578, April 1999.

[RFC2579]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M. and S. Waldbusser, "Textual Conventions
                for SMIv2", STD 58, RFC 2579, April 1999.

[RFC2580]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M. and S. Waldbusser, "Conformance
                Statements for SMIv2", STD 58, RFC 2580, April 1999.

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

[RFC3411]       Harrington, D., Presuhn, R. and B. Wijnen, "An
                Architecture for Describing Simple Network Management
                Protocol (SNMP) Management Frameworks", STD 62, RFC
                3411, December 2002.

[RFC3418]       Presuhn, R., "Management Information Base (MIB) for
                the Simple Network Management Protocol (SNMP)", STD
                62, RFC 3418, December 2002.

[ITU-T G.709]   ITU-T Recommendation G.709/Y.1331, "Network Node
                Interface for the Optical Transport Network (OTN)",
                (2/2001).

[ITU-T G.798]   ITU-T Recommendation G.798, "Characteristics of
                Optical Transport Network Hierarchy Equipment
                Functional Blocks", (1/2002).

[ITU-T G.872]   ITU-T Recommendation G.872, "Architecture of optical
                transport networks", (11/2001).

[ITU-T G.874]   ITU-T Recommendation G.874, "Management aspects of
                the optical transport network element", (12/2001).

[ITU-T G.874.1] ITU-T Recommendation G.874.1, "OTN Protocol-neutral
                Management Information Model for the NE View",
                (1/2002).

[ITU-T G.7710]  ITU-T Recommendation G.7710/Y.1701, "Common Equipment
                Management Function Requirements", (12/2001)

[ITU-T G.806]   ITU-T Recommendation G.806, "Characteristics of
                Transport Equipment - Description methodology and
                generic functionality", (10/2000).

[ITU-T G.957]   ITU-T Recommendation G.957, "Optical interfaces for
                equipments and systems relating to the synchronous
                digital hierarchy", (7/1999).

[ITU-T G.691]   ITU-T Recommendation G.691, "Optical interfaces for
                single-channel STM-64, STM-256 and other SDH systems
                with optical amplifiers", (10/200).

7.2. Informative References

Extra reading if you want to go deeper 🧚

[RFC3410]       Case, J., Mundy, R., Partain, D. and B. Stewart,
                "Introduction and Applicability Statements for
                Internet-Standard Management Framework", RFC 3410,
                December 2002.

[RFC3433]       Bierman, A., Romascanu, D. and K. C. Norseth, "Entity
                Sensor Management Information Base", RFC 3433,
                December 2002.

8. Intellectual Property Statement

Now the legal bit, which I'm keeping word for word so nothing gets lost in translation 🫢 Here's the official text:

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights.  Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11.  Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementers or users of this specification can
be obtained from the IETF Secretariat.

The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard.  Please address the information to the IETF Executive
Director.

9. Authors' Addresses

Who to contact about all this πŸ’Œ

Mark A. Stewart
Senior Systems Analyst
Raleigh, NC
USA

EMail: mstewart1@nc.rr.com


An-ni Huynh
Cetus Networks
USA

EMail: a_n_huynh@yahoo.com


Hing-Kam Lam
Lucent Technologies
101 Crawfords Corner Road, Room 4C-616A
Holmdel, NJ 07733
USA

Phone: +1 732-949-8338
EMail: hklam@lucent.com

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

The official copyright text is below, kept exactly as written because the wording matters πŸ’œ

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

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

Last but not least, the funding note πŸŽ€

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

πŸ“¦ where this page comes from