RFC 2856

Textual Conventions for Additional High Capacity Data Types

πŸ“… published June 2000, from ietf

RFC 2856: Textual Conventions for Additional High Capacity Data Types πŸŽ€

Okay bestie, let's get into RFC 2856 πŸ’… It's a Standards Track document, dated June 2000, and the title block says it's from A. Bierman and K. McCloghrie of Cisco Systems, Inc., plus R. Presuhn of BMC Software, Inc. πŸ¦‹ The title block doesn't list anything it obsoletes or updates, so this one is standing on its own ✨

Status of This Memo ✨

Okay so, this document is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements 🫢 If you want to know where this protocol sits in the standardization process, check the current edition of the "Internet Official Protocol Standards" (STD 1). And the distribution of this memo is unlimited, so share away 🌸

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

Abstract

This memo introduces new textual conventions for extra high capacity data types πŸ”₯ They're meant for SNMP implementations that already support the Counter64 data type. Honestly, the definitions here are a short term solution, and they may be deprecated in the future πŸ₯²

Table of Contents

1 The SNMP Management Framework .................................  2
2 Overview ......................................................  3
2.1 Short Term and Long Term Objectives .........................  3
2.2 Limitations of the Textual Convention Approach ..............  3
3 New Textual Conventions .......................................  4
3.1 CounterBasedGauge64 .........................................  4
3.2 ZeroBasedCounter64 ..........................................  4
4 Definitions ...................................................  4
5 Intellectual Property .........................................  7
6 References ....................................................  7
7 Security Considerations .......................................  9
8 Authors' Addresses ............................................  9
9 Full Copyright Statement ...................................... 10

1. The SNMP Management Framework 🧚

Okay, the SNMP Management Framework is made of five major components πŸ’–

  • An overall architecture, described in RFC 2571 [RFC2571].
  • Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and is described in STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. The second version, called SMIv2, is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580].
  • Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and is described in STD 15, RFC 1157 [RFC1157]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and is described in RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version of the message protocol is called SNMPv3 and is described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574].
  • Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [RFC1157]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [RFC1905].
  • A set of fundamental applications described in RFC 2573 [RFC2573] and the view-based access control mechanism described in RFC 2575 [RFC2575].

If you want a deeper intro to the current SNMP Management Framework, go check RFC 2570 [RFC2570] πŸ“š

Managed objects are accessed through a virtual information store called the Management Information Base, or MIB πŸ¦‹ Objects in the MIB are defined using the mechanisms in the SMI.

This memo specifies a MIB module that is compliant to the SMIv2. The textual conventions defined in this MIB module cannot be translated to SMIv1, since the Counter64 type doesn't exist in SMIv1 πŸ’€

2. Overview 🌈

The Structure of Management Information [RFC2578] doesn't directly cover how to represent integer objects, other than counters, that need up to 64 bits for the range and precision they require. There are MIBs in progress aimed at the standards track that need these data types, so this memo offers a short term fix using textual conventions 🫢

2.1. Short Term and Long Term Objectives

There's an immediate need for a Gauge64 data type, similar in semantics to the Gauge32 data type, so it can support common data representations like:

  • a snapshot of a Counter64 at a given moment, e.g., history ring buffer
  • the difference between two Counter64 values

There's also an immediate need for a 64-bit zero-based counter type, similar in semantics to the ZeroBasedCounter32 TC defined in the RMON-2 MIB [RFC2021] πŸ”₯

Both of these textual conventions should use a base type of Gauge64 or Unsigned64, but neither base type is available right now. Until one is defined and deployed, these temporary textual conventions, which use a base type of Counter64, will be used in MIBs that need unsigned 64-bit data types πŸ’…

To stay backward compatible with existing implementations of Counter64, the ASN.1 encoding of unsigned 64-bit data types must be identical to the encoding of Counter64 objects, i.e., identified by the [APPLICATION 6] ASN.1 tag ✨

Keep in mind that the textual conventions in this document are a limited, short-term solution. They may be deprecated once a long term solution is defined and deployed to replace them, and a MIB object that uses either of them may also eventually have to be deprecated πŸ₯²

2.2. Limitations of the Textual Convention Approach

Okay, so the new unsigned data types here are built on the Counter64 tag, instead of a new (or other existing) ASN.1 tag, and that comes with some limitations πŸ™ˆ

  • The MAX-ACCESS of the TC must be read-only, because the MAX-ACCESS of the underlying Counter64 type is read-only.
  • No sub-range can be specified on the TC-derived types, because sub-ranges are not allowed on Counter64 objects.
  • No DEFVAL clause can be specified for the TC-derived types, because DEFVALs are not allowed on Counter64 objects.
  • The TC-derived types cannot be used in an INDEX clause, because there is no INDEX clause mapping defined for objects of type Counter64.

4. Definitions ✨

okay so this is the actual MIB module, the part where the code lives πŸ’… It's the HCNUM-TC module, and it defines the two textual conventions we just walked through, plus the module identity and contact info

   HCNUM-TC DEFINITIONS ::= BEGIN

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

   hcnumTC MODULE-IDENTITY
     LAST-UPDATED "200006080000Z"
     ORGANIZATION "IETF OPS Area"
     CONTACT-INFO
           "        E-mail: mibs@ops.ietf.org
                    Subscribe: majordomo@psg.com
                      with msg body: subscribe mibs

                    Andy Bierman
                    Cisco Systems Inc.
                    170 West Tasman Drive
                    San Jose, CA 95134 USA
                    +1 408-527-3711
                    abierman@cisco.com

                    Keith McCloghrie
                    Cisco Systems Inc.
                    170 West Tasman Drive
                    San Jose, CA 95134 USA
                    +1 408-526-5260
                    kzm@cisco.com

                    Randy Presuhn
                    BMC Software, Inc.
                    Office 1-3141
                    2141 North First Street
                    San Jose,  California 95131 USA
                    +1 408 546-1006
                    rpresuhn@bmc.com"
     DESCRIPTION
           "A MIB module containing textual conventions
            for high capacity data types. This module
            addresses an immediate need for data types not directly
            supported in the SMIv2. This short-term solution
            is meant to be deprecated as a long-term solution
            is deployed."
     REVISION        "200006080000Z"
     DESCRIPTION
           "Initial Version of the High Capacity Numbers
            MIB module, published as RFC 2856."
     ::= { mib-2 78 }

   CounterBasedGauge64 ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION
           "The CounterBasedGauge64 type represents a non-negative
           integer, which may increase or decrease, but shall never
           exceed a maximum value, nor fall below a minimum value. The
           maximum value can not be greater than 2^64-1
           (18446744073709551615 decimal), and the minimum value can
           not be smaller than 0.  The value of a CounterBasedGauge64
           has its maximum value whenever the information being modeled
           is greater than or equal to its maximum value, and has its
           minimum value whenever the information being modeled is
           smaller than or equal to its minimum value.  If the
           information being modeled subsequently decreases below
           (increases above) the maximum (minimum) value, the
           CounterBasedGauge64 also decreases (increases).

           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


   ZeroBasedCounter64 ::= TEXTUAL-CONVENTION
     STATUS current
     DESCRIPTION
           "This TC describes an object which counts events with the
           following semantics: objects of this type will be set to
           zero(0) on creation and will thereafter count appropriate
           events, wrapping back to zero(0) when the value 2^64 is
           reached.

           Provided that an application discovers the new object within
           the minimum time to wrap it can use the initial value as a
           delta since it last polled the table of which this object is
           part.  It is important for a management station to be aware
           of this minimum time and the actual time between polls, and
           to discard data if the actual time is too long or there is
           no defined minimum time.

           Typically this TC is used in tables where the INDEX space is
           constantly changing and/or the TimeFilter mechanism is in
           use.

           Note that this textual convention does not retain all the
           semantics of the Counter64 base type. Specifically, a
           Counter64 has an arbitrary initial value, but objects
           defined with this TC are required to start at the value
           zero.  This behavior is not likely to have any adverse
           effects on management applications which are expecting
           Counter64 semantics.

           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

5. Intellectual Property

the IETF is pretty clear that it doesn't take a side on whether any IP rights claimed around this tech are valid or how far they reach, and it also doesn't promise it went hunting for any 🫢 whether licenses are available is a separate question. if you want the IETF's procedures on rights for standards-track docs, that's in BCP-11. claims of rights, promised licenses, or the results of trying to get a general license can be requested from the IETF Secretariat

the IETF also invites anyone to bring up any copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to practice this standard. send that info to the IETF Executive Director

6. References

  • [RFC1155] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.
  • [RFC1157] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.
  • [RFC1212] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.
  • [RFC1215] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.
  • [RFC1901] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.
  • [RFC1905] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
  • [RFC1906] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
  • [RFC2021] Waldbusser, S., "Remote Network Monitoring MIB (RMON-2)", RFC 2021, January 1997.
  • [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.
  • [RFC2570] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999.
  • [RFC2571] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999.
  • [RFC2572] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2572, April 1999.
  • [RFC2573] Levi, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC 2573, April 1999.
  • [RFC2574] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, April 1999.
  • [RFC2575] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2575, April 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.

7. Security Considerations

this module doesn't define any management objects πŸ™ˆ it just defines a set of textual conventions that other MIB modules can use to define their own objects

and this is the serious bit: meaningful security considerations can only be written in the modules that actually define management objects. so if you're building on this, the security story lives in your module, not here

8. Authors' Addresses

   Andy Bierman
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA 95134 USA

   Phone: +1 408-527-3711
   EMail: abierman@cisco.com


   Keith McCloghrie
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA 95134 USA

   Phone: +1 408-526-5260
   EMail: kzm@cisco.com


   Randy Presuhn
   BMC Software, Inc.
   Office 1-3141
   2141 North First Street
   San Jose,  California 95131 USA

   Phone: +1 408 546-1006
   EMail: rpresuhn@bmc.com

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

this document and its translations may be copied and furnished to others, and derivative works that comment on or explain it, or help implement it, may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind. the one condition is 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 the references to the Internet Society or other Internet organizations. the only exceptions are for developing Internet standards, where the copyright procedures in the Internet Standards process must be followed, and for translating it into languages other than English.

the limited permissions above are perpetual and will not be revoked by the Internet Society or its successors or assigns πŸ’œ

this document and the information in it are 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