idnits 2.17.1 draft-ietf-disman-script-mib-08.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: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** 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 separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 12 instances of too long lines in the document, the longest one being 2 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 1743 has weird spacing: '... "This conta...' == Line 2471 has weird spacing: '...for the purpo...' -- 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 (22 February 1999) is 9195 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: '16' is defined on line 2424, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2271 (ref. '1') (Obsoleted by RFC 2571) ** Downref: Normative reference to an Informational RFC: RFC 1215 (ref. '4') ** Obsolete normative reference: RFC 1902 (ref. '5') (Obsoleted by RFC 2578) ** Obsolete normative reference: RFC 1903 (ref. '6') (Obsoleted by RFC 2579) ** Obsolete normative reference: RFC 1904 (ref. '7') (Obsoleted by RFC 2580) ** Downref: Normative reference to an Historic RFC: RFC 1157 (ref. '8') ** Downref: Normative reference to an Historic RFC: RFC 1901 (ref. '9') ** Obsolete normative reference: RFC 1906 (ref. '10') (Obsoleted by RFC 3417) ** Obsolete normative reference: RFC 2272 (ref. '11') (Obsoleted by RFC 2572) ** Obsolete normative reference: RFC 2274 (ref. '12') (Obsoleted by RFC 2574) ** Obsolete normative reference: RFC 1905 (ref. '13') (Obsoleted by RFC 3416) ** Obsolete normative reference: RFC 2273 (ref. '14') (Obsoleted by RFC 2573) ** Obsolete normative reference: RFC 2275 (ref. '15') (Obsoleted by RFC 2575) ** Obsolete normative reference: RFC 2028 (ref. '16') (Obsoleted by RFC 9281) ** Obsolete normative reference: RFC 2396 (ref. '17') (Obsoleted by RFC 3986) ** Obsolete normative reference: RFC 2068 (ref. '19') (Obsoleted by RFC 2616) ** Obsolete normative reference: RFC 2434 (ref. '20') (Obsoleted by RFC 5226) Summary: 22 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group David Levi 3 Internet-Draft SNMP Research, Inc. 4 Expires August 1999 Juergen Schoenwaelder 5 TU Braunschweig 6 22 February 1999 8 Definitions of Managed Objects for the 9 Delegation of Management Scripts 11 13 Status of this Memo 15 This document is an Internet-Draft and is in full conformance with 16 all provisions of Section 10 of RFC 2026. Internet-Drafts are 17 working documents of the Internet Engineering Task Force (IETF), its 18 areas, and its working groups. Note that other groups may also 19 distribute working documents as Internet-Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html 32 Distribution of this document is unlimited. Please send comments to 33 the Distributed Management Working Group, . 35 Copyright Notice 37 Copyright (C) The Internet Society (1999). All Rights Reserved. 39 Abstract 41 This memo defines a portion of the Management Information Base (MIB) 42 for use with network management protocols in the Internet community. 43 In particular, it describes a set of managed objects that allow the 44 delegation of management scripts to distributed managers. 46 Table of Contents 48 1 Introduction ................................................. 3 49 2 The SNMP Management Framework ................................ 3 50 3 Overview ..................................................... 4 51 3.1 Terms ...................................................... 4 52 4 Requirements and Design Issues ............................... 5 53 4.1 Script Languages ........................................... 6 54 4.2 Script Transfer ............................................ 7 55 4.3 Script Execution ........................................... 8 56 5 The Structure of the MIB ..................................... 9 57 5.1 The smLanguageGroup ........................................ 9 58 5.2 The smScriptGroup .......................................... 9 59 5.3 The smCodeGroup ............................................ 10 60 5.4 The smLaunchGroup .......................................... 11 61 5.5 The smRunGroup ............................................. 11 62 6 Definitions .................................................. 13 63 7 Usage Examples ............................................... 44 64 7.1 Pushing a script via SNMP .................................. 44 65 7.2 Pulling a script from a URL ................................ 45 66 7.3 Modifying an existing script ............................... 45 67 7.4 Removing an existing script ................................ 46 68 7.5 Creating a launch button ................................... 46 69 7.6 Launching a script ......................................... 47 70 7.7 Terminating a script ....................................... 47 71 7.8 Removing a launch button ................................... 48 72 8 VACM Configuration Examples .................................. 49 73 8.1 Sandbox for guests ......................................... 49 74 8.2 Sharing scripts ............................................ 49 75 8.3 Emergency scripts .......................................... 50 76 9 IANA Considerations .......................................... 51 77 10 Security Considerations ..................................... 52 78 11 Intellectual Property ....................................... 53 79 12 Acknowledgments ............................................. 53 80 13 References .................................................. 54 81 14 Editors' Addresses .......................................... 56 82 15 Full Copyright Statement .................................... 56 83 16 IANA Language Registration MIB .............................. 57 85 1. Introduction 87 This memo defines a portion of the Management Information Base (MIB) 88 for use with network management protocols in the Internet community. 89 In particular, it describes a set of managed objects that allow the 90 delegation of management scripts to distributed managers. 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 94 document are to be interpreted as described in RFC 2119 [21]. 96 2. The SNMP Management Framework 98 The SNMP Management Framework presently consists of five major 99 components: 101 o An overall architecture, described in RFC 2271 [1]. 103 o Mechanisms for describing and naming objects and events for the 104 purpose of management. The first version of this Structure of 105 Management Information (SMI) is called SMIv1 and described in 106 RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version, 107 called SMIv2, is described in RFC 1902 [5], RFC 1903 [6] and RFC 108 1904 [7]. 110 o Message protocols for transferring management information. The 111 first version of the SNMP message protocol is called SNMPv1 and 112 described in RFC 1157 [8]. A second version of the SNMP message 113 protocol, which is not an Internet standards track protocol, is 114 called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. 115 The third version of the message protocol is called SNMPv3 and 116 described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12]. 118 o Protocol operations for accessing management information. The 119 first set of protocol operations and associated PDU formats is 120 described in RFC 1157 [8]. A second set of protocol operations 121 and associated PDU formats is described in RFC 1905 [13]. 123 o A set of fundamental applications described in RFC 2273 [14] and 124 the view-based access control mechanism described in RFC 2275 125 [15]. 127 Managed objects are accessed via a virtual information store, termed 128 the Management Information Base or MIB. Objects in the MIB are 129 defined using the mechanisms defined in the SMI. 131 This memo specifies a MIB module that is compliant to the SMIv2. A 132 MIB conforming to the SMIv1 can be produced through the appropriate 133 translations. The resulting translated MIB must be semantically 134 equivalent, except where objects or events are omitted because no 135 translation is possible (use of Counter64). Some machine readable 136 information in SMIv2 will be converted into textual descriptions in 137 SMIv1 during the translation process. However, this loss of machine 138 readable information is not considered to change the semantics of the 139 MIB. 141 3. Overview 143 The Script MIB module defined in this memo can be used to delegate 144 management functions to distributed managers. Management functions 145 are defined as management scripts written in a management scripting 146 language. This MIB makes no assumptions about the language itself and 147 even allows distribution of compiled native code, if an 148 implementation is able to execute native code under the control of 149 this MIB. 151 The Script MIB defines a standard interface for the delegation of 152 management functions based on the Internet management framework. In 153 particular, it provides the following capabilities: 155 1. Capabilities to transfer management scripts to a distributed 156 manager. 158 2. Capabilities for initiating, suspending, resuming and 159 terminating management scripts. 161 3. Capabilities to transfer arguments for management scripts. 163 4. Capabilities to monitor and control running management scripts. 165 5. Capabilities to transfer the results produced by running 166 management scripts. 168 This memo does not address any additional topics like the generation 169 of notifications or how to address remote agents from a Script MIB 170 implementation. 172 3.1. Terms 174 This section defines the terms used throughout this memo. 176 o A `distributed manager' is a processing entity which is capable 177 of performing network management functions. For the scope of 178 this memo, a distributed manager is assumed to implement the 179 Script MIB. 181 o A `higher-level manager', or just `manager', is a processing 182 entity or human who initiates and controls the operations 183 performed by one or more distributed managers. 185 o A `management script' is a set of instructions written in an 186 executable language which implements a management function. 188 o A `management scripting language' is a language used to write 189 management scripts. Note, the term scripting language does not 190 imply that the language must have the characteristics of 191 scripting languages (e.g. string orientation, interpretation, 192 weak typing). The MIB defined in this memo also allows to 193 control management scripts written in arbitrary compiled system 194 programming languages. 196 o A `distributed manager' can be decomposed into an `SNMP entity' 197 which implements the Script MIB defined in this memo and the 198 `runtime system' that executes scripts. The Script MIB sees the 199 runtime system as the managed resource which is controlled by 200 the MIB. 202 The runtime system can act as an SNMP application, according to 203 the SNMP architecture defined in RFC 2271 [1]. For example, a 204 runtime system which sends SNMP requests to other SNMP entities 205 will act as a command generator application. The SNMP 206 applications in the runtime system may use the same SNMP engine 207 which also serves the command responder application used to 208 implement the Script MIB, but they are not required to do so. 210 o A `launch button' is the conceptual button used to start the 211 execution of a management script. It assignes control parameters 212 to a management script. In particular, it defines the ownership 213 of the scripts started from a launch button. The ownership can 214 be used by the language runtime system to enforce security 215 profiles on a running management script. 217 4. Requirements and Design Issues 219 This section discusses some general requirements that have influenced 220 the design of the Script MIB. 222 o The Script MIB must not make any assumptions about specific 223 languages or runtime systems. 225 o The Script MIB must provide mechanisms that help to avoid new 226 management problems (e.g. script version problems). 228 o The Script MIB must provide SNMP interfaces to all functions 229 required to delegate management scripts. However, other 230 protocols might be used in addition if they provide a 231 significant improvement in terms of convenience for 232 implementation or performance. 234 o The Script MIB must be organized so that access can be 235 controlled effectively by using view-based access control [15]. 237 The following sections discuss some design issues in more detail. 239 4.1. Script Languages 241 The Script MIB defined in this memo makes no assumption about the 242 script language. This MIB can therefore be used in combination with 243 different languages (such as Tcl or Java) and/or different versions 244 of the same language. No assumptions are made about the format in 245 which management scripts are transferred. 247 The Script MIB provides access to information about the language 248 versions supported by a Script MIB implementation so that a manager 249 can learn about the capabilities provided by an implementation. 250 Languages and language versions are identified as follows: 252 1. The language is identified by an object identifier. Object 253 identifier for well-known languages will be registered by the 254 Internet Assigned Numbers Authority (IANA). Enterprise specific 255 languages can also be registered in the enterprise specific OID 256 subtree. 258 2. A particular version of a language is identified by a language 259 version number. The combination of a language object identifier 260 and a language version is in most cases sufficient to decide 261 whether a script can be executed or not. 263 3. Different implementations of the same language version might 264 have differences due to ambiguities in the language definition 265 or additional language features provided by an implementor. An 266 additional object identifier value is provided which identifies 267 the organization which provides the implementation of a 268 language. This might be used by scripts that require a 269 particular implementation of a language. 271 4. Finally, there might be different versions of a language 272 implementation. A version number for the language implementation 273 is provided so that the manager can also distinguish between 274 different implementations from the same organization of a 275 particular language version. 277 The version numbers can either be used by a manager to select the 278 language version required to execute a particular script or to select 279 a script that fits the language versions supported by a particular 280 Script MIB implementation. 282 An additional table lists language extensions that provide features 283 not provided by the core language. Language extensions are usually 284 required to turn a general purpose language into a management 285 language. In many cases, language extensions will come in the form of 286 libraries that provide capabilities like sending SNMP requests to 287 remote SNMP agents or accessing the local MIB instrumentation. Every 288 extension is associated with a language and carries its own version 289 numbers. 291 4.2. Script Transfer 293 There are two different ways to transfer management scripts to a 294 distributed manager. The first approach requires that the manager 295 pushes the script to the distributed manager. This is therefore 296 called the `push model'. The second approach is the `pull model' 297 where the manager tells the distributed manager the location of the 298 script and the distributed manager retrieves the script itself. 300 The MIB defined in this memo supports both models. The `push model' 301 is realized by a table which allows a manager to write scripts by 302 sending a sequence of SNMP set requests. The script can be split into 303 several fragments in order to deal with SNMP message size 304 limitations. 306 The `pull model' is realized by the use of Uniform Resource Locators 307 (URLs) [17] that point to the script source. The manager writes the 308 URL which points to the script source to the distributed manager by 309 sending an SNMP set request. The distributed manager is then 310 responsible for retrieving the document using the protocol specified 311 in the URL. This allows the use of protocols like FTP [18] or HTTP 312 [19] to transfer large management scripts efficiently. 314 The Script MIB also allows management scripts that are hard-wired 315 into the Script MIB implementation. Built-in scripts can either be 316 implemented in a language runtime system, or they can be built 317 natively into the Script MIB implementation. The implementation of 318 the `push model' or the `pull model' is not required. 320 Scripts can be stored in non-volatile storage. This allows a 321 distributed manager to restart scripts if it is restarted (off-line 322 restart). A manager is not required to push scripts back into the 323 distributed manager after a restart if the script is backed up in 324 non-volatile storage. 326 Every script is identified by an administratively assigned name. This 327 name may be used to derive the name which is used to access the 328 script in non-volatile storage. This mapping is implementation 329 specific. However, the mapping must ensure that the Script MIB 330 implementation can handle scripts with the same administrative name 331 owned by different managers. One way to achieve this is to use the 332 script owner in addition to the script name in order to derive the 333 internal name used to refer to a particular script in non-volatile 334 storage. 336 4.3. Script Execution 338 The Script MIB permits execution of several instances of the same or 339 different management scripts. Script arguments are passed as OCTET 340 STRING values. Scripts return a single result value which is also an 341 OCTET STRING value. The semantic interpretation of result values is 342 left to the invoking manager or other management scripts. A script 343 invoker must understand the format and semantics of both the 344 arguments and the results of the scripts that it invokes. 346 Scripts can also export complex results through a MIB interface. This 347 allows a management application to access and use script results in 348 the same manner as it processes any other MIB data. However, the 349 Script MIB does not provide any special support for the 350 implementation of MIBs through scripts. 352 Runtime errors terminate active scripts. An exit code and a human 353 readable error message is left in the MIB. A notification containing 354 the exit code, the error message and a timestamp is generated when a 355 script terminates with an error exit code. 357 Script arguments and results do not have any size limitations other 358 than the limits imposed by the SMI and the SNMP protocol. However, 359 implementations of this MIB might have further restrictions. A script 360 designer might therefore choose to return the results via other 361 mechanisms if the script results can be very large. One possibility 362 is to return a URL as a script result which points to the file 363 containing the script output. 365 Executing scripts have a status object attached which allows script 366 execution to be suspended, resumed, or aborted. The precise 367 semantics of the suspend and resume operations are language and 368 runtime system dependent. Some runtime systems may choose to not 369 implement the suspend/resume operations. 371 A history of finished scripts is kept in the MIB. A script invoker 372 can collect results at a later point in time (offline operation). 373 Control objects can be used to control how entries in the history are 374 aged out if the table fills up. 376 5. The Structure of the MIB 378 This section presents the structure of the MIB. The objects are 379 arranged into the following groups: 381 o language group (smLanguageGroup) 383 o script group (smScriptGroup) 385 o script code group (smCodeGroup) 387 o script launch group (smLaunchGroup) 389 o running script group (smRunGroup) 391 5.1. The smLanguageGroup 393 The smLanguageGroup is used to provide information about the 394 languages and the language extensions supported by a Script MIB 395 implementation. This group includes two tables. The smLangTable 396 lists all languages supported by a Script MIB implementation and the 397 smExtsnTable lists the extensions that are available for a given 398 language. 400 5.2. The smScriptGroup 402 The smScriptGroup consists of a single table, called the 403 smScriptTable. The smScriptTable lists all scripts known to a Script 404 MIB implementation. The smScriptTable contains objects that allow the 405 following operations: 407 o download scripts from a URL (pull model) 409 o read scripts from local non-volatile storage 411 o store scripts in local non-volatile storage 413 o delete scripts from local non-volatile storage 415 o list permanent scripts (that can not be changed or removed) 417 o read and modify the script status (enabled, disabled, editing) 419 A status object called smScriptOperStatus allows a manager to obtain 420 the current status of a script. It is also used to provide an error 421 indication if an attempt to invoke one of the operations listed above 422 fails. The status change of a script can be requested by modifying 423 the associated smScriptAdminStatus object. 425 The source of a script is defined by the smScriptSource object. This 426 object may contain a URL pointing to a remote location which provides 427 access to the management script. The script source is read from the 428 smCodeTable (described below) or from non-volatile storage if the 429 smScriptSource object contains an empty URL. The smScriptStorageType 430 object is used to distinguish between scripts read from non-volatile 431 storage and scripts read from the smCodeTable. 433 Scripts are automatically loaded once the smScriptAdminStatus object 434 is set to `enabled'. Loading a script includes retrieving the script 435 (probably from a remote location), compiling the script for languages 436 that require a compilation step, and making the code available to the 437 runtime system. The smScriptOperStatus object is used to indicate 438 the status of the loading process. This object will start in the 439 state `retrieving', switch to the state `compiling' and finally reach 440 the state `enabled'. Errors during the retrieval or compilation phase 441 will result in an error state such as `compilationFailed'. 443 5.3. The smCodeGroup 445 The smCodeGroup consists of a single table, called the smCodeTable, 446 which provides the ability to transfer and modify scripts via SNMP 447 set requests. In particular, the smCodeTable allows the following 448 operations: 450 o download scripts via SNMP (push model) 452 o modify scripts via SNMP (editing) 454 The smCodeTable lists the code of a script. A script can be 455 fragmented over multiple rows of the smCodeTable in order to handle 456 SNMP message size limitations. Modifications of the smCodeTable are 457 only possible if the associated smScriptOperStatus object has the 458 value `editing'. The Script MIB implementation reloads the modified 459 script code once the smScriptOperStatus changes to `enabled' again. 461 The implementation of the smCodeGroup is optional. 463 5.4. The smLaunchGroup 465 The smLaunchGroup contains a single table, the smLaunchTable. An 466 entry in the smLaunchTable represents a launch button which can be 467 used to start a script. The smLaunchTable allows the following 468 operations: 470 o associate a script with an owner used during script execution 472 o provide arguments and parameters for script invocation 474 o invoke scripts with a single set operation 476 The smLaunchTable describes scripts and their parameters that are 477 ready to be launched. An entry in the smLaunchTable attaches an 478 argument to a script and control values which, for example, define 479 the maximum number of times that a script invoked from a particular 480 row in the smLaunchTable may be running concurrently. 482 An entry in the smLaunchTable also defines the owner which will be 483 used to associate permissions with the script execution. 485 5.5. The smRunGroup 487 The smRunGroup contains a single table, called the smRunTable, which 488 lists all scripts that are currently running or have terminated 489 recently. The smRunTable contains objects that allow the following 490 operations: 492 o retrieve status information from running scripts 493 o control running scripts (suspend, resume, abort) 495 o retrieve results from recently terminated scripts 497 o control the remaining maximum lifetime of a running script 499 o control how long script results are accessible 501 Every row in the smRunTable contains the argument passed during 502 script invocation, the result produced by the script and the script 503 exit code. The smRunTable also provides information about the 504 current run state as well as start and end time-stamps. There are 505 three writable objects in the smRunTable. The smRunLifeTime object 506 defines the maximum time a running script may run before it is 507 terminated by the Script MIB implementation. The smRunExpireTime 508 object defines the time that a completed script can stay in the 509 smRunTable before it is aged out. The smRunControl object allows 510 running scripts to be suspended, resumed, or aborted. 512 6. Definitions 514 DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN 516 IMPORTS 517 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, 518 Integer32, Unsigned32, experimental 519 FROM SNMPv2-SMI 521 RowStatus, TimeInterval, DateAndTime, StorageType, DisplayString 522 FROM SNMPv2-TC 524 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP 525 FROM SNMPv2-CONF 527 SnmpAdminString 528 FROM SNMP-FRAMEWORK-MIB; 530 scriptMIB MODULE-IDENTITY 531 LAST-UPDATED "9902221800Z" 532 ORGANIZATION "IETF Distributed Management Working Group" 533 CONTACT-INFO 534 "David B. Levi 535 SNMP Research, Inc. 536 3001 Kimberlin Heights Road 537 Knoxville, TN 37920-9716 538 U.S.A. 539 Tel: +1 423 573 1434 540 E-mail: levi@snmp.com 542 Juergen Schoenwaelder 543 TU Braunschweig 544 Bueltenweg 74/75 545 38106 Braunschweig 546 Germany 547 Tel: +49 531 391-3283 548 E-mail: schoenw@ibr.cs.tu-bs.de" 549 DESCRIPTION 550 "This MIB module defines a set of objects that allow to 551 delegate management scripts to distributed managers." 552 -- XXX Replace with real registration number from IANA. Note, the 553 -- XXX IMPORTS must be updated when the real number is assigned. 554 ::= { experimental 85 } 556 -- 557 -- The groups defined within this MIB module: 558 -- 559 smObjects OBJECT IDENTIFIER ::= { scriptMIB 1 } 560 smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 } 561 smConformance OBJECT IDENTIFIER ::= { scriptMIB 3 } 563 -- 564 -- Script language and language extensions. 565 -- 566 -- This group defines tables which list the languages and the 567 -- language extensions supported by a script MIB implementation. 568 -- Languages are uniquely identified by object identifier values. 569 -- 571 smLangTable OBJECT-TYPE 572 SYNTAX SEQUENCE OF SmLangEntry 573 MAX-ACCESS not-accessible 574 STATUS current 575 DESCRIPTION 576 "This table lists supported script languages." 577 ::= { smObjects 1 } 579 smLangEntry OBJECT-TYPE 580 SYNTAX SmLangEntry 581 MAX-ACCESS not-accessible 582 STATUS current 583 DESCRIPTION 584 "An entry describing a particular language." 585 INDEX { smLangIndex } 586 ::= { smLangTable 1 } 588 SmLangEntry ::= SEQUENCE { 589 smLangIndex Integer32, 590 smLangLanguage OBJECT IDENTIFIER, 591 smLangVersion SnmpAdminString, 592 smLangVendor OBJECT IDENTIFIER, 593 smLangRevision SnmpAdminString, 594 smLangDescr SnmpAdminString 595 } 597 smLangIndex OBJECT-TYPE 598 SYNTAX Integer32 (1..2147483647) 599 MAX-ACCESS not-accessible 600 STATUS current 601 DESCRIPTION 602 "The locally arbitrary, but unique identifier associated 603 with this language entry. 605 The value is expected to remain constant at least from one 606 re-initialization of the entity's network management system 607 to the next re-initialization. 609 Note, the data type and the range of this object must be 610 consistent with the definition of smScriptLanguage." 611 ::= { smLangEntry 1 } 613 smLangLanguage OBJECT-TYPE 614 SYNTAX OBJECT IDENTIFIER 615 MAX-ACCESS read-only 616 STATUS current 617 DESCRIPTION 618 "The globally unique identification of the language." 619 ::= { smLangEntry 2 } 621 smLangVersion OBJECT-TYPE 622 SYNTAX SnmpAdminString (SIZE (0..32)) 623 MAX-ACCESS read-only 624 STATUS current 625 DESCRIPTION 626 "The version number of the language. The zero-length string 627 shall be used if the language does not have a version number. 629 It is suggested that the version number consist of one or 630 more decimal numbers separated by dots, where the first 631 number is called the major version number." 632 ::= { smLangEntry 3 } 634 smLangVendor OBJECT-TYPE 635 SYNTAX OBJECT IDENTIFIER 636 MAX-ACCESS read-only 637 STATUS current 638 DESCRIPTION 639 "An object identifer which identifies the vendor who 640 provides the implementation of the language. This object 641 identifer SHALL point to the object identifier directly 642 below the enterprise object identifier {1 3 6 1 4 1} 643 allocated for the vendor. The value must be the object 644 identifier {0 0} if the vendor is not known." 645 ::= { smLangEntry 4 } 647 smLangRevision OBJECT-TYPE 648 SYNTAX SnmpAdminString (SIZE (0..32)) 649 MAX-ACCESS read-only 650 STATUS current 651 DESCRIPTION 652 "The version number of the language implementation. 654 The value of this object must be an empty string if 655 version number of the implementation is unknown. 657 It is suggested that the value consist of one or more 658 decimal numbers separated by dots, where the first 659 number is called the major version number." 660 ::= { smLangEntry 5 } 662 smLangDescr OBJECT-TYPE 663 SYNTAX SnmpAdminString 664 MAX-ACCESS read-only 665 STATUS current 666 DESCRIPTION 667 "A textual description of the language." 668 ::= { smLangEntry 6 } 670 smExtsnTable OBJECT-TYPE 671 SYNTAX SEQUENCE OF SmExtsnEntry 672 MAX-ACCESS not-accessible 673 STATUS current 674 DESCRIPTION 675 "This table lists supported language extensions." 676 ::= { smObjects 2 } 678 smExtsnEntry OBJECT-TYPE 679 SYNTAX SmExtsnEntry 680 MAX-ACCESS not-accessible 681 STATUS current 682 DESCRIPTION 683 "An entry describing a particular language extension." 684 INDEX { smLangIndex, smExtsnIndex } 685 ::= { smExtsnTable 1 } 687 SmExtsnEntry ::= SEQUENCE { 688 smExtsnIndex Integer32, 689 smExtsnExtension OBJECT IDENTIFIER, 690 smExtsnVersion SnmpAdminString, 691 smExtsnVendor OBJECT IDENTIFIER, 692 smExtsnRevision SnmpAdminString, 693 smExtsnDescr SnmpAdminString 694 } 696 smExtsnIndex OBJECT-TYPE 697 SYNTAX Integer32 (1..2147483647) 698 MAX-ACCESS not-accessible 699 STATUS current 700 DESCRIPTION 701 "The locally arbitrary, but unique identifier associated 702 with this language extension entry. 704 The value is expected to remain constant at least from one 705 re-initialization of the entity's network management system 706 to the next re-initialization." 707 ::= { smExtsnEntry 1} 709 smExtsnExtension OBJECT-TYPE 710 SYNTAX OBJECT IDENTIFIER 711 MAX-ACCESS read-only 712 STATUS current 713 DESCRIPTION 714 "The globally unique identification of the language 715 extension." 716 ::= { smExtsnEntry 2 } 718 smExtsnVersion OBJECT-TYPE 719 SYNTAX SnmpAdminString (SIZE (0..32)) 720 MAX-ACCESS read-only 721 STATUS current 722 DESCRIPTION 723 "The version number of the language extension. 725 It is suggested that the version number consist of one or 726 more decimal numbers separated by dots, where the first 727 number is called the major version number." 728 ::= { smExtsnEntry 3 } 730 smExtsnVendor OBJECT-TYPE 731 SYNTAX OBJECT IDENTIFIER 732 MAX-ACCESS read-only 733 STATUS current 734 DESCRIPTION 735 "An object identifer which identifies the vendor who 736 provides the implementation of the extension. The 737 object identifer value should point to the OID node 738 directly below the enterprise OID {1 3 6 1 4 1} 739 allocated for the vendor. The value must by the object 740 identifier {0 0} if the vendor is not known." 741 ::= { smExtsnEntry 4 } 743 smExtsnRevision OBJECT-TYPE 744 SYNTAX SnmpAdminString (SIZE (0..32)) 745 MAX-ACCESS read-only 746 STATUS current 747 DESCRIPTION 748 "The version number of the extension implementation. 749 The value of this object must be an empty string if 750 version number of the implementation is unknown. 752 It is suggested that the value consist of one or more 753 decimal numbers separated by dots, where the first 754 number is called the major version number." 755 ::= { smExtsnEntry 5 } 757 smExtsnDescr OBJECT-TYPE 758 SYNTAX SnmpAdminString 759 MAX-ACCESS read-only 760 STATUS current 761 DESCRIPTION 762 "A textual description of the language extension." 763 ::= { smExtsnEntry 6 } 765 -- 766 -- Scripts known by the Script MIB implementation. 767 -- 768 -- This group defines a table which lists all known scripts. 769 -- Scripts can be added and removed through manipulation of the 770 -- smScriptTable. 771 -- 773 smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 } 775 smScriptTable OBJECT-TYPE 776 SYNTAX SEQUENCE OF SmScriptEntry 777 MAX-ACCESS not-accessible 778 STATUS current 779 DESCRIPTION 780 "This table lists and describes locally known scripts." 781 ::= { smScriptObjects 1 } 783 smScriptEntry OBJECT-TYPE 784 SYNTAX SmScriptEntry 785 MAX-ACCESS not-accessible 786 STATUS current 787 DESCRIPTION 788 "An entry describing a particular script. Every script that 789 is stored in non-volatile memory is required to appear in 790 this script table." 791 INDEX { smScriptOwner, smScriptName } 792 ::= { smScriptTable 1 } 794 SmScriptEntry ::= SEQUENCE { 795 smScriptOwner SnmpAdminString, 796 smScriptName SnmpAdminString, 797 smScriptDescr SnmpAdminString, 798 smScriptLanguage Integer32, 799 smScriptSource DisplayString, 800 smScriptAdminStatus INTEGER, 801 smScriptOperStatus INTEGER, 802 smScriptStorageType StorageType, 803 smScriptRowStatus RowStatus 804 } 806 smScriptOwner OBJECT-TYPE 807 SYNTAX SnmpAdminString (SIZE (0..32)) 808 MAX-ACCESS not-accessible 809 STATUS current 810 DESCRIPTION 811 "The manager who owns this row in the smScriptTable." 812 ::= { smScriptEntry 1 } 814 smScriptName OBJECT-TYPE 815 SYNTAX SnmpAdminString 816 MAX-ACCESS not-accessible 817 STATUS current 818 DESCRIPTION 819 "The locally-unique, administratively assigned name for this 820 script. This object allows an smScriptOwner to have multiple 821 entries in the smScriptTable. 823 This value of this object may be used to derive the name 824 (e.g. a file name) which is used by the Script MIB 825 implementation to access the script in non-volatile 826 storage. The details of this mapping are implementation 827 specific. However, the mapping needs to ensure that scripts 828 created by different owners with the same script name do not 829 map to the same name in non-volatile storage." 830 ::= { smScriptEntry 2 } 832 smScriptDescr OBJECT-TYPE 833 SYNTAX SnmpAdminString 834 MAX-ACCESS read-create 835 STATUS current 836 DESCRIPTION 837 "A description of the purpose of the script." 838 ::= { smScriptEntry 3 } 840 smScriptLanguage OBJECT-TYPE 841 SYNTAX Integer32 (0..2147483647) 842 MAX-ACCESS read-create 843 STATUS current 844 DESCRIPTION 845 "The value of this object type identifies an entry in the 846 smLangTable which is used to execute this script. 847 The special value 0 may be used by hard-wired scripts 848 that can not be modified and that are executed by 849 internal functions. 851 Note, the data type and the range of this object must be 852 consistent with the definition of smLangIndex." 853 ::= { smScriptEntry 4 } 855 smScriptSource OBJECT-TYPE 856 SYNTAX DisplayString 857 MAX-ACCESS read-create 858 STATUS current 859 DESCRIPTION 860 "This object either contains a reference to the script 861 source or an empty string. A reference must be given 862 in the form of a Uniform Resource Locator (URL) as 863 defined in RFC 2396. The allowed character sets and the 864 encoding rules defined in RFC 2396 section 2 apply. 866 When the smScriptAdminStatus object is set to `enabled', 867 the Script MIB implementation will `pull' the script 868 source from the URL contained in this object if the URL 869 is not empty. 871 An empty URL indicates that the script source is loaded 872 from local storage. The script is read from the smCodeTable 873 if the value of smScriptStorageType is volatile. Otherwise, 874 the script is read from non-volatile storage. 876 Note: This document does not mandate implementation of any 877 specific URL scheme. A attempt to load a script from a 878 nonsupported URL scheme will cause the smScriptOperStatus 879 to report an `unknownProtocol' error. 881 Set requests to change this object are invalid if the 882 value of smScriptOperStatus is `enabled', `editing', 883 `retrieving' or `compiling' and will result in an 884 inconsistentValue error." 885 DEFVAL { ''H } 886 ::= { smScriptEntry 5 } 888 smScriptAdminStatus OBJECT-TYPE 889 SYNTAX INTEGER { 890 enabled(1), 891 disabled(2), 892 editing(3) 893 } 894 MAX-ACCESS read-create 895 STATUS current 896 DESCRIPTION 897 "The value of this object indicates the desired status of 898 the script. See the definition of smScriptOperStatus for 899 a description of the values. 901 When the smScriptAdminStatus object is set to `enabled' and 902 the smScriptOperStatus is `disabled' or one of the error 903 states, the Script MIB implementation will `pull' the script 904 source from the URL contained in the smScriptSource object 905 if the URL is not empty." 906 DEFVAL { disabled } 907 ::= { smScriptEntry 6 } 909 smScriptOperStatus OBJECT-TYPE 910 SYNTAX INTEGER { 911 enabled(1), 912 disabled(2), 913 editing(3), 914 retrieving(4), 915 compiling(5), 916 noSuchScript(6), 917 accessDenied(7), 918 wrongLanguage(8), 919 wrongVersion(9), 920 compilationFailed(10), 921 noResourcesLeft(11), 922 unknownProtocol(12), 923 protocolFailure(13), 924 genericError(14) 925 } 926 MAX-ACCESS read-only 927 STATUS current 928 DESCRIPTION 929 "The actual status of the script in the runtime system. The 930 value of this object is only meaningful when the value of the 931 smScriptRowStatus object is `active'. 933 The smScriptOperStatus object may have the following values: 935 - `enabled' indicates that the script is available and can 936 be started by a launch table entry. 938 - `disabled' indicates that the script can not be used. 940 - `editing' indicates that the script can be modified in the 941 smCodeTable. 943 - `retrieving' indicates that the script is currently being 944 loaded from non-volatile storage or a remote system. 946 - `compiling' indicates that the script is currently being 947 compiled by the runtime system. 949 - `noSuchScript' indicates that the script does not exist 950 at the smScriptSource. 952 - `accessDenied' indicates that the script can not be loaded 953 from the smScriptSource due to a lack of permissions. 955 - `wrongLanguage' indicates that the script can not be loaded 956 from the smScriptSource because of a language mismatch. 958 - `wrongVersion' indicates that the script can not be loaded 959 from the smScriptSource because of a language version 960 mismatch. 962 - `compilationFailed' indicates that the compilation failed. 964 - `noResourcesLeft' indicates that the runtime system does 965 not have enough resources to load the script. 967 - `unknownProtocol' indicates that the script could not be 968 loaded from the smScriptSource because the requested 969 protocol is not supported. 971 - `protocolFailure' indicates that the script could not be 972 loaded from the smScriptSource because of a protocol 973 failure. 975 - `genericError' indicates that the script could not be 976 loaded due to an error condition not listed above. 978 The `retrieving' and `compiling' states are transient states 979 which will either lead to one of the error states or the 980 `enabled' state. The `disabled' and `editing' states are 981 administrative states which are only reached by explicit 982 management operations. 984 All launch table entries that refer to this script table 985 entry shall have an smLaunchOperStatus value of `disabled' 986 when the value of this object is not `enabled'." 987 DEFVAL { disabled } 988 ::= { smScriptEntry 7 } 990 smScriptStorageType OBJECT-TYPE 991 SYNTAX StorageType 992 MAX-ACCESS read-create 993 STATUS current 994 DESCRIPTION 995 "This object defines whether this row and the script 996 controlled by this row are kept in volatile storage and 997 lost upon reboot or if this row is backed up by 998 non-volatile or permanent storage. 1000 The script controlled by this row is written into local 1001 non-volatile storage if the following condition becomes 1002 true: 1004 (a) the URL contained in the smScriptSource object is empty 1005 and 1006 (b) the smScriptStorageType is `nonVolatile' 1007 and 1008 (c) the smScriptOperStatus is `enabled' 1010 Setting this object to `volatile' removes a script from 1011 non-volatile storage if the script controlled by this row 1012 has been in non-volatile storage before. Attempts to set 1013 this object to permanent will always fail with an 1014 inconsistentValue error. 1016 The value of smScriptStorageType is only meaningful if the 1017 value of the corresponding RowStatus object is `active'. 1019 If smScriptStorageType has the value permanent(4), then all 1020 objects whose MAX-ACCESS value is read-create must be 1021 writable, with the exception of the smScriptStorageType and 1022 smScriptRowStatus objects, which shall be read-only." 1023 DEFVAL { volatile } 1024 ::= { smScriptEntry 8 } 1026 smScriptRowStatus OBJECT-TYPE 1027 SYNTAX RowStatus 1028 MAX-ACCESS read-create 1029 STATUS current 1030 DESCRIPTION 1031 "A control that allows entries to be added and removed from 1032 this table. 1034 Changing the smScriptRowStatus from `active' to `notInService' 1035 will remove the associated script from the runtime system. 1036 The value of smScriptOperStatus will be reset to `disabled'. 1038 Deleting conceptual rows from this table includes the 1039 deletion of all resources associated with this row. This 1040 implies that a script stored in non-volatile storage is 1041 removed from non-volatile storage. 1043 An entry may not exist in the `active' state unless all 1044 required objects in the entry have appropriate values. Rows 1045 that are not complete or not in service are not known by the 1046 script runtime system. 1048 Attempts to `destroy' a row or to set a row `notInService' 1049 while the script is executing will result in an 1050 inconsistentValue error. 1052 Attempts to `destroy' a row or to set a row `notInService' 1053 where the value of the smScriptStorageType object is 1054 `permanent' or `readOnly' will result in an 1055 inconsistentValue error." 1056 ::= { smScriptEntry 9 } 1058 -- 1059 -- Access to script code via SNMP 1060 -- 1061 -- The smCodeTable allows script code to be read and modified 1062 -- via SNMP. 1063 -- 1065 smCodeTable OBJECT-TYPE 1066 SYNTAX SEQUENCE OF SmCodeEntry 1067 MAX-ACCESS not-accessible 1068 STATUS current 1069 DESCRIPTION 1070 "This table contains the script code for scripts that are 1071 written via SNMP write operations." 1072 ::= { smScriptObjects 2 } 1074 smCodeEntry OBJECT-TYPE 1075 SYNTAX SmCodeEntry 1076 MAX-ACCESS not-accessible 1077 STATUS current 1078 DESCRIPTION 1079 "An entry describing a particular fragment of a script." 1080 INDEX { smScriptOwner, smScriptName, smCodeIndex } 1081 ::= { smCodeTable 1 } 1083 SmCodeEntry ::= SEQUENCE { 1084 smCodeIndex Unsigned32, 1085 smCodeText OCTET STRING, 1086 smCodeRowStatus RowStatus 1087 } 1089 smCodeIndex OBJECT-TYPE 1090 SYNTAX Unsigned32 (1..4294967295) 1091 MAX-ACCESS not-accessible 1092 STATUS current 1093 DESCRIPTION 1094 "The index value identifying this code fragment." 1095 ::= { smCodeEntry 1 } 1097 smCodeText OBJECT-TYPE 1098 SYNTAX OCTET STRING (SIZE (1..1024)) 1099 MAX-ACCESS read-create 1100 STATUS current 1101 DESCRIPTION 1102 "The code that makes up a fragment of a script. The format 1103 of this code fragment depends on the script language which 1104 is identified by the associated smScriptLanguage object." 1105 ::= { smCodeEntry 2 } 1107 smCodeRowStatus OBJECT-TYPE 1108 SYNTAX RowStatus 1109 MAX-ACCESS read-create 1110 STATUS current 1111 DESCRIPTION 1112 "A control that allows entries to be added and removed from 1113 this table." 1114 ::= { smCodeEntry 3 } 1116 -- 1117 -- Script execution. 1118 -- 1119 -- This group defines tables which allow script execution to be 1120 -- initiated, suspended, resumed, and terminated. It also provides 1121 -- a mechanism for keeping a history of recent script executions 1122 -- and their results. 1123 -- 1125 smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 } 1127 smLaunchTable OBJECT-TYPE 1128 SYNTAX SEQUENCE OF SmLaunchEntry 1129 MAX-ACCESS not-accessible 1130 STATUS current 1131 DESCRIPTION 1132 "This table lists and describes scripts that are ready 1133 to be executed together with their parameters." 1134 ::= { smRunObjects 1 } 1136 smLaunchEntry OBJECT-TYPE 1137 SYNTAX SmLaunchEntry 1138 MAX-ACCESS not-accessible 1139 STATUS current 1140 DESCRIPTION 1141 "An entry describing a particular executable script." 1142 INDEX { smLaunchOwner, smLaunchName } 1143 ::= { smLaunchTable 1 } 1145 SmLaunchEntry ::= SEQUENCE { 1146 smLaunchOwner SnmpAdminString, 1147 smLaunchName SnmpAdminString, 1148 smLaunchScriptOwner SnmpAdminString, 1149 smLaunchScriptName SnmpAdminString, 1150 smLaunchArgument OCTET STRING, 1151 smLaunchMaxRunning Unsigned32, 1152 smLaunchMaxCompleted Unsigned32, 1153 smLaunchLifeTime TimeInterval, 1154 smLaunchExpireTime TimeInterval, 1155 smLaunchStart Integer32, 1156 smLaunchControl INTEGER, 1157 smLaunchAdminStatus INTEGER, 1158 smLaunchOperStatus INTEGER, 1159 smLaunchRunIndexNext Integer32, 1160 smLaunchStorageType StorageType, 1161 smLaunchRowStatus RowStatus 1162 } 1164 smLaunchOwner OBJECT-TYPE 1165 SYNTAX SnmpAdminString (SIZE (0..32)) 1166 MAX-ACCESS not-accessible 1167 STATUS current 1168 DESCRIPTION 1169 "The manager who owns this row in the smLaunchTable. Every 1170 instance of a running script started from a particular entry 1171 in the smLaunchTable (i.e. entries in the smRunTable) will be 1172 owned by the same smLaunchOwner used to index the entry in 1173 the smLaunchTable. This owner is not necessarily the same as 1174 the owner of the script itself (smLaunchScriptOwner)." 1175 ::= { smLaunchEntry 1 } 1177 smLaunchName OBJECT-TYPE 1178 SYNTAX SnmpAdminString (SIZE (1..32)) 1179 MAX-ACCESS not-accessible 1180 STATUS current 1181 DESCRIPTION 1182 "The locally-unique, administratively assigned name for this 1183 launch table entry. This object allows an smLaunchOwner to 1184 have multiple entries in the smLaunchTable. The smLaunchName 1185 is an arbitrary name that must be different from any other 1186 smLaunchTable entries with the same smLaunchOwner but can be 1187 the same as other entries in the smLaunchTable with different 1188 smLaunchOwner values. Note that the value of smLaunchName 1189 is not related in any way to the name of the script being 1190 launched." 1191 ::= { smLaunchEntry 2 } 1193 smLaunchScriptOwner OBJECT-TYPE 1194 SYNTAX SnmpAdminString (SIZE (0..32)) 1195 MAX-ACCESS read-create 1196 STATUS current 1197 DESCRIPTION 1198 "The value of this object in combination with the value of 1199 smLaunchScriptName identifies the script that can be 1200 launched from this smLaunchTable entry. Attempts to write 1201 this object will fail with an inconsistentValue error if 1202 the value of smLaunchOperStatus is `enabled'." 1203 ::= { smLaunchEntry 3 } 1205 smLaunchScriptName OBJECT-TYPE 1206 SYNTAX SnmpAdminString (SIZE (0..32)) 1207 MAX-ACCESS read-create 1208 STATUS current 1209 DESCRIPTION 1210 "The value of this object in combination with the value of 1211 the smLaunchScriptOwner identifies the script that can be 1212 launched from this smLaunchTable entry. Attempts to write 1213 this objects will fail with an inconsistentValue error if 1214 the value of smLaunchOperStatus is `enabled'." 1215 ::= { smLaunchEntry 4 } 1217 smLaunchArgument OBJECT-TYPE 1218 SYNTAX OCTET STRING 1219 MAX-ACCESS read-create 1220 STATUS current 1221 DESCRIPTION 1222 "The argument supplied to the script. When a script is 1223 invoked, the value of this object is used to initialize 1224 the smRunArgument object." 1225 DEFVAL { ''H } 1226 ::= { smLaunchEntry 5 } 1228 smLaunchMaxRunning OBJECT-TYPE 1229 SYNTAX Unsigned32 (1..4294967295) 1230 MAX-ACCESS read-create 1231 STATUS current 1232 DESCRIPTION 1233 "The maximum number of concurrently running scripts that may 1234 be invoked from this entry in the smLaunchTable. Lowering the 1235 current value of this object does not affect any scripts that 1236 are already executing." 1237 DEFVAL { 1 } 1238 ::= { smLaunchEntry 6 } 1240 smLaunchMaxCompleted OBJECT-TYPE 1241 SYNTAX Unsigned32 (1..4294967295) 1242 MAX-ACCESS read-create 1243 STATUS current 1244 DESCRIPTION 1245 "The maximum number of finished scripts invoked from this 1246 entry in the smLaunchTable allowed to be retained in the 1247 smRunTable. Whenever the value of this object is changed 1248 and whenever a script terminates, entries in the smRunTable 1249 are deleted if necessary until the number of completed 1250 scripts is smaller than the value of this object. Scripts 1251 whose smRunEndTime value indicates the oldest completion 1252 time are deleted first." 1253 DEFVAL { 1 } 1254 ::= { smLaunchEntry 7 } 1256 smLaunchLifeTime OBJECT-TYPE 1257 SYNTAX TimeInterval 1258 UNITS "centi-seconds" 1259 MAX-ACCESS read-create 1260 STATUS current 1261 DESCRIPTION 1262 "The default maximum amount of time a script launched 1263 from this entry may run. The value of this object is used 1264 to initialize the smRunLifeTime object when a script is 1265 launched. Changing the value of an smLaunchLifeTime 1266 instance does not affect scripts previously launched from 1267 this entry." 1268 DEFVAL { 360000 } 1269 ::= { smLaunchEntry 8 } 1271 smLaunchExpireTime OBJECT-TYPE 1272 SYNTAX TimeInterval 1273 UNITS "centi-seconds" 1274 MAX-ACCESS read-create 1275 STATUS current 1276 DESCRIPTION 1277 "The default maximum amount of time information about a 1278 script launched from this entry is kept in the smRunTable 1279 after the script has completed execution. The value of 1280 this object is used to initialize the smRunExpireTime 1281 object when a script is launched. Changing the value of an 1282 smLaunchExpireTime instance does not affect scripts 1283 previously launched from this entry." 1284 DEFVAL { 360000 } 1285 ::= { smLaunchEntry 9 } 1287 smLaunchStart OBJECT-TYPE 1288 SYNTAX Integer32 (0..2147483647) 1289 MAX-ACCESS read-create 1290 STATUS current 1291 DESCRIPTION 1292 "This object is used to start the execution of scripts. 1293 When retrieved, the value will be the value of smRunIndex 1294 for the last script that started execution by manipulating 1295 this object. The value will be zero if no script started 1296 execution yet. 1298 A script is started by setting this object to an unused 1299 smRunIndex value. A new row in the smRunTable will be 1300 created which is indexed by the value supplied by the 1301 set-request in addition to the value of smLaunchOwner and 1302 smLaunchName. An unused value can be obtained by reading 1303 the smLaunchRunIndexNext object. 1305 Setting this object to the special value 0 will start 1306 the script with a self-generated smRunIndex value. The 1307 consequence is that the script invoker has no reliable 1308 way to determine the smRunIndex value for this script 1309 invocation and that the invoker has therefore no way 1310 to obtain the results from this script invocation. The 1311 special value 0 is however useful for scheduled script 1312 invocations. 1314 If this object is set, the following checks must be 1315 performed: 1317 1) The value of the smLaunchOperStatus object in this 1318 entry of the smLaunchTable must be `enabled'. 1319 2) The values of smLaunchScriptOwner and 1320 smLaunchScriptName of this row must identify an 1321 existing entry in the smScriptTable. 1322 3) The value of smScriptOperStatus of this entry must 1323 be `enabled'. 1324 4) The principal performing the set operation must have 1325 read access to the script. This must be checked by 1326 calling the isAccessAllowed abstract service interface 1327 defined in RFC 2271 on the row in the smScriptTable 1328 identified by smLaunchScriptOwner and smLaunchScriptName. 1329 The isAccessAllowed abstract service interface must be 1330 called on all columnar objects in the smScriptTable with 1331 a MAX-ACCESS value different than `not-accessible'. The 1332 test fails as soon as a call indicates that access is 1333 not allowed. 1334 5) If the value provided by the set operation is not 0, 1335 a check must be made that the value is currently not 1336 in use. Otherwise, if the value provided by the set 1337 operation is 0, a suitable unused value must be 1338 generated. 1339 6) The number of currently executing scripts invoked 1340 from this smLaunchTable entry must be less than 1341 smLaunchMaxRunning. 1343 Attempts to start a script will fail with an 1344 inconsistentValue error if one of the checks described 1345 above fails. 1347 Otherwise, if all checks have been passed, a new entry 1348 in the smRunTable will be created indexed by smLaunchOwner, 1349 smLaunchName and the new value for smRunIndex. The value 1350 of smLaunchArgument will be copied into smRunArgument, 1351 the value of smLaunchLifeTime will be copied to 1352 smRunLifeTime, and the value of smLaunchExpireTime 1353 will be copied to smRunExpireTime. 1355 The smRunStartTime will be set to the current time and 1356 the smRunState will be set to `initializing' before the 1357 script execution is initiated in the appropriate runtime 1358 system. 1360 Note, the data type and the range of this object must 1361 be consistent with the smRunIndex object. Since this 1362 object might be written from the scheduling MIB, the 1363 data type Integer32 rather than Unsigned32 is used." 1364 DEFVAL { 0 } 1365 ::= { smLaunchEntry 10 } 1367 smLaunchControl OBJECT-TYPE 1368 SYNTAX INTEGER { 1369 abort(1), 1370 suspend(2), 1371 resume(3), 1372 nop(4) 1373 } 1374 MAX-ACCESS read-create 1375 STATUS current 1376 DESCRIPTION 1377 "This object is used to request a state change for all 1378 running scripts in the smRunTable that were started from 1379 this row in the smLaunchTable. 1381 Setting this object to abort(1), suspend(2) or resume(3) 1382 will set the smRunControl object of all applicable rows 1383 in the smRunTable to abort(1), suspend(2) or resume(3) 1384 respectively. The phrase `applicable rows' means the set of 1385 rows which were created from this entry in the smLaunchTable 1386 and whose value of smRunState allows the corresponding 1387 state change as described in the definition of the 1388 smRunControl object. Setting this object to nop(4) has no 1389 effect." 1390 DEFVAL { nop } 1391 ::= { smLaunchEntry 11 } 1393 smLaunchAdminStatus OBJECT-TYPE 1394 SYNTAX INTEGER { 1395 enabled(1), 1396 disabled(2) 1397 } 1398 MAX-ACCESS read-create 1399 STATUS current 1400 DESCRIPTION 1401 "The value of this object indicates the desired status of 1402 this launch table entry." 1403 DEFVAL { disabled } 1404 ::= { smLaunchEntry 12 } 1406 smLaunchOperStatus OBJECT-TYPE 1407 SYNTAX INTEGER { 1408 enabled(1), 1409 disabled(2) 1410 } 1411 MAX-ACCESS read-only 1412 STATUS current 1413 DESCRIPTION 1414 "The value of this object indicates the actual status of 1415 this launch table entry. An `enabled' launch table 1416 entry can be used to start scripts while a `disabled' 1417 launch table entry will refuse any attempts to start 1418 scripts. The value `enabled' requires that the 1419 smLaunchRowStatus object is active. The value 1420 `disabled' requires that there are no entries in the 1421 smRunTable associated with this smLaunchTable entry." 1422 DEFVAL { disabled } 1423 ::= { smLaunchEntry 13 } 1425 smLaunchRunIndexNext OBJECT-TYPE 1426 SYNTAX Integer32 (1..2147483647) 1427 MAX-ACCESS read-only 1428 STATUS current 1429 DESCRIPTION 1430 "This variable is used for creating rows in the smRunTable. 1431 The value of this variable is a currently unused value 1432 for smRunIndex, which can be written into the smLaunchStart 1433 object associated with this row to launch a script. 1435 The value returned when reading this variable must be unique 1436 for the smLaunchOwner and smLauchName associated with this 1437 row. Subsequent attempts to read this variable must return 1438 different values. 1440 This variable will return the special value 0 if no new rows 1441 can be created. 1443 Note, the data type and the range of this object must be 1444 consistent with the definition of smRunIndex." 1445 ::= { smLaunchEntry 14 } 1447 smLaunchStorageType OBJECT-TYPE 1448 SYNTAX StorageType 1449 MAX-ACCESS read-create 1450 STATUS current 1451 DESCRIPTION 1452 "This object defines if this row is kept in volatile storage 1453 and lost upon reboot or if this row is backed up by stable 1454 storage. 1456 The value of smLaunchStorageType is only meaningful if the 1457 value of the corresponding RowStatus object is active. 1459 If smLaunchStorageType has the value permanent(4), then all 1460 objects whose MAX-ACCESS value is read-create must be 1461 writable, with the exception of the smLaunchStorageType and 1462 smLaunchRowStatus objects, which shall be read-only." 1463 DEFVAL { volatile } 1464 ::= { smLaunchEntry 15 } 1466 smLaunchRowStatus OBJECT-TYPE 1467 SYNTAX RowStatus 1468 MAX-ACCESS read-create 1469 STATUS current 1470 DESCRIPTION 1471 "A control that allows entries to be added and removed from 1472 this table. 1474 Attempts to `destroy' a row or to set a row `notInService' 1475 while scripts started from this launch table entry are 1476 running will result in an inconsistentValue error. 1478 Attempts to `destroy' a row or to set a row `notInService' 1479 where the value of the smLaunchStorageType object is 1480 `permanent' or `readOnly' will result in an 1481 inconsistentValue error." 1482 ::= { smLaunchEntry 16 } 1484 smRunTable OBJECT-TYPE 1485 SYNTAX SEQUENCE OF SmRunEntry 1486 MAX-ACCESS not-accessible 1487 STATUS current 1488 DESCRIPTION 1489 "This table lists and describes scripts that are currently 1490 running or have been running in the past." 1491 ::= { smRunObjects 2 } 1493 smRunEntry OBJECT-TYPE 1494 SYNTAX SmRunEntry 1495 MAX-ACCESS not-accessible 1496 STATUS current 1497 DESCRIPTION 1498 "An entry describing a particular running or finished 1499 script." 1500 INDEX { smLaunchOwner, smLaunchName, smRunIndex } 1501 ::= { smRunTable 1 } 1503 SmRunEntry ::= SEQUENCE { 1504 smRunIndex Integer32, 1505 smRunArgument OCTET STRING, 1506 smRunStartTime DateAndTime, 1507 smRunEndTime DateAndTime, 1508 smRunLifeTime TimeInterval, 1509 smRunExpireTime TimeInterval, 1510 smRunExitCode INTEGER, 1511 smRunResult OCTET STRING, 1512 smRunControl INTEGER, 1513 smRunState INTEGER, 1514 smRunError SnmpAdminString 1515 } 1517 smRunIndex OBJECT-TYPE 1518 SYNTAX Integer32 (1..2147483647) 1519 MAX-ACCESS not-accessible 1520 STATUS current 1521 DESCRIPTION 1522 "The locally arbitrary, but unique identifier associated 1523 with this running or finished script. This value must be 1524 unique for all rows in the smRunTable with the same 1525 smLaunchOwner and smLaunchName. 1527 Note, the data type and the range of this object must be 1528 consistent with the definition of smLaunchRunIndexNext 1529 and smLaunchStart." 1530 ::= { smRunEntry 1 } 1532 smRunArgument OBJECT-TYPE 1533 SYNTAX OCTET STRING 1534 MAX-ACCESS read-only 1535 STATUS current 1536 DESCRIPTION 1537 "The argument supplied to the script when it started." 1538 DEFVAL { ''H } 1539 ::= { smRunEntry 2 } 1541 smRunStartTime OBJECT-TYPE 1542 SYNTAX DateAndTime 1543 MAX-ACCESS read-only 1544 STATUS current 1545 DESCRIPTION 1546 "The date and time when the execution started. The value 1547 '0000000000000000'H is returned if the script has not 1548 started yet." 1549 DEFVAL { '0000000000000000'H } 1550 ::= { smRunEntry 3 } 1552 smRunEndTime OBJECT-TYPE 1553 SYNTAX DateAndTime 1554 MAX-ACCESS read-only 1555 STATUS current 1556 DESCRIPTION 1557 "The date and time when the execution terminated. The value 1558 '0000000000000000'H is returned if the script has not 1559 terminated yet." 1560 DEFVAL { '0000000000000000'H } 1561 ::= { smRunEntry 4 } 1563 smRunLifeTime OBJECT-TYPE 1564 SYNTAX TimeInterval 1565 UNITS "centi-seconds" 1566 MAX-ACCESS read-write 1567 STATUS current 1568 DESCRIPTION 1569 "This object specifies how long the script can execute. 1570 This object returns the remaining time that the script 1571 may run. The object is initialized with the value of the 1572 associated smLaunchLifeTime object and ticks backwards. 1573 The script is aborted immediately when the value reaches 0. 1575 The value of this object may be set in order to increase or 1576 reduce the remaining time that the script may run. Setting 1577 this value to 0 will abort script execution immediately, 1578 and, if the value of smRunExpireTime is also 0, will remove 1579 this entry from the smRunTable once it has terminated. 1581 The value of smRunLifeTime reflects the real-time execution 1582 time as seen by the outside world. The value of this object 1583 will always be 0 for a script that finished execution, that 1584 is smRunState has the value `terminated'. 1586 The value of smRunLifeTime does not change while a script 1587 is suspended, that is smRunState has the value `suspended'. 1588 Note, this does not affect set operations. It is legal to 1589 modify smRunLifeTime via set operations while a script is 1590 suspended." 1591 ::= { smRunEntry 5 } 1593 smRunExpireTime OBJECT-TYPE 1594 SYNTAX TimeInterval 1595 UNITS "centi-seconds" 1596 MAX-ACCESS read-write 1597 STATUS current 1598 DESCRIPTION 1599 "This value specifies how long this row can exist in the 1600 smRunTable after the script has terminated. This object 1601 returns the remaining time that the row may exist before it 1602 is aged out. The object is initialized with the value of the 1603 associated smLaunchExpireTime object and ticks backwards. The 1604 entry in the smRunTable is destroyed when the value reaches 0 1605 and the smRunState has the value `terminated'. 1607 The value of this object may be set in order to increase or 1608 reduce the remaining time that the row may exist. Setting 1609 the value to 0 will destroy this entry as soon as the 1610 smRunState has the value `terminated'." 1611 ::= { smRunEntry 6 } 1613 smRunExitCode OBJECT-TYPE 1614 SYNTAX INTEGER { 1615 noError(1), 1616 halted(2), 1617 lifeTimeExceeded(3), 1618 noResourcesLeft(4), 1619 languageError(5), 1620 runtimeError(6), 1621 invalidArgument(7), 1622 securityViolation(8), 1623 genericError(9) 1624 } 1625 MAX-ACCESS read-only 1626 STATUS current 1627 DESCRIPTION 1628 "The value of this object indicates the reason why a 1629 script finished execution. The smRunExitCode code may have 1630 one of the following values: 1632 - `noError', which indicates that the script completed 1633 successfully without errors; 1635 - `halted', which indicates that the script was halted 1636 by a request from an authorized manager; 1638 - `lifeTimeExceeded', which indicates that the script 1639 exited because a time limit was exceeded; 1641 - `noResourcesLeft', which indicates that the script 1642 exited because it ran out of resources (e.g. memory); 1644 - `languageError', which indicates that the script exited 1645 because of a language error (e.g. a syntax error in an 1646 interpreted language); 1648 - `runtimeError', which indicates that the script exited 1649 due to a runtime error (e.g. a division by zero); 1651 - `invalidArgument', which indicates that the script could 1652 not be run because of invalid script arguments; 1654 - `securityViolation', which indicates that the script 1655 exited due to a security violation; 1657 - `genericError', which indicates that the script exited 1658 for an unspecified reason. 1660 If the script has not yet begun running, or is currently 1661 running, the value will be `noError'." 1662 DEFVAL { noError } 1663 ::= { smRunEntry 7 } 1665 smRunResult OBJECT-TYPE 1666 SYNTAX OCTET STRING 1667 MAX-ACCESS read-only 1668 STATUS current 1669 DESCRIPTION 1670 "The result value produced by the running script. Note that 1671 the result may change while the script is executing." 1672 DEFVAL { ''H } 1673 ::= { smRunEntry 8 } 1675 smRunControl OBJECT-TYPE 1676 SYNTAX INTEGER { 1677 abort(1), 1678 suspend(2), 1679 resume(3), 1680 nop(4) 1681 } 1682 MAX-ACCESS read-write 1683 STATUS current 1684 DESCRIPTION 1685 "The value of this object indicates the desired status of the 1686 script execution defined by this row. 1688 Setting this object to `abort' will abort execution if the 1689 value of smRunState is `initializing', `executing', 1690 `suspending', `suspended' or `resuming'. Setting this object 1691 to `abort' when the value of smRunState is `aborting' or 1692 `terminated' will result in an inconsistentValue error. 1694 Setting this object to `suspend' will suspend execution 1695 if the value of smRunState is `executing'. Setting this 1696 object to `suspend' will cause an inconsistentValue error 1697 if the value of smRunState is not `executing'. 1699 Setting this object to `resume' will resume execution 1700 if the value of smRunState is `suspending' or 1701 `suspended'. Setting this object to `resume' will cause an 1702 inconsistentValue error if the value of smRunState is 1703 not `suspending' or `suspended'. 1705 Setting this object to nop(4) has no effect." 1706 DEFVAL { nop } 1707 ::= { smRunEntry 9 } 1709 smRunState OBJECT-TYPE 1710 SYNTAX INTEGER { 1711 initializing(1), 1712 executing(2), 1713 suspending(3), 1714 suspended(4), 1715 resuming(5), 1716 aborting(6), 1717 terminated(7) 1718 } 1719 MAX-ACCESS read-only 1720 STATUS current 1721 DESCRIPTION 1722 "The value of this object indicates the script's execution 1723 status. If the script has been invoked but has not yet 1724 begun execution, the value will be `initializing'. If the 1725 script is running, the value will be `executing'. A script 1726 which received a request to suspend execution but which 1727 did not actually suspend execution will be `suspending'. 1728 A script which has suspended execution will be `suspended'. 1729 A script which received a request to resume execution but 1730 which is not yet running is `resuming'. The resuming state 1731 will finally lead to the `executing' state. A script which 1732 received a request to abort execution but which is still 1733 running is `aborting'. A script which stopped execution 1734 is `terminated'." 1736 ::= { smRunEntry 10 } 1738 smRunError OBJECT-TYPE 1739 SYNTAX SnmpAdminString 1740 MAX-ACCESS read-only 1741 STATUS current 1742 DESCRIPTION 1743 "This contains a descriptive error message if the script 1744 terminates in an abnormally. An implementation must store a 1745 descriptive error message in this object if the script exits 1746 with the smRunExitCode `genericError'. 1748 The value of this object is the zero-length string as long 1749 as the smRunExitCode has the value `noError'" 1750 DEFVAL { ''H } 1751 ::= { smRunEntry 11 } 1753 -- 1754 -- Notifications. The definition of smTraps makes notification 1755 -- registrations reversible (see section 8.3 in RFC 1902). 1756 -- 1758 smTraps OBJECT IDENTIFIER ::= { smNotifications 0 } 1760 smScriptAbort NOTIFICATION-TYPE 1761 OBJECTS { smRunExitCode, smRunEndTime, smRunError } 1762 STATUS current 1763 DESCRIPTION 1764 "This notification is generated whenever a running script 1765 terminates with an smRunExitCode unequal to `noError'." 1766 ::= { smTraps 1 } 1768 smScriptResult NOTIFICATION-TYPE 1769 OBJECTS { smRunResult } 1770 STATUS current 1771 DESCRIPTION 1772 "This notification can be used by scripts to notify other 1773 management applications about script results. It can be 1774 used to notify managers about a script result. 1776 This notification is not automatically generated by the 1777 script MIB implementation. It is the responsibility of 1778 the executing script to emit this notification where it 1779 is appropriate to do so." 1780 ::= { smTraps 2 } 1782 -- conformance information 1783 smCompliances OBJECT IDENTIFIER ::= { smConformance 1 } 1784 smGroups OBJECT IDENTIFIER ::= { smConformance 2 } 1786 -- compliance statements 1788 smCompliance MODULE-COMPLIANCE 1789 STATUS current 1790 DESCRIPTION 1791 "The compliance statement for SNMP entities which implement 1792 the script MIB." 1793 MODULE -- this module 1794 MANDATORY-GROUPS { 1795 smLanguageGroup, smScriptGroup, smLaunchGroup, smRunGroup 1796 } 1797 GROUP smCodeGroup 1798 DESCRIPTION 1799 "The smCodeGroup is mandatory only for those implementations 1800 that support the downloading of scripts via SNMP." 1801 OBJECT smScriptSource 1802 MIN-ACCESS read-only 1803 DESCRIPTION 1804 "The smScriptSource object is read-only for implementations 1805 that are not able to download script code from a URL." 1806 OBJECT smLaunchArgument 1807 DESCRIPTION 1808 "A compliant implementation has to support a minimum size 1809 for smLaunchArgument of 255 octets." 1810 OBJECT smRunArgument 1811 DESCRIPTION 1812 "A compliant implementation has to support a minimum size 1813 for smRunArgument of 255 octets." 1814 OBJECT smRunResult 1815 DESCRIPTION 1816 "A compliant implementation has to support a minimum size 1817 for smRunResult of 255 octets." 1818 OBJECT smRunState 1819 DESCRIPTION 1820 "A compliant implementation does not have to support script 1821 suspension and the smRunState `suspended'. Such an 1822 implementation will change into the `suspending' state 1823 when the smRunControl is set to `suspend' and remain in this 1824 state until smRunControl is set to `resume' or the script 1825 terminates." 1826 ::= { smCompliances 1 } 1828 smLanguageGroup OBJECT-GROUP 1829 OBJECTS { 1830 smLangLanguage, 1831 smLangVersion, 1832 smLangVendor, 1833 smLangRevision, 1834 smLangDescr, 1835 smExtsnExtension, 1836 smExtsnVersion, 1837 smExtsnVendor, 1838 smExtsnRevision, 1839 smExtsnDescr 1840 } 1841 STATUS current 1842 DESCRIPTION 1843 "A collection of objects providing information about the 1844 capabilities of the scripting engine." 1845 ::= { smGroups 1 } 1847 smScriptGroup OBJECT-GROUP 1848 OBJECTS { 1849 smScriptDescr, 1850 smScriptLanguage, 1851 smScriptSource, 1852 smScriptAdminStatus, 1853 smScriptOperStatus, 1854 smScriptStorageType, 1855 smScriptRowStatus 1856 } 1857 STATUS current 1858 DESCRIPTION 1859 "A collection of objects providing information about 1860 installed scripts." 1861 ::= { smGroups 2 } 1863 smCodeGroup OBJECT-GROUP 1864 OBJECTS { 1865 smCodeText, 1866 smCodeRowStatus 1867 } 1868 STATUS current 1869 DESCRIPTION 1870 "A collection of objects used to download or modify scripts 1871 by using SNMP set requests." 1872 ::= { smGroups 3 } 1874 smLaunchGroup OBJECT-GROUP 1875 OBJECTS { 1876 smLaunchScriptOwner, 1877 smLaunchScriptName, 1878 smLaunchArgument, 1879 smLaunchMaxRunning, 1880 smLaunchMaxCompleted, 1881 smLaunchLifeTime, 1882 smLaunchExpireTime, 1883 smLaunchStart, 1884 smLaunchControl, 1885 smLaunchAdminStatus, 1886 smLaunchOperStatus, 1887 smLaunchRunIndexNext, 1888 smLaunchStorageType, 1889 smLaunchRowStatus 1890 } 1891 STATUS current 1892 DESCRIPTION 1893 "A collection of objects providing information about scripts 1894 that can be launched." 1895 ::= { smGroups 4 } 1897 smRunGroup OBJECT-GROUP 1898 OBJECTS { 1899 smRunArgument, 1900 smRunStartTime, 1901 smRunEndTime, 1902 smRunLifeTime, 1903 smRunExpireTime, 1904 smRunExitCode, 1905 smRunResult, 1906 smRunState, 1907 smRunControl, 1908 smRunError 1909 } 1910 STATUS current 1911 DESCRIPTION 1912 "A collection of objects providing information about running 1913 scripts." 1914 ::= { smGroups 5 } 1916 smNotificationsGroup NOTIFICATION-GROUP 1917 NOTIFICATIONS { 1918 smScriptAbort, 1919 smScriptResult 1920 } 1921 STATUS current 1922 DESCRIPTION 1923 "The notifications emitted by the script MIB." 1925 ::= { smGroups 6 } 1927 END 1929 7. Usage Examples 1931 This section presents some examples that explain how a manager can 1932 use the Script MIB defined in this memo. The purpose of these 1933 examples is to explain the steps that are normally used to delegate 1934 management scripts. 1936 7.1. Pushing a script via SNMP 1938 This example explains the steps performed by a manager to push a 1939 script into a distributed manager. 1941 1. The manager first checks the smLanguageTable and the 1942 smExtensionTable in order to select the appropriate script or 1943 language. 1945 2. The manager creates a row in the smScriptTable by issuing an 1946 SNMP set-request. The smScriptRowStatus object is set to 1947 `createAndWait' and the smScriptSource object is set to an empty 1948 string. The smScriptLanguage object is set to the language in 1949 which the script was written. The smScriptStorageType object is 1950 set to `volatile' to indicate that the script will be loaded via 1951 the smCodeTable. The smScriptOwner is set to a string which 1952 identifies the principal who owns the new row. The smScriptName 1953 defines the administratively assigned unique name for the 1954 script. 1956 3. The manager sets the smScriptRowStatus object to `active' and 1957 the smScriptAdminStatus object to `editing'. 1959 4. The manager pushes the script to the distributed manager by 1960 issuing a couple of SNMP set-requests to fill the smCodeTable. 1962 5. Once the whole script has been transferred, the manager sends a 1963 set-request to set the smScriptAdminStatus object to `enabled'. 1964 The Script MIB implementation now makes the script accessible to 1965 the runtime system. This might include the compilation of the 1966 script if the language requires a compilation step. 1968 6. The manager polls the smScriptOperStatus object until the value 1969 is either `enabled' or one of the error status codes. The 1970 script can only be used if the value of smScriptOperStatus is 1971 `enabled'. 1973 7. If the manager wants to store the script in local non-volatile 1974 storage, it should send a set-request which changes the 1975 smScriptStorageType object to `nonVolatile'. 1977 7.2. Pulling a script from a URL 1979 This example explains the steps performed by a manager to cause a 1980 distributed manager to pull a script from a URL. 1982 1. The manager first checks the smLanguageTable and the 1983 smExtensionTable in order to select the appropriate script or 1984 language. 1986 2. The manager creates a row in the smScriptTable by issuing an 1987 SNMP set-request. The smScriptRowStatus object is set to 1988 `createAndWait' and the smScriptSource object is set to the URL 1989 which points to the script source. The smScriptLanguage object 1990 is set to the language in which the script was written. The 1991 smScriptOwner is set to a string which identifies the principal 1992 who owns the new row. The smScriptName defines the 1993 administratively assigned unique name for the script. 1995 3. The manager sets the smScriptRowStatus object to `active'. 1997 4. The manager sends a set-request to set the smScriptAdminStatus 1998 object to `enabled'. The Script MIB implementation now makes the 1999 script accessible to the runtime system. This causes a retrieval 2000 operation to pull the script from the URL stored in 2001 smScriptSource. This retrieval operation might be followed by a 2002 compile operation if the language requires a compilation step. 2004 5. The manager polls the smScriptOperStatus object until the value 2005 is either `enabled' or one of the error status codes. The 2006 script can only be used if the value of smScriptOperStatus is 2007 `enabled'. 2009 6. If the manager wants to store the script in local non-volatile 2010 storage, it should send a set-request which changes the 2011 smScriptStorageType object to `nonVolatile'. 2013 7.3. Modifying an existing script 2015 This section explains how a manager can modify a script by sending 2016 SNMP set-requests. 2018 1. First, the script is de-activated by setting the 2019 smScriptAdminStatus to `disabled'. 2021 2. The manager polls the smScriptOperStatus object until the value 2022 is `disabled'. 2024 3. The manager sets smScriptSource to an empty string and 2025 smScriptAdminStatus to `editing'. This makes the script source 2026 available in the smCodeTable. 2028 4. The manager polls the smScriptOperStatus object until the value 2029 is `editing'. 2031 5. The manager sends SNMP set-requests to modify the script in the 2032 smCodeTable. 2034 6. The manager sends a set-request to set the smScriptAdminStatus 2035 object to `enabled'. The Script MIB implementation now makes the 2036 script accessible to the runtime system. This might include the 2037 compilation of the script if the language requires a compilation 2038 step. 2040 7. The manager polls the smScriptOperStatus object until the value 2041 is either `enabled' or one of the error status codes. The 2042 script can only be used if the value of smScriptOperStatus is 2043 `enabled'. 2045 7.4. Removing an existing script 2047 This section explains how a manager can remove a script from a 2048 distributed manager. 2050 1. First, the manager sets the smScriptAdminStatus to `disabled'. 2051 This will ensure that no new scripts can be started while 2052 running scripts finish their execution. 2054 2. The manager polls the smScriptOperStatus object until the value 2055 is `disabled'. 2057 3. The manager sends an SNMP set-request to change the 2058 smScriptRowStatus object to `destroy'. This will remove the row 2059 and all associated resources from the Script MIB implementation. 2061 7.5. Creating a launch button 2063 This section explains how a manager can create a launch button for 2064 starting a script. 2066 1. The manager, who is identified by an smLaunchOwner value, first 2067 chooses a name for the new row in the smLaunchTable. The manager 2068 sends an SNMP set-request to set the smLaunchRowStatus object 2069 for this smLaunchOwner and smLaunchName to `createAndWait'. 2071 2. The manager fills the new smLaunchTable row with all required 2072 parameters. The smLaunchScriptOwner and smLaunchScriptName 2073 values point to the script that should be started from this 2074 launch button. 2076 3. The manager sends a set-request to change smLaunchAdminStatus to 2077 `enabled' once the new smLaunchTable row is complete. 2079 4. The manager polls the smLaunchOperStatus object until the value 2080 is `enabled'. 2082 7.6. Launching a script 2084 This section explains the suggested way to launch a script from a 2085 given launch button. 2087 1. The manager first retrieves the value of smLaunchRunIndexNext 2088 from the launch button selected to start the script. 2090 2. The manager sends an SNMP set-request to set the smLaunchStart 2091 object to the value obtained in step 1. This will launch the 2092 script if all necessary pre-conditions are satisfied (see the 2093 definition of smLaunchStart for more details). The manager can 2094 also provide the smLaunchArgument in the same set-request that 2095 is used to start the script. Upon successful start, a new row 2096 will be created in the smRunTable indexed by smLaunchOwner, 2097 smLaunchName and the value written to smLaunchStart. 2099 Note, the first step is not required. A manager can also try to guess 2100 an unused value for smRunIndex if he wants to start script in a 2101 single transaction. A manager can also use the special value 0 if he 2102 does not care about the results produced by the script. 2104 7.7. Terminating a script 2106 This section explains two ways to terminate a running script. The 2107 first approach is as follows: 2109 1. The manager sets the smRunControl object of the running script 2110 or the smLaunchControl object of the launch button used to start 2111 the running script to `abort'. Setting smLaunchControl will 2112 abort all running scripts started from the launch button while 2113 smRunControl will only abort the running script associated with 2114 the smRunControl instance. 2116 The second way to terminate a script is to set the smRunLifeTime to 2117 zero which causes the runtime system to terminate the script with a 2118 `lifeTimeExceeded' exit code: 2120 1. The manager changes the value of smRunLifeTime to 0. This causes 2121 the Script MIB implementation to abort the script because the 2122 remaining life time has expired. 2124 Note, changing the smRunLifeTime value can also be used to increase 2125 the permitted lifetime of a running script. For example, a manager 2126 can choose to set smRunLifeTime to a small fixed time interval and 2127 increase the value periodically. This strategy has the nice effect 2128 that scripts terminate automatically if the manager loses contact 2129 with the Script MIB engine. 2131 7.8. Removing a launch button 2133 This section explains how a manager can remove a launch button from a 2134 distributed manager. 2136 1. First, the manager sets the smLaunchAdminStatus to `disabled'. 2137 This will ensure that no new scripts can be started from this 2138 launch button while running script will finish their execution. 2140 2. The manager polls the smLaunchOperStatus object until the value 2141 is `disabled'. 2143 3. The manager sends an SNMP set-request to change the 2144 smLaunchRowStatus object to `destroy'. This will remove the row 2145 and all associated resources from the Script MIB implementation. 2147 8. VACM Configuration Examples 2149 This section shows how the view-based access control model defined in 2150 RFC 2275 [15] can be configured to control access to the script MIB. 2152 8.1. Sandbox for guests 2154 The first example demonstrates how to configure VACM to give the 2155 members of the VACM group "guest" limited access to the script MIB. 2156 The MIB views defined below give the members of the "guest" group a 2157 sandbox where they can install and start their own scripts, but not 2158 access any other scripts maintained by the Script MIB implementation. 2160 vacmAccessReadView."guest"."".usm.authNoPriv = "guestReadView" 2161 vacmAccessWriteView."guest"."".usm.authNoPriv = "guestWriteView" 2163 The guestReadView grants read access to the smLangTable, the 2164 smExtsnTable and to all the table entries owned by "guest": 2166 guestReadView: 2167 smLangTable (included) 2168 smExtsnTable (included) 2169 smScriptObjects.*.*.*."guest" (included) 2170 smRunObjects.*.*.*."guest" (included) 2172 The guestWriteView grants write access to all the table entries owned 2173 by "guest": 2175 guestWriteView: 2176 smScriptObjects.*.*.*."guest" (included) 2177 smRunObjects.*.*.*."guest" (included) 2179 8.2. Sharing scripts 2181 This example demonstrates how VACM can be used to share a repository 2182 of scripts between the members of the "senior" and the members of the 2183 "junior" VACM group: 2185 vacmAccessReadView."junior"."".usm.authNoPriv = "juniorReadView" 2186 vacmAccessWriteView."junior"."".usm.authNoPriv = "juniorWriteView" 2188 juniorReadView: 2190 smLangTable (included) 2191 smExtsnTable (included) 2192 smScriptObjects.*.*.*."junior" (included) 2193 smRunObjects.*.*.*."junior" (included) 2194 smScriptObjects.*.*.*."utils" (included) 2196 juniorWriteView: 2197 smScriptObjects.*.*.*."junior" (included) 2198 smRunObjects.*.*.*."junior" (included) 2200 The definitions above allow the members of the "junior" VACM group to 2201 start the scripts owned by "utils" in addition to the script the 2202 members of the "junior" VACM group installed themself. This is 2203 accomplished by giving the members of "junior" read access to scripts 2204 in "utils". This allows members of "junior" to create entries in the 2205 smLauchTable which refer to scripts in "utils", and to launch those 2206 scripts using these entries in the smLaunchTable. 2208 vacmAccessReadView."senior"."".usm.authNoPriv = "seniorReadView" 2209 vacmAccessWriteView."senior"."".usm.authNoPriv = "seniorWriteView" 2211 seniorReadView: 2212 smLangTable (included) 2213 smExtsnTable (included) 2214 smScriptObjects.*.*.*."senior" (included) 2215 smRunObjects.*.*.*."senior" (included) 2216 smScriptObjects.*.*.*."utils" (included) 2218 seniorWriteView: 2219 smScriptObjects.*.*.*."senior" (included) 2220 smRunObjects.*.*.*."senior" (included) 2221 smScriptObjects.*.*.*."utils" (included) 2223 The definitions for the members of the "senior" VACM group allow to 2224 start the scripts owned by "utils" in addition to the script the 2225 members of the "senior" VACM group installed themself. The third 2226 write access rule in the seniorWriteView also grants the permission 2227 to install scripts owned by "utils". The members of the "senior" VACM 2228 group therefore have the permissions to install and modify scripts 2229 that can be called by the members of the "junior" VACM group. 2231 8.3. Emergency scripts 2233 This example demonstrates how VACM can be used to allow the members 2234 of the "junior" VACM group to launch scripts that are executed with 2235 the permissions associated with the "emergency" owner. This works by 2236 adding the following rules to the juniorReadView and the 2237 juniorWriteView: 2239 juniorReadView: 2240 smScriptObjects.*.*.*."emergency" (included) 2241 smRunObjects.*.*.*."emergency" (included) 2243 juniorWriteView 2244 smLaunchStart."emergency" (included) 2245 smLaunchArgument."emergency" (included) 2247 The rules added to the juniorReadView grant read access to the 2248 scripts, the launch buttons and the results owned by "emergency". The 2249 rules added to the juniorWriteView grant write permissions to the 2250 smLaunchStart and smLaunchArgument variables ownded by "emergency". 2251 Members of the "junior" VACM group can therefore start scripts that 2252 will execute under the owner "emergency". 2254 seniorReadView: 2255 smScriptObjects.*.*.*."emergency" (included) 2256 smRunObjects.*.*.*."emergency" (included) 2258 seniorWriteView: 2259 smScriptObjects.*.*.*."emergency" (included) 2260 smRunObjects.*.*.*."emergency" (included) 2262 The rules added to the seniorReadView and the seniorWriteView will 2263 give the members of the "senior" VACM group the rights to install 2264 emergency scripts and to configure appropriate launch buttons. 2266 9. IANA Considerations 2268 The Internet Assigned Numbers Authority (IANA) is responsible for 2269 maintaining a MIB module which provides OID registrations for well- 2270 known languages. The IANA language registry is intented to reduce 2271 interoperability problems by providing a single list of well-known 2272 languages. However, it is of course still possible to register 2273 languages in private OID spaces. Registering languages in private 2274 spaces is especially attractive if a language is used for 2275 experimentation or if a language is only used in environments where 2276 the distribution of MIB modules with the language registration does 2277 not cause any maintenance problems. 2279 Any additions or changes to the list of languages registered via IANA 2280 require Designated Expert Review as defined in the IANA guidelines 2281 [20]. The Designated Expert will be selected by the IESG Area 2282 Director for the IETF Operations and Management Area. 2284 10. Security Considerations 2286 This MIB provides the ability to distribute applications written in 2287 an arbitrary language to remote systems in a network. The security 2288 features of the languages available in a particular implementation 2289 should be taken into consideration when deploying an implementation 2290 of this MIB. 2292 To facilitate the provisioning of access control by a security 2293 administrator using the View-Based Access Control Model (VACM) 2294 defined in RFC 2275 [15] for tables in which multiple users may need 2295 to independently create or modify entries, the initial index is used 2296 as an "owner index". Such an initial index has a syntax of 2297 SnmpAdminString, and can thus be trivially mapped to a securityName 2298 or groupName as defined in VACM, in accordance with a security 2299 policy. 2301 All entries in related tables belonging to a particular user will 2302 have the same value for this initial index. For a given user's 2303 entries in a particular table, the object identifiers for the 2304 information in these entries will have the same subidentifiers 2305 (except for the "column" subidentifier) up to the end of the encoded 2306 owner index. To configure VACM to permit access to this portion of 2307 the table, one would create vacmViewTreeFamilyTable entries with the 2308 value of vacmViewTreeFamilySubtree including the owner index portion, 2309 and vacmViewTreeFamilyMask "wildcarding" the column subidentifier. 2310 More elaborate configurations are possible. 2312 The VACM access control mechanism described above provides control 2313 over SNMP access to Script MIB objects. There are a number of other 2314 access control issues that are outside of the scope of this MIB. For 2315 example, access control on URLs, especially those that use the file 2316 scheme, must be realized by the underlying operating system. A 2317 mapping of the owner index value to a local operating system security 2318 user identity should be used by an implementation of this MIB to 2319 control access to operating system resources when resolving URLs or 2320 executing scripts. 2322 11. Intellectual Property 2324 The IETF takes no position regarding the validity or scope of any 2325 intellectual property or other rights that might be claimed to 2326 pertain to the implementation or use of the technology described in 2327 this document or the extent to which any license under such rights 2328 might or might not be available; neither does it represent that it 2329 has made any effort to identify any such rights. Information on the 2330 IETF's procedures with respect to rights in standards-track and 2331 standards-related documentation can be found in BCP-11. Copies of 2332 claims of rights made available for publication and any assurances of 2333 licenses to be made available, or the result of an attempt made to 2334 obtain a general license or permission for the use of such 2335 proprietary rights by implementors or users of this specification can 2336 be obtained from the IETF Secretariat. 2338 The IETF invites any interested party to bring to its attention any 2339 copyrights, patents or patent applications, or other proprietary 2340 rights which may cover technology that may be required to practice 2341 this standard. Please address the information to the IETF Executive 2342 Director. 2344 12. Acknowledgments 2346 This document was produced by the IETF Distributed Management 2347 (DISMAN) working group. 2349 13. References 2351 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for 2352 Describing SNMP Management Frameworks", RFC 2271, Cabletron 2353 Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, 2354 January 1998 2356 [2] Rose, M., and K. McCloghrie, "Structure and Identification of 2357 Management Information for TCP/IP-based Internets", RFC 1155, 2358 Performance Systems International, Hughes LAN Systems, May 1990 2360 [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212, 2361 Performance Systems International, Hughes LAN Systems, March 1991 2363 [4] M. Rose, "A Convention for Defining Traps for use with the SNMP", 2364 RFC 1215, Performance Systems International, March 1991 2366 [5] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure 2367 of Management Information for Version 2 of the Simple Network 2368 Management Protocol (SNMPv2)", RFC 1902, SNMP Research,Inc., Cisco 2369 Systems, Inc., Dover Beach Consulting, Inc., International Network 2370 Services, January 1996. 2372 [6] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual 2373 Conventions for Version 2 of the Simple Network Management Protocol 2374 (SNMPv2)", RFC 1903, SNMP Research, Inc., Cisco Systems, Inc., 2375 Dover Beach Consulting, Inc., International Network Services, 2376 January 1996. 2378 [7] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Conformance 2379 Statements for Version 2 of the Simple Network Management Protocol 2380 (SNMPv2)", RFC 1904, SNMP Research, Inc., Cisco Systems, Inc., 2381 Dover Beach Consulting, Inc., International Network Services, 2382 January 1996. 2384 [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network 2385 Management Protocol", RFC 1157, SNMP Research, Performance Systems 2386 International, Performance Systems International, MIT Laboratory 2387 for Computer Science, May 1990. 2389 [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 2390 "Introduction to Community-based SNMPv2", RFC 1901, SNMP Research, 2391 Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., 2392 International Network Services, January 1996. 2394 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport 2395 Mappings for Version 2 of the Simple Network Management Protocol 2396 (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc., 2397 Dover Beach Consulting, Inc., International Network Services, 2398 January 1996. 2400 [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message 2401 Processing and Dispatching for the Simple Network Management 2402 Protocol (SNMP)", RFC 2272, SNMP Research, Inc., Cabletron Systems, 2403 Inc., BMC Software, Inc., IBM T. J. Watson Research, January 1998. 2405 [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for 2406 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2407 2274, IBM T. J. Watson Research, January 1998. 2409 [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol 2410 Operations for Version 2 of the Simple Network Management Protocol 2411 (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc., 2412 Dover Beach Consulting, Inc., International Network Services, 2413 January 1996. 2415 [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 2416 2273, SNMP Research, Inc., Secure Computing Corporation, Cisco 2417 Systems, January 1998 2419 [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 2420 Control Model (VACM) for the Simple Network Management Protocol 2421 (SNMP)", RFC 2275, IBM T. J. Watson Research, BMC Software, Inc., 2422 Cisco Systems, Inc., January 1998 2424 [16] Hovey, R., and S. Bradner, "The Organizations Involved in the IETF 2425 Standards Process", BCP 11, RFC 2028, October 1996. 2427 [17] Berners-Lee, T., Fielding, R., and L. Masinter, " Uniform Resource 2428 Identifiers (URI): Generic Syntax", RFC 2396, MIT/LC, U.C. Irvine, 2429 Xerox Corporation, August 1998. 2431 [18] Postel, J., and J. Reynolds, "File Transfer Protocol", STD 9, RFC 2432 959, ISI, October 1985. 2434 [19] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., and T. Berners- 2435 Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, UC 2436 Irvine, DEC, MIT/LCS, January 1997. 2438 [20] Narten, T., and H. Alvestrand, "Guidelines for Writing an IANA 2439 Considerations Section in RFCs", BCP 26, RFC 2434, IBM, Maxware, 2440 October 1998. 2442 [21] Bradner, S., "Key words for use in RFCs to Indicate Requirement 2443 Levels", BCP 14, RFC 2119, Harvard University, March 1997. 2445 14. Editors' Addresses 2447 David B. Levi Email: levi@snmp.com 2448 SNMP Research, Inc. Tel: +1 423 573 1434 2449 3001 Kimberlin Heights Road 2450 Knoxville, TN 37920-9716 2451 U.S.A. 2453 Juergen Schoenwaelder Email: schoenw@ibr.cs.tu-bs.de 2454 TU Braunschweig Tel: +49 531 391-3683 2455 Bueltenweg 74/75 2456 38106 Braunschweig 2457 Germany 2459 15. Full Copyright Statement 2461 Copyright (C) The Internet Society (1999). All Rights Reserved. 2463 This document and translations of it may be copied and furnished to 2464 others, and derivative works that comment on or otherwise explain it 2465 or assist in its implementation may be prepared, copied, published 2466 and distributed, in whole or in part, without restriction of any 2467 kind, provided that the above copyright notice and this paragraph are 2468 included on all such copies and derivative works. However, this 2469 document itself may not be modified in any way, such as by removing 2470 the copyright notice or references to the Internet Society or other 2471 Internet organizations, except as needed for the purpose of 2472 developing Internet standards in which case the procedures for 2473 copyrights defined in the Internet Standards process must be 2474 followed, or as required to translate it into languages other than 2475 English. 2477 The limited permissions granted above are perpetual and will not be 2478 revoked by the Internet Society or its successors or assigns. 2480 This document and the information contained herein is provided on an 2481 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 2482 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 2483 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 2484 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 2485 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 2487 16. IANA Language Registration MIB 2489 This appendix defines the initial content of the IANA-LANGUAGE-MIB. 2490 This section should be removed from this document prior to its approval, 2491 at which time this MIB will be administered by IANA. 2493 IANA-LANGUAGE-MIB DEFINITIONS ::= BEGIN 2495 IMPORTS 2496 MODULE-IDENTITY, OBJECT-IDENTITY, experimental 2497 FROM SNMPv2-SMI; 2499 ianaLanguages MODULE-IDENTITY 2500 LAST-UPDATED "9902221800Z" 2501 ORGANIZATION "IANA" 2502 CONTACT-INFO 2503 "Internet Assigned Numbers Authority (IANA) 2505 Postal: USC/Information Sciences Institute 2506 4676 Admiralty Way, Marina del Rey, CA 90292 2508 Tel: +1 310 822 1511 2509 E-Mail: iana@isi.edu" 2510 DESCRIPTION 2511 "The MIB module registers object identifier values for 2512 well-known programming and scripting languages. Every 2513 language registration MUST describe the format used 2514 when transferring scripts written in this language. 2516 Any additions or changes to the contents of this MIB 2517 module require Designated Expert Review as defined in 2518 the Guidelines for Writing IANA Considerations Section 2519 document. The Designated Expert will be selected by 2520 the IESG Area Director of the OPS Area. 2522 Note, this module does not have to register all possible 2523 languages since languages are identified by object identifier 2524 values. It is therefore possible to registered languages in 2525 private OID trees. 2527 The references given below are not normative with regard to 2528 the language version. Other references might be better suited 2529 to describe some newer versions of this language. The 2530 references are only provided as `a pointer into the right 2531 direction'." 2532 -- XXX Replace with real registration number from IANA. Note, the 2533 -- XXX IMPORTS must be updated when the real number is assigned. 2534 ::= { experimental 9876 } 2536 ianaLangJavaByteCode OBJECT-IDENTITY 2537 STATUS current 2538 DESCRIPTION 2539 "Java byte code to be processed by a Java virtual machine. 2540 A script written in Java byte code is transferred by using 2541 the Java archive file format (JAR)." 2542 REFERENCE 2543 "The Java Virtual Machine Specification. 2544 ISBN 0-201-63452-X" 2545 ::= { ianaLanguages 1 } 2547 ianaLangTcl OBJECT-IDENTITY 2548 STATUS current 2549 DESCRIPTION 2550 "The Tool Command Language (Tcl). A script written in the 2551 Tcl language is transferred in Tcl source code format." 2552 REFERENCE 2553 "Tcl and the Tk Toolkit. 2554 ISBN 0-201-63337-X" 2555 ::= { ianaLanguages 2 } 2557 ianaLangPerl OBJECT-IDENTITY 2558 STATUS current 2559 DESCRIPTION 2560 "The Perl language. A script written in the Perl language 2561 is transferred in Perl source code format." 2562 REFERENCE 2563 "Programming Perl. 2564 ISBN 1-56592-149-6" 2565 ::= { ianaLanguages 3 } 2567 ianaLangScheme OBJECT-IDENTITY 2568 STATUS current 2569 DESCRIPTION 2570 "The Scheme language. A script written in the Scheme 2571 language is transferred in Scheme source code format." 2572 REFERENCE 2573 "The Revised^4 Report on the Algorithmic Language Scheme. 2574 MIT Press" 2575 ::= { ianaLanguages 4 } 2577 ianaLangSRSL OBJECT-IDENTITY 2578 STATUS current 2579 DESCRIPTION 2580 "The SNMP Script Language defined by SNMP Research. A 2581 script written in the SNMP Script Language is transferred 2582 in the SNMP Script Language source code format." 2583 ::= { ianaLanguages 5 } 2585 ianaLangPSL OBJECT-IDENTITY 2586 STATUS current 2587 DESCRIPTION 2588 "The Patrol Script Language defined by BMC Software. A script 2589 written in the Patrol Script Language is transferred in the 2590 Patrol Script Language source code format." 2591 REFERENCE 2592 "PATROL Script Language Reference Manual, Version 3.0, 2593 November 30, 1995. BMC Software, Inc. 2101 City West Blvd., 2594 Houston, Texas 77042." 2595 ::= { ianaLanguages 6 } 2597 ianaLangSMSL OBJECT-IDENTITY 2598 STATUS current 2599 DESCRIPTION 2600 "The Systems Management Scripting Language. A script written 2601 in the SMSL language is transferred in the SMSL source code 2602 format." 2603 REFERENCE 2604 "ISO/ITU Command Sequencer. 2605 ISO 10164-21 or ITU X.753" 2606 ::= { ianaLanguages 7 } 2608 END