RFC 3440

Definitions of Extension Managed Objects for Asymmetric Digital Subscriber Lines

๐Ÿ“… published January 2003, from ietf

RFC 3440: Definitions of Extension Managed Objects for Asymmetric Digital Subscriber Lines ๐Ÿฆ‹

Okay bestie, this one is from the Network Working Group ๐Ÿ’– and it's written by F. Ly (Pedestal Networks) and G. Bathrick (Nokia). It's a Standards Track doc, dated December 2002. Its header doesn't list anything it obsoletes or updates, so it's standing on its own โœจ

Status of this Memo ๐Ÿ“œ

This document specifies an Internet standards track protocol for the Internet community, and it's asking 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 ๐ŸŒˆ

Copyright (C) The Internet Society (2002). All Rights Reserved. ๐Ÿ”’

Abstract ๐Ÿงš

This memo defines a piece of the Management Information Base (MIB) for network management protocols in the Internet community ๐ŸŒธ Specifically, it describes extra managed objects for Asymmetric Digital Subscriber Line (ADSL) interfaces that the ADSL Line MIB (RFC 2662) doesn't cover. So it's the sequel nobody asked for but everybody needed ๐Ÿ’…

Table of Contents ๐Ÿ—‚๏ธ

1.  The Internet-Standard Management Framework ................. 2
2.  Introduction ............................................... 2
3.  Relationship of ADSL LINE EXTENSION MIB with standard MIBs . 2
4.  Conventions used in the MIB ................................ 2
5.  Conformance and Compliance ................................. 6
6.  Definitions ................................................ 6
7.  Acknowledgments ............................................31
8.  References .................................................31
9.  Security Considerations ....................................32
10. Intellectual Property Notice ...............................34
11. Authors' Addresses .........................................35
12. Full Copyright Statement ...................................36

1. The Internet-Standard Management Framework ๐ŸŒŸ

Okay so if you want the full tea on the current Internet-Standard Management Framework, go read section 7 of RFC 3410 [RFC3410] ๐Ÿ“š It's the main character of the framework docs โœจ

Managed objects get accessed through a virtual information store called the Management Information Base, or MIB ๐Ÿซง Most of the time you reach MIB objects through the Simple Network Management Protocol (SNMP). The objects inside the MIB are defined using the Structure of Management Information (SMI) mechanisms. This memo specifies a MIB module that is compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] ๐ŸŽ€

2. Introduction ๐Ÿ“

The whole point of this memo is to define a supplemental set of managed objects that the ADSL Line MIB doesn't cover (see [RFC2662]) โœจ It's giving "the extra stuff you actually need." These additional objects come from ITU G.997.1 [ITU G.997.1] ๐Ÿ’–

3. Relationship of ADSL Line Extension MIB with standard MIBs ๐Ÿฆ‹

This section explains how the ADSL Line Extension MIB gets along with the other MIBs described in RFCs, which all have different levels of standardization ๐ŸŒˆ The ADSL Line Extension MIB basically follows the same conventions as the ADSL Line MIB, with one exception ๐Ÿ‘‘

That exception is about the RFC 2863 object ifOperstatus. It SHALL be down(2) when the ADSL line interface is in power state L3, which is defined in ITU G.992.1 [ITU G.992.1] and means no power at all ๐Ÿฅถ When the interface is in power state L0 (power on) [ITU G.992.1] or L1 (reduced power), its value shall be up(1). Power Status L2 [ITU G.992.1] doesn't apply here, so it's a no-show ๐Ÿ™ˆ

4. Conventions used in the MIB ๐ŸŽ€

4.1. Structure ๐Ÿงฉ

The MIB follows the same structure as the ADSL Line MIB [RFC2662]. Same vibes, same layout, zero surprises ๐Ÿ’…

4.2. Additional Managed Objects โœจ

Here are the objects for managing ADSL G.Lite, as defined in ITU G.992.2 [ITU G.992.2] ๐ŸŒธ

  • ADSL Transceiver Unit - Central Office End (ATU-C) Transmission System and Line Mode
  • Power Management
  • Counters for Fast Retrains and Failed Fast Retrains
  • Counters for Severe Error Second-line and Unavailable Second
  • Alternative profile configuration for the Dual line mode interface

On top of managing G.Lite, another object got added so you can manage the ADSL line profile. That object is the line mode configuration ๐Ÿซถ

4.2.1. ATU-C ADSL Transmission System Parameters and Line Mode ๐Ÿ”ฅ

The adslLineConfigTable needs an upgrade so it can control the ATU-C ADSL Transmission System ๐Ÿ’– Three objects get defined to monitor and configure the transmission mode, plus the actual line mode:

  • Capability
  • Configuration
  • Actual Status

The transmission mode can also determine the line mode of the ADSL interface. For example, if g9921PotsNonOverlapped(2) is the actual value, the interface is running Full rate ADSL. If it's set to g9922PotsOverlapped(9), the interface is in G.Lite mode ๐Ÿฆ‹

Here's how the transmission modes line up with the line modes:

     Transmission mode                        Line Mode
     ----------------------------------------------------------
     Regional Std. (ANSI T1.413)              Full
        [ANSI T1.413]
     Regional Std. (ETSI DTS/TM06006)         Full
        [ETSI DTS/TM06006]
     G.992.1 [ITU G992.1] POTS non-overlapped Full
     G.992.1 POTS overlapped                  Full
     G.992.1 Integrated Services Digital
        Network (ISDN) non-overlapped         Full
     G.992.1 ISDN overlapped                  Full
     G.992.1 TCM-ISDN non-overlapped          Full
     G.992.1 TCM-ISDN overlapped              Full
     G.992.2 POTS non-overlapped              G.Lite
     G.992.2 POTS overlapped                  G.Lite
     G.992.2 with TCM-ISDN                    G.Lite
         non-overlapped
     G.992.2 with TCM-ISDN overlapped         G.Lite
     G.992.1 TCM-ISDN symmetric               Full

             Table 1: Transmission Mode and Line Mode

If more than one bit is configured for an ADSL interface and both Full and G.Lite modes are selected, the interface is said to be configured in dual mode ๐ŸŒˆ Only one bit can be set in the Actual object, and it reflects the actual transmission mode as well as the line mode ๐Ÿซง

4.2.2. Power Management ๐Ÿ”‹

Each managed ADSL interface running in G.Lite mode has three possible power states. L0 is power on, L1 is power on but reduced, and L3 is power off ๐ŸŒ™ An operator can't configure the power state, but they can view it through the ifOperStatus object for the managed ADSL interface. ifOperStatus is set to down(2) if the interface is in power state L3, and to up(1) if the ADSL line interface is in power state L0 or L1 โœจ

If the interface is running in G.Lite mode, the power state can also be monitored with the adslLineGlitePowerState object, which is defined in the ADSL Line Extension table. Its value enumerates the three power states the managed interface can reach ๐Ÿ’…

4.2.3. Fast Retrain Parameters โšก

Section 7.4.15 [ITU G.997.1] specifies the fast retrain parameters. They include two counters: the fast retrain count and the failed fast retrain count. Both counters have been added to all performance tables ๐Ÿ“Š

4.2.4. Counters for Severely Errored Second-line and Unavailable Seconds-line ๐Ÿ™ƒ

ITU G.997.1 sections 6.2.1.1.7 and 6.2.1.1.9 specify two counters that the ADSL Line MIB [RFC2662] doesn't cover ๐Ÿซถ These two counters, severely errored seconds-line and unavailable seconds-line, get added to all the performance tables ๐Ÿ’–

Unavailable seconds counts the cumulative seconds in which the interface was unavailable during the measured period. The count does not include seconds where the unavailability was caused solely by fast retrains and failed fast retrains. Fast retrains and failed fast retrains are considered part of normal network operation, so they don't count as unavailable errors ๐ŸŒธ

4.2.5. Counters, Interval Buckets and Thresholds ๐Ÿชฃ

For physical-level events, there are counters: a current 15-minute bucket, one (up to 96) 15-minute history bucket(s) of "interval-counters", and current and previous 1-day interval-counters ๐Ÿงฎ Threshold notification can be configured for each physical-layer current 15-minute bucket โฐ

There is no requirement for an agent to keep a fixed relationship between the start of a fifteen-minute interval and any wall clock ๐Ÿ•ฐ๏ธ Some implementations may still align the fifteen-minute intervals with quarter hours, and an implementation may also choose to align one-day intervals with the start of a day ๐ŸŒ…

The 96 interval-counters get their own separate tables, indexed by {ifIndex, AdslAtu*IntervalNumber} ๐Ÿ“‹

Counters are not reset when an ATU-C or ATU-R is reinitialized. They only reset when the agent is reset or reinitialized, or under a specific request that falls outside the scope of this MIB ๐Ÿ”„

The 15-minute event counters are of the types PerfCurrentCount and PerfIntervalCount. The 1-day event counters are of the types AdslPerfCurrDayCount and AdslPerfPrevDayCount. Both the 15-minute and 1-day time elapsed counters are of the type AdslPerfTimeElapsed โณ

4.2.6. Alternative profile configuration for the dual line mode interface ๐Ÿง

The object adslLineConfProfileDualLite is only used when the interface (the ADSL line and, if applicable, the channel) is configured as dual mode. In other words, adslLineTransAtucConfig is configured with one or more full-rate modes and one or more G.Lite modes ๐Ÿฆ‹

The object adslLineConfProfile, defined in ADSL-MIB [RFC2662], is used as the primary full-rate profile. The newly added object in this MIB module, adslLineConfProfileDualLite, is used to describe and configure the G.Lite profile ๐Ÿ’… If only full-rate modes are configured, or only G.Lite modes are configured, you only need the original full-rate profile. The dual-mode profile object is only needed when both full-rate and G.Lite profiles are needed. In that case, it gets set to the value of adslLineConfProfile when 'dynamic' profiles are implemented ๐ŸŒˆ

When 'static' profiles are implemented, though, the object works like adslLineConfProfileName [RFC2662] and has to algorithmically represent the line ๐Ÿง  Its value is the line's ifIndex plus a value that indicates the line mode type (for example, G.Lite or Full-rate). So the profile's name is a string made by concatenating the ifIndex with either Full or Lite. This string is fixed-length (that means 14 characters) with leading zero(s). For example, the profile name for an ifIndex equal to '15' on a full rate line is '0000000015Full' ๐Ÿซถ

5. Conformance and Compliance ๐Ÿ“œ

See the conformance and compliance statements within the information module ๐ŸŽ€

6. Definitions ๐Ÿ’œ

The MIB module kicks off like this:

ADSL-LINE-EXT-MIB DEFINITIONS ::= BEGIN

okay the IMPORTS list is basically the guest list for this whole MIB ๐Ÿ’… we're pulling stuff in from SNMPv2-SMI, SNMPv2-CONF, SNMPv2-TC, PerfHist-TC-MIB, ADSL-TC-MIB, SNMP-FRAMEWORK-MIB and ADSL-LINE-MIB ๐ŸŽ€

   IMPORTS
      Counter32,
      Integer32,
      NOTIFICATION-TYPE,
      MODULE-IDENTITY,
      OBJECT-TYPE                       FROM SNMPv2-SMI
      MODULE-COMPLIANCE, OBJECT-GROUP,
      NOTIFICATION-GROUP                FROM SNMPv2-CONF
      TEXTUAL-CONVENTION                FROM SNMPv2-TC
      PerfCurrentCount,
      PerfIntervalCount                 FROM PerfHist-TC-MIB
      AdslPerfCurrDayCount,
      AdslPerfPrevDayCount              FROM ADSL-TC-MIB
      SnmpAdminString                   FROM SNMP-FRAMEWORK-MIB
      adslLineAlarmConfProfileEntry,
      adslLineConfProfileEntry,
      adslAturIntervalEntry,
      adslAturPerfDataEntry,
      adslAtucIntervalEntry,
      adslAtucPerfDataEntry,
      adslLineEntry,
      adslMIB                           FROM ADSL-LINE-MIB
      ;

okay so this next bit is the MIB's ID card ๐Ÿชช it's got the LAST-UPDATED date, who to contact, the copyright note, and the revision history ๐ŸŒธ it also says this module is a supplement to the ADSL-LINE-MIB [RFC2662] and it lives under adslMIB as number 3 โœจ

   adslExtMIB MODULE-IDENTITY

   LAST-UPDATED "200212100000Z"  -- 10 Dec 2002

   ORGANIZATION "IETF ADSL MIB Working Group"

   CONTACT-INFO
         "
          Faye Ly
          Pedestal Networks
          6503 Dumbarton Circle,
          Fremont, CA 94555
          Tel: +1 510-578-0158
          Fax: +1 510-744-5152
          E-Mail: faye@pedestalnetworks.com

          Gregory Bathrick
          Nokia Networks
          2235 Mercury Way,
          Fax: +1 707-535-7300
          E-Mail: greg.bathrick@nokia.com

          General Discussion:adslmib@ietf.org
          To Subscribe: https://www1.ietf.org/mailman/listinfo/adslmib
          Archive: https://www1.ietf.org/mailman/listinfo/adslmib
          "
   DESCRIPTION
           "Copyright (C) The Internet Society (2002). This version of
           this MIB module is part of RFC 3440; see the RFC itself for
           full legal notices.

           This MIB Module is a supplement to the ADSL-LINE-MIB
           [RFC2662]."

   REVISION     "200212100000Z"  -- 10 dec 2002
   DESCRIPTION  "Initial Version, published as RFC 3440. This MIB
                 module supplements the ADSL-LINE-MIB [RFC2662]."
          ::= { adslMIB 3 }

       adslExtMibObjects  OBJECT IDENTIFIER ::= { adslExtMIB 1 }

next up is the AdslTransmissionModeType textual convention ๐Ÿฆ‹ it's a bitmask, so each bit is one transmission mode, and the notes (F) and (L) just flag Full-Rate and G.Lite โœจ

       AdslTransmissionModeType ::= TEXTUAL-CONVENTION
           STATUS       current
           DESCRIPTION
               "A set of ADSL line transmission modes, with one bit
                per mode.  The notes (F) and (L) denote Full-Rate
                and G.Lite respectively:
                  Bit 00 : Regional Std. (ANSI T1.413) (F)
                  Bit 01 : Regional Std. (ETSI DTS/TM06006) (F)
                  Bit 02 : G.992.1 POTS non-overlapped (F)
                  Bit 03 : G.992.1 POTS overlapped (F)
                  Bit 04 : G.992.1 ISDN non-overlapped (F)
                  Bit 05 : G.992.1 ISDN overlapped (F)
                  Bit 06 : G.992.1 TCM-ISDN non-overlapped (F)
                  Bit 07 : G.992.1 TCM-ISDN overlapped (F)
                  Bit 08 : G.992.2 POTS non-overlapped (L)
                  Bit 09 : G.992.2 POTS overlapped (L)
                  Bit 10 : G.992.2 with TCM-ISDN non-overlapped (L)
                  Bit 11 : G.992.2 with TCM-ISDN overlapped (L)
                  Bit 12 : G.992.1 TCM-ISDN symmetric (F)
               "
           SYNTAX      BITS {
               ansit1413(0),
               etsi(1),
               q9921PotsNonOverlapped(2),
               q9921PotsOverlapped(3),
               q9921IsdnNonOverlapped(4),
               q9921isdnOverlapped(5),
               q9921tcmIsdnNonOverlapped(6),
               q9921tcmIsdnOverlapped(7),
               q9922potsNonOverlapeed(8),
               q9922potsOverlapped(9),
               q9922tcmIsdnNonOverlapped(10),
               q9922tcmIsdnOverlapped(11),
               q9921tcmIsdnSymmetric(12)
           }

this is the table that's the main character of the whole extension ๐Ÿ‘‘ it's adslLineExtTable, and each row (adslLineExtEntry) AUGMENTS an adslLineEntry from RFC 2662, so one row per ADSL line ๐Ÿ’–

         adslLineExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslLineExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION

                 "This table is an extension of RFC 2662.  It
                  contains ADSL line configuration and
                  monitoring information. This includes the ADSL
                  line's capabilities and actual ADSL transmission
                  system."
         ::= { adslExtMibObjects 17 }

         adslLineExtEntry   OBJECT-TYPE
             SYNTAX          AdslLineExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "An entry extends the adslLineEntry defined in
                  [RFC2662].  Each entry corresponds to an ADSL
                  line."
             AUGMENTS { adslLineEntry }
         ::= { adslLineExtTable 1 }

         AdslLineExtEntry ::=
             SEQUENCE {
             adslLineTransAtucCap        AdslTransmissionModeType,
             adslLineTransAtucConfig     AdslTransmissionModeType,
             adslLineTransAtucActual     AdslTransmissionModeType,
             adslLineGlitePowerState     INTEGER,
             adslLineConfProfileDualLite SnmpAdminString
             }

now the columns ๐ŸŽ€ first up is adslLineTransAtucCap, which is the modes the ATU-C can actually do (the hardware decides that, not you bestie ๐Ÿ’…), then adslLineTransAtucConfig, which is the modes it's currently turned on for, and adslLineTransAtucActual, which is the mode that actually got used โœจ

         adslLineTransAtucCap OBJECT-TYPE
             SYNTAX      AdslTransmissionModeType
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The transmission modes, represented by a
                  bitmask that the ATU-C is capable of
                  supporting.  The modes available are limited
                  by the design of the equipment."
             REFERENCE "Section 7.3.2 ITU G.997.1"
         ::= { adslLineExtEntry 1 }

         adslLineTransAtucConfig OBJECT-TYPE
             SYNTAX      AdslTransmissionModeType
             MAX-ACCESS  read-write
             STATUS      current

             DESCRIPTION
                 "The transmission modes, represented by a bitmask,
                  currently enabled by the ATU-C.  The manager can
                  only set those modes that are supported by the
                  ATU-C.  An ATU-C's supported modes are provided by
                  AdslLineTransAtucCap."
             REFERENCE "Section 7.3.2 ITU G.997.1"
         ::= { adslLineExtEntry 2 }

         adslLineTransAtucActual OBJECT-TYPE
             SYNTAX      AdslTransmissionModeType
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The actual transmission mode of the ATU-C.
                  During ADSL line initialization, the ADSL
                  Transceiver Unit - Remote terminal end (ATU-R)
                  will determine the mode used for the link.
                  This value will be limited a single transmission
                  mode that is a subset of those modes enabled
                  by the ATU-C and denoted by
                  adslLineTransAtucConfig. After an initialization
                  has occurred, its mode is saved as the 'Current'
                  mode and is persistence should the link go
                  down. This object returns 0 (i.e. BITS with no
                  mode bit set) if the mode is not known."
             REFERENCE "Section 7.3.2 ITU G.997.1 "
         ::= { adslLineExtEntry 3 }

okay the power state one is giving main character energy ๐ŸŒˆ adslLineGlitePowerState has four values: none, L0, L1 and L3, and it's tied to ifOperStatus, so it's the link's mood ring ๐Ÿงš the mode-to-value mapping is spelled out right there in the DESCRIPTION, so read it closely, it's lowkey important ๐Ÿ™ˆ

         adslLineGlitePowerState OBJECT-TYPE
             SYNTAX      INTEGER {
                         none(1),
                         l0(2),          -- L0 Power on
                         l1(3),          -- L1 Power on but reduced
                         l3(4)           -- L3 Power off
                         }
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object specifies the power
                  state of this interface.  L0 is power on, L1 is
                  power on but reduced and L3 is power off.  Power
                  state cannot be configured by an operator but it
                  can be viewed via the ifOperStatus object for the
                  managed ADSL interface.  The value of the object
                  ifOperStatus is set to down(2) if the ADSL
                  interface is in power state L3 and is set to up(1)
                  if the ADSL line interface is in power state L0 or
                  L1. If the object adslLineTransAtucActual is set to
                  a G.992.2 (G.Lite)-type transmission mode, the
                  value of this object will be one of the valid power
                  states: L0(2), L1(3), or L3(4).  Otherwise, its
                  value will be none(1)."
         ::= { adslLineExtEntry 4 }

and then there's adslLineConfProfileDualLite ๐Ÿฆ‹ this one is for dual mode, which just means you've got full-rate and G.Lite modes enabled at the same time, and it's basically the profile name tea โ˜• the value depends on whether profiles are dynamic or static, and for static ones the name gets built from the ifIndex plus Full or Lite, always 14 characters, zero-padded ๐ŸŒธ

         adslLineConfProfileDualLite OBJECT-TYPE
             SYNTAX SnmpAdminString
             MAX-ACCESS  read-write
             STATUS current
             DESCRIPTION
                 "This object extends the definition an ADSL line and
                  associated channels (when applicable) for cases
                  when it is configured in dual mode, and operating
                  in a G.Lite-type mode as denoted by
                  adslLineTransAtucActual.  Dual mode exists when the
                  object, adslLineTransAtucConfig, is configured with
                  one or more full-rate modes and one or more G.Lite
                  modes simultaneously.

                  When 'dynamic' profiles are implemented, the value
                  of object is equal to the index of the applicable
                  row in the ADSL Line Configuration Profile Table,
                  AdslLineConfProfileTable defined in ADSL-MIB
                  [RFC2662].

                  In the case when dual-mode has not been enabled,
                  the value of the object will be equal to the value
                  of the object adslLineConfProfile [RFC2662].

                  When `static' profiles are implemented, in much
                  like the case of the object,
                  adslLineConfProfileName [RFC2662], this object's
                  value will need to algorithmically represent the
                  characteristics of the line.  In this case, the
                  value of the line's ifIndex plus a value indicating
                  the line mode type (e.g., G.Lite, Full-rate) will
                  be used. Therefore, the profile's name is a string
                  concatenating the ifIndex and one of the follow
                  values: Full or Lite. This string will be
                  fixed-length (i.e., 14) with leading zero(s).  For
                  example, the profile name for ifIndex that equals
                  '15' and is a full rate line, it will be
                  '0000000015Full'."
             REFERENCE "Section 5.4 Profiles, RFC 2662"
         ::= { adslLineExtEntry 5 }

last bit for this part is the ATU-C performance table extension ๐Ÿ“Š adslAtucPerfDataExtTable adds physical line counters like unavailable seconds-line and severely errored seconds-line on top of adslAtucPerfDataTable from RFC 2662, and each row augments adslAtucPerfDataEntry ๐ŸŽ€

         adslAtucPerfDataExtTable   OBJECT-TYPE

             SYNTAX          SEQUENCE OF AdslAtucPerfDataExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "This table extends adslAtucPerfDataTable [RFC2662]
                  with additional ADSL physical line counter
                  information such as unavailable seconds-line and
                  severely errored seconds-line."
         ::= { adslExtMibObjects 18 }

         adslAtucPerfDataExtEntry   OBJECT-TYPE
             SYNTAX          AdslAtucPerfDataExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "An entry extends the adslAtucPerfDataEntry defined
                  in [RFC2662].  Each entry corresponds to an ADSL
                  line."
         AUGMENTS { adslAtucPerfDataEntry }
         ::= { adslAtucPerfDataExtTable 1 }
         AdslAtucPerfDataExtEntry ::=
             SEQUENCE {
             adslAtucPerfStatFastR            Counter32,
             adslAtucPerfStatFailedFastR      Counter32,
             adslAtucPerfStatSesL             Counter32,
             adslAtucPerfStatUasL             Counter32,
             adslAtucPerfCurr15MinFastR       PerfCurrentCount,
             adslAtucPerfCurr15MinFailedFastR PerfCurrentCount,
             adslAtucPerfCurr15MinSesL        PerfCurrentCount,
             adslAtucPerfCurr15MinUasL        PerfCurrentCount,
             adslAtucPerfCurr1DayFastR        AdslPerfCurrDayCount,
             adslAtucPerfCurr1DayFailedFastR  AdslPerfCurrDayCount,
             adslAtucPerfCurr1DaySesL         AdslPerfCurrDayCount,
             adslAtucPerfCurr1DayUasL         AdslPerfCurrDayCount,
             adslAtucPerfPrev1DayFastR        AdslPerfPrevDayCount,
             adslAtucPerfPrev1DayFailedFastR  AdslPerfPrevDayCount,
             adslAtucPerfPrev1DaySesL         AdslPerfPrevDayCount,
             adslAtucPerfPrev1DayUasL         AdslPerfPrevDayCount
         }

         adslAtucPerfStatFastR OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "line retrains"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  the number of fast line bs since last
                  agent reset."

             REFERENCE "ITU G.997.1 Section 7.4.15.1 "
         ::= { adslAtucPerfDataExtEntry 1 }

         adslAtucPerfStatFailedFastR OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "line retrains"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  the number of failed fast line retrains since
                  last agent reset."
             REFERENCE "ITU G.997.1 Section 7.4.15.2 "
         ::= { adslAtucPerfDataExtEntry 2 }

         adslAtucPerfStatSesL OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  the number of severely errored seconds-line since
                  last agent reset."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.7 "
         ::= { adslAtucPerfDataExtEntry 3 }

         adslAtucPerfStatUasL OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  the number of unavailable seconds-line since
                  last agent reset."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.9 "
         ::= { adslAtucPerfDataExtEntry 4 }

         adslAtucPerfCurr15MinFastR OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAtucPerfCurr15MinFastR reports the current
                  number of seconds during which there have been
                  fast retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.1 "
         ::= { adslAtucPerfDataExtEntry 5 }

         adslAtucPerfCurr15MinFailedFastR   OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAtucPerfCurr15MinFailedFastR reports the
                  current number of seconds during which there
                  have been failed fast retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.2 "
         ::= { adslAtucPerfDataExtEntry 6 }

         adslAtucPerfCurr15MinSesL OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAtucPerfCurr15MinSesL reports the current
                  number of seconds during which there have been
                  severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.7 "
         ::= { adslAtucPerfDataExtEntry 7 }

         adslAtucPerfCurr15MinUasL   OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAtucPerfCurr15MinUasL reports the current
                  number of seconds during which there have been
                  unavailable seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.9 "
         ::= { adslAtucPerfDataExtEntry 8 }

         adslAtucPerfCurr1DayFastR    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAtucPerfCurr1DayTimeElapsed [RFC2662],
                  adslAtucPerfCurr1DayFastR reports the number
                  of seconds during which there have been
                  fast retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.1 "
         ::= { adslAtucPerfDataExtEntry 9 }

         adslAtucPerfCurr1DayFailedFastR    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAtucPerfCurr1DayTimeElapsed [RFC2662],
                  adslAtucPerfCurr1DayFailedFastR reports the
                  number of seconds during which there have been
                  failed fast retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.2 "
         ::= { adslAtucPerfDataExtEntry 10 }

         adslAtucPerfCurr1DaySesL    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAtucPerfCurr1DayTimeElapsed [RFC2662],
                  adslAtucPerfCurr1DaySesL reports the
                  number of seconds during which there have been
                  severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.7 "
         ::= { adslAtucPerfDataExtEntry 11 }

         adslAtucPerfCurr1DayUasL    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAtucPerfCurr1DayTimeElapsed [RFC2662],
                  adslAtucPerfCurr1DayUasL reports the
                  number of seconds during which there have been
                  unavailable seconds-line."

             REFERENCE "ITU G.997.1 Section 7.2.1.1.9 "
         ::= { adslAtucPerfDataExtEntry 12 }

         adslAtucPerfPrev1DayFastR     OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day, adslAtucPerfPrev1DayFastR
                  reports the number of seconds during which there
                  were fast retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.1 "
         ::= { adslAtucPerfDataExtEntry 13 }

         adslAtucPerfPrev1DayFailedFastR OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day,
                  adslAtucPerfPrev1DayFailedFastR reports the number
                  of seconds during which there were failed fast
                  retrains."
             REFERENCE "ITU G.997.1 Section 7.4.15.2 "
         ::= { adslAtucPerfDataExtEntry 14 }

         adslAtucPerfPrev1DaySesL     OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day, adslAtucPerfPrev1DaySesL
                  reports the number of seconds during which there
                  were severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.7 "
         ::= { adslAtucPerfDataExtEntry 15 }

         adslAtucPerfPrev1DayUasL OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day, adslAtucPerfPrev1DayUasL
                  reports the number of seconds during which there
                  were unavailable seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.9 "
         ::= { adslAtucPerfDataExtEntry 16 }

okay so the per-day stats are where it gets spicy ๐ŸŒธ the 15-minute and 1-day counters all come with their own little ITU G.997.1 reference, so you can always trace where each number came from โœจ

         adslAtucIntervalExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslAtucIntervalExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "This table provides one row for each ATU-C
                  performance data collection interval for
                  ADSL physical interfaces whose
                  IfEntries' ifType is equal to adsl(94)."
         ::= { adslExtMibObjects 19 }

         adslAtucIntervalExtEntry   OBJECT-TYPE
             SYNTAX          AdslAtucIntervalExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION     "An entry in the
                              adslAtucIntervalExtTable."
             AUGMENTS        { adslAtucIntervalEntry }
         ::= { adslAtucIntervalExtTable 1 }

         AdslAtucIntervalExtEntry ::=
             SEQUENCE {
             adslAtucIntervalFastR            PerfIntervalCount,
             adslAtucIntervalFailedFastR      PerfIntervalCount,
             adslAtucIntervalSesL             PerfIntervalCount,
             adslAtucIntervalUasL             PerfIntervalCount
             }

         adslAtucIntervalFastR OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current interval, adslAtucIntervalFastR
                  reports the current number of seconds during which
                  there have been fast retrains."
         ::= { adslAtucIntervalExtEntry 1 }

         adslAtucIntervalFailedFastR OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the each interval, adslAtucIntervalFailedFastR
                  reports the number of seconds during which
                  there have been failed fast retrains."
         ::= { adslAtucIntervalExtEntry 2 }

okay so this is where the ATUC interval counters get their own little table, and it's giving organized ๐Ÿ’–โœจ

         adslAtucIntervalSesL OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the each interval, adslAtucIntervalSesL
                  reports the number of seconds during which
                  there have been severely errored seconds-line."
         ::= { adslAtucIntervalExtEntry 3 }

         adslAtucIntervalUasL OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the each interval, adslAtucIntervalUasL
                  reports the number of seconds during which
                  there have been unavailable seconds-line."
         ::= { adslAtucIntervalExtEntry 4 }

next up is the ATU-R side, and this part is giving main character energy ๐ŸŽ€

         adslAturPerfDataExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslAturPerfDataExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "This table contains ADSL physical line counters
                  not defined in the adslAturPerfDataTable
                  from the ADSL-LINE-MIB [RFC2662]."
         ::= { adslExtMibObjects 20 }

         adslAturPerfDataExtEntry   OBJECT-TYPE
             SYNTAX          AdslAturPerfDataExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "An entry extends the adslAturPerfDataEntry defined
                  in [RFC2662].  Each entry corresponds to an ADSL
                  line."
             AUGMENTS { adslAturPerfDataEntry }
         ::= { adslAturPerfDataExtTable 1 }
         AdslAturPerfDataExtEntry ::=
             SEQUENCE {
             adslAturPerfStatSesL             Counter32,
             adslAturPerfStatUasL             Counter32,
             adslAturPerfCurr15MinSesL        PerfCurrentCount,
             adslAturPerfCurr15MinUasL        PerfCurrentCount,
             adslAturPerfCurr1DaySesL         AdslPerfCurrDayCount,
             adslAturPerfCurr1DayUasL         AdslPerfCurrDayCount,
             adslAturPerfPrev1DaySesL         AdslPerfPrevDayCount,
             adslAturPerfPrev1DayUasL         AdslPerfPrevDayCount
         }

         adslAturPerfStatSesL OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  severely errored second-line since the last agent
                  reset."
             REFERENCE "ITU G.997.1 Section 7.2.1.1.7 "
         ::= { adslAturPerfDataExtEntry 1 }

         adslAturPerfStatUasL OBJECT-TYPE
             SYNTAX      Counter32
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "The value of this object reports the count of
                  unavailable seconds-line since the last agent
                  reset."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.9 "
         ::= { adslAturPerfDataExtEntry 2 }

         adslAturPerfCurr15MinSesL OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAturPerfCurr15MinSesL reports the current
                  number of seconds during which there have been
                  severely errored seconds-line."

             REFERENCE "ITU G.997.1 Section 7.2.1.2.7 "

         ::= { adslAturPerfDataExtEntry 3 }

         adslAturPerfCurr15MinUasL   OBJECT-TYPE
             SYNTAX      PerfCurrentCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current 15-minute interval,
                  adslAturPerfCurr15MinUasL reports the current
                  number of seconds during which there have been
                  available seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.9 "
         ::= { adslAturPerfDataExtEntry 4 }

         adslAturPerfCurr1DaySesL    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAturPerfCurr1DayTimeElapsed [RFC2662],
                  adslAturPerfCurr1DaySesL reports the
                  number of seconds during which there have been
                  severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.7 "
         ::= { adslAturPerfDataExtEntry 5 }

         adslAturPerfCurr1DayUasL    OBJECT-TYPE
             SYNTAX      AdslPerfCurrDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the current day as measured by
                  adslAturPerfCurr1DayTimeElapsed [RFC2662],
                  adslAturPerfCurr1DayUasL reports the
                  number of seconds during which there have been
                  unavailable seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.9 "
         ::= { adslAturPerfDataExtEntry 6 }

         adslAturPerfPrev1DaySesL     OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day, adslAturPerfPrev1DaySesL
                  reports the number of seconds during which there
                  were severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.7 "
         ::= { adslAturPerfDataExtEntry 7 }

         adslAturPerfPrev1DayUasL OBJECT-TYPE
             SYNTAX      AdslPerfPrevDayCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the previous day, adslAturPerfPrev1DayUasL
                  reports the number of seconds during which there
                  were severely errored seconds-line."
             REFERENCE "ITU G.997.1 Section 7.2.1.2.9 "
         ::= { adslAturPerfDataExtEntry 8 }

the interval table is next and it's so cute ๐Ÿงš

         adslAturIntervalExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslAturIntervalExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "This table provides one row for each ATU-R
                  performance data collection interval for
                  ADSL physical interfaces whose
                  IfEntries' ifType is equal to adsl(94)."
         ::= { adslExtMibObjects 21 }

         adslAturIntervalExtEntry   OBJECT-TYPE
             SYNTAX          AdslAturIntervalExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION     "An entry in the
                              adslAturIntervalExtTable."
             AUGMENTS        { adslAturIntervalEntry }
         ::= { adslAturIntervalExtTable 1 }

         AdslAturIntervalExtEntry ::=
             SEQUENCE {
             adslAturIntervalSesL             PerfIntervalCount,
             adslAturIntervalUasL             PerfIntervalCount
             }

         adslAturIntervalSesL OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the each interval, adslAturIntervalSesL
                  reports the number of seconds during which
                  there have been severely errored seconds-line."
         ::= { adslAturIntervalExtEntry 1 }

         adslAturIntervalUasL OBJECT-TYPE
             SYNTAX      PerfIntervalCount
             UNITS       "seconds"
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                 "For the each interval, adslAturIntervalUasL
                  reports the number of seconds during which
                  there have been unavailable seconds-line."
         ::= { adslAturIntervalExtEntry 2 }

okay the profile stuff is where it gets spicy ๐ŸŒธ

         adslConfProfileExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslConfProfileExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "The adslConfProfileExtTable extends the ADSL line
                  profile configuration information in the
                  adslLineConfProfileTable from the ADSL-LINE-MIB
                  [RFC2662] by adding the ability to configure the
                  ADSL physical line mode."
         ::= { adslExtMibObjects 22 }

         adslConfProfileExtEntry   OBJECT-TYPE
             SYNTAX          AdslConfProfileExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "An entry extends the adslLineConfProfileEntry
                  defined in [RFC2662].  Each entry corresponds to an
                  ADSL line profile."
             AUGMENTS { adslLineConfProfileEntry }
         ::= { adslConfProfileExtTable 1 }

         AdslConfProfileExtEntry ::=
             SEQUENCE {
                 adslConfProfileLineType  INTEGER
             }

         adslConfProfileLineType OBJECT-TYPE

             SYNTAX      INTEGER {
                 noChannel (1),        -- no channels exist
                 fastOnly (2),         -- only fast channel exists
                 interleavedOnly (3),  -- only interleaved channel
                                       -- exist
                 fastOrInterleaved (4),-- either fast or interleaved
                                       -- channels can exist, but
                                       -- only one at any time
                 fastAndInterleaved (5)-- both the fast channel and
                                       -- the interleaved channel
                                       -- exist
                 }
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "This object is used to configure the ADSL physical
                  line mode.  It has following valid values:

                  noChannel(1), when no channels exist.
                  fastOnly(2), when only fast channel exists.
                  interleavedOnly(3), when only interleaved channel
                      exist.
                  fastOrInterleaved(4), when either fast or
                      interleaved channels can exist, but only one
                      at any time.
                  fastAndInterleaved(5), when both the fast channel
                      and the interleaved channel exist.

                  In the case when no value has been set, the default
                  Value is noChannel(1).
                  "
             DEFVAL { fastOnly }
         ::= { adslConfProfileExtEntry 1 }

         adslAlarmConfProfileExtTable   OBJECT-TYPE
             SYNTAX          SEQUENCE OF AdslAlarmConfProfileExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "This table extends the
                  adslLineAlarmConfProfileTable and provides
                  threshold parameters for all the counters defined
                  in this MIB module."
         ::= { adslExtMibObjects 23 }
heads up bestie ๐Ÿ‘€ the DESCRIPTION for adslConfProfileLineType says the default is noChannel(1), but the DEFVAL right under it says fastOnly. both are copied exactly above, so you can see the mismatch for yourself ๐Ÿซถ

okay bestie, the alarm profile extension is where the real drama starts ๐ŸŽ€ each entry hangs off the table from [RFC2662], so here's the first chunk ๐Ÿ’–

         adslAlarmConfProfileExtEntry   OBJECT-TYPE
             SYNTAX          AdslAlarmConfProfileExtEntry
             MAX-ACCESS      not-accessible
             STATUS          current
             DESCRIPTION
                 "An entry extends the adslLineAlarmConfProfileTable
                  defined in [RFC2662].  Each entry corresponds to
                  an ADSL alarm profile."
             AUGMENTS { adslLineAlarmConfProfileEntry }
         ::= { adslAlarmConfProfileExtTable 1 }

         AdslAlarmConfProfileExtEntry ::=
             SEQUENCE {
             adslAtucThreshold15MinFailedFastR     Integer32,
             adslAtucThreshold15MinSesL            Integer32,
             adslAtucThreshold15MinUasL            Integer32,
             adslAturThreshold15MinSesL            Integer32,
             adslAturThreshold15MinUasL            Integer32
         }

ngl the ATU-C and ATU-R thresholds are giving twins ๐Ÿ‘ฏโ€โ™€๏ธ each one is a 0 to 900 seconds number, and 0 is the switch that turns its notification off โœจ the default is 0 for all of them, so nothing fires until you set it ๐Ÿซถ

         adslAtucThreshold15MinFailedFastR   OBJECT-TYPE
             SYNTAX      Integer32(0..900)
             UNITS       "seconds"
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "The first time the value of the corresponding
                  instance of adslAtucPerfCurr15MinFailedFastR
                  reaches or exceeds this value within a given
                  15-minute performance data collection period,
                  an adslAtucFailedFastRThreshTrap  notification
                  will be generated. The value '0' will disable
                  the notification. The default value of this
                  object is '0'."
             DEFVAL { 0 }
         ::= { adslAlarmConfProfileExtEntry 1 }

         adslAtucThreshold15MinSesL OBJECT-TYPE
             SYNTAX      Integer32(0..900)
             UNITS       "seconds"
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "The first time the value of the corresponding
                  instance of adslAtucPerf15MinSesL reaches or
                  exceeds this value within a given 15-minute
                  performance data collection period, an
                  adslAtucSesLThreshTrap notification will be
                  generated. The value '0' will disable the
                  notification.  The default value of this
                  object is '0'."

             DEFVAL { 0 }

         ::= { adslAlarmConfProfileExtEntry 2 }

         adslAtucThreshold15MinUasL OBJECT-TYPE
             SYNTAX      Integer32(0..900)
             UNITS       "seconds"
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "The first time the value of the corresponding
                  instance of adslAtucPerf15MinUasL reaches or
                  exceeds this value within a given 15-minute
                  performance data collection period, an
                  adslAtucUasLThreshTrap notification will be
                  generated. The value '0' will disable the
                  notification.  The default value of this
                  object is '0'."
             DEFVAL { 0 }
         ::= { adslAlarmConfProfileExtEntry 3 }

         adslAturThreshold15MinSesL OBJECT-TYPE
             SYNTAX      Integer32(0..900)
             UNITS       "seconds"
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "The first time the value of the corresponding
                  instance of adslAturPerf15MinSesL reaches or
                  exceeds this value within a given 15-minute
                  performance data collection period, an
                  adslAturSesLThreshTrap notification will be
                  generated. The value '0' will disable the
                  notification.  The default value of this
                  object is '0'."
             DEFVAL { 0 }
         ::= { adslAlarmConfProfileExtEntry 4 }

         adslAturThreshold15MinUasL OBJECT-TYPE
             SYNTAX      Integer32(0..900)
             UNITS       "seconds"
             MAX-ACCESS  read-create
             STATUS      current
             DESCRIPTION
                 "The first time the value of the corresponding
                  instance of adslAturPerf15MinUasL reaches or
                  exceeds this value within a given 15-minute
                  performance data collection period, an
                  adslAturUasLThreshTrap notification will be
                  generated. The value '0' will disable the
                  notification.  The default value of this
                  object is '0'."
             DEFVAL { 0 }

         ::= { adslAlarmConfProfileExtEntry 5 }

okay the trap section is next and it's giving notification central ๐Ÿ“ฃ each trap hangs off the threshold objects above, so when a counter hits its limit, the matching trap gets sent ๐Ÿฆ‹ the ATU-C side gets three traps and the ATU-R side gets two, which is kinda iconic ๐Ÿ’…

  --   definitions

   adslExtTraps OBJECT IDENTIFIER ::= { adslExtMibObjects 24 }

   adslExtAtucTraps OBJECT IDENTIFIER ::= { adslExtTraps 1 }

   adslExtAtucTrapsPrefix OBJECT IDENTIFIER ::= { adslExtAtucTraps 0 }

         adslAtucFailedFastRThreshTrap      NOTIFICATION-TYPE
             OBJECTS { adslAtucPerfCurr15MinFailedFastR }
             STATUS  current
             DESCRIPTION
                 "Failed Fast Retrains 15-minute threshold reached."
         ::= { adslExtAtucTrapsPrefix 1 }

         adslAtucSesLThreshTrap      NOTIFICATION-TYPE
             OBJECTS { adslAtucPerfCurr15MinSesL }
             STATUS  current
             DESCRIPTION
                 "Severely errored seconds-line 15-minute threshold
                  reached."
         ::= { adslExtAtucTrapsPrefix 2 }

         adslAtucUasLThreshTrap      NOTIFICATION-TYPE
             OBJECTS { adslAtucPerfCurr15MinUasL }
             STATUS  current
             DESCRIPTION
                 "Unavailable seconds-line 15-minute threshold
                  reached."
         ::= { adslExtAtucTrapsPrefix 3 }


   adslExtAturTraps OBJECT IDENTIFIER ::= { adslExtTraps 2 }

   adslExtAturTrapsPrefix OBJECT IDENTIFIER ::= { adslExtAturTraps 0 }

         adslAturSesLThreshTrap      NOTIFICATION-TYPE
             OBJECTS { adslAturPerfCurr15MinSesL }
             STATUS  current
             DESCRIPTION

                 "Severely errored seconds-line 15-minute threshold
                  reached."
         ::= { adslExtAturTrapsPrefix 1 }

         adslAturUasLThreshTrap      NOTIFICATION-TYPE
             OBJECTS { adslAturPerfCurr15MinUasL }
             STATUS  current
             DESCRIPTION
                 "Unavailable seconds-line 15-minute threshold
                  reached."
         ::= { adslExtAturTrapsPrefix 2 }

now the conformance stuff, which is the part where we figure out who has to do what ๐Ÿงš the ATU-C compliance statement lists three MANDATORY-GROUPS, and the rest are optional groups with their own little descriptions ๐Ÿ’œ the read-write and read-only notes only apply when static profiles from [RFC2662] are in play ๐ŸŒธ

  -- conformance information

   adslExtConformance OBJECT IDENTIFIER ::= { adslExtMIB 2 }

   adslExtGroups OBJECT IDENTIFIER ::= { adslExtConformance 1 }
   adslExtCompliances OBJECT IDENTIFIER ::= { adslExtConformance 2 }

         -- ATU-C agent compliance statements

         adslExtLineMibAtucCompliance MODULE-COMPLIANCE
             STATUS  current
             DESCRIPTION
                 "The compliance statement for SNMP entities which
                  represent ADSL ATU-C interfaces."

             MODULE  -- this module
             MANDATORY-GROUPS
                {
                adslExtLineGroup,
                adslExtLineConfProfileControlGroup,
                adslExtLineAlarmConfProfileGroup
                }

             GROUP       adslExtAtucPhysPerfCounterGroup
             DESCRIPTION
                 "This group is optional.  Implementations which
                  require continuous ATU-C physical event counters
                  should implement this group."

             GROUP       adslExtAturPhysPerfCounterGroup
             DESCRIPTION
                 "This group is optional.  Implementations which
                  require continuous ATU-R physical event counters
                  should implement this group."

             GROUP   adslExtNotificationsGroup
             DESCRIPTION
           "This group is optional.  Implementations which
                  support TCA (Threshold Crossing Alert) should
                  implement this group."

             OBJECT      adslAtucThreshold15MinFailedFastR
             MIN-ACCESS  read-write
             DESCRIPTION
                 "Read-write access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

             OBJECT      adslAtucThreshold15MinSesL
             MIN-ACCESS  read-write
             DESCRIPTION
                 "Read-write access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

             OBJECT      adslAtucThreshold15MinUasL
             MIN-ACCESS  read-write
             DESCRIPTION
                 "Read-write access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

             OBJECT      adslAturThreshold15MinSesL
             MIN-ACCESS  read-write
             DESCRIPTION
                 "Read-write access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

             OBJECT      adslAturThreshold15MinUasL
             MIN-ACCESS  read-write
             DESCRIPTION
                 "Read-write access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

             OBJECT      adslLineConfProfileDualLite
             MIN-ACCESS  read-only
             DESCRIPTION
                 "Read-only access is applicable only when
                  static profiles as defined in ADSL Line MIB
                  [RFC2662] are implemented."

         ::= { adslExtCompliances 1 }

last bit for now: the units of conformance, aka the object groups ๐Ÿ“ these are the bundles of objects that the compliance statement points at, so the ATU-C physical performance counter group is the big one with all the FastR, SesL and UasL counters ๐ŸŒˆ we'll pick up the ATU-R group from here ๐Ÿ’–

         -- units of conformance
         adslExtLineGroup    OBJECT-GROUP
             OBJECTS {
                 adslLineConfProfileDualLite,
                 adslLineTransAtucCap,
                 adslLineTransAtucConfig,
                 adslLineTransAtucActual,
                 adslLineGlitePowerState
                }
             STATUS     current
             DESCRIPTION
                 "A collection of objects providing extended
                 configuration information about an ADSL Line."
         ::= { adslExtGroups 1 }

         adslExtAtucPhysPerfCounterGroup OBJECT-GROUP
             OBJECTS {
                 adslAtucPerfStatFastR,
                 adslAtucPerfStatFailedFastR,
                 adslAtucPerfCurr15MinFastR,
                 adslAtucPerfCurr15MinFailedFastR,
                 adslAtucPerfCurr1DayFastR,
                 adslAtucPerfCurr1DayFailedFastR,
                 adslAtucPerfPrev1DayFastR,
                 adslAtucPerfPrev1DayFailedFastR,
                 adslAtucPerfStatSesL,
                 adslAtucPerfStatUasL,
                 adslAtucPerfCurr15MinSesL,
                 adslAtucPerfCurr15MinUasL,
                 adslAtucPerfCurr1DaySesL,
                 adslAtucPerfCurr1DayUasL,
                 adslAtucPerfPrev1DaySesL,
                 adslAtucPerfPrev1DayUasL,
                 adslAtucIntervalFastR,
                 adslAtucIntervalFailedFastR,
                 adslAtucIntervalSesL,
                 adslAtucIntervalUasL
                }
             STATUS     current
             DESCRIPTION
                 "A collection of objects providing raw performance
                 counts on an ADSL Line (ATU-C end)."
         ::= { adslExtGroups 2 }

         adslExtAturPhysPerfCounterGroup OBJECT-GROUP
             OBJECTS {
                 adslAturPerfStatSesL,
                 adslAturPerfStatUasL,
                 adslAturPerfCurr15MinSesL,
                 adslAturPerfCurr15MinUasL,
                 adslAturPerfCurr1DaySesL,
                 adslAturPerfCurr1DayUasL,
                 adslAturPerfPrev1DaySesL,
                 adslAturPerfPrev1DayUasL,
                 adslAturIntervalSesL, adslAturIntervalUasL
                }
             STATUS     current
             DESCRIPTION
                 "A collection of objects providing raw performance
                 counts on an ADSL Line (ATU-C end)."
         ::= { adslExtGroups 3 }

         adslExtLineConfProfileControlGroup OBJECT-GROUP
             OBJECTS {
                 adslConfProfileLineType
                }
             STATUS     current
             DESCRIPTION
                 "A collection of objects providing profile
                 control for the ADSL system."
         ::= { adslExtGroups 4 }

         adslExtLineAlarmConfProfileGroup OBJECT-GROUP
             OBJECTS {
                    adslAtucThreshold15MinFailedFastR,
                    adslAtucThreshold15MinSesL,
                    adslAtucThreshold15MinUasL,
                    adslAturThreshold15MinSesL,
                    adslAturThreshold15MinUasL
                }
             STATUS     current
             DESCRIPTION
                 "A collection of objects providing alarm profile
                 control for the ADSL system."
         ::= { adslExtGroups 5 }

         adslExtNotificationsGroup NOTIFICATION-GROUP
             NOTIFICATIONS {
                 adslAtucFailedFastRThreshTrap,
                 adslAtucSesLThreshTrap,
                 adslAtucUasLThreshTrap,
                 adslAturSesLThreshTrap,
                 adslAturUasLThreshTrap
             }
             STATUS        current
             DESCRIPTION
                 "The collection of ADSL extension notifications."
            ::= { adslExtGroups 6 }

END

7. Acknowledgments โœจ

okay so this one's short and sweet ๐ŸŽ€ This document is a product of the ADSL MIB Working Group, and they deserve all the flowers ๐Ÿ’๐Ÿซถ

8. References ๐Ÿ“š

8.1 Normative References

These are the big foundational specs that you MUST have down pat to get this stuff working, so let's list them out. ๐Ÿ’…

[ANSI T1.413] American National Standards Institute, ANSI T1.413, Issue 2, "Standards Project for Interfaces Relating to Carrier to Customer Connection of ADSL Equipment", 1998.

[ETSI DTS/TM06006] European Telecommunications Standards Institute "ADSL European Specific Requirements", November 2000.

[ITU G.992.1] ITU-T Telecommunication Standardization Sector, "Asymmetric digital subscriber line (ADSL) transceivers", June 1999.

[ITU G.992.2] ITU-T Telecommunication Standardization Sector, "Splitterless asymmetric digital subscriber line (ADSL) transceivers", June 1999.

[ITU G.997.1] ITU-T Telecommunication Standardization Sector, "Physical Layer Management of Digital Subscriber Transceivers", June 1999.

[RFC2026] Bradner S., "The Internet Standards Process - Revision 3", BCP 9, RFC 2026, October 1996.

[RFC2028] Hovey R. and S. Bradner, "The Organizations Involved in the IETF Standards Process", BCP 11, RFC 2028, October 1996.

[RFC2493] Tesink, K., "Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals" RFC 2493, January 1999.

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

[RFC2662] Bathrick, G. and F. Ly, "Definitions of Managed Objects for the ADSL Lines", RFC 2662, May 1999.

[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.

[RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", STD 62, RFC 3414, December 2002.

[RFC3415] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", STD 62, RFC 3415, December 2002.

8.2 Informative References

Just for vibes and extra context, this one's good to know too ๐ŸŒธ

[RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.

9. Security Considerations ๐Ÿšจ

Okay bestie, this part is SERIOUS. Like, read it carefully before you touch this MIB ๐Ÿ˜ญ๐Ÿ”ฅ

The following security matters should be considered when implementing this MIB.

  1. Blocking unauthorized access to the ADSL MIB via the element management system is outside the scope of this document. It should be noted that access to the MIB permits the unauthorized entity to modify the profiles (section 6.4) such that both subscriber service and network operations can be interfered with.

Subscriber service can be altered by modifying any of a number of service characteristics such as rate partitioning and maximum transmission rates. Network operations can be impacted by modifying notification thresholds such as Signal-to-Noise Ratio (SNR) margins.

  1. SNMPv1 by itself is such an insecure environment. Even if the network itself is secure (for example by using IPSec), there is no control over who on the secure network is allowed to access and GET (read) the objects in this MIB. It is recommended that the implementors consider the security features as provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model STD 62, RFC 3414 [RFC3414] and the View-based Access Control Model STD 62, RFC 3415 [RFC3415] is recommended.

It is then a customer/user responsibility to ensure that the SNMP entity giving access to an instance of this MIB, is properly configured to give access to only those objects, and to those principals (users) that have legitimate rights to access them.

  1. The profile mechanism presented in this document requires specific attention. The implementor of this MIB has a choice of implementing either 'static' or 'dynamic' profiles. This decision needs to stay consistent with the implementation of RFC 2662.

In the case of 'static' profiles, the elements of the profile are read-write, as opposed to read-create when 'dynamic' profiles are implemented:

  • adslConfProfileLineType,
  • adslAtucThreshold15MinFailedFastR,
  • adslAtucThreshold15MinSesL,
  • adslAtucThreshold15MinUasL,
  • adslAturThreshold15MinSesL, and
  • adslAturThreshold15MinUasL.

This decision also impacts the mechanics of the index, adslLineConfProfileDualLite. When 'static' profiles are implemented, its value is algorithmically set by the system and its value is based on the ifIndex. Hence it is not guaranteed across system reboots. Similar to the handling of adslLineConfProfile [RFC2662], the implementor of this MIB must ensure that the profile object values associated with these indices are maintained across system reboots.

In the case of dynamic profiles, this object is set by the SNMP manager. The implementor of this MIB may want to provide a view of the profile on a customer-by-customer standpoint, but should be cautious of the dynamic nature of these objects.

  1. ADSL layer connectivity from the ATU-R will permit the subscriber to manipulate both the ADSL link directly and the ADSL overhead control channel (AOC)/embedded operations channel (EOC) for their own loop. For example, unchecked or unfiltered fluctuations initiated by the subscriber could generate sufficient notifications to potentially overwhelm either the management interface to the network or the element manager. Other attacks affecting the ATU-R portions of the MIB may also be possible.

10. Intellectual Property Notice ๐Ÿฆ‹

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 [RFC2028]. 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 implementors 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 that may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.

11. Authors' Addresses ๐Ÿงš

Meet the people who made this happen ๐Ÿ’œ

Faye Ly Pedestal Networks 6503 Dumbarton Circle, Fremont, CA 94555

Phone: +1 510-578-0158 Fax: +1 510-744-5152 EMail: faye@pedestalnetworks.com

Gregory Bathrick Nokia Networks 2235 Mercury Way, Santa Rosa, CA 95405

Phone: +1 707-362-1125 Fax: +1 707-535-7300 EMail: greg.bathrick@nokia.com

okay bestie, this part is the legal stuff ๐Ÿ’… and yes it's a lot, but it matters. Copyright (C) The Internet Society (2002). All Rights Reserved. ๐ŸŒธ

You're totally allowed to copy this document and share it with people ๐Ÿซถ, and you can write derivative works that comment on it or explain it or help people actually implement it. You can publish and distribute those, all or part of them, with no real restrictions, as long as the copyright notice and this paragraph stay on every copy and every derivative work. ๐ŸŽ€

BUT the document itself can't be changed in any way ๐Ÿ™…โ€โ™€๏ธ. That means you can't remove the copyright notice or the references to the Internet Society or other Internet organizations. The exceptions are when you need it for developing Internet standards, which has to follow the copyright procedures in the Internet Standards process, or when you're translating it into a language other than English ๐ŸŒˆ.

These permissions are perpetual, meaning forever ๐Ÿ’œ. The Internet Society and its successors or assigns won't take them back โœจ.

Now the disclaimer, which is important so please read it ๐Ÿ˜ญ. This document and everything in it is provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED ๐Ÿ™ˆ. That includes, but isn't limited to, any promise that using the information won't infringe any rights, and any implied warranties of merchantability or fitness for a particular purpose. Translation: no guarantees, no promises, just vibes ๐Ÿ’€.

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society ๐Ÿฆ‹. Thanks to them for keeping the lights on for all of us! ๐Ÿงš

๐Ÿ“ฆ where this page comes from