INTERNET-DRAFT                                               Bryan Levin
                                                        Allegro Networks

                                                         David L. Battle
                                                     Cisco Systems, Inc.

                                                            1 March 2002

                   SNMP Bulk Data Transfer Extensions


                 <draft-ietf-eos-snmp-bulkdata-01.txt>


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", <draft-ietf-snmpv3-update-proto-
                05.txt>, March 2002.

   [RFC-TMM]    Presuhn, R., Case, J., McCloghrie, K., Rose, M., and S.
                Waldbusser, "Transport Mappings for the Simple Network
                Management Protocol", <draft-ietf-snmpv3-update-
                transmap-05.txt>, March 2002.

   [RFC-MIB]    Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S.
                Waldbusser, "Management Information Base for the Simple
                Network Management Protocol", <draft-ietf-snmpv3-
                update-mib-05.txt>, 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",
                <draft-ietf-snmpv3-coex-v2-00.txt>, 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)", <draft-ietf-
                snmpv3-mpd-v2-00.txt>, March 2002.

   [SNMP-USM]   Blumenthal, U.  and B. Wijnen, "The User-Based Security
                Model for Version 3 of the Simple Network Management
                Protocol (SNMPv3)", <draft-ietf-snmpv3-usm-v2-00.txt>,
                March 2002.

   [SNMP-ACM]   Wijnen, B., Presuhn, R.  and K. McCloghrie, "View-based
                Access Control Model for the Simple Network Management
                Protocol (SNMP)", <draft-ietf-snmpv3-vacm-04.txt>,
                February 1999.  <draft-ietf-snmpv3-vacm-v2-00.txt>,
                March 2002.

   [RFC-APPL]   Levi, D., Meyer, P.  and B. Stewart, "SNMP
                Applications", <draft-ietf-snmpv3-apps-v2-00.txt>, March
                2002.

   [RFC2570]    Case, J., Mundy, R., Partain, D. and B. Stewart,
                "Introduction to Version 3 of the Internet-standard
                Network Management Framework", <draft-ietf-snmpv3-
                intro-04.txt>, 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",
                <draft-ietf-snmpv3-coex-v2-00.txt>, 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]