1 ACCOUNTING-CONTROL-MIB DEFINITIONS ::= BEGIN
4 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
5 mib-2, Integer32 FROM SNMPv2-SMI
6 TEXTUAL-CONVENTION, RowStatus, TestAndIncr,
7 DisplayString, TruthValue FROM SNMPv2-TC
8 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
13 accountingControlMIB MODULE-IDENTITY
14 LAST-UPDATED "9809281000Z"
15 ORGANIZATION "IETF AToM MIB Working Group"
16 CONTACT-INFO "Keith McCloghrie
18 170 West Tasman Drive,
19 San Jose CA 95134-1706.
20 Phone: +1 408 526 5260
23 "The MIB module for managing the collection and storage of
24 accounting information for connections in a connection-
25 oriented network such as ATM."
29 acctngMIBObjects OBJECT IDENTIFIER ::= { accountingControlMIB 1 }
31 acctngSelectionControl OBJECT IDENTIFIER ::= { acctngMIBObjects 1 }
32 acctngFileControl OBJECT IDENTIFIER ::= { acctngMIBObjects 2 }
33 acctngInterfaceControl OBJECT IDENTIFIER ::= { acctngMIBObjects 3 }
34 acctngTrapControl OBJECT IDENTIFIER ::= { acctngMIBObjects 4 }
36 -- Textual Conventions
39 DataCollectionSubtree ::= TEXTUAL-CONVENTION
42 "The subtree component of a (subtree, list) tuple. Such a
43 (subtree, list) tuple defines a set of objects and their
44 values to be collected as accounting data for a connection.
45 The subtree specifies a single OBJECT IDENTIFIER value such
46 that each object in the set is named by the subtree value
47 appended with a single additional sub-identifier."
48 SYNTAX OBJECT IDENTIFIER
50 DataCollectionList ::= TEXTUAL-CONVENTION
53 "The list component of a (subtree, list) tuple. Such a
54 (subtree, list) tuple defines a set of objects and their
55 values to be collected as accounting data for a connection.
56 The subtree specifies a single OBJECT IDENTIFIER value such
57 that each object in the set is named by the subtree value
58 appended with a single additional sub-identifier. The list
59 specifies a set of data items, where the presence of an item
60 in the list indicates that the item is (to be) present in
61 the data collected for a connection; the absence of an item
62 from the list indicates that the item is not (to be) present
63 in the data collected for a connection. Each data item is
64 represented by an integer which when appended (as as
65 additional sub-identifier) to the OBJECT IDENTIFIER value of
66 the subtree identified by the tuple, is the name of an
67 object defining that data item (its description and its
70 The list is specified as an OCTET STRING in which each data
71 item is represented by a single bit, where data items 1
72 through 8 are represented by the bits in the first octet,
73 data items 9 through 16 by the bits in the second octet,
74 etc. In each octet, the lowest numbered data item is
75 represented by the most significant bit, and the highest
76 numbered data item by the least significant bit. A data
77 item is present in the list when its bit is set, and absent
78 when its bit is reset. If the length of an OCTET STRING
79 value is too short to represent one or more data items
80 defined in a subtree, then those data items are absent from
81 the set identified by the tuple of that subtree and that
83 SYNTAX OCTET STRING (SIZE(0..8))
85 FileIndex ::= TEXTUAL-CONVENTION
88 "An arbitrary integer value identifying a file into which
89 accounting data is being collected."
90 SYNTAX Integer32 (1..65535)
93 -- The Accounting Information Selection table
95 acctngSelectionTable OBJECT-TYPE
96 SYNTAX SEQUENCE OF AcctngSelectionEntry
97 MAX-ACCESS not-accessible
100 "A list of accounting information selection entries.
102 Note that additions, modifications and deletions of entries
103 in this table can occur at any time, but such changes only
104 take effect on the next occasion when collection begins into
105 a new file. Thus, between modification and the next 'swap',
106 the content of this table does not reflect the current
108 ::= { acctngSelectionControl 1 }
110 acctngSelectionEntry OBJECT-TYPE
111 SYNTAX AcctngSelectionEntry
112 MAX-ACCESS not-accessible
115 "An entry identifying an (subtree, list) tuple used to
116 select a set of accounting information which is to be
118 INDEX { acctngSelectionIndex }
119 ::= { acctngSelectionTable 1 }
121 AcctngSelectionEntry ::=
123 acctngSelectionIndex Integer32,
124 acctngSelectionSubtree DataCollectionSubtree,
125 acctngSelectionList DataCollectionList,
126 acctngSelectionFile FileIndex,
127 acctngSelectionType BITS,
128 acctngSelectionRowStatus RowStatus
131 acctngSelectionIndex OBJECT-TYPE
132 SYNTAX Integer32 (1..65535)
133 MAX-ACCESS not-accessible
136 "An arbitrary integer value which uniquely identifies a
137 tuple stored in this table. This value is required to be
138 the permanent 'handle' for an entry in this table for as
139 long as that entry exists, including across restarts and
141 ::= { acctngSelectionEntry 1 }
143 acctngSelectionSubtree OBJECT-TYPE
144 SYNTAX DataCollectionSubtree
145 MAX-ACCESS read-create
148 "The combination of acctngSelectionSubtree and
149 acctngSelectionList specifies one (subtree, list) tuple
150 which is to be collected."
151 ::= { acctngSelectionEntry 2 }
153 acctngSelectionList OBJECT-TYPE
154 SYNTAX DataCollectionList
155 MAX-ACCESS read-create
158 "The combination of acctngSelectionSubtree and
159 acctngSelectionList specifies one (subtree, list) tuple
160 which is to be collected."
161 ::= { acctngSelectionEntry 3 }
163 acctngSelectionFile OBJECT-TYPE
165 MAX-ACCESS read-create
168 "An indication of the file into which the accounting
169 information identified by this entry is to be stored. If
170 there is no conceptual row in the acctngFileTable for which
171 the value of acctngFileIndex has the same value as this
172 object, then the information selected by this entry is not
174 ::= { acctngSelectionEntry 4 }
176 acctngSelectionType OBJECT-TYPE
177 SYNTAX BITS { svcIncoming(0),
187 MAX-ACCESS read-create
190 "Indicates the types of connections for which the
191 information selected by this entry are to be collected."
192 DEFVAL { { svcIncoming, svcOutgoing,
193 svpIncoming, svpOutgoing } }
194 ::= { acctngSelectionEntry 5 }
196 acctngSelectionRowStatus OBJECT-TYPE
198 MAX-ACCESS read-create
201 "The status of this conceptual row. An agent may refuse to
202 create new conceptual rows and/or modify existing conceptual
203 rows, if such creation/modification would cause multiple
204 rows to have the same values of acctngSelectionSubtree and
207 A conceptual row can not have the status of 'active' until
208 values have been assigned to the acctngSelectionSubtree,
209 acctngSelectionList and acctngSelectionFile columnar objects
212 An agent must not refuse to change the values of the
213 acctngSelectionSubtree, acctngSelectionList and
214 acctngSelectionFile columnar objects within a conceptual row
215 even while that row's status is 'active'. Similarly, an
216 agent must not refuse to destroy an existing conceptual row
217 while the file referenced by that row's instance of
218 acctngSelectionFile is in active use, i.e., while the
219 corresponding instance of acctngFileRowStatus has the value
220 'active'. However, such changes only take effect upon the
221 next occasion when collection begins into a new (version of
223 ::= { acctngSelectionEntry 6 }
225 -- The Accounting File table
227 acctngFileTable OBJECT-TYPE
228 SYNTAX SEQUENCE OF AcctngFileEntry
229 MAX-ACCESS not-accessible
232 "A list of files into which accounting information is to be
234 ::= { acctngFileControl 1 }
236 acctngFileEntry OBJECT-TYPE
237 SYNTAX AcctngFileEntry
238 MAX-ACCESS not-accessible
241 "An entry identifying a file into which accounting
242 information is to be collected."
243 INDEX { acctngFileIndex }
244 ::= { acctngFileTable 1 }
248 acctngFileIndex FileIndex,
249 acctngFileName DisplayString,
250 acctngFileNameSuffix DisplayString,
251 acctngFileDescription DisplayString,
252 acctngFileCommand INTEGER,
253 acctngFileMaximumSize Integer32,
254 acctngFileCurrentSize Integer32,
255 acctngFileFormat INTEGER,
256 acctngFileCollectMode BITS,
257 acctngFileCollectFailedAttempts BITS,
258 acctngFileInterval Integer32,
259 acctngFileMinAge Integer32,
260 acctngFileRowStatus RowStatus
263 acctngFileIndex OBJECT-TYPE
265 MAX-ACCESS not-accessible
268 "A unique value identifying a file into which accounting
269 data is to be stored. This value is required to be the
270 permanent 'handle' for an entry in this table for as long as
271 that entry exists, including across restarts and power
273 ::= { acctngFileEntry 1 }
275 acctngFileName OBJECT-TYPE
276 SYNTAX DisplayString (SIZE(1..32))
277 MAX-ACCESS read-create
280 "The name of the file into which accounting data is to be
281 stored. If files are named using suffixes, then the name of
282 the current file is the concatenation of acctngFileName and
283 acctngFileNameSuffix.
285 An agent will respond with an error (e.g., 'wrongValue') to
286 a management set operation which attempts to modify the
287 value of this object to the same value as already held by
288 another instance of acctngFileName. An agent will also
289 respond with an error (e.g., 'wrongValue') if the new value
290 is invalid for use as a file name on the local file system
291 (e.g., many file systems do not support white space embedded
294 The value of this object can not be modified while the
295 corresponding instance of acctngFileRowStatus is 'active'."
296 ::= { acctngFileEntry 2 }
298 acctngFileNameSuffix OBJECT-TYPE
299 SYNTAX DisplayString (SIZE(0..8))
303 "The suffix, if any, of the name of a file into which
304 accounting data is currently being stored. If suffixes are
305 not used, then the value of this object is the zero-length
306 string. Note that if a separator, such as a period, is used
307 in appending the suffix to the file name, then that
308 separator appears as the first character of this value."
309 ::= { acctngFileEntry 3 }
311 acctngFileDescription OBJECT-TYPE
313 MAX-ACCESS read-create
316 "The textual description of the accounting data which will
317 be stored (on the next occasion) when header information is
318 stored in the file. The value of this object may be
319 modified at any time."
321 ::= { acctngFileEntry 4 }
323 acctngFileCommand OBJECT-TYPE
325 -- the following two values are states:
326 -- they may be read but not written
329 -- the following two values are actions:
330 -- they may be written, but are never read
334 MAX-ACCESS read-create
337 "A control object for the collection of accounting data.
338 When read the value is either 'idle' or 'cmdInProgress'.
339 Writing a value is only allowed when the current value is
340 'idle'. When a value is successfully written, the value
341 changes to 'cmdInProgress' until completion of the action,
342 at which time the value reverts to 'idle'. Actions are
343 invoked by writing the following values:
345 'swapToNewFile' - the collection of data into the current
346 file is terminated, and collection continues into
347 a new (version of the) file.
349 'collectNow' - the agent creates and stores a connection
350 record into the current file for each active
351 connection having a type matching
352 acctngSelectionType and an age greater than
355 ::= { acctngFileEntry 5 }
357 acctngFileMaximumSize OBJECT-TYPE
358 SYNTAX Integer32 (100..2147483647)
360 MAX-ACCESS read-create
363 "The maximum size of the file (including header
364 information). When the file of collected data reaches this
365 size, either the agent automatically swaps to a new version
366 (i.e., a new value acctngFileNameSuffix) of the file, or new
367 records are discarded. Since a file must contain an
368 integral number of connection records, the actual maximum
369 size of the file may be just less OR Just greater than the
370 value of this object.
372 The value of this object can not be modified while the
373 corresponding instance of acctngFileRowStatus is 'active'.
374 The largest value of the maximum file size in some agents
375 will be less than 2147483647 bytes."
377 ::= { acctngFileEntry 6 }
379 acctngFileCurrentSize OBJECT-TYPE
380 SYNTAX Integer32 (0..2147483647)
385 "The current size of the file into which data is currently
386 being collected, including header information."
387 ::= { acctngFileEntry 7 }
389 acctngFileFormat OBJECT-TYPE
390 SYNTAX INTEGER { other(1), ber(2) }
391 MAX-ACCESS read-create
394 "An indication of the format in which the accounting data is
395 to be stored in the file. If the value is modified, the new
396 value takes effect after the next 'swap' to a new file. The
397 value ber(2) indicates the standard format."
399 ::= { acctngFileEntry 8 }
401 acctngFileCollectMode OBJECT-TYPE
402 SYNTAX BITS { onRelease(0), periodically(1) }
403 MAX-ACCESS read-create
406 "An indication of when accounting data is to be written into
407 this file. Note that in addition to the occasions indicated
408 by the value of this object, an agent always writes
409 information on appropriate connections to the file when the
410 corresponding instance of acctngFileCommand is set to
413 - 'onRelease' - whenever a connection (or possibly,
414 connection attempt) is terminated, either through
415 a Release message or through management removal,
416 information on that connection is written.
418 - 'periodically' - information on appropriate connections
419 is written on the expiry of a periodic timer,
421 This value may be modified at any time."
422 DEFVAL { { onRelease } }
423 ::= { acctngFileEntry 9 }
425 acctngFileCollectFailedAttempts OBJECT-TYPE
426 SYNTAX BITS { soft(0), regular(1) }
427 MAX-ACCESS read-create
430 "An indication of whether connection data is to be collected
431 for failed connection attempts when the value of the
432 corresponding instance of acctngFileCollectMode includes
433 'onRelease'. The individual values have the following
436 'soft' - indicates that connection data is to be collected
437 for failed Soft PVCs/PVPs which originate or terminate at
438 the relevant interface.
440 'regular' - indicates that connection data is to be
441 collected for failed SVCs, including Soft PVCs/PVPs not
442 originating or terminating at the relevant interface.
444 This value may be modified at any time."
445 DEFVAL { { soft, regular } }
446 ::= { acctngFileEntry 10 }
448 acctngFileInterval OBJECT-TYPE
449 SYNTAX Integer32 (60..86400)
451 MAX-ACCESS read-create
454 "The number of seconds between the periodic collections of
455 accounting data when the value of the corresponding instance
456 of acctngFileCollectMode includes 'periodically'. Some
457 agents may impose restrictions on the range of this
458 interval. This value may be modified at any time."
460 ::= { acctngFileEntry 11 }
462 acctngFileMinAge OBJECT-TYPE
463 SYNTAX Integer32 (60..86400)
465 MAX-ACCESS read-create
468 "The minimum age of a connection, as used to determine the
469 set of connections for which data is to be collected at the
470 periodic intervals and/or when acctngFileCommand is set to
471 'collectNow'. The age of a connection is the elapsed time
472 since it was last installed.
474 When the periodic interval expires for a file or when
475 acctngFileCommand is set to 'collectNow', accounting data is
476 collected and stored in the file for each connection having
477 a type matching acctngSelectionType and whose age at that
478 time is greater than the value of acctngFileMinAge
479 associated with the file. This value may be modified at any
482 ::= { acctngFileEntry 12 }
484 acctngFileRowStatus OBJECT-TYPE
486 MAX-ACCESS read-create
489 "The status of this conceptual row.
491 This object can not be set to 'active' until a value has
492 been assigned to the corresponding instance of
493 acctngFileName. Collection of data into the file does not
494 begin until this object has the value 'active' and one or
495 more (active) instances of acctngSelectionFile refer to it.
496 If this value is modified after a collection has begun,
497 collection into this file terminates and a new (or new
498 version of the) file is immediately made ready for future
499 collection (as if acctngFileCommand had been set to
500 'swapToNewFile'), but collection into the new (or new
501 version of the) file does not begin until the value is
502 subsequently set back to active."
503 ::= { acctngFileEntry 13 }
507 acctngAdminStatus OBJECT-TYPE
508 SYNTAX INTEGER { enabled(1), disabled(2) }
509 MAX-ACCESS read-write
512 "A control object to indicate the administratively desired
513 state of the collection of accounting records across all
516 Modifying the value of acctngAdminStatus to 'disabled' does
517 not remove or change the current configuration as
518 represented by the active rows in the acctngSelectionTable,
519 acctngFileTable and acctngInterfaceTable tables."
520 ::= { acctngInterfaceControl 1 }
522 acctngOperStatus OBJECT-TYPE
523 SYNTAX INTEGER { enabled(1), disabled(2) }
527 "A status object to indicate the operational state of the
528 collection of accounting records across all interfaces.
530 When the value of acctngAdminStatus is modified to be
531 'enabled', the value of this object will change to 'enabled'
532 providing it is possible to begin collecting accounting
535 When the value of acctngAdminStatus is modified to be
536 'disabled', the value of this object will change to
537 'disabled' as soon as the collection of accounting records
539 ::= { acctngInterfaceControl 2 }
541 acctngProtection OBJECT-TYPE
543 MAX-ACCESS read-write
546 "A control object to protect against duplication of control
547 commands. Over some transport/network protocols, it is
548 possible for SNMP messages to get duplicated. Such
549 duplication, if it occurred at just the wrong time could
550 cause serious disruption to the collection and retrieval of
551 accounting data, e.g., if a SNMP message setting
552 acctngFileCommand to 'swapToNewFile' were to be duplicated,
553 a whole file of accounting data could be lost.
555 To protect against such duplication, a management
556 application should retrieve the value of this object, and
557 include in the Set operation needing protection, a variable
558 binding which sets this object to the retrieved value."
559 ::= { acctngInterfaceControl 3 }
561 acctngAgentMode OBJECT-TYPE
562 SYNTAX INTEGER { swapOnCommand(1), swapOnFull(2) }
566 "An indication of the behaviour mode of the agent when a
569 'swapOnCommand' - the agent does not automatically swap
570 to a new file; rather, it discards newly collected
571 data until a management application subsequently
572 instructs it to swap to a new file.
574 'swapOnFull' - the agent terminates collection into the
575 current file as and when that file becomes full."
576 ::= { acctngInterfaceControl 4 }
579 -- Per-interface control table
581 acctngInterfaceTable OBJECT-TYPE
582 SYNTAX SEQUENCE OF AcctngInterfaceEntry
583 MAX-ACCESS not-accessible
586 "A table controlling the collection of accounting data on
587 specific interfaces of the switch."
588 ::= { acctngInterfaceControl 5 }
590 acctngInterfaceEntry OBJECT-TYPE
591 SYNTAX AcctngInterfaceEntry
592 MAX-ACCESS not-accessible
595 "An entry which controls whether accounting data is to be
596 collected on an interface. The types of interfaces which
597 are represented in this table is implementation-specific."
599 ::= { acctngInterfaceTable 1 }
601 AcctngInterfaceEntry ::=
603 acctngInterfaceEnable TruthValue
606 acctngInterfaceEnable OBJECT-TYPE
608 MAX-ACCESS read-write
611 "Indicates whether the collection of accounting data is
612 enabled on this interface."
613 ::= { acctngInterfaceEntry 1 }
615 -- Objects for controlling the use of Notifications
617 acctngControlTrapThreshold OBJECT-TYPE
618 SYNTAX INTEGER (0..99)
619 MAX-ACCESS read-write
622 "A percentage of the maximum file size at which a 'nearly-
623 full' trap is generated. The value of 0 indicates that no
624 'nearly-full' trap is to be generated."
625 ::= { acctngTrapControl 1 }
627 acctngControlTrapEnable OBJECT-TYPE
629 MAX-ACCESS read-write
632 "An indication of whether the acctngFileNearlyFull and
633 acctngFileFull traps are enabled."
634 ::= { acctngTrapControl 2 }
638 acctngNotifications OBJECT IDENTIFIER ::= { accountingControlMIB 2 }
640 acctngNotifyPrefix OBJECT IDENTIFIER ::= { acctngNotifications 0 }
643 acctngFileNearlyFull NOTIFICATION-TYPE
644 OBJECTS { acctngFileName,
645 acctngFileMaximumSize,
646 acctngControlTrapThreshold,
647 acctngFileNameSuffix }
650 "An indication that the size of the file into which
651 accounting information is currently being collected has
652 exceeded the threshold percentage of its maximum file size.
653 This notification is generated only at the time of the
654 transition from not-exceeding to exceeding."
655 ::= { acctngNotifyPrefix 1 }
658 acctngFileFull NOTIFICATION-TYPE
659 OBJECTS { acctngFileName,
660 acctngFileMaximumSize,
661 acctngFileNameSuffix }
664 "An indication that the size of the file into which
665 accounting information is currently being collected has
666 transistioned to its maximum file size. This notification
667 is generated (for all values of acctngAgentMode) at the time
668 of the transition from not-full to full. If acctngAgentMode
669 has the value 'swapOnCommand', it is also generated
670 periodically thereafter until such time as collection of
671 data is no longer inhibited by the file full condition."
672 ::= { acctngNotifyPrefix 2 }
675 -- conformance information
677 acctngConformance OBJECT IDENTIFIER ::= { accountingControlMIB 3 }
678 acctngGroups OBJECT IDENTIFIER ::= { acctngConformance 1 }
679 acctngCompliances OBJECT IDENTIFIER ::= { acctngConformance 2 }
681 acctngCompliance MODULE-COMPLIANCE
684 "The compliance statement for switches which implement the
685 Accounting Control MIB."
687 MODULE -- this module
688 MANDATORY-GROUPS { acctngBasicGroup,
689 acctngNotificationsGroup }
691 OBJECT acctngSelectionType
692 SYNTAX BITS { svcIncoming(0), svcOutgoing(1) }
693 DESCRIPTION "The minimal requirement is collection for SVCs."
695 OBJECT acctngSelectionRowStatus
697 DESCRIPTION "Write access is not required."
699 OBJECT acctngFileName
701 DESCRIPTION "Write access is not required."
703 OBJECT acctngFileCommand
705 DESCRIPTION "Write access is not required."
707 OBJECT acctngFileFormat
708 SYNTAX INTEGER { ber(2) }
710 DESCRIPTION "Only the standard format is required, and write
711 access is not required."
713 OBJECT acctngFileMaximumSize
715 DESCRIPTION "Write access is not required."
717 OBJECT acctngFileCollectMode
718 SYNTAX BITS { onRelease(0) }
720 DESCRIPTION "The minimal requirement is for collection on
723 OBJECT acctngFileInterval
725 DESCRIPTION "Write access is not required."
727 OBJECT acctngFileCollectFailedAttempts
729 DESCRIPTION "Write access is not required."
731 OBJECT acctngFileRowStatus
733 DESCRIPTION "Write access is not required."
735 ::= { acctngCompliances 1 }
738 -- units of conformance
740 acctngBasicGroup OBJECT-GROUP
741 OBJECTS { acctngSelectionSubtree, acctngSelectionList,
742 acctngSelectionFile, acctngSelectionType,
743 acctngSelectionRowStatus, acctngFileName,
744 acctngFileNameSuffix, acctngFileDescription,
745 acctngFileCommand, acctngFileMaximumSize,
746 acctngFileCurrentSize, acctngFileRowStatus,
747 acctngFileFormat, acctngFileCollectMode,
748 acctngFileCollectFailedAttempts, acctngFileInterval,
750 acctngAdminStatus, acctngOperStatus,
751 acctngProtection, acctngAgentMode,
752 acctngInterfaceEnable,
753 acctngControlTrapThreshold,
754 acctngControlTrapEnable
758 "A collection of objects providing control of the basic
759 collection of accounting data for connection-oriented
761 ::= { acctngGroups 1 }
763 acctngNotificationsGroup NOTIFICATION-GROUP
764 NOTIFICATIONS { acctngFileNearlyFull, acctngFileFull }
767 "The notifications of events relating to controlling the
768 collection of accounting data."
769 ::= { acctngGroups 2 }