-- extracted from draft-ietf-ifmib-testmib-05.txt -- at Mon Nov 15 17:10:35 1999 TEST-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, zeroDotZero, NOTIFICATION-TYPE, mib-2 FROM SNMPv2-SMI AutonomousType, RowPointer, TimeStamp, RowStatus FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF OwnerString FROM IF-MIB ; testMIB MODULE-IDENTITY LAST-UPDATED "9904071200Z" ORGANIZATION "IETF IFMIB Working Group" CONTACT-INFO "Maria Greene Postal: Xedia Corp. 119 Russell St. Littleton, MA 01460 USA Tel: +1 978 897 1828 E-mail: maria@xedia.com Keith McCloghrie Postal: Cisco Systems 170 West Tasman Drive San Jose, CA 95134 USA Tel: +1 408 526 5260 E-mail: kzm@cisco.com Kaj Tesink Postal: Telcordia Technologies 331 Newman Springs Road Red Bank, NJ 07701 USA Tel: +1 732 758 5254 E-mail: kaj@research.telcordia.com" DESCRIPTION "This MIB module provides a generic test capability." ::= { mib-2 YY } -- ******** NOTE TO THE RFC EDITOR AND IANA ********* -- * In case this module is put on the standards track -- * assign a suitable value to YY by IANA -- * and remove this notice from the MIB testMIBObjects OBJECT IDENTIFIER ::= { testMIB 1 } testIndexNext OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an appropriate value to be used for testIndex when creating entries in the testTable. The object is used in order to minimize collisions caused by multiple managers. The value 0 indicates that no unassigned entries are available. To obtain the testIndex value for a new entry, the manager issues a management protocol retrieval operation to obtain the current value of this object. After each retrieval, the agent should modify the value to the next lower unassigned index. If the agent is restarted this object shall be set to its highest value. The agent does not require that retrieved values are actually used in subsequent tests or that they are used in the order of their retrieval. Note that GETNEXT or GETBULK requests for this object will also decrease the value, and so it is quite possible that (large) gaps will occur." ::= { testMIBObjects 1 } -- The Test Table testTable OBJECT-TYPE SYNTAX SEQUENCE OF TestEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to initiate tests and to log test results. An entry in this table corresponds to an instance of a test. A test is invoked by creating a row with the appropriate test attributes and using testRowStatus to start a test. After invoking a test, the object testResult can be read to determine the outcome. If an agent can not perform the test, testResult is set accordingly. The testCode can be used to provide further test-specific or entity- specific (or even enterprise-specific) information concerning the outcome of the test. Only one test can be in progress on each entity at any one time. If one test is in progress when another test is invoked, the second test is rejected (for an SNMPv2 SET operation an inconsistentValue error is returned). Some agents may reject a test when a prior test is active on another entity. Before starting a test, a manager-station must first obtain 'ownership' of the entry in the testTable for the entity to be tested. This is accomplished by retrieving the value of testIndexNext. This value entitles the manager to create a row in the testTable with the value of testIndex being equal to the retrieved value of testIndexNext and testOwner set to the appropriate value for the manager. Once 'ownership' is obtained, the testOwner and test parameters can be setup, by creating a row with the reserved testIndex and appropriate test parameter settings. Then the test is initiated by setting the testRowStatus to 'active'. The agent sets the value of testResult to 'inProgress'. On completion of the test, the agent sets testResult and testCode in accordance with the test results and sets the testResultTimeStamp. In general, a management station must not retransmit a request to invoke a test for which it does not receive a response; instead, it properly inspects an agent's MIB to determine if the invocation was successful. Only if the invocation was unsuccessful, is the invocation request retransmitted. Some tests may require the entity to be taken off- line in order to execute them, or may even require the agent to reboot after completion of the test. In these circumstances, communication with the management station invoking the test may be lost until after completion of the test. An agent is not required to support such tests. However, if such tests are supported, then the agent should make every effort to transmit a response to the request which invoked the test prior to losing communication. When the agent is restored to normal service, the results of the test are properly made available in the appropriate objects. Note that this requires that the testIndex value assigned to an entity must be unchanged even if the test causes a reboot. An agent must reject any test for which it cannot, perhaps due to resource constraints, make available at least the minimum amount of information after that test completes. Managers are responsible for removing rows that are no longer in use. The table is flushed when the agent is reset." ::= { testMIBObjects 2 } testEntry OBJECT-TYPE SYNTAX TestEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing objects for invoking a test and reporting test results." INDEX { testIndex } ::= { testTable 1 } TestEntry ::= SEQUENCE { testIndex Unsigned32, testTarget RowPointer, testType AutonomousType, testMoreInfo OCTET STRING, testResultTimeStamp TimeStamp, testResult INTEGER, testCode OBJECT IDENTIFIER, testOwner OwnerString, testRowStatus RowStatus } testIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of this table." ::= { testEntry 1 } testTarget OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "The target of the test. An example of a test target is an instance of an interface, identified by the OID 'ifIndex.17'. When the value zeroDotZero is written to this object, no action is taken. " DEFVAL { zeroDotZero } ::= { testEntry 2 } testType OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-create STATUS current DESCRIPTION "The identifier that specifies the test. OBJECT IDENTIFIER values assigned to tests are defined elsewhere, in association with specific types of entity. When the value 'zeroDotZero' is written to this object, no action is taken. Additional information for this test may be specified in testMoreInfo. The value of testType must be one of those listed in the testCapabilityTable." DEFVAL { zeroDotZero } ::= { testEntry 3 } testMoreInfo OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-create STATUS current DESCRIPTION "Additional test-specific information." DEFVAL { "" } ::= { testEntry 4 } testResultTimeStamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when a testResult has been reached. When a test is 'inProgress' the value of testResultTimeStamp shall be 0." ::= { testEntry 5 } testResult OBJECT-TYPE SYNTAX INTEGER { none(1), -- no test yet requested success(2), inProgress(3), -- transient state notSupported(4),-- not in testCapabilityTable unAbleToRun(5), -- due to state of system aborted(6), -- by manager action failed(7) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the result of the most recently requested test, or the value 'none' if no test has been started yet." DEFVAL { none } ::= { testEntry 6 } testCode OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains a code which contains more specific information on the test result, for example an error-code after a failed test or a result value such as round trip time for a 'ping' test. Error codes and other values this object may take are specific to the type of entity and/or test. The value may have the semantics of AutonomousType, RowPointer or VariablePointer textual conventions as defined in RFC 1903. The identifier: testCodeNone OBJECT IDENTIFIER ::= zeroDotZero is defined for use if no additional result code is available." ::= { testEntry 7 } testOwner OBJECT-TYPE SYNTAX OwnerString MAX-ACCESS read-create STATUS current DESCRIPTION "The manager which currently has the 'ownership' required to invoke a test on this entity, e.g., the manager station's transport address, management station name (e.g., domain name), network management personnel's name, location, or phone number." REFERENCE "McCloghrie, K., Kastenholz, F., The Interfaces Group MIB using SMIv2, RFC2233, Cisco Systems, Inc., FTP Software, November 1997." ::= { testEntry 8 } testRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The row status of the test information. A row must be active before tests can be activiated. Deactivating a row will abort any ongoing test associated with that row. Manipulation of the test: - When all test parameters (testTarget, testType, testMoreInfo and testOwner) have been properly set the test is started by setting testRowStatus to 'active'. This causes the testResult to assume the value 'inProgress' until some other value of testResult is reached. - If the manager sets testRowStatus to 'active' while the test is inProgress then this action will not affect the ongoing test. - Details of ongoing or completed tests are reported in testResult and testCode. - After test completion the test may be repeated by first setting testRowStatus to 'notInService', manipulating the test parameters as necessary, and setting the testRowStatus to 'active' again. - A manager may abort ongoing tests or remove completed test information by setting the testRowStatus to 'notInService' or 'destroy'." DEFVAL { createAndWait } ::= { testEntry 9 } -- Table size testTableMaxSize OBJECT-TYPE SYNTAX Unsigned32 (10..4294967295) MAX-ACCESS read-write STATUS current DESCRIPTION "The maximum number entries in the testTable. Removal of old entries is the responsibility of the manager. The table is flushed when the agent is reset." ::= { testMIBObjects 3 } -- Test Capability Table testCapabilityTable OBJECT-TYPE SYNTAX SEQUENCE OF TestCapabilityEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains test types (potential values for the testType object) that are supported by this agent." ::= { testMIBObjects 4 } testCapabilityEntry OBJECT-TYPE SYNTAX TestCapabilityEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table represents a test type." INDEX { testCapabilityIndex } ::= { testCapabilityTable 1 } TestCapabilityEntry ::= SEQUENCE { testCapabilityIndex Unsigned32, testCapabilityType AutonomousType } testCapabilityIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer index that uniquely identifies the entry." ::= { testCapabilityEntry 1 } testCapabilityType OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of test that can be invoked." ::= { testCapabilityEntry 2 } -- Notifications testMIBNotifications OBJECT IDENTIFIER ::= { testMIB 0 } testComplete NOTIFICATION-TYPE OBJECTS { testTarget, testType, testMoreInfo, testResult, testCode, testOwner } STATUS current DESCRIPTION "A testComplete trap signifies that a test has completed for a particular entity. If the testCode has the semantics of a VariablePointer, the variable it points at will also be included in the objects list." ::= { testMIBNotifications 1 } -- Conformance Information testMIBConformance OBJECT IDENTIFIER ::= { testMIB 3 } testMIBGroups OBJECT IDENTIFIER ::= { testMIBConformance 1 } testMIBCompliances OBJECT IDENTIFIER ::= { testMIBConformance 2 } -- Compliance Statements testMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP agents which support generic testing capabilities." MODULE -- this module MANDATORY-GROUPS { testMIBGroup, testNotificationGroup } OBJECT testTableMaxSize MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { testMIBCompliances 1 } -- Units of Conformance testMIBGroup OBJECT-GROUP OBJECTS { testIndexNext, testTarget, testType, testMoreInfo, testResultTimeStamp, testResult, testCode, testOwner, testRowStatus, testTableMaxSize, testCapabilityType } STATUS current DESCRIPTION "A collection of objects providing a generic test capability." ::= { testMIBGroups 1 } testNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { testComplete } STATUS current DESCRIPTION "The notifications used to indicate test completion." ::= { testMIBGroups 2 } END -- -- Copyright (C) The Internet Society (1998). All Rights -- Reserved. -- -- This document and translations of it may be copied and -- furnished to others, and derivative works that comment on or -- otherwise explain it or assist in its implementation may be -- prepared, copied, published and distributed, in whole or in -- part, without restriction of any kind, provided that the above -- copyright notice and this paragraph are included on all such -- copies and derivative works. However, this document itself -- may not be modified in any way, such as by removing the -- copyright notice or references to the Internet Society or -- other Internet organizations, except as needed for the purpose -- of developing Internet standards in which case the procedures -- for copyrights defined in the Internet Standards process must -- be followed, or as required to translate it into languages -- other than English. -- -- The limited permissions granted above are perpetual and will -- not be revoked by the Internet Society or its successors or -- assigns. -- -- This document and the information contained herein is provided -- on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET -- ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE -- USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR -- ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A -- PARTICULAR PURPOSE."