-- extracted from draft-ietf-eos-snmp-bulkdata-00.txt -- at Fri Jul 20 06:05:35 2001 BULK-DATA-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, experimental, IpAddress, Unsigned32 FROM SNMPv2-SMI RowStatus, TimeStamp, DisplayString FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; bulkDataMIB MODULE-IDENTITY LAST-UPDATED "200107121954Z" ORGANIZATION "IETF Evolution of SNMP Working Group" CONTACT-INFO "Bryan Levin, Allegro Networks Postal: 6399 San Ignacio San Jose, CA 95119-1206 Tel: +1 408 281-5500 E-mail: snmp@allegronetworks.com David Battle, Cisco Systems Postal: 204 Golfclub Rd Knoxville, TN 37919-5924 Tel: +1 865 588-7763 E-mail: dbattle@cisco.com" DESCRIPTION "The MIB module for defining Bulk Data objects along with the Bulk Data file format, Upload Fileserver and Data Slice." ::= { experimental 999 } bulkDataSliceObjects OBJECT IDENTIFIER ::= { bulkDataMIB 1 } bulkDataFileTransferObjects OBJECT IDENTIFIER ::= { bulkDataMIB 2 } -- Data Slicing Control sliceTable OBJECT-TYPE SYNTAX SEQUENCE OF SliceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table describes a bulk data slice that is a subset of the current running agent's MIB data." ::= { bulkDataSliceObjects 1 } sliceEntry OBJECT-TYPE SYNTAX SliceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The data slice entry." INDEX { sliceIndex } ::= { sliceTable 1 } SliceEntry ::= SEQUENCE { sliceIndex Unsigned32, sliceType INTEGER, sliceOIDSubtree OBJECT IDENTIFIER, sliceColumnMask OCTET STRING, sliceRowRangeType INTEGER, sliceRowRangeTimestamp TimeStamp, sliceRowRangeStart Unsigned32, sliceRowRangeEnd Unsigned32, sliceRowRangeNetmask1 IpAddress, sliceRowRangeNetmask2 IpAddress, sliceEntryStatus RowStatus } sliceIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary integer to uniquely identify this entry. To create an entry a management application should pick a random number." ::= { sliceEntry 1 } sliceType OBJECT-TYPE SYNTAX INTEGER { oidSubtree(1), mibTable(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This describes the type of data bulk data. If set to oidSubtree(1) then all MIB data with the prefix of sliceOIDSubtree will be included in the data slice. If set to mibTable(2), then the values of sliceColumnMask, sliceRowRangeType,sliceRowRangeTimestamp,sliceRowRangeStart, sliceRowRangeEnd are significant." ::= { sliceEntry 2 } sliceOIDSubtree OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "Valid only if sliceType is set to oidSubtree(1). This describes an OID prefix, whose subtree will be included in the data slice." ::= { sliceEntry 3 } sliceColumnMask OBJECT-TYPE SYNTAX OCTET STRING (SIZE (1..255)) MAX-ACCESS read-create STATUS current DESCRIPTION "A bitstring that represents which columns of the conceptual table are to be included in this data slice. If the bit has a value of '1', the column is to be included in this data slice. The mapping of bit positions to table columns is from most significant bit (first column entry) to least significant bit (last column entry)." ::= { sliceEntry 4 } sliceRowRangeType OBJECT-TYPE SYNTAX INTEGER { simple(1), netMask(2), olderThan(3), newerThan(4) } MAX-ACCESS read-create STATUS current DESCRIPTION "This defines how the rows will be selected. If set to simple(1), the rows will range from the value of sliceRowRangeStart thru sliceRowRangeEnd, inclusive. If set to netMask(2), all rows whose index matches a netmask wildcard will be selected. For tables that have one IpAddress in their index field, sliceRowRangeNetmask1 will be the selector. For tables that have two IpAddress fields, sliceRowRangeNetmask1 will be used to match the first IpAddress index and sliceRowRangeNetmask2 will be used to match the second IpAddress index. If set to olderThan(3) or newerThan(4), table rows that have been changed (ie, have had a value change in their row) before or after the timestamp 'sliceRowRangeTimestamp' will be selected." ::= { sliceEntry 5 } sliceRowRangeTimestamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-create STATUS current DESCRIPTION "This defines the rows in a table that are older than or newer than this timestamp. If sliceRowRangeType is set to olderThan(3), all rows whose time of last modification are older than this timestamp are included in this data slice. If sliceRowRangeType is set to newerThan(4), all rows whose time of last modification are newer than this timestamp are included in this data slice. This column is only significant if sliceRowRangeType is set to olderThan(3) or newerThan(4)." ::= { sliceEntry 6 } sliceRowRangeStart OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "For simple tables (ie, where the indexing is a single integer), this defines the beginning index value to be included in the data slice. The rows selected are an inclusive range bounded by the values of sliceRowRangeStart and sliceRowRangeEnd. This column is only significant if sliceRowRangeType is set to simple(1)." ::= { sliceEntry 7 } sliceRowRangeEnd OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "For simple tables (ie, where the indexing is a single integer), this defines the ending index value to be included in the data slice. The rows selected are an inclusive range bounded by the values of sliceRowRangeStart and sliceRowRangeEnd. This column is only significant if sliceRowRangeType is set to simple(1)." ::= { sliceEntry 8 } sliceRowRangeNetmask1 OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "For tables that are indexed by an IpAddress component, this defines the netmask for the selection of rows to be included in the data slice. All rows that match this netmask will be included in this data slice. This column is only significant if sliceRowRangeType is set to netMask(2). Note that for multiply indexed tables where there is more than one IpAddress, this mask will be applied to the first one, only. If both sliceRowRangeNetmask1 and sliceRowRangeNetmask2 are defined, the rows selected will be the logical intersection of the sliceRowRangeNetmask1 rows and the sliceRowRangeNetmask2 rows." ::= { sliceEntry 9 } sliceRowRangeNetmask2 OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "For tables that are indexed by an IpAddress component, this defines the netmask for the selection of rows to be included in the data slice. All rows that match this netmask will be included in this data slice. This column is only significant if sliceRowRangeType is set to netMask(2). Note that for multiply indexed tables where there is more than one IpAddress, this mask will be applied to the first one, only. If both sliceRowRangeNetmask1 and sliceRowRangeNetmask2 are defined, the rows selected will be the logical intersection of the sliceRowRangeNetmask1 rows and the sliceRowRangeNetmask2 rows." ::= { sliceEntry 10 } sliceEntryStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The control variable that allows creation, modification, and deletion of entries in this table." ::= { sliceEntry 11 } -- File Transfer Control xferTable OBJECT-TYPE SYNTAX SEQUENCE OF XferEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table describes a bulk data transfer protocol, file encoding, remote path/filename, remote authentication and local file transfer status." ::= { bulkDataFileTransferObjects 1 } xferEntry OBJECT-TYPE SYNTAX XferEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The transfer table entry." INDEX { xferIndex } ::= { xferTable 1 } XferEntry ::= SEQUENCE { xferIndex Unsigned32, xferSliceIndex Unsigned32, xferProtocol INTEGER, xferFileEncoding INTEGER, xferFileCompression INTEGER, xferFileServerManditory DisplayString, xferFileServerOptional DisplayString, xferFileWriteControl INTEGER, xferFilePath DisplayString, xferFileName DisplayString, xferAuthUsername DisplayString, xferAuthPassword DisplayString, xferState INTEGER, xferStartTime TimeStamp, xferCompletionTime TimeStamp, xferFileSize Unsigned32, xferEntryStatus RowStatus } xferIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer to uniquely identify the data slice that is to be transferred to the fileserver. This refers to an entry in the SliceTable." ::= { xferEntry 1 } xferSliceIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "An integer to uniquely identify the data slice to be transferred to the fileserver." ::= { xferEntry 2 } xferProtocol OBJECT-TYPE SYNTAX INTEGER { ftp(1), tftp(2), sftp(3), scp(4), http(5), smtp(6) } MAX-ACCESS read-create STATUS current DESCRIPTION "This defines the standard protocol that is used to upload the data slice to the fileserver. The agent is the client in this transaction; ie, it initiates the upload to the fileserver." ::= { xferEntry 3 } xferFileEncoding OBJECT-TYPE SYNTAX INTEGER { standardBER(1), ascii(2), xml(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "If set to standardBER(1), the ASN.1/BER format is identical to SNMP variable bindings, that is, each object has a full OID and a fully tagged value. The file content is similar to what would be obtained with a Get request. If set to ascii(2), the format is human-readable ascii with a lines in the form: # table-name@timestamp column-1 column-2 ... column-n instance-1 value-1 value-2 ... instance-2 value-3 value-4 ... ... where: table-name is the ascii representation of the MIB module table name in usual dotted notation. timestamp is the value of sysUptime on the agent when the snapshot of the data slice was taken. column-1 thru column-n are the human-readable MIB module column names that are included in this data slice. instance-1 (etc) are human-readable MIB module instance names in usual dotted notation. value-1 (etc) are human-readable ascii representations of the actual values of the data cells. This is in DisplayString format regardless of the native data type of the column. For example, an ifTable data slice file fragment might be: # interfaces.ifTable@28711187 ifDescr ifType ifInOctets ifOutOctets 1 lo0 softwareLoopback 54550782 54552115 2 eth0 ethernet-csmacd 372380346 2746062289 3 eth0.0 ethernet-csmacd 4002949 126167 If set to xml(3), the data will be saved in XML tagged format." ::= { xferEntry 4 } xferFileCompression OBJECT-TYPE SYNTAX INTEGER { none(1), bzip(2), gzip(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "If set to none(1), no file compression will be applied before the data slice is uploaded to the fileserver. If set to bzip(2), the standard bzip compression algorithm will be applied to the data slice before the file is uploaded to the fileserver. If set to gzip(3), the standard GNU gzip compression algorithm will be applied to the data slice before the file is uploaded to the fileserver. If a compression setting is used, it is acceptable to compress the data slice either on-the-fly or in advance of uploading to the fileserver." ::= { xferEntry 5 } xferFileServerManditory OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The primary target upload hostname or address to send the bulk file. Successful upload to this host is required before the local agent copy can be deleted." ::= { xferEntry 6 } xferFileServerOptional OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The secondary upload hostname or address to send the bulk file. Successful upload to this host is optional; an attempt is made to transfer the file to this host but successful upload is not required for the agent to be able to delete the local copy." ::= { xferEntry 7 } xferFileWriteControl OBJECT-TYPE SYNTAX INTEGER { failIfExists(1), overwrite(2), createNewVersion(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "This defines the action to take when uploading bulk data to a fileserver. If set to failIfExists(1) and a filename described by xferFilePath and xferFileName already exists, the upload will fail and the existing file on the server will not be overwritten. If set to overwrite(2), a file will be uploaded and saved under the specified xferFilePath and xferFileName, even if one by that composite name already exists; if none exists by that composite name, a new file will be created. If set to createNewVersion(3), the version number of the filename on the fileserver will be incremented if version numbering is supported on the fileserver." ::= { xferEntry 8 } xferFilePath OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The remote directory path where the file is to be saved on the fileserver." ::= { xferEntry 9 } xferFileName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The remote file name of the file that is to be saved on the fileserver. For fileservers that support versioning, the appropriate version prefix or suffix is to be added to this base filename." ::= { xferEntry 10 } xferAuthUsername OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The user name to use at the FTP server." ::= { xferEntry 11 } xferAuthPassword OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The password to use at the FTP server." ::= { xferEntry 12 } xferState OBJECT-TYPE SYNTAX INTEGER { running(1), ready(2), emptied(3), noSpace(4), badName(5), writeErr(6), noMem(7), buffErr(8), aborted(9) } MAX-ACCESS read-only STATUS current DESCRIPTION "The file state: running data is being written to the file ready the file is ready to be read emptied an ephemeral file was successfully consumed noSpace no data due to insufficient file space badName no data due to a name or path problem writeErr no data due to fatal file write error noMem no data due to insufficient dynamic memory buffErr implementation buffer too small aborted short terminated by operator command Only the 'ready' state implies that the file is available for transfer. The disposition of files after an error is implementation and file-syste specific." ::= { xferEntry 13 } xferStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the file transfer was initiated. This variable is only valid upon the successful completion of a file transfer." ::= { xferEntry 14 } xferCompletionTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the file transfer was completed. This variable is only valid upon the successful completion of a file transfer." ::= { xferEntry 15 } xferFileSize OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The actual size of the file (after optional file compression was applied) that was uploaded to the fileserver. The size is measured in bytes. This variable is only valid upon the successful completion of a file transfer." ::= { xferEntry 16 } xferEntryStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The control that allows creation, modification, and deletion of entries. Setting this variable to createAndGo or active will initiate a file transfer to the fileserver. Setting this variable to delete will delete this row entry and abort any file transfer in progress that corresponds to this row entry. Note that in practice, this variable could be set by an operator via the agent's craft interface, remotely via an NMS using SNMP, or locally within the agent via automatic means, such as described in the DISMAN-SCHEDULE-MIB." ::= { xferEntry 17 } END -- -- Copyright (C) The Internet Society (2001). All Rights Reserved. -- -- This document and translations of it may be copied and furnished to -- others, and derivative works that comment on or otherwise explain it -- or assist in its implementation may be prepared, copied, published -- and distributed, in whole or in part, without restriction of any -- kind, provided that the above copyright notice and this paragraph are -- included on all such copies and derivative works. However, this -- document itself may not be modified in any way, such as by removing -- the copyright notice or references to the Internet Society or other -- Internet organizations, except as needed for the purpose of -- developing Internet standards in which case the procedures for -- copyrights defined in the Internet Standards process must be -- followed, or as required to translate it into languages other than -- English. -- -- The limited permissions granted above are perpetual and will not be -- revoked by the Internet Society or its successors or assigns. -- -- This document and the information contained herein is provided on an -- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING -- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING -- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION -- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF -- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. --