Internet Draft Internet-Draft Connection-Oriented Accounting MIB November 1996 Managed Objects for Controlling the Collection and Storage of Accounting Information for Connection-Oriented Networks draft-ietf-atommib-acct-04.txt 26 November 1996 Keith McCloghrie Cisco Systems, Inc. kzm@cisco.com Juha Heinanen Telecom Finland Inc. jh@lohi.dat.tele.fi Wedge Greene MCI Telecommunications Corporation wedgeg@mcimail.com Anil Prasad Cisco Systems, Inc. aprasad@cisco.com Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). Expires May 1997 [Page 1] Internet-Draft Connection-Oriented Accounting MIB November 1996 1. Introduction This memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for controlling the collection and storage of accounting information for connection-oriented networks such as ATM. The accounting data is collected into files for later retrieval via a file transfer protocol. For information on data which can be collected for ATM networks, see [9]. 2. The SNMP Network Management Framework The SNMP Network Management Framework presently consists of three major components. They are: the SMI, described in RFC 1902 [1] - the mechanisms used for describing and naming objects for the purpose of management. the MIB-II, STD 17, RFC 1231 [2] - the core set of managed objects for the Internet suite of protocols. the protocol, RFC 1157 [3] and/or RFC 1905 [4], - the protocol for accessing managed objects. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 2.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to refer to the object type. Expires May 1997 [Page 2] Internet-Draft Connection-Oriented Accounting MIB November 1996 3. Overview In some connected-oriented network environments, there is a need for the network administrator to be able to collect accounting data on the usage of bandwidth/resources by connections (e.g., ATM connections) within the network. Data collection should be available for switched virtual connections (SVCs and SVPs), and permanent virtual connections (PVCs and PVPs), including soft-permanent virtual connections (SPVCCs and SPVPCs). This need exists for ATM networks, and may well exist for other connection-oriented networks, such as Frame Relay. The potential quantity of such accounting information is such that it is not, in general, feasible to retrieve the information via SNMP. A better method is to store the collected accounting information in a file which can be subsequently retrieved via a file transfer protocol. It is, however, appropriate to provide management control of the selection and collection of such accounting data via SNMP. This memo describes a MIB module which provides such control in a manner independent of the type of network. One or more other documents provide definitions of particular items of accounting data which can be selected; for example, a particular set of data items which can be collected for ATM networks is specified in [9]. 3.1. Operational Model The requirement is for switches (e.g., ATM switches) to collect data concerning the connections which are routed across some subset of their interfaces (e.g., ATM UNI and/or NNI interfaces). The collected data is stored into one or more "files". The use of multiple files allows, for example, the data collected for PVCs to be different from that collected for SVCs. In order to retrieve the data currently being stored in a file, the administrator instructs the switch to terminate the collection of data into that file, and start collecting data into a new file. After this operation, the data in the old file is available for retrieval via file transfer. A collection file is defined to have a maximum size. When the size of the file currently being collected exceeds a threshold percentage of that maximum size, an SNMP notification (e.g., a trap) can be optionally generated. An SNMP notification might also be generated if the file reaches its maximum size. Expires May 1997 [Page 3] Internet-Draft Connection-Oriented Accounting MIB November 1996 The accounting data collected for each connection consists of a set of objects and their values. The set of objects and their values are collected on one or more of the following occasions: (1) on the release (termination) of a connection optionally including failed connection attempts; (2) for each active connection (having a particular minimum age) on a periodic basis; (3) for each active connection (having a particular minimum age) when so commanded by a management application. While collecting data to be stored in a particular file, the same set of objects is collected for each connection on each occasion. Having the same set of objects stored on each occasion allows the optimization of storing only the values of those objects. This results in a significantly smaller file size, since it allows the names of the objects to be stored once and only once at the beginning of the file, rather than having to store every value as a (name, value) pair. Two modes of agent behaviour are allowed on the event of a file reaching its maximum size: (1) management application in control: The agent does not automatically swap to a new file; rather, it discards newly collected data until the management application subsequently instructs it to swap to a new file. Before swapping to a new file, the name of the file into which data is currently being collected is an implementation issue of no concern to an NM application; after swapping to a new file, the name of the file available for retrieval is as specified by the controlling MIB objects. This behaviour allows the application to know exactly how many files need to be retrieved and their names without having to perform any type of file directory operation, but also results in the possibility that data will be discarded if the application does not instruct the agent to swap within the required time frame. (2) agent automatically swaps to new file: The agent terminates collection into the current (full) file, and begins collecting data into a new version of the same base file name. This behaviour aims to avoid loss of data by assuming that additional storage space is actually available to create a new Expires May 1997 [Page 4] Internet-Draft Connection-Oriented Accounting MIB November 1996 version of the file. To support this behaviour, files are named using suffixes, such that when the current version of the file becomes full, the agent begins collecting data into a file with the same base file-name but with an incremented (or otherwise modified) suffix. This requires the application to perform file directory operations prior to retrieving completed files in order to know how many and which suffixes have been used. With either behaviour, any completed file must be an integral number of connection records (see below). When a file reaches its maximum size, collection into that file is terminated either immediately before or immediately after storing the whole of the current connection record into the file. The former causes the file to be just less than its maximum size, and the latter causes the file to be just greater than its maximum size. 3.2. Selection of Accounting Data The items of accounting data to be collected are specified as a set of objects. Which objects are contained in such a set is selectable by an administrator through the specification of one or more (subtree, list) tuples, where the set of objects to be collected is the union of the subsets specified by each tuple: 'subtree' specifies an 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. The rationale for defining each subset as a (subtree,list) tuple is that one and only one OBJECT IDENTIFIER and one OCTET STRING is needed to define the subset of objects. This simplifies the MIB mechanisms needed for selection: an NM application needs to create only one conceptual row in a MIB table for each subset (rather than needing to create a conceptual row in a table for each and every object in the set). The number of tuples supported by a particular switch is an implementation choice. One possibility is to support two (subtree, list) tuples so that one such tuple can specify a standard 'subtree' (e.g., the atmAcctngDataObjects subtree defined in [9]), and the second tuple can specify an enterprise-specific 'subtree'; this would allow the Expires May 1997 [Page 5] Internet-Draft Connection-Oriented Accounting MIB November 1996 selected set of objects to be the union of a set of standard objects and a set of enterprise-defined objects. 3.3. Format of Collection File A collection file generated by this process contains the values of MIB objects defined using the SNMPv2 SMI. The standard way to encode the values of SNMP MIB objects in a device-independent manner is through the use of ASN.1's Basic Encoding Rules (BER) [8]. Thus, the standard format of an accounting file is defined here using ASN.1 [7]. The file consists of a set of header information followed by a sequence of zero or more collection records. The header information identifies (via sysName [6]) the switch which collected the data, the date and time at which the collection in to this file started, and the sequence of one or more (subtree, list) tuples identifying the objects whose values are contained in each connection record. The header information also includes a textual description of the data contained in the file. Each connection record contains a sequence of values for each identified tuple, in the same order as the tuples are identified in the header information. For each tuple, the sequence of values are in ascending order of the sub-identifier which identifies them within the subtree. Expires May 1997 [Page 6] Internet-Draft Connection-Oriented Accounting MIB November 1996 Formally, an accounting file is an ASN.1 value with the following syntax: File ::= [1] IMPLICIT SEQUENCE { -- header information sysName -- name of the switch DisplayString, description -- textual description of the collection DisplayString, startTime -- start time of the collection DateAndTime, SEQUENCE OF { -- sequence of (subtree, list) tuples SEQUENCE { subtree OBJECT IDENTIFIER, list OCTET STRING } } -- sequence of connection records SEQUENCE OF { -- each record containing a sequence SEQUENCE OF { -- per identified tuple SEQUENCE OF { -- each per-tuple sequence containing value -- a sequence of object values ObjectSyntax } } } } where: (1) the value of the sysName component is that of the sysName object in the System group [6]. (2) each (subtree, list) specifies the set of objects contained in that tuple's sequence within each and every connection record. Expires May 1997 [Page 7] Internet-Draft Connection-Oriented Accounting MIB November 1996 (3) the tuples' sequences within each connection record occur in the same order as the (subtree, list) tuples occur in the header information. (4) the object values within each connection record occur in the same order as they are represented by the bits in the corresponding list value. (5) ObjectSyntax is defined by the SNMPv2 SMI [1]. (6) One particular category of object values deserves special attention: an object defined to hold the checksum value of an accounting record (e.g., atmAcctngRecordCrc16, defined in [9]). An object in this category will generally have a SYNTAX of a fixed- length OCTET STRING, and have its value initialized to the string of all zeros when composing the accounting record containing it, with the location of these zeros being saved. Once the record is generated, the checksum is calculated over the whole connection record (including the starting SEQUENCE OF and the trailing end- of-contents octets, if used), and then the zeros are overwritten (at the saved location) by the calculated value of the checksum. The encoding of the above syntax using the Basic Encoding Rules is the same as defined by the SNMPv2 [5], with the following exception: - when encoding the length field for a structured type, i.e., a SEQUENCE or SEQUENCE OF, the indefinite form encoding is permitted. Expires May 1997 [Page 8] Internet-Draft Connection-Oriented Accounting MIB November 1996 For example, the file containing the data: [1] IMPLICIT SEQUENCE a1 80 OCTET STRING 04 09 73 77 69 74 63 68 2d 61 62 OCTET STRING 04 0a 41 63 63 6f 75 6e 74 69 6e 67 OCTET STRING 04 08 07 cc 07 14 10 05 00 00 SEQUENCE OF 30 0e SEQUENCE 30 0c OBJECT IDENTIFIER 06 06 2b 06 01 03 7f 01 01 OCTET STRING 04 01 c0 SEQUENCE OF 30 80 SEQUENCE OF 30 08 SEQUENCE OF 30 06 INTEGER 02 01 00 INTEGER 02 01 21 SEQUENCE OF 30 08 SEQUENCE OF 30 06 INTEGER 02 01 00 INTEGER 02 01 22 end-of-contents 00 00 end-of-contents 00 00 contains two connection records, each containing one tuple listing two (integer) data items in a (fictitious) subtree: 1.3.6.1.3.127.1.1. Its header indicates it's for "switch-12", with description "Accounting", and was collected at 16:05:00 on 20 July 1996. As well as the standard format defined above, the MIB allows other enterprise-specific formats to be used. Expires May 1997 [Page 9] Internet-Draft Connection-Oriented Accounting MIB November 1996 4. Definitions ACCOUNTING-CONTROL-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, experimental, Integer32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, RowStatus, TestAndIncr, DisplayString, TruthValue FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF ifIndex FROM IF-MIB; accountingControlMIB 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 managing the collection and storage of accounting information for connections in a connection- oriented network such as ATM." ::= { experimental xx } acctngMIBObjects OBJECT IDENTIFIER ::= { accountingControlMIB 1 } acctngSelectionControl OBJECT IDENTIFIER ::= { acctngMIBObjects 1 } acctngFileControl OBJECT IDENTIFIER ::= { acctngMIBObjects 2 } acctngInterfaceControl OBJECT IDENTIFIER ::= { acctngMIBObjects 3 } acctngTrapControl OBJECT IDENTIFIER ::= { acctngMIBObjects 4 } Expires May 1997 [Page 10] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- Textual Conventions DataCollectionSubtree ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The subtree component of a (subtree, list) tuple. Such a (subtree, list) tuple defines a set of objects and their values to be collected as accounting data for a connection. The subtree specifies a single OBJECT IDENTIFIER value such that each object in the set is named by the subtree value appended with a single additional sub-identifier." SYNTAX OBJECT IDENTIFIER DataCollectionList ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The list component of a (subtree, list) tuple. Such a (subtree, list) tuple defines a set of objects and their values to be collected as accounting data for a connection. The subtree specifies a single OBJECT IDENTIFIER value such that each object in the set is named by the subtree value appended with a single additional sub-identifier. The list specifies a set of data items, where the presence of an item in the list indicates that the item is (to be) present in the data collected for a connection; the absence of an item from the list indicates that the item is not (to be) present in the data collected for a connection. Each data item is represented by an integer which when appended (as as additional sub-identifier) to the OBJECT IDENTIFIER value of the subtree identified by the tuple, is the name of an object defining that data item (its description and its syntax). The list is specified as an OCTET STRING in which each data item is represented by a single bit, where data items 1 through 8 are represented by the bits in the first octet, data items 9 through 16 by the bits in the second octet, etc. In each octet, the lowest numbered data item is represented by the most significant bit, and the highest numbered data item by the least significant bit. A data item is present in the list when its bit is set, and absent when its bit is reset. If the length of an OCTET STRING value is too short to represent one or more data items defined in a subtree, then those data items are absent from Expires May 1997 [Page 11] Internet-Draft Connection-Oriented Accounting MIB November 1996 the set identified by the tuple of that subtree and that OCTET STRING value." SYNTAX OCTET STRING (SIZE(0..8)) FileIndex ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "An arbitrary integer value identifying a file into which accounting data is being collected." SYNTAX Integer32 (1..65535) Expires May 1997 [Page 12] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- The Accounting Information Selection table acctngSelectionTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctngSelectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of accounting information selection entries. Note that additions, modifications and deletions of entries in this table can occur at any time, but such changes only take effect on the next occasion when collection begins into a new file. Thus, between modification and the next 'swap', the content of this table does not reflect the current selection." ::= { acctngSelectionControl 1 } acctngSelectionEntry OBJECT-TYPE SYNTAX AcctngSelectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry identifying an (subtree, list) tuple used to select a set of accounting information which is to be collected." INDEX { acctngSelectionIndex } ::= { acctngSelectionTable 1 } AcctngSelectionEntry ::= SEQUENCE { acctngSelectionIndex Integer32, acctngSelectionSubtree DataCollectionSubtree, acctngSelectionList DataCollectionList, acctngSelectionFile FileIndex, acctngSelectionType BITS, acctngSelectionRowStatus RowStatus } acctngSelectionIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary integer value which uniquely identifies a tuple stored in this table. This value is required to be Expires May 1997 [Page 13] Internet-Draft Connection-Oriented Accounting MIB November 1996 the permanent 'handle' for an entry in this table for as long as that entry exists, including across restarts and power outages." ::= { acctngSelectionEntry 1 } acctngSelectionSubtree OBJECT-TYPE SYNTAX DataCollectionSubtree MAX-ACCESS read-create STATUS current DESCRIPTION "The combination of acctngSelectionSubtree and acctngSelectionList specifies one (subtree, list) tuple which is to be collected." ::= { acctngSelectionEntry 2 } acctngSelectionList OBJECT-TYPE SYNTAX DataCollectionList MAX-ACCESS read-create STATUS current DESCRIPTION "The combination of acctngSelectionSubtree and acctngSelectionList specifies one (subtree, list) tuple which is to be collected." ::= { acctngSelectionEntry 3 } acctngSelectionFile OBJECT-TYPE SYNTAX FileIndex MAX-ACCESS read-create STATUS current DESCRIPTION "An indication of the file into which the accounting information identified by this entry is to be stored. If there is no conceptual row in the acctngFileTable for which the value of acctngFileIndex has the same value as this object, then the information selected by this entry is not collected." ::= { acctngSelectionEntry 4 } acctngSelectionType OBJECT-TYPE SYNTAX BITS { svcIncoming(0), svcOutgoing(1), svpIncoming(2), svpOutgoing(3), pvc(4), pvp(5), Expires May 1997 [Page 14] Internet-Draft Connection-Oriented Accounting MIB November 1996 spvcOriginator(6), spvcTarget(7), spvpOriginator(8), spvpTarget(9) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the types of connections for which the information selected by this entry are to be collected." DEFVAL { { svcIncoming, svcOutgoing, svpIncoming, svpOutgoing } } ::= { acctngSelectionEntry 5 } acctngSelectionRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. An agent may refuse to create new conceptual rows and/or modify existing conceptual rows, if such creation/modification would cause multiple rows to have the same values of acctngSelectionSubtree and acctngSelectionList. A conceptual row can not have the status of 'active' until values have been assigned to the acctngSelectionSubtree, acctngSelectionList and acctngSelectionFile columnar objects within that row. An agent must not refuse to change the values of the acctngSelectionSubtree, acctngSelectionList and acctngSelectionFile columnar objects within a conceptual row even while that row's status is 'active'. Similarly, an agent must not refuse to destroy an existing conceptual row while the file referenced by that row's instance of acctngSelectionFile is in active use, i.e., while the corresponding instance of acctngFileRowStatus has the value 'active'. However, such changes only take effect upon the next occasion when collection begins into a new (version of the) file." ::= { acctngSelectionEntry 6 } Expires May 1997 [Page 15] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- The Accounting File table acctngFileTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctngFileEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of files into which accounting information is to be stored." ::= { acctngFileControl 1 } acctngFileEntry OBJECT-TYPE SYNTAX AcctngFileEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry identifying a file into which accounting information is to be collected." INDEX { acctngFileIndex } ::= { acctngFileTable 1 } AcctngFileEntry ::= SEQUENCE { acctngFileIndex FileIndex, acctngFileName DisplayString, acctngFileNameSuffix DisplayString, acctngFileDescription DisplayString, acctngFileCommand INTEGER, acctngFileMaximumSize Integer32, acctngFileCurrentSize Integer32, acctngFileFormat INTEGER, acctngFileCollectMode BITS, acctngFileCollectFailedAttempts BITS, acctngFileInterval Integer32, acctngFileMinAge Integer32, acctngFileRowStatus RowStatus } acctngFileIndex OBJECT-TYPE SYNTAX FileIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique value identifying a file into which accounting data is to be stored. This value is required to be the Expires May 1997 [Page 16] Internet-Draft Connection-Oriented Accounting MIB November 1996 permanent 'handle' for an entry in this table for as long as that entry exists, including across restarts and power outages." ::= { acctngFileEntry 1 } acctngFileName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "The name of the file into which accounting data is to be stored. If files are named using suffixes, then the name of the current file is the concatenation of acctngFileName and acctngFileNameSuffix. An agent will respond with an error (e.g., 'wrongValue') to a management set operation which attempts to modify the value of this object to the same value as already held by another instance of acctngFileName. An agent will also respond with an error (e.g., 'wrongValue') if the new value is invalid for use as a file name on the local file system (e.g., many file systems do not support white space embedded in file names). The value of this object can not be modified while the corresponding instance of acctngFileRowStatus is 'active'." ::= { acctngFileEntry 2 } acctngFileNameSuffix OBJECT-TYPE SYNTAX DisplayString (SIZE(0..8)) MAX-ACCESS read-only STATUS current DESCRIPTION "The suffix, if any, of the name of a file into which accounting data is currently being stored. If suffixes are not used, then the value of this object is the zero-length string. Note that if a separator, such as a period, is used in appending the suffix to the file name, then that separator appears as the first character of this value." ::= { acctngFileEntry 3 } acctngFileDescription OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current Expires May 1997 [Page 17] Internet-Draft Connection-Oriented Accounting MIB November 1996 DESCRIPTION "The textual description of the accounting data which will be stored (on the next occasion) when header information is stored in the file. The value of this object may be modified at any time." DEFVAL { "" } ::= { acctngFileEntry 4 } acctngFileCommand OBJECT-TYPE SYNTAX INTEGER { -- the following two values are states: -- they may be read but not written idle(1), cmdInProgress(2), -- the following two values are actions: -- they may be written, but are never read swapToNewFile(3), collectNow(4) } MAX-ACCESS read-create STATUS current DESCRIPTION "A control object for the collection of accounting data. When read the value is either 'idle' or 'cmdInProgress'. Writing a value is only allowed when the current value is 'idle'. When a value is successfully written, the value changes to 'cmdInProgress' until completion of the action, at which time the value reverts to 'idle'. Actions are invoked by writing the following values: 'swapToNewFile' - the collection of data into the current file is terminated, and collection continues into a new (version of the) file. 'collectNow' - the agent creates and stores a connection record into the current file for each active connection having a type matching acctngSelectionType and an age greater than acctngFileMinAge." DEFVAL { idle } ::= { acctngFileEntry 5 } acctngFileMaximumSize OBJECT-TYPE SYNTAX Integer32 (100..2147483647) UNITS "bytes" Expires May 1997 [Page 18] Internet-Draft Connection-Oriented Accounting MIB November 1996 MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum size of the file (including header information). When the file of collected data reaches this size, either the agent automatically swaps to a new version (i.e., a new value acctngFileNameSuffix) of the file, or new records are discarded. Since a file must contain an integral number of connection records, the actual maximum size of the file may be just less OR Just greater than the value of this object. The value of this object can not be modified while the corresponding instance of acctngFileRowStatus is 'active'. The largest value of the maximum file size in some agents will be less than 2147483647 bytes." DEFVAL { 5000000 } ::= { acctngFileEntry 6 } acctngFileCurrentSize OBJECT-TYPE SYNTAX Integer32 (0..2147483647) UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The current size of the file into which data is currently being collected, including header information." ::= { acctngFileEntry 7 } acctngFileFormat OBJECT-TYPE SYNTAX INTEGER { other(1), ber(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "An indication of the format by which the accounting data is to stored in the file. If the value is modified, the new value takes effect after the next 'swap' to a new file. The value ber(2) indicates the standard format." DEFVAL { ber } ::= { acctngFileEntry 8 } acctngFileCollectMode OBJECT-TYPE SYNTAX BITS { onRelease(0), periodically(1) } MAX-ACCESS read-create STATUS current Expires May 1997 [Page 19] Internet-Draft Connection-Oriented Accounting MIB November 1996 DESCRIPTION "An indication of when accounting data is to be written into this file. Note that in addition to the occasions indicated by the value of this object, an agent always writes information on appropriate connections to the file when the corresponding instance of acctngFileCommand is set to 'collectNow'. - 'onRelease' - whenever a connection (or possibly, connection attempt) is terminated, either through a Release message or through management removal, information on that connection is written. - 'periodically' - information on appropriate connections is written on the expiry of a periodic timer, This value may be modified at any time." DEFVAL { { onRelease } } ::= { acctngFileEntry 9 } acctngFileCollectFailedAttempts OBJECT-TYPE SYNTAX BITS { soft(0), regular(1) } MAX-ACCESS read-create STATUS current DESCRIPTION "An indication of whether connection data is to be collected for failed connection attempts when the value of the corresponding instance of acctngFileCollectMode includes 'onRelease'. The individual values have the following meaning: 'soft' - indicates that connection data is to be collected for failed Soft PVCs/PVPs which originate or terminate at the relevant interface. 'regular' - indicates that connection data is to be collected for failed SVCs, including Soft PVCs/PVPs not originating or terminating at the relevant interface. This value may be modified at any time." DEFVAL { { soft, regular } } ::= { acctngFileEntry 10 } acctngFileInterval OBJECT-TYPE SYNTAX Integer32 (60..86400) Expires May 1997 [Page 20] Internet-Draft Connection-Oriented Accounting MIB November 1996 UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The number of seconds between the periodic collections of accounting data when the value of the corresponding instance of acctngFileCollectMode includes 'periodically'. Some agents may impose restrictions on the range of this interval. This value may be modified at any time." DEFVAL { 3600 } ::= { acctngFileEntry 11 } acctngFileMinAge OBJECT-TYPE SYNTAX Integer32 (60..86400) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The minimum age of a connection, as used to determine the set of connections for which data is to be collected at the periodic intervals and/or when acctngFileCommand is set to 'collectNow'. The age of a connection is the elapsed time since it was last installed. When the periodic interval expires for a file or when acctngFileCommand is set to 'collectNow', accounting data is collected and stored in the file for each connection having a type matching acctngSelectionType and whose age at that time is greater than the value of acctngFileMinAge associated with the file. This value may be modified at any time." DEFVAL { 3600 } ::= { acctngFileEntry 12 } acctngFileRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. This object can not be set to 'active' until a value has been assigned to the corresponding instance of acctngFileName. Collection of data into the file does not begin until this object has the value 'active' and one or Expires May 1997 [Page 21] Internet-Draft Connection-Oriented Accounting MIB November 1996 more (active) instances of acctngSelectionFile refer to it. If this value is modified once collection begins, collection into this file terminates and a new (or new version of the) file is immediately made ready for future collection (as if acctngFileCommand had been set to 'swapToNewFile'), but collection into the new (or new version of the) file does not begin until the value is subsequently set back to active." ::= { acctngFileEntry 13 } Expires May 1997 [Page 22] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- Overall Control acctngAdminStatus OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "A control object to indicate the administratively desired state of the collection of accounting records across all interfaces. Modifying the value of acctngAdminStatus to 'disabled' does not remove or change the current configuration as represented by the active rows in the acctngSelectionTable, acctngFileTable and acctngInterfaceTable tables." ::= { acctngInterfaceControl 1 } acctngOperStatus OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "A status object to indicate the operational state of the collection of accounting records across all interfaces. When the value of acctngAdminStatus is modified to be 'enabled', the value of this object will change to 'enabled' providing it is possible to begin collecting accounting records. When the value of acctngAdminStatus is modified to be 'disabled', the value of this object will change to 'disabled' as soon as the collection of accounting records has terminated." ::= { acctngInterfaceControl 2 } acctngProtection OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "A control object to protect against duplication of control commands. Over some transport/network protocols, it is possible for SNMP messages to get duplicated. Such duplication, if it occurred at just the wrong time could Expires May 1997 [Page 23] Internet-Draft Connection-Oriented Accounting MIB November 1996 cause serious disruption to the collection and retrieval of accounting data, e.g., if a SNMP message setting acctngFileCommand to 'swapToNewFile' were to be duplicated, a whole file of accounting data could be lost. To protect against such duplication, a management application should retrieve the value of this object, and include in the Set operation needing protection, a variable binding which sets this object to the retrieved value." ::= { acctngInterfaceControl 3 } acctngAgentMode OBJECT-TYPE SYNTAX INTEGER { swapOnCommand(1), swapOnFull(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "An indication of the behaviour mode of the agent when a file becomes full: 'swapOnCommand' - the agent does not automatically swap to a new file; rather, it discards newly collected data until a management application subsequently instructs it to swap to a new file. 'swapOnFull' - the agent terminates collection into the current file as and when that file becomes full." ::= { acctngInterfaceControl 4 } -- Per-interface control table acctngInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctngInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table controlling the collection of accounting data on specific interfaces of the switch." ::= { acctngInterfaceControl 5 } acctngInterfaceEntry OBJECT-TYPE SYNTAX AcctngInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION Expires May 1997 [Page 24] Internet-Draft Connection-Oriented Accounting MIB November 1996 "An entry which controls whether accounting data is to be collected on an interface. The types of interfaces which are represented in this table is implementation-specific." INDEX { ifIndex } ::= { acctngInterfaceTable 1 } AcctngInterfaceEntry ::= SEQUENCE { acctngInterfaceEnable TruthValue } acctngInterfaceEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether the collection of accounting data is enabled on this interface." ::= { acctngInterfaceEntry 1 } Expires May 1997 [Page 25] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- Objects for controlling the use of Notifications acctngControlTrapThreshold OBJECT-TYPE SYNTAX INTEGER (0..99) MAX-ACCESS read-write STATUS current DESCRIPTION "A percentage of the maximum file size at which a 'nearly- full' trap is generated. The value of 0 indicates that no 'nearly-full' trap is to be generated." ::= { acctngTrapControl 1 } acctngControlTrapEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "An indication of whether the acctngFileNearlyFull and acctngFileFull traps are enabled." ::= { acctngTrapControl 2 } Expires May 1997 [Page 26] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- notifications acctngNotifications OBJECT IDENTIFIER ::= { accountingControlMIB 3 } acctngNotifyPrefix OBJECT IDENTIFIER ::= { acctngNotifications 0 } acctngFileNearlyFull NOTIFICATION-TYPE OBJECTS { acctngFileIndex, acctngFileName, acctngFileMaximumSize, acctngControlTrapThreshold } STATUS current DESCRIPTION "An indication that the size of the file into which accounting information is currently being collected has exceeded the threshold percentage of its maximum file size. This notification is generated only at the time of the transition from not-exceeding to exceeding." ::= { acctngNotifyPrefix 1 } acctngFileFull NOTIFICATION-TYPE OBJECTS { acctngFileIndex, acctngFileName, acctngFileMaximumSize } STATUS current DESCRIPTION "An indication that the size of the file into which accounting information is currently being collected has transistioned to its maximum file size. This notification is generated at the time of the transition from not-full to full, and periodically thereafter until such time as collection of data is no longer inhibited by the file full condition." ::= { acctngNotifyPrefix 2 } Expires May 1997 [Page 27] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- conformance information acctngConformance OBJECT IDENTIFIER ::= { accountingControlMIB 4 } acctngGroups OBJECT IDENTIFIER ::= { acctngConformance 1 } acctngCompliances OBJECT IDENTIFIER ::= { acctngConformance 2 } acctngCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for switches which implement the Accounting Control MIB." MODULE -- this module MANDATORY-GROUPS { acctngBasicGroup, acctngNotificationsGroup } OBJECT acctngSelectionType SYNTAX BITS { svcIncoming(0), svcOutgoing(1) } DESCRIPTION "The minimal requirement is collection for SVCs." OBJECT acctngSelectionRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileCommand MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileFormat SYNTAX INTEGER { ber(2) } MIN-ACCESS read-only DESCRIPTION "Only the standard format is required, and write access is not required." OBJECT acctngFileMaximumSize MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileCollectMode SYNTAX BITS { onRelease(0) } MIN-ACCESS read-only Expires May 1997 [Page 28] Internet-Draft Connection-Oriented Accounting MIB November 1996 DESCRIPTION "The minimal requirement is for collection on connection release." OBJECT acctngFileInterval MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileCollectFailedAttempts MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT acctngFileRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { acctngCompliances 1 } Expires May 1997 [Page 29] Internet-Draft Connection-Oriented Accounting MIB November 1996 -- units of conformance acctngBasicGroup OBJECT-GROUP OBJECTS { acctngSelectionSubtree, acctngSelectionList, acctngSelectionFile, acctngSelectionType, acctngSelectionRowStatus, acctngFileName, acctngFileNameSuffix, acctngFileDescription, acctngFileCommand, acctngFileMaximumSize, acctngFileCurrentSize, acctngFileRowStatus, acctngFileFormat, acctngFileCollectMode, acctngFileCollectFailedAttempts, acctngFileInterval, acctngFileMinAge, acctngAdminStatus, acctngOperStatus, acctngProtection, acctngAgentMode, acctngInterfaceEnable, acctngControlTrapThreshold, acctngControlTrapEnable } STATUS current DESCRIPTION "A collection of objects providing control of the basic collection of accounting data for connection-oriented networks." ::= { acctngGroups 1 } acctngNotificationsGroup NOTIFICATIONS-GROUP OBJECTS { acctngFileNearlyFull, acctngFileFull } STATUS current DESCRIPTION "The notifications of events relating to controlling the collection of accounting data." ::= { acctngGroups 2 } END Expires May 1997 [Page 30] Internet-Draft Connection-Oriented Accounting MIB November 1996 5. Acknowledgements The comments of the IETF's AToM MIB Working Group are acknowledged. 6. References [1] 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. [2] McCloghrie, K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", STD 17, RFC 1213, March 1991. [3] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", RFC 1157, May 1990. [4] 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. [5] 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. [6] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Management Information Base for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1907, January 1996. [7] Information processing systems - Open Systems Interconnection, "Specification of Abstract Syntax Notation One (ASN.1)", International Organization for Standardization, Internation Standard 8824, December 1987. [8] Information processing systems - Open Systems Interconnection, "Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1)", International Organization for Standardization, Internation Standard 8825, December 1987. [9] McCloghrie, K., Heinanen, J., Greene, W., and A. Prasad, "Accounting Information for ATM Networks", Internet Draft, November 1996. Expires May 1997 [Page 31] Internet-Draft Connection-Oriented Accounting MIB November 1996 7. Security Considerations Security issues are not discussed in this memo. 8. Authors' Addresses Keith McCloghrie Cisco Systems, Inc. 170 West Tasman Drive, San Jose CA 95134-1706. Phone: +1 408 526 5260 Email: kzm@cisco.com Juha Heinanen Telecom Finland Inc. PO Box 228 SF-33101 Tampere Finland Phone: +358 49 500 958 EMail: jh@lohi.dat.tele.fi Wedge Greene MCI Telecommunications Corporation 901 International Parkway Richardson, Texas 75081 Phone: 214-498-1232 Email: wedgeg@mcimail.com Anil Prasad Cisco Systems, Inc. 1400 Parkmoor Avenue San Jose, CA 95126 Phone: 408-882-7209 E-mail: aprasad@strata.com Expires May 1997 [Page 32] Internet-Draft Connection-Oriented Accounting MIB November 1996 Table of Contents 1 Introduction .................................................... 2 2 The SNMP Network Management Framework ........................... 2 2.1 Object Definitions ............................................ 2 3 Overview ........................................................ 3 3.1 Operational Model ............................................. 3 3.2 Selection of Accounting Data .................................. 5 3.3 Format of Collection File ..................................... 6 4 Definitions ..................................................... 10 5 Acknowledgements ................................................ 31 6 References ...................................................... 31 7 Security Considerations ......................................... 32 8 Authors' Addresses .............................................. 32 Expires May 1997 [Page 33]