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]