1CISCO-DATA-COLLECTION-MIB DEFINITIONS ::= BEGIN
2
3IMPORTS
4        MODULE-IDENTITY, OBJECT-TYPE,
5        Unsigned32, NOTIFICATION-TYPE,
6        zeroDotZero                        FROM SNMPv2-SMI
7        TEXTUAL-CONVENTION, RowStatus,
8        DisplayString, TruthValue,
9        DateAndTime, RowPointer,
10        VariablePointer                    FROM SNMPv2-TC
11        MODULE-COMPLIANCE,
12        OBJECT-GROUP,
13        NOTIFICATION-GROUP                 FROM SNMPv2-CONF
14        SnmpTagValue                       FROM SNMP-TARGET-MIB
15        SnmpAdminString                    FROM SNMP-FRAMEWORK-MIB
16        ciscoMgmt                          FROM CISCO-SMI;
17
18ciscoDataCollectionMIB MODULE-IDENTITY
19    LAST-UPDATED "200210300530Z"
20    ORGANIZATION "Cisco Systems, Inc."
21    CONTACT-INFO "Cisco Systems
22                  Customer Service
23
24                  Postal: 170 W Tasman Drive
25                  San Jose, CA  95134
26                  USA
27
28                  Tel: +1 800 553-NETS
29
30                  E-mail: cs-snmp@cisco.com"
31    DESCRIPTION
32        "The MIB module allows a management application to
33         select a set of MIB object instances whose values need
34         to be collected on a periodic basis. The term 'data' in
35         the context of this MIB is used to generically refer to
36         the values of the selected set of object instances.
37
38         Once the required setup is done, the MIB implementation
39         carries out the following periodic tasks:
40           - collects the required object values into local
41             file-like entities called VFiles (virtual files).
42           - transfers the VFiles to specified locations.
43           - carries out VFile management operations.
44
45         Some of the key features of this MIB are:
46           a) Allows grouping of MIB objects into groups called
47              data groups. The constraint is that the MIB objects
48              grouped into a data group, need to have the same
49              semantic MIB index. So it is possible to group MIB
50              objects belonging to different MIB tables into a
51              single data group as long as the above constraint is
52              met.
53              For e.g. it is possible to group ifInOctets from
54              ifTable, ifHCInOctets from ifXTable,
55              dot3StatsExcessiveCollisions from dot3StatsTable
56              into a single data group.
57
58           b) Allows the application to specify a set of instances
59              (of the MIB objects in a data group) whose values
60              need to be collected.
61
62           c) The required data can be collected for each such
63              data group on a periodic basis into a virtual file
64              (VFile). A VFile is an abstraction of a file.
65
66           d) The format of the contents of the VFile, can be
67              specified by the application.
68
69           e) An application can also specify a collection period.
70              A collection period is an interval of time during
71              which data is collected into a VFile. After the
72              collection period ends, the VFile is frozen, and a
73              new VFile is created for storing data. The frozen
74              VFile is then transferred to a specified destination.
75              An application can choose to retain such frozen
76              VFiles on the device for a certain period of time,
77              called the retention period.
78
79                  Data Collection MIB vs Bulkfile MIB
80                  ***********************************
81            The data collection MIB can pretty much do what the
82            CISCO-BULK-FILE-MIB (Bulkfile MIB) can do. The 'manual'
83            mode of the Data collection MIB is similar to the way
84            in which the Bulkfile MIB operates.
85
86            However the data collection MIB is mainly targetted
87            for medium to high-end platforms which have sufficient
88            local storage (volatile or permanent) to store VFiles.
89            Locally storing VFiles, helps minimize loss of data
90            during temporary network outages. If the local store
91            is permament, then the collected data is also available
92            across agent restarts.
93
94            The data collection MIB has more powerful data
95            selection features than the Bulkfile MIB. It allows
96            grouping of MIB objects from different tables into
97            data groups. It also incorporates a more flexible
98            instance selection mechanism, where the application
99            is not restricted to fetching an entire MIB table.
100
101                         Definitions:
102                         ************
103             Base objects:
104             *************
105             MIB objects whose values an application needs to
106             collect.
107
108             Data group:
109             ***********
110             A group of base objects. Can be of 2 types: 'object'
111             and 'table'. An 'object' type data group can consist
112             of only one fully instantiated base object. A 'table'
113             type data group can consist of more than one base
114             objects, each a columnar object in a conceptual
115             table. In addition a 'table' type data group can
116             specify the instances of the base objects whose
117             values need to be collected. In the context of this
118             MIB, collecting data for a data group means fetching
119             the values of the associated base object instances
120             and storing them into VFiles.
121
122             Virtual File (VFile):
123             *********************
124             A VFile is a file like entity used to collect data.
125             An agent might choose to implement a VFile as a
126             simple in-memory buffer, or it might choose to
127             use a file in it's filesystem. An application does
128             not really need to know the location of a VFile
129             - the MIB provides mechanisms to transfer the
130             VFile to application specified locations. However
131             if the implementation supports it, the application
132             can specify the location of the VFiles.
133
134             Current VFile:
135             **************
136             The VFile into which data is currently being
137              collected.
138
139             Frozen VFile:
140             *************
141             A VFile which is no longer used for collecting
142             data. Only frozen VFiles can be transferred to
143             specified destinations.
144
145             Collection interval:
146             ********************
147             A collection interval is associated with a VFile.
148             It is the interval of time over which a VFile
149             is used to collect data.
150             This interval of time can be specified by the
151             application. However there are conditions under
152             which a collection interval can be shorter than
153             the specified time. For e.g. a collection
154             interval is prematurely terminated when the
155             maximum size of a VFile is exceeded, or when
156             there is an error condition.
157
158             Polling period:
159             ***************
160             A polling period is associated with a data
161             group. It determines the frequency at which
162             the base objects of a data group should
163             be fetched and stored into a VFile.
164
165             Data collection operations:
166             **************************
167             A generic term used to refer to operations
168             that are carried out while collecting data.
169             These include:
170                - Periodically creating new VFiles for
171                  collecting data.
172                - Transferring frozen VFiles either
173                  automatically or on demand.
174                - Fetching base object values and storing
175                  them into current VFiles, either periodically
176                  or on demand.
177                - Deleting frozen VFiles, either periodically
178                  or on demand."
179    REVISION     "200210300530Z"
180    DESCRIPTION
181            "Initial Version."
182    ::= { ciscoMgmt 312}
183
184ciscoDataCollMIBNotifs
185              OBJECT IDENTIFIER ::= { ciscoDataCollectionMIB 0 }
186
187ciscoDataCollMIBObjects
188              OBJECT IDENTIFIER ::= { ciscoDataCollectionMIB 1 }
189
190ciscoDataCollMIBConformance
191              OBJECT IDENTIFIER ::= { ciscoDataCollectionMIB 2 }
192
193--
194-- MIB OBJECTS
195--
196cdcVFile
197              OBJECT IDENTIFIER ::= { ciscoDataCollMIBObjects 1 }
198
199cdcDataGroup
200              OBJECT IDENTIFIER ::= { ciscoDataCollMIBObjects 2 }
201
202cdcFileXfer
203              OBJECT IDENTIFIER ::= { ciscoDataCollMIBObjects 3 }
204
205--
206-- Textual conventions
207--
208CdcCollectionSubtree ::= TEXTUAL-CONVENTION
209    STATUS       current
210    DESCRIPTION
211        "The subtree component of a (subtree, list) tuple.
212         The purpose of a tuple is to identify the columns
213         (base objects) in a 'table' type data group.
214
215         The subtree specifies a single OBJECT IDENTIFIER value such
216         that each object in the set is named by the subtree value
217         appended with a single additional sub-identifier derived from
218         the list component of the tuple.
219
220         A typical example would be the OBJECT IDENTIFER of the
221         fooEntry construct in a MIB table.
222         e.g. ifEntry."
223
224    SYNTAX       OBJECT IDENTIFIER
225
226CdcCollectionList ::= TEXTUAL-CONVENTION
227    STATUS       current
228    DESCRIPTION
229        "The list component of a (subtree, list) tuple. The purpose of
230         a tuple is to identify the base objects of a 'table' type
231         data group.
232
233         The subtree specifies a single OBJECT IDENTIFIER value such
234         that each object in the set is named by the subtree value
235         appended with a single additional sub-identifier. The list
236         specifies a set of data items, where the presence of an item
237         in the list indicates that the item is selected as a column
238         of the 'table' type data group; the absence of an item
239         from the list indicates that the item is not selected as a
240         column of the 'table' type data group.
241         Each data item is represented by an integer which when
242         appended (as as additional sub-identifier) to the OBJECT
243         IDENTIFIER value of the subtree identified by the tuple, is
244         the name of an object defining that data item (its description
245         and its syntax).
246
247         The list is specified as an OCTET STRING in which each data
248         item is represented by a single bit, where data items 1
249         through 8 are represented by the bits in the first octet,
250         data items 9 through 16 by the bits in the second octet,
251         etc.  In each octet, the lowest numbered data item is
252         represented by the most significant bit, and the highest
253         numbered data item by the least significant bit.  A data
254         item is present in the list when its bit is set, and absent
255         when its bit is reset.  If the length of an OCTET STRING
256         value is too short to represent one or more data items
257         defined in a subtree, then those data items are absent from
258         the set identified by the tuple of that subtree and that
259         OCTET STRING value."
260
261    SYNTAX       OCTET STRING (SIZE(0..16))
262
263CdcRowInstanceId ::= TEXTUAL-CONVENTION
264    STATUS       current
265    DESCRIPTION
266        "A fragment of a OBJECT IDENTIFIER (OID). It is used to
267         specify the instances of the base objects whose values
268         need to be fetched. To comply with the definition of an
269         OBJECT IDENTIFIER, the first two sub-ids of a
270         CdcRowInstanceId value is {0,0}. "
271
272    SYNTAX        OBJECT IDENTIFIER
273
274CdcUrl ::= TEXTUAL-CONVENTION
275    STATUS       current
276    DESCRIPTION
277        "Represents a string that contains a Uniformed Resource
278         Locator as defined in RFC 1738."
279
280    SYNTAX       OCTET STRING (SIZE(0..255))
281
282CdcFileFormat ::= TEXTUAL-CONVENTION
283    STATUS       current
284    DESCRIPTION
285        "The file formats supported are:
286
287         cdcBulkASCII        ASCII format similar to
288                             the 'bulkASCII' format of the
289                             CISCO-BULK-FILE-MIB.
290
291         cdcBulkBinary       Binary format similar to
292                             the 'bulkBinary' format of the
293                             CISCO-BULK-FILE-MIB.
294
295         cdcSchemaASCII      Again an ASCII format, but contains
296                             parser friendly hints for parsing data
297                             values.
298
299         Format descriptions :
300         ---------------------
301
302         The below description applies to cdcBulkASCII & cdcBulkBinary
303         and is extracted from CISCO-BULK-FILE-MIB. Some differences are
304         highlighted below:
305
306         1) Data for a single data group can be collected more than
307            once into the same VFile (due to periodic polling). Each
308            such instance of a data group, can be treated much like
309            different 'table' types in the CISCO-BULK-FILE-MIB.
310
311         2) Every object & table tag contains an additional sysUpTime
312            field. Similarly each row tag contains the value of the
313            sysUpTime when the data for that row was collected.
314
315          The rest of the description is taken from the
316          CISCO-BULK-FILE-MIB.
317          The file contains two types of fields: tags and data. Tags
318          identify portions of the file and are discussed in detail
319          below.  All other information is in data fields.
320
321          Note: For efficiency and compactness data fields are not
322          tagged with a type.  The interpreter of the data must thus
323          know or have access to appropriate MIB syntax descriptions to
324          understand the file.
325
326          All data fields are positional relative to a tag and every
327          data field has a length prefix.  All initial length prefixes
328          are one byte.  For any data type the distinguished length
329          value 255 indicates that the data content is null, that is,
330          no data content value was available and there are no
331          additional bytes in the data field.
332
333          INTEGER data fields include all data that maps to ASN.1
334          INTEGER, regardless of length and whether signed or unsigned.
335          They have a length prefix value of zero to eight, followed by
336          that many bytes of data, high-order byte first.  High order
337          bytes that are all zero are omitted, thus a length of zero
338          indicates a value of zero.  For signed numbers, leading bytes
339          of all ones (hex FF) are omitted if the next remaining byte
340          has the high bit on.  This implies that the file parser must
341          know the difference between signed and unsigned integers.
342
343          OCTET STRING values have a length prefix value of zero to two
344          for a subsequent unsigned byte count for the number of bytes
345          in the OCTET STRING itself, which immediately follows the
346          byte count.  The byte count can thus range from zero to 65,535.
347
348          OBJECT IDENTIFIER values have a length of zero to 128, for
349          the number of sub-identifiers.  Each subsequent
350          sub-identifier is encoded as an unsigned INTEGER of 0-4 bytes.
351
352          The bulk binary file layout directly reflects the contents of
353          the cbfDefineFileObjectTable.  It has tagged sections
354          corresponding to cbfDefineObjectClass with a few additional
355          tags for utility purposes.
356          A tag is one byte with one of the following values:
357               -2      row
358               -1      prefix
359                0      reserved
360                2      table
361
362          The prefix tag changes the default OID prefix that is assumed
363          to precede all OIDs that are not MIB object data values.  The
364          prefix tag may appear anywhere another tag could appear.  A
365          prefix tag is followed by one OID data field.  The default
366          prefix is 1.3.6.1. A file need not set the prefix to the
367          default value.  Note that when changing the prefix, the
368          default portion must be included at the beginning of the new
369          prefix.  Typically the prefix will change for each table or
370          group of scalar objects.
371
372          A table tag is followed by one INTEGER data field whose value
373          is the number of columns in the table (including the
374          sysUpTime column), as implemented by the agent. This is
375          followed by an OID field containing the sysUpTime OID. This
376          is followed by one OID data field for each column.  This is
377          the OID for the column minus the prefix and the instance
378          (typically one subidentifier).
379
380          The OIDs are then followed by one row for each row in the
381          table. A row starts with a row tag, one OID data field
382          containing only the instance portion of the OIDs for the
383          objects in that row and one data field indicating the
384          sysUpTime when the row was sampled.
385          Following this is one data field of appropriate type for each
386          column.
387
388          The bulk ASCII form mechanically translates bulk binary into
389          human-readable text.
390
391          The indicator for a null value is '~'.
392
393          An INTEGER becomes the integer value with a preceding '-' for
394          negative values and no leading zeros.
395
396          An OCTET STRING becomes the byte values in hexadecimal, lower
397          case, two characters per byte (that is, with leading zeros),
398          no delimiters between bytes.
399
400          An OBJECT IDENTIFIER becomes the usual dotted decimal form.
401
402          A tag becomes the tag's name, spelled out fully in lower
403          case, followed by one blank and the data field(s) for the
404          tag, separated by spaces and ending with a carriage
405          return/line feed.  All tags are at the beginning of a 'line'
406          that is terminated with a carriage return/line feed that
407          immediately precedes the next tag or the end of file."
408
409    SYNTAX       INTEGER {
410                        cdcBulkASCII(1),
411                        cdcBulkBinary(2),
412                        cdcSchemaASCII(3)
413                 }
414
415CdcFileXferStatus ::= TEXTUAL-CONVENTION
416    STATUS       current
417    DESCRIPTION
418        "The status of a file transfer. The different values are given
419         below:
420
421         notStarted             File transfer has not started.
422         success                File transfer has successfully
423                                completed.
424         aborted                File transfer has been aborted.
425         fileOpenFailRemote     Remote file could not be opened.
426         badDomainName          Bad domain name given in the URL.
427         unreachableIpAddress   IP address given in the URL could not
428                                be reached.
429         networkFailure         Transfer failed due to a network
430                                failure.
431         fileWriteFailed        A write on the remote file has
432                                failed.
433         authFailed             Authentication failed. For instance
434                                incorrect password in CdcUrl incase
435                                of FTP(File Transfer Protocol)."
436
437    SYNTAX      INTEGER {
438                        notStarted(1),
439                        success(2),
440                        aborted(3),
441                        fileOpenFailRemote(4),
442                        badDomainName(5),
443                        unreachableIpAddress(6),
444                        networkFailed(7),
445                        fileWriteFailed(8),
446                        authFailed(9)
447                }
448
449--
450-- VFile related objects.
451--
452cdcVFilePersistentStorage OBJECT-TYPE
453    SYNTAX      TruthValue
454    MAX-ACCESS  read-only
455    STATUS      current
456    DESCRIPTION
457        "This object's value reads 'true', if the agent
458         implementation of this MIB supports placement of VFiles in
459         application specified persistent storage locations. Otherwise
460         the value is 'false'."
461    ::= { cdcVFile 1 }
462
463cdcVFileMaxSizeHitsLimit OBJECT-TYPE
464    SYNTAX      Unsigned32 (1..4294967295)
465    MAX-ACCESS  read-write
466    STATUS      current
467    DESCRIPTION
468        "A global limit for the number of consecutive times the
469         maximum VFile size (cdcVFileMaxSize) is exceeded for a
470         given VFile. When this limit is exceeded the offending
471         cdcVFileEntry is moved to the error state (see
472         cdcVFileOperStatus)."
473    DEFVAL { 3 }
474    ::= { cdcVFile 2 }
475
476--
477-- Table for setting up virtual files.
478--
479cdcVFileTable OBJECT-TYPE
480    SYNTAX      SEQUENCE OF CdcVFileEntry
481    MAX-ACCESS  not-accessible
482    STATUS      current
483    DESCRIPTION
484        "A table for setting up VFiles for collecting data."
485    ::= { cdcVFile 3 }
486
487cdcVFileEntry OBJECT-TYPE
488    SYNTAX      CdcVFileEntry
489    MAX-ACCESS  not-accessible
490    STATUS      current
491    DESCRIPTION
492        "An entry in the cdcVFileTable. Each entry contains
493         application specified configuration that is used to create
494	 virtual files (VFile) and start data collection operations.
495
496	 A VFile is used to store data (values of base object
497         instances) as selected by entities called data groups.
498         A data group is defined in cdcDGTable.
499
500         An entry in this table is said to be 'activated' when the
501         corresponding instances of cdcVFileRowStatus is 'active' AND
502         cdcVFileOperStatus is 'enabled'. The value of sysUpTime.0 when
503         the condition evaluates to 'true' is called the activation
504         time of the entry. The activation time for each entry is
505         maintained internally by the agent."
506    INDEX { cdcVFileIndex }
507    ::= { cdcVFileTable 1 }
508
509CdcVFileEntry ::= SEQUENCE {
510    cdcVFileIndex                    Unsigned32,
511    cdcVFileName                     DisplayString,
512    cdcVFileDescription              SnmpAdminString,
513    cdcVFileCommand                  INTEGER,
514    cdcVFileMaxSize                  Unsigned32,
515    cdcVFileCurrentSize              Unsigned32,
516    cdcVFileFormat                   CdcFileFormat,
517    cdcVFileCollectMode              INTEGER,
518    cdcVFileCollectionPeriod         Unsigned32,
519    cdcVFileRetentionPeriod          Unsigned32,
520    cdcVFileAdminStatus              INTEGER,
521    cdcVFileOperStatus               INTEGER,
522    cdcVFileErrorCode                INTEGER,
523    cdcVFileCollectionErrorEnable    TruthValue,
524    cdcVFileRowStatus                RowStatus
525}
526
527cdcVFileIndex OBJECT-TYPE
528    SYNTAX      Unsigned32 (1..4294967295)
529    MAX-ACCESS  not-accessible
530    STATUS      current
531    DESCRIPTION
532        "An arbitrary integer for uniquely identifying this
533	 entry. When creating a row, the application should pick a
534	 random number.
535
536         If the configuration in this entry is persisted across
537         system/agent restarts then the same value of cdcVFileIndex
538         must be assigned to this entry after the restart."
539    ::= { cdcVFileEntry 1 }
540
541cdcVFileName OBJECT-TYPE
542    SYNTAX      DisplayString (SIZE(0..255))
543    MAX-ACCESS  read-create
544    STATUS      current
545    DESCRIPTION
546        "The base-name of the VFiles (created by data collection
547	 operations corresponding to this entry) into which data is to
548	 be collected.
549
550	 When a VFile is created, it's full name is obtained by the
551         concatentation of a suffix to this value. The suffix will be
552	 chosen by the agent such that the VFiles created for this
553	 entry have unique names. For e.g. the suffix could be a
554	 string representation of the date and time when the VFile was
555	 created.
556
557         If VFiles are to be placed in the agent's local filesystem
558         (provided the agent supports it) then this value should also
559         contain the absolute path of the location as a prefix to the
560         base name.
561
562         An agent will respond with inconsistentValue to
563         a management set operation which attempts to modify the value
564         of this object to the same value as already held by another
565         instance of cdcVFileName, or wrongValue if the new value
566         is invalid for use as a file name on the local file
567         system (e.g., many file systems do not support white
568         space embedded in file names).
569
570         This object's value may be modified at any time. However
571         the new name will be used only when the next VFile is
572         created for this entry."
573    ::= { cdcVFileEntry 2 }
574
575cdcVFileDescription OBJECT-TYPE
576    SYNTAX      SnmpAdminString
577    MAX-ACCESS  read-create
578    STATUS      current
579    DESCRIPTION
580        "A string that can be used for administrative purposes.
581	 This object's value may be modified at any time."
582    DEFVAL { ''H }
583    ::= { cdcVFileEntry 3 }
584
585cdcVFileCommand OBJECT-TYPE
586    SYNTAX      INTEGER {
587                    idle(1),  -- can only be read
588                    swapToNewFile(2), -- can be read and written
589                    collectNow(3) -- can be read and written
590                }
591    MAX-ACCESS  read-create
592    STATUS      current
593    DESCRIPTION
594        "An object for controlling collection of data.
595
596         'idle'            Indicates that no command is in progress.
597
598         'swapToNewFile'   When written, the current VFile is frozen,
599                           and a new VFile is created for collecting
600                           data.
601			   If the data collection mode is automatic
602                           (see cdcVFileCollectMode), then the current
603                           collection interval is stopped and a new
604                           collection interval is started
605			   (see cdcVFileCollectPeriod).
606
607         'collectNow'      When written, base object values for
608                           all associated data groups are fetched
609                           and stored into the current VFile. This
610                           value can only be written when the
611                           collection mode is 'manual' (see
612                           cdcVFileCollectMode)."
613    DEFVAL { idle }
614    ::= { cdcVFileEntry 4 }
615
616cdcVFileMaxSize OBJECT-TYPE
617    SYNTAX      Unsigned32 (512..4294967295)
618    UNITS        "bytes"
619    MAX-ACCESS  read-create
620    STATUS      current
621    DESCRIPTION
622        "The maximum size of a VFile.
623
624	 The agent maintains an internal counter for each
625         cdcVFileEntry. This counter counts the number of consecutive
626         times the size of a VFile has exceeded the value of this
627         object. When the value of this counter exceeds the value of
628         cdcVFileMaxSizeHitsLimit, this entry is moved to the 'error'
629         state (see cdcVFileOperStatus).
630	 However if the value of cdcVFileMaxSizeHitsLimit is not
631         exceeded, then the current VFile is frozen, and a new VFile
632         is created for data collection.
633
634         If the data collection mode is automatic (see
635         cdcVFileCollectMode), then the current collection interval is
636         stopped and a new collection interval is started.
637
638	 This object's value may be modified at any time. The new
639	 size limit MUST be checked against the size of the current
640	 VFile at the time of modification, and appropriate action
641	 taken."
642    DEFVAL { 50000 }
643    ::= { cdcVFileEntry 5 }
644
645cdcVFileCurrentSize OBJECT-TYPE
646    SYNTAX      Unsigned32 (0..4294967295)
647    UNITS       "bytes"
648    MAX-ACCESS  read-only
649    STATUS      current
650    DESCRIPTION
651        "The size of the current VFile."
652    ::= { cdcVFileEntry 6 }
653
654cdcVFileFormat  OBJECT-TYPE
655    SYNTAX      CdcFileFormat
656    MAX-ACCESS  read-create
657    STATUS      current
658    DESCRIPTION
659        "The format in which data is stored into the current VFile.
660
661         This object's value cannot be modified while the entry
662         is in the 'activated' state."
663    DEFVAL { cdcSchemaASCII }
664    ::= { cdcVFileEntry 7 }
665
666cdcVFileCollectMode OBJECT-TYPE
667    SYNTAX      INTEGER {
668                     auto(1),
669                     manual(2)
670                }
671    MAX-ACCESS  read-create
672    STATUS      current
673    DESCRIPTION
674        "Determines the mode of data collection.
675
676         'auto'         Data is periodically fetched for all data
677                        groups associated with this entry. This is
678                        done at data group specific periodic intervals
679                        (cdcDGPollPeriod).
680                        The data thus collected, is formatted and
681                        stored into the current VFile.
682                        In addition at regular intervals (see
683                        cdcVFileCollectPeriod) a new VFile
684                        is created to store data, and the current
685                        VFile is frozen and transferred.
686
687         'manual'       Data for all data groups is fetched and
688                        collected into the current VFile only when
689                        cdcVFileCommand is set to 'collectNow'.
690
691         This object's value cannot be modified while the entry
692         is in the 'activated' state."
693    DEFVAL { auto }
694    ::= { cdcVFileEntry 8 }
695
696cdcVFileCollectionPeriod OBJECT-TYPE
697    SYNTAX      Unsigned32 (60..604800)
698    UNITS       "seconds"
699    MAX-ACCESS  read-create
700    STATUS      current
701    DESCRIPTION
702        "Specifies the period of a collection interval. The value
703         of this object is used only when the data collection mode is
704	 automatic (see cdcVFileCollectMode).
705
706         A periodic timer (one per entry) is started when this
707         entry is 'activated'. The time at which this entry is
708         'activated' is called the 'activation time' for this entry,
709         and is internally maintained by the agent.
710
711         When this periodic timer expires, the current VFile is
712         frozen and a new VFile is created for data collection.
713         Transfer is then initiated for the frozen VFile.
714         In addition, the internally maintained counter for counting
715         the number of consecutive times the size of a VFile has
716         exceeded the maximum limit, is reset to zero. (See
717         cdcVFileMaxSize)
718
719         This object's value may be modified at any time, and the
720	 new value takes effect immediately. i.e setting a new
721	 value can cause the current collection interval to terminate
722	 and a new collection interval to start."
723    DEFVAL { 1800 }
724    ::= { cdcVFileEntry 9 }
725
726cdcVFileRetentionPeriod OBJECT-TYPE
727    SYNTAX      Unsigned32 (60..86400)
728    UNITS       "seconds"
729    MAX-ACCESS  read-create
730    STATUS      current
731    DESCRIPTION
732        "The time for which a frozen VFile is retained by the
733         agent. When a VFile is frozen, a timer (one per frozen VFile)
734         is started to keep track of the retention period for the
735	 VFile. Once this timer expires, the VFile is deleted.
736         Till the expiry of the retention period, information
737         about frozen VFiles is maintained in
738         cdcVFileMgmtTable.
739
740         This object's value may be modified at any time, however
741         the new value will take effect only for new frozen VFiles."
742    DEFVAL { 1800 }
743    ::= { cdcVFileEntry 10 }
744
745cdcVFileAdminStatus OBJECT-TYPE
746    SYNTAX      INTEGER {
747                     enabled(1),
748                     disabled(2)
749                }
750    MAX-ACCESS  read-create
751    STATUS      current
752    DESCRIPTION
753        "A control object to indicate the administratively desired
754         state of data collection for this entry. On setting the value
755         to 'disabled' data collection operations for this
756	 entry are stopped, the current VFile is frozen and it's
757	 transfer is initiated.
758
759         Modifying the value of cdcVFileAdminStatus to 'disabled' does
760         not remove or change the current configuration as represented
761         by the active rows in this table."
762    DEFVAL { disabled }
763    ::= { cdcVFileEntry 11 }
764
765cdcVFileOperStatus OBJECT-TYPE
766    SYNTAX      INTEGER {
767                     enabled(1),
768                     disabled(2),
769                     error(3)
770                }
771    MAX-ACCESS  read-only
772    STATUS      current
773    DESCRIPTION
774        "A status object to indicate the operational state of
775         collection for this entry.
776
777         When the value of cdcVFileAdminStatus is modified to be
778         'enabled', the value of this object will change to 'enabled'
779         providing it is possible to begin collecting data. If at any
780         point of time data cannot be collected because of some error,
781         then the value of this object is changed to 'error' and all
782         collection operations stop, as if cdcVFileAdminStatus has
783         been set to 'disabled'. More information about the nature of
784         the error can be obtained by retrieving the value of
785         cdcVFileErrorCode.
786
787         When the value of cdcVFileAdminStatus is modified to be
788         'disabled', the value of this object will change to
789         'disabled' and data collection operations are stopped for
790         this entry."
791    ::= { cdcVFileEntry 12 }
792
793cdcVFileErrorCode OBJECT-TYPE
794    SYNTAX     INTEGER {
795                     noError(1),
796                     otherError(2),
797                     noSpace(3),
798                     openError(4),
799                     tooSmallMaxSize(5),
800                     tooManyMaxSizeHits(6),
801                     noResource(7)
802                }
803    MAX-ACCESS  read-only
804    STATUS      current
805    DESCRIPTION
806        "A value indicating the type of error that has occurred during
807         data collection operations for this entry.
808
809         noError                The value is 'noError' when
810                                the corresponding value of
811                                cdcVFileOperStatus is not 'error'.
812
813         otherError             Any error other than one of the
814                                following listed errors.
815
816         noSpace                There is no space left to write into
817                                the current VFile.
818
819         openError              Could not open VFile for writing. One
820                                possible reason could be the existence
821                                of another file by the same name in
822                                the agent's filesystem.
823
824         tooSmallMaxSize        Indicates that cdcVFileMaxSize is
825                                too small for data collection. The
826                                cdcVFileMaxSize configured for this
827                                VFile is not sufficient even to hold
828                                the data collected in one poll.
829
830         tooManyMaxSizeHits     Indicates that data collection
831                                operations are stopped because
832                                the value of cdcVFileMaxSizeHitsLimit
833                                has been exceeded.
834
835         noResource             Some kind of resource was unavailable
836                                while collecting data. For
837                                e.g. unavailability of dynamic memory."
838    ::= { cdcVFileEntry 13 }
839
840cdcVFileCollectionErrorEnable OBJECT-TYPE
841    SYNTAX      TruthValue
842    MAX-ACCESS  read-create
843    STATUS      current
844    DESCRIPTION
845        "When set to 'true', cdcVFileCollectionError notification will
846         be sent out in the event of a data collection error."
847    DEFVAL { false }
848    ::= { cdcVFileEntry 14 }
849
850cdcVFileRowStatus OBJECT-TYPE
851    SYNTAX      RowStatus
852    MAX-ACCESS  read-create
853    STATUS      current
854    DESCRIPTION
855        "The status of this conceptual row.
856         A valid cdcVFileName is only mandatory object for setting
857         this object to 'active'. But collection of data in to active
858         vfile starts only on setting cdcVFileAdminStatus
859         to 'enabled'.
860         Setting this object to 'destroy' stops all data collection
861         operations for this entry, deletes all VFiles and removes
862         this entry from cdcVFileTable."
863    ::= { cdcVFileEntry 15 }
864
865--
866-- VFile management
867--
868cdcVFileMgmtTable OBJECT-TYPE
869    SYNTAX      SEQUENCE OF CdcVFileMgmtEntry
870    MAX-ACCESS  not-accessible
871    STATUS      current
872    DESCRIPTION
873        "A table to manage frozen VFiles."
874    ::= { cdcVFile 4 }
875
876cdcVFileMgmtEntry OBJECT-TYPE
877    SYNTAX      CdcVFileMgmtEntry
878    MAX-ACCESS  not-accessible
879    STATUS      current
880    DESCRIPTION
881        "An entry in cdcVFileMgmtTable. Each entry corresponds to a
882         frozen VFile. An entry is created in this table, whenever a
883         VFile is frozen. An entry is removed from this table whenever
884         a frozen VFile is deleted either because the retention period
885         elapsed or because it was adminstratively deleted.
886
887         If the configuration specified in cdcVFileEntry is persisted
888         across system/agent restarts AND the VFiles created as a
889         result of that configuration are persisted across restarts,
890         then this table must be populated with entries corresponding
891         to those persisted VFiles. However any state related to an
892         entry, like time to live etc. need not be maintained
893         across restarts."
894    INDEX { cdcVFileIndex, cdcVFileMgmtIndex }
895    ::= { cdcVFileMgmtTable 1 }
896
897CdcVFileMgmtEntry ::= SEQUENCE {
898    cdcVFileMgmtIndex              Unsigned32,
899    cdcVFileMgmtName               DisplayString,
900    cdcVFileMgmtTimestamp          DateAndTime,
901    cdcVFileMgmtTimeToLive         Unsigned32,
902    cdcVFileMgmtCommand            INTEGER,
903    cdcVFileMgmtXferURL            CdcUrl,
904    cdcVFileMgmtLastXferStatus     CdcFileXferStatus,
905    cdcVFileMgmtLastXferURL        CdcUrl
906}
907
908cdcVFileMgmtIndex OBJECT-TYPE
909    SYNTAX      Unsigned32 (1..4294967295)
910    MAX-ACCESS  not-accessible
911    STATUS      current
912    DESCRIPTION
913        "This value is a running counter starting at 1,
914         generated by the agent so that the combination of
915         cdcVFileIndex and cdcVFileMgmtIndex uniquely
916         identifies a frozen VFile. The deleted file indicies
917         do not get reused.
918
919         This object's value needs to be unique only across the
920         set of frozen VFiles corresponding to a cdcVFileEntry
921         (identified by cdcVFileIndex)."
922    ::= { cdcVFileMgmtEntry 1 }
923
924cdcVFileMgmtName OBJECT-TYPE
925    SYNTAX      DisplayString
926    MAX-ACCESS  read-only
927    STATUS      current
928    DESCRIPTION
929        "The full name of the VFile. If the VFile is stored as a file
930         in the agent's filesystem, then this value also contains the
931         absolute path of the file."
932    ::= { cdcVFileMgmtEntry 2 }
933
934cdcVFileMgmtTimestamp OBJECT-TYPE
935    SYNTAX      DateAndTime
936    MAX-ACCESS  read-only
937    STATUS      current
938    DESCRIPTION
939        "The timestamp when this VFile was created, in the date-time
940         format."
941    ::= { cdcVFileMgmtEntry 3 }
942
943cdcVFileMgmtTimeToLive OBJECT-TYPE
944    SYNTAX      Unsigned32 (60..86400)
945    UNITS       "seconds"
946    MAX-ACCESS  read-only
947    STATUS      current
948    DESCRIPTION
949        "The time left before this VFile is deleted (see
950         cdcVFileRetentionPeriod)."
951    ::= { cdcVFileMgmtEntry 4 }
952
953cdcVFileMgmtCommand OBJECT-TYPE
954    SYNTAX      INTEGER {
955                     idle (1), -- can only be read
956                     delete (2), -- can only be written
957                     transfer (3), -- can be read and written
958                     abortTransfer (4) -- can only be written
959                }
960    MAX-ACCESS  read-write
961    STATUS      current
962    DESCRIPTION
963        "A control to manage VFiles.
964
965         idle           This value can be only be read. It indicates
966                        that no management action is currently being
967                        performed on this VFile.
968
969         delete         This value is only written, and is used to
970                        delete the frozen VFile. Writing this value
971                        will cause this entry to be removed from this
972                        table.
973
974         transfer       This value can be both read and written.
975                        When read it means that the VFile is in the
976                        process of being transferred. When written, it
977                        initiates a transfer for the VFile.
978
979         abortTransfer  This value can only be written, and is used
980                        to abort an ongoing transfer."
981    DEFVAL { idle }
982    ::= { cdcVFileMgmtEntry 5 }
983
984cdcVFileMgmtXferURL OBJECT-TYPE
985    SYNTAX      CdcUrl
986    MAX-ACCESS  read-write
987    STATUS      current
988    DESCRIPTION
989        "The complete URL of the destination to which this VFile will
990         be transferred in the next attempt. The URL also includes the
991         complete filename of the remote file that will be
992         created. When the default value of this object is
993         retained this VFile will be transferred to the URL
994         specified in cdcFileXferConfPriUrl or cdcFileXferConfSecUrl,
995         as the case may be.
996
997	 However an application can specify a different URL, in which
998         case the VFile will be transferred to this new URL the next
999         time transfer is initiated.
1000
1001         This object's value may be modified at any time."
1002    DEFVAL { "" }
1003    ::= { cdcVFileMgmtEntry 6 }
1004
1005cdcVFileMgmtLastXferStatus OBJECT-TYPE
1006    SYNTAX      CdcFileXferStatus
1007    MAX-ACCESS  read-only
1008    STATUS      current
1009    DESCRIPTION
1010        "Indicates the status of the last completed transfer."
1011    ::= { cdcVFileMgmtEntry 7 }
1012
1013cdcVFileMgmtLastXferURL OBJECT-TYPE
1014    SYNTAX      CdcUrl
1015    MAX-ACCESS  read-only
1016    STATUS      current
1017    DESCRIPTION
1018        "Indicates the URL of the destination to which the last
1019         (completed) transfer was initiated."
1020    ::= { cdcVFileMgmtEntry 8 }
1021
1022--
1023-- Data selection, using data groups.
1024--
1025cdcDGTable OBJECT-TYPE
1026    SYNTAX      SEQUENCE OF CdcDGEntry
1027    MAX-ACCESS  not-accessible
1028    STATUS      current
1029    DESCRIPTION
1030        "A table for specifying data groups."
1031    ::= { cdcDataGroup 1 }
1032
1033cdcDGEntry OBJECT-TYPE
1034    SYNTAX      CdcDGEntry
1035    MAX-ACCESS  not-accessible
1036    STATUS      current
1037    DESCRIPTION
1038        "An entry in this table. Each entry corresponds to a data
1039         group. A data group is used to select data that needs to be
1040         collected into VFiles. The selection is done by specifying
1041         the base objects and their instances for which the values
1042         need to be fetched.
1043
1044         Data is collected only for those data groups, that have
1045         the corresponding instance of cdcDGRowStatus set to
1046         'active'.
1047
1048         In order for data to be collected, each data group has to
1049         be associated with a cdcVFileEntry (see cdcDGVFileIndex). If
1050         the data collection mode of the associated cdcVFileEntry is
1051         automatic, then data is fetched and stored into the current
1052         VFile of the associated cdcVFileEntry at periodic
1053         intervals (cdcDGPollPeriod)."
1054    INDEX { cdcDGIndex }
1055    ::= { cdcDGTable 1 }
1056
1057CdcDGEntry ::= SEQUENCE {
1058    cdcDGIndex                     Unsigned32,
1059    cdcDGComment                   SnmpAdminString,
1060    cdcDGType                      INTEGER,
1061    cdcDGVFileIndex                Unsigned32,
1062    cdcDGTargetTag                 SnmpTagValue,
1063    cdcDGContextName               SnmpAdminString,
1064    cdcDGObject                    VariablePointer,
1065    cdcDGObjectGrpIndex            Unsigned32,
1066    cdcDGInstGrpIndex              Unsigned32,
1067    cdcDGPollPeriod                Unsigned32,
1068    cdcDGRowStatus                 RowStatus
1069}
1070
1071cdcDGIndex OBJECT-TYPE
1072    SYNTAX      Unsigned32 (1..4294967295)
1073    MAX-ACCESS  not-accessible
1074    STATUS      current
1075    DESCRIPTION
1076        "An arbitrary integer used to uniquely identify this entry.
1077         When creating an entry, a management application should pick a
1078         random number."
1079    ::= { cdcDGEntry 1 }
1080
1081cdcDGComment OBJECT-TYPE
1082    SYNTAX      SnmpAdminString
1083    MAX-ACCESS  read-create
1084    STATUS      current
1085    DESCRIPTION
1086        "A descriptive string. This object's value may be modified at
1087         any time."
1088    DEFVAL { ''H }
1089    ::= { cdcDGEntry 2 }
1090
1091cdcDGType OBJECT-TYPE
1092    SYNTAX      INTEGER {
1093                     object(1),
1094                     table(2)
1095                }
1096    MAX-ACCESS  read-create
1097    STATUS      current
1098    DESCRIPTION
1099        "Identifies the type of this data group.
1100         object         Data is a single MIB object. The fully
1101                        instantiated OID is specified in
1102                        cdcDGBaseObject.
1103
1104         table          Data is a logical table. The columns of
1105                        this table correspond to the base objects
1106                        specified in cdcDGBaseObjectTable, and the
1107                        rows correspond to the values of the instances
1108                        specified in cdcDGInstanceTable.
1109
1110         This object's value cannot be modified while the value of
1111         cdcDGRowStatus is 'active'."
1112    DEFVAL { table }
1113    ::= { cdcDGEntry 3 }
1114
1115cdcDGVFileIndex OBJECT-TYPE
1116    SYNTAX      Unsigned32 (1..4294967295)
1117    MAX-ACCESS  read-create
1118    STATUS      current
1119    DESCRIPTION
1120        "Corresponds to a value of cdcVFileIndex.
1121         It is used to associate this data group with a
1122         cdcVFileEntry. The values of the base objects for
1123         this data group are stored into the current VFile of the
1124         associated cdcVFileEntry.
1125
1126         This object's value may be modified at any time. The change
1127         takes effect the next time data is fetched for this data
1128         group."
1129    ::= { cdcDGEntry 4 }
1130
1131cdcDGTargetTag OBJECT-TYPE
1132    SYNTAX      SnmpTagValue
1133    MAX-ACCESS  read-create
1134    STATUS      current
1135    DESCRIPTION
1136        "The tag for the target from which to obtain the data for
1137         this data group.
1138
1139         A length of 0 indicates the local system.  In this case,
1140         access to the objects of this data group is under
1141         the security credentials of the requester that set
1142         cdcDGRowStatus to 'active'. Those credentials are
1143         the input parameters for isAccessAllowed from the
1144         Architecture for Describing SNMP Management Frameworks.
1145
1146         Otherwise a search is carried out for an entry in the
1147         snmpTargetAddrTable whose snmpTargetAddrTagList contains the
1148         tag specified by the value of this object. The security
1149         credentials (snmpTargetParamsEntry) of the first entry that
1150         satisfies the above criteria, are passed as input parameters
1151         for isAccessAllowed.
1152
1153         This object's value may be modified at any time. The change
1154         takes effect the next time data is fetched for this data
1155         group."
1156    DEFVAL { ''H }
1157    ::= { cdcDGEntry 5 }
1158
1159cdcDGContextName OBJECT-TYPE
1160    SYNTAX      SnmpAdminString
1161    MAX-ACCESS  read-create
1162    STATUS      current
1163    DESCRIPTION
1164        "The management context from which to obtain data for this
1165         data group.
1166
1167         This object's value may be modified at any time. The change
1168         takes effect the next time data is fetched for this data
1169         group."
1170    DEFVAL { ''H }
1171    ::= { cdcDGEntry 6 }
1172
1173cdcDGObject OBJECT-TYPE
1174    SYNTAX      VariablePointer
1175    MAX-ACCESS  read-create
1176    STATUS      current
1177    DESCRIPTION
1178        "The fully instantiated name of the MIB object whose value
1179         needs to be fetched. This object's value is used only when
1180         cdcDGType is of type 'object'.
1181
1182         This object's value may be modified at any time. The change
1183         takes effect the next time data is fetched for this data
1184         group."
1185     DEFVAL { zeroDotZero }
1186    ::= { cdcDGEntry 7 }
1187
1188cdcDGObjectGrpIndex OBJECT-TYPE
1189    SYNTAX      Unsigned32 (1..4294967295)
1190    MAX-ACCESS  read-create
1191    STATUS      current
1192    DESCRIPTION
1193        "Corresponds to a value of cdcDGBaseObjectGrpIndex, thus
1194         identifying a set of entries in cdcDGBaseObjectTable, having
1195         this value of cdcDGBaseObjectGrpIndex. This object's value is
1196         used only when cdcDGType is of type 'table'.
1197
1198         This set of entries in cdcDGBaseObjectTable in turn
1199	 identifies the set of base objects, that makes up the columns
1200	 of this 'table' type data group.
1201
1202         This object's value may be modified at any time. The change
1203         takes effect the next time data is fetched for this data
1204         group."
1205    ::= { cdcDGEntry 8 }
1206
1207cdcDGInstGrpIndex OBJECT-TYPE
1208    SYNTAX      Unsigned32 (0..4294967295)
1209    MAX-ACCESS  read-create
1210    STATUS      current
1211    DESCRIPTION
1212        "Corresponds to a value of cdcDGInstanceGrpIndex, thus
1213         identifying a set of entries in cdcDGInstanceTable, having
1214         this value of cdcDGInstanceGrpIndex. This object's value is
1215         used only when cdcDGType is of type 'table'.
1216
1217         The set of entries in cdcDGInstanceTable, in turn identifies
1218         the set of instances of the base objects, whose values need
1219         to fetched. If the value is 0, then all instances of the base
1220         objects will be fetched.
1221
1222	 This object's value may be modified at any time. The change
1223         takes effect the next time data is fetched for this data
1224         group."
1225    DEFVAL { 0 }
1226    ::= { cdcDGEntry 9 }
1227
1228cdcDGPollPeriod OBJECT-TYPE
1229    SYNTAX      Unsigned32 (1..86400)
1230    UNITS       "seconds"
1231    MAX-ACCESS  read-create
1232    STATUS      current
1233    DESCRIPTION
1234        "Specifies the time intervals at which the data should be
1235         fetched for this data group.
1236         This object's value is used only when the collection
1237         mode of the associated cdcVFileEntry is automatic (see
1238         cdcVFileCollectMode).
1239
1240         A periodic timer is started for this data group when
1241         cdcDGRowStatus is set to 'active', provided the associated
1242         cdcVFileEntry has already been 'activated', otherwise it is
1243         started when the associated cdcVFileEntry is finally
1244         activated.
1245
1246         The time interval after which the first expiration of this
1247         timer should occur, is calculated as follows:
1248
1249         (value of sysUpTime.0) +
1250         (value of cdcPollPeriod for this entry -
1251            (value of sysUpTime.0 - VFile activation time for the
1252             associated cdcVFileEntry) % cdcPollPeriod)
1253
1254         Subsequent expirations of the periodic timer can occur as per
1255         the value specified in cdcDGPollPeriod. This helps in
1256         synchronizing periodic polling of the data groups with
1257         respect to the VFile activation time.
1258
1259         This object's value may be modified at any time, and the
1260         change must take effect immediately. i.e. if the periodic
1261         timer has been started, it's expiry time may need to be
1262         re-adjusted."
1263    DEFVAL { 600 }
1264    ::= { cdcDGEntry 10 }
1265
1266cdcDGRowStatus OBJECT-TYPE
1267    SYNTAX      RowStatus
1268    MAX-ACCESS  read-create
1269    STATUS      current
1270    DESCRIPTION
1271        "The status of this conceptual row.
1272
1273         This object cannot be set to 'active' until values have been
1274         assigned to  cdcDGVFileIndex & cdcDGColGrpIndex."
1275    ::= { cdcDGEntry 11 }
1276
1277--
1278-- Specify the base objects of a 'table' type data group
1279--
1280cdcDGBaseObjectTable OBJECT-TYPE
1281    SYNTAX      SEQUENCE OF CdcDGBaseObjectEntry
1282    MAX-ACCESS  not-accessible
1283    STATUS      current
1284    DESCRIPTION
1285        "A table specifying the base objects of a 'table' type
1286         data group."
1287    ::= { cdcDataGroup 2 }
1288
1289cdcDGBaseObjectEntry OBJECT-TYPE
1290    SYNTAX      CdcDGBaseObjectEntry
1291    MAX-ACCESS  not-accessible
1292    STATUS      current
1293    DESCRIPTION
1294        "An individual entry in this table. Each entry is a
1295         {subtree, list} tuple. Each tuple identifies a set of
1296         base objects for the associated data group."
1297    INDEX { cdcDGBaseObjectGrpIndex, cdcDGBaseObjectIndex }
1298    ::= { cdcDGBaseObjectTable 1 }
1299
1300CdcDGBaseObjectEntry ::= SEQUENCE {
1301    cdcDGBaseObjectGrpIndex        Unsigned32,
1302    cdcDGBaseObjectIndex           Unsigned32,
1303    cdcDGBaseObjectSubtree         CdcCollectionSubtree,
1304    cdcDGBaseObjectList            CdcCollectionList,
1305    cdcDGBaseObjectRowStatus       RowStatus
1306}
1307
1308cdcDGBaseObjectGrpIndex OBJECT-TYPE
1309    SYNTAX      Unsigned32 (1..4294967295)
1310    MAX-ACCESS  not-accessible
1311    STATUS      current
1312    DESCRIPTION
1313        "This object's value when combined with the value of
1314         cdcDGBaseObjectIndex uniquely identifies an entry in
1315         this table. An application must use the same value (can
1316	 be randomly picked) for this object while creating a group of
1317         entries that collectively identifies the set of base
1318         objects for a data group."
1319     ::= { cdcDGBaseObjectEntry 1 }
1320
1321cdcDGBaseObjectIndex  OBJECT-TYPE
1322    SYNTAX      Unsigned32 (1..4294967295)
1323    MAX-ACCESS  not-accessible
1324    STATUS      current
1325    DESCRIPTION
1326        "This object's value when combined with the value of
1327         cdcDGBaseObjectGrpIndex uniquely identifies an entry in
1328         this table.
1329
1330         A managment application can assign incremental values
1331         starting from one, when creating each entry in a group of
1332         entries (as identified by the value of
1333         cdcDGBaseObjectGrpIndex)."
1334     ::= { cdcDGBaseObjectEntry 2 }
1335
1336cdcDGBaseObjectSubtree OBJECT-TYPE
1337    SYNTAX      CdcCollectionSubtree
1338    MAX-ACCESS  read-create
1339    STATUS      current
1340    DESCRIPTION
1341        "The subtree component of a {subtree, list} tuple.
1342
1343         This object's value may be modified at any time. The change
1344         takes effect the next time data is fetched for this data
1345         group."
1346     ::= { cdcDGBaseObjectEntry 3 }
1347
1348cdcDGBaseObjectList OBJECT-TYPE
1349    SYNTAX      CdcCollectionList
1350    MAX-ACCESS  read-create
1351    STATUS      current
1352    DESCRIPTION
1353        "The list component of a {subtree, list} tuple.
1354
1355         This object's value may be modified at any time. The change
1356         takes effect the next time data is fetched for this data
1357         group."
1358     ::= { cdcDGBaseObjectEntry 4 }
1359
1360cdcDGBaseObjectRowStatus OBJECT-TYPE
1361    SYNTAX      RowStatus
1362    MAX-ACCESS  read-create
1363    STATUS      current
1364    DESCRIPTION
1365        "The status of this conceptual row.
1366
1367         This object cannot be set to 'active' until values have been
1368         assigned to cdcDGBaseObjectSubtree & cdcDGBaseObjectList."
1369    ::= { cdcDGBaseObjectEntry 5 }
1370
1371--
1372-- Specify instances for a 'table' type data group
1373--
1374cdcDGInstanceTable OBJECT-TYPE
1375    SYNTAX      SEQUENCE OF CdcDGInstanceEntry
1376    MAX-ACCESS  not-accessible
1377    STATUS      current
1378    DESCRIPTION
1379        "Identifies the instances of the base objects that need to
1380         be fetched for a 'table' type data group.
1381
1382         The agent is not responsible for verifying that the instances
1383         specified for a data group do not overlap."
1384    ::= { cdcDataGroup 3 }
1385
1386cdcDGInstanceEntry OBJECT-TYPE
1387    SYNTAX      CdcDGInstanceEntry
1388    MAX-ACCESS  not-accessible
1389    STATUS      current
1390    DESCRIPTION
1391        "An entry in this table. Each entry identifies one or more
1392         instances of the base objects that need to be fetched.
1393         An instance is represented by an OID fragment."
1394
1395    INDEX { cdcDGInstanceGrpIndex, cdcDGInstanceIndex }
1396    ::= { cdcDGInstanceTable 1 }
1397
1398CdcDGInstanceEntry ::= SEQUENCE {
1399    cdcDGInstanceGrpIndex       Unsigned32,
1400    cdcDGInstanceIndex          Unsigned32,
1401    cdcDGInstanceType           INTEGER,
1402    cdcDGInstanceOid            CdcRowInstanceId,
1403    cdcDGInstanceOidEnd         CdcRowInstanceId,
1404    cdcDGInstanceNumRepititions   Unsigned32,
1405    cdcDGInstanceOtherPtr       RowPointer,
1406    cdcDGInstanceRowStatus      RowStatus
1407}
1408
1409cdcDGInstanceGrpIndex OBJECT-TYPE
1410    SYNTAX      Unsigned32 (1..4294967295)
1411    MAX-ACCESS  not-accessible
1412    STATUS      current
1413    DESCRIPTION
1414        "This object's value when combined with the value of
1415         cdcDGInstanceIndex uniquely identifies an entry in
1416         this table. An application must use the same value (can
1417	 be randomly picked) for this object while creating a group of
1418         entries that collectively identifies the set of instances for a
1419         data group."
1420     ::= { cdcDGInstanceEntry 1 }
1421
1422cdcDGInstanceIndex OBJECT-TYPE
1423    SYNTAX      Unsigned32 (1..4294967295)
1424    MAX-ACCESS  not-accessible
1425    STATUS      current
1426    DESCRIPTION
1427        "This object's value when combined with the value of
1428         cdcDGInstanceGrpIndex uniquely identifies an entry in
1429         this table.
1430
1431         A managment application can assign incremental values
1432         starting from one, when creating each entry within a group
1433         of entries (as identified by the value of
1434         cdcDGInstanceGrpIndex)."
1435    ::= { cdcDGInstanceEntry 2 }
1436
1437cdcDGInstanceType OBJECT-TYPE
1438    SYNTAX      INTEGER {
1439                      individual(1),
1440                      range(2),
1441                      repititions(3),
1442                      subTree(4),
1443                      other(5)
1444                }
1445    MAX-ACCESS  read-create
1446    STATUS      current
1447    DESCRIPTION
1448        "Specifies the way in which the instances are to be used while
1449         collecting data.
1450
1451
1452         individual     The value of cdcDGInstanceOid is
1453                        appended to each base object of the
1454                        associated data group, thus giving the exact
1455                        instance of the objects to be collected.
1456
1457         range          The value of cdcDGInstanceOid is
1458                        appended to each base object in the
1459                        associated data group, thus giving the
1460                        starting object instance of the range.
1461                        The value of cdcDGInstanceEndOid
1462                        is appended to to each base object in the
1463                        associated data group, thus giving the
1464                        last object instances of the range.
1465
1466         repititions      The value of cdcDGInstanceOid is
1467                        appended to each base object in the
1468                        associated data group, thus giving the
1469                        first object instance of the next 'n'
1470                        instances that need to be collected.
1471                        The value of 'n' is set in
1472                        cdcDGInstanceNumRepititions.
1473
1474         subTree        The value of cdcDGInstanceOid is
1475                        appended to each base object in the
1476                        associated data group, thus identifying the
1477                        OBJECT IDENTFIFIER sub-tree, whose leaf
1478                        instances need to be collected.
1479
1480         other          The value of cdcDGInstanceOtherPtr points to a
1481                        row (in another MIB table) that contains MIB
1482                        specific instance selection criteria. A MIB
1483                        defined for such purposes should describe
1484                        the selection criteria.
1485
1486         This object's value cannot be modified while the value of
1487         cdcDGInstanceStatus is 'active'."
1488    DEFVAL { subTree }
1489    ::= { cdcDGInstanceEntry 3 }
1490
1491cdcDGInstanceOid OBJECT-TYPE
1492    SYNTAX      CdcRowInstanceId
1493    MAX-ACCESS  read-create
1494    STATUS      current
1495    DESCRIPTION
1496        "Contains the OBJECT IDENTIFIER fragment that identifies the
1497         instances of the base objects that need to be collected.
1498
1499         If cdcDGInstanceType is 'individual' then this value
1500         should be the OID fragment that, when appended to each base
1501         MIB object gives the fully instantiated OID to be fetched.
1502
1503         If cdcDGInstanceType is 'range' then this value
1504         should be the OID fragment that, when appended to each base
1505         MIB object gives the start of a range of object instances
1506         that needs to be fetched.
1507
1508         If cdcDGInstanceType is 'subTree' then this value
1509         should be the OID fragment that, when appended to each base
1510         MIB gives the sub-tree under which all leaf object instances
1511         need to be fetched.
1512
1513         This object's value may be modified at any time. The change
1514         takes effect the next time data is fetched for this data
1515         group."
1516    DEFVAL { zeroDotZero }
1517    ::= { cdcDGInstanceEntry 4 }
1518
1519cdcDGInstanceOidEnd OBJECT-TYPE
1520    SYNTAX      CdcRowInstanceId
1521    MAX-ACCESS  read-create
1522    STATUS      current
1523    DESCRIPTION
1524        "Contains the OID fragment that, when appended to each base
1525         object gives the end of the range of object instances that
1526         needs to be fetched.
1527         This value is used only when the value of cdcDGInstanceType
1528         is of type 'range'.
1529
1530         This object's value may be modified at any time. The change
1531         takes effect the next time data is fetched for this data
1532         group."
1533    DEFVAL { zeroDotZero }
1534    ::= { cdcDGInstanceEntry 5 }
1535
1536cdcDGInstanceNumRepititions OBJECT-TYPE
1537    SYNTAX      Unsigned32
1538    MAX-ACCESS  read-create
1539    STATUS      current
1540    DESCRIPTION
1541        "Specifies the number of lexicographically consecutive object
1542         instances to fetch.
1543         This value is used only when the value of cdcDGInstanceType
1544         is of type 'repititions'.
1545
1546         This object's value may be modified at any time. The change
1547         takes effect the next time data is fetched for this data
1548         group."
1549    DEFVAL { 1 }
1550    ::= { cdcDGInstanceEntry 6 }
1551
1552cdcDGInstanceOtherPtr OBJECT-TYPE
1553    SYNTAX      RowPointer
1554    MAX-ACCESS  read-create
1555    STATUS      current
1556    DESCRIPTION
1557        "Contains a pointer to a row in another MIB table that
1558         contains MIB specific criteria for selecting instances.
1559         This value is used only when the value of cdcDGInstanceType
1560         is of type 'other'.
1561
1562         This object's value may be modified at any time. The change
1563         takes effect the next time data is fetched for this data
1564         group."
1565    DEFVAL { zeroDotZero }
1566    ::= { cdcDGInstanceEntry 7 }
1567
1568cdcDGInstanceRowStatus OBJECT-TYPE
1569    SYNTAX      RowStatus
1570    MAX-ACCESS  read-create
1571    STATUS      current
1572    DESCRIPTION
1573        "The status of this conceptual row."
1574    ::= { cdcDGInstanceEntry 8 }
1575
1576--
1577-- File transfer
1578--
1579cdcFileXferConfTable OBJECT-TYPE
1580    SYNTAX      SEQUENCE OF CdcFileXferConfEntry
1581    MAX-ACCESS  not-accessible
1582    STATUS      current
1583    DESCRIPTION
1584        "A table for configuring file transfer operations."
1585    ::= { cdcFileXfer 1 }
1586
1587cdcFileXferConfEntry OBJECT-TYPE
1588    SYNTAX      CdcFileXferConfEntry
1589    MAX-ACCESS  not-accessible
1590    STATUS      current
1591    DESCRIPTION
1592        "An individual entry in the cdcFileXferConfTable. Each entry
1593         identifies a primary and an optional secondary destination.
1594
1595         An entry is automatically created in this table, whenever an
1596         entry is created in the cdcVFileTable. The application needs
1597         to specify the URLs of the destination to which frozen VFiles
1598         are transferred.
1599
1600         When a VFile is frozen, transfer will be first initiated to
1601         the primary destination, if the transfer fails, then transfer
1602         is initiated to the secondary destination. If this too fails,
1603         then the cycle is repeated again after a specified time
1604         period (value of cdcFileXferConfRetryPeriod) elapses."
1605    INDEX { cdcVFileIndex }
1606    ::= { cdcFileXferConfTable 1 }
1607
1608CdcFileXferConfEntry ::= SEQUENCE {
1609    cdcFileXferConfPriUrl                CdcUrl,
1610    cdcFileXferConfSecUrl                CdcUrl,
1611    cdcFileXferConfRetryPeriod           Unsigned32,
1612    cdcFileXferConfRetryCount            Unsigned32,
1613    cdcFileXferConfSuccessEnable         TruthValue,
1614    cdcFileXferConfFailureEnable         TruthValue
1615}
1616
1617cdcFileXferConfPriUrl OBJECT-TYPE
1618    SYNTAX      CdcUrl
1619    MAX-ACCESS  read-create
1620    STATUS      current
1621    DESCRIPTION
1622        "The URL which specifies the primary destination to which
1623         the file has to be transferred. The URL should contain the
1624         base-name of the remote file, the suffix will be carried over
1625         from the name of the VFile being tranferred, and will be
1626         automatically appended by the agent.
1627
1628         This object's value may be modified at any time."
1629    ::= { cdcFileXferConfEntry 1 }
1630
1631cdcFileXferConfSecUrl OBJECT-TYPE
1632    SYNTAX      CdcUrl
1633    MAX-ACCESS  read-create
1634    STATUS      current
1635    DESCRIPTION
1636        "The URL which specifies the secondary destination to which
1637         the file has to be transferred if the transfer to the
1638         primary destination fails. Failure occurs when the file
1639	 cannot be transferred in it's entirety to the specified
1640	 destination for some reason. Some common reasons for such
1641	 failures are listed out in CdcFileXferStatus.
1642
1643	 The specified URL should contain the base-name of the remote
1644         file, the suffix will be carried over from the name of the
1645         VFile being tranferred, and will be automatically appended by
1646         the agent.
1647
1648         This object's value may be modified at any time."
1649    ::= { cdcFileXferConfEntry 2 }
1650
1651cdcFileXferConfRetryPeriod OBJECT-TYPE
1652    SYNTAX      Unsigned32 (60..86400)
1653    UNITS       "seconds"
1654    MAX-ACCESS  read-create
1655    STATUS      current
1656    DESCRIPTION
1657        "Specifies the time interval after which transfer has to be
1658         retried. Transfer needs to be retried only if in a previous
1659	 attempt the file could not be successfully transferred to
1660	 either the primary destination or the secondary destination.
1661
1662         This object's value may be modified at any time."
1663    DEFVAL { 300 }
1664    ::= { cdcFileXferConfEntry 3 }
1665
1666cdcFileXferConfRetryCount OBJECT-TYPE
1667    SYNTAX      Unsigned32 (0..256)
1668    UNITS       "seconds"
1669    MAX-ACCESS  read-create
1670    STATUS      current
1671    DESCRIPTION
1672        "Maximum number of times, transfer has to be retried. If the
1673         retry count exceeds this value, then no further attempts will
1674         be made.
1675
1676	 This object's value may be modified at any time."
1677    DEFVAL { 3 }
1678    ::= { cdcFileXferConfEntry 4 }
1679
1680cdcFileXferConfSuccessEnable OBJECT-TYPE
1681    SYNTAX      TruthValue
1682    MAX-ACCESS  read-create
1683    STATUS      current
1684    DESCRIPTION
1685        "When set to 'true', cdcFileXferComplete notification will
1686         be sent out in the event of a successful file transfer."
1687    DEFVAL { false }
1688    ::= { cdcFileXferConfEntry 5 }
1689
1690cdcFileXferConfFailureEnable OBJECT-TYPE
1691    SYNTAX      TruthValue
1692    MAX-ACCESS  read-create
1693    STATUS      current
1694    DESCRIPTION
1695        "When set to 'true', cdcFileXferComplete notification will
1696         be sent out in the event of a file transfer failure."
1697    DEFVAL { true }
1698    ::= { cdcFileXferConfEntry 6 }
1699
1700--
1701-- Notifications
1702--
1703cdcVFileCollectionError NOTIFICATION-TYPE
1704    OBJECTS { cdcVFileName,
1705              cdcVFileErrorCode }
1706    STATUS  current
1707    DESCRIPTION
1708        "Notification that data collection operations for a
1709         cdcVFileEntry has encountered an error.
1710         The cdcVFileEntry is identified by the instance portion of
1711         cdcVFileName. The error code is available as the value of the
1712         cdcVFileErrorCode variable."
1713    ::= { ciscoDataCollMIBNotifs 1 }
1714
1715cdcFileXferComplete NOTIFICATION-TYPE
1716    OBJECTS { cdcVFileMgmtLastXferStatus,
1717              cdcVFileMgmtLastXferURL }
1718    STATUS  current
1719    DESCRIPTION
1720        "Notification that file transfer to the destination
1721         specified by the cdcVFileMgmtLastXferURL variable, has
1722         completed with the status specified by the
1723         cdcVFileMgmtLastXferStatus variable."
1724    ::= { ciscoDataCollMIBNotifs 2 }
1725
1726--
1727-- Conformance
1728--
1729ciscoDataCollMIBCompliances
1730            OBJECT IDENTIFIER ::= { ciscoDataCollMIBConformance 1 }
1731
1732ciscoDataCollMIBGroups
1733            OBJECT IDENTIFIER ::= { ciscoDataCollMIBConformance 2 }
1734
1735-- Compliance
1736ciscoDataCollMIBCompliance MODULE-COMPLIANCE
1737        STATUS current
1738        DESCRIPTION
1739             "The compliance statement for entities which implement
1740              the Cisco Data Collection MIB."
1741        MODULE  -- this module
1742                MANDATORY-GROUPS {
1743                        cdcVFileGroup,
1744                        cdcDataSelectionGroup,
1745                        cdcFileXferGroup,
1746                        cdcNotificationGroup
1747                }
1748        ::= { ciscoDataCollMIBCompliances 1 }
1749
1750-- Units of Conformance
1751cdcVFileGroup OBJECT-GROUP
1752        OBJECTS {
1753                cdcVFilePersistentStorage,
1754                cdcVFileMaxSizeHitsLimit,
1755                cdcVFileName,
1756                cdcVFileDescription,
1757                cdcVFileCommand,
1758                cdcVFileMaxSize,
1759                cdcVFileCurrentSize,
1760                cdcVFileFormat,
1761                cdcVFileCollectMode,
1762                cdcVFileCollectionPeriod,
1763                cdcVFileRetentionPeriod,
1764                cdcVFileAdminStatus,
1765                cdcVFileOperStatus,
1766                cdcVFileErrorCode,
1767                cdcVFileRowStatus,
1768                cdcVFileMgmtName,
1769                cdcVFileMgmtTimestamp,
1770                cdcVFileMgmtTimeToLive,
1771                cdcVFileMgmtCommand,
1772                cdcVFileMgmtXferURL,
1773                cdcVFileMgmtLastXferStatus,
1774                cdcVFileMgmtLastXferURL,
1775                cdcVFileCollectionErrorEnable
1776        }
1777        STATUS current
1778        DESCRIPTION
1779                "Objects related to VFiles."
1780        ::= { ciscoDataCollMIBGroups 1 }
1781
1782cdcDataSelectionGroup OBJECT-GROUP
1783        OBJECTS {
1784                cdcDGComment,
1785                cdcDGType,
1786                cdcDGVFileIndex,
1787                cdcDGTargetTag,
1788                cdcDGContextName,
1789                cdcDGObject,
1790                cdcDGObjectGrpIndex,
1791                cdcDGInstGrpIndex,
1792                cdcDGPollPeriod,
1793                cdcDGRowStatus,
1794                cdcDGBaseObjectSubtree,
1795                cdcDGBaseObjectList,
1796                cdcDGBaseObjectRowStatus,
1797                cdcDGInstanceType,
1798                cdcDGInstanceOid,
1799                cdcDGInstanceOidEnd,
1800                cdcDGInstanceNumRepititions,
1801                cdcDGInstanceOtherPtr,
1802                cdcDGInstanceRowStatus
1803        }
1804        STATUS current
1805        DESCRIPTION
1806                "Objects related to data selection."
1807        ::= { ciscoDataCollMIBGroups 2 }
1808
1809cdcFileXferGroup OBJECT-GROUP
1810        OBJECTS {
1811                cdcFileXferConfPriUrl,
1812                cdcFileXferConfSecUrl,
1813                cdcFileXferConfRetryPeriod,
1814                cdcFileXferConfRetryCount,
1815                cdcFileXferConfSuccessEnable,
1816                cdcFileXferConfFailureEnable
1817        }
1818        STATUS current
1819        DESCRIPTION
1820                "Objects related to file transfer."
1821        ::= { ciscoDataCollMIBGroups 3 }
1822
1823cdcNotificationGroup NOTIFICATION-GROUP
1824        NOTIFICATIONS {
1825                cdcVFileCollectionError,
1826                cdcFileXferComplete
1827        }
1828        STATUS current
1829        DESCRIPTION
1830                "Collection of Notifications to inform errors
1831                 occurred in data collection and status of file
1832                 transfer operation."
1833        ::= { ciscoDataCollMIBGroups 4 }
1834END
1835
1836