RFC 3705

High Capacity Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals

πŸ“… published February 2004, from ietf

RFC 3705: High Capacity Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals πŸ’–

Okay bestie, so this one is from February 2004 and it's a Standards Track doc πŸŽ€. The authors are B. Ray from PESA Switching Systems and R. Abbi from Alcatel πŸ’…. It was written for the Network Working Group, and the header doesn't list anything it obsoletes or updates ✨.

Status of this Memo ✨

This is an Internet standards track protocol for the Internet community, and the authors are asking everyone to discuss it and suggest improvements 🫢. If you want to know where it stands in standardization, check the "Internet Official Protocol Standards" (STD 1) list πŸ“œ. Distribution is unlimited, so share it with your whole group chat πŸ¦‹.

Copyright (C) The Internet Society (2004). All Rights Reserved. πŸ’œ

Abstract

This doc gives us a set of High Capacity Textual Conventions for MIB modules that need performance history based on 15 minute intervals 🌈. It takes the conventions from RFC 3593 and bumps them up to 64 bit resolution, using the conventions from RFC 2856 πŸ”₯.

Table of Contents

1.  The Internet-Standard Management Framework . . . . . . . . . .  2
2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
3.  Definitions. . . . . . . . . . . . . . . . . . . . . . . . . .  3
4.  Intellectual Property Statement. . . . . . . . . . . . . . . .  8
5.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  8
    5.1.  Normative References . . . . . . . . . . . . . . . . . .  8
    5.2.  Informative References . . . . . . . . . . . . . . . . .  9
6.  Security Considerations. . . . . . . . . . . . . . . . . . . . 10
7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
8.  Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 10
9.  Full Copyright Statement . . . . . . . . . . . . . . . . . . . 11

1. The Internet-Standard Management Framework ✨

If you want the full tea on the documents that describe the current Internet-Standard Management Framework, go read section 7 of RFC 3410 [RFC3410] πŸ“š.

Managed objects live in a virtual information store called the Management Information Base, or MIB πŸ—‚οΈ. You usually reach MIB objects through the Simple Network Management Protocol (SNMP) πŸ”₯. The objects get defined using the mechanisms in the Structure of Management Information (SMI) 🧚. 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] πŸ’….

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] πŸŽ€.

2. Overview 🌸

Sometimes a manager needs performance history data about how the equipment it manages has been behaving. There are a few ways to design a MIB module that represents that equipment, including:

  • The agent counts events on a continuous basis and, whenever desired, the manager obtains the value of the event counter and adjusts its understanding of the history of events at the agent πŸ”’.
  • The agent allocates events to 'buckets' where each bucket represents an interval of time πŸͺ£.

Telecom equipment usually goes with the second option, the buckets πŸ“¦. For that kind of equipment, the standard practice is that the agent keeps history data in 15-minute intervals [T1.231] ⏰.

MIB modules that collect performance history in 15-minute intervals already exist for the DS1/E1 [RFC2495], DS3/E3 [RFC2496], SONET/SDH [RFC3592], ADSL [RFC2662], HDLS2 and SHDSL [RFC3276] interface types 🌟. They all share a common set of textual conventions defined in [RFC3593] 🫢.

Now here's the problem 😭. We need 64-bit versions of the textual conventions in [RFC3593]. Ideally they'd be built on a Gauge64 or Unsigned64 data type, but unfortunately SMIv2 doesn't have either of those πŸ’€. The next best option would be the CounterBasedGauge64 textual convention from [RFC2856], but that doesn't work either, because SMIv2 only lets base types be used when you define a textual convention πŸ™ˆ. So the textual conventions in this memo are built directly on the Counter64 type, just like the ones in [RFC2856] 🧩. They come with these limitations:

  • The MAX-ACCESS of objects defined using these textual conventions must be read-only, because the MAX-ACCESS of the underlying Counter64 type is read-only πŸ”’.
  • No sub-range can be specified in object definitions using these textual conventions, because sub-ranges are not allowed on Counter64 objects 🚫.
  • No DEFVAL clause can be specified in object definitions using these textual conventions, because DEFVALs are not allowed on Counter64 objects 🚫.
  • Objects defined using these textual conventions cannot be used in an INDEX clause, because there is no INDEX clause mapping defined for objects of type Counter64 πŸ™…β€β™€οΈ.

Using the textual conventions in this memo assumes the following:

  • The agent supports 15 minute based history counters ⏱️.
  • The agent is capable of keeping a history of 96 intervals of 15 minute performance data πŸ—“οΈ.
  • The agent may optionally support performance data aggregating the history intervals πŸ“Š.
  • The agent will keep separate tables for the current interval, the history intervals, and the total aggregates πŸ—‚οΈβœ¨.

3. Definitions πŸŽ€

Okay bestie, this is the part where the actual MIB module lives, and it is SO much more fun than it looks. πŸ¦‹ Everything in here is written in SMIv2 (the language that describes what a management tool can read from a device), and it's basically a little dictionary of textual conventions for 15-minute performance history counts. Think of these as the official "this is what the number means" labels. πŸ’…

Here's the full module, copied exactly, because the details are everything. ✨

   HC-PerfHist-TC-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY,
       Counter64,
       Unsigned32,
       Integer32,
       mib-2                FROM SNMPv2-SMI
       TEXTUAL-CONVENTION   FROM SNMPv2-TC;

   hcPerfHistTCMIB MODULE-IDENTITY
      LAST-UPDATED "200402030000Z" -- February 3, 2004
      ORGANIZATION "ADSLMIB Working Group"
      CONTACT-INFO "WG-email:  adslmib@ietf.org
           Info:      https://www1.ietf.org/mailman/listinfo/adslmib

           Chair:     Mike Sneed
                      Sand Channel Systems
           Postal:    P.O.  Box 37324
                      Raleigh NC 27627-7324
                      USA
           Email:     sneedmike@hotmail.com
           Phone:     +1 206 600 7022

           Co-editor: Bob Ray
                      PESA Switching Systems, Inc.
           Postal:    330-A Wynn Drive
                      Huntsville, AL 35805
                      USA
           Email:     rray@pesa.com
           Phone:     +1 256 726 9200 ext.  142

           Co-editor: Rajesh Abbi
                      Alcatel USA
           Postal:    2301 Sugar Bush Road
                      Raleigh, NC 27612-3339
                      USA
           Email:     Rajesh.Abbi@alcatel.com
           Phone:     +1 919 850 6194
           "
       DESCRIPTION
           "This MIB Module provides Textual Conventions to be
            used by systems supporting 15 minute based performance
            history counts that require high-capacity counts.

            Copyright (C) The Internet Society (2004).  This version
            of this MIB module is part of RFC 3705: see the RFC
            itself for full legal notices."

           REVISION "200402030000Z" -- February 3, 2004
           DESCRIPTION "Initial version, published as RFC 3705."

           ::= { mib-2 107 }

   HCPerfValidIntervals ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
          "The number of near end intervals for which data was
          collected.  The value of an object with an
          HCPerfValidIntervals syntax will be 96 unless the
          measurement was (re-)started within the last 1440 minutes,
          in which case the value will be the number of complete 15
          minute intervals for which the agent has at least some data.
          In certain cases (e.g., in the case where the agent is a
          proxy) it is possible that some intervals are unavailable.
          In this case, this interval is the maximum interval number
          for which data is available."
       SYNTAX   Integer32 (0..96)

   HCPerfInvalidIntervals ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
          "The number of near end intervals for which no data is
          available.  The value of an object with an
          HCPerfInvalidIntervals syntax will typically be zero except
          in cases where the data for some intervals are not available
          (e.g., in proxy situations)."
       SYNTAX   Integer32 (0..96)

   HCPerfTimeElapsed ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
          "The number of seconds that have elapsed since the beginning
          of the current measurement period.  If, for some reason,
          such as an adjustment in the system's time-of-day clock or
          the addition of a leap second, the duration of the current
          interval exceeds the maximum value, the agent will return
          the maximum value.

          For 15 minute intervals, the range is limited to (0..899).
          For 24 hour intervals, the range is limited to (0..86399)."
       SYNTAX   Integer32 (0..86399)

   HCPerfIntervalThreshold ::= TEXTUAL-CONVENTION
       STATUS   current
       DESCRIPTION
           "This convention defines a range of values that may be set
           in a fault threshold alarm control.  As the number of
           seconds in a 15-minute interval numbers at most 900,
           objects of this type may have a range of 0...900, where the
           value of 0 disables the alarm."
       SYNTAX   Unsigned32 (0..900)

   HCPerfCurrentCount ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION

           "A gauge associated with a performance measurement in a
            current 15 minute measurement interval.  The value of an
            object with an HCPerfCurrentCount syntax starts from zero
            and is increased when associated events occur, until the
            end of the 15 minute interval.  At that time the value of
            the gauge is stored in the first 15 minute history
            interval, and the gauge is restarted at zero.  In the case
            where the agent has no valid data available for the
            current interval, the corresponding object instance is not
            available and upon a retrieval request a corresponding
            error message shall be returned to indicate that this
            instance does not exist.

            This count represents a non-negative integer, which
            may increase or decrease, but shall never exceed 2^64-1
            (18446744073709551615 decimal), nor fall below 0.  The
            value of an object with HCPerfCurrentCount syntax
            assumes its maximum value whenever the underlying count
            exceeds 2^64-1.  If the underlying count subsequently
            decreases below 2^64-1 (due, e.g., to a retroactive
            adjustment as a result of entering or exiting unavailable
            time), then the object's value also decreases.

            Note that this TC is not strictly supported in SMIv2,
            because the 'always increasing' and 'counter wrap'
            semantics associated with the Counter64 base type are not
            preserved.  It is possible that management applications
            which rely solely upon the (Counter64) ASN.1 tag to
            determine object semantics will mistakenly operate upon
            objects of this type as they would for Counter64 objects.

            This textual convention represents a limited and short-
            term solution, and may be deprecated as a long term
            solution is defined and deployed to replace it."
       SYNTAX  Counter64

   HCPerfIntervalCount ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
           "A gauge associated with a performance measurement in
            a previous 15 minute measurement interval.  In the case
            where the agent has no valid data available for a
            particular interval, the corresponding object instance is
            not available and upon a retrieval request a corresponding
            error message shall be returned to indicate that this
            instance does not exist.

            Let X be an object with HCPerfIntervalCount syntax.

            Let Y be an object with HCPerfCurrentCount syntax.
            Let Z be an object with HCPerfTotalCount syntax.
            Then, in a system supporting a history of n intervals with
            X(1) and X(n) the most and least recent intervals
            respectively, the following applies at the end of a 15
            minute interval:

               - discard the value of X(n)
               - the value of X(i) becomes that of X(i-1)
                 for n >= i > 1
               - the value of X(1) becomes that of Y.
               - the value of Z, if supported, is adjusted.

            This count represents a non-negative integer, which
            may increase or decrease, but shall never exceed 2^64-1
            (18446744073709551615 decimal), nor fall below 0.  The
            value of an object with HCPerfIntervalCount syntax
            assumes its maximum value whenever the underlying count
            exceeds 2^64-1.  If the underlying count subsequently
            decreases below 2^64-1 (due, e.g., to a retroactive
            adjustment as a result of entering or exiting unavailable
            time), then the value of the object also decreases.

            Note that this TC is not strictly supported in SMIv2,
            because the 'always increasing' and 'counter wrap'
            semantics associated with the Counter64 base type are not
            preserved.  It is possible that management applications
            which rely solely upon the (Counter64) ASN.1 tag to
            determine object semantics will mistakenly operate upon
            objects of this type as they would for Counter64 objects.

            This textual convention represents a limited and short-
            term solution, and may be deprecated as a long term
            solution is defined and deployed to replace it."
       SYNTAX  Counter64

   HCPerfTotalCount ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
           "A gauge representing the aggregate of previous valid 15
            minute measurement intervals.  Intervals for which no
            valid data was available are not counted.

            This count represents a non-negative integer, which
            may increase or decrease, but shall never exceed 2^64-1
            (18446744073709551615 decimal), nor fall below 0.  The
            value of an object with HCPerfTotalCount syntax
            assumes its maximum value whenever the underlying count
            exceeds 2^64-1.  If the underlying count subsequently
            decreases below 2^64-1 (due, e.g., to a retroactive
            adjustment as a result of entering or exiting unavailable
            time), then the object's value also decreases.

            Note that this TC is not strictly supported in SMIv2,
            because the 'always increasing' and 'counter wrap'
            semantics associated with the Counter64 base type are not
            preserved.  It is possible that management applications
            which rely solely upon the (Counter64) ASN.1 tag to
            determine object semantics will mistakenly operate upon
            objects of this type as they would for Counter64 objects.

            This textual convention represents a limited and short-
            term solution, and may be deprecated as a long term
            solution is defined and deployed to replace it."
       SYNTAX  Counter64
   END

4. Intellectual Property Statement πŸ’œ

Okay so this section is the legal-ish bit, and honestly it's giving very "we're not making promises, but here's how to reach us" energy. πŸ™ˆ The IETF doesn't take a position on whether any intellectual property rights apply to the tech in this document, and it hasn't gone looking for any either. 🫢 If you want the procedures for rights in standards-track and standards-related docs, they're in BCP-11. Any licence claims or assurances can be obtained from the IETF Secretariat.

The IETF also invites anyone who knows about copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to practise this standard to let them know. Send that info to the IETF Executive Director. 🌈


5. References πŸ¦‹

I'm going to keep this one for the next part, bestie, so stay tuned. ✨

5.1. Normative References πŸ“šβœ¨

okay bestie, these are the must-read refs πŸ€“ they're the docs this one leans on hardcore, and I'm keeping every detail exactly as written:

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
          Requirement Levels", BCP 14, RFC 2119, March 1997.

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

5.2. Informative References 🌸

these ones are more like the extra reading list πŸ“– not required to ship, but iykyk they're so useful for the background tea:

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

[T1.231]  American National Standard for Telecommunications - Digital
          Hierarchy - Layer 1 In-Service Digital Transmission
          Performance Monitoring, ANSI T1.231-1997, September 1997.

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

[RFC2495] Fowler, D., "Definitions of Managed Objects for the DS1,
          E1, DS2 and E2 Interface Types", RFC 2495, January 1999.

[RFC2496] Fowler, D., "Definitions of Managed Objects for the DS3/E3
          Interface Type", RFC 2496, January 1999.

[RFC3592] Tesink, K., "Definitions of Managed Objects for the
          Synchronous Optical Network/Synchronous Digital Hierarchy
          (SONET/SDH) Interface Type", RFC 3592, November 2003.

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

[RFC2856] Bierman, A., McCloghrie, K.  and R. Presuhn, "Textual
          Conventions for Additional High Capacity Data Types", RFC
          2856, June 2000.

[RFC3276] Ray, B. and R. Abbi, "Definitions of Managed Objects for
          High Bit-rate DSL - 2nd Generation (HDSL2) and Single-Pair
          High-Speed Digital Subscriber Line (SHDSL) Lines", RFC
          3276, May 2002.

[RFC3593] Tesink, K., "Textual Conventions for MIB Modules Using
          Performance History Based on 15 Minute Intervals", RFC
          3593,  November 2003.

6. Security Considerations πŸ”’

okay security time, and I'm being so serious about it 🫢 this module doesn't define any management objects. what it does instead is set up a bunch of textual conventions that other MIB modules can use when they define their own management objects. so the actual security stuff has to be handled in those modules.

meaningful security considerations can only be written in the MIB modules that define management objects. so this document has no impact on the security of the Internet πŸ¦‹ no drama, no risk, just vibes.

7. Acknowledgements πŸ™

this doc borrows tremendously from [RFC3593] and [RFC2856] ✨ so any credit for the text you see here should go fully to the authors of those documents. they did the heavy lifting, and we owe them everything πŸ’œ

8. Authors' Addresses πŸ’Œ

here's who wrote it and how to reach them:

Bob Ray
PESA Switching Systems, Inc.
330-A Wynn Drive
Huntsville, AL 35805
USA

Phone: +1 256 726 9200 ext. 142
Fax:   +1 256 726 9271
EMail: rray@pesa.com


Rajesh Abbi
Alcatel USA
2301 Sugar Bush Road
Raleigh, NC 27612-3339
USA

Phone: +1 919 850 6194
EMail: Rajesh.Abbi@alcatel.com

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

okay legal bits, but still cute πŸŽ€ 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 πŸ’–

funding for the RFC Editor function is currently provided by the Internet Society 🌈

πŸ“¦ where this page comes from