INTERNET-DRAFT Bryan Levin Allegro Networks David L. Battle Cisco Systems, Inc. 1 March 2002 SNMP Bulk Data Transfer Extensions Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Copyright Notice Copyright (C) The Internet Society (2002). All Rights Reserved. Abstract This document describes a set of extensions (protocol operations and textual conventions) to the existing SNMP framework architecture [RFC2571]. These extensions provide mechanisms for efficient bulk retrieval of virtual SNMP tables that are user-defined in terms of similarly-instanced column entries from existing MIB tables. EOS Working Group Expires September 2002 [Page 1] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 Table of Contents 1. The SNMP Network Management Framework ....................... 3 2. Overview .................................................... 4 2.1. Terms ..................................................... 4 2.2. Motivations for the Extensions ............................ 4 2.3. Design Goals .............................................. 4 3. The Extensions .............................................. 5 4. Elements of Procedure ....................................... 5 4.1. Creating a row in the sliceTable .......................... 5 4.2. Creating a row in the xferTable ........................... 5 4.3. Activating a snapshot and file transfer ................... 5 4.4. Monitoring/Controlling a queued transfer .................. 5 5. Coexistence and Transition .................................. 6 6. Managed Object Definitions .................................. 6 7. Intellectual Property ....................................... 23 8. Acknowledgements ............................................ 24 9. Security Considerations ..................................... 24 10. References ................................................. 24 11. Editor's Addresses ......................................... 27 A. Impact to SNMP and other Protocols .......................... 28 A.1. SNMPv3 .................................................... 28 B. Full Copyright Statement .................................... 28 EOS Working Group Expires September 2002 [Page 2] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 1. The SNMP Network Management Framework The SNMP Management Framework presently consists of five major components: - An overall architecture, described in RFC 2571 [RFC2571]. - Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in RFC 1155 [RFC1155], RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. The second version, called SMIv2, is described in RFC 2578 [RFC2578], RFC 2579 [RFC2579] and RFC 2580 [RFC2580]. - Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in RFC 1157 [RFC1157]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574]. - Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in RFC 1157 [RFC1157]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [RFC1905]. - A set of fundamental applications described in RFC 2573 [RFC2573] and the view-based access control mechanism described in RFC 2575 [RFC2575]. A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [RFC2570]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine EOS Working Group Expires September 2002 [Page 3] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 readable information is not considered to change the semantics of the MIB. 2. Overview This document describes a set of SNMP extensions to current protocol operations [RFC1905] to provide for efficient management operations (i.e. bulk retrieval of mib data). 2.1. Terms The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 2.2. Motivations for the Extensions Experience has shown that current SNMP protocol operations and management structures are not ideally suited to retrieving large amounts of information. The extensions described in this document are specifically designed to minimize, or provide opportunities to minimize, the following problems which inhibit the effectiveness of SNMP: - The existing bulk transfer mechanism (GetBulk) is difficult to use and difficult to control (can overshoot table boundaries). - No mechanism is currently provided for transfering large tables to the NMS without constant, active NMS participation. - No mechanism is currently provided to allow filtering of large tables by column constraints. - No mechanism is currently provided to allow creation of synthetic tables by combining columns from existing tables. 2.3. Design Goals Several goals were identified when considering the kind and nature of extensions that were needed: - Define a mechanism that is easy for normal humans to implement and use. EOS Working Group Expires September 2002 [Page 4] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 - Define a mechanism that can be used to transfer large tables to the NMS without constant NMS participation. Both a "push" and "pull" model is supported. 3. The Extensions The extension consists of a mib document together with a description of how it can be incorporated into an existing SNMP Agent in order to achieve the desired bulk data retrieval behavior. 4. Elements of Procedure 4.1. Creating a row in the sliceTable This can be a partial or complete MIB table or even a synthetic table which is user-defined and created by listing a set of column Object Identifiers together as a group. Entries in this table are expected to persist and be useful in repeated snapshot requests. 4.2. Creating a row in the xferTable This includes information about the fileserver(s) (either local or remote) IP address, pathname, login authentication and file transfer protocol. Entries in this table are expected to persist and be useful in repeated file "push" operations. 4.3. Activating a snapshot and file transfer Perform an SNMP Set to the RowStatus variable 'snapshotEntryStatus', giving it the value of 'createAndGo' or 'active'. This will initiate the snapshot operation as well as file transfer(s). Note that this variable could be set via remote SNMP Sets, via the local agent's craft interface, or via a threshold or timer event, such as found in the DISMAN-SCHEDULE-MIB. 4.4. Monitoring/Controlling a queued transfer Perform an SNMP Get to the xferCtlTable to monitor or control (cancel or retry) individual file transfers. EOS Working Group Expires September 2002 [Page 5] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 5. Coexistence and Transition Since this extension doesn't directly impact existing SNMP Protocol operations, coexistence and transition issues are minimized. If an NMS attempts to use this extension and an agent supports it, life is good. Otherwise, fallback to traditional protocol operations is still possible. 6. Managed Object Definitions BULK-DATA-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, experimental, Unsigned32 FROM SNMPv2-SMI RowStatus, TimeStamp, DisplayString FROM SNMPv2-TC InetAddressType, InetAddress FROM INET-ADDRESS-MIB MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF; bulkDataMIB MODULE-IDENTITY LAST-UPDATED "200228021100Z" ORGANIZATION "EOS (Evolution of SNMP)" 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: Tel: +1 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 } bulkDataAgentCapabilities OBJECT IDENTIFIER ::= { bulkDataMIB 1 } bulkDataObjects OBJECT IDENTIFIER ::= { bulkDataMIB 2 } bulkDataTraps OBJECT IDENTIFIER ::= { bulkDataMIB 3 } EOS Working Group Expires September 2002 [Page 6] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 -- Agent Capabilities acFileEncoding OBJECT-TYPE SYNTAX INTEGER { ascii(1), xml(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "This describes the agent's capability in term of which file encoding styles it supports." ::= { bulkDataAgentCapabilities 1 } acFileCompression OBJECT-TYPE SYNTAX INTEGER { noCompression(1), bzip(2), gzip(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This describes the agent's capability in term of which file compression styles it supports." ::= { bulkDataAgentCapabilities 2 } acXferProtocol OBJECT-TYPE SYNTAX INTEGER { cp(1), ftp(2), scp(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This describes the agent's capability in term of which file transfer protocols it supports." ::= { bulkDataAgentCapabilities 3 } -- Data Slicing Control (creating virtual mib tables) sliceTable OBJECT-TYPE EOS Working Group Expires September 2002 [Page 7] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 SYNTAX SEQUENCE OF SliceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table describes a bulk data slice that is a user- defined subset of the current running agent's MIB data. Virtual tables are built by specifying a sequence of columnar Object Identifiers from real mib tables." ::= { bulkDataObjects 1 } sliceEntry OBJECT-TYPE SYNTAX SliceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The data slice entry." INDEX { sliceIndex, sliceSubId } ::= { sliceTable 1 } SliceEntry ::= SEQUENCE { sliceIndex Unsigned32, sliceSubId Unsigned32, sliceColumnOID OBJECT IDENTIFIER, sliceSnmpContext DisplayString, sliceColumnDisplayHint DisplayString, sliceAdminString DisplayString, 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 } sliceSubId OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A sequential sub-index to identify a component of a slice entry." ::= { sliceEntry 2 } EOS Working Group Expires September 2002 [Page 8] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 sliceColumnOID OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "An Object Identifier, which must refer to a column of a conceptual table. A slice is defined to be a series of columns OIDs that exist in various tables which are accessible via the local agent." ::= { sliceEntry 3 } sliceSnmpContext OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "In mib groups that are not inherently instancable, an snmp manager context is used to multiply access the separate instances (eg, the bridge mib)." ::= { sliceEntry 4 } sliceColumnDisplayHint OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "This defines how the data file will render this OID's value in the snapshot data file. The following subset of the C printf-style formatting macros is supported: %s - ascii string field %d - numeric field" ::= { sliceEntry 5 } sliceAdminString OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Used for administrative purposes. Usually meaningful only to the controlling NMS." DEFVAL { ''H } -- the empty string ::= { sliceEntry 6 } sliceEntryStatus OBJECT-TYPE SYNTAX RowStatus EOS Working Group Expires September 2002 [Page 9] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 MAX-ACCESS read-create STATUS current DESCRIPTION "The control variable that allows creation, modification, and deletion of entries in this table." ::= { sliceEntry 7 } -- Fileserver/host Transfer Table xferTable OBJECT-TYPE SYNTAX SEQUENCE OF XferEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table describes a bulk data slice file transfer information. It is referenced when a snapshot is being requested." ::= { bulkDataObjects 2 } xferEntry OBJECT-TYPE SYNTAX XferEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The snapshot file transfer request table entry." INDEX { xferIndex, xferSubId } ::= { xferTable 1 } XferEntry ::= SEQUENCE { xferIndex Unsigned32, xferSubId Unsigned32, xferHostIpType InetAddressType, xferHostIpAddr InetAddress, xferProtocol INTEGER, xferWriteControl INTEGER, xferFilePath DisplayString, xferAuthUsername DisplayString, xferAuthPassword DisplayString, xferAdminString DisplayString, xferEntryStatus RowStatus } xferIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current EOS Working Group Expires September 2002 [Page 10] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 DESCRIPTION "An integer to uniquely identify a transfer destination set." ::= { xferEntry 1 } xferSubId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "Sub index that allows several transfer entries to be grouped together to form a transfer set." ::= { xferEntry 2 } xferHostIpType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "Used along with xferHostIpAddr to define the IP address version." DEFVAL { ipv4 } ::= { xferEntry 3 } xferHostIpAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The IP address of the fileserver where the snapshot is to be transferred." ::= { xferEntry 4 } xferProtocol OBJECT-TYPE SYNTAX INTEGER { cp(1), ftp(2), scp(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "This defines the standard protocol that is used to upload the snapshot to the fileserver. The agent is the client in this transaction; ie, it initiates the upload to the fileserver. When the snapshot is being kept on the local system, cp(1) is to be specified. For remote file transfers, ftp(2) or EOS Working Group Expires September 2002 [Page 11] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 scp(3) should be specified." DEFVAL { ftp } ::= { xferEntry 5 } xferWriteControl OBJECT-TYPE SYNTAX INTEGER { failIfExists(1), overwrite(2) } 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 file already exists on the fileserver, 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 path and name even if one by that composite name already exists; if none exists by that composite name, a new file will be created." DEFVAL { failIfExists } ::= { xferEntry 6 } 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 7 } xferAuthUsername OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The user name to use when authenticating with the remote fileserver." ::= { xferEntry 8 } xferAuthPassword OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The password to use when authenticating with the remote EOS Working Group Expires September 2002 [Page 12] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 fileserver." ::= { xferEntry 9 } xferAdminString OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Used for administrative purposes. Usually meaningful only to the controlling NMS." DEFVAL { ''H } -- the empty string ::= { xferEntry 10 } 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(4) or active(1) will case a row creation to be performed in this table. Note that no actual file transfer occurs until a snapshot table entry is created. Setting this variable to delete will delete this row entry." ::= { xferEntry 11 } -- Snapshot Control Table snapshotTable OBJECT-TYPE SYNTAX SEQUENCE OF SnapshotEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table describes a bulk data slice snapshot request. The agent is expected to capture the values of the slice (atomically, if possible) and save them in a file on the local system when a row in this table is created and set to createAndGo(4) or active(1)." ::= { bulkDataObjects 3 } snapshotEntry OBJECT-TYPE SYNTAX SnapshotEntry EOS Working Group Expires September 2002 [Page 13] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The snapshot request table entry." INDEX { snapshotIndex, snapshotSliceIndex, snapshotXferId } ::= { snapshotTable 1 } SnapshotEntry ::= SEQUENCE { snapshotIndex Unsigned32, snapshotSliceIndex Unsigned32, snapshotXferId Unsigned32, snapshotSnapFileName DisplayString, snapshotFileEncoding INTEGER, snapshotFileCompression INTEGER, snapshotStartTime TimeStamp, snapshotCompletionTime TimeStamp, snapshotFileSize Unsigned32, snapshotState INTEGER, snapshotAdminString DisplayString, snapshotEntryStatus RowStatus } snapshotIndex 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." ::= { snapshotEntry 1 } snapshotSliceIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer to uniquely identify the data slice to saved on the local system." ::= { snapshotEntry 2 } snapshotXferId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An instance in the xfer table that describes where and how to copy the bulk data snapshot to a fileserver." ::= { snapshotEntry 3 } EOS Working Group Expires September 2002 [Page 14] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 snapshotSnapFileName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The bulk data snapshot is saved under this filename." ::= { snapshotEntry 4 } snapshotFileEncoding OBJECT-TYPE SYNTAX INTEGER { ascii(1), xml(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "If set to ascii(1), the format is human-readable ascii with a lines in the form: # timestampStart timestampCompletion col-1 col-2 ... col-n instance-1 value-1 value-2 ... instance-2 value-3 value-4 ... ... where: timestampStart and timestampCompletion are the values of sysUptime on the agent when the snapshot of the data slice was initiated and completed (with or without errors). 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. It is implementation-specific if the column name is stored in dotted-OID format (.1.3.6...) or in symbolic format (ifInOctets). For example, an ifTable data slice file fragment might be: # 28711187 28711190 ifDescr ifType ifInOctets ifOutOctets 1 lo0 softwareLoopback 54550782 54552115 EOS Working Group Expires September 2002 [Page 15] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 2 eth0 ethernet-csmacd 372380346 2746062289 3 eth0.0 ethernet-csmacd 4002949 126167 If set to xml(2), the data will be saved in XML tagged format." DEFVAL { ascii } ::= { snapshotEntry 5 } snapshotFileCompression OBJECT-TYPE SYNTAX INTEGER { noCompression(1), bzip(2), gzip(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "If set to noCompression(1), no file compression will be applied before the data slice is transferred 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." DEFVAL { noCompression } ::= { snapshotEntry 6 } snapshotStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the snapshot was initiated." ::= { snapshotEntry 7 } snapshotCompletionTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the snapshot was completed (with or without an error)." ::= { snapshotEntry 8 } EOS Working Group Expires September 2002 [Page 16] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 snapshotFileSize OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The actual size of the file (after optional file compression was applied) at the completion of the snapshot. The size is measured in bytes. This variable is only valid upon the successful completion of a slice snapshot." ::= { snapshotEntry 9 } snapshotState OBJECT-TYPE SYNTAX INTEGER { running(1), ready(2), noSpace(3), badName(4), writeErr(5), noMem(6), aborted(7) } 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 sent or retrieved 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 aborted terminated by operator command Only the 'ready' state implies that snapshot has successfully completed." ::= { snapshotEntry 10 } snapshotAdminString OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Used for administrative purposes. Usually meaningful only to the controlling NMS." DEFVAL { ''H } -- the empty string ::= { snapshotEntry 11 } EOS Working Group Expires September 2002 [Page 17] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 snapshotEntryStatus 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(4) or active(1) will initiate a snapshot of a slice entry to the local system and optionally initiate a remote file copy. Setting this variable to delete() will delete this row entry and delete the corresponding data file on the local system. 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." ::= { snapshotEntry 12 } -- Snapshot File Transfer Control Table xferCtlTable OBJECT-TYPE SYNTAX SEQUENCE OF XferCtlEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains individual (fileserver host) transfer requests. There will be an entry in this table For each filserver that is to receive a snapshot slice. The current transfer status can be monitored as well as controlled (aborted, retried)." ::= { bulkDataObjects 4 } xferCtlEntry OBJECT-TYPE SYNTAX XferCtlEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The snapshot file transfer request table entry." INDEX { xferCtlIndex, sliceIndex, xferIndex, xferSubId } ::= { xferCtlTable 1 } XferCtlEntry ::= SEQUENCE { EOS Working Group Expires September 2002 [Page 18] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 xferCtlIndex Unsigned32, xferCtlStartTime TimeStamp, xferCtlCompletionTime TimeStamp, xferCtlPercentXferred Unsigned32, xferCtlStatus INTEGER } xferCtlIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer to uniquely identify a transfer destination set." ::= { xferCtlEntry 1 } xferCtlStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the file transfer was initiated." ::= { xferCtlEntry 2 } xferCtlCompletionTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUptime on the agent when the file transfer was completed (with or without an error)." ::= { xferCtlEntry 3 } xferCtlPercentXferred OBJECT-TYPE SYNTAX Unsigned32 (0..100) MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of the snapshot file that has been transferred to the fileserver, in percent of completion (0..100)." ::= { xferCtlEntry 4 } xferCtlStatus OBJECT-TYPE SYNTAX INTEGER { inProgress(1), complete(2), noSpace(3), badName(4), writeErr(5), EOS Working Group Expires September 2002 [Page 19] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 badLogin(6), abortXfer(7), retryXfer(8), deleteRow(9) } MAX-ACCESS read-write STATUS current DESCRIPTION "This allows individual file transfer requests to be controlled. inProgress(1) is returned if a file transfer is currently being performed by the local system. This is a read-only value. complete(2) is returned upon successful file transfer. This is a read-only value. noSpace(3), badName(4), writeErr(5), badLogin(6) are error status values that describe the error conditions of insufficient fileserver space to create the file, invalid filename, misc write error or authentication error on the fileserver. These values are readable but not writable. abortXfer(7), retryXfer(8) are writable values and allow remote control of currently pending file transfer requests. deleteRow(9) is a writable value that causes a row deletion from this table. In addition, any pending operations on this row are aborted." ::= { xferCtlEntry 5 } -- Traps bulkDataXfer NOTIFICATION-TYPE OBJECTS { -- xferCtlIndex, -- xferIndex, -- xferSubId, xferCtlStatus } STATUS current DESCRIPTION "Asynchronous events that are sent when a file transfer request changes state." EOS Working Group Expires September 2002 [Page 20] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 ::= { bulkDataTraps 1 } -- Conformance bulkMIBConformance OBJECT IDENTIFIER ::= { bulkDataMIB 4 } bulkMIBCompliances OBJECT IDENTIFIER ::= { bulkMIBConformance 1 } bulkMIBGroups OBJECT IDENTIFIER ::= { bulkMIBConformance 2 } -- Compliance bulkMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the Bulk Data MIB. Implementation of this MIB is based on individual product needs." MODULE -- this module MANDATORY-GROUPS { bulkCapabilitiesGroup, bulkSliceGroup, bulkFileTransferGroup, bulkSnapshotGroup, bulkXferCtlGroup, bulkTrapGroup } ::= { bulkMIBCompliances 1 } -- Units of Conformance bulkCapabilitiesGroup OBJECT-GROUP OBJECTS { acFileEncoding, acFileCompression, acXferProtocol } STATUS current DESCRIPTION EOS Working Group Expires September 2002 [Page 21] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 "Bulk Data agent capabilities management." ::= { bulkMIBGroups 1 } bulkSliceGroup OBJECT-GROUP OBJECTS { sliceColumnOID, sliceSnmpContext, sliceColumnDisplayHint, sliceAdminString, sliceEntryStatus } STATUS current DESCRIPTION "Bulk Data slice management." ::= { bulkMIBGroups 2 } bulkFileTransferGroup OBJECT-GROUP OBJECTS { xferHostIpType, xferHostIpAddr, xferProtocol, xferWriteControl, xferFilePath, xferAuthUsername, xferAuthPassword, xferAdminString, xferEntryStatus } STATUS current DESCRIPTION "Bulk File transfer management." ::= { bulkMIBGroups 3 } bulkSnapshotGroup OBJECT-GROUP OBJECTS { snapshotSnapFileName, snapshotFileEncoding, snapshotFileCompression, snapshotStartTime, snapshotCompletionTime, snapshotFileSize, snapshotState, snapshotAdminString, snapshotEntryStatus } STATUS current DESCRIPTION "Bulk data snapshot management." EOS Working Group Expires September 2002 [Page 22] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 ::= { bulkMIBGroups 4 } bulkXferCtlGroup OBJECT-GROUP OBJECTS { xferCtlStartTime, xferCtlCompletionTime, xferCtlPercentXferred, xferCtlStatus } STATUS current DESCRIPTION "Bulk Data transfer control management." ::= { bulkMIBGroups 5 } bulkTrapGroup NOTIFICATION-GROUP NOTIFICATIONS { bulkDataXfer } STATUS current DESCRIPTION "Bulk Data trap management." ::= { bulkMIBGroups 6 } END 7. Intellectual Property The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. EOS Working Group Expires September 2002 [Page 23] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 8. Acknowledgements This document is the result of the efforts of the Evolution Of SNMP (EOS) Working Group. Some special thanks are in order to the following EOS WG members for their ideas, efforts and asundry contributions: Dr. Jeff Case Dale Francisco David Perkins Randy Presuhn Jeurgen Schoenwaelder Bob Stewart Troy Dixler L. Heintz Nalinaksh Pai 9. Security Considerations TBD 10. References [RFC1155] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP- based internets", STD 16, RFC 1155, May 1990. [RFC1157] Case, J., M. Fedor, M. Schoffstall and J. Davin, "The Simple Network Management Protocol", STD 15, RFC 1157, May 1990. [RFC1212] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991. [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996. [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999. [RFC2578] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, EOS Working Group Expires September 2002 [Page 24] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [RFC-PROTO] Presuhn, R., Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for the Simple Network Management Protocol", , March 2002. [RFC-TMM] Presuhn, R., Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport Mappings for the Simple Network Management Protocol", , March 2002. [RFC-MIB] Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Management Information Base for the Simple Network Management Protocol", , March 2002. [RFC-COEX] Frye, R., Levi, D., Routhier, S., and B. Wijnen, "Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework", , March 2002. [RFC1909] McCloghrie, K., Editor, "An Administrative Infrastructure for SNMPv2", RFC 1909, February 1996. [RFC1910] Waters, G., Editor, "User-based Security Model for SNMPv2", RFC 1910, February 1996. [RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC 2279, January, 1998. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [BCP-11] Hovey, R. and S. Bradner, "The Organizations Involved in the IETF Standards Process", BCP 11, RFC 2028, October 1996. [RFC2863] McCloghrie, K. and F. Kastenholz. "The Interfaces Group MIB." RFC 2863, June 2000. [SNMP-MPD] Case, J., Harrington, D., Presuhn, R. and B. Wijnen, "Message Processing and Dispatching for the Simple EOS Working Group Expires September 2002 [Page 25] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 Network Management Protocol (SNMP)", , March 2002. [SNMP-USM] Blumenthal, U. and B. Wijnen, "The User-Based Security Model for Version 3 of the Simple Network Management Protocol (SNMPv3)", , March 2002. [SNMP-ACM] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model for the Simple Network Management Protocol (SNMP)", , February 1999. , March 2002. [RFC-APPL] Levi, D., Meyer, P. and B. Stewart, "SNMP Applications", , March 2002. [RFC2570] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", , January 1999. [RFC-COEX] Frye, R., Levi, D., Routhier, S., and B. Wijnen, "Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework", , March 2002. EOS Working Group Expires September 2002 [Page 26] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 11. Editor's Addresses Bryan Levin Allegro Netowrks 6399 San Ignacio San Jose, Ca 95199-1206 Phone: +1 408-281-5500 EMail: snmp@allegronetworks.com David L. Battle Cisco Systems 204 Golfclub Rd Knoxville, TN 37919-5924 Phone: +1 865-588-7763 EMail: dbattle@cisco.com EOS Working Group Expires September 2002 [Page 27] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 APPENDIXES A. Impact to SNMP and other Protocols A.1. SNMPv3 An issue remains whether a new message processing model MUST be specified as part of the SNMPv3 (or later) standard. Otherwise, it is not seen that these extensions pose any impact to other SNMPv3 architectural components (i.e. USM, VACM) because the new protocol operations and their contents contain sufficient information (along with the information provided in whatever version-specific message wrapper they are contined within) to satisfy the abstract service interfaces for those components. B. Full Copyright Statement Copyright (C) The Internet Society (2002). 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. Acknowledgement EOS Working Group Expires September 2002 [Page 28] Internet Draft SNMP Bulk Data Transfer Extensions 1 March 2002 Funding for the RFC Editor function is currently provided by the Internet Society. EOS Working Group Expires September 2002 [Page 29]