RFC 3593

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

πŸ“… published September 2003, from ietf

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

Network Working Group πŸŽ€ Request for Comments: 3593 πŸŽ€ Obsoletes: 2493

Author: K. Tesink, Ed. (Telcordia Technologies) πŸ’…

Date: September 2003 πŸ¦‹ Category: Standards Track πŸ‘‘


Status of this Memo πŸ“

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. 🌸

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

Abstract πŸ’œ

okay so this document defines a set of Textual Conventions for MIB modules that make use of performance history data based on 15 minute intervals. bestie, it's giving precise 🧚

This memo replaces RFC 2493. Changes relative to RFC 2493 are summarized in the MIB module's REVISION clause. πŸ“

Table of Contents πŸ—‚οΈ

1.  Introduction .................................................  2
2.  Note on Invalid Data and Proxies .............................  2
3.  Note on xyzTimeElapsed .......................................  3
4.  Note on xyzValidIntervals ....................................  3
5.  Definitions ..................................................  4
6.  Acknowledgments ..............................................  8
7.  References ...................................................  8
    7.1.  Normative References ...................................  8
    7.2.  Informative References .................................  8
8.  Security Considerations ......................................  9
9.  Intellectual Property Statement ..............................  9
10. Editor's Address .............................................  9
11. Full Copyright Statement ..................................... 10

1. Introduction πŸ¦‹

okay so picture this: a manager needs performance history data about how the equipment it manages has been behaving. there are a few ways a MIB designer could set that up. two main vibes:

  • 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 bucket approach πŸͺ£ see [3][4][5][7][8] for examples. for this kind of equipment it's common that history data is kept by the agent in fifteen minute intervals. literally the standard move ✨

this memo does not try to rank the different strategies for getting history data. there are differences in polling policy, how much management traffic goes between manager and agent, how simple the agent is, and the 'data currentness' of what the manager gets back. MIB designers should think about these things when they pick a strategy for their design. instead, this memo gives definitions that can be used in MIB modules that need history data based on fifteen minute intervals. πŸ’…

when you're designing a MIB module, it's super useful to define new types that look like the ones in the SMI [2]. compared to an SMI type, each new type has a different name, a similar syntax, but more precise semantics. these new types are called textual conventions, and they're there for the humans reading the MIB module πŸ€“ this happens through Textual Conventions as defined in RFC 2579 [1]. the whole purpose of this document is to define the set of textual conventions to be used when performance history based on 15 minute intervals is kept. the performance history textual conventions in this memo are based on 32 bit counts. for high capacity performance history counts, see [9]. 🫢

2. Note on Invalid Data and Proxies πŸ™ˆ

in this document, the word proxy means an application that receives SNMP messages and replies to them on behalf of the devices where the actual implementation lives, e.g., DS3/E3 interfaces. the proxy will have already collected the information about the DS3/E3 interfaces into its local database, and it may not necessarily forward requests to the actual DS3/E3 interface. it's expected that in an application like this, there are periods of time where the proxy isn't communicating with the DS3/E3 interfaces. during those times the proxy won't necessarily have up-to-date configuration information, and it will most likely have missed the collection of some data. missed data collection may result in some intervals in the interval table being unavailable. 😭

3. Note on xyzTimeElapsed ⏱️

while xyzTimeElapsed is defined as having a maximum, there may be cases (e.g., an adjustment in the system's time-of-day clock) where the actual value of the current interval would go over this maximum value. πŸ™ƒ

suppose an agent aligns its 15-minute measurement intervals to 15-minute time-of-day ("wall clock") boundaries, and its time-of-day clock systematically gains time. meanwhile, a manager periodically corrects the clock by setting it back. πŸ•°οΈ

it's assumed that the agent's time-of-day clock is reasonably accurate, say within a few seconds per day. so the manager's periodic clock adjustments will normally be small, and if they're done frequently enough, they need not ever exceed 10 seconds. in this case, all interval durations will be within the allowed tolerance and none need be marked invalid, if the ANSI procedure of ending measurement intervals at 15-minute time-of-day boundaries is followed [6]. the vibe is immaculate πŸ’–

if the time-of-day clock is systematically adjusted in small increments, then always ending measurement intervals at 15-minute time-of-day boundaries will result, in the long term, in the correct number of intervals with the correct average duration. that's true whether the clock is moved ahead or moved back. so if, for some reason such as an adjustment in the system's time-of-day clock, the current interval goes over the maximum value, it is considered acceptable for the agent to return the maximum value. πŸ‘‘

4. Note on xyzValidIntervals πŸ§šβ€β™€οΈ

the overall constraint on <n> is 1 =< n =< 96. any additional constraints on n must be defined in the DESCRIPTION clause (e.g., see [5]). ✨

5. Definitions πŸ“šβœ¨

okay so this is the actual MIB module, the part where the machines get their vocab πŸ€“πŸ’– it's a MIB module called PerfHist-TC-MIB, and it's basically a grab bag of Textual Conventions (TCs) for 15-minute performance history counts. the TCs are sorted alphabetically, and there's a little comment block up top about what the agent has to be able to do before any of this makes sense 🧠 it's giving very organised, no cap πŸ’…

   PerfHist-TC-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY,
      Gauge32, mib-2
          FROM SNMPv2-SMI
      TEXTUAL-CONVENTION
          FROM SNMPv2-TC;

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

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

            Editor:  Kaj Tesink
            Postal:  Telcordia Technologies
                     331 Newman Springs Road
                     Red Bank, NJ 07701
                     USA
            Tel:     +1 732 758 5254
            E-mail:  kaj@research.telcordia.com"

        DESCRIPTION
         "This MIB Module provides Textual Conventions
          to be used by systems supporting 15 minute
          based performance history counts.

          Copyright (C) The Internet Society (2003).
          This version of this MIB module is part of
          RFC 3593;  see the RFC itself for full
          legal notices."
        REVISION      "200308130000Z"
        DESCRIPTION
         "Contact information and references updated.
          No technical changes have been applied.
          Published as RFC 3593."
        REVISION      "199811071100Z"
        DESCRIPTION
         "The RFC 2493 version of this MIB module."
        ::= { mib-2 58 }

   -- The Textual Conventions defined below are organized
   -- alphabetically

   -- Use of these TCs assumes the following:
   -- 0  The agent supports 15 minute based history
   --    counters.
   -- 0  The agent is capable of keeping a history of n
   --    intervals of 15 minute performance data.  The
   --    value of n is defined by the specific MIB
   --    module but shall be 0 < n =< 96.
   -- 0  The agent may optionally support performance
   --    data aggregating the history intervals.
   -- 0  The agent will keep separate tables for the
   --    current interval, the history intervals, and
   --    the total aggregates.
   -- 0  The agent will keep the following objects.
   --    If performance data is kept for multiple instances
   --    of a measured entity, then
   --    these objects are applied to each instance of
   --    the measured entity (e.g., interfaces).
   --
   -- xyzTimeElapsed OBJECT-TYPE
   --       SYNTAX  INTEGER (0..899)
   --       MAX-ACCESS  read-only
   --       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, the current interval
   --       exceeds the maximum value, the agent will return
   --       the maximum value."
   --       ::= { xxx }

   -- xyzValidIntervals OBJECT-TYPE
   --       SYNTAX  INTEGER (0..<n>)
   --       MAX-ACCESS  read-only
   --       STATUS  current
   --       DESCRIPTION
   --       "The number of previous near end intervals
   --       for which data was collected.
   --          [ The overall constraint on <n> is 1 =< n =< 96; ]
   --          [ Define any additional constraints on <n> here. ]
   --       The value will be <n> unless the measurement was
   --       (re-)started within the last (<n>*15) minutes, in which
   --       case the value will be the number of complete 15
   --       minute intervals for which the agent has at least
   --       some data.  In certain cases (e.g., in the case
   --       where the agent is a proxy) it is possible that some
   --       intervals are unavailable.  In this case, this
   --       interval is the maximum interval number for
   --       which data is available."
   --       ::= { xxx }

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

   PerfCurrentCount ::= TEXTUAL-CONVENTION
         STATUS  current
         DESCRIPTION
            "A counter associated with a
             performance measurement in a current 15
             minute measurement interval.  The value
             of this counter 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 counter is
             stored in the first 15 minute history
             interval, and the CurrentCount 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 (for example, a noSuchName
             error for SNMPv1 and a noSuchInstance for
             SNMPv2 GET operation)."
          SYNTAX  Gauge32

   PerfIntervalCount ::= TEXTUAL-CONVENTION
         STATUS  current
         DESCRIPTION
            "A counter 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 (for example, a noSuchName
             error for SNMPv1 and a noSuchInstance for
             SNMPv2 GET operation).
             In a system supporting
             a history of n intervals with
             IntervalCount(1) and IntervalCount(n) the
             most and least recent intervals
             respectively, the following applies at
             the end of a 15 minute interval:
             - discard the value of IntervalCount(n)
             - the value of IntervalCount(i) becomes that
               of IntervalCount(i-1) for n >= i > 1
             - the value of IntervalCount(1) becomes that
               of CurrentCount
             - the TotalCount, if supported, is adjusted."
          SYNTAX  Gauge32

   PerfTotalCount ::= TEXTUAL-CONVENTION
         STATUS  current
         DESCRIPTION
            "A counter associated with a
             performance measurements aggregating the
             previous valid 15 minute measurement
             intervals.  (Intervals for which no valid
             data was available are not counted)"
          SYNTAX  Gauge32

   END

6. Acknowledgments 🫢

this one's a shoutout πŸ’• the document is a product of the AToM MIB Working Group, and the editor wanted to thank Mike Heard for his many valuable contributions to the memo. iconic behaviour, honestly 🌸

7. References πŸ“–

7.1. Normative References

  • [1] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [2] 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.

7.2. Informative References

  • [3] Fowler, D., "Definitions of Managed Objects for the DS1, E1, DS2 and E2 Interface Types", RFC 2495, January 1999.
  • [4] Fowler, D., "Definitions of Managed Objects for the DS3/E3 Interface Type", RFC 2496, January 1999.
  • [5] Tesink, K., "Definitions of Managed Objects for the Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Interface Type", RFC 3592, September 2003.
  • [6] American National Standard for Telecommunications - Digital Hierarchy - Layer 1 In-Service Digital Transmission Performance Monitoring, ANSI T1.231-1997, September 1997.
  • [7] Bathrick, G. and F. Ly, "Definitions of Managed Objects for the ADSL Lines", RFC 2662, August 1999.
  • [8] 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.
  • [9] Ray, B. and R. Abbi, "High Capacity Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals", Work in Progress.

8. Security Considerations πŸ”

okay, serious moment 😀 this memo only defines textual conventions, which are meant to be used in other MIB modules. so the security issues for those MIB modules are handled in the memos that define those modules. no sneaky loopholes here, the security conversation happens in the modules that actually use these TCs πŸ›‘οΈπŸ’œ

9. Intellectual Property Statement βš–οΈ

the IETF doesn't take a position on whether any intellectual property or other rights that someone might claim over the tech in this document are valid or in scope, and it doesn't say whether any license under those rights is available. it also doesn't claim to have tried to find out what those rights are πŸ™ˆ if you want the IETF's rules on rights for standards-track and standards-related documents, go check BCP-11. copies of any claimed rights that were submitted for publication, and any assurances of licences that will be made available, or the outcome of an attempt to get a general licence or permission for implementers or users of this spec to use those rights, can be obtained from the IETF Secretariat πŸ“¬

the IETF also invites anyone who's interested to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that might cover technology that might be needed to practise this standard. please send that info to the IETF Executive Director πŸ’Œ

10. Editor's Address πŸ–ŠοΈ

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

Phone: +1 732 758 5254
EMail: kaj@research.telcordia.com

the Internet Society (2003) owns the copyright, and everything is reserved πŸ’– but here's the good part: this document and its translations can be copied and handed out to others, and derivative works that comment on or explain it, or help with implementing it, can be written, copied, published and distributed, in whole or in part, with no restrictions at all. the one catch is that the copyright notice and this paragraph have to stay on every copy and derivative work πŸ“

the document itself can't be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organisations. the exceptions are when it's needed to develop Internet standards, in which case the Internet Standards process copyright procedures must be followed, or when it's being translated into languages other than English 🌍

these permissions are perpetual and won't be revoked by the Internet Society or its successors or assigns ♾️

and now the legal fine print, which I'm keeping word for word because it matters πŸ‘‘

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.

πŸ’– Okay bestie, this is the last little bit 🫢 Right now, the Internet Society is the one funding the RFC Editor function βœ¨πŸŽ€

πŸ“¦ where this page comes from