Internet Engineering Task Force Nevil Brownlee INTERNET-DRAFT The University of Auckland June 1994 Accounting Meter Services MIB 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. This Internet Draft is a product of the Internet Accounting Working Group of the IETF. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. Abstract This memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in TCP/IP-based internets. In particular, this memo defines managed objects used for obtaining accounting information from network devices (meters). INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 Contents 1 The Network Management Framework . . . . . . . . . . . . . . . . . 2 2 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Format of Definitions . . . . . . . . . . . . . . . . . . . . . 3 3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1 Scope of Definitions . . . . . . . . . . . . . . . . . . . . . 4 3.2 Textual Conventions . . . . . . . . . . . . . . . . . . . . . . 4 4 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 37 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7 Security Considerations . . . . . . . . . . . . . . . . . . . . . . 38 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 38 1 The Network Management Framework The Internet-standard Network Management Framework consists of three components. They are: RFC 1155 which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. RFC 1212 defines a more concise description mechanism, which is wholly consistent with the SMI. RFC 1156 which defines MIB-I, the core set of managed objects for the Internet suite of protocols. RFC 1213 defines MIB-II, an evolution of MIB-I based on implementation experience and new operational requirements. RFC 1157, which defines the SNMP, the protocol used for network access to managed objects. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 2 Objects 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) [7] defined in the Nevil Brownlee [Page 2] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 SMI. In particular, each object has a name, a syntax, and an encoding. The name is an object identifier, an administratively assigned name, which specifies an object type. 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 OBJECT DESCRIPTOR, to also refer to the object type. The syntax of an object type defines the abstract data structure corresponding to that object type. The ASN.1 language is used for this purpose. However, the SMI [3] purposely restricts the ASN.1 constructs which may be used. These restrictions are explicitly made for simplicity. The encoding of an object type is simply how that object type is represented using the object type's syntax. Implicitly tied to the notion of an object type's syntax and encoding is how the object type is represented when being transmitted on the network. The SMI specifies the use of the basic encoding rules of ASN.1 [8], subject to the additional requirements imposed by the SNMP. 2.1 Format of Definitions Section 4 contains contains the specification of all object types contained in this MIB module. The object types are defined using the conventions defined in the SMI, as amended by the extensions specified in [9,10]. 3 Overview This memo defines the internet-accounting object. This object contains control, counter and state information related to the performance of the accounting function. In particular, the meter is assumed to be one which forwards PDUs, like a router, (counting PDUs as they enter or leave the device), or monitors the passage of PDUs, like a LAN monitor. The results are contain in FlowEntrys which are contained in the internet-accounting object. A managed system will have exactly (zero or) one internet-accounting object. 3.1 Scope of Definitions All objects defined in this memo are registered in a single subtree within the experimental namespace [3], and are for use in network device Nevil Brownlee [Page 3] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 which may perform a PDU forwarding or monitoring function. For these devices, the value of the ifSpecific variable in the MIB-II [4, 6] has the OBJECT IDENTIFIER value: internet-accounting OBJECT IDENTIFIER ::= experimental 99 as defined below. 3.2 Textual Conventions A number of fields are bit coded in this mib. We declare these fields as INTEGER, naming the individual bits as distinguished values. The value of such a field is the sum of of zero or more of these individual values. 4 Definitions -- Internet Accounting MIB $Revision: 2.2, 6 Jun 94 $ -- $Current-Author: nbrownlee $ -- $Original-Author: cbrooks $ -- Internet Accounting Management Information Base -- This following text defines an initial SNMP MIB for Internet -- Accounting. For additional details, see RFC 1272, "Internet -- Accounting: Background", C. Mills, D. Hirsch, and G. Ruth. -- A new version of the Internet Draft "Internet Accounting -- Architecture" is currently in preparation. ACCOUNTING-MIB DEFINITIONS ::= BEGIN IMPORTS experimental, OBJECT-TYPE, ObjectName, Counter, Gauge, NetworkAddress, TimeTicks FROM RFC1155-SMI TRAP-TYPE FROM RFC1215; internet-accounting OBJECT IDENTIFIER ::= { experimental 99 } acctControl OBJECT IDENTIFIER ::= { internet-accounting 1 } acctFlowdata OBJECT IDENTIFIER ::= { internet-accounting 2 } acctRuledata OBJECT IDENTIFIER ::= { internet-accounting 3 } acctActiondata OBJECT IDENTIFIER ::= { internet-accounting 4 } Nevil Brownlee [Page 4] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 -- The AddressTuple construct: -- In future might have any address for any layer in the protocol stack -- (session, presentation, transport, application). The intent here is -- to represent the fact that the address tuple field can contain many -- attributes. -- AddressTuple ::= SEQUENCE { -- interface [ 0] INTEGER OPTIONAL, -- interface -- adjacent_type [ 1] AddressType OPTIONAL, -- adjacent -- adjacent_address [ 2] NetWorkAddress OPTIONAL, -- adjacent_mask [ 3] NetWorkAddress OPTIONAL, -- peer_type [ 4] AddressType OPTIONAL, -- peer -- peer_address [ 5] NetWorkAddress OPTIONAL, -- peer_mask [ 6] NetWorkAddress OPTIONAL, -- transport_type [ 7] AddressType OPTIONAL, -- transport -- transpoprt_address [ 8] NetWorkAddress OPTIONAL, -- transport_mask [ 9] NetWorkAddress OPTIONAL, -- subscriber_id [10] OCTET STRING OPTIONAL -- subscriber -- subscriber_mask [11] OCTET STRING OPTIONAL -- } -- Within an address tuple the mask attributes are used to specify -- which parts of the addresses must match exactly when address tuples -- are compared. For example peer type = ipaddress, peer address = -- 130.216.0.0, peer mask = 255.255.0.0 would match any peer address -- representing an IP interface within network 130.216. -- As an example of types and values, here is an address tuple for a -- flow carrying a stream of SMTP data over an ethernet: -- adjacent type = ethernet, adjacent address = 02-07-01-04-ED-4A -- peer type = IP, peer address = 130.216.240.7 -- transport type = TCP, transport address = 25 (port number) -- The Network Address construct: -- The intent here is that this address type represent a choice of N-1 -- layer addresses based on the protocol layer at which accounting is -- done. For example, if accounting is being performed at the -- presentation level, then this address might be a session layer -- address; if done at the network level it might be an IP address. -- The level at which accounting is done is the "peer" level, N. -- In the following, "adjacent" means the level below the current level -- and "transport" means the level above it. For IP, the adjacent layer -- address might be the ethernet or 802 MAC layer address. A better -- encoding convention may be needed so that addresses at any layer can -- be specified unambiguously. Nevil Brownlee [Page 5] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 -- NetWorkAddress ::= CHOICE { -- adjacentLayerAddress [1] IMPLICIT OCTET STRING, -- ipAddress [2] IMPLICIT IpAddress, -- nsapAddress [3] IMPLICIT OCTET STRING, -- idprAddress [4] IMPLICIT OCTET STRING, -- decnetAddress [5] IMPLICIT OCTET STRING, -- ipxnetAddress [6] IMPLICIT OCTET STRING, -- ethertalkAddress [7] IMPLICIT OCTET STRING, -- transportAddress [8] IMPLICIT OCTET STRING -- } -- The AddressType type: -- The intent of this type is to indicate the type of address -- that is being recorded. This would probably be encoded as a -- tag in the above NetworkAddress type if using full ASN.1. Instead -- we explicitly call it out as a separate value, and instantiate it -- as a separate field. AddressType ::= INTEGER { adjacentlayer(1), ipaddress(2), nsapaddress(3), idpraddress(4), decnetaddress(5), ipxnetaddress(6), ethertalkaddress(7), transportaddress(8) } -- -- The Control Group -- acctHighWaterMark OBJECT-TYPE SYNTAX INTEGER (0..100) ACCESS read-write STATUS mandatory DESCRIPTION "A value expressed as a percent, interpreted by the meter as an indication of when to send a trap indicating that the management station should increase the polling frequency. Values of 0% or 100% disable the checking represented by this variable." ::= { acctControl 1 } acctFloodMark OBJECT-TYPE SYNTAX INTEGER (0..100) ACCESS read-write STATUS mandatory DESCRIPTION "A value expressed as a percent, interpreted by the meter as an indication of how full the flow record table should become Nevil Brownlee [Page 6] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 before the meter should panic and start dumping the contents of the flow table to the management station in raw form. 0% or 100% disables the checking represented by this variable." ::= { acctControl 2 } acctInactivityTimeout OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The time in seconds since the last packet seen (and the last report) after which the flow may be terminated." DEFVAL { 600 } -- 10 minutes ::= { acctControl 3 } acctFlowSamplingRate OBJECT-TYPE SYNTAX SEQUENCE OF FlowSamplingRate ACCESS not-accessible STATUS mandatory DESCRIPTION "One for each interface. The parameter N for statistical counting. Set to zero to count every packet on this interface. Set to N to count 1/Nth of the packets from this interface. A meter should choose its own algorithm to introduce variance into the sampling so that exactly every Nth packet is not counted. A sampling rate of 1 yields a normal counter." DEFVAL { 1 } -- Count every packet ::= { acctControl 4 } FlowSamplingRate ::= SEQUENCE { rate INTEGER } acctCollectorInfo OBJECT-TYPE SYNTAX SEQUENCE OF acctCollectorInfoEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about snmp peers which have collected flow data from this meter." ::= { acctControl 5 } acctCollectorInfoEntry OBJECT-TYPE SYNTAX AcctCollectorInfoEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about a particular collector." INDEX { acctCollectorIndex } ::= { acctCollectorInfo 1 } AcctCollectorInfoEntry ::= SEQUENCE { Nevil Brownlee [Page 7] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 acctCollectorIndex INTEGER, acctCollectorPeerAddress OCTET STRING, acctCollectorLastTime TIMETICKS, acctCollectorPreviousTime TIMETICKS } acctCollectorIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Selects an entry from the array of collector info entries." ::= { acctCollectorInfoEntry 1 } acctCollectorPeerAddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "Peer address of this collector." ::= { acctCollectorInfoEntry 2 } cacctCollectorLastTime OBJECT-TYPE SYNTAX TIMETICKS ACCESS read-only STATUS mandatory DESCRIPTION "Time this collector last began a collection." ::= { acctCollectorInfoEntry 3 } acctCollectorPreviousTime OBJECT-TYPE SYNTAX TIMETICKS ACCESS read-only STATUS mandatory DESCRIPTION "Time this collector began the collection before last." ::= { acctCollectorInfoEntry 4 } acctLastCollectTime OBJECT-TYPE SYNTAX TIMETICKS ACCESS read-write STATUS mandatory DESCRIPTION "Time last collection of meter data began. This variable will be written by a collector as the first step in making a collection. The meter will set its LastTime value to uptime and set its PreviousTime value to the old LastTime. This allows the meter to recover flows which have been inactive since PreviousTime, for these have been collected at least once. If the meter fails to write acctLastCollectTime, e.g. by failing authentication in the meter SNMP write community, Nevil Brownlee [Page 8] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 collection may still proceed but flows may not be recovered." ::= { acctControl 6 } acctRuleSetInfo OBJECT-TYPE SYNTAX SEQUENCE OF acctRuleInfoEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Array of information about the rule sets held in the meter, i.e. about each rule table and its accompanying action table. Rule set 1 is the meter default, used when the meter starts up. It may not be overwritten." ::= { acctControl 7 } acctRuleInfoEntry OBJECT-TYPE SYNTAX AcctRuleInfoEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Information about a particular rule set." INDEX { acctRuleInfoIndex } ::= { acctRuleSetInfo 1 } AcctRuleInfoEntry ::= SEQUENCE { acctRuleInfoIndex INTEGER, acctRuleInfoRuleSize INTEGER, acctRuleInfoActionSize INTEGER } acctRuleInfoIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Selects an entry from the array of rule set info entries." ::= { acctRuleInfoEntry 1 } acctRuleInfoRuleSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Number of rules in this table. Setting this variable will cause the meter to allocate space for these rules." ::= { acctRuleInfoEntry 2 } acctRuleInfoActionSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION Nevil Brownlee [Page 9] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 "Number of actions in this table. Setting this variable will cause the meter to allocate space for these actions, and will set the values of all variables in them to zero." ::= { acctRuleInfoEntry 3 } acctCurrentRuleSet OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Index to the arrays of rule and action tables. Specifies which set of rules and actions is currently being used for accounting by the meter. When the manager sets this variable the meter will close its current rule set and start using the new one. Flows created by the old rule set remain in memory, orphaned until their data has been collected." ::= { acctControl 8 } acctEmergencyRuleSet OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Index to the arrays of rule and action tables. After a declareDataLoss trap the meter may switch to using the emergency rule set. For this to be effective the manager must have downloaded an emergency rule set which uses a coarser collecting granularity." ::= { acctControl 9 } -- -- The Flow Table -- -- This is a table kept by a meter, with one entry for every flow -- currently being accounted for. -- The variables kept for each flow comprise: -- Housekeeping information for the flow. -- The flow's "counters", i.e. its octet and PDU counts for each -- direction and its first and last packet times. -- The flow's "keys", i.e. the information used to distinguish -- packets for this particular flow. -- Each flow has at least one key, but "aggregate" flows may have more -- than one key. Every key is associated with a single flow, and every -- PDU matching a key is counted in its associated flow's counters. -- Each packet which arrives at a meter is examined, and values for all -- the "key" variables are extracted and assembled into a "packet key". Nevil Brownlee [Page 10] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 -- The set of current keys is searched to see whether this flow has -- already been seen. If it has, the packet is simply counted; -- if not, the rules are consulted to create a new flow in which this -- packet may be counted. Once a flow has been created in this way a -- collector will have to read the flow's key data just once. After -- that the collector needs only to read the flow's counts from time to -- time. -- Each key has two AddressTuples, one for each of its end points. -- Flows are bidirectional and have two sets of counters, one for each -- of the two possible directions. Since we may be accounting for -- packets observed in transit along a network segment the choice of -- "to" and "from" direction is arbitrary; "source" and "destination" -- (abbreviated to "dest" elsewhere in this MIB) are specified for each -- flow by the rules in the current rule set. In the special case -- where the address tuples are identical all packets are counted in -- the "to" direction's counters. -- From time to time a collector may sweep the flow table so as collect -- counts. To reduce the number of SNMP requests required to do this, -- two further tables provide alternative windows into the flow table. -- The Creation Table allows a collector to find the first entry created -- after a specified time, then make successive getnext requests to find -- all other entries created since that time. Similarly, the Activity -- Table allows a collector to find all the entries last counted after -- a specified time. Note that it is not sensible for the meter to -- keep the Activity Table in LastTime order, since that would result -- in very active flows being counted many times during the same -- collection. -- This scheme allows multiple collectors to independently use the same -- meter; the collectors do not have to be synchronised and they may -- use different collection intervals. -- A meter may reclaim the memory space used by flows (or keys) for -- which no packets have been seen since lastCollectTime, or for an -- interval longer than the inactivityTimeout, whichever is the longer. -- The meter may reuse flow indexes for flows thus reclaimed. acctFlowTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctFlowEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The list of all flows being kept for accounting purposes on this system." ::= { acctFlowdata 1 } acctFlowEntry OBJECT-TYPE SYNTAX AcctFlowEntry ACCESS not-accessible Nevil Brownlee [Page 11] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 STATUS mandatory DESCRIPTION "The flow record for a particular flow." INDEX { acctFlowIndex } ::= { acctFlowTable 1 } AcctFlowEntry ::= SEQUENCE { acctFlowIndex INTEGER, acctFlowStatus INTEGER, acctFlowSourceInterface INTEGER, -- Source Address Tuple acctFlowSourceAdjacentType AddressType, acctFlowSourceAdjacentAddress OCTET STRING, acctFlowSourceAdjacentMask OCTET STRING, acctFlowSourcePeerType AddressType, acctFlowSourcePeerTypeMask AddressType, acctFlowSourcePeerAddress OCTET STRING, acctFlowSourcePeerMask OCTET STRING, acctFlowSourceTransType AddressType, acctFlowSourceTransTypeMask AddressType, acctFlowSourceTransAddress OCTET STRING, acctFlowSourceTransMask OCTET STRING, acctFlowSourceSubscriberID OCTET STRING, acctFlowSourceSubscriberMask OCTET STRING, acctFlowDestInterface INTEGER, -- Dest Address Tuple acctFlowDestAdjacentType AddressType, acctFlowDestAdjacentAddress OCTET STRING, acctFlowDestAdjacentMask OCTET STRING, acctFlowDestPeerType AddressType, acctFlowDestPeerTypeMask AddressType, acctFlowDestPeerAddress OCTET STRING, acctFlowDestPeerMask OCTET STRING, acctFlowDestTransType AddressType, acctFlowDestTransTypeMask AddressType, acctFlowDestTransAddress OCTET STRING, acctFlowDestTransMask OCTET STRING, acctFlowDestSubscriberID OCTET STRING, acctFlowDestSubscriberMask OCTET STRING, acctFlowSubscriberID OCTET STRING, -- Session attributes acctFlowSessionID INTEGER, acctFlowPDUScale INTEGER, -- Rule Set attributes acctFlowOctetScale INTEGER, acctFlowRuleSet INTEGER, acctFlowType INTEGER, acctFlowToOctets Counter, -- Source-to-Dest counters acctFlowToPDUs Counter, acctFlowFromOctets Counter, -- Dest-to-Source counters Nevil Brownlee [Page 12] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 acctFlowFromPDUs Counter, acctFlowFirstTime TimeTicks, -- Activity times acctFlowLastTime TimeTicks } acctFlowIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The bucket number for this flow. The different values for this variable need not be consecutive. Flow 1 is never used by the meter for a real flow. Instead it is used as an initial value for SNMP getnext requests when scanning the flow table." ::= { acctFlowEntry 1 } acctFlowStatus OBJECT-TYPE SYNTAX INTEGER { valid(1), invalid(2) } ACCESS read-only STATUS mandatory DESCRIPTION "Status of this flow. Allows all table rows to be collected via a simple table sweep, whilst throwing out all flows that are invalid." ::= { acctFlowEntry 2 } acctFlowSourceInterface OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Index of the interface associated with the source address for this flow. This value is one of the values contained in the ifIndex field of the interfaces table." ::= { acctFlowEntry 3 } acctFlowSourceAdjacentType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Adjacent address type of the source for this flow." ::= { acctFlowEntry 4 } acctFlowSourceAdjacentAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-only STATUS mandatory DESCRIPTION "Address of the adjacent device on the path for the source for this flow." Nevil Brownlee [Page 13] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ::= { acctFlowEntry 5 } acctFlowSourceAdjacentMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the adjacent source address for this flow." ::= { acctFlowEntry 6 } acctFlowSourcePeerType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Peer address type of the source for this flow." ::= { acctFlowEntry 7 } acctFlowSourcePeerTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the source peer type for this flow." ::= { acctFlowEntry 8 } acctFlowSourcePeerAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-only STATUS mandatory DESCRIPTION "Address of the peer device for the source of this flow." ::= { acctFlowEntry 9 } acctFlowSourcePeerMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the source peer address for this flow." ::= { acctFlowEntry 10 } acctFlowSourceTransType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Transport address type of the source for this flow." Nevil Brownlee [Page 14] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ::= { acctFlowEntry 11 } acctFlowSourceTransTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the source transport type for this flow." ::= { acctFlowEntry 12 } acctFlowSourceTransAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-only STATUS mandatory DESCRIPTION "Address of the transport device for the source of this flow." ::= { acctFlowEntry 13 } acctFlowSourceTransMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the transport source address for this flow." ::= { acctFlowEntry 14 } acctFlowSourceSubscriberID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "Subscriber ID associated with the source address for this flow." ::= { acctFlowEntry 15 } acctFlowSourceSubscriberMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the source Subsccriber ID for this flow." ::= { acctFlowEntry 16 } acctFlowDestInterface OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION Nevil Brownlee [Page 15] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 "Index of the interface associated with the dest address for this flow. This value is one of the values contained in the ifIndex field of the interfaces table." ::= { acctFlowEntry 17 } acctFlowDestAdjacentType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Adjacent address type of the destination for this flow." ::= { acctFlowEntry 18 } acctFlowDestAdjacentAddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "Address of the adjacent device on the path for the destination for this flow." ::= { acctFlowEntry 19 } acctFlowDestAdjacentMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the adjacent dest address for this flow." ::= { acctFlowEntry 20 } acctFlowDestPeerType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Peer address type of the destination for this flow." ::= { acctFlowEntry 21 } acctFlowDestPeerTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the dest peer address for this flow." ::= { acctFlowEntry 22 } acctFlowDestPeerAddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only Nevil Brownlee [Page 16] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 STATUS mandatory DESCRIPTION "Address of the peer device for the destination of this flow." ::= { acctFlowEntry 23 } acctFlowDestPeerMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the dest peer type for this flow." ::= { acctFlowEntry 24 } acctFlowDestTransType OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "Transport address type for the destination of this flow." ::= { acctFlowEntry 25 } acctFlowDestTransTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the dest transport type for this flow." ::= { acctFlowEntry 26 } acctFlowDestTransAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-only STATUS mandatory DESCRIPTION "Address of the transport device for the destination of this flow." ::= { acctFlowEntry 27 } acctFlowDestTransMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the transport destination address for this flow." ::= { acctFlowEntry 28 } acctFlowDestSubscriberID OBJECT-TYPE SYNTAX OCTET STRING Nevil Brownlee [Page 17] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ACCESS read-only STATUS mandatory DESCRIPTION "Subscriber ID associated with the dest address for this flow." ::= { acctFlowEntry 29 } acctFlowDestSubscriberMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "1-bits in this mask indicate which bits must match when comparing the dest Subsccriber ID for this flow." ::= { acctFlowEntry 30 } acctFlowSubscriberID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "Subscriber ID for this flow, not associated with flow direction." ::= { acctFlowEntry 31 } acctFlowSessionID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory DESCRIPTION "Session ID for this flow. Such an ID might be allocated by a network access server to distinguish a series of sessions between the same pair of addresses, which would otherwise appear to be parts of the same accounting flow" ::= { acctFlowEntry 32 } acctFlowPDUScale OBJECT-TYPE SYNTAX INTEGER (1..127) ACCESS read-only STATUS mandatory DESCRIPTION "The scale factor applied to this particular flow. Indicates the number of bits the PDU counter values should be moved left to obtain the actual values." ::= { acctFlowEntry 33 } acctFlowOctetScale OBJECT-TYPE SYNTAX INTEGER (1..127) ACCESS read-only STATUS mandatory DESCRIPTION Nevil Brownlee [Page 18] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 "The scale factor applied to this particular flow. Indicates the number of bits the octet counter values should be moved left to obtain the actual values." ::= { acctFlowEntry 34 } acctFlowRuleSet OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The rule set which created this flow." ::= { acctFlowEntry 35 } acctFlowType OBJECT-TYPE SYNTAX INTEGER { count(1), tally(2), aggregate(3) } ACCESS read-only STATUS mandatory DESCRIPTION "Type of flow. Details are given for acctRuleAction (below)." ::= { acctFlowEntry 36 } acctFlowToOctets OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The count of octets flowing from source to dest address and being delivered to the protocol level being metered. In the case of IP this would count the number of octets delivered to the IP level." ::= { acctFlowEntry 37 } acctFlowToPDUs OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The count of protocol packets flowing from source to dest address and being delivered to the protocol level being metered. In the case of IP, for example, this would count the IP packets delivered to the IP protocol level." ::= { acctFlowEntry 38 } acctFlowFromOctets OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The count of octets flowing from dest to source address and being delivered to the protocol level being metered." Nevil Brownlee [Page 19] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ::= { acctFlowEntry 39 } acctFlowFromPDUs OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory DESCRIPTION "The count of protocol packets flowing from dest to source address and being delivered to the protocol level being metered. In the case of IP, for example, this would count the IP packets delivered to the IP protocol level." ::= { acctFlowEntry 40 } acctFlowFirstTime OBJECT-TYPE SYNTAX Timeticks ACCESS read-only STATUS mandatory DESCRIPTION "The time at which this flow was first entered in the table" ::= { acctFlowEntry 41 } acctFlowLastTime OBJECT-TYPE SYNTAX Timeticks ACCESS read-only STATUS mandatory DESCRIPTION "The last time this flow had activity, i.e. the time of arrival of the last PDU belonging to this flow." ::= { acctFlowEntry 42 } -- -- The Creation Table -- acctCreationTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctCreationEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Window into the Flow Table. Allows a collector to find all flows wich were created after a given time." ::= { acctFlowdata 2 } acctCreationEntry OBJECT-TYPE SYNTAX AcctCreationEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The Creation Entry for a particular flow." INDEX { acctCreationTime, acctCreationIndex } Nevil Brownlee [Page 20] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ::= { acctCreationTable 1 } AcctCreationEntry ::= SEQUENCE { acctCreationTime TimeTicks, acctCreationIndex INTEGER } acctCreationTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "Earliest time after which a required flow could have been created." ::= { acctCreationEntry 1 } acctCreationIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Index of next entry in flow table created after Creation Time." ::= { acctCreationEntry 2 } -- -- The Activity Table -- acctActivityTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctActivityEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Window into the Flow Table. Allows a collector to find all flows wich were last used after a given time." ::= { acctFlowdata 3 } acctActivityEntry OBJECT-TYPE SYNTAX AcctActivityEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The Activity Entry for a particular flow." INDEX { acctActivityTime, acctActivityIndex } ::= { acctActivityTable 1 } AcctActivityEntry ::= SEQUENCE { acctActivitytTime TimeTicks, acctActivityIndex INTEGER } Nevil Brownlee [Page 21] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 acctActivityTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "Earliest time after which a required flow could have been active." ::= { acctActivityEntry 1 } acctActivityIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Index of next entry in flow table active after Active Time." ::= { acctActivityEntry 2 } -- -- The Activity Column Table -- acctActivityColumnTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctColumnEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Window into the Flow Table. Allows a collector to find all flows wich were last used after a given time, and to retrieve data values for a specified attribute of each active flow." ::= { acctFlowdata 4 } acctColumnEntry OBJECT-TYPE SYNTAX AcctColumnEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The Activity Column Entry for a particular flow." INDEX { acctColumnAttribute, acctColumnTime, acctColumnIndex } ::= { acctActivityColumnTable 1 } AcctColumnEntry ::= SEQUENCE { acctColumnAttribute INTEGER, acctColumntTime TimeTicks, acctColumnIndex INTEGER, acctColumnData OPAQUE } acctColumnAttribute OBJECT-TYPE SYNTAX INTEGER { Null(0), FlowIndex(1),FlowStatus(2), Nevil Brownlee [Page 22] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 FlowSourceInterface(3), -- Source Address Tuple FlowSourceAdjacentType(4), FlowSourceAdjacentAddress(5),FlowSourceAdjacentMask(6), FlowSourcePeerType(7),FlowSourcePeerTypeMask(8), FlowSourcePeerAddress(9),FlowSourcePeerMask(10), FlowSourceTransType(11),FlowSourceTransTypeMask(12), FlowSourceTransAddress(13),FlowSourceTransMask(14), FlowSourceSubscriberID(15),FlowSourceSubscriberMask(16), FlowDestInterface(17), -- Dest Address Tuple FlowDestAdjacentType(18), FlowDestAdjacentAddress(19),FlowDestAdjacentMask(20), FlowDestPeerType(21),FlowDestPeerTypeMask(22), FlowDestPeerAddress(23),FlowDestPeerMask(24), FlowDestTransType(25),FlowDestTransTypeMask(26), FlowDestTransAddress(27),FlowDestTransMask(28), FlowDestSubscriberID(29),FlowDestSubscriberMask(30), FlowSubscriberID(31), -- Session attributes FlowSessionID(32), FlowPDUScale(33), -- Rule Set attributes FlowOctetScale(34), FlowRuleSet(35), FlowType(36), FlowToOctets(37), -- Source-to-Dest counters FlowToPDUs(38), FlowFromOctets(39), -- Dest-to-Source counters FlowFromPDUs(40), FlowFirstTime(41), -- Activity times FlowLastTime(42) } ACCESS read-only STATUS mandatory DESCRIPTION "Attribute for which values are required from active flows." ::= { acctColumnEntry 1 } acctColumnTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "Earliest time after which a required flow could have been active." ::= { acctColumnEntry 2 } acctColumnIndex OBJECT-TYPE SYNTAX INTEGER Nevil Brownlee [Page 23] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ACCESS read-only STATUS mandatory DESCRIPTION "Index of next entry in flow table active after acctColumnTime." ::= { acctColumnEntry 3 } acctColumnFlowData OBJECT-TYPE SYNTAX OPAQUE ACCESS read-only STATUS mandatory DESCRIPTION "Collection of attribute data for flows active after acctColumnTime. Within the opaque object is a sequence of { flow -1, attribute value } pairs, one for each active flow. The end of the sequence is marked by a flow -1 value of 0 if there are no more rows in this column, and 1 otherwise. The format of onjects inside acctColumnFlowData is as follows. All numbers are unsigned. Numbers and strings appear with their high-order bytes leading. flow-1 is a two-byte number; other numbers are fixed size, as specified by their SYNTAX in the flow table (above), i.e. one byte for acctAddressType and small constants, and four bytes for Counter and Timeticks. Octet Strings are variable-length, with the length given in a single leading byte." ::= { acctColumnEntry 4 } -- -- The Rule Table -- -- This is an array of rule tables; the one in use is selected by -- CurrentRuleSet. To change the rule set the manager chooses a set -- number which is not in use, downloads the new rule set there, then -- writes the new set number into CurrentRuleSet. Several rule sets -- can be held in a meter so that the manager can change the rules -- easily, for example with time of day. Note that the manager may -- not change rules in the current rule set! acctRuleTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctRuleEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The list of rules used to determine the granularity of accounting data." ::= { acctRuledata 1 } Nevil Brownlee [Page 24] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 acctRuleEntry OBJECT-TYPE SYNTAX AcctRuleEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The rule record itself." INDEX { acctRuleSet, acctRuleIndex } ::= { acctRuleTable 1 } AcctRuleEntry ::= SEQUENCE { acctRuleSet INTEGER, acctRuleIndex INTEGER, acctRuleSelector INTEGER, -- what to select on acctRuleMask OCTET STRING, -- mask value acctRuleMatchedValue OCTET STRING, -- matched value acctRuleAction INTEGER, -- action to take acctRuleJumpIndex INTEGER -- where to go } acctRuleSet OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Selects a table from the array of rule tables." ::= { acctRuleEntry 1 } acctRuleIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The -1 into the Rule table. N.B: These values will often be consecutive, given the fall-through semantics of processing the table." ::= { acctRuleEntry 2 } acctRuleSelector OBJECT-TYPE SYNTAX INTEGER { Null(0), -- FlowIndex(1),FlowStatus(2), FlowSourceInterface(3), FlowSourceAdjacentType(4),FlowSourceAdjacentAddress(5), -- FlowSourceAdjacentMask(6), FlowSourcePeerType(7), -- FlowSourcePeerTypeMask(8), FlowSourcePeerAddress(9), -- FlowSourcePeerMask(10), FlowSourceTransType(11), -- FlowSourceTransTypeMask(12), FlowSourceTransAddress(13), Nevil Brownlee [Page 25] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 -- FlowSourceTransMask(14), FlowSourceSubscriberID(15), -- FlowSourceSubscriberMask(16), FlowDestInterface(17), FlowDestAdjacentType(18),FlowDestAdjacentAddress(19), -- FlowDestAdjacentMask(20), FlowDestPeerType(21), -- FlowDestPeerTypeMask(22), FlowDestPeerAddress(23), -- FlowDestPeerMask(24), FlowDestTransType(25), -- FlowDestTransTypeMask(26), FlowDestTransAddress(27), -- FlowDestTransMask(28), FlowDestSubscriberID(29), -- FlowDestSubscriberMask(30), FlowSubscriberID(31),FlowSessionID(32), } ACCESS read-write STATUS mandatory DESCRIPTION "Defines the source of the value to match. Null(0) is a special case; it always succeeds. Values 1 to 50 may select a flow attribute. Only the attributes not commented out in the list above are allowed. Values 51 to 55 select meter variables, each of which can hold the name (i.e. selector value) of an address attribute. When one of these is used as a selector, its value specifies the attribute to be tested. Variable values are set by an assign action." ::= { acctRuleEntry 3 } acctRuleMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "The initial mask used to compute the desired value, encoded as an OCTET STRING. If the mask is zero the rule will always succeed. This is required for assign actions, which might otherwise fail." ::= { acctRuleEntry 4 } acctRuleMatchedValue OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write Nevil Brownlee [Page 26] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 STATUS mandatory DESCRIPTION "The resulting value to be matched for equality. Specifically, if the attribute chosen by the acctRuleSelector logically ANDed with the mask specified by the acctRuleMask equals the value specified in the acctRuleMatchedValue, then continue processing the table entry based on the action specified by the acctRuleAction entry. Otherwise, proceed to the next entry in the rule table." ::= { acctRuleEntry 5 } acctRuleAction OBJECT-TYPE SYNTAX INTEGER { count(1), tally(2), aggregate(3), succeed(4), fail(5), pushto(6), popto(7), goto(8), gosub(9), return(10), assign(11) } ACCESS read-write STATUS mandatory DESCRIPTION "The action to be taken if there is a match between this rule and the PDU being considered. The meter maintains a pattern stack (i.e. a stack ofindexes for rules which have been successfully matched), and a return stack (i.e. a stack of return addresses for rule-matching subroutines). Count(1) adds the PDU into a count based on the ActionEntry acctAction[acctRuleJumpIndex]. Each flow in a count is a copy of its ActionEntry with values and masks overwritten by those from the stack of matched rules. The user must ensure that every flow in the count uses the same set of masks. Tally(2) adds the PDU into a tally based on the ActionEntry acctAction[acctRuleJumpIndex]. Each flow in a Tally is a copy of its ActionEntry with values taken from the PDU for attributes having non-zero masks in the ActionEntry. ActionEntry. Aggregate(3) adds the PDU into an aggregate based on the ActionEntry acctAction[acctRuleJumpIndex]. There is only one flow in an aggregate; it is a copy of its ActionEntry. Succeed(4) has two effects, depending on the RuleJumpIndex value. If this is zero, rule matching stops and a successful match is reported. The PDU will not be counted, and the meter will not try to match it again. If the RuleJumpIndex is not zero, it specifies a target rule. The action for the target rule is executed immediately, as though that rule had just succeeded. Fail(5) terminates rule matching and indicates that the PDU was not matched. The meter may try to match it again, for example with the source and dest keys interchanged. Nevil Brownlee [Page 27] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 Pushto(6) tells the meter to use RuleJumpIndex as the -1 of the next rule to match. It also pushes the current rule -1 onto the pattern stack. Popto(7) tells the meter to use RuleJumpIndex as the -1 of the next rule to match. It also deletes the top entry from the pattern stack. Goto(8) tells the meter to use RuleJumpIndex as the -1 of the next rule to match. The pattern stack is not changed. GoSub(9) calls a rule-matching subroutine. RuleJumpIndex is used as the -1 of the next rule to match, and the meter pushes the current rule -1+1 onto the return stack. Return(10) returns from a rule-matching subroutine. The return rule -1 is popped from the return stack and added to RuleJumpIndex to select a target rule. The action for the target rule is executed immediately, allowing rule-matching subroutines to return a result. Assign(11) sets the value of a meter variable. The variable is specified by acctRuleSelector, and its value is set to RuleJumpIndex." ::= { acctRuleEntry 6 } acctRuleJumpIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "An -1 into the Rule table. Where to restart the search. Must take on one of the values allowed for acctRuleIndex." ::= { acctRuleEntry 7 } -- -- The Action Table -- acctActionTable OBJECT-TYPE SYNTAX SEQUENCE OF AcctActionEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The list of values used to create flowEntries for flows matching entries in the rule table (above)." ::= { acctActiondata 1 } acctActionEntry OBJECT-TYPE SYNTAX AcctActionEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The rule action record." Nevil Brownlee [Page 28] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 INDEX { acctActionSet, acctActionIndex } ::= { acctActionTable 1 } AcctActionEntry ::= SEQUENCE { acctActionIndex INTEGER, acctActionStatus INTEGER, acctActionSourceInterface INTEGER, -- Source AddressTuple acctActionSourceAdjacentType AddressType, acctActionSourceAdjacentAddress OCTET STRING, acctActionSourceAdjacentMask OCTET STRING, acctActionSourcePeerType AddressType, acctActionSourcePeerTypeMask AddressType, acctActionSourcePeerAddress OCTET STRING, acctActionSourcePeerMask OCTET STRING, acctActionSourceTransType AddressType, acctActionSourceTransTypeMask AddressType, acctActionSourceTransAddress OCTET STRING, acctActionSourceTransMask OCTET STRING, acctActionSourceSubscriberID OCTET STRING, acctActionSourceSubscriberMask OCTET STRING, acctActionDestInterface INTEGER, -- Dest AddressTuple acctActionDestAdjacentType AddressType, acctActionDestAdjacentAddress OCTET STRING, acctActionDestAdjacentMask OCTET STRING, acctActionDestPeerType AddressType, acctActionDestPeerTypeMask AddressType, acctActionDestPeerAddress OCTET STRING, acctActionDestPeerMask OCTET STRING, acctActionDestTransType AddressType, acctActionDestTransTypeMask AddressType, acctActionDestTransAddress OCTET STRING, acctActionSoDestTransMask OCTET STRING, acctActionDestSubscriberID OCTET STRING, acctActionDestSubscriberMask OCTET STRING, acctActionSubscriberID OCTET STRING, -- Session attributes acctActionSessionID INTEGER, acctActionPDUScale INTEGER, -- Rule Set attributes acctActionOctetScale INTEGER acctActionSet INTEGER, } -- Most of the variables in acctActionEntry provide values for the -- corresponding variables in acctFlowEntry. For their descriptions -- please refer to their definitions in acctFlowEntry. acctActionIndex OBJECT-TYPE SYNTAX INTEGER Nevil Brownlee [Page 29] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ACCESS read-write STATUS mandatory DESCRIPTION "The -1 into the Action table." ::= { acctActionEntry 1 } acctActionStatus OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 2 } acctActionSourceInterface OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 3 } acctActionSourceAdjacentType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 4 } acctActionSourceAdjacentAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 5 } acctActionSourceAdjacentMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 6 } acctActionSourcePeerType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 7 } acctActionSourcePeerTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-write Nevil Brownlee [Page 30] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 8 } acctActionSourcePeerAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 9 } acctActionSourcePeerMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 10 } acctActionSourceTransType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 11 } acctActionSourceTransTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 12 } acctActionSourceTransAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 13 } acctActionSourceTransMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 14 } acctActionSourceSubscriberID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" Nevil Brownlee [Page 31] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ::= { acctActionEntry 15 } acctActionSourceSubscriberMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 16 } acctActionDestInterface OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 17 } acctActionDestAdjacentType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 18 } acctActionDestAdjacentAddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 19 } acctActionDestAdjacentMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 20 } acctActionDestPeerType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 21 } acctActionDestPeerTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 22 } Nevil Brownlee [Page 32] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 acctActionDestPeerAddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 23 } acctActionDestPeerMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 24 } acctActionDestTransType OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 25 } acctActionDestTransTypeMask OBJECT-TYPE SYNTAX AddressType ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 26 } acctActionDestTransAddress OBJECT-TYPE SYNTAX OCTET STRING -- actually NetworkAddress ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 27 } acctActionDestTransMask OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 28 } acctActionDestSubscriberID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 29 } acctActionDestSubscriberMask OBJECT-TYPE SYNTAX OCTET STRING Nevil Brownlee [Page 33] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 30 } acctActionSubscriberID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 31 } acctActionSessionID OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 32 } acctActionPDUScale OBJECT-TYPE SYNTAX INTEGER (1..127) ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 33 } acctActionOctetScale OBJECT-TYPE SYNTAX INTEGER (1..127) ACCESS read-write STATUS mandatory DESCRIPTION "" ::= { acctActionEntry 34 } acctActionSet OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "Selects a table from the array of action tables." ::= { acctActionEntry 35 } -- -- Internet Accounting Traps -- declareHighWater TRAP-TYPE ENTERPRISE { internet-accounting } VARIABLES { highWaterMark } DESCRIPTION "Sent by the meter to the management host to Nevil Brownlee [Page 34] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 indicate that the high water mark has been exceeded. This should be interpreted by the management host as a request to increase the polling frequency. N.B: this trap is optional. Meters are not required to implement this trap; management hosts are not required to increase their polling frequency." ::= 1 declareDataLoss TRAP-TYPE ENTERPRISE { internet-accounting } DESCRIPTION "Sent by the meter to the management host to indicate that usage data is being lost." ::= 2 declareFlood TRAP-TYPE ENTERPRISE { internet-accounting } DESCRIPTION "This trap contains, as part of the trap body, Internet Accounting flow records. The assumption here is that these flow records will be send as Opaque values, allowing an escape to more transported ASN.1 types." ::= 3 END 5 Acknowledgements This document was produced under the auspices of the IETF's Accounting Working Group with assistance from SNMP and SAAG working groups. 6 References [1] Cerf, V., "IAB Recommendations for the Development of Internet Network Management Standards", RFC 1052, NRI, April 1988. [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review Group", RFC 1109, NRI, August 1989. [3] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", RFC 1155, Performance Systems International, Hughes LAN Systems, May 1990. Nevil Brownlee [Page 35] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 [4] McCloghrie K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1156, Hughes LAN Systems, Performance Systems International, May 1990. [5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol (SNMP), RFC 1157, SNMP Research, Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990. [6] McCloghrie K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1213, Performance Systems International, March 1991. [7] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization, International Standard 8824, December 1987. [8] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization, International Standard 8825, December 1987. [9] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991. [10] Mills, C., Hirsch, G. and Ruth, G., "Internet Accounting Background", RFC 1272, Bolt Beranek and Newman Inc., Meridian Technology Corporation, November 1991. [11] Mills, C., Laube, K. and Ruth, G., "Internet Accounting Architecture", Internet Draft, Bolt Beranek and Newman Inc., July 1992. [12] McCloghrie, K., Editor, "Extensions to the Generic-Interface MIB", RFC 1229, Hughes LAN Systems, May 1991. 7 Security Considerations Security issues are not discussed in this document. Nevil Brownlee [Page 36] INTERNET-DRAFT Accounting Meter Services Experimental MIB June 1994 8 Author's Address Nevil Brownlee Computer Centre The University of Auckland Private Bag 92019 Auckland, New Zealand Phone: 64 9 373 7599 x8941 EMail: n.brownlee @auckland.ac.nz Cyndi Mills BBN Systems and Technologies 10 Moulton St Cambridge Mass. 02138 Phone: 1 617 873 4143 Email: cmills@bbn.com Nevil Brownlee [Page 37] Expires in six months