RFC 2512
Accounting Information for ATM Networks
Accounting Information for ATM Networks β¨
bestie, okay this one is a whole vibe π§ It's RFC 2512, and the title says it all: Accounting Information for ATM Networks π
Who wrote it: Keith McCloghrie (Cisco Systems, Inc.), J. Heinanen (Telia Finland, Inc.), W. Greene (MCI Telecommunications Corp.), and A. Prasad (Cisco Systems, Inc.) π
Category: Standards Track π
Date: February 1999 πΈ
Obsoletes / Updates: The header doesn't list anything it obsoletes or updates π¦
Status of This Memo π
This document is a proper Internet standards track protocol for the Internet community, and it's asking everyone for discussion and suggestions for improvements. If you want the latest standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited π«Ά
Copyright Notice π
Copyright (C) The Internet Society (1999). All Rights Reserved. β
Table of Contents π
1 Introduction ................................................... 1
2 The SNMP Network Management Framework .......................... 2
3 Overview ....................................................... 3
4 Definitions .................................................... 3
5 Acknowledgements ...............................................12
6 References .....................................................12
7 Security Considerations ........................................13
8 IANA Considerations ............................................13
9 Authors' Addresses .............................................14
10 Full Copyright Statement ......................................15
1. Introduction β¨
okay so this memo defines a chunk of the Management Information Base (MIB) for network management protocols in the Internet community π¦ A separate memo [16] handles managed objects in a way that doesn't depend on the type of network. Those objects control how accounting info gets selected, collected, and stored into files so it can be fetched later over a file transfer protocol π This memo is the ATM-specific part: a set of accounting info that can be collected for connections on ATM networks π
2. The SNMP Network Management Framework π§
so the SNMP Management Framework currently has five major components π
- An overall architecture, described in RFC 2271 [1].
- Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is SMIv1, described in STD 16, RFC 1155 [2], STD 16, RFC 1212 [3] and RFC 1215 [4]. The second version, SMIv2, is described in RFC 1902 [5], RFC 1903 [6] and RFC 1904 [7].
- Message protocols for transferring management information. The first version of the SNMP message protocol is SNMPv1, described in STD 15, RFC 1157 [8]. A second version, SNMPv2c, which is not an Internet standards track protocol, is described in RFC 1901 [9] and RFC 1906 [10]. The third version of the message protocol is SNMPv3, described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12].
- Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [8]. A second set is described in RFC 1905 [13].
- A set of fundamental applications described in RFC 2273 [14], plus the view-based access control mechanism described in RFC 2275 [15].
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 SMIv2 π A SMIv1-conforming MIB can be produced through the right translations. The translated MIB must be semantically equivalent, except where objects or events get left out because no translation is possible (for example, using Counter64). Some machine-readable info in SMIv2 gets turned into textual descriptions in SMIv1 during translation. That loss of machine-readable info is not considered to change the semantics of the MIB, so no stress π«Ά
3. Overview πΈ
so in [16], the accounting data items to collect are specified as a set of objects π Which objects end up in that set is up to an administrator, who picks one or more (subtree, list) tuples. The set of objects to collect is the union of the subsets each tuple specifies:
'subtree' specifies a OBJECT IDENTIFIER value such that every
object in the subset is named by the subtree's value appended
with a single additional sub-identifier.
'list' specifies an OCTET STRING value, such that if the N-th bit
of the string's value is set then the the subset contains the
object named by appending N as a single additional sub-
identifier to the subtree.
This memo specifies one such subtree, containing a set of objects that define the accounting info applicable to ATM connections π¦
Heads up: every object defined here has a MAX-ACCESS clause of not-accessible. That's on purpose! These objects aren't meant to be read or written by SNMP. Instead, they're the syntax and semantics for the set of info that can be represented inside a single (subtree, list) tuple π
4. Definitions π
okay the actual MIB module starts here, so this part is the real deal π§ Each object is interpreted with respect to creating or storing an accounting record for a particular connection on a particular interface π
ATM-ACCOUNTING-INFORMATION-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
mib-2, Integer32, Counter64 FROM SNMPv2-SMI
DisplayString, DateAndTime FROM SNMPv2-TC
AtmAddr FROM ATM-TC-MIB;
atmAccountingInformationMIB MODULE-IDENTITY
LAST-UPDATED "9611052000Z"
ORGANIZATION "IETF AToM MIB Working Group"
CONTACT-INFO "
Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive,
San Jose CA 95134-1706.
Phone: +1 408 526 5260
Email: kzm@cisco.com"
DESCRIPTION
"The MIB module for identifying items of accounting
information which are applicable to ATM connections."
::= { mib-2 59 }
atmAcctngMIBObjects OBJECT IDENTIFIER ::=
{ atmAccountingInformationMIB 1 }
-- Definitions of objects for use in specifying ATM accounting
-- data to be collected
atmAcctngDataObjects OBJECT-IDENTITY
STATUS current
DESCRIPTION
"This identifier defines a subtree under which various
objects are defined such that a set of objects to be
collected as ATM accounting data can be specified as a
(subtree, list) tuple using this identifier as the subtree."
::= { atmAcctngMIBObjects 1 }
-- Objects defined under the atmAcctngDataObjects subtree
--
-- In each case the semantics of the object are interpreted with
-- respect to the creation/storage of an accounting record for a
-- particular connection on a particular interface.
atmAcctngConnectionType OBJECT-TYPE
SYNTAX INTEGER { pvc(1),
pvp(2),
svcIncoming(3),
svcOutgoing(4),
svpIncoming(5),
svpOutgoing(6),
spvcInitiator(7),
spvcTarget(8),
spvpInitiator(9),
spvpTarget(10) }
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The type of connection."
::= { atmAcctngDataObjects 1 }
atmAcctngCastType OBJECT-TYPE
SYNTAX INTEGER { p2p(1), p2mp(2) }
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An indication of whether the connection is point-to-point
or point-to-multipoint."
::= { atmAcctngDataObjects 2 }
atmAcctngIfName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A textual name for the interface on which the data for the
connection was collected. If the local SNMP agent supports
the object ifName, the value of this object must be
identical to that of ifName in the conceptual row of the
ifTable corresponding to this interface."
::= { atmAcctngDataObjects 3 }
okay that's the first chunk of the RFC covered π We've got the title block, status, copyright, the intro and SNMP framework, the overview of the (subtree, list) tuples, and the start of the MIB definitions up through atmAcctngIfName π«Ά Part 2 picks up the next objects, so stay tuned π§β¨
atmAcctngReleaseCause is up next, and it's a fun one π¦ It only gets a real value when the connection was collected because an SVC was released. Otherwise it's just zero π
atmAcctngReleaseCause OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"If the connection data was collected because of the release
of an SVC, then this is the cause code in the Release
message for the connection; otherwise, this object has the
value zero."
::= { atmAcctngDataObjects 13 }
Next up is the service category, which tells you what kind of connection it was πΈ There are seven options, including unknown(7) for when nobody can tell π«Ά
atmAcctngServiceCategory OBJECT-TYPE
SYNTAX INTEGER { other(1), cbr(2), vbrRt(3), vbrNrt(4),
abr(5), ubr(6), unknown(7) }
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The connection's service category."
::= { atmAcctngDataObjects 14 }
Now the cell counters, which are giving accounting energy π§ The transmitted and received counts both include OAM cells, and there's a separate CLP=0 counter for each direction π
atmAcctngTransmittedCells OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The number of cells, including OAM cells, transmitted by
this switch on this connection."
::= { atmAcctngDataObjects 15 }
atmAcctngTransmittedClp0Cells OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The number of cells with CLP=0, including OAM cells,
transmitted by this switch on this connection."
::= { atmAcctngDataObjects 16 }
atmAcctngReceivedCells OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The number of cells, including OAM cells, received by this
switch on this connection."
::= { atmAcctngDataObjects 17 }
atmAcctngReceivedClp0Cells OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The number of cells with CLP=0, including OAM cells,
received by this switch on this connection."
::= { atmAcctngDataObjects 18 }
Now we get to the traffic descriptors π There's a type for each direction, plus five parameters per direction, and what each parameter means depends on the type. The type is an OBJECT IDENTIFIER that points back to the ATM-MIB, so you'll want to check that for the details π
atmAcctngTransmitTrafficDescriptorType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The traffic descriptor type (as defined in RFC 1695 and its
successors) in the direction in which the switch transmits
cells on the connection."
REFERENCE
"See atmTrafficDescriptorTypes in ATM-MIB.my in RFC 1695 and
its successors."
::= { atmAcctngDataObjects 19 }
atmAcctngTransmitTrafficDescriptorParam1 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The first traffic descriptor parameter in the direction in
which this switch transmits cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngTransmitTrafficDescriptorType."
::= { atmAcctngDataObjects 20 }
atmAcctngTransmitTrafficDescriptorParam2 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The second traffic descriptor parameter in the direction in
which this switch transmits cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngTransmitTrafficDescriptorType."
::= { atmAcctngDataObjects 21 }
atmAcctngTransmitTrafficDescriptorParam3 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The third traffic descriptor parameter in the direction in
which this switch transmits cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngTransmitTrafficDescriptorType."
::= { atmAcctngDataObjects 22 }
atmAcctngTransmitTrafficDescriptorParam4 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The fourth traffic descriptor parameter in the direction in
which this switch transmits cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngTransmitTrafficDescriptorType."
::= { atmAcctngDataObjects 23 }
atmAcctngTransmitTrafficDescriptorParam5 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The fifth traffic descriptor parameter in the direction in
which this switch transmits cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngTransmitTrafficDescriptorType."
::= { atmAcctngDataObjects 24 }
Okay, the receive side is basically the transmit side flipped around π Same type, same five params, just for cells coming in to the switch instead of going out π
atmAcctngReceiveTrafficDescriptorType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The traffic descriptor type (as defined in RFC 1695 and its
successors) in the direction in which this switch receives
cells on this connection."
REFERENCE
"See atmTrafficDescriptorTypes in ATM-MIB.my in RFC 1695 and
its successors."
::= { atmAcctngDataObjects 25 }
atmAcctngReceiveTrafficDescriptorParam1 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The first traffic descriptor parameter in the direction in
which this switch receives cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngReceiveTrafficDescriptorType."
::= { atmAcctngDataObjects 26 }
atmAcctngReceiveTrafficDescriptorParam2 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The second traffic descriptor parameter in the direction in
which this switch receives cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngReceiveTrafficDescriptorType."
::= { atmAcctngDataObjects 27 }
atmAcctngReceiveTrafficDescriptorParam3 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The third traffic descriptor parameter in the direction in
which this switch receives cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngReceiveTrafficDescriptorType."
::= { atmAcctngDataObjects 28 }
atmAcctngReceiveTrafficDescriptorParam4 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The fourth traffic descriptor parameter in the direction in
which this switch receives cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngReceiveTrafficDescriptorType."
::= { atmAcctngDataObjects 29 }
atmAcctngReceiveTrafficDescriptorParam5 OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The fifth traffic descriptor parameter in the direction in
which this switch receives cells on this connection.
Interpretation of this parameter is dependent on the value
of atmAcctngReceiveTrafficDescriptorType."
::= { atmAcctngDataObjects 30 }
Sub-addresses are next π If a connection doesn't have one, or its value is unknown, the object is just the zero-length string, which is a very chill way of saying "nothing here" π
atmAcctngCallingPartySubAddress OBJECT-TYPE
SYNTAX AtmAddr
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The connection's calling party sub-address. If the
connection has no calling party sub-address, or it's value
is unknown, then the value of this object is the zero-length
string."
::= { atmAcctngDataObjects 31 }
atmAcctngCalledPartySubAddress OBJECT-TYPE
SYNTAX AtmAddr
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The connection's called party sub-address. If the
connection has no called party sub-address, or it's value is
unknown, then the value of this object is the zero-length
string."
::= { atmAcctngDataObjects 32 }
Last object, and honestly this one is iconic π₯ It's a CRC-16 checksum over the whole accounting record. The trick is that you start with the checksum set to all zeros, remember where those zeros live, calculate the checksum over the full record, then overwrite those zeros with the real value. The CRC-16 is defined by ISO 3309 (HDLC) and/or ITU X.25 π§
atmAcctngRecordCrc16 OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(2))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The value of the CRC-16 checksum (as defined by ISO 3309
(HDLC) and/or ITU X.25) calculated over the accounting
record containing this object.
While the mechanism for calculating/encoding the checksum
value is specific to the method of encoding the accounting
record, an accounting record containing this object is
typically generated by initializing the value of this object
to the all-zeros string ('0000'H), with the location of
these zeros being saved. After generating the record, the
checksum is calculated over the whole connection record and
then the all-zeros value is overwritten (at the saved
location) by the calculated value of the checksum."
::= { atmAcctngDataObjects 33 }
END
5. Acknowledgements β¨
Big thank-you to the IETF's AToM MIB Working Group for their comments π«Ά Those folks helped make this whole thing better, and we love a team that shows up for each other πΈ
6. References π
- [1] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2271, January 1998.
- [2] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.
- [3] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.
- [4] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.
- [5] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996.
- [6] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
- [7] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1904, January 1996.
- [8] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.
- [9] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.
- [10] SNMPv2 Working Group, 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.
- [11] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2272, January 1998.
- [12] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2274, January 1998.
- [13] SNMPv2 Working Group, 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.
- [14] Levi, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC 2273, January 1998.
- [15] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2275, January 1998.
- [16] McCloghrie, K., Heinanen, J., Greene, W. and A. Prasad, "Managed Objects for Controlling the Collection and Storage of Accounting Information for Connection-Oriented Networks", RFC 2513, February 1999.
- [17] Noto, M., Spiegel, E. and K. Tesink, "Definitions of Textual Conventions and OBJECT-IDENTITIES for ATM Management", RFC 2514, February 1999.
7. Security Considerations π
okay this one is serious bestie π this MIB module only defines data items that could be used as accounting information. each one can only be reached through a collected accounting file, so no sneaking in from the side π once that data has been collected, it should be protected against modification or unauthorized deletion. like, guard it like your diary ππ₯
8. IANA Considerations π¦
before this memo gets published as an RFC, IANA is requested to make a suitable OBJECT IDENTIFIER assignment. so that's the to-do list for the registry folks π
9. Authors' Addresses π
The people who wrote this doc, with their contact details:
Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive,
San Jose CA 95134
Phone: +1 408 526 5260
EMail: kzm@cisco.com
Juha Heinanen
Telia Finland, Inc.
Myyrmaentie 2
01600 VANTAA
Finland
Phone +358 303 944 808
EMail: jh@telia.fi
Wedge Greene
MCI Telecommunications Corporation
901 International Parkway
Richardson, Texas 75081
Phone: 214-498-1232 or 972-729-1232
EMail: wedge.greene@mci.com
Anil Prasad
Cisco Systems, Inc.
170 West Tasman Drive,
San Jose CA 95134
Phone: +1 408 525-7209
EMail: aprasad@cisco.com
10. Full Copyright Statement Β©οΈ
Copyright (C) The Internet Society (1999). All Rights Reserved.
bestie, the legal bit, but make it cute π you can copy, share, and translate this document, and you can make derivative works that comment on it, explain it, or help people implement it, as long as the copyright notice and this paragraph stay on every copy and derivative work. this document itself may not be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organizations. the one exception is when you're developing Internet standards, where the Internet Standards process copyright procedures must be followed. translating into languages other than English is also allowed. these permissions are perpetual and the Internet Society (or its successors or assigns) won't revoke them π
the 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. π
π¦ where this page comes from
- ietf: rfc2512 1999-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms