EZ5 MIB Catalog

CISCO-DATA-COLLECTION-MIB

2002-10-30

The MIB module allows a management application to select a set of MIB object instances whose values need to be collected on a periodic basis. The term 'data' in the context of this MIB is used to generically refer to the values of the selected set of object instances. Once the required setup is done, the MIB implementation carries out the following periodic tasks: - collects the required object values into local file-like entities called VFiles (virtual files). - transfers the VFiles to specified locations. - carries out VFile management operations. Some of the key features of this MIB are: a) Allows grouping of MIB objects into groups called data groups. The constraint is that the MIB objects grouped into a data group, need to have the same semantic MIB index. So it is possible to group MIB objects belonging to different MIB tables into a single data group as long as the above constraint is met. For e.g. it is possible to group ifInOctets from ifTable, ifHCInOctets from ifXTable, dot3StatsExcessiveCollisions from dot3StatsTable into a single data group. b) Allows the application to specify a set of instances (of the MIB objects in a data group) whose values need to be collected. c) The required data can be collected for each such data group on a periodic basis into a virtual file (VFile). A VFile is an abstraction of a file. d) The format of the contents of the VFile, can be specified by the application. e) An application can also specify a collection period. A collection period is an interval of time during which data is collected into a VFile. After the collection period ends, the VFile is frozen, and a new VFile is created for storing data. The frozen VFile is then transferred to a specified destination. An application can choose to retain such frozen VFiles on the device for a certain period of time, called the retention period. Data Collection MIB vs Bulkfile MIB *********************************** The data collection MIB can pretty much do what the CISCO-BULK-FILE-MIB (Bulkfile MIB) can do. The 'manual' mode of the Data collection MIB is similar to the way in which the Bulkfile MIB operates. However the data collection MIB is mainly targetted for medium to high-end platforms which have sufficient local storage (volatile or permanent) to store VFiles. Locally storing VFiles, helps minimize loss of data during temporary network outages. If the local store is permament, then the collected data is also available across agent restarts. The data collection MIB has more powerful data selection features than the Bulkfile MIB. It allows grouping of MIB objects from different tables into data groups. It also incorporates a more flexible instance selection mechanism, where the application is not restricted to fetching an entire MIB table. Definitions: ************ Base objects: ************* MIB objects whose values an application needs to collect. Data group: *********** A group of base objects. Can be of 2 types: 'object' and 'table'. An 'object' type data group can consist of only one fully instantiated base object. A 'table' type data group can consist of more than one base objects, each a columnar object in a conceptual table. In addition a 'table' type data group can specify the instances of the base objects whose values need to be collected. In the context of this MIB, collecting data for a data group means fetching the values of the associated base object instances and storing them into VFiles. Virtual File (VFile): ********************* A VFile is a file like entity used to collect data. An agent might choose to implement a VFile as a simple in-memory buffer, or it might choose to use a file in it's filesystem. An application does not really need to know the location of a VFile - the MIB provides mechanisms to transfer the VFile to application specified locations. However if the implementation supports it, the application can specify the location of the VFiles. Current VFile: ************** The VFile into which data is currently being collected. Frozen VFile: ************* A VFile which is no longer used for collecting data. Only frozen VFiles can be transferred to specified destinations. Collection interval: ******************** A collection interval is associated with a VFile. It is the interval of time over which a VFile is used to collect data. This interval of time can be specified by the application. However there are conditions under which a collection interval can be shorter than the specified time. For e.g. a collection interval is prematurely terminated when the maximum size of a VFile is exceeded, or when there is an error condition. Polling period: *************** A polling period is associated with a data group. It determines the frequency at which the base objects of a data group should be fetched and stored into a VFile. Data collection operations: ************************** A generic term used to refer to operations that are carried out while collecting data. These include: - Periodically creating new VFiles for collecting data. - Transferring frozen VFiles either automatically or on demand. - Fetching base object values and storing them into current VFiles, either periodically or on demand. - Deleting frozen VFiles, either periodically or on demand.

Download CISCO-DATA-COLLECTION-MIB.txt Open CISCO-DATA-COLLECTION-MIB.txt in a new tab

SCALARS (2) · TABLES (6) · TRAPS (2)

Scalars (2)

NameOID
cdcVFilePersistentStorage1.3.6.1.4.1.9.9.312.1.1.1
cdcVFileMaxSizeHitsLimit1.3.6.1.4.1.9.9.312.1.1.2

Tables (6)

NameOID
cdcVFileTable1.3.6.1.4.1.9.9.312.1.1.3
cdcVFileMgmtTable1.3.6.1.4.1.9.9.312.1.1.4
cdcDGTable1.3.6.1.4.1.9.9.312.1.2.1
cdcDGBaseObjectTable1.3.6.1.4.1.9.9.312.1.2.2
cdcDGInstanceTable1.3.6.1.4.1.9.9.312.1.2.3
cdcFileXferConfTable1.3.6.1.4.1.9.9.312.1.3.1

Traps (2)

NameOID
cdcVFileCollectionError1.3.6.1.4.1.9.9.312.0.1
cdcFileXferComplete1.3.6.1.4.1.9.9.312.0.2

END OF TOC

Scalar details

cdcVFilePersistentStorage

1.3.6.1.4.1.9.9.312.1.1.1

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

This object's value reads 'true', if the agent implementation of this MIB supports placement of VFiles in application specified persistent storage locations. Otherwise the value is 'false'.

cdcVFileMaxSizeHitsLimit

1.3.6.1.4.1.9.9.312.1.1.2

Unsigned32 (1..4294967295)

A global limit for the number of consecutive times the maximum VFile size (cdcVFileMaxSize) is exceeded for a given VFile. When this limit is exceeded the offending cdcVFileEntry is moved to the error state (see cdcVFileOperStatus).

Table details

cdcVFileTable

1.3.6.1.4.1.9.9.312.1.1.3

Index: cdcVFileIndex

A table for setting up VFiles for collecting data.

cdcVFileIndex

1.3.6.1.4.1.9.9.312.1.1.3.1.1

Unsigned32 (1..4294967295)

An arbitrary integer for uniquely identifying this entry. When creating a row, the application should pick a random number. If the configuration in this entry is persisted across system/agent restarts then the same value of cdcVFileIndex must be assigned to this entry after the restart.

cdcVFileName

1.3.6.1.4.1.9.9.312.1.1.3.1.2

DisplayStringRepresents textual information taken from the NVT ASCII character set, as defined in pages 4, 10-11 of RFC 854. To summarize RFC 854, the NVT ASCII repertoire specifies: - the use of character codes 0-127 (decimal) - the graphics characters (32-126) are interpreted as US ASCII - NUL, LF, CR, BEL, BS, HT, VT and FF have the special meanings specified in RFC 854 - the other 25 codes have no standard interpretation - the sequence 'CR LF' means newline - the sequence 'CR NUL' means carriage-return - an 'LF' not preceded by a 'CR' means moving to the same column on the next line. - the sequence 'CR x' for any x other than LF or NUL is illegal. (Note that this also means that a string may end with either 'CR LF' or 'CR NUL', but not with CR.) Any object defined using this syntax may not exceed 255 characters in length. SIZE (0..255) · OCTET STRING · hint 255a

The base-name of the VFiles (created by data collection operations corresponding to this entry) into which data is to be collected. When a VFile is created, it's full name is obtained by the concatentation of a suffix to this value. The suffix will be chosen by the agent such that the VFiles created for this entry have unique names. For e.g. the suffix could be a string representation of the date and time when the VFile was created. If VFiles are to be placed in the agent's local filesystem (provided the agent supports it) then this value should also contain the absolute path of the location as a prefix to the base name. An agent will respond with inconsistentValue to a management set operation which attempts to modify the value of this object to the same value as already held by another instance of cdcVFileName, or wrongValue if the new value is invalid for use as a file name on the local file system (e.g., many file systems do not support white space embedded in file names). This object's value may be modified at any time. However the new name will be used only when the next VFile is created for this entry.

cdcVFileDescription

1.3.6.1.4.1.9.9.312.1.1.3.1.3

SnmpAdminStringAn octet string containing administrative information, preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 transformation format described in [RFC2279]. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. Byte sequences that do not correspond to the valid UTF-8 encoding of a code point or are outside this range are prohibited. The use of control codes should be avoided. When it is necessary to represent a newline, the control code sequence CR LF should be used. The use of leading or trailing white space should be avoided. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 encoding is identical to the US-ASCII encoding. UTF-8 may require multiple bytes to represent a single character / code point; thus the length of this object in octets may be different from the number of characters encoded. Similarly, size constraints refer to the number of encoded octets, not the number of characters represented by an encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction MUST be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC3416]. Note that the size of an SnmpAdminString object is measured in octets, not characters. SIZE (0..255) · OCTET STRING · hint 255t

A string that can be used for administrative purposes. This object's value may be modified at any time.

cdcVFileCommand

1.3.6.1.4.1.9.9.312.1.1.3.1.4

INTEGER1 = idle2 = swapToNewFile3 = collectNow · Integer32

An object for controlling collection of data. 'idle' Indicates that no command is in progress. 'swapToNewFile' When written, the current VFile is frozen, and a new VFile is created for collecting data. If the data collection mode is automatic (see cdcVFileCollectMode), then the current collection interval is stopped and a new collection interval is started (see cdcVFileCollectPeriod). 'collectNow' When written, base object values for all associated data groups are fetched and stored into the current VFile. This value can only be written when the collection mode is 'manual' (see cdcVFileCollectMode).

cdcVFileMaxSize

1.3.6.1.4.1.9.9.312.1.1.3.1.5

Unsigned32 (512..4294967295) · bytes

The maximum size of a VFile. The agent maintains an internal counter for each cdcVFileEntry. This counter counts the number of consecutive times the size of a VFile has exceeded the value of this object. When the value of this counter exceeds the value of cdcVFileMaxSizeHitsLimit, this entry is moved to the 'error' state (see cdcVFileOperStatus). However if the value of cdcVFileMaxSizeHitsLimit is not exceeded, then the current VFile is frozen, and a new VFile is created for data collection. If the data collection mode is automatic (see cdcVFileCollectMode), then the current collection interval is stopped and a new collection interval is started. This object's value may be modified at any time. The new size limit MUST be checked against the size of the current VFile at the time of modification, and appropriate action taken.

cdcVFileCurrentSize

1.3.6.1.4.1.9.9.312.1.1.3.1.6

Unsigned32 · bytes

The size of the current VFile.

cdcVFileFormat

1.3.6.1.4.1.9.9.312.1.1.3.1.7

CdcFileFormat1 = cdcBulkASCII2 = cdcBulkBinary3 = cdcSchemaASCIIThe file formats supported are: cdcBulkASCII ASCII format similar to the 'bulkASCII' format of the CISCO-BULK-FILE-MIB. cdcBulkBinary Binary format similar to the 'bulkBinary' format of the CISCO-BULK-FILE-MIB. cdcSchemaASCII Again an ASCII format, but contains parser friendly hints for parsing data values. Format descriptions : --------------------- The below description applies to cdcBulkASCII & cdcBulkBinary and is extracted from CISCO-BULK-FILE-MIB. Some differences are highlighted below: 1) Data for a single data group can be collected more than once into the same VFile (due to periodic polling). Each such instance of a data group, can be treated much like different 'table' types in the CISCO-BULK-FILE-MIB. 2) Every object & table tag contains an additional sysUpTime field. Similarly each row tag contains the value of the sysUpTime when the data for that row was collected. The rest of the description is taken from the CISCO-BULK-FILE-MIB. The file contains two types of fields: tags and data. Tags identify portions of the file and are discussed in detail below. All other information is in data fields. Note: For efficiency and compactness data fields are not tagged with a type. The interpreter of the data must thus know or have access to appropriate MIB syntax descriptions to understand the file. All data fields are positional relative to a tag and every data field has a length prefix. All initial length prefixes are one byte. For any data type the distinguished length value 255 indicates that the data content is null, that is, no data content value was available and there are no additional bytes in the data field. INTEGER data fields include all data that maps to ASN.1 INTEGER, regardless of length and whether signed or unsigned. They have a length prefix value of zero to eight, followed by that many bytes of data, high-order byte first. High order bytes that are all zero are omitted, thus a length of zero indicates a value of zero. For signed numbers, leading bytes of all ones (hex FF) are omitted if the next remaining byte has the high bit on. This implies that the file parser must know the difference between signed and unsigned integers. OCTET STRING values have a length prefix value of zero to two for a subsequent unsigned byte count for the number of bytes in the OCTET STRING itself, which immediately follows the byte count. The byte count can thus range from zero to 65,535. OBJECT IDENTIFIER values have a length of zero to 128, for the number of sub-identifiers. Each subsequent sub-identifier is encoded as an unsigned INTEGER of 0-4 bytes. The bulk binary file layout directly reflects the contents of the cbfDefineFileObjectTable. It has tagged sections corresponding to cbfDefineObjectClass with a few additional tags for utility purposes. A tag is one byte with one of the following values: -2 row -1 prefix 0 reserved 2 table The prefix tag changes the default OID prefix that is assumed to precede all OIDs that are not MIB object data values. The prefix tag may appear anywhere another tag could appear. A prefix tag is followed by one OID data field. The default prefix is 1.3.6.1. A file need not set the prefix to the default value. Note that when changing the prefix, the default portion must be included at the beginning of the new prefix. Typically the prefix will change for each table or group of scalar objects. A table tag is followed by one INTEGER data field whose value is the number of columns in the table (including the sysUpTime column), as implemented by the agent. This is followed by an OID field containing the sysUpTime OID. This is followed by one OID data field for each column. This is the OID for the column minus the prefix and the instance (typically one subidentifier). The OIDs are then followed by one row for each row in the table. A row starts with a row tag, one OID data field containing only the instance portion of the OIDs for the objects in that row and one data field indicating the sysUpTime when the row was sampled. Following this is one data field of appropriate type for each column. The bulk ASCII form mechanically translates bulk binary into human-readable text. The indicator for a null value is '~'. An INTEGER becomes the integer value with a preceding '-' for negative values and no leading zeros. An OCTET STRING becomes the byte values in hexadecimal, lower case, two characters per byte (that is, with leading zeros), no delimiters between bytes. An OBJECT IDENTIFIER becomes the usual dotted decimal form. A tag becomes the tag's name, spelled out fully in lower case, followed by one blank and the data field(s) for the tag, separated by spaces and ending with a carriage return/line feed. All tags are at the beginning of a 'line' that is terminated with a carriage return/line feed that immediately precedes the next tag or the end of file. · Integer32

The format in which data is stored into the current VFile. This object's value cannot be modified while the entry is in the 'activated' state.

cdcVFileCollectMode

1.3.6.1.4.1.9.9.312.1.1.3.1.8

INTEGER1 = auto2 = manual · Integer32

Determines the mode of data collection. 'auto' Data is periodically fetched for all data groups associated with this entry. This is done at data group specific periodic intervals (cdcDGPollPeriod). The data thus collected, is formatted and stored into the current VFile. In addition at regular intervals (see cdcVFileCollectPeriod) a new VFile is created to store data, and the current VFile is frozen and transferred. 'manual' Data for all data groups is fetched and collected into the current VFile only when cdcVFileCommand is set to 'collectNow'. This object's value cannot be modified while the entry is in the 'activated' state.

cdcVFileCollectionPeriod

1.3.6.1.4.1.9.9.312.1.1.3.1.9

Unsigned32 (60..604800) · seconds

Specifies the period of a collection interval. The value of this object is used only when the data collection mode is automatic (see cdcVFileCollectMode). A periodic timer (one per entry) is started when this entry is 'activated'. The time at which this entry is 'activated' is called the 'activation time' for this entry, and is internally maintained by the agent. When this periodic timer expires, the current VFile is frozen and a new VFile is created for data collection. Transfer is then initiated for the frozen VFile. In addition, the internally maintained counter for counting the number of consecutive times the size of a VFile has exceeded the maximum limit, is reset to zero. (See cdcVFileMaxSize) This object's value may be modified at any time, and the new value takes effect immediately. i.e setting a new value can cause the current collection interval to terminate and a new collection interval to start.

cdcVFileRetentionPeriod

1.3.6.1.4.1.9.9.312.1.1.3.1.10

Unsigned32 (60..86400) · seconds

The time for which a frozen VFile is retained by the agent. When a VFile is frozen, a timer (one per frozen VFile) is started to keep track of the retention period for the VFile. Once this timer expires, the VFile is deleted. Till the expiry of the retention period, information about frozen VFiles is maintained in cdcVFileMgmtTable. This object's value may be modified at any time, however the new value will take effect only for new frozen VFiles.

cdcVFileAdminStatus

1.3.6.1.4.1.9.9.312.1.1.3.1.11

INTEGER1 = enabled2 = disabled · Integer32

A control object to indicate the administratively desired state of data collection for this entry. On setting the value to 'disabled' data collection operations for this entry are stopped, the current VFile is frozen and it's transfer is initiated. Modifying the value of cdcVFileAdminStatus to 'disabled' does not remove or change the current configuration as represented by the active rows in this table.

cdcVFileOperStatus

1.3.6.1.4.1.9.9.312.1.1.3.1.12

INTEGER1 = enabled2 = disabled3 = error · Integer32

A status object to indicate the operational state of collection for this entry. When the value of cdcVFileAdminStatus is modified to be 'enabled', the value of this object will change to 'enabled' providing it is possible to begin collecting data. If at any point of time data cannot be collected because of some error, then the value of this object is changed to 'error' and all collection operations stop, as if cdcVFileAdminStatus has been set to 'disabled'. More information about the nature of the error can be obtained by retrieving the value of cdcVFileErrorCode. When the value of cdcVFileAdminStatus is modified to be 'disabled', the value of this object will change to 'disabled' and data collection operations are stopped for this entry.

cdcVFileErrorCode

1.3.6.1.4.1.9.9.312.1.1.3.1.13

INTEGER1 = noError2 = otherError3 = noSpace4 = openError5 = tooSmallMaxSize6 = tooManyMaxSizeHits7 = noResource · Integer32

A value indicating the type of error that has occurred during data collection operations for this entry. noError The value is 'noError' when the corresponding value of cdcVFileOperStatus is not 'error'. otherError Any error other than one of the following listed errors. noSpace There is no space left to write into the current VFile. openError Could not open VFile for writing. One possible reason could be the existence of another file by the same name in the agent's filesystem. tooSmallMaxSize Indicates that cdcVFileMaxSize is too small for data collection. The cdcVFileMaxSize configured for this VFile is not sufficient even to hold the data collected in one poll. tooManyMaxSizeHits Indicates that data collection operations are stopped because the value of cdcVFileMaxSizeHitsLimit has been exceeded. noResource Some kind of resource was unavailable while collecting data. For e.g. unavailability of dynamic memory.

cdcVFileCollectionErrorEnable

1.3.6.1.4.1.9.9.312.1.1.3.1.14

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

When set to 'true', cdcVFileCollectionError notification will be sent out in the event of a data collection error.

cdcVFileRowStatus

1.3.6.1.4.1.9.9.312.1.1.3.1.15

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this conceptual row. A valid cdcVFileName is only mandatory object for setting this object to 'active'. But collection of data in to active vfile starts only on setting cdcVFileAdminStatus to 'enabled'. Setting this object to 'destroy' stops all data collection operations for this entry, deletes all VFiles and removes this entry from cdcVFileTable.

cdcVFileMgmtTable

1.3.6.1.4.1.9.9.312.1.1.4

Index: cdcVFileIndex · cdcVFileMgmtIndex

A table to manage frozen VFiles.

cdcVFileMgmtIndex

1.3.6.1.4.1.9.9.312.1.1.4.1.1

Unsigned32 (1..4294967295)

This value is a running counter starting at 1, generated by the agent so that the combination of cdcVFileIndex and cdcVFileMgmtIndex uniquely identifies a frozen VFile. The deleted file indicies do not get reused. This object's value needs to be unique only across the set of frozen VFiles corresponding to a cdcVFileEntry (identified by cdcVFileIndex).

cdcVFileMgmtName

1.3.6.1.4.1.9.9.312.1.1.4.1.2

DisplayStringRepresents textual information taken from the NVT ASCII character set, as defined in pages 4, 10-11 of RFC 854. To summarize RFC 854, the NVT ASCII repertoire specifies: - the use of character codes 0-127 (decimal) - the graphics characters (32-126) are interpreted as US ASCII - NUL, LF, CR, BEL, BS, HT, VT and FF have the special meanings specified in RFC 854 - the other 25 codes have no standard interpretation - the sequence 'CR LF' means newline - the sequence 'CR NUL' means carriage-return - an 'LF' not preceded by a 'CR' means moving to the same column on the next line. - the sequence 'CR x' for any x other than LF or NUL is illegal. (Note that this also means that a string may end with either 'CR LF' or 'CR NUL', but not with CR.) Any object defined using this syntax may not exceed 255 characters in length. SIZE (0..255) · OCTET STRING · hint 255a

The full name of the VFile. If the VFile is stored as a file in the agent's filesystem, then this value also contains the absolute path of the file.

cdcVFileMgmtTimestamp

1.3.6.1.4.1.9.9.312.1.1.4.1.3

DateAndTimeA date-time specification. field octets contents range ----- ------ -------- ----- 1 1-2 year* 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC* 0..13 10 11 minutes from UTC 0..59 * Notes: - the value of year is in network-byte order - daylight saving time in New Zealand is +13 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then timezone information (fields 8-10) is not present. SIZE (8 | 11) · OCTET STRING · hint 2d-1d-1d,1d:1d:1d.1d,1a1d:1d

The timestamp when this VFile was created, in the date-time format.

cdcVFileMgmtTimeToLive

1.3.6.1.4.1.9.9.312.1.1.4.1.4

Unsigned32 (60..86400) · seconds

The time left before this VFile is deleted (see cdcVFileRetentionPeriod).

cdcVFileMgmtCommand

1.3.6.1.4.1.9.9.312.1.1.4.1.5

INTEGER1 = idle2 = delete3 = transfer4 = abortTransfer · Integer32

A control to manage VFiles. idle This value can be only be read. It indicates that no management action is currently being performed on this VFile. delete This value is only written, and is used to delete the frozen VFile. Writing this value will cause this entry to be removed from this table. transfer This value can be both read and written. When read it means that the VFile is in the process of being transferred. When written, it initiates a transfer for the VFile. abortTransfer This value can only be written, and is used to abort an ongoing transfer.

cdcVFileMgmtXferURL

1.3.6.1.4.1.9.9.312.1.1.4.1.6

CdcUrlRepresents a string that contains a Uniformed Resource Locator as defined in RFC 1738. SIZE (0..255) · OCTET STRING

The complete URL of the destination to which this VFile will be transferred in the next attempt. The URL also includes the complete filename of the remote file that will be created. When the default value of this object is retained this VFile will be transferred to the URL specified in cdcFileXferConfPriUrl or cdcFileXferConfSecUrl, as the case may be. However an application can specify a different URL, in which case the VFile will be transferred to this new URL the next time transfer is initiated. This object's value may be modified at any time.

cdcVFileMgmtLastXferStatus

1.3.6.1.4.1.9.9.312.1.1.4.1.7

CdcFileXferStatus1 = notStarted2 = success3 = aborted4 = fileOpenFailRemote5 = badDomainName6 = unreachableIpAddress7 = networkFailed8 = fileWriteFailed9 = authFailedThe status of a file transfer. The different values are given below: notStarted File transfer has not started. success File transfer has successfully completed. aborted File transfer has been aborted. fileOpenFailRemote Remote file could not be opened. badDomainName Bad domain name given in the URL. unreachableIpAddress IP address given in the URL could not be reached. networkFailure Transfer failed due to a network failure. fileWriteFailed A write on the remote file has failed. authFailed Authentication failed. For instance incorrect password in CdcUrl incase of FTP(File Transfer Protocol). · Integer32

Indicates the status of the last completed transfer.

cdcVFileMgmtLastXferURL

1.3.6.1.4.1.9.9.312.1.1.4.1.8

CdcUrlRepresents a string that contains a Uniformed Resource Locator as defined in RFC 1738. SIZE (0..255) · OCTET STRING

Indicates the URL of the destination to which the last (completed) transfer was initiated.

cdcDGTable

1.3.6.1.4.1.9.9.312.1.2.1

Index: cdcDGIndex

A table for specifying data groups.

cdcDGIndex

1.3.6.1.4.1.9.9.312.1.2.1.1.1

Unsigned32 (1..4294967295)

An arbitrary integer used to uniquely identify this entry. When creating an entry, a management application should pick a random number.

cdcDGComment

1.3.6.1.4.1.9.9.312.1.2.1.1.2

SnmpAdminStringAn octet string containing administrative information, preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 transformation format described in [RFC2279]. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. Byte sequences that do not correspond to the valid UTF-8 encoding of a code point or are outside this range are prohibited. The use of control codes should be avoided. When it is necessary to represent a newline, the control code sequence CR LF should be used. The use of leading or trailing white space should be avoided. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 encoding is identical to the US-ASCII encoding. UTF-8 may require multiple bytes to represent a single character / code point; thus the length of this object in octets may be different from the number of characters encoded. Similarly, size constraints refer to the number of encoded octets, not the number of characters represented by an encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction MUST be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC3416]. Note that the size of an SnmpAdminString object is measured in octets, not characters. SIZE (0..255) · OCTET STRING · hint 255t

A descriptive string. This object's value may be modified at any time.

cdcDGType

1.3.6.1.4.1.9.9.312.1.2.1.1.3

INTEGER1 = object2 = table · Integer32

Identifies the type of this data group. object Data is a single MIB object. The fully instantiated OID is specified in cdcDGBaseObject. table Data is a logical table. The columns of this table correspond to the base objects specified in cdcDGBaseObjectTable, and the rows correspond to the values of the instances specified in cdcDGInstanceTable. This object's value cannot be modified while the value of cdcDGRowStatus is 'active'.

cdcDGVFileIndex

1.3.6.1.4.1.9.9.312.1.2.1.1.4

Unsigned32 (1..4294967295)

Corresponds to a value of cdcVFileIndex. It is used to associate this data group with a cdcVFileEntry. The values of the base objects for this data group are stored into the current VFile of the associated cdcVFileEntry. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGTargetTag

1.3.6.1.4.1.9.9.312.1.2.1.1.5

SnmpTagValueAn octet string containing a tag value. Tag values are preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 character encoding scheme described in RFC 2279. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. The use of control codes should be avoided, and certain control codes are not allowed as described below. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 representation is identical to the US-ASCII encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction must be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC1905]. An object of this type contains a single tag value which is used to select a set of entries in a table. A tag value is an arbitrary string of octets, but may not contain a delimiter character. Delimiter characters are defined to be one of the following: - An ASCII space character (0x20). - An ASCII TAB character (0x09). - An ASCII carriage return (CR) character (0x0D). - An ASCII line feed (LF) character (0x0A). Delimiter characters are used to separate tag values in a tag list. An object of this type may only contain a single tag value, and so delimiter characters are not allowed in a value of this type. Some examples of valid tag values are: - 'acme' - 'router' - 'host' The use of a tag value to select table entries is application and MIB specific. SIZE (0..255) · OCTET STRING · hint 255a

The tag for the target from which to obtain the data for this data group. A length of 0 indicates the local system. In this case, access to the objects of this data group is under the security credentials of the requester that set cdcDGRowStatus to 'active'. Those credentials are the input parameters for isAccessAllowed from the Architecture for Describing SNMP Management Frameworks. Otherwise a search is carried out for an entry in the snmpTargetAddrTable whose snmpTargetAddrTagList contains the tag specified by the value of this object. The security credentials (snmpTargetParamsEntry) of the first entry that satisfies the above criteria, are passed as input parameters for isAccessAllowed. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGContextName

1.3.6.1.4.1.9.9.312.1.2.1.1.6

SnmpAdminStringAn octet string containing administrative information, preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 transformation format described in [RFC2279]. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. Byte sequences that do not correspond to the valid UTF-8 encoding of a code point or are outside this range are prohibited. The use of control codes should be avoided. When it is necessary to represent a newline, the control code sequence CR LF should be used. The use of leading or trailing white space should be avoided. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 encoding is identical to the US-ASCII encoding. UTF-8 may require multiple bytes to represent a single character / code point; thus the length of this object in octets may be different from the number of characters encoded. Similarly, size constraints refer to the number of encoded octets, not the number of characters represented by an encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction MUST be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC3416]. Note that the size of an SnmpAdminString object is measured in octets, not characters. SIZE (0..255) · OCTET STRING · hint 255t

The management context from which to obtain data for this data group. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGObject

1.3.6.1.4.1.9.9.312.1.2.1.1.7

VariablePointerA pointer to a specific object instance. For example, sysContact.0 or ifInOctets.3. · OBJECT IDENTIFIER

The fully instantiated name of the MIB object whose value needs to be fetched. This object's value is used only when cdcDGType is of type 'object'. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGObjectGrpIndex

1.3.6.1.4.1.9.9.312.1.2.1.1.8

Unsigned32 (1..4294967295)

Corresponds to a value of cdcDGBaseObjectGrpIndex, thus identifying a set of entries in cdcDGBaseObjectTable, having this value of cdcDGBaseObjectGrpIndex. This object's value is used only when cdcDGType is of type 'table'. This set of entries in cdcDGBaseObjectTable in turn identifies the set of base objects, that makes up the columns of this 'table' type data group. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGInstGrpIndex

1.3.6.1.4.1.9.9.312.1.2.1.1.9

Unsigned32

Corresponds to a value of cdcDGInstanceGrpIndex, thus identifying a set of entries in cdcDGInstanceTable, having this value of cdcDGInstanceGrpIndex. This object's value is used only when cdcDGType is of type 'table'. The set of entries in cdcDGInstanceTable, in turn identifies the set of instances of the base objects, whose values need to fetched. If the value is 0, then all instances of the base objects will be fetched. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGPollPeriod

1.3.6.1.4.1.9.9.312.1.2.1.1.10

Unsigned32 (1..86400) · seconds

Specifies the time intervals at which the data should be fetched for this data group. This object's value is used only when the collection mode of the associated cdcVFileEntry is automatic (see cdcVFileCollectMode). A periodic timer is started for this data group when cdcDGRowStatus is set to 'active', provided the associated cdcVFileEntry has already been 'activated', otherwise it is started when the associated cdcVFileEntry is finally activated. The time interval after which the first expiration of this timer should occur, is calculated as follows: (value of sysUpTime.0) + (value of cdcPollPeriod for this entry - (value of sysUpTime.0 - VFile activation time for the associated cdcVFileEntry) % cdcPollPeriod) Subsequent expirations of the periodic timer can occur as per the value specified in cdcDGPollPeriod. This helps in synchronizing periodic polling of the data groups with respect to the VFile activation time. This object's value may be modified at any time, and the change must take effect immediately. i.e. if the periodic timer has been started, it's expiry time may need to be re-adjusted.

cdcDGRowStatus

1.3.6.1.4.1.9.9.312.1.2.1.1.11

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this conceptual row. This object cannot be set to 'active' until values have been assigned to cdcDGVFileIndex & cdcDGColGrpIndex.

cdcDGBaseObjectTable

1.3.6.1.4.1.9.9.312.1.2.2

Index: cdcDGBaseObjectGrpIndex · cdcDGBaseObjectIndex

A table specifying the base objects of a 'table' type data group.

cdcDGBaseObjectGrpIndex

1.3.6.1.4.1.9.9.312.1.2.2.1.1

Unsigned32 (1..4294967295)

This object's value when combined with the value of cdcDGBaseObjectIndex uniquely identifies an entry in this table. An application must use the same value (can be randomly picked) for this object while creating a group of entries that collectively identifies the set of base objects for a data group.

cdcDGBaseObjectIndex

1.3.6.1.4.1.9.9.312.1.2.2.1.2

Unsigned32 (1..4294967295)

This object's value when combined with the value of cdcDGBaseObjectGrpIndex uniquely identifies an entry in this table. A managment application can assign incremental values starting from one, when creating each entry in a group of entries (as identified by the value of cdcDGBaseObjectGrpIndex).

cdcDGBaseObjectSubtree

1.3.6.1.4.1.9.9.312.1.2.2.1.3

CdcCollectionSubtreeThe subtree component of a (subtree, list) tuple. The purpose of a tuple is to identify the columns (base objects) in a 'table' type data group. The subtree specifies a single OBJECT IDENTIFIER value such that each object in the set is named by the subtree value appended with a single additional sub-identifier derived from the list component of the tuple. A typical example would be the OBJECT IDENTIFER of the fooEntry construct in a MIB table. e.g. ifEntry. · OBJECT IDENTIFIER

The subtree component of a {subtree, list} tuple. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGBaseObjectList

1.3.6.1.4.1.9.9.312.1.2.2.1.4

CdcCollectionListThe list component of a (subtree, list) tuple. The purpose of a tuple is to identify the base objects of a 'table' type data group. The subtree specifies a single OBJECT IDENTIFIER value such that each object in the set is named by the subtree value appended with a single additional sub-identifier. The list specifies a set of data items, where the presence of an item in the list indicates that the item is selected as a column of the 'table' type data group; the absence of an item from the list indicates that the item is not selected as a column of the 'table' type data group. Each data item is represented by an integer which when appended (as as additional sub-identifier) to the OBJECT IDENTIFIER value of the subtree identified by the tuple, is the name of an object defining that data item (its description and its syntax). The list is specified as an OCTET STRING in which each data item is represented by a single bit, where data items 1 through 8 are represented by the bits in the first octet, data items 9 through 16 by the bits in the second octet, etc. In each octet, the lowest numbered data item is represented by the most significant bit, and the highest numbered data item by the least significant bit. A data item is present in the list when its bit is set, and absent when its bit is reset. If the length of an OCTET STRING value is too short to represent one or more data items defined in a subtree, then those data items are absent from the set identified by the tuple of that subtree and that OCTET STRING value. SIZE (0..16) · OCTET STRING

The list component of a {subtree, list} tuple. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGBaseObjectRowStatus

1.3.6.1.4.1.9.9.312.1.2.2.1.5

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this conceptual row. This object cannot be set to 'active' until values have been assigned to cdcDGBaseObjectSubtree & cdcDGBaseObjectList.

cdcDGInstanceTable

1.3.6.1.4.1.9.9.312.1.2.3

Index: cdcDGInstanceGrpIndex · cdcDGInstanceIndex

Identifies the instances of the base objects that need to be fetched for a 'table' type data group. The agent is not responsible for verifying that the instances specified for a data group do not overlap.

cdcDGInstanceGrpIndex

1.3.6.1.4.1.9.9.312.1.2.3.1.1

Unsigned32 (1..4294967295)

This object's value when combined with the value of cdcDGInstanceIndex uniquely identifies an entry in this table. An application must use the same value (can be randomly picked) for this object while creating a group of entries that collectively identifies the set of instances for a data group.

cdcDGInstanceIndex

1.3.6.1.4.1.9.9.312.1.2.3.1.2

Unsigned32 (1..4294967295)

This object's value when combined with the value of cdcDGInstanceGrpIndex uniquely identifies an entry in this table. A managment application can assign incremental values starting from one, when creating each entry within a group of entries (as identified by the value of cdcDGInstanceGrpIndex).

cdcDGInstanceType

1.3.6.1.4.1.9.9.312.1.2.3.1.3

INTEGER1 = individual2 = range3 = repititions4 = subTree5 = other · Integer32

Specifies the way in which the instances are to be used while collecting data. individual The value of cdcDGInstanceOid is appended to each base object of the associated data group, thus giving the exact instance of the objects to be collected. range The value of cdcDGInstanceOid is appended to each base object in the associated data group, thus giving the starting object instance of the range. The value of cdcDGInstanceEndOid is appended to to each base object in the associated data group, thus giving the last object instances of the range. repititions The value of cdcDGInstanceOid is appended to each base object in the associated data group, thus giving the first object instance of the next 'n' instances that need to be collected. The value of 'n' is set in cdcDGInstanceNumRepititions. subTree The value of cdcDGInstanceOid is appended to each base object in the associated data group, thus identifying the OBJECT IDENTFIFIER sub-tree, whose leaf instances need to be collected. other The value of cdcDGInstanceOtherPtr points to a row (in another MIB table) that contains MIB specific instance selection criteria. A MIB defined for such purposes should describe the selection criteria. This object's value cannot be modified while the value of cdcDGInstanceStatus is 'active'.

cdcDGInstanceOid

1.3.6.1.4.1.9.9.312.1.2.3.1.4

CdcRowInstanceIdA fragment of a OBJECT IDENTIFIER (OID). It is used to specify the instances of the base objects whose values need to be fetched. To comply with the definition of an OBJECT IDENTIFIER, the first two sub-ids of a CdcRowInstanceId value is {0,0}. · OBJECT IDENTIFIER

Contains the OBJECT IDENTIFIER fragment that identifies the instances of the base objects that need to be collected. If cdcDGInstanceType is 'individual' then this value should be the OID fragment that, when appended to each base MIB object gives the fully instantiated OID to be fetched. If cdcDGInstanceType is 'range' then this value should be the OID fragment that, when appended to each base MIB object gives the start of a range of object instances that needs to be fetched. If cdcDGInstanceType is 'subTree' then this value should be the OID fragment that, when appended to each base MIB gives the sub-tree under which all leaf object instances need to be fetched. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGInstanceOidEnd

1.3.6.1.4.1.9.9.312.1.2.3.1.5

CdcRowInstanceIdA fragment of a OBJECT IDENTIFIER (OID). It is used to specify the instances of the base objects whose values need to be fetched. To comply with the definition of an OBJECT IDENTIFIER, the first two sub-ids of a CdcRowInstanceId value is {0,0}. · OBJECT IDENTIFIER

Contains the OID fragment that, when appended to each base object gives the end of the range of object instances that needs to be fetched. This value is used only when the value of cdcDGInstanceType is of type 'range'. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGInstanceNumRepititions

1.3.6.1.4.1.9.9.312.1.2.3.1.6

Unsigned32

Specifies the number of lexicographically consecutive object instances to fetch. This value is used only when the value of cdcDGInstanceType is of type 'repititions'. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGInstanceOtherPtr

1.3.6.1.4.1.9.9.312.1.2.3.1.7

RowPointerRepresents a pointer to a conceptual row. The value is the name of the instance of the first accessible columnar object in the conceptual row. For example, ifIndex.3 would point to the 3rd row in the ifTable (note that if ifIndex were not-accessible, then ifDescr.3 would be used instead). · OBJECT IDENTIFIER

Contains a pointer to a row in another MIB table that contains MIB specific criteria for selecting instances. This value is used only when the value of cdcDGInstanceType is of type 'other'. This object's value may be modified at any time. The change takes effect the next time data is fetched for this data group.

cdcDGInstanceRowStatus

1.3.6.1.4.1.9.9.312.1.2.3.1.8

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this conceptual row.

cdcFileXferConfTable

1.3.6.1.4.1.9.9.312.1.3.1

Index: cdcVFileIndex

A table for configuring file transfer operations.

cdcFileXferConfPriUrl

1.3.6.1.4.1.9.9.312.1.3.1.1.1

CdcUrlRepresents a string that contains a Uniformed Resource Locator as defined in RFC 1738. SIZE (0..255) · OCTET STRING

The URL which specifies the primary destination to which the file has to be transferred. The URL should contain the base-name of the remote file, the suffix will be carried over from the name of the VFile being tranferred, and will be automatically appended by the agent. This object's value may be modified at any time.

cdcFileXferConfSecUrl

1.3.6.1.4.1.9.9.312.1.3.1.1.2

CdcUrlRepresents a string that contains a Uniformed Resource Locator as defined in RFC 1738. SIZE (0..255) · OCTET STRING

The URL which specifies the secondary destination to which the file has to be transferred if the transfer to the primary destination fails. Failure occurs when the file cannot be transferred in it's entirety to the specified destination for some reason. Some common reasons for such failures are listed out in CdcFileXferStatus. The specified URL should contain the base-name of the remote file, the suffix will be carried over from the name of the VFile being tranferred, and will be automatically appended by the agent. This object's value may be modified at any time.

cdcFileXferConfRetryPeriod

1.3.6.1.4.1.9.9.312.1.3.1.1.3

Unsigned32 (60..86400) · seconds

Specifies the time interval after which transfer has to be retried. Transfer needs to be retried only if in a previous attempt the file could not be successfully transferred to either the primary destination or the secondary destination. This object's value may be modified at any time.

cdcFileXferConfRetryCount

1.3.6.1.4.1.9.9.312.1.3.1.1.4

Unsigned32 (0..256) · seconds

Maximum number of times, transfer has to be retried. If the retry count exceeds this value, then no further attempts will be made. This object's value may be modified at any time.

cdcFileXferConfSuccessEnable

1.3.6.1.4.1.9.9.312.1.3.1.1.5

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

When set to 'true', cdcFileXferComplete notification will be sent out in the event of a successful file transfer.

cdcFileXferConfFailureEnable

1.3.6.1.4.1.9.9.312.1.3.1.1.6

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

When set to 'true', cdcFileXferComplete notification will be sent out in the event of a file transfer failure.

Trap details

cdcVFileCollectionError

1.3.6.1.4.1.9.9.312.0.1

Notification that data collection operations for a cdcVFileEntry has encountered an error. The cdcVFileEntry is identified by the instance portion of cdcVFileName. The error code is available as the value of the cdcVFileErrorCode variable.

cdcVFileName

1.3.6.1.4.1.9.9.312.1.1.3.1.2

DisplayStringRepresents textual information taken from the NVT ASCII character set, as defined in pages 4, 10-11 of RFC 854. To summarize RFC 854, the NVT ASCII repertoire specifies: - the use of character codes 0-127 (decimal) - the graphics characters (32-126) are interpreted as US ASCII - NUL, LF, CR, BEL, BS, HT, VT and FF have the special meanings specified in RFC 854 - the other 25 codes have no standard interpretation - the sequence 'CR LF' means newline - the sequence 'CR NUL' means carriage-return - an 'LF' not preceded by a 'CR' means moving to the same column on the next line. - the sequence 'CR x' for any x other than LF or NUL is illegal. (Note that this also means that a string may end with either 'CR LF' or 'CR NUL', but not with CR.) Any object defined using this syntax may not exceed 255 characters in length. SIZE (0..255) · OCTET STRING · hint 255a

The base-name of the VFiles (created by data collection operations corresponding to this entry) into which data is to be collected. When a VFile is created, it's full name is obtained by the concatentation of a suffix to this value. The suffix will be chosen by the agent such that the VFiles created for this entry have unique names. For e.g. the suffix could be a string representation of the date and time when the VFile was created. If VFiles are to be placed in the agent's local filesystem (provided the agent supports it) then this value should also contain the absolute path of the location as a prefix to the base name. An agent will respond with inconsistentValue to a management set operation which attempts to modify the value of this object to the same value as already held by another instance of cdcVFileName, or wrongValue if the new value is invalid for use as a file name on the local file system (e.g., many file systems do not support white space embedded in file names). This object's value may be modified at any time. However the new name will be used only when the next VFile is created for this entry.

cdcVFileErrorCode

1.3.6.1.4.1.9.9.312.1.1.3.1.13

INTEGER1 = noError2 = otherError3 = noSpace4 = openError5 = tooSmallMaxSize6 = tooManyMaxSizeHits7 = noResource · Integer32

A value indicating the type of error that has occurred during data collection operations for this entry. noError The value is 'noError' when the corresponding value of cdcVFileOperStatus is not 'error'. otherError Any error other than one of the following listed errors. noSpace There is no space left to write into the current VFile. openError Could not open VFile for writing. One possible reason could be the existence of another file by the same name in the agent's filesystem. tooSmallMaxSize Indicates that cdcVFileMaxSize is too small for data collection. The cdcVFileMaxSize configured for this VFile is not sufficient even to hold the data collected in one poll. tooManyMaxSizeHits Indicates that data collection operations are stopped because the value of cdcVFileMaxSizeHitsLimit has been exceeded. noResource Some kind of resource was unavailable while collecting data. For e.g. unavailability of dynamic memory.

cdcFileXferComplete

1.3.6.1.4.1.9.9.312.0.2

Notification that file transfer to the destination specified by the cdcVFileMgmtLastXferURL variable, has completed with the status specified by the cdcVFileMgmtLastXferStatus variable.

cdcVFileMgmtLastXferStatus

1.3.6.1.4.1.9.9.312.1.1.4.1.7

CdcFileXferStatus1 = notStarted2 = success3 = aborted4 = fileOpenFailRemote5 = badDomainName6 = unreachableIpAddress7 = networkFailed8 = fileWriteFailed9 = authFailedThe status of a file transfer. The different values are given below: notStarted File transfer has not started. success File transfer has successfully completed. aborted File transfer has been aborted. fileOpenFailRemote Remote file could not be opened. badDomainName Bad domain name given in the URL. unreachableIpAddress IP address given in the URL could not be reached. networkFailure Transfer failed due to a network failure. fileWriteFailed A write on the remote file has failed. authFailed Authentication failed. For instance incorrect password in CdcUrl incase of FTP(File Transfer Protocol). · Integer32

Indicates the status of the last completed transfer.

cdcVFileMgmtLastXferURL

1.3.6.1.4.1.9.9.312.1.1.4.1.8

CdcUrlRepresents a string that contains a Uniformed Resource Locator as defined in RFC 1738. SIZE (0..255) · OCTET STRING

Indicates the URL of the destination to which the last (completed) transfer was initiated.

↑ To TOC