idnits 2.17.1 draft-ietf-eos-snmp-bulkdata-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The abstract seems to contain references ([RFC2571]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 742 has weird spacing: '...running dat...' == Line 744 has weird spacing: '...noSpace no ...' == Line 745 has weird spacing: '...badName no ...' == Line 746 has weird spacing: '...riteErr no d...' == Line 748 has weird spacing: '...aborted ter...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (1 March 2002) is 8064 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC1215' is mentioned on line 79, but not defined == Missing Reference: 'RFC1906' is mentioned on line 89, but not defined ** Obsolete undefined reference: RFC 1906 (Obsoleted by RFC 3417) == Missing Reference: 'RFC2572' is mentioned on line 90, but not defined ** Obsolete undefined reference: RFC 2572 (Obsoleted by RFC 3412) == Missing Reference: 'RFC2574' is mentioned on line 90, but not defined ** Obsolete undefined reference: RFC 2574 (Obsoleted by RFC 3414) == Missing Reference: 'RFC1905' is mentioned on line 122, but not defined ** Obsolete undefined reference: RFC 1905 (Obsoleted by RFC 3416) == Missing Reference: 'RFC2573' is mentioned on line 99, but not defined ** Obsolete undefined reference: RFC 2573 (Obsoleted by RFC 3413) == Missing Reference: 'RFC2575' is mentioned on line 100, but not defined ** Obsolete undefined reference: RFC 2575 (Obsoleted by RFC 3415) == Unused Reference: 'RFC-PROTO' is defined on line 1089, but no explicit reference was found in the text == Unused Reference: 'RFC-TMM' is defined on line 1094, but no explicit reference was found in the text == Unused Reference: 'RFC-MIB' is defined on line 1099, but no explicit reference was found in the text == Unused Reference: 'RFC-COEX' is defined on line 1153, but no explicit reference was found in the text == Unused Reference: 'RFC1909' is defined on line 1109, but no explicit reference was found in the text == Unused Reference: 'RFC1910' is defined on line 1112, but no explicit reference was found in the text == Unused Reference: 'RFC2279' is defined on line 1115, but no explicit reference was found in the text == Unused Reference: 'BCP-11' is defined on line 1121, but no explicit reference was found in the text == Unused Reference: 'RFC2863' is defined on line 1125, but no explicit reference was found in the text == Unused Reference: 'SNMP-MPD' is defined on line 1128, but no explicit reference was found in the text == Unused Reference: 'SNMP-USM' is defined on line 1133, but no explicit reference was found in the text == Unused Reference: 'SNMP-ACM' is defined on line 1138, but no explicit reference was found in the text == Unused Reference: 'RFC-APPL' is defined on line 1144, but no explicit reference was found in the text ** Downref: Normative reference to an Historic RFC: RFC 1157 ** Downref: Normative reference to an Historic RFC: RFC 1901 ** Obsolete normative reference: RFC 2571 (Obsoleted by RFC 3411) -- Possible downref: Non-RFC (?) normative reference: ref. 'RFC-PROTO' -- Possible downref: Non-RFC (?) normative reference: ref. 'RFC-TMM' -- Possible downref: Non-RFC (?) normative reference: ref. 'RFC-MIB' -- Possible downref: Non-RFC (?) normative reference: ref. 'RFC-COEX' ** Downref: Normative reference to an Historic RFC: RFC 1909 ** Downref: Normative reference to an Historic RFC: RFC 1910 ** Obsolete normative reference: RFC 2279 (Obsoleted by RFC 3629) ** Obsolete normative reference: RFC 2028 (ref. 'BCP-11') (Obsoleted by RFC 9281) -- Possible downref: Non-RFC (?) normative reference: ref. 'SNMP-MPD' -- Possible downref: Non-RFC (?) normative reference: ref. 'SNMP-USM' -- Possible downref: Non-RFC (?) normative reference: ref. 'SNMP-ACM' -- Possible downref: Non-RFC (?) normative reference: ref. 'RFC-APPL' ** Obsolete normative reference: RFC 2570 (Obsoleted by RFC 3410) Summary: 19 errors (**), 0 flaws (~~), 27 warnings (==), 11 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT Bryan Levin 3 Allegro Networks 5 David L. Battle 6 Cisco Systems, Inc. 8 1 March 2002 10 SNMP Bulk Data Transfer Extensions 12 14 Status of this Memo 16 This document is an Internet-Draft and is in full conformance with 17 all provisions of Section 10 of RFC2026. Internet-Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its areas, 19 and its working groups. Note that other groups may also distribute 20 working documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html 33 Copyright Notice 35 Copyright (C) The Internet Society (2002). All Rights Reserved. 37 Abstract 39 This document describes a set of extensions (protocol operations and 40 textual conventions) to the existing SNMP framework architecture 41 [RFC2571]. These extensions provide mechanisms for efficient bulk 42 retrieval of virtual SNMP tables that are user-defined in terms of 43 similarly-instanced column entries from existing MIB tables. 45 Table of Contents 47 1. The SNMP Network Management Framework ....................... 3 48 2. Overview .................................................... 4 49 2.1. Terms ..................................................... 4 50 2.2. Motivations for the Extensions ............................ 4 51 2.3. Design Goals .............................................. 4 52 3. The Extensions .............................................. 5 53 4. Elements of Procedure ....................................... 5 54 4.1. Creating a row in the sliceTable .......................... 5 55 4.2. Creating a row in the xferTable ........................... 5 56 4.3. Activating a snapshot and file transfer ................... 5 57 4.4. Monitoring/Controlling a queued transfer .................. 5 58 5. Coexistence and Transition .................................. 6 59 6. Managed Object Definitions .................................. 6 60 7. Intellectual Property ....................................... 23 61 8. Acknowledgements ............................................ 24 62 9. Security Considerations ..................................... 24 63 10. References ................................................. 24 64 11. Editor's Addresses ......................................... 27 65 A. Impact to SNMP and other Protocols .......................... 28 66 A.1. SNMPv3 .................................................... 28 67 B. Full Copyright Statement .................................... 28 69 1. The SNMP Network Management Framework 71 The SNMP Management Framework presently consists of five major 72 components: 74 - An overall architecture, described in RFC 2571 [RFC2571]. 76 - Mechanisms for describing and naming objects and events for the 77 purpose of management. The first version of this Structure of 78 Management Information (SMI) is called SMIv1 and described in 79 RFC 1155 [RFC1155], RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. 80 The second version, called SMIv2, is described in RFC 2578 81 [RFC2578], RFC 2579 [RFC2579] and RFC 2580 [RFC2580]. 83 - Message protocols for transferring management information. The 84 first version of the SNMP message protocol is called SNMPv1 and 85 described in RFC 1157 [RFC1157]. A second version of the SNMP 86 message protocol, which is not an Internet standards track 87 protocol, is called SNMPv2c and described in RFC 1901 [RFC1901] 88 and RFC 1906 [RFC1906]. The third version of the message 89 protocol is called SNMPv3 and described in RFC 1906 [RFC1906], 90 RFC 2572 [RFC2572] and RFC 2574 [RFC2574]. 92 - Protocol operations for accessing management information. The 93 first set of protocol operations and associated PDU formats is 94 described in RFC 1157 [RFC1157]. A second set of protocol 95 operations and associated PDU formats is described in RFC 1905 96 [RFC1905]. 98 - A set of fundamental applications described in RFC 2573 99 [RFC2573] and the view-based access control mechanism described 100 in RFC 2575 [RFC2575]. 102 A more detailed introduction to the current SNMP Management Framework 103 can be found in RFC 2570 [RFC2570]. 105 Managed objects are accessed via a virtual information store, termed 106 the Management Information Base or MIB. Objects in the MIB are 107 defined using the mechanisms defined in the SMI. 109 This memo specifies a MIB module that is compliant to the SMIv2. A 110 MIB conforming to the SMIv1 can be produced through the appropriate 111 translations. The resulting translated MIB must be semantically 112 equivalent, except where objects or events are omitted because no 113 translation is possible (use of Counter64). Some machine readable 114 information in SMIv2 will be converted into textual descriptions in 115 SMIv1 during the translation process. However, this loss of machine 116 readable information is not considered to change the semantics of the 117 MIB. 119 2. Overview 121 This document describes a set of SNMP extensions to current protocol 122 operations [RFC1905] to provide for efficient management operations 123 (i.e. bulk retrieval of mib data). 125 2.1. Terms 127 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 128 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 129 document are to be interpreted as described in [RFC2119]. 131 2.2. Motivations for the Extensions 133 Experience has shown that current SNMP protocol operations and 134 management structures are not ideally suited to retrieving large 135 amounts of information. The extensions described in this document 136 are specifically designed to minimize, or provide opportunities to 137 minimize, the following problems which inhibit the effectiveness of 138 SNMP: 140 - The existing bulk transfer mechanism (GetBulk) is difficult to 141 use and difficult to control (can overshoot table boundaries). 143 - No mechanism is currently provided for transfering large tables 144 to the NMS without constant, active NMS participation. 146 - No mechanism is currently provided to allow filtering of large 147 tables by column constraints. 149 - No mechanism is currently provided to allow creation of 150 synthetic tables by combining columns from existing tables. 152 2.3. Design Goals 154 Several goals were identified when considering the kind and nature of 155 extensions that were needed: 157 - Define a mechanism that is easy for normal humans to implement 158 and use. 160 - Define a mechanism that can be used to transfer large tables to 161 the NMS without constant NMS participation. Both a "push" and 162 "pull" model is supported. 164 3. The Extensions 166 The extension consists of a mib document together with a description 167 of how it can be incorporated into an existing SNMP Agent in order to 168 achieve the desired bulk data retrieval behavior. 170 4. Elements of Procedure 172 4.1. Creating a row in the sliceTable 174 This can be a partial or complete MIB table or even a synthetic table 175 which is user-defined and created by listing a set of column Object 176 Identifiers together as a group. Entries in this table are expected 177 to persist and be useful in repeated snapshot requests. 179 4.2. Creating a row in the xferTable 181 This includes information about the fileserver(s) (either local or 182 remote) IP address, pathname, login authentication and file transfer 183 protocol. Entries in this table are expected to persist and be 184 useful in repeated file "push" operations. 186 4.3. Activating a snapshot and file transfer 188 Perform an SNMP Set to the RowStatus variable 'snapshotEntryStatus', 189 giving it the value of 'createAndGo' or 'active'. This will initiate 190 the snapshot operation as well as file transfer(s). Note that this 191 variable could be set via remote SNMP Sets, via the local agent's 192 craft interface, or via a threshold or timer event, such as found in 193 the DISMAN-SCHEDULE-MIB. 195 4.4. Monitoring/Controlling a queued transfer 197 Perform an SNMP Get to the xferCtlTable to monitor or control (cancel 198 or retry) individual file transfers. 200 5. Coexistence and Transition 202 Since this extension doesn't directly impact existing SNMP Protocol 203 operations, coexistence and transition issues are minimized. If an 204 NMS attempts to use this extension and an agent supports it, life is 205 good. Otherwise, fallback to traditional protocol operations is 206 still possible. 208 6. Managed Object Definitions 210 BULK-DATA-MIB DEFINITIONS ::= BEGIN 212 IMPORTS 213 OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, 214 experimental, Unsigned32 FROM SNMPv2-SMI 215 RowStatus, TimeStamp, DisplayString FROM SNMPv2-TC 216 InetAddressType, InetAddress FROM INET-ADDRESS-MIB 217 MODULE-COMPLIANCE, OBJECT-GROUP, 218 NOTIFICATION-GROUP FROM SNMPv2-CONF; 220 bulkDataMIB MODULE-IDENTITY 221 LAST-UPDATED "200228021100Z" 222 ORGANIZATION "EOS (Evolution of SNMP)" 223 CONTACT-INFO "Bryan Levin, Allegro Networks 224 Postal: 6399 San Ignacio 225 San Jose, CA 95119-1206 226 Tel: +1 408 281-5500 227 E-mail: snmp@allegronetworks.com 229 David Battle, Cisco Systems 230 Postal: 231 Tel: +1 232 E-mail: dbattle@cisco.com" 233 DESCRIPTION 234 "The MIB module for defining Bulk Data objects along with 235 the Bulk Data file format, Upload Fileserver and Data Slice." 236 ::= { experimental 999 } 238 bulkDataAgentCapabilities OBJECT IDENTIFIER ::= { bulkDataMIB 1 } 240 bulkDataObjects OBJECT IDENTIFIER ::= { bulkDataMIB 2 } 242 bulkDataTraps OBJECT IDENTIFIER ::= { bulkDataMIB 3 } 243 -- Agent Capabilities 245 acFileEncoding OBJECT-TYPE 246 SYNTAX INTEGER { 247 ascii(1), 248 xml(2) 249 } 251 MAX-ACCESS read-only 252 STATUS current 253 DESCRIPTION 254 "This describes the agent's capability in term of which 255 file encoding styles it supports." 256 ::= { bulkDataAgentCapabilities 1 } 258 acFileCompression OBJECT-TYPE 259 SYNTAX INTEGER { 260 noCompression(1), 261 bzip(2), 262 gzip(3) 263 } 265 MAX-ACCESS read-only 266 STATUS current 267 DESCRIPTION 268 "This describes the agent's capability in term of which 269 file compression styles it supports." 270 ::= { bulkDataAgentCapabilities 2 } 272 acXferProtocol OBJECT-TYPE 273 SYNTAX INTEGER { 274 cp(1), 275 ftp(2), 276 scp(3) 277 } 278 MAX-ACCESS read-only 279 STATUS current 280 DESCRIPTION 281 "This describes the agent's capability in term of which 282 file transfer protocols it supports." 283 ::= { bulkDataAgentCapabilities 3 } 285 -- Data Slicing Control (creating virtual mib tables) 287 sliceTable OBJECT-TYPE 288 SYNTAX SEQUENCE OF SliceEntry 289 MAX-ACCESS not-accessible 290 STATUS current 291 DESCRIPTION 292 "This table describes a bulk data slice that is a user- 293 defined subset of the current running agent's MIB data. 295 Virtual tables are built by specifying a sequence of 296 columnar Object Identifiers from real mib tables." 297 ::= { bulkDataObjects 1 } 299 sliceEntry OBJECT-TYPE 300 SYNTAX SliceEntry 301 MAX-ACCESS not-accessible 302 STATUS current 303 DESCRIPTION 304 "The data slice entry." 305 INDEX { sliceIndex, sliceSubId } 306 ::= { sliceTable 1 } 308 SliceEntry ::= SEQUENCE { 309 sliceIndex Unsigned32, 310 sliceSubId Unsigned32, 311 sliceColumnOID OBJECT IDENTIFIER, 312 sliceSnmpContext DisplayString, 313 sliceColumnDisplayHint DisplayString, 314 sliceAdminString DisplayString, 315 sliceEntryStatus RowStatus } 317 sliceIndex OBJECT-TYPE 318 SYNTAX Unsigned32 (1..4294967295) 319 MAX-ACCESS not-accessible 320 STATUS current 321 DESCRIPTION 322 "An arbitrary integer to uniquely identify this entry. To 323 create an entry a management application should pick a 324 random number." 325 ::= { sliceEntry 1 } 327 sliceSubId OBJECT-TYPE 328 SYNTAX Unsigned32 (1..4294967295) 329 MAX-ACCESS not-accessible 330 STATUS current 331 DESCRIPTION 332 "A sequential sub-index to identify a component of a slice 333 entry." 334 ::= { sliceEntry 2 } 336 sliceColumnOID OBJECT-TYPE 337 SYNTAX OBJECT IDENTIFIER 338 MAX-ACCESS read-create 339 STATUS current 340 DESCRIPTION 341 "An Object Identifier, which must refer to a column of a 342 conceptual table. A slice is defined to be a series of 343 columns OIDs that exist in various tables which are 344 accessible via the local agent." 345 ::= { sliceEntry 3 } 347 sliceSnmpContext OBJECT-TYPE 348 SYNTAX DisplayString 349 MAX-ACCESS read-create 350 STATUS current 351 DESCRIPTION 352 "In mib groups that are not inherently instancable, an snmp 353 manager context is used to multiply access the separate 354 instances (eg, the bridge mib)." 355 ::= { sliceEntry 4 } 357 sliceColumnDisplayHint OBJECT-TYPE 358 SYNTAX DisplayString 359 MAX-ACCESS read-create 360 STATUS current 361 DESCRIPTION 362 "This defines how the data file will render this OID's value 363 in the snapshot data file. 365 The following subset of the C printf-style formatting 366 macros is supported: 368 %s - ascii string field 369 %d - numeric field" 370 ::= { sliceEntry 5 } 372 sliceAdminString OBJECT-TYPE 373 SYNTAX DisplayString 374 MAX-ACCESS read-create 375 STATUS current 376 DESCRIPTION 377 "Used for administrative purposes. Usually meaningful only 378 to the controlling NMS." 379 DEFVAL { ''H } -- the empty string 380 ::= { sliceEntry 6 } 382 sliceEntryStatus OBJECT-TYPE 383 SYNTAX RowStatus 384 MAX-ACCESS read-create 385 STATUS current 386 DESCRIPTION 387 "The control variable that allows creation, modification, 388 and deletion of entries in this table." 389 ::= { sliceEntry 7 } 391 -- Fileserver/host Transfer Table 393 xferTable OBJECT-TYPE 394 SYNTAX SEQUENCE OF XferEntry 395 MAX-ACCESS not-accessible 396 STATUS current 397 DESCRIPTION 398 "This table describes a bulk data slice file transfer 399 information. It is referenced when a snapshot is being 400 requested." 401 ::= { bulkDataObjects 2 } 403 xferEntry OBJECT-TYPE 404 SYNTAX XferEntry 405 MAX-ACCESS not-accessible 406 STATUS current 407 DESCRIPTION 408 "The snapshot file transfer request table entry." 409 INDEX { xferIndex, xferSubId } 410 ::= { xferTable 1 } 412 XferEntry ::= SEQUENCE { 413 xferIndex Unsigned32, 414 xferSubId Unsigned32, 415 xferHostIpType InetAddressType, 416 xferHostIpAddr InetAddress, 417 xferProtocol INTEGER, 418 xferWriteControl INTEGER, 419 xferFilePath DisplayString, 420 xferAuthUsername DisplayString, 421 xferAuthPassword DisplayString, 422 xferAdminString DisplayString, 423 xferEntryStatus RowStatus } 425 xferIndex OBJECT-TYPE 426 SYNTAX Unsigned32 (1..4294967295) 427 MAX-ACCESS not-accessible 428 STATUS current 429 DESCRIPTION 430 "An integer to uniquely identify a transfer destination set." 431 ::= { xferEntry 1 } 433 xferSubId OBJECT-TYPE 434 SYNTAX Unsigned32 435 MAX-ACCESS not-accessible 436 STATUS current 437 DESCRIPTION 438 "Sub index that allows several transfer entries to be 439 grouped together to form a transfer set." 440 ::= { xferEntry 2 } 442 xferHostIpType OBJECT-TYPE 443 SYNTAX InetAddressType 444 MAX-ACCESS read-create 445 STATUS current 446 DESCRIPTION 447 "Used along with xferHostIpAddr to define the IP address 448 version." 449 DEFVAL { ipv4 } 450 ::= { xferEntry 3 } 452 xferHostIpAddr OBJECT-TYPE 453 SYNTAX InetAddress 454 MAX-ACCESS read-create 455 STATUS current 456 DESCRIPTION 457 "The IP address of the fileserver where the snapshot is to 458 be transferred." 459 ::= { xferEntry 4 } 461 xferProtocol OBJECT-TYPE 462 SYNTAX INTEGER { 463 cp(1), 464 ftp(2), 465 scp(3) 466 } 467 MAX-ACCESS read-create 468 STATUS current 469 DESCRIPTION 470 "This defines the standard protocol that is used to upload 471 the snapshot to the fileserver. The agent is the client in 472 this transaction; ie, it initiates the upload to the 473 fileserver. 475 When the snapshot is being kept on the local system, cp(1) 476 is to be specified. For remote file transfers, ftp(2) or 477 scp(3) should be specified." 478 DEFVAL { ftp } 479 ::= { xferEntry 5 } 481 xferWriteControl OBJECT-TYPE 482 SYNTAX INTEGER { 483 failIfExists(1), 484 overwrite(2) 485 } 486 MAX-ACCESS read-create 487 STATUS current 488 DESCRIPTION 489 "This defines the action to take when uploading bulk 490 data to a fileserver. If set to failIfExists(1) and 491 a file already exists on the fileserver, the upload will 492 fail and the existing file on the server will not be 493 overwritten. If set to overwrite(2), a file will be 494 uploaded and saved under the specified path and name 495 even if one by that composite name already exists; 496 if none exists by that composite name, a new file 497 will be created." 498 DEFVAL { failIfExists } 499 ::= { xferEntry 6 } 501 xferFilePath OBJECT-TYPE 502 SYNTAX DisplayString 503 MAX-ACCESS read-create 504 STATUS current 505 DESCRIPTION 506 "The remote directory path where the file is to be saved on 507 the fileserver." 508 ::= { xferEntry 7 } 510 xferAuthUsername OBJECT-TYPE 511 SYNTAX DisplayString 512 MAX-ACCESS read-create 513 STATUS current 514 DESCRIPTION 515 "The user name to use when authenticating with the remote 516 fileserver." 517 ::= { xferEntry 8 } 519 xferAuthPassword OBJECT-TYPE 520 SYNTAX DisplayString 521 MAX-ACCESS read-create 522 STATUS current 523 DESCRIPTION 524 "The password to use when authenticating with the remote 525 fileserver." 526 ::= { xferEntry 9 } 528 xferAdminString OBJECT-TYPE 529 SYNTAX DisplayString 530 MAX-ACCESS read-create 531 STATUS current 532 DESCRIPTION 533 "Used for administrative purposes. Usually meaningful only 534 to the controlling NMS." 535 DEFVAL { ''H } -- the empty string 536 ::= { xferEntry 10 } 538 xferEntryStatus OBJECT-TYPE 539 SYNTAX RowStatus 540 MAX-ACCESS read-create 541 STATUS current 542 DESCRIPTION 543 "The control that allows creation, modification, and deletion 544 of entries. 546 Setting this variable to createAndGo(4) or active(1) will 547 case a row creation to be performed in this table. Note 548 that no actual file transfer occurs until a snapshot table 549 entry is created. 551 Setting this variable to delete will delete this row entry." 552 ::= { xferEntry 11 } 554 -- Snapshot Control Table 556 snapshotTable OBJECT-TYPE 557 SYNTAX SEQUENCE OF SnapshotEntry 558 MAX-ACCESS not-accessible 559 STATUS current 560 DESCRIPTION 561 "This table describes a bulk data slice snapshot request. 562 The agent is expected to capture the values of the slice 563 (atomically, if possible) and save them in a file on the 564 local system when a row in this table is created and set to 565 createAndGo(4) or active(1)." 566 ::= { bulkDataObjects 3 } 568 snapshotEntry OBJECT-TYPE 569 SYNTAX SnapshotEntry 570 MAX-ACCESS not-accessible 571 STATUS current 572 DESCRIPTION 573 "The snapshot request table entry." 574 INDEX { snapshotIndex, snapshotSliceIndex, snapshotXferId } 575 ::= { snapshotTable 1 } 577 SnapshotEntry ::= SEQUENCE { 578 snapshotIndex Unsigned32, 579 snapshotSliceIndex Unsigned32, 580 snapshotXferId Unsigned32, 581 snapshotSnapFileName DisplayString, 582 snapshotFileEncoding INTEGER, 583 snapshotFileCompression INTEGER, 584 snapshotStartTime TimeStamp, 585 snapshotCompletionTime TimeStamp, 586 snapshotFileSize Unsigned32, 587 snapshotState INTEGER, 588 snapshotAdminString DisplayString, 589 snapshotEntryStatus RowStatus } 591 snapshotIndex OBJECT-TYPE 592 SYNTAX Unsigned32 (1..4294967295) 593 MAX-ACCESS not-accessible 594 STATUS current 595 DESCRIPTION 596 "An integer to uniquely identify the data slice that is to 597 be transferred to the fileserver. This refers to an entry 598 in the SliceTable." 599 ::= { snapshotEntry 1 } 601 snapshotSliceIndex OBJECT-TYPE 602 SYNTAX Unsigned32 603 MAX-ACCESS not-accessible 604 STATUS current 605 DESCRIPTION 606 "An integer to uniquely identify the data slice to saved on 607 the local system." 608 ::= { snapshotEntry 2 } 610 snapshotXferId OBJECT-TYPE 611 SYNTAX Unsigned32 612 MAX-ACCESS not-accessible 613 STATUS current 614 DESCRIPTION 615 "An instance in the xfer table that describes where and how 616 to copy the bulk data snapshot to a fileserver." 617 ::= { snapshotEntry 3 } 619 snapshotSnapFileName OBJECT-TYPE 620 SYNTAX DisplayString 621 MAX-ACCESS read-create 622 STATUS current 623 DESCRIPTION 624 "The bulk data snapshot is saved under this filename." 625 ::= { snapshotEntry 4 } 627 snapshotFileEncoding OBJECT-TYPE 628 SYNTAX INTEGER { 629 ascii(1), 630 xml(2) 631 } 632 MAX-ACCESS read-create 633 STATUS current 634 DESCRIPTION 635 "If set to ascii(1), the format is human-readable ascii with 636 a lines in the form: 638 # timestampStart timestampCompletion col-1 col-2 ... col-n 639 instance-1 value-1 value-2 ... 640 instance-2 value-3 value-4 ... 641 ... 643 where: 645 timestampStart and timestampCompletion are the values of 646 sysUptime on the agent when the snapshot of the data slice 647 was initiated and completed (with or without errors). 649 column-1 thru column-n are the human-readable MIB module 650 column names that are included in this data slice. 652 instance-1 (etc) are human-readable MIB module instance 653 names in usual dotted notation. 655 value-1 (etc) are human-readable ascii representations 656 of the actual values of the data cells. This is in 657 DisplayString format regardless of the native data type of 658 the column. 659 It is implementation-specific if the column name is stored 660 in dotted-OID format (.1.3.6...) or in symbolic format 661 (ifInOctets). 663 For example, an ifTable data slice file fragment might be: 665 # 28711187 28711190 ifDescr ifType ifInOctets ifOutOctets 666 1 lo0 softwareLoopback 54550782 54552115 667 2 eth0 ethernet-csmacd 372380346 2746062289 668 3 eth0.0 ethernet-csmacd 4002949 126167 670 If set to xml(2), the data will be saved in XML tagged 671 format." 672 DEFVAL { ascii } 673 ::= { snapshotEntry 5 } 675 snapshotFileCompression OBJECT-TYPE 676 SYNTAX INTEGER { 677 noCompression(1), 678 bzip(2), 679 gzip(3) 680 } 681 MAX-ACCESS read-create 682 STATUS current 683 DESCRIPTION 684 "If set to noCompression(1), no file compression will be 685 applied before the data slice is transferred to the 686 fileserver. 688 If set to bzip(2), the standard bzip compression algorithm 689 will be applied to the data slice before the file is 690 uploaded to the fileserver. 692 If set to gzip(3), the standard GNU gzip compression 693 algorithm will be applied to the data slice before the file 694 is uploaded to the fileserver." 695 DEFVAL { noCompression } 696 ::= { snapshotEntry 6 } 698 snapshotStartTime OBJECT-TYPE 699 SYNTAX TimeStamp 700 MAX-ACCESS read-only 701 STATUS current 702 DESCRIPTION 703 "The value of sysUptime on the agent when the snapshot was 704 initiated." 705 ::= { snapshotEntry 7 } 707 snapshotCompletionTime OBJECT-TYPE 708 SYNTAX TimeStamp 709 MAX-ACCESS read-only 710 STATUS current 711 DESCRIPTION 712 "The value of sysUptime on the agent when the snapshot was 713 completed (with or without an error)." 714 ::= { snapshotEntry 8 } 716 snapshotFileSize OBJECT-TYPE 717 SYNTAX Unsigned32 718 MAX-ACCESS read-only 719 STATUS current 720 DESCRIPTION 721 "The actual size of the file (after optional file 722 compression was applied) at the completion of the snapshot. 723 The size is measured in bytes. This variable is only valid 724 upon the successful completion of a slice snapshot." 725 ::= { snapshotEntry 9 } 727 snapshotState OBJECT-TYPE 728 SYNTAX INTEGER { 729 running(1), 730 ready(2), 731 noSpace(3), 732 badName(4), 733 writeErr(5), 734 noMem(6), 735 aborted(7) 736 } 737 MAX-ACCESS read-only 738 STATUS current 739 DESCRIPTION 740 "The file state: 742 running data is being written to the file 743 ready the file is ready to be sent or retrieved 744 noSpace no data due to insufficient file space 745 badName no data due to a name or path problem 746 writeErr no data due to fatal file write error 747 noMem no data due to insufficient dynamic memory 748 aborted terminated by operator command 750 Only the 'ready' state implies that snapshot has successfully 751 completed." 752 ::= { snapshotEntry 10 } 754 snapshotAdminString OBJECT-TYPE 755 SYNTAX DisplayString 756 MAX-ACCESS read-create 757 STATUS current 758 DESCRIPTION 759 "Used for administrative purposes. Usually meaningful only 760 to the controlling NMS." 761 DEFVAL { ''H } -- the empty string 762 ::= { snapshotEntry 11 } 764 snapshotEntryStatus OBJECT-TYPE 765 SYNTAX RowStatus 766 MAX-ACCESS read-create 767 STATUS current 768 DESCRIPTION 769 "The control that allows creation, modification, and deletion 770 of entries. 772 Setting this variable to createAndGo(4) or active(1) will 773 initiate a snapshot of a slice entry to the local system 774 and optionally initiate a remote file copy. 776 Setting this variable to delete() will delete this row entry 777 and delete the corresponding data file on the local system. 779 Note that in practice, this variable could be set by an 780 operator via the agent's craft interface, remotely via an 781 NMS using SNMP or locally within the agent via automatic 782 means, such as described in the DISMAN-SCHEDULE-MIB." 783 ::= { snapshotEntry 12 } 785 -- Snapshot File Transfer Control Table 787 xferCtlTable OBJECT-TYPE 788 SYNTAX SEQUENCE OF XferCtlEntry 789 MAX-ACCESS not-accessible 790 STATUS current 791 DESCRIPTION 792 "This table contains individual (fileserver host) transfer 793 requests. There will be an entry in this table For each 794 filserver that is to receive a snapshot slice. The current 795 transfer status can be monitored as well as controlled 796 (aborted, retried)." 797 ::= { bulkDataObjects 4 } 799 xferCtlEntry OBJECT-TYPE 800 SYNTAX XferCtlEntry 801 MAX-ACCESS not-accessible 802 STATUS current 803 DESCRIPTION 804 "The snapshot file transfer request table entry." 805 INDEX { xferCtlIndex, sliceIndex, xferIndex, xferSubId } 806 ::= { xferCtlTable 1 } 808 XferCtlEntry ::= SEQUENCE { 809 xferCtlIndex Unsigned32, 810 xferCtlStartTime TimeStamp, 811 xferCtlCompletionTime TimeStamp, 812 xferCtlPercentXferred Unsigned32, 813 xferCtlStatus INTEGER } 815 xferCtlIndex OBJECT-TYPE 816 SYNTAX Unsigned32 (1..4294967295) 817 MAX-ACCESS not-accessible 818 STATUS current 819 DESCRIPTION 820 "An integer to uniquely identify a transfer destination set." 821 ::= { xferCtlEntry 1 } 823 xferCtlStartTime OBJECT-TYPE 824 SYNTAX TimeStamp 825 MAX-ACCESS read-only 826 STATUS current 827 DESCRIPTION 828 "The value of sysUptime on the agent when the file transfer 829 was initiated." 830 ::= { xferCtlEntry 2 } 832 xferCtlCompletionTime OBJECT-TYPE 833 SYNTAX TimeStamp 834 MAX-ACCESS read-only 835 STATUS current 836 DESCRIPTION 837 "The value of sysUptime on the agent when the file transfer 838 was completed (with or without an error)." 839 ::= { xferCtlEntry 3 } 841 xferCtlPercentXferred OBJECT-TYPE 842 SYNTAX Unsigned32 (0..100) 843 MAX-ACCESS read-only 844 STATUS current 845 DESCRIPTION 846 "The amount of the snapshot file that has been transferred 847 to the fileserver, in percent of completion (0..100)." 848 ::= { xferCtlEntry 4 } 850 xferCtlStatus OBJECT-TYPE 851 SYNTAX INTEGER { 852 inProgress(1), 853 complete(2), 854 noSpace(3), 855 badName(4), 856 writeErr(5), 857 badLogin(6), 858 abortXfer(7), 859 retryXfer(8), 860 deleteRow(9) 861 } 862 MAX-ACCESS read-write 863 STATUS current 864 DESCRIPTION 865 "This allows individual file transfer requests to be 866 controlled. 868 inProgress(1) is returned if a file transfer is currently 869 being performed by the local system. This is a read-only 870 value. 872 complete(2) is returned upon successful file transfer. 873 This is a read-only value. 875 noSpace(3), badName(4), writeErr(5), badLogin(6) are error 876 status values that describe the error conditions of 877 insufficient fileserver space to create the file, invalid 878 filename, misc write error or authentication error on the 879 fileserver. These values are readable but not writable. 881 abortXfer(7), retryXfer(8) are writable values and allow 882 remote control of currently pending file transfer requests. 884 deleteRow(9) is a writable value that causes a row deletion 885 from this table. In addition, any pending operations on 886 this row are aborted." 887 ::= { xferCtlEntry 5 } 889 -- Traps 891 bulkDataXfer NOTIFICATION-TYPE 892 OBJECTS { 893 -- xferCtlIndex, 894 -- xferIndex, 895 -- xferSubId, 896 xferCtlStatus 897 } 898 STATUS current 899 DESCRIPTION 900 "Asynchronous events that are sent when a file transfer 901 request changes state." 903 ::= { bulkDataTraps 1 } 905 -- Conformance 907 bulkMIBConformance OBJECT IDENTIFIER ::= { bulkDataMIB 4 } 909 bulkMIBCompliances OBJECT IDENTIFIER ::= { bulkMIBConformance 1 } 910 bulkMIBGroups OBJECT IDENTIFIER ::= { bulkMIBConformance 2 } 912 -- Compliance 914 bulkMIBCompliance MODULE-COMPLIANCE 915 STATUS current 916 DESCRIPTION 917 "The compliance statement for entities which implement 918 the Bulk Data MIB. Implementation of this MIB 919 is based on individual product needs." 920 MODULE -- this module 921 MANDATORY-GROUPS { 922 bulkCapabilitiesGroup, 923 bulkSliceGroup, 924 bulkFileTransferGroup, 925 bulkSnapshotGroup, 926 bulkXferCtlGroup, 927 bulkTrapGroup 928 } 929 ::= { bulkMIBCompliances 1 } 931 -- Units of Conformance 933 bulkCapabilitiesGroup OBJECT-GROUP 934 OBJECTS { 935 acFileEncoding, 936 acFileCompression, 937 acXferProtocol 938 } 939 STATUS current 940 DESCRIPTION 941 "Bulk Data agent capabilities management." 942 ::= { bulkMIBGroups 1 } 944 bulkSliceGroup OBJECT-GROUP 945 OBJECTS { 946 sliceColumnOID, 947 sliceSnmpContext, 948 sliceColumnDisplayHint, 949 sliceAdminString, 950 sliceEntryStatus 951 } 952 STATUS current 953 DESCRIPTION 954 "Bulk Data slice management." 955 ::= { bulkMIBGroups 2 } 957 bulkFileTransferGroup OBJECT-GROUP 958 OBJECTS { 959 xferHostIpType, 960 xferHostIpAddr, 961 xferProtocol, 962 xferWriteControl, 963 xferFilePath, 964 xferAuthUsername, 965 xferAuthPassword, 966 xferAdminString, 967 xferEntryStatus 968 } 969 STATUS current 970 DESCRIPTION 971 "Bulk File transfer management." 972 ::= { bulkMIBGroups 3 } 974 bulkSnapshotGroup OBJECT-GROUP 975 OBJECTS { 976 snapshotSnapFileName, 977 snapshotFileEncoding, 978 snapshotFileCompression, 979 snapshotStartTime, 980 snapshotCompletionTime, 981 snapshotFileSize, 982 snapshotState, 983 snapshotAdminString, 984 snapshotEntryStatus 985 } 986 STATUS current 987 DESCRIPTION 988 "Bulk data snapshot management." 990 ::= { bulkMIBGroups 4 } 992 bulkXferCtlGroup OBJECT-GROUP 993 OBJECTS { 994 xferCtlStartTime, 995 xferCtlCompletionTime, 996 xferCtlPercentXferred, 997 xferCtlStatus 998 } 999 STATUS current 1000 DESCRIPTION 1001 "Bulk Data transfer control management." 1002 ::= { bulkMIBGroups 5 } 1004 bulkTrapGroup NOTIFICATION-GROUP 1005 NOTIFICATIONS { bulkDataXfer } 1006 STATUS current 1007 DESCRIPTION 1008 "Bulk Data trap management." 1009 ::= { bulkMIBGroups 6 } 1011 END 1013 7. Intellectual Property 1015 The IETF takes no position regarding the validity or scope of any 1016 intellectual property or other rights that might be claimed to 1017 pertain to the implementation or use of the technology described in 1018 this document or the extent to which any license under such rights 1019 might or might not be available; neither does it represent that it 1020 has made any effort to identify any such rights. Information on the 1021 IETF's procedures with respect to rights in standards-track and 1022 standards-related documentation can be found in BCP-11. Copies of 1023 claims of rights made available for publication and any assurances of 1024 licenses to be made available, or the result of an attempt made to 1025 obtain a general license or permission for the use of such 1026 proprietary rights by implementors or users of this specification can 1027 be obtained from the IETF Secretariat. 1029 The IETF invites any interested party to bring to its attention any 1030 copyrights, patents or patent applications, or other proprietary 1031 rights which may cover technology that may be required to practice 1032 this standard. Please address the information to the IETF Executive 1033 Director. 1035 8. Acknowledgements 1037 This document is the result of the efforts of the Evolution Of SNMP 1038 (EOS) Working Group. Some special thanks are in order to the 1039 following EOS WG members for their ideas, efforts and asundry 1040 contributions: 1042 Dr. Jeff Case 1043 Dale Francisco 1044 David Perkins 1045 Randy Presuhn 1046 Jeurgen Schoenwaelder 1047 Bob Stewart 1048 Troy Dixler 1049 L. Heintz 1050 Nalinaksh Pai 1052 9. Security Considerations 1054 TBD 1056 10. References 1058 [RFC1155] Rose, M. and K. McCloghrie, "Structure and 1059 Identification of Management Information for TCP/IP- 1060 based internets", STD 16, RFC 1155, May 1990. 1062 [RFC1157] Case, J., M. Fedor, M. Schoffstall and J. Davin, "The 1063 Simple Network Management Protocol", STD 15, RFC 1157, 1064 May 1990. 1066 [RFC1212] Rose, M. and K. McCloghrie, "Concise MIB Definitions", 1067 STD 16, RFC 1212, March 1991. 1069 [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K., 1070 Rose, M. and S. Waldbusser, "Introduction to 1071 Community-based SNMPv2", RFC 1901, January 1996. 1073 [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An 1074 Architecture for Describing SNMP Management Frameworks", 1075 RFC 2571, April 1999. 1077 [RFC2578] McCloghrie, K., Perkins, D. and J. Schoenwaelder, 1078 "Structure of Management Information Version 2 (SMIv2)", 1079 STD 58, RFC 2578, April 1999. 1081 [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, 1082 "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1083 1999. 1085 [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, 1086 "Conformance Statements for SMIv2", STD 58, RFC 2580, 1087 April 1999. 1089 [RFC-PROTO] Presuhn, R., Case, J., McCloghrie, K., Rose, M., and S. 1090 Waldbusser, "Protocol Operations for the Simple Network 1091 Management Protocol", , March 2002. 1094 [RFC-TMM] Presuhn, R., Case, J., McCloghrie, K., Rose, M., and S. 1095 Waldbusser, "Transport Mappings for the Simple Network 1096 Management Protocol", , March 2002. 1099 [RFC-MIB] Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S. 1100 Waldbusser, "Management Information Base for the Simple 1101 Network Management Protocol", , March 2002. 1104 [RFC-COEX] Frye, R., Levi, D., Routhier, S., and B. Wijnen, 1105 "Coexistence between Version 1, Version 2, and Version 3 1106 of the Internet-standard Network Management Framework", 1107 , March 2002. 1109 [RFC1909] McCloghrie, K., Editor, "An Administrative 1110 Infrastructure for SNMPv2", RFC 1909, February 1996. 1112 [RFC1910] Waters, G., Editor, "User-based Security Model for 1113 SNMPv2", RFC 1910, February 1996. 1115 [RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO 1116 10646", RFC 2279, January, 1998. 1118 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1119 Requirement Levels", BCP 14, RFC 2119, March 1997. 1121 [BCP-11] Hovey, R. and S. Bradner, "The Organizations Involved in 1122 the IETF Standards Process", BCP 11, RFC 2028, October 1123 1996. 1125 [RFC2863] McCloghrie, K. and F. Kastenholz. "The Interfaces Group 1126 MIB." RFC 2863, June 2000. 1128 [SNMP-MPD] Case, J., Harrington, D., Presuhn, R. and B. Wijnen, 1129 "Message Processing and Dispatching for the Simple 1130 Network Management Protocol (SNMP)", , March 2002. 1133 [SNMP-USM] Blumenthal, U. and B. Wijnen, "The User-Based Security 1134 Model for Version 3 of the Simple Network Management 1135 Protocol (SNMPv3)", , 1136 March 2002. 1138 [SNMP-ACM] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based 1139 Access Control Model for the Simple Network Management 1140 Protocol (SNMP)", , 1141 February 1999. , 1142 March 2002. 1144 [RFC-APPL] Levi, D., Meyer, P. and B. Stewart, "SNMP 1145 Applications", , March 1146 2002. 1148 [RFC2570] Case, J., Mundy, R., Partain, D. and B. Stewart, 1149 "Introduction to Version 3 of the Internet-standard 1150 Network Management Framework", , January 1999. 1153 [RFC-COEX] Frye, R., Levi, D., Routhier, S., and B. Wijnen, 1154 "Coexistence between Version 1, Version 2, and Version 3 1155 of the Internet-standard Network Management Framework", 1156 , March 2002. 1158 11. Editor's Addresses 1160 Bryan Levin 1161 Allegro Netowrks 1162 6399 San Ignacio 1163 San Jose, Ca 95199-1206 1165 Phone: +1 408-281-5500 1166 EMail: snmp@allegronetworks.com 1168 David L. Battle 1169 Cisco Systems 1170 204 Golfclub Rd 1171 Knoxville, TN 37919-5924 1173 Phone: +1 865-588-7763 1174 EMail: dbattle@cisco.com 1176 APPENDIXES 1178 A. Impact to SNMP and other Protocols 1180 A.1. SNMPv3 1182 An issue remains whether a new message processing model MUST be 1183 specified as part of the SNMPv3 (or later) standard. Otherwise, it is 1184 not seen that these extensions pose any impact to other SNMPv3 1185 architectural components (i.e. USM, VACM) because the new protocol 1186 operations and their contents contain sufficient information (along 1187 with the information provided in whatever version-specific message 1188 wrapper they are contined within) to satisfy the abstract service 1189 interfaces for those components. 1191 B. Full Copyright Statement 1193 Copyright (C) The Internet Society (2002). All Rights Reserved. 1195 This document and translations of it may be copied and furnished to 1196 others, and derivative works that comment on or otherwise explain it 1197 or assist in its implementation may be prepared, copied, published 1198 and distributed, in whole or in part, without restriction of any 1199 kind, provided that the above copyright notice and this paragraph are 1200 included on all such copies and derivative works. However, this 1201 document itself may not be modified in any way, such as by removing 1202 the copyright notice or references to the Internet Society or other 1203 Internet organizations, except as needed for the purpose of 1204 developing Internet standards in which case the procedures for 1205 copyrights defined in the Internet Standards process must be 1206 followed, or as required to translate it into languages other than 1207 English. 1209 The limited permissions granted above are perpetual and will not be 1210 revoked by the Internet Society or its successors or assigns. 1212 This document and the information contained herein is provided on an 1213 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 1214 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 1215 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 1216 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 1217 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 1219 Acknowledgement 1220 Funding for the RFC Editor function is currently provided by the 1221 Internet Society.