idnits 2.17.1 draft-ietf-disman-remops-mib-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 68 longer pages, the longest (page 1) being 59 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 68 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 6 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 516 has weird spacing: '... int h_a...' == Line 517 has weird spacing: '... int h_l...' -- 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 (August 1999) is 9020 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: '20' is mentioned on line 167, but not defined == Unused Reference: '12' is defined on line 3417, but no explicit reference was found in the text == Unused Reference: '19' is defined on line 3440, but no explicit reference was found in the text ** Downref: Normative reference to an Historic RFC: RFC 1157 (ref. '1') -- Possible downref: Non-RFC (?) normative reference: ref. '2' ** Obsolete normative reference: RFC 1905 (ref. '6') (Obsoleted by RFC 3416) ** Obsolete normative reference: RFC 2571 (ref. '7') (Obsoleted by RFC 3411) ** Obsolete normative reference: RFC 2572 (ref. '8') (Obsoleted by RFC 3412) ** Obsolete normative reference: RFC 2573 (ref. '9') (Obsoleted by RFC 3413) ** Obsolete normative reference: RFC 2574 (ref. '10') (Obsoleted by RFC 3414) ** Obsolete normative reference: RFC 2575 (ref. '11') (Obsoleted by RFC 3415) ** Obsolete normative reference: RFC 2028 (ref. '12') (Obsoleted by RFC 9281) ** Downref: Normative reference to an Informational RFC: RFC 1215 (ref. '16') ** Downref: Normative reference to an Historic RFC: RFC 1901 (ref. '17') ** Obsolete normative reference: RFC 1906 (ref. '18') (Obsoleted by RFC 3417) Summary: 17 errors (**), 0 flaws (~~), 9 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 DISMAN Working Group Kenneth White 2 INTERNET DRAFT: IBM Corp. 3 Expiration Date: February 2000 5 August 1999 7 Definitions of Managed Objects for 8 Remote Ping, Traceroute, and 9 Lookup Operations 10 12 Status of this Memo 14 This document is an Internet-Draft and is in full conformance with all 15 provisions of Section 10 of RFC2026. Internet Drafts are working 16 documents of the Internet Engineering Task Force (IETF), its Areas, and 17 its Working Groups. Note that other groups may also distribute working 18 documents as Internet Drafts. 20 Internet Drafts are draft documents valid for a maximum of six months. 21 Internet Drafts may be updated, replaced, or obsoleted by other 22 documents at any time. It is not appropriate to use Internet Drafts as 23 reference material or to cite them other than as a "working draft" or 24 "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 Please check the I-D abstract listing contained in each Internet Draft 33 directory to learn the current status of this or any Internet Draft. 34 Distribution of this document is unlimited. 36 Copyright Notice 38 Copyright (C) The Internet Society (1999). All Rights Reserved. 40 Abstract 42 This memo defines Management Information Bases (MIBs) for performing 43 remote ping, traceroute and lookup operations at a remote host. When 44 managing a network it is useful to be able to initiate and retrieve the 45 results of ping or traceroute operations when performed at a remote 46 host. A Lookup capability is defined in order to enable resolving of 47 either an IP address to an DNS name or an DNS name to an IP address at a 48 remote host. 50 Currently, there exist several enterprise defined MIBs for performing 51 remote ping or traceroute operations. The purpose of this memo is to 52 defined a standards-based solution to enable interoperibility. 54 Table of Contents 56 1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2.0 The SNMP Network Management Framework . . . . . . . . . . . . 4 60 3.0 Structure of the MIBs . . . . . . . . . . . . . . . . . . . . 5 61 3.1 Ping MIB . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 62 3.1.1 pingMaxConcurrentRequests . . . . . . . . . . . . . . . . 6 63 3.1.2 pingCtlTable . . . . . . . . . . . . . . . . . . . . . . . 6 64 3.1.3 pingResultsTable . . . . . . . . . . . . . . . . . . . . . 7 65 3.1.4 pingProbeHistoryTable . . . . . . . . . . . . . . . . . . 7 66 3.2 Traceroute MIB . . . . . . . . . . . . . . . . . . . . . . . . 7 67 3.2.1 traceRouteMaxConcurrentRequests . . . . . . . . . . . . . 7 68 3.2.2 traceRouteCtlTable . . . . . . . . . . . . . . . . . . . . 8 69 3.2.3 traceRouteResultsTable . . . . . . . . . . . . . . . . . . 8 70 3.2.4 traceRouteProbeHistoryTable . . . . . . . . . . . . . . . 9 71 3.2.5 traceRouteHopsTable . . . . . . . . . . . . . . . . . . . 9 72 3.3 Lookup MIB . . . . . . . . . . . . . . . . . . . . . . . . . . 9 73 3.3.1 lookupMaxConcurrentRequests and lookupPurgeTime . . . . . 9 74 3.3.2 lookupCtlTable . . . . . . . . . . . . . . . . . . . . . . 10 75 3.3.3 lookupResultsTable . . . . . . . . . . . . . . . . . . . . 10 77 4.0 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 12 78 4.1 DISMAN-PING-MIB . . . . . . . . . . . . . . . . . . . . . . . 12 79 4.2 DISMAN-TRACEROUTE-MIB . . . . . . . . . . . . . . . . . . . . 33 80 4.3 DISMAN-NSLOOKUP-MIB . . . . . . . . . . . . . . . . . . . . . 56 82 5.0 Security Considerations . . . . . . . . . . . . . . . . . . . 65 84 6.0 Intellectual Property . . . . . . . . . . . . . . . . . . . . 65 86 7.0 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 66 88 8.0 References . . . . . . . . . . . . . . . . . . . . . . . . . . 66 90 9.0 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 67 92 10.0 Full Copyright Statement . . . . . . . . . . . . . . . . . . 67 94 1.0 Introduction 96 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 97 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 98 document are to be interpreted as described in RFC 2119, reference [13]. 100 This document is a product of the Distributed Management (DISMAN) 101 Working Group. Its purpose is to define standards-based MIB modules for 102 performing specific remote operations. The remote operations define by 103 this document consist of the ping, traceroute and lookup functions. 105 Ping and traceroute are two very useful functions for managing networks. 106 Ping is typically used to determine if a path exists between two hosts 107 while traceroute shows an actual path. Ping is usually implemented 108 using the InterNet Control Message Protocol (ICMP) "ECHO" facility. It 109 is also possible to implement a ping capability using alternate methods. 110 Some of which are: 112 o Using the UDP echo port (7), if supported. 114 This is defined by RFC 862 [2]. 116 o Timing an SNMP query. 118 o Timing a TCP connect attempt. 120 In general, almost any request/response flow can be used to generate a 121 round-trip time. Often many of the non-ICMP ECHO facility methods stand 122 a better chance of yielding a good response (not timing out for example) 123 since some routers don't honor Echo Requests (timeout situation) or they 124 are handled at lower priority, hence possibly giving false indications 125 of round trip times. 127 It must be noted that almost any of the various methods used for 128 generating a round-trip time can be considered a form of system attack 129 when used excessively. Sending a system requests too often can 130 negatively effect its performance. Attempting to connect to what is 131 suppose to be an unused port can be very unpredictable. There are tools 132 that attempt to connect to a range of TCP ports to test that any 133 receiving server can handle erroneous connection attempts. 135 It also is important to the management application using a remote ping 136 capability to know which method is being used. Different methods will 137 yield different response times since the protocol and resulting 138 processing will be different. It is RECOMMENDED that the ping 139 capability defined within this memo be implemented using the ICMP Echo 140 Facility. 142 Traceroute is usually implemented by transmitting a series of probe 143 packets with increasing time-to-live values. A probe packet is a UDP 144 datagram encapsulated into an IP packet. Each hop in a path to the 145 target (destination) host rejects the probe packet (probe's TTL too 146 small) until its time-to-live value becomes large enough for the probe 147 to be forwarded. Each hop in a traceroute path returns an ICMP message 148 that is used to discovery the hop and to calculate a round trip time. 149 Some systems use ICMP probes (ICMP Echo request packets) instead of UDP 150 ones to implement traceroute. In both cases traceroute relies on the 151 probes being rejected via an ICMP message to discover the hops taken 152 along a path to the final destination. Both probe types, UDP and ICMP, 153 are encapsulated into an IP packets and thus have a TTL field that can 154 be used to cause a path rejection. 156 Implementations of the remote traceroute capability as defined within 157 this memo SHOULD be done using UDP packets to a (hopefully) unused port. 158 ICMP probes (ICMP Echo Request packets) SHOULD NOT be used. Many PC 159 implementations of traceroute use the ICMP probe method, which they 160 should not, since this implementation method has been known to have a 161 high probability of failure. Intermediate hops become invisible when a 162 router either refuses to send an ICMP TTL expired message in response to 163 an incoming ICMP packet or simply tosses ICMP echo requests altogether. 165 The behavior of some routers to either not return a TTL expired message 166 in response to an ICMP Echo request is due in response to the following 167 text extracted from RFC792 [20]: 169 "The ICMP messages typically report errors in the processing of 170 datagrams. To avoid the infinite regress of messages about messages 171 etc., no ICMP messages are sent about ICMP messages." 173 Both ping and traceroute yield round-trip times measured in 174 milliseconds. These times can be used as a rough approximation for 175 network transit time. 177 The Lookup operation enables the equivalent of either a gethostbyname() 178 or a gethostbyaddr() call being performed at a remote host. The Lookup 179 gethostbyname() capability can be used to determine the symbolic name of 180 a hop in a traceroute path. 182 Consider the following diagram: 184 +----------------------------------------------------------------------+ 185 | | 186 | Remote ping, traceroute, Actual ping, traceroute, | 187 | +-----+or Lookup op. +------+or Lookup op. +------+ | 188 | |Local|---------------->|Remote|---------------->|Target| | 189 | | Host| | Host | | Host | | 190 | +-----+ +------+ +------+ | 191 | | 192 | | 193 +----------------------------------------------------------------------+ 195 A local host is the host from which the remote ping, traceroute, or 196 Lookup operation is initiated using an SNMP request. The remote host is 197 a host where the MIBs defined by this memo are implemented that receives 198 the remote operation via SNMP and performs the actual ping, traceroute, 199 or lookup function. 201 2.0 The SNMP Network Management Framework 203 The SNMP Management Framework presently consists of five major 204 components: 206 o An overall architecture, described in RFC 2571 [7]. 208 o Mechanisms for describing and naming objects and events for the 209 purpose of management. The first version of this Structure of 210 Management Information (SMI) is called SMIv1 and described in RFC 211 1155 [14], RFC 1212 [15] and RFC 1215 [16]. The second version, 212 called SMIv2, is described in RFC 2578 [3], RFC 2579 [4] and RFC 213 2580 [5]. 215 o Message protocols for transferring management information. The 216 first version of the SNMP message protocol is called SNMPv1 and 217 described in RFC 1157 [1]. A second version of the SNMP message 218 protocol, which is not an Internet standards track protocol, is 219 called SNMPv2c and described in RFC 1901 [17] and RFC 1906 [18]. 220 The third version of the message protocol is called SNMPv3 and 221 described in RFC 1906 [18], RFC 2572 [8] and RFC 2574 [10]. 223 o Protocol operations for accessing management information. The first 224 set of protocol operations and associated PDU formats is described 225 in RFC 1157 [1]. A second set of protocol operations and associated 226 PDU formats is described in RFC 1905 [6]. 228 o A set of fundamental applications described in RFC 2573 [9] and the 229 view-based access control mechanism described in RFC 2575 [11]. 231 Managed objects are accessed via a virtual information store, termed the 232 Management Information Base or MIB. Objects in the MIB are defined 233 using the mechanisms defined in the SMI. 235 This memo specifies MIB modules that are compliant to the SMIv2. A MIB 236 conforming to the SMIv1 can be produced through the appropriate 237 translations. The resulting translated MIB must be semantically 238 equivalent, except where objects or events are omitted because no 239 translation is possible (use of Counter64). Some machine readable 240 information in SMIv2 will be converted into textual descriptions in 241 SMIv1 during the translation process. However, this loss of machine 242 readable information is not considered to change the semantics of the 243 MIB. 245 3.0 Structure of the MIBs 247 This document defines three MIB modules: 249 o DISMAN-PING-MIB 251 Defines a ping MIB. 253 o DISMAN-TRACEROUTE-MIB 255 Defines a traceroute MIB. 257 o DISMAN-NSLOOKUP-MIB 258 Provides access to the resolver gethostbyname() and gethostbyaddr() 259 functions at a remote host. 261 The ping and traceroute MIBs are structured to allow creation of ping or 262 traceroute tests that can be setup to periodically issue a series of 263 operations and generate NOTIFICATIONs to report on test results. Many 264 network administrators have in the past written UNIX shell scripts or 265 command batch files to operate in a similar fashion to the functionality 266 provided by the ping and traceroute MIBs defined within this memo. The 267 intent of this document is to acknowledge the importance of these 268 functions and to provide a standards based solution. 270 3.1 Ping MIB 272 The DISMAN-PING-MIB consists of the following components: 274 o pingMaxConcurrentRequests 276 o pingCtlTable 278 o pingResultsTable 280 o pingProbeHistoryTable 282 3.1.1 pingMaxConcurrentRequests 284 The object pingMaxConcurrentRequests enables control of the maximum 285 number of concurrent active requests that an agent implementation 286 supports. It is permissible for an agent to either limit the maximum 287 upper range allowed for this object or to implement this object as 288 read-only with an implementation limit expressed as its value. 290 3.1.2 pingCtlTable 292 A remote ping test is started by setting pingCtlAdminStatus to 293 enabled(1). The corresponding pingCtlEntry MUST have been created and 294 its pingCtlRowStatus set to active(1) prior to starting the test. A 295 single SNMP PDU can be used to create and start a remote ping test. 296 Within the PDU pingCtlTargetAddress should be set to the target host's 297 address (pingCtlTargetAddressType will default to ipv4(2)), 298 pingCtlAdminStatus to enabled(1), and pingCtlRowStatus to 299 createAndGo(4). 301 The 1st index element, pingCtlOwnerIndex, is of the SnmpAdminString 302 textual convention that allows for use of the SNMPv3 View-Based Access 303 Control Model (RFC 2575 [11], VACM) and allows an management application 304 to identify its entries. The 2nd index, pingCtlTestName (also an 305 SnmpAdminString), enables the same management application to have 306 multiple requests outstanding. 308 Using the maximum value for the parameters defined within an pingEntry 309 can result in a single remote ping test taking at most 15 minutes 310 (pingCtlTimeOut times pingCtlProbeCount) plus whatever time it takes to 311 send the ping request and receive its response over the network from the 312 target host. Use of the defaults for pingCtlTimeOut and 313 pingCtlProbeCount yields a maximum of 3 seconds to perform a "normal" 314 ping test. 316 A management application can delete an active remote ping request by 317 setting the corresponding pingCtlRowStatus object to destroy(6). 319 The contents of the pingCtlTable is preserved across reIPLs (Initial 320 Program Loads) of its agent according the values of each of the 321 pingCtlStorageType objects. 323 3.1.3 pingResultsTable 325 An entry in the pingResultsTable is created for a corresponding 326 pingCtlEntry once the test defined by this entry is started. 328 3.1.4 pingProbeHistoryTable 330 The results of past ping probes can be stored in this table on a per 331 pingCtlEntry basis. This table is initially indexed by 332 pingCtlOwnerIndex and pingCtlTestName in order for the results of a 333 probe to relate to the pingCtlEntry that caused it. The maximum number 334 of entries stored in this table per pingCtlEntry is determined by the 335 value of pingCtlMaxRows. 337 An implementation of this MIB will remove the oldest entry in the 338 pingProbeHistoryTable to allow the addition of an new entry once the 339 number of rows in the pingProbeHistoryTable reaches the value specified 340 by pingCtlMaxRows. An implementation MUST start assigning 341 pingProbeHistoryIndex values at 1 and wrap after exceeding the maximum 342 possible value as defined by the limit of this object ('ffffffff'h). 344 3.2 Traceroute MIB 346 The DISMAN-TRACEROUTE-MIB consists of the following components: 348 o traceRouteMaxConcurrentRequests 350 o traceRouteCtlTable 352 o traceRouteResultsTable 354 o traceRouteProbeHistoryTable 356 o traceRouteHopsTable 358 3.2.1 traceRouteMaxConcurrentRequests 360 The object traceRouteMaxConcurrentRequests enables control of the 361 maximum number of concurrent active requests that an agent 362 implementation supports. It is permissible for an agent to either limit 363 the maximum upper range allowed for this object or to implement this 364 object as read-only with an implementation limit expressed as its value. 366 3.2.2 traceRouteCtlTable 368 A remote traceroute test is started by setting traceRouteCtlAdminStatus 369 to enabled(1). The corresponding traceRouteCtlEntry MUST have been 370 created and its traceRouteCtlRowStatus set to active(1) prior to 371 starting the test. A single SNMP PDU can be used to create and start a 372 remote traceroute test. Within the PDU traceRouteCtlTargetAddress 373 should be set to the target host's address 374 (traceRouteCtlTargetAddressType will default to ipv4(2)), 375 traceRouteCtlAdminStatus to enabled(1), and traceRouteCtlRowStatus to 376 createAndGo(4). 378 The 1st index element, traceRouteCtlOwnerIndex, is of the 379 SnmpAdminString textual convention that allows for use of the SNMPv3 380 View-Based Access Control Model (RFC 2575 [11], VACM) and allows an 381 management application to identify its entries. The 2nd index, 382 traceRouteCtlTestName (also an SnmpAdminString), enables the same 383 management application to have multiple requests outstanding. 385 Traceroute has a much longer theoretical maximum time for completion 386 then ping. Basically 42 hours and 30 minutes (the product of 387 traceRouteCtlTimeOut, traceRouteCtlProbesPerHop, and 388 traceRouteCtlMaxTtl) plus some network transit time! Use of the 389 defaults defined within an traceRouteCtlEntry yields a maximum of 4 390 minutes and 30 seconds for a default traceroute operation. Clearly 42 391 plus hours is too long to wait for a traceroute operation to complete. 393 The maximum TTL value in effect for traceroute determines how long the 394 traceroute function will keep increasing the TTL value in the probe it 395 transmits hoping to reach the target host. The function ends whenever 396 the maximum TTL is exceeded or the target host is reached. The object 397 traceRouteCtlMaxFailures was created in order to impose a throttle for 398 how long traceroute continues to increase the TTL field in a probe 399 without receiving any kind of response (timeouts). It is RECOMMENDED 400 that agent implementations impose a time limit for how long it allows a 401 traceroute operation to take relative to how the function is 402 implemented. For example, an implementation that can't process multiple 403 traceroute operations at the same time SHOULD impose a shorter maximum 404 allowed time period. 406 A management application can delete an active remote traceroute request 407 by setting the corresponding traceRouteCtlRowStatus object to 408 destroy(6). 410 The contents of the traceRouteCtlTable is preserved across reIPLs 411 (Initial Program Loads) of its agent according the values of each of the 412 traceRouteCtlStorageType objects. 414 3.2.3 traceRouteResultsTable 415 An entry in the traceRouteResultsTable is created upon determining the 416 results of a specific traceroute operation. Entries in this table 417 relate back to the traceRouteCtlEntry that caused the corresponding 418 traceroute operation to occur. The objects traceRouteResultsCurHopCount 419 and traceRouteResultsCurProbeCount can be examined to determine how far 420 the current remote traceroute operation has reached. 422 3.2.4 traceRouteProbeHistoryTable 424 The results of past traceroute probes can be stored in this table on a 425 per traceRouteCtlEntry basis. This table is initially indexed by 426 traceRouteCtlOwnerIndex and traceRouteCtlTestName in order for the 427 results of a probe to relate to the traceRouteCtlEntry that caused it. 428 The number of entries stored in this table per traceRouteCtlEntry is 429 determined by the value of traceRouteCtlMaxRows. 431 An implementation of this MIB will remove the oldest entry in the 432 traceRouteProbeHistoryTable to allow the addition of an new entry once 433 the number of rows in the traceRouteProbeHistoryTable reaches the value 434 of traceRouteCtlMaxRows. An implementation MUST start assigning 435 traceRouteProbeHistoryIndex values at 1 and wrap after exceeding the 436 maximum possible value as defined by the limit of this object 437 ('ffffffff'h). 439 3.2.5 traceRouteHopsTable 441 The current traceroute path can be stored in this table on a per 442 traceRouteCtlEntry basis. This table is initially indexed by 443 traceRouteCtlOwnerIndex and traceRouteCtlTestName in order for a 444 traceroute path to relate to the traceRouteCtlEntry that caused it. A 445 third index, traceRouteHopsHopIndex, enables keeping one 446 traceRouteHopsEntry per traceroute hop. Creation of 447 traceRouteHopsTable entries is enabled by setting the corresponding 448 traceRouteCtlCreateHopsEntries object to true(1). 450 3.3 Lookup MIB 452 The DISMAN-NSLOOKUP-MIB consists of the following components: 454 o lookupMaxConcurrentRequests, and lookupPurgeTime 456 o lookupCtlTable 458 o lookupResultsTable 460 3.3.1 lookupMaxConcurrentRequests and lookupPurgeTime 462 The object lookupMaxConcurrentRequests enables control of the maximum 463 number of concurrent active requests that an agent implementation is 464 structured to support. It is permissible for an agent to either limit 465 the maximum upper range allowed for this object or to implement this 466 object as read-only with an implementation limit expressed as its value. 468 The object lookupPurgeTime provides a method for entries in the 469 lookupCtlTable and lookupResultsTable to be automatically deleted after 470 the corresponding operation completes. 472 3.3.2 lookupCtlTable 474 A remote lookup operation is initiated by performing an SNMP SET request 475 on lookupCtlRowStatus. A single SNMP PDU can be used to create and 476 start a remote lookup operation. Within the PDU lookupCtlTargetAddress 477 should be set to the entity to be resolved (lookupCtlTargetAddressType 478 will default to ipv4(2)) and lookupCtlRowStatus to createAndGo(4). The 479 object lookupCtlOperStatus can be examined to determine the state of an 480 lookup operation. A management application can delete an active remote 481 lookup request by setting the corresponding lookupCtlRowStatus object to 482 destroy(6). 484 An lookupCtlEntry is initially indexed by lookupCtlOwnerIndex, which is 485 of the SnmpAdminString textual convention that allows for use of the 486 SNMPv3 View-Based Access Control Model (RFC 2575 [11], VACM) and also 487 allows for a management application to identify its entries. The 488 lookupCtlOwnerIndex portion of the index is then followed by 489 lookupCtlOperationName. The lookupCtlOperationName index enables the 490 same lookupCtlOwnerIndex entity to have multiple outstanding requests. 492 The value of lookupCtlTargetAddressType determines which lookup function 493 to perform. Specification of dnsName(1) as the value of this index 494 implies that the gethostbyname function should be performed to determine 495 the numeric addresses associated with a symbolic name via 496 lookupResultsTable entries. Use of a value of either ipv4(2) or ipv6(3) 497 implies that the gethostbyaddr function should be performed to determine 498 the symbolic name(s) associated with a numeric address at a remote host. 500 3.3.3 lookupResultsTable 502 The lookupResultsTable is used to store the results of lookup 503 operations. The lookupResultsTable is initially indexed by the same 504 index elements that the lookupCtlTable contains (lookupCtlOwnerIndex and 505 lookupCtlOperationName) but has a third index element, 506 lookupResultsIndex (Unsigned32 textual convention), in order to 507 associate multiple results with the same lookupCtlEntry. 509 Both the gethostbyname and gethostbyaddr functions typically return a 510 pointer to a hostent structure after being called. The hostent 511 structure is defined as: 513 struct hostent { 514 char *h_name; /* offical host name */ 515 char *h_aliases[]; /* list of other aliases */ 516 int h_addrtype; /* host address type */ 517 int h_length; /* length of host address */ 518 char **h_addr_list; /* list of address for host */ 519 }; 521 The hostent structure is listed here in order to address the fact that a 522 remote host can be multi-homed and can have multiple symbolic (DNS) 523 names. It is not intended to imply that implementations of the 524 DISMAN-LOOKUP-MIB are limited to systems where the hostent structure is 525 supported. 527 The gethostbyaddr function is called with a host address as its 528 parameter and is used primarily to determine a symbolic name to 529 associate with the host address. Entries in the lookupResultsTable MUST 530 be made for each host name return. The official host name MUST be 531 assigned a lookupResultsIndex of 1. 533 The gethostbyname function is called with a symbolic host name and is 534 used primarily to retrieve a host address. Normally, the first 535 h_addr_list host address is considered to be the primary address and as 536 such is associated with the symbolic name passed on the call. 538 Entries MUST be stored in the lookupResultsTable in the order that they 539 are retrieved. Values assigned to lookupResultsIndex MUST start at 1 540 and increase in order. 542 An implementation SHOULD NOT retain SNMP-created entries in the 543 lookupTable across reIPLs (Initial Program Loads) of its agent, since 544 management applications need to see consistent behavior with respect to 545 the persistence of the table entries that they create. 547 4.0 Definitions 549 4.1 DISMAN-PING-MIB 551 DISMAN-PING-MIB DEFINITIONS ::= BEGIN 553 IMPORTS 554 MODULE-IDENTITY, OBJECT-TYPE, Integer32, 555 experimental, Counter32, Unsigned32, 556 NOTIFICATION-TYPE, OBJECT-IDENTITY 557 FROM SNMPv2-SMI -- RFC2578 558 TEXTUAL-CONVENTION, RowStatus, 559 StorageType, DateAndTime, TruthValue 560 FROM SNMPv2-TC -- RFC2579 561 MODULE-COMPLIANCE, OBJECT-GROUP, 562 NOTIFICATION-GROUP 563 FROM SNMPv2-CONF -- RFC2580 564 InterfaceIndexOrZero -- RFC2233 565 FROM IF-MIB 566 SnmpAdminString 567 FROM SNMP-FRAMEWORK-MIB; -- RFC2571 569 pingMIB MODULE-IDENTITY 570 LAST-UPDATED "9908280000Z" 571 ORGANIZATION "IETF Distributed Management Working Group" 572 CONTACT-INFO 573 "Kenneth White 575 International Business Machines Corporation 576 Network Computing Software Division 577 Research Triangle Park, NC, USA 579 E-mail: wkenneth@us.ibm.com" 580 DESCRIPTION 581 "The Ping MIB (DISMAN-PING-MIB) provides the capability of 582 controlling the use of the ping function at a remote 583 host." 584 -- Note: This OID should be reassigned by IANA when the internet-draft 585 -- containing this MIB module is issued as an RFC. 586 ::= { experimental 84 1 } 588 -- Textual Conventions 590 HostAddressType ::= TEXTUAL-CONVENTION 591 STATUS current 592 DESCRIPTION 593 "The textual convention for defining the type of 594 a destination address." 595 SYNTAX INTEGER { 596 none(0), 597 dnsName(1), -- Utf8string encoded DNS name 598 ipv4(2), -- ipv4 address 599 ipv6(3) -- ipv6 address 601 } 603 HostAddress ::= TEXTUAL-CONVENTION 604 STATUS current 605 DESCRIPTION 606 "The textual convention for specifying a host 607 address. The type of address can be determined 608 by examining the value of the preceding 609 HostAddressType object: 611 HostAddressType OCTETs ADDRESS TYPE 612 none(0) 0 not specified 613 dnsName(1) 1-255 DNS name 614 ipv4(2) 4 ipv4 615 ipv6(3) 16 ipv6" 616 SYNTAX OCTET STRING (SIZE (0..255)) 618 IpHostAddress ::= TEXTUAL-CONVENTION 619 STATUS current 620 DESCRIPTION 621 "The textual convention for specifying an IP host 622 address. The type of address can be determined 623 by the octet string length: 625 OCTETs ADDRESS TYPE 626 0 not specified 627 4 ipv4 628 16 ipv6" 629 SYNTAX OCTET STRING (SIZE (0..16)) 631 OperationResponseStatus ::= TEXTUAL-CONVENTION 632 STATUS current 633 DESCRIPTION 634 "Used to report the result of an operation: 636 responseReceived(1) - Operation completes successfully. 637 unknown(2) - Operation failed due to unknown error. 638 internalError(3) - An implementation detected an error 639 in its own processing that caused an operation 640 to fail. 641 requestTimedOut(4) - Operation failed to receive a 642 valid reply within the time limit imposed on it. 643 unknownDestinationAddress(5) - Invalid destination 644 address. 645 noRouteToTarget(6) - Could not find a route to target. 646 interfaceInactiveToTarget(7) - The interface to be 647 used in sending a probe is inactive without an 648 alternate route existing. 649 arpFailure(8) - Unable to resolve a target address to a 650 media specific address. 651 maxConcurrentLimitReached(9) - The maximum number of 652 concurrent active operations would have been exceeded 653 if the corresponding operation was allowed. 655 unableToResolveDnsName(10) - The DNS name specified was 656 unable to be mapped to an IP address. 657 invalidHostAddress(11) - The IP address for a host 658 has been determined to be invalid. Examples of this 659 are broadcast or multicast addresses." 660 SYNTAX INTEGER { 661 responseReceived(1), 662 unknown(2), 663 internalError(3), 664 requestTimedOut(4), 665 unknownDestinationAddress(5), 666 noRouteToTarget(6), 667 interfaceInactiveToTarget(7), 668 arpFailure(8), 669 maxConcurrentLimitReached(9), 670 unableToResolveDnsName(10), 671 invalidHostAddress(11) 672 } 674 -- Top level structure of the MIB 676 pingNotifications OBJECT IDENTIFIER ::= { pingMIB 0 } 677 pingObjects OBJECT IDENTIFIER ::= { pingMIB 1 } 678 pingConformance OBJECT IDENTIFIER ::= { pingMIB 2 } 680 -- The registration node (point) for ping implementation types 682 pingImplementationTypeDomains OBJECT IDENTIFIER ::= { pingMIB 3 } 684 pingIcmpEcho OBJECT-IDENTITY 685 STATUS current 686 DESCRIPTION 687 "Indicates that an implementation is using the InterNet 688 Control Message Protocol (ICMP) 'ECHO' facility." 689 ::= { pingImplementationTypeDomains 1 } 691 pingUdpEcho OBJECT-IDENTITY 692 STATUS current 693 DESCRIPTION 694 "Indicates that an implementation is using the udp echo 695 port (7)." 696 REFERENCE 697 "RFC 862, 'Echo Protocol'." 698 ::= { pingImplementationTypeDomains 2 } 700 pingSnmpQuery OBJECT-IDENTITY 701 STATUS current 702 DESCRIPTION 703 "Indicates that an implementation is an SNMP query to 704 calculate a round trip time." 705 ::= { pingImplementationTypeDomains 3 } 707 pingTcpConnectionAttempt OBJECT-IDENTITY 708 STATUS current 709 DESCRIPTION 710 "Indicates that an implementation is attempting to 711 connect to a TCP port in order to calculate a round 712 trip time." 713 ::= { pingImplementationTypeDomains 4 } 715 -- Simple Object Definitions 717 pingMaxConcurrentRequests OBJECT-TYPE 718 SYNTAX Unsigned32 719 UNITS "requests" 720 MAX-ACCESS read-write 721 STATUS current 722 DESCRIPTION 723 "The maximum number of concurrent active ping requests 724 that are allowed within an agent implementation. A value 725 of 0 for this object implies that there is no limit for 726 the number of concurrent active requests in effect." 727 DEFVAL { 10 } 728 ::= { pingObjects 1 } 730 -- Ping Control Table 732 pingCtlTable OBJECT-TYPE 733 SYNTAX SEQUENCE OF PingCtlEntry 734 MAX-ACCESS not-accessible 735 STATUS current 736 DESCRIPTION 737 "Defines the ping Control Table for providing, via SNMP, 738 the capability of performing ping operations at 739 a remote host. The results of these operations are 740 stored in the pingResultsTable and the 741 pingProbeHistoryTable." 742 ::= { pingObjects 2 } 744 pingCtlEntry OBJECT-TYPE 745 SYNTAX PingCtlEntry 746 MAX-ACCESS not-accessible 747 STATUS current 748 DESCRIPTION 749 "Defines an entry in the pingCtlTable. The 1st index 750 element, pingCtlOwnerIndex, is of the SnmpAdminString 751 textual convention that allows for use of the SNMPv3 752 View-Based Access Control Model (RFC 2575 [11], VACM) 753 and allows an management application to identify its 754 entries. The 2nd index, pingCtlTestName (also an 755 SnmpAdminString), enables the same management 756 application to have multiple outstanding requests." 757 INDEX { 758 pingCtlOwnerIndex, 759 pingCtlTestName 760 } 761 ::= { pingCtlTable 1 } 763 PingCtlEntry ::= 764 SEQUENCE { 765 pingCtlOwnerIndex SnmpAdminString, 766 pingCtlTestName SnmpAdminString, 767 pingCtlTargetAddressType HostAddressType, 768 pingCtlTargetAddress HostAddress, 769 pingCtlDataSize Unsigned32, 770 pingCtlTimeOut Unsigned32, 771 pingCtlProbeCount Unsigned32, 772 pingCtlAdminStatus INTEGER, 773 pingCtlDataFill OCTET STRING, 774 pingCtlFrequency Unsigned32, 775 pingCtlMaxRows Unsigned32, 776 pingCtlStorageType StorageType, 777 pingCtlTrapGeneration BITS, 778 pingCtlTrapFilter Unsigned32, 779 pingCtlType OBJECT IDENTIFIER, 780 pingCtlDescr SnmpAdminString, 781 pingCtlSourceAddress HostAddress, 782 pingCtlIfIndex InterfaceIndexOrZero, 783 pingCtlByPassRouteTable TruthValue, 784 pingCtlDSField Unsigned32, 785 pingCtlRowStatus RowStatus 786 } 788 pingCtlOwnerIndex OBJECT-TYPE 789 SYNTAX SnmpAdminString (SIZE(0..32)) 790 MAX-ACCESS not-accessible 791 STATUS current 792 DESCRIPTION 793 "To facilitate the provisioning of access control by a 794 security administrator using the View-Based Access 795 Control Model (RFC 2575, VACM) for tables in which 796 multiple users may need to independently create or 797 modify entries, the initial index is used as an 'owner 798 index'. Such an initial index has a syntax of 799 SnmpAdminString, and can thus be trivially mapped to a 800 securityName or groupName as defined in VACM, in 801 accordance with a security policy. 803 When used in conjunction with such a security policy all 804 entries in the table belonging to a particular user (or 805 group) will have the same value for this initial index. 806 For a given user's entries in a particular table, the 807 object identifiers for the information in these entries 808 will have the same subidentifiers (except for the 'column' 809 subidentifier) up to the end of the encoded owner index. 810 To configure VACM to permit access to this portion of the 811 table, one would create vacmViewTreeFamilyTable entries 812 with the value of vacmViewTreeFamilySubtree including 813 the owner index portion, and vacmViewTreeFamilyMask 814 'wildcarding' the column subidentifier. More elaborate 815 configurations are possible." 816 ::= { pingCtlEntry 1 } 818 pingCtlTestName OBJECT-TYPE 819 SYNTAX SnmpAdminString (SIZE(0..32)) 820 MAX-ACCESS not-accessible 821 STATUS current 822 DESCRIPTION 823 "The name of the ping test. This is locally unique, within 824 the scope of an pingCtlOwnerIndex." 825 ::= { pingCtlEntry 2 } 827 pingCtlTargetAddressType OBJECT-TYPE 828 SYNTAX HostAddressType 829 MAX-ACCESS read-create 830 STATUS current 831 DESCRIPTION 832 "Specifies the type of host address to be used at a remote host 833 for performing a ping operation." 834 DEFVAL { ipv4 } 835 ::= { pingCtlEntry 3 } 837 pingCtlTargetAddress OBJECT-TYPE 838 SYNTAX HostAddress 839 MAX-ACCESS read-create 840 STATUS current 841 DESCRIPTION 842 "Specifies the host address to be used at a remote host for 843 performing a ping operation. The host address type is 844 determined by the object value of corresponding 845 pingCtlTargetAddressType. 847 A value for this object MUST be set prior to transitioning 848 its corresponding pingCtlEntry to active(1) via 849 pingCtlRowStatus." 850 ::= { pingCtlEntry 4 } 852 pingCtlDataSize OBJECT-TYPE 853 SYNTAX Unsigned32 (0..65507) 854 UNITS "octets" 855 MAX-ACCESS read-create 856 STATUS current 857 DESCRIPTION 858 "Specifies the size of the data portion to be 859 transmitted in a ping operation in octets. A ping 860 request is usually an ICMP message encoded 861 into an IP packet. An IP packet has a maximum size 862 of 65535 octets. Subtracting the size of the ICMP 863 or UDP header (both 8 octets) and the size of the IP 864 header (20 octets) yields a maximum size of 65507 865 octets." 866 DEFVAL { 0 } 867 ::= { pingCtlEntry 5 } 869 pingCtlTimeOut OBJECT-TYPE 870 SYNTAX Unsigned32 (1..60) 871 UNITS "seconds" 872 MAX-ACCESS read-create 873 STATUS current 874 DESCRIPTION 875 "Specifies the time-out value, in seconds, for a 876 remote ping operation." 877 DEFVAL { 3 } 878 ::= { pingCtlEntry 6 } 880 pingCtlProbeCount OBJECT-TYPE 881 SYNTAX Unsigned32 (1..15) 882 UNITS "probes" 883 MAX-ACCESS read-create 884 STATUS current 885 DESCRIPTION 886 "Specifies the number of times to perform a ping 887 operation at a remote host." 888 DEFVAL { 1 } 889 ::= { pingCtlEntry 7 } 891 pingCtlAdminStatus OBJECT-TYPE 892 SYNTAX INTEGER { 893 enabled(1), -- test should be started 894 disabled(2) -- test should be stopped 895 } 896 MAX-ACCESS read-create 897 STATUS current 898 DESCRIPTION 899 "Reflects the desired state that a pingCtlEntry should be 900 in: 902 enabled(1) - Attempt to activate the test as defined by 903 this pingCtlEntry. 904 disabled(2) - Deactivate the test as defined by this 905 pingCtlEntry. 907 Refer to the corresponding pingResultsOperStatus to 908 determine the operational state of the test defined by 909 this entry." 910 DEFVAL { disabled } 911 ::= { pingCtlEntry 8 } 913 pingCtlDataFill OBJECT-TYPE 914 SYNTAX OCTET STRING (SIZE(0..1024)) 915 MAX-ACCESS read-create 916 STATUS current 917 DESCRIPTION 918 "The content of this object is used together with the 919 corresponding pingCtlDataSize value to determine how to 920 fill the data portion of a probe packet. The option of 921 selecting a data fill pattern can be useful when links 922 are compressed or have data pattern sensitivities. The 923 contents of pingCtlDataFill should be repeated in a ping 924 packet when the size of the data portion of the ping 925 packet is greater than the size of pingCtlDataFill." 926 DEFVAL { '00'H } 927 ::= { pingCtlEntry 9 } 929 pingCtlFrequency OBJECT-TYPE 930 SYNTAX Unsigned32 931 UNITS "seconds" 932 MAX-ACCESS read-create 933 STATUS current 934 DESCRIPTION 935 "The number of seconds to wait before repeating a ping test 936 as defined by the value of the various objects in the 937 corresponding row. 939 A single ping test consists of a series of ping probes. 940 The number of probes is determined by the value of the 941 corresponding pingCtlProbeCount object. After a single 942 test completes the number of seconds as defined by the 943 value of pingCtlFrequency MUST elapse before the 944 next ping test is started. 946 A value of 0 for this object implies that the test 947 as defined by the corresponding entry will not be 948 repeated." 949 DEFVAL { 0 } 950 ::= { pingCtlEntry 10 } 952 pingCtlMaxRows OBJECT-TYPE 953 SYNTAX Unsigned32 954 UNITS "rows" 955 MAX-ACCESS read-create 956 STATUS current 957 DESCRIPTION 958 "The maximum number of entries allowed in the 959 pingProbeHistoryTable. An implementation of this 960 MIB will remove the oldest entry in the 961 pingProbeHistoryTable to allow the addition of an 962 new entry once the number of rows in the 963 pingProbeHistoryTable reaches this value. 965 Old entries are not removed when a new test is 966 started. Entries are added to the pingProbeHistoryTable 967 until pingCtlMaxRows is reached before entries begin to 968 be removed. 970 A value of 0 for this object disables creation of 971 pingProbeHistoryTable entries." 972 DEFVAL { 50 } 973 ::= { pingCtlEntry 11 } 975 pingCtlStorageType OBJECT-TYPE 976 SYNTAX StorageType 977 MAX-ACCESS read-create 978 STATUS current 979 DESCRIPTION 980 "The storage type for this conceptual row. 981 Conceptual rows having the value 'permanent' need not 982 allow write-access to any columnar objects in the row." 983 DEFVAL { nonVolatile } 984 ::= { pingCtlEntry 12 } 986 pingCtlTrapGeneration OBJECT-TYPE 987 SYNTAX BITS { 988 probeFailure(0), 989 testFailure(1), 990 testCompletion(2) 991 } 992 MAX-ACCESS read-create 993 STATUS current 994 DESCRIPTION 995 "The value of this object determines when and if to 996 to generation a notification for this entry: 998 probeFailure(0) - Generate a pingProbeFailed 999 notification subject to the value of 1000 pingCtlTrapFilter. pingCtlTrapFilter can be used 1001 to specify the number of successive probe failures 1002 that are required before a pingProbeFailed 1003 notification can be generated. 1004 testFailure(1) - Generate a pingTestFailed 1005 notification. In this instance pingCtlTrapFilter 1006 should specify the number of probe failures 1007 required in a test to have failed in order to 1008 considered the test as failed. 1009 testCompletion(2) - Generate a pingTestCompleted 1010 notification. 1012 The value of this object defaults to zero, indicating 1013 that none of the above options have been selected." 1014 ::= { pingCtlEntry 13 } 1016 pingCtlTrapFilter OBJECT-TYPE 1017 SYNTAX Unsigned32 (0..15) 1018 MAX-ACCESS read-create 1019 STATUS current 1020 DESCRIPTION 1021 "The value of this object is used to determine when 1022 to generate either a pingProbeFailed or a 1023 pingTestFailed NOTIFICATION. Which NOTIFICATION 1024 to generate is determined by the value of 1025 pingCtlTrapGeneration. 1027 Setting pingCtlTrapGeneration 1028 to probeFailure(2) implies that a pingProbeFailed 1029 NOTIFICATION is generated only when the number of 1030 successive probe failures as indicated by the 1031 value of pingCtlTrapFilter fail within a given ping 1032 test. 1034 Setting pingCtlTrapGeneration to testFailure(3) 1035 implies that a pingTestFailed NOTIFICATION is 1036 generated only when the number of ping failures 1037 within a test exceed the value of 1038 pingCtlTrapFilter." 1039 DEFVAL { 1 } 1040 ::= { pingCtlEntry 14 } 1042 pingCtlType OBJECT-TYPE 1043 SYNTAX OBJECT IDENTIFIER 1044 MAX-ACCESS read-create 1045 STATUS current 1046 DESCRIPTION 1047 "The value of this object is used to either report or 1048 select the implementation method to be used for 1049 calculating a ping response time. The value of this 1050 object MAY be selected from pingImplementationTypeDomains. 1052 Additional implementation types SHOULD be allocated as 1053 required by implementers of the DISMAN-PING-MIB under 1054 their enterprise specific registration point and not 1055 beneath pingImplementationTypeDomains." 1056 DEFVAL { pingIcmpEcho } 1057 ::= { pingCtlEntry 15 } 1059 pingCtlDescr OBJECT-TYPE 1060 SYNTAX SnmpAdminString 1061 MAX-ACCESS read-create 1062 STATUS current 1063 DESCRIPTION 1064 "The purpose of this object is to provide a 1065 descriptive name of the remote ping test." 1066 DEFVAL { '00'H } 1067 ::= { pingCtlEntry 16 } 1069 pingCtlSourceAddress OBJECT-TYPE 1070 SYNTAX HostAddress 1071 MAX-ACCESS read-create 1072 STATUS current 1073 DESCRIPTION 1074 "Use the specified IP address (which must be given 1075 as an IP number, not a hostname) as the source 1076 address in outgoing probe packets. On hosts with 1077 more than one IP address, this option can be used 1078 to force the source address to be something other 1079 than the primary IP address of the interface the 1080 probe packet is sent on. If the IP address is not 1081 one of this machine's interface addresses, an error 1082 is returned and nothing is sent. A zero length 1083 octet string value for this object disables source 1084 address specification. 1086 The address type (HostAddressType) that relates to 1087 this object is specified by the corresponding value 1088 of pingCtlTargetAddressType." 1089 DEFVAL { ''H } 1090 ::= { pingCtlEntry 17 } 1092 pingCtlIfIndex OBJECT-TYPE 1093 SYNTAX InterfaceIndexOrZero 1094 MAX-ACCESS read-create 1095 STATUS current 1096 DESCRIPTION 1097 "Setting this object to an interface's ifIndex prior 1098 to starting a remote ping operation directs 1099 the ping probes to be transmitted over the 1100 specified interface. A value of zero for this object 1101 implies that this option is not enabled." 1102 DEFVAL { 0 } 1103 ::= { pingCtlEntry 18 } 1105 pingCtlByPassRouteTable OBJECT-TYPE 1106 SYNTAX TruthValue 1107 MAX-ACCESS read-create 1108 STATUS current 1109 DESCRIPTION 1110 "The purpose of this object is to optionally enable 1111 bypassing the route table. If enabled, the remote 1112 host will bypass the normal routing tables and send 1113 directly to a host on an attached network. If the 1114 host is not on a directly-attached network, an 1115 error is returned. This option can be used to perform 1116 the ping operation to a local host through an 1117 interface that has no route defined (e.g., after the 1118 interface was dropped by routed)." 1119 DEFVAL { false } 1120 ::= { pingCtlEntry 19 } 1122 pingCtlDSField OBJECT-TYPE 1123 SYNTAX Unsigned32 (0..255) 1124 MAX-ACCESS read-create 1125 STATUS current 1126 DESCRIPTION 1127 "Specifies the value to store in the Differentiated 1128 Services (DS) Field in the IP packet used to 1129 encapsulate the ping probe. The DS Field is defined 1130 as the Type of Service (TOS) octet in a IPv4 header 1131 or as the Traffic Class octet in a IPv6 header. 1133 The value of this object must be a decimal integer 1134 in the range from 0 to 255. This option can be used 1135 to determine what effect an explicit DS Field setting 1136 has on a ping response. Not all values are legal or 1137 meaningful. DS Field usage is often not supported 1138 by IP implementations and not all values are supported. 1139 Refer to RFC 2474 for guidance on usage of this field." 1140 REFERENCE 1141 "Refer to RFC 2474 for the definition of the 1142 Differentiated Services Field and to RFC 1812 1143 Section 5.3.2 for Type of Service (TOS)." 1144 DEFVAL { 0 } 1145 ::= { pingCtlEntry 20 } 1147 pingCtlRowStatus OBJECT-TYPE 1148 SYNTAX RowStatus 1149 MAX-ACCESS read-create 1150 STATUS current 1151 DESCRIPTION 1152 "This object allows entries to be created and deleted 1153 in the pingCtlTable. Deletion of an entry in this 1154 table results in all corresponding (same 1155 pingCtlOwnerIndex and pingCtlTestName index values) 1156 pingResultsTable and pingProbeHistoryTable entries 1157 being deleted. 1159 A value MUST be specified for pingCtlTargetAddress 1160 prior to a transition to active(1) state being 1161 accepted. 1163 Activation of a remote ping operation is controlled 1164 via pingCtlAdminStatus and not by transitioning of 1165 this object's value to active(1). 1167 Transitions in and out of active(1) state are not 1168 allowed while an entry's pingResultsOperStatus is 1169 active(1) with the exception that deletion of 1170 an entry in this table by setting its RowStatus 1171 object to destroy(6) will stop an active 1172 ping operation. 1174 The operational state of a ping operation 1175 can be determined by examination of its 1176 pingResultsOperStatus object." 1177 REFERENCE 1178 "RFC 2579, 'Textual Conventions for SMIv2.'" 1179 ::= { pingCtlEntry 21 } 1181 -- Ping Results Table 1182 pingResultsTable OBJECT-TYPE 1183 SYNTAX SEQUENCE OF PingResultsEntry 1184 MAX-ACCESS not-accessible 1185 STATUS current 1186 DESCRIPTION 1187 "Defines the Ping Results Table for providing 1188 the capability of performing ping operations at 1189 a remote host. The results of these operations are 1190 stored in the pingResultsTable and the pingPastProbeTable. 1192 An entry is added to the pingResultsTable when an 1193 pingCtlEntry is started by successful transition 1194 of its pingCtlAdminStatus object to enabled(1). 1195 An entry is removed from the pingResultsTable when 1196 its corresponding pingCtlEntry is deleted." 1197 ::= { pingObjects 3 } 1199 pingResultsEntry OBJECT-TYPE 1200 SYNTAX PingResultsEntry 1201 MAX-ACCESS not-accessible 1202 STATUS current 1203 DESCRIPTION 1204 "Defines an entry in the pingResultsTable. The 1205 pingResultsTable has the same indexing as the 1206 pingCtlTable in order for a pingResultsEntry to 1207 correspond to the pingCtlEntry that caused it to 1208 be created." 1209 INDEX { 1210 pingCtlOwnerIndex, 1211 pingCtlTestName 1212 } 1213 ::= { pingResultsTable 1 } 1215 PingResultsEntry ::= 1216 SEQUENCE { 1217 pingResultsOperStatus INTEGER, 1218 pingResultsIpTargetAddress IpHostAddress, 1219 pingResultsMinRtt Unsigned32, 1220 pingResultsMaxRtt Unsigned32, 1221 pingResultsAverageRtt Unsigned32, 1222 pingResultsProbeResponses Counter32, 1223 pingResultsSentProbes Counter32, 1224 pingResultsRttSumOfSquares Unsigned32, 1225 pingResultsLastGoodProbe DateAndTime 1226 } 1228 pingResultsOperStatus OBJECT-TYPE 1229 SYNTAX INTEGER { 1230 enabled(1), -- test is in progress 1231 disabled(2) -- test has stopped 1232 } 1233 MAX-ACCESS read-only 1234 STATUS current 1235 DESCRIPTION 1236 "Reflects the operational state of a pingCtlEntry: 1238 enabled(1) - Test is active. 1239 disabled(2) - Test has stopped." 1240 ::= { pingResultsEntry 1 } 1242 pingResultsIpTargetAddress OBJECT-TYPE 1243 SYNTAX IpHostAddress 1244 MAX-ACCESS read-only 1245 STATUS current 1246 DESCRIPTION 1247 "This objects reports the IP address associated 1248 with a pingCtlTargetAddress value when the destination 1249 address is specified as a DNS name. The value of 1250 this object should be a zero length octet string 1251 when a DNS name is not specified or when a 1252 specified DNS name fails to resolve." 1253 ::= { pingResultsEntry 2 } 1255 pingResultsMinRtt OBJECT-TYPE 1256 SYNTAX Unsigned32 1257 UNITS "milliseconds" 1258 MAX-ACCESS read-only 1259 STATUS current 1260 DESCRIPTION 1261 "The minimum ping round-trip-time (RTT) received. A value 1262 of 0 for this object implies that no RTT has been received." 1263 ::= { pingResultsEntry 3 } 1265 pingResultsMaxRtt OBJECT-TYPE 1266 SYNTAX Unsigned32 1267 UNITS "milliseconds" 1268 MAX-ACCESS read-only 1269 STATUS current 1270 DESCRIPTION 1271 "The maximum ping round-trip-time (RTT) received. A value 1272 of 0 for this object implies that no RTT has been received." 1273 ::= { pingResultsEntry 4 } 1275 pingResultsAverageRtt OBJECT-TYPE 1276 SYNTAX Unsigned32 1277 UNITS "milliseconds" 1278 MAX-ACCESS read-only 1279 STATUS current 1280 DESCRIPTION 1281 "The current average ping round-trip-time (RTT)." 1282 ::= { pingResultsEntry 5 } 1284 pingResultsProbeResponses OBJECT-TYPE 1285 SYNTAX Counter32 1286 UNITS "responses" 1287 MAX-ACCESS read-only 1288 STATUS current 1289 DESCRIPTION 1290 "Number of responses received for the corresponding 1291 pingCtlEntry and pingResultsEntry. The value of this object 1292 MUST be reported as 0 when no probe responses have been 1293 received." 1294 ::= { pingResultsEntry 6 } 1296 pingResultsSentProbes OBJECT-TYPE 1297 SYNTAX Counter32 1298 UNITS "probes" 1299 MAX-ACCESS read-only 1300 STATUS current 1301 DESCRIPTION 1302 "The value of this object reflects the number of probes sent 1303 for the corresponding pingCtlEntry and pingResultsEntry. 1304 The value of this object MUST be reported as 0 when no probes 1305 have been sent." 1306 ::= { pingResultsEntry 7 } 1308 pingResultsRttSumOfSquares OBJECT-TYPE 1309 SYNTAX Unsigned32 1310 UNITS "milliseconds" 1311 MAX-ACCESS read-only 1312 STATUS current 1313 DESCRIPTION 1314 "This object contains the sum of the squares for all ping 1315 responses received. Its purpose is to enable standard 1316 deviation calculation. The value of this object MUST 1317 be reported as 0 when no ping responses have been 1318 received." 1319 ::= { pingResultsEntry 8 } 1321 pingResultsLastGoodProbe OBJECT-TYPE 1322 SYNTAX DateAndTime 1323 MAX-ACCESS read-only 1324 STATUS current 1325 DESCRIPTION 1326 "Date and time when the last response was received for 1327 a probe." 1328 ::= { pingResultsEntry 9 } 1330 -- Ping Probe History Table 1332 pingProbeHistoryTable OBJECT-TYPE 1333 SYNTAX SEQUENCE OF PingProbeHistoryEntry 1334 MAX-ACCESS not-accessible 1335 STATUS current 1336 DESCRIPTION 1337 "Defines a table for storing the results of a ping 1338 operation. Entries in this table are limited by 1339 the value of the corresponding pingCtlMaxRows 1340 object. 1342 An entry in this table is created when the result of 1343 a ping probe is determined. The initial 2 instance 1344 identifier index values identify the pingCtlEntry 1345 that a probe result (pingProbeHistoryEntry) belongs 1346 to. An entry is removed from this table when 1347 its correspoding pingCtlEntry is deleted. 1349 An implementation of this MIB will remove the oldest 1350 entry in the pingProbeHistoryTable to allow the 1351 addition of an new entry once the number of rows in 1352 the pingProbeHistoryTable reaches the value specified 1353 by pingCtlMaxRows." 1354 ::= { pingObjects 4 } 1356 pingProbeHistoryEntry OBJECT-TYPE 1357 SYNTAX PingProbeHistoryEntry 1358 MAX-ACCESS not-accessible 1359 STATUS current 1360 DESCRIPTION 1361 "Defines an entry in the pingProbeHistoryTable. 1362 The first two index elements identify the 1363 pingCtlEntry that a pingProbeHistoryEntry belongs 1364 to. The 3rd index element selects a single 1365 probe result." 1366 INDEX { 1367 pingCtlOwnerIndex, 1368 pingCtlTestName, 1369 pingProbeHistoryIndex 1370 } 1371 ::= { pingProbeHistoryTable 1 } 1373 PingProbeHistoryEntry ::= 1374 SEQUENCE { 1375 pingProbeHistoryIndex Unsigned32, 1376 pingProbeHistoryResponse Unsigned32, 1377 pingProbeHistoryStatus OperationResponseStatus, 1378 pingProbeHistoryLastRC Integer32, 1379 pingProbeHistoryTime DateAndTime 1380 } 1382 pingProbeHistoryIndex OBJECT-TYPE 1383 SYNTAX Unsigned32 (1..'ffffffff'h) 1384 MAX-ACCESS not-accessible 1385 STATUS current 1386 DESCRIPTION 1387 "An entry in this table is created when the result of 1388 a ping probe is determined. The initial 2 instance 1389 identifier index values identify the pingCtlEntry 1390 that a probe result (pingProbeHistoryEntry) belongs 1391 to. 1393 An implementation MUST start assigning 1394 pingProbeHistoryIndex values at 1 and wrap after 1395 exceeding the maximum possible value as defined by 1396 the limit of this object ('ffffffff'h)." 1397 ::= { pingProbeHistoryEntry 1 } 1399 pingProbeHistoryResponse OBJECT-TYPE 1400 SYNTAX Unsigned32 1401 UNITS "milliseconds" 1402 MAX-ACCESS read-only 1403 STATUS current 1404 DESCRIPTION 1405 "The amount of time measured in milliseconds from when 1406 a probe was sent to when its response was received or 1407 when it timed out. The value of this object is reported 1408 as 0 when it is not possible to transmit a probe." 1409 ::= { pingProbeHistoryEntry 2 } 1411 pingProbeHistoryStatus OBJECT-TYPE 1412 SYNTAX OperationResponseStatus 1413 MAX-ACCESS read-only 1414 STATUS current 1415 DESCRIPTION 1416 "The result of a ping operation made by a remote host 1417 for a particular probe." 1418 ::= { pingProbeHistoryEntry 3 } 1420 pingProbeHistoryLastRC OBJECT-TYPE 1421 SYNTAX Integer32 1422 MAX-ACCESS read-only 1423 STATUS current 1424 DESCRIPTION 1425 "The last implementation method specific reply code received. 1426 If the ICMP Echo capability is being used then a successful 1427 probe ends when an ICMP response is received that contains 1428 the code ICMP_ECHOREPLY(0). The ICMP responses are defined 1429 normally in the ip_icmp include file." 1430 ::= { pingProbeHistoryEntry 4 } 1432 pingProbeHistoryTime OBJECT-TYPE 1433 SYNTAX DateAndTime 1434 MAX-ACCESS read-only 1435 STATUS current 1436 DESCRIPTION 1437 "Timestamp for when this probe result was determined." 1438 ::= { pingProbeHistoryEntry 5 } 1440 -- Notification Definition section 1442 pingProbeFailed NOTIFICATION-TYPE 1443 OBJECTS { 1444 pingCtlTargetAddressType, 1445 pingCtlTargetAddress, 1446 pingResultsOperStatus, 1447 pingResultsIpTargetAddress, 1448 pingResultsMinRtt, 1449 pingResultsMaxRtt, 1450 pingResultsAverageRtt, 1451 pingResultsProbeResponses, 1452 pingResultsSentProbes, 1453 pingResultsRttSumOfSquares, 1454 pingResultsLastGoodProbe 1455 } 1456 STATUS current 1457 DESCRIPTION 1458 "Generated when a probe failure is detected when the 1459 corresponding pingCtlTrapGeneration object is set to 1460 probeFailure(2) subject to the value of pingCtlTrapFilter. 1461 pingCtlTrapFilter can be used to specify the number of 1462 successive probe failures that are required before this 1463 notification can be generated." 1464 ::= { pingNotifications 1 } 1466 pingTestFailed NOTIFICATION-TYPE 1467 OBJECTS { 1468 pingCtlTargetAddressType, 1469 pingCtlTargetAddress, 1470 pingResultsOperStatus, 1471 pingResultsIpTargetAddress, 1472 pingResultsMinRtt, 1473 pingResultsMaxRtt, 1474 pingResultsAverageRtt, 1475 pingResultsProbeResponses, 1476 pingResultsSentProbes, 1477 pingResultsRttSumOfSquares, 1478 pingResultsLastGoodProbe 1479 } 1480 STATUS current 1481 DESCRIPTION 1482 "Generated when a ping test is determined to have failed 1483 when the corresponding pingCtlTrapGeneration object is 1484 set to testFailure(3). In this instance 1485 pingCtlTrapFilter should specify the number of probe 1486 failures required in a test to have failed in order to 1487 considered the test as failed." 1488 ::= { pingNotifications 2 } 1490 pingTestCompleted NOTIFICATION-TYPE 1491 OBJECTS { 1492 pingCtlTargetAddressType, 1493 pingCtlTargetAddress, 1494 pingResultsOperStatus, 1495 pingResultsIpTargetAddress, 1496 pingResultsMinRtt, 1497 pingResultsMaxRtt, 1498 pingResultsAverageRtt, 1499 pingResultsProbeResponses, 1500 pingResultsSentProbes, 1501 pingResultsRttSumOfSquares, 1502 pingResultsLastGoodProbe 1503 } 1504 STATUS current 1505 DESCRIPTION 1506 "Generated at the completion of a ping test when the 1507 corresponding pingCtlTrapGeneration object is set to 1508 testCompletion(4)." 1509 ::= { pingNotifications 3 } 1511 -- Conformance information 1512 -- Compliance statements 1514 pingCompliances OBJECT IDENTIFIER ::= { pingConformance 1 } 1515 pingGroups OBJECT IDENTIFIER ::= { pingConformance 2 } 1517 -- Compliance statements 1519 pingCompliance MODULE-COMPLIANCE 1520 STATUS current 1521 DESCRIPTION 1522 "The compliance statement for the DISMAN-PING-MIB." 1523 MODULE -- this module 1524 MANDATORY-GROUPS { 1525 pingGroup, 1526 pingNotificationsGroup 1527 } 1528 GROUP pingTimeStampGroup 1529 DESCRIPTION 1530 "This group is mandatory for implementations that have 1531 access to a system clock and are capable of setting 1532 the values for DateAndTime objects. It is RECOMMENDED 1533 that when this group is not supported that the values 1534 for the objects in this group be reported as 1535 '0000000000000000'H." 1537 OBJECT pingMaxConcurrentRequests 1538 MIN-ACCESS read-only 1539 DESCRIPTION 1540 "The agent is not required to support a SET 1541 operation to this object." 1543 OBJECT pingCtlStorageType 1544 MIN-ACCESS read-only 1545 DESCRIPTION 1546 "Write access is not required. It is also allowed 1547 for implementations to support only the volatile 1548 StorageType enumeration." 1550 OBJECT pingCtlType 1551 MIN-ACCESS read-only 1552 DESCRIPTION 1553 "Write access is not required. In addition, the only 1554 value that MUST be supported by an implementation is 1555 pingIcmpEcho." 1557 OBJECT pingCtlByPassRouteTable 1558 MIN-ACCESS read-only 1559 DESCRIPTION 1560 "This object is not required by implementations that 1561 are not capable of its implementation. The function 1562 represented by this object is implementable if the 1563 setsockopt SOL_SOCKET SO_DONTROUTE option is 1564 supported." 1566 OBJECT pingCtlSourceAddress 1567 MIN-ACCESS read-only 1568 DESCRIPTION 1569 "This object is not required by implementations that 1570 are not capable of binding the send socket with a 1571 source address." 1573 OBJECT pingCtlIfIndex 1574 MIN-ACCESS read-only 1575 DESCRIPTION 1576 "Write access is not required. When write access is 1577 not supported return a 0 as the value of this object. 1578 A value of 0 implies that the function represented by 1579 this option is not supported." 1581 OBJECT pingCtlDSField 1582 MIN-ACCESS read-only 1583 DESCRIPTION 1584 "Write access is not required. When write access is 1585 not supported return a 0 as the value of this object. 1586 A value of 0 implies that the function represented by 1587 this option is not supported." 1589 ::= { pingCompliances 1 } 1591 -- MIB groupings 1593 pingGroup OBJECT-GROUP 1594 OBJECTS { 1595 pingMaxConcurrentRequests, 1596 pingCtlTargetAddressType, 1597 pingCtlTargetAddress, 1598 pingCtlDataSize, 1599 pingCtlTimeOut, 1600 pingCtlProbeCount, 1601 pingCtlAdminStatus, 1602 pingCtlDataFill, 1603 pingCtlFrequency, 1604 pingCtlMaxRows, 1605 pingCtlStorageType, 1606 pingCtlTrapGeneration, 1607 pingCtlTrapFilter, 1608 pingCtlType, 1609 pingCtlDescr, 1610 pingCtlByPassRouteTable, 1611 pingCtlSourceAddress, 1612 pingCtlIfIndex, 1613 pingCtlDSField, 1614 pingCtlRowStatus, 1615 pingResultsOperStatus, 1616 pingResultsIpTargetAddress, 1617 pingResultsMinRtt, 1618 pingResultsMaxRtt, 1619 pingResultsAverageRtt, 1620 pingResultsProbeResponses, 1621 pingResultsSentProbes, 1622 pingResultsRttSumOfSquares, 1623 pingProbeHistoryResponse, 1624 pingProbeHistoryStatus, 1625 pingProbeHistoryLastRC 1626 } 1627 STATUS current 1628 DESCRIPTION 1629 "The group of objects that comprise the remote ping 1630 capability." 1631 ::= { pingGroups 1 } 1633 pingTimeStampGroup OBJECT-GROUP 1634 OBJECTS { 1635 pingResultsLastGoodProbe, 1636 pingProbeHistoryTime 1637 } 1638 STATUS current 1639 DESCRIPTION 1640 "The group of DateAndTime objects." 1641 ::= { pingGroups 2 } 1643 pingNotificationsGroup NOTIFICATION-GROUP 1644 NOTIFICATIONS { 1645 pingProbeFailed, 1646 pingTestFailed, 1647 pingTestCompleted 1648 } 1649 STATUS current 1650 DESCRIPTION 1651 "The notification which are required to be supported by 1652 implementations of this MIB." 1653 ::= { pingGroups 3 } 1655 END 1657 4.2 DISMAN-TRACEROUTE-MIB 1659 DISMAN-TRACEROUTE-MIB DEFINITIONS ::= BEGIN 1661 IMPORTS 1662 MODULE-IDENTITY, OBJECT-TYPE, Integer32, 1663 experimental, Gauge32, Unsigned32, 1664 Counter32, NOTIFICATION-TYPE, 1665 OBJECT-IDENTITY 1666 FROM SNMPv2-SMI -- RFC2578 1667 RowStatus, StorageType, 1668 TruthValue, DateAndTime 1669 FROM SNMPv2-TC -- RFC2579 1670 MODULE-COMPLIANCE, OBJECT-GROUP, 1671 NOTIFICATION-GROUP 1672 FROM SNMPv2-CONF -- RFC2580 1673 SnmpAdminString 1674 FROM SNMP-FRAMEWORK-MIB -- RFC2571 1675 InterfaceIndexOrZero -- RFC2233 1676 FROM IF-MIB 1677 HostAddressType, HostAddress, 1678 IpHostAddress, OperationResponseStatus 1679 FROM DISMAN-PING-MIB; 1681 traceRouteMIB MODULE-IDENTITY 1682 LAST-UPDATED "9908280000Z" 1683 ORGANIZATION "IETF Distributed Management Working Group" 1684 CONTACT-INFO 1685 "Kenneth White 1687 International Business Machines Corporation 1688 Network Computing Software Division 1689 Research Triangle Park, NC, USA 1691 E-mail: wkenneth@us.ibm.com" 1692 DESCRIPTION 1693 "The Traceroute MIB (DISMAN-TRACEROUTE-MIB) provides 1694 access to the traceroute capability at a remote host." 1695 -- Note: This OID should be reassigned by IANA when the internet-draft 1696 -- containing this MIB module is issued as an RFC. 1697 ::= { experimental 84 2 } 1699 -- Top level structure of the MIB 1701 traceRouteNotifications OBJECT IDENTIFIER ::= { traceRouteMIB 0 } 1702 traceRouteObjects OBJECT IDENTIFIER ::= { traceRouteMIB 1 } 1703 traceRouteConformance OBJECT IDENTIFIER ::= { traceRouteMIB 2 } 1705 -- The registration node (point) for traceroute implementation types 1707 traceRouteImplementationTypeDomains OBJECT IDENTIFIER 1708 ::= { traceRouteMIB 3 } 1709 traceRouteUsingUdpProbes OBJECT-IDENTITY 1710 STATUS current 1711 DESCRIPTION 1712 "Indicates that an implementation is using udp probes to 1713 perform the traceroute operation." 1714 ::= { traceRouteImplementationTypeDomains 1 } 1716 -- Simple Object Definitions 1718 traceRouteMaxConcurrentRequests OBJECT-TYPE 1719 SYNTAX Unsigned32 1720 UNITS "requests" 1721 MAX-ACCESS read-write 1722 STATUS current 1723 DESCRIPTION 1724 "The maximum number of concurrent active traceroute requests 1725 that are allowed within an agent implementation. A value 1726 of 0 for this object implies that there is no limit for 1727 the number of concurrent active requests in effect." 1728 DEFVAL { 10 } 1729 ::= { traceRouteObjects 1 } 1731 -- Traceroute Control Table 1733 traceRouteCtlTable OBJECT-TYPE 1734 SYNTAX SEQUENCE OF TraceRouteCtlEntry 1735 MAX-ACCESS not-accessible 1736 STATUS current 1737 DESCRIPTION 1738 "Defines the Remote Operations Traceroute Control Table for 1739 providing the capability of invoking traceroute from a remote 1740 host. The results of traceroute operations can be stored in 1741 the traceRouteResultsTable, traceRouteProbeHistoryTable, and 1742 the traceRouteHopsTable." 1743 ::= { traceRouteObjects 2 } 1745 traceRouteCtlEntry OBJECT-TYPE 1746 SYNTAX TraceRouteCtlEntry 1747 MAX-ACCESS not-accessible 1748 STATUS current 1749 DESCRIPTION 1750 "Defines an entry in the traceRouteCtlTable. The 1st 1751 index element, traceRouteCtlOwnerIndex, is of the 1752 SnmpAdminString textual convention that allows for 1753 use of the SNMPv3 View-Based Access Control Model 1754 (RFC 2575 [11], VACM) and allows an management 1755 application to identify its entries. The 2nd index, 1756 traceRouteCtlTestName (also an SnmpAdminString), 1757 enables the same management application to have 1758 multiple requests outstanding." 1760 INDEX { 1761 traceRouteCtlOwnerIndex, 1762 traceRouteCtlTestName 1763 } 1764 ::= { traceRouteCtlTable 1 } 1766 TraceRouteCtlEntry ::= 1767 SEQUENCE { 1768 traceRouteCtlOwnerIndex SnmpAdminString, 1769 traceRouteCtlTestName SnmpAdminString, 1770 traceRouteCtlTargetAddressType HostAddressType, 1771 traceRouteCtlTargetAddress HostAddress, 1772 traceRouteCtlByPassRouteTable TruthValue, 1773 traceRouteCtlDataSize Unsigned32, 1774 traceRouteCtlTimeOut Unsigned32, 1775 traceRouteCtlProbesPerHop Unsigned32, 1776 traceRouteCtlPort Unsigned32, 1777 traceRouteCtlMaxTtl Unsigned32, 1778 traceRouteCtlDSField Unsigned32, 1779 traceRouteCtlSourceAddress HostAddress, 1780 traceRouteCtlIfIndex InterfaceIndexOrZero, 1781 traceRouteCtlMiscOptions SnmpAdminString, 1782 traceRouteCtlMaxFailures Unsigned32, 1783 traceRouteCtlDontFragment TruthValue, 1784 traceRouteCtlInitialTtl Unsigned32, 1785 traceRouteCtlFrequency Unsigned32, 1786 traceRouteCtlStorageType StorageType, 1787 traceRouteCtlAdminStatus INTEGER, 1788 traceRouteCtlMaxRows Unsigned32, 1789 traceRouteCtlTrapGeneration BITS, 1790 traceRouteCtlDescr SnmpAdminString, 1791 traceRouteCtlCreateHopsEntries TruthValue, 1792 traceRouteCtlType OBJECT IDENTIFIER, 1793 traceRouteCtlRowStatus RowStatus 1794 } 1796 traceRouteCtlOwnerIndex OBJECT-TYPE 1797 SYNTAX SnmpAdminString (SIZE(0..32)) 1798 MAX-ACCESS not-accessible 1799 STATUS current 1800 DESCRIPTION 1801 "To facilitate the provisioning of access control by a 1802 security administrator using the View-Based Access 1803 Control Model (RFC 2575, VACM) for tables in which 1804 multiple users may need to independently create or 1805 modify entries, the initial index is used as an 'owner 1806 index'. Such an initial index has a syntax of 1807 SnmpAdminString, and can thus be trivially mapped to a 1808 securityName or groupName as defined in VACM, in 1809 accordance with a security policy. 1811 When used in conjunction with such a security policy 1812 all entries in the table belonging to a particular user 1813 (or group) will have the same value for this initial 1814 index. For a given user's entries in a particular 1815 table, the object identifiers for the information in 1816 these entries will have the same subidentifiers (except 1817 for the 'column' subidentifier) up to the end of the 1818 encoded owner index. To configure VACM to permit access 1819 to this portion of the table, one would create 1820 vacmViewTreeFamilyTable entries with the value of 1821 vacmViewTreeFamilySubtree including the owner index 1822 portion, and vacmViewTreeFamilyMask 'wildcarding' the 1823 column subidentifier. More elaborate configurations 1824 are possible." 1825 ::= { traceRouteCtlEntry 1 } 1827 traceRouteCtlTestName OBJECT-TYPE 1828 SYNTAX SnmpAdminString (SIZE(0..32)) 1829 MAX-ACCESS not-accessible 1830 STATUS current 1831 DESCRIPTION 1832 "The name of a traceroute test. This is locally unique, 1833 within the scope of an traceRouteCtlOwnerIndex." 1834 ::= { traceRouteCtlEntry 2 } 1836 traceRouteCtlTargetAddressType OBJECT-TYPE 1837 SYNTAX HostAddressType 1838 MAX-ACCESS read-create 1839 STATUS current 1840 DESCRIPTION 1841 "Specifies the type of host address to be used on the 1842 traceroute request at the remote host." 1843 DEFVAL { ipv4 } 1844 ::= { traceRouteCtlEntry 3 } 1846 traceRouteCtlTargetAddress OBJECT-TYPE 1847 SYNTAX HostAddress 1848 MAX-ACCESS read-create 1849 STATUS current 1850 DESCRIPTION 1851 "Specifies the host address used on the 1852 traceroute request at the remote host. The 1853 host address type can be determined by the 1854 examining the value of the corresponding 1855 traceRouteCtlTargetAddressType index element. 1857 A value for this object MUST be set prior to 1858 transitioning its corresponding traceRouteCtlEntry to 1859 active(1) via traceRouteCtlRowStatus." 1860 ::= { traceRouteCtlEntry 4 } 1862 traceRouteCtlByPassRouteTable OBJECT-TYPE 1863 SYNTAX TruthValue 1864 MAX-ACCESS read-create 1865 STATUS current 1866 DESCRIPTION 1867 "The purpose of this object is to optionally enable 1868 bypassing the route table. If enabled, the remote 1869 host will bypass the normal routing tables and send 1870 directly to a host on an attached network. If the 1871 host is not on a directly-attached network, an 1872 error is returned. This option can be used to perform 1873 the traceroute operation to a local host through an 1874 interface that has no route defined (e.g., after the 1875 interface was dropped by routed)." 1876 DEFVAL { false } 1877 ::= { traceRouteCtlEntry 5 } 1879 traceRouteCtlDataSize OBJECT-TYPE 1880 SYNTAX Unsigned32 (0..65507) 1881 UNITS "octets" 1882 MAX-ACCESS read-create 1883 STATUS current 1884 DESCRIPTION 1885 "Specifies the size of the data portion of a traceroute 1886 request in octets. A traceroute request is essentially 1887 transmitted by encoding a UDP datagram into a 1888 IP packet. So subtracting the size of a UDP header 1889 (8 octets) and the size of a IP header (20 octets) 1890 yields a maximum of 65507 octets." 1891 DEFVAL { 0 } 1892 ::= { traceRouteCtlEntry 6 } 1894 traceRouteCtlTimeOut OBJECT-TYPE 1895 SYNTAX Unsigned32 (1..60) 1896 UNITS "seconds" 1897 MAX-ACCESS read-create 1898 STATUS current 1899 DESCRIPTION 1900 "Specifies the time-out value, in seconds, for 1901 a traceroute request." 1902 DEFVAL { 3 } 1903 ::= { traceRouteCtlEntry 7 } 1905 traceRouteCtlProbesPerHop OBJECT-TYPE 1906 SYNTAX Unsigned32 (1..10) 1907 UNITS "probes" 1908 MAX-ACCESS read-create 1909 STATUS current 1910 DESCRIPTION 1911 "Specifies the number of times to reissue a traceroute 1912 request with the same time-to-live (TTL) value." 1913 DEFVAL { 3 } 1914 ::= { traceRouteCtlEntry 8 } 1916 traceRouteCtlPort OBJECT-TYPE 1917 SYNTAX Unsigned32 (1..65535) 1918 UNITS "UDP Port" 1919 MAX-ACCESS read-create 1920 STATUS current 1921 DESCRIPTION 1922 "Specifies the UDP port to send the traceroute 1923 request to. Need to specify a port that is not in 1924 use at the destination (target) host. The default 1925 value for this object is the IANA assigned port, 1926 33434, for the traceroute function." 1927 DEFVAL { 33434 } 1928 ::= { traceRouteCtlEntry 9 } 1930 traceRouteCtlMaxTtl OBJECT-TYPE 1931 SYNTAX Unsigned32 (1..255) 1932 UNITS "time-to-live value" 1933 MAX-ACCESS read-create 1934 STATUS current 1935 DESCRIPTION 1936 "Specifies the maximum time-to-live value." 1937 DEFVAL { 30 } 1938 ::= { traceRouteCtlEntry 10 } 1940 traceRouteCtlDSField OBJECT-TYPE 1941 SYNTAX Unsigned32 (0..255) 1942 MAX-ACCESS read-create 1943 STATUS current 1944 DESCRIPTION 1945 "Specifies the value to store in the Differentiated 1946 Services (DS) Field in the IP packet used to 1947 encapsulate the traceroute probe. The DS Field is 1948 defined as the Type of Service (TOS) octet in a IPv4 1949 header or as the Traffic Class octet in a IPv6 header. 1951 The value of this object must be a decimal integer 1952 in the range from 0 to 255. This option can be used 1953 to determine what effect an explicit DS Field setting 1954 has on a traceroute response. Not all values are legal 1955 or meaningful. DS Field usage is often not supported 1956 by IP implementations. Useful TOS octet values are 1957 probably '16' (low delay) and '8' ( high throughput)." 1958 REFERENCE 1959 "Refer to RFC 2474 for the definition of the 1960 Differentiated Services Field and to RFC 1812 1961 Section 5.3.2 for Type of Service (TOS)." 1962 DEFVAL { 0 } 1963 ::= { traceRouteCtlEntry 11 } 1965 traceRouteCtlSourceAddress OBJECT-TYPE 1966 SYNTAX HostAddress 1967 MAX-ACCESS read-create 1968 STATUS current 1969 DESCRIPTION 1970 "Use the specified IP address (which must be given 1971 as an IP number, not a hostname) as the source 1972 address in outgoing probe packets. On hosts with 1973 more than one IP address, this option can be used 1974 to force the source address to be something other 1975 than the primary IP address of the interface the 1976 probe packet is sent on. If the IP address is not 1977 one of this machine's interface addresses, an error 1978 is returned and nothing is sent. A zero length 1979 octet string value for this object disables source 1980 address specification. 1982 The address type (HostAddressType) that relates to 1983 this object is specified by the corresponding value 1984 of traceRouteCtlTargetAddressType." 1985 DEFVAL { ''H } 1986 ::= { traceRouteCtlEntry 12 } 1988 traceRouteCtlIfIndex OBJECT-TYPE 1989 SYNTAX InterfaceIndexOrZero 1990 MAX-ACCESS read-create 1991 STATUS current 1992 DESCRIPTION 1993 "Setting this object to an interface's ifIndex prior 1994 to starting a remote traceroute operation directs 1995 the traceroute probes to be transmitted over the 1996 specified interface. A value of zero for this object 1997 implies that this option is not enabled." 1998 DEFVAL { 0 } 1999 ::= { traceRouteCtlEntry 13 } 2001 traceRouteCtlMiscOptions OBJECT-TYPE 2002 SYNTAX SnmpAdminString 2003 MAX-ACCESS read-create 2004 STATUS current 2005 DESCRIPTION 2006 "Enables an application to specify implementation 2007 dependent options." 2008 DEFVAL { ''H } 2009 ::= { traceRouteCtlEntry 14 } 2011 traceRouteCtlMaxFailures OBJECT-TYPE 2012 SYNTAX Unsigned32 (0..255) 2013 UNITS "timeouts" 2014 MAX-ACCESS read-create 2015 STATUS current 2016 DESCRIPTION 2017 "The value of this object indicates the maximum number 2018 of consecutive timeouts allowed before terminating 2019 a remote traceroute request. A value of either 255 (maximum 2020 hop count/possible TTL value) or a 0 indicates that the 2021 function of terminating a remote traceroute request when a 2022 specific number of successive timeouts are detected is 2023 disabled." 2024 DEFVAL { 5 } 2025 ::= { traceRouteCtlEntry 15 } 2027 traceRouteCtlDontFragment OBJECT-TYPE 2028 SYNTAX TruthValue 2029 MAX-ACCESS read-create 2030 STATUS current 2031 DESCRIPTION 2032 "This object enables setting of the don't fragment flag (DF) 2033 in the IP header for a probe. Use of this object enables 2034 performing a manual PATH MTU test." 2035 DEFVAL { false } 2036 ::= { traceRouteCtlEntry 16 } 2038 traceRouteCtlInitialTtl OBJECT-TYPE 2039 SYNTAX Unsigned32 (0..255) 2040 MAX-ACCESS read-create 2041 STATUS current 2042 DESCRIPTION 2043 "The value of this object specifies the initial TTL value to 2044 use. This enables bypassing the initial (often well known) 2045 portion of a path." 2046 DEFVAL { 1 } 2047 ::= { traceRouteCtlEntry 17 } 2049 traceRouteCtlFrequency OBJECT-TYPE 2050 SYNTAX Unsigned32 2051 UNITS "seconds" 2052 MAX-ACCESS read-create 2053 STATUS current 2054 DESCRIPTION 2055 "The number of seconds to wait before repeating a 2056 traceRoute test as defined by the value of the 2057 various objects in the corresponding row. 2059 The number of hops in a single traceroute test 2060 is determined by the value of the corresponding 2061 traceRouteCtlProbesPerHop object. After a 2062 single test completes the number of seconds as defined 2063 by the value of traceRouteCtlFrequency MUST elapse 2064 before the next traceroute test is started. 2066 A value of 0 for this object implies that the test 2067 as defined by the corresponding entry will not be 2068 repeated." 2069 DEFVAL { 0 } 2070 ::= { traceRouteCtlEntry 18 } 2072 traceRouteCtlStorageType OBJECT-TYPE 2073 SYNTAX StorageType 2074 MAX-ACCESS read-create 2075 STATUS current 2076 DESCRIPTION 2077 "The storage type for this conceptual row. 2079 Conceptual rows having the value 'permanent' need not 2080 allow write-access to any columnar objects in the row." 2081 DEFVAL { nonVolatile } 2082 ::= { traceRouteCtlEntry 19 } 2084 traceRouteCtlAdminStatus OBJECT-TYPE 2085 SYNTAX INTEGER { 2086 enabled(1), -- operation should be started 2087 disabled(2) -- operation should be stopped 2088 } 2089 MAX-ACCESS read-create 2090 STATUS current 2091 DESCRIPTION 2092 "Reflects the desired state that an traceRouteCtlEntry 2093 should be in: 2095 enabled(1) - Attempt to activate the test as defined by 2096 this traceRouteCtlEntry. 2097 disabled(2) - Deactivate the test as defined by this 2098 traceRouteCtlEntry. 2100 Refer to the corresponding traceRouteResultsOperStatus to 2101 determine the operational state of the test defined by 2102 this entry." 2103 DEFVAL { disabled } 2104 ::= { traceRouteCtlEntry 20 } 2106 traceRouteCtlDescr OBJECT-TYPE 2107 SYNTAX SnmpAdminString 2108 MAX-ACCESS read-create 2109 STATUS current 2110 DESCRIPTION 2111 "The purpose of this object is to provide a 2112 descriptive name of the remote traceroute 2113 test." 2114 DEFVAL { '00'H } 2115 ::= { traceRouteCtlEntry 21 } 2117 traceRouteCtlMaxRows OBJECT-TYPE 2118 SYNTAX Unsigned32 2119 UNITS "rows" 2120 MAX-ACCESS read-create 2121 STATUS current 2122 DESCRIPTION 2123 "The maximum number of entries allowed in the 2124 traceRouteProbeHistoryTable. An implementation of 2125 this MIB will remove the oldest entry in the 2126 traceRouteProbeHistoryTable to allow the addition 2127 of an new entry once the number of rows in the 2128 traceRouteProbeHistoryTable reaches this value. 2130 Old entries are not removed when a new test is 2131 started. Entries are added to the 2132 traceRouteProbeHistoryTable until traceRouteCtlMaxRows 2133 is reached before entries begin to be removed. 2135 A value of 0 for this object disables creation of 2136 traceRouteProbeHistoryTable entries." 2137 DEFVAL { 50 } 2138 ::= { traceRouteCtlEntry 22 } 2140 traceRouteCtlTrapGeneration OBJECT-TYPE 2141 SYNTAX BITS { 2142 pathChange(0), 2143 testFailure(1), 2144 testCompletion(2) 2145 } 2146 MAX-ACCESS read-create 2147 STATUS current 2148 DESCRIPTION 2149 "The value of this object determines when and if to 2150 to generation a notification for this entry: 2152 pathChange(0) - Generate a traceRoutePathChange 2153 notification when the current path varies from a 2154 previously determined path. 2155 testFailure(1) - Generate a traceRouteTestFailed 2156 notification when the full path to a target 2157 can't be determined. 2158 testCompletion(2) - Generate a traceRouteTestCompleted 2159 notification when the path to a target has been 2160 determined. 2162 The value of this object defaults to zero, indicating 2163 that none of the above options have been selected." 2164 ::= { traceRouteCtlEntry 23 } 2166 traceRouteCtlCreateHopsEntries OBJECT-TYPE 2167 SYNTAX TruthValue 2168 MAX-ACCESS read-create 2169 STATUS current 2170 DESCRIPTION 2171 "The current path for a traceroute test is kept in the 2172 traceRouteHopsTable on a per hop basis when the value of 2173 this object is true(1)." 2174 DEFVAL { false } 2175 ::= { traceRouteCtlEntry 24 } 2177 traceRouteCtlType OBJECT-TYPE 2178 SYNTAX OBJECT IDENTIFIER 2179 MAX-ACCESS read-create 2180 STATUS current 2181 DESCRIPTION 2182 "The value of this object is used to either report or 2183 select the implementation method to be used for 2184 performing a traceroute operation. The value of this 2185 object may be selected from 2186 traceRouteImplementationTypeDomains. 2188 Additional implementation types should be allocated as 2189 required by implementers of the DISMAN-TRACEROUTE-MIB 2190 under their enterprise specific registration point and 2191 not beneath traceRouteImplementationTypeDomains." 2192 DEFVAL { traceRouteUsingUdpProbes } 2193 ::= { traceRouteCtlEntry 25 } 2195 traceRouteCtlRowStatus OBJECT-TYPE 2196 SYNTAX RowStatus 2197 MAX-ACCESS read-create 2198 STATUS current 2199 DESCRIPTION 2200 "This object allows entries to be created and deleted 2201 in the traceRouteCtlTable. Deletion of an entry in 2202 this table results in all corresponding (same 2203 traceRouteCtlOwnerIndex and traceRouteCtlTestName 2204 index values) traceRouteResultsTable, 2205 traceRouteProbeHistoryTable, and traceRouteHopsTable 2206 entries being deleted. 2208 A value MUST be specified for traceRouteCtlTargetAddress 2209 prior to a transition to active(1) state being 2210 accepted. 2212 Activation of a remote traceroute operation is 2213 controlled via traceRouteCtlAdminStatus and not 2214 by transitioning of this object's value to active(1). 2216 Transitions in and out of active(1) state are not 2217 allowed while an entry's traceRouteResultsOperStatus 2218 is active(1) with the exception that deletion of 2219 an entry in this table by setting its RowStatus 2220 object to destroy(6) will stop an active 2221 traceroute operation. 2223 The operational state of an traceroute operation 2224 can be determined by examination of the corresponding 2225 traceRouteResultsOperStatus object." 2226 REFERENCE 2227 "RFC 2579, 'Textual Conventions for SMIv2.'" 2228 ::= { traceRouteCtlEntry 26 } 2230 -- Traceroute Results Table 2232 traceRouteResultsTable OBJECT-TYPE 2233 SYNTAX SEQUENCE OF TraceRouteResultsEntry 2234 MAX-ACCESS not-accessible 2235 STATUS current 2236 DESCRIPTION 2237 "Defines the Remote Operations Traceroute Results Table for 2238 keeping track of the status of a traceRouteCtlEntry. 2240 An entry is added to the traceRouteResultsTable when an 2241 traceRouteCtlEntry is started by successful transition 2242 of its traceRouteCtlAdminStatus object to enabled(1). 2243 An entry is removed from the traceRouteResultsTable when 2244 its corresponding traceRouteCtlEntry is deleted." 2245 ::= { traceRouteObjects 3 } 2247 traceRouteResultsEntry OBJECT-TYPE 2248 SYNTAX TraceRouteResultsEntry 2249 MAX-ACCESS not-accessible 2250 STATUS current 2251 DESCRIPTION 2252 "Defines an entry in the traceRouteResultsTable. The 2253 traceRouteResultsTable has the same indexing as the 2254 traceRouteCtlTable in order for a traceRouteResultsEntry 2255 to correspond to the traceRouteCtlEntry that caused it to 2256 be created." 2257 INDEX { 2258 traceRouteCtlOwnerIndex, 2259 traceRouteCtlTestName 2260 } 2261 ::= { traceRouteResultsTable 1 } 2263 TraceRouteResultsEntry ::= 2264 SEQUENCE { 2265 traceRouteResultsOperStatus INTEGER, 2266 traceRouteResultsCurHopCount Gauge32, 2267 traceRouteResultsCurProbeCount Gauge32, 2268 traceRouteResultsIpTargetAddress IpHostAddress, 2269 traceRouteResultsTestAttempts Counter32, 2270 traceRouteResultsTestSuccesses Counter32, 2271 traceRouteResultsLastGoodPath DateAndTime 2272 } 2274 traceRouteResultsOperStatus OBJECT-TYPE 2275 SYNTAX INTEGER { 2276 enabled(1), -- test is in progress 2277 disabled(2) -- test has stopped 2278 } 2279 MAX-ACCESS read-only 2280 STATUS current 2281 DESCRIPTION 2282 "Reflects the operational state of an traceRouteCtlEntry: 2284 enabled(1) - Test is active. 2285 disabled(2) - Test has stopped." 2286 ::= { traceRouteResultsEntry 1 } 2288 traceRouteResultsCurHopCount OBJECT-TYPE 2289 SYNTAX Gauge32 2290 UNITS "hops" 2291 MAX-ACCESS read-only 2292 STATUS current 2293 DESCRIPTION 2294 "Reflects the current TTL value (range from 1 to 2295 255) for a remote traceroute operation. 2296 Maximum TTL value is determined by 2297 traceRouteCtlMaxTtl." 2298 ::= { traceRouteResultsEntry 2 } 2300 traceRouteResultsCurProbeCount OBJECT-TYPE 2301 SYNTAX Gauge32 2302 UNITS "probes" 2303 MAX-ACCESS read-only 2304 STATUS current 2305 DESCRIPTION 2306 "Reflects the current probe count (1..10) for 2307 a remote traceroute operation. The maximum 2308 probe count is determined by 2309 traceRouteCtlProbesPerHop." 2310 ::= { traceRouteResultsEntry 3 } 2312 traceRouteResultsIpTargetAddress OBJECT-TYPE 2313 SYNTAX IpHostAddress 2314 MAX-ACCESS read-only 2315 STATUS current 2316 DESCRIPTION 2317 "This objects reports the IP address associated 2318 with a traceRouteCtlTargetAddress value when the 2319 destination address is specified as a DNS name. 2320 The value of this object should be a zero length 2321 octet string when a DNS name is not specified or 2322 when a specified DNS name fails to resolve." 2323 ::= { traceRouteResultsEntry 4 } 2325 traceRouteResultsTestAttempts OBJECT-TYPE 2326 SYNTAX Counter32 2327 UNITS "tests" 2328 MAX-ACCESS read-only 2329 STATUS current 2330 DESCRIPTION 2331 "The current number of attempts to determine a path 2332 to a target. The value of this object MUST be started 2333 at 0." 2334 ::= { traceRouteResultsEntry 5 } 2336 traceRouteResultsTestSuccesses OBJECT-TYPE 2337 SYNTAX Counter32 2338 UNITS "tests" 2339 MAX-ACCESS read-only 2340 STATUS current 2341 DESCRIPTION 2342 "The current number of attempts to determine a path 2343 to a target that have succeeded. The value of this 2344 object MUST be reported as 0 when no attempts have 2345 succeeded." 2346 ::= { traceRouteResultsEntry 6 } 2348 traceRouteResultsLastGoodPath OBJECT-TYPE 2349 SYNTAX DateAndTime 2350 MAX-ACCESS read-only 2351 STATUS current 2352 DESCRIPTION 2353 "The date and time when the last complete path 2354 was determined." 2355 ::= { traceRouteResultsEntry 7 } 2357 -- Trace Route Probe History Table 2359 traceRouteProbeHistoryTable OBJECT-TYPE 2360 SYNTAX SEQUENCE OF TraceRouteProbeHistoryEntry 2361 MAX-ACCESS not-accessible 2362 STATUS current 2363 DESCRIPTION 2364 "Defines the Remote Operations Traceroute Results Table for 2365 storing the results of a traceroute operation. 2367 An implementation of this MIB will remove the oldest 2368 entry in the traceRouteProbeHistoryTable to allow the 2369 addition of an new entry once the number of rows in 2370 the traceRouteProbeHistoryTable reaches the value specified 2371 by traceRouteCtlMaxRows." 2372 ::= { traceRouteObjects 4 } 2374 traceRouteProbeHistoryEntry OBJECT-TYPE 2375 SYNTAX TraceRouteProbeHistoryEntry 2376 MAX-ACCESS not-accessible 2377 STATUS current 2378 DESCRIPTION 2379 "Defines a table for storing the results of a traceroute 2380 operation. Entries in this table are limited by 2381 the value of the corresponding traceRouteCtlMaxRows 2382 object. 2384 The first two index elements identify the 2385 traceRouteCtlEntry that a traceRouteProbeHistoryEntry 2386 belongs to. The 3rd index element selects a single 2387 traceroute operation result. The 4th and 5th indexes 2388 select the hop and the probe for a particular 2389 traceroute operation." 2390 INDEX { 2391 traceRouteCtlOwnerIndex, 2392 traceRouteCtlTestName, 2393 traceRouteProbeHistoryIndex, 2394 traceRouteProbeHistoryHopIndex, 2395 traceRouteProbeHistoryProbeIndex 2397 } 2398 ::= { traceRouteProbeHistoryTable 1 } 2400 TraceRouteProbeHistoryEntry ::= 2401 SEQUENCE { 2402 traceRouteProbeHistoryIndex Unsigned32, 2403 traceRouteProbeHistoryHopIndex Unsigned32, 2404 traceRouteProbeHistoryProbeIndex Unsigned32, 2405 traceRouteProbeHistoryHopAddress IpHostAddress, 2406 traceRouteProbeHistoryResponse Unsigned32, 2407 traceRouteProbeHistoryStatus OperationResponseStatus, 2408 traceRouteProbeHistoryLastRC Integer32, 2409 traceRouteProbeHistoryTime DateAndTime 2410 } 2412 traceRouteProbeHistoryIndex OBJECT-TYPE 2413 SYNTAX Unsigned32 (1..'ffffffff'h) 2414 MAX-ACCESS not-accessible 2415 STATUS current 2416 DESCRIPTION 2417 "An entry in this table is created when the result of 2418 a traceroute probe is determined. The initial 2 instance 2419 identifier index values identify the traceRouteCtlEntry 2420 that a probe result (traceRouteProbeHistoryEntry) belongs 2421 to. An entry is removed from this table when 2422 its corresponding traceRouteCtlEntry is deleted. 2424 An implementation MUST start assigning 2425 traceRouteProbeHistoryIndex values at 1 and wrap after 2426 exceeding the maximum possible value as defined by the 2427 limit of this object ('ffffffff'h)." 2428 ::= { traceRouteProbeHistoryEntry 1 } 2430 traceRouteProbeHistoryHopIndex OBJECT-TYPE 2431 SYNTAX Unsigned32 (1..255) 2432 MAX-ACCESS not-accessible 2433 STATUS current 2434 DESCRIPTION 2435 "Indicates which hop in a traceroute path that the probe's 2436 results are for. The value of this object is initially 2437 determined by the value of traceRouteCtlInitialTtl." 2438 ::= { traceRouteProbeHistoryEntry 2 } 2440 traceRouteProbeHistoryProbeIndex OBJECT-TYPE 2441 SYNTAX Unsigned32 (1..10) 2442 MAX-ACCESS not-accessible 2443 STATUS current 2444 DESCRIPTION 2445 "Indicates the index of a probe for a particular 2446 hop in a traceroute path. The number of probes per 2447 hop is determined by the value of the corresponding 2448 traceRouteCtlProbesPerHop object." 2449 ::= { traceRouteProbeHistoryEntry 3 } 2451 traceRouteProbeHistoryHopAddress OBJECT-TYPE 2452 SYNTAX IpHostAddress 2453 MAX-ACCESS read-only 2454 STATUS current 2455 DESCRIPTION 2456 "The address of a hop in a traceroute path. This object 2457 is not allowed to be a DNS name. The length of the 2458 octet string returned determines the address type." 2459 ::= { traceRouteProbeHistoryEntry 4 } 2461 traceRouteProbeHistoryResponse OBJECT-TYPE 2462 SYNTAX Unsigned32 2463 UNITS "milliseconds" 2464 MAX-ACCESS read-only 2465 STATUS current 2466 DESCRIPTION 2467 "The amount of time measured in milliseconds from when 2468 a probe was sent to when its response was received or 2469 when it timed out. The value of this object is reported 2470 as 0 when it is not possible to transmit a probe." 2471 ::= { traceRouteProbeHistoryEntry 5 } 2473 traceRouteProbeHistoryStatus OBJECT-TYPE 2474 SYNTAX OperationResponseStatus 2475 MAX-ACCESS read-only 2476 STATUS current 2477 DESCRIPTION 2478 "The result of a traceroute operation made by a remote 2479 host for a particular probe." 2480 ::= { traceRouteProbeHistoryEntry 6 } 2482 traceRouteProbeHistoryLastRC OBJECT-TYPE 2483 SYNTAX Integer32 2484 MAX-ACCESS read-only 2485 STATUS current 2486 DESCRIPTION 2487 "The last implementation method specific reply code received. 2489 Traceroute is usually implemented by transmitting a series of 2490 probe packets with increasing time-to-live values. A probe 2491 packet is a UDP datagram encapsulated into an IP packet. 2492 Each hop in a path to the target (destination) host rejects 2493 the probe packets (probe's TTL too small, ICMP reply) until 2494 either the maximum TTL is exceeded or the target host is 2495 received." 2496 ::= { traceRouteProbeHistoryEntry 7 } 2498 traceRouteProbeHistoryTime OBJECT-TYPE 2499 SYNTAX DateAndTime 2500 MAX-ACCESS read-only 2501 STATUS current 2502 DESCRIPTION 2503 "Timestamp for when this probe results were determined." 2504 ::= { traceRouteProbeHistoryEntry 8 } 2506 -- Traceroute Hop Results Table 2508 traceRouteHopsTable OBJECT-TYPE 2509 SYNTAX SEQUENCE OF TraceRouteHopsEntry 2510 MAX-ACCESS not-accessible 2511 STATUS current 2512 DESCRIPTION 2513 "Defines the Remote Operations Traceroute Hop Table for 2514 keeping track of the results of traceroute tests on a 2515 per hop basis." 2516 ::= { traceRouteObjects 5 } 2518 traceRouteHopsEntry OBJECT-TYPE 2519 SYNTAX TraceRouteHopsEntry 2520 MAX-ACCESS not-accessible 2521 STATUS current 2522 DESCRIPTION 2523 "Defines an entry in the traceRouteHopsTable. 2525 The first two index elements identify the 2526 traceRouteCtlEntry that a traceRouteHopsEntry 2527 belongs to. The 3rd index element, 2528 traceRouteHopsHopIndex, selects a 2529 hop in a traceroute path." 2530 INDEX { 2531 traceRouteCtlOwnerIndex, 2532 traceRouteCtlTestName, 2533 traceRouteHopsHopIndex 2534 } 2535 ::= { traceRouteHopsTable 1 } 2537 TraceRouteHopsEntry ::= 2538 SEQUENCE { 2539 traceRouteHopsHopIndex Unsigned32, 2540 traceRouteHopsIpTargetAddress IpHostAddress, 2541 traceRouteHopsMinRtt Unsigned32, 2542 traceRouteHopsMaxRtt Unsigned32, 2543 traceRouteHopsAverageRtt Unsigned32, 2544 traceRouteHopsRttSumOfSquares Unsigned32, 2545 traceRouteHopsSentProbes Counter32, 2546 traceRouteHopsProbeResponses Counter32, 2547 traceRouteHopsLastGoodProbe DateAndTime 2548 } 2550 traceRouteHopsHopIndex OBJECT-TYPE 2551 SYNTAX Unsigned32 2552 MAX-ACCESS not-accessible 2553 STATUS current 2554 DESCRIPTION 2555 "Specifies the hop index for a traceroute hop. Values 2556 for this object with respect to the same 2557 traceRouteCtlOwnerIndex and traceRouteCtlTestName 2558 MUST start at 1 and increase monotonically. 2560 The traceRouteHopsTable keeps the current traceroute 2561 path per traceRouteCtlEntry if enabled by 2562 setting the corresponding traceRouteCtlCreateHopsEntries 2563 to true(1). 2565 All hops (traceRouteHopsTable entries) in a traceroute 2566 path MUST be updated at the same time when a traceroute 2567 operation completes. Care needs to be applied when either 2568 a path changes or can't be determined. The initial portion 2569 of the path, up to the first hop change, MUST retain the 2570 same traceRouteHopsHopIndex values. The remaining portion 2571 of the path SHOULD be assigned new traceRouteHopsHopIndex 2572 values." 2573 ::= { traceRouteHopsEntry 1 } 2575 traceRouteHopsIpTargetAddress OBJECT-TYPE 2576 SYNTAX IpHostAddress 2577 MAX-ACCESS read-only 2578 STATUS current 2579 DESCRIPTION 2580 "This object reports the IP address associated with the hop." 2581 ::= { traceRouteHopsEntry 2 } 2583 traceRouteHopsMinRtt OBJECT-TYPE 2584 SYNTAX Unsigned32 2585 MAX-ACCESS read-only 2586 STATUS current 2587 DESCRIPTION 2588 "The minimum traceroute round-trip-time (RTT) received for 2589 this hop. A value of 0 for this object implies that no 2590 RTT has been received." 2591 ::= { traceRouteHopsEntry 3 } 2593 traceRouteHopsMaxRtt OBJECT-TYPE 2594 SYNTAX Unsigned32 2595 MAX-ACCESS read-only 2596 STATUS current 2597 DESCRIPTION 2598 "The maximum traceroute round-trip-time (RTT) received for 2599 this hop. A value of 0 for this object implies that no 2600 RTT has been received." 2601 ::= { traceRouteHopsEntry 4 } 2603 traceRouteHopsAverageRtt OBJECT-TYPE 2604 SYNTAX Unsigned32 2605 MAX-ACCESS read-only 2606 STATUS current 2607 DESCRIPTION 2608 "The current average traceroute round-trip-time (RTT) for 2609 this hop." 2610 ::= { traceRouteHopsEntry 5 } 2612 traceRouteHopsRttSumOfSquares OBJECT-TYPE 2613 SYNTAX Unsigned32 2614 MAX-ACCESS read-only 2615 STATUS current 2616 DESCRIPTION 2617 "This object contains the sum of all traceroute responses 2618 received for this hop. Its purpose is to enable standard 2619 deviation calculation." 2620 ::= { traceRouteHopsEntry 6 } 2622 traceRouteHopsSentProbes OBJECT-TYPE 2623 SYNTAX Counter32 2624 MAX-ACCESS read-only 2625 STATUS current 2626 DESCRIPTION 2627 "The value of this object reflects the number of probes sent 2628 for this hop during this traceroute test. The value of this 2629 object should start at 0." 2630 ::= { traceRouteHopsEntry 7 } 2632 traceRouteHopsProbeResponses OBJECT-TYPE 2633 SYNTAX Counter32 2634 MAX-ACCESS read-only 2635 STATUS current 2636 DESCRIPTION 2637 "Number of responses received for this hop during this 2638 traceroute test. This value of this object should start 2639 at 0." 2640 ::= { traceRouteHopsEntry 8 } 2642 traceRouteHopsLastGoodProbe OBJECT-TYPE 2643 SYNTAX DateAndTime 2644 MAX-ACCESS read-only 2645 STATUS current 2646 DESCRIPTION 2647 "Date and time was the last response was received for a probe 2648 for this hop during this traceroute test." 2649 ::= { traceRouteHopsEntry 9 } 2651 -- Notification Definition section 2653 traceRoutePathChange NOTIFICATION-TYPE 2654 OBJECTS { 2655 traceRouteCtlTargetAddressType, 2656 traceRouteCtlTargetAddress, 2657 traceRouteResultsIpTargetAddress 2658 } 2659 STATUS current 2660 DESCRIPTION 2661 "The path to a target has changed." 2662 ::= { traceRouteNotifications 1 } 2664 traceRouteTestFailed NOTIFICATION-TYPE 2665 OBJECTS { 2666 traceRouteCtlTargetAddressType, 2667 traceRouteCtlTargetAddress, 2668 traceRouteResultsIpTargetAddress 2669 } 2670 STATUS current 2671 DESCRIPTION 2672 "Could not determine the path to a target." 2673 ::= { traceRouteNotifications 2 } 2675 traceRouteTestCompleted NOTIFICATION-TYPE 2676 OBJECTS { 2677 traceRouteCtlTargetAddressType, 2678 traceRouteCtlTargetAddress, 2679 traceRouteResultsIpTargetAddress 2680 } 2681 STATUS current 2682 DESCRIPTION 2683 "The path to a target has just been determined." 2684 ::= { traceRouteNotifications 3 } 2686 -- Conformance information 2687 -- Compliance statements 2689 traceRouteCompliances OBJECT IDENTIFIER ::= { traceRouteConformance 1 } 2690 traceRouteGroups OBJECT IDENTIFIER ::= { traceRouteConformance 2 } 2692 -- Compliance statements 2694 traceRouteCompliance MODULE-COMPLIANCE 2695 STATUS current 2696 DESCRIPTION 2697 "The compliance statement for the DISMAN-TRACEROUTE-MIB." 2698 MODULE -- this module 2699 MANDATORY-GROUPS { 2700 traceRouteGroup 2701 } 2702 GROUP traceRouteTimeStampGroup 2703 DESCRIPTION 2704 "This group is mandatory for implementations that have 2705 access to a system clock and are capable of setting 2706 the values for DateAndTime objects." 2708 GROUP traceRouteNotificationsGroup 2709 DESCRIPTION 2710 "This group defines a collection of optional 2711 notifications." 2713 GROUP traceRouteHopsTableGroup 2714 DESCRIPTION 2715 "This group lists the objects that make up a 2716 traceRouteHopsEntry. Support of the traceRouteHopsTable 2717 is optional." 2719 OBJECT traceRouteMaxConcurrentRequests 2720 MIN-ACCESS read-only 2721 DESCRIPTION 2722 "The agent is not required to support a SET 2723 operation to this object." 2725 OBJECT traceRouteCtlByPassRouteTable 2726 MIN-ACCESS read-only 2727 DESCRIPTION 2728 "This object is not required by implementations that 2729 are not capable of its implementation. The function 2730 represented by this object is implementable if the 2731 setsockopt SOL_SOCKET SO_DONTROUTE option is 2732 supported." 2734 OBJECT traceRouteCtlSourceAddress 2735 MIN-ACCESS read-only 2736 DESCRIPTION 2737 "This object is not required by implementations that 2738 are not capable of binding the send socket (udp) 2739 with a source address." 2741 OBJECT traceRouteCtlIfIndex 2742 MIN-ACCESS read-only 2743 DESCRIPTION 2744 "Write access is not required. When write access is 2745 not supported return a 0 as the value of this object. 2746 A value of 0 implies that the function represented by 2747 this option is not supported." 2749 OBJECT traceRouteCtlMiscOptions 2750 MIN-ACCESS read-only 2751 DESCRIPTION 2752 "Support of this object is optional. When not 2753 supporting do not allow write access and return a 2754 zero length octet string as the value of the object." 2756 OBJECT traceRouteCtlStorageType 2757 MIN-ACCESS read-only 2758 DESCRIPTION 2759 "Write access is not required. It is also allowed 2760 for implementations to support only the volatile 2761 StorageType enumeration." 2763 OBJECT traceRouteCtlDSField 2764 MIN-ACCESS read-only 2765 DESCRIPTION 2766 "Write access is not required. When write access is 2767 not supported return a 0 as the value of this object. 2768 A value of 0 implies that the function represented by 2769 this option is not supported." 2771 OBJECT traceRouteCtlType 2772 MIN-ACCESS read-only 2773 DESCRIPTION 2774 "Write access is not required. In addition, the only 2775 value that is RECOMMENDED to be supported by an 2776 implementation is traceRouteUsingUdpProbes." 2778 ::= { traceRouteCompliances 1 } 2780 -- MIB groupings 2782 traceRouteGroup OBJECT-GROUP 2783 OBJECTS { 2784 traceRouteMaxConcurrentRequests, 2785 traceRouteCtlTargetAddressType, 2786 traceRouteCtlTargetAddress, 2787 traceRouteCtlByPassRouteTable, 2788 traceRouteCtlDataSize, 2789 traceRouteCtlTimeOut, 2790 traceRouteCtlProbesPerHop, 2791 traceRouteCtlPort, 2792 traceRouteCtlMaxTtl, 2793 traceRouteCtlDSField, 2794 traceRouteCtlSourceAddress, 2795 traceRouteCtlIfIndex, 2796 traceRouteCtlMiscOptions, 2797 traceRouteCtlMaxFailures, 2798 traceRouteCtlDontFragment, 2799 traceRouteCtlInitialTtl, 2800 traceRouteCtlFrequency, 2801 traceRouteCtlStorageType, 2802 traceRouteCtlAdminStatus, 2803 traceRouteCtlMaxRows, 2804 traceRouteCtlTrapGeneration, 2805 traceRouteCtlDescr, 2806 traceRouteCtlCreateHopsEntries, 2807 traceRouteCtlType, 2808 traceRouteCtlRowStatus, 2809 traceRouteResultsOperStatus, 2810 traceRouteResultsCurHopCount, 2811 traceRouteResultsCurProbeCount, 2812 traceRouteResultsIpTargetAddress, 2813 traceRouteResultsTestAttempts, 2814 traceRouteResultsTestSuccesses, 2815 traceRouteProbeHistoryHopAddress, 2816 traceRouteProbeHistoryResponse, 2817 traceRouteProbeHistoryStatus, 2818 traceRouteProbeHistoryLastRC 2820 } 2821 STATUS current 2822 DESCRIPTION 2823 "The group of objects that comprise the remote traceroute 2824 operation." 2825 ::= { traceRouteGroups 1 } 2827 traceRouteTimeStampGroup OBJECT-GROUP 2828 OBJECTS { 2829 traceRouteResultsLastGoodPath, 2830 traceRouteProbeHistoryTime 2831 } 2832 STATUS current 2833 DESCRIPTION 2834 "The group of DateAndTime objects." 2835 ::= { traceRouteGroups 2 } 2837 traceRouteNotificationsGroup NOTIFICATION-GROUP 2838 NOTIFICATIONS { 2839 traceRoutePathChange, 2840 traceRouteTestFailed, 2841 traceRouteTestCompleted 2842 } 2843 STATUS current 2844 DESCRIPTION 2845 "The notifications which are required to be supported by 2846 implementations of this MIB." 2847 ::= { traceRouteGroups 3 } 2849 traceRouteHopsTableGroup OBJECT-GROUP 2850 OBJECTS { 2851 traceRouteHopsIpTargetAddress, 2852 traceRouteHopsMinRtt, 2853 traceRouteHopsMaxRtt, 2854 traceRouteHopsAverageRtt, 2855 traceRouteHopsRttSumOfSquares, 2856 traceRouteHopsSentProbes, 2857 traceRouteHopsProbeResponses, 2858 traceRouteHopsLastGoodProbe 2859 } 2860 STATUS current 2861 DESCRIPTION 2862 "The group of objects that comprise the traceRouteHopsTable." 2863 ::= { traceRouteGroups 4 } 2865 END 2867 4.3 DISMAN-NSLOOKUP-MIB 2869 DISMAN-NSLOOKUP-MIB DEFINITIONS ::= BEGIN 2871 IMPORTS 2872 MODULE-IDENTITY, OBJECT-TYPE, 2873 experimental, Unsigned32 2874 FROM SNMPv2-SMI -- RFC2578 2875 RowStatus 2876 FROM SNMPv2-TC -- RFC2579 2877 MODULE-COMPLIANCE, OBJECT-GROUP 2878 FROM SNMPv2-CONF -- RFC2580 2879 SnmpAdminString 2880 FROM SNMP-FRAMEWORK-MIB -- RFC2571 2881 HostAddressType, HostAddress 2882 FROM DISMAN-PING-MIB; 2884 lookupMIB MODULE-IDENTITY 2885 LAST-UPDATED "9908040000Z" 2886 ORGANIZATION "IETF Distributed Management Working Group" 2887 CONTACT-INFO 2888 "Kenneth White 2890 International Business Machines Corporation 2891 Network Computing Software Division 2892 Research Triangle Park, NC, USA 2894 E-mail: wkenneth@us.ibm.com" 2895 DESCRIPTION 2896 "The Lookup MIB (DISMAN-NSLOOKUP-MIB) enables determination 2897 of either the name(s) corresponding to a host address or of 2898 the address(es) associated with a host name at a remote host." 2899 -- Note: This OID should be reassigned by IANA when the internet-draft 2900 -- containing this MIB module is issued as an RFC. 2901 ::= { experimental 84 3 } 2903 -- Top level structure of the MIB 2905 lookupObjects OBJECT IDENTIFIER ::= { lookupMIB 1 } 2906 lookupConformance OBJECT IDENTIFIER ::= { lookupMIB 2 } 2908 -- Simple Object Definitions 2910 lookupMaxConcurrentRequests OBJECT-TYPE 2911 SYNTAX Unsigned32 2912 UNITS "requests" 2913 MAX-ACCESS read-write 2914 STATUS current 2915 DESCRIPTION 2916 "The maximum number of concurrent active lookup requests 2917 that are allowed within an agent implementation. A value 2918 of 0 for this object implies that there is no limit for 2919 the number of concurrent active requests in effect." 2921 DEFVAL { 10 } 2922 ::= { lookupObjects 1 } 2924 lookupPurgeTime OBJECT-TYPE 2925 SYNTAX Unsigned32 (0..86400) 2926 UNITS "seconds" 2927 MAX-ACCESS read-write 2928 STATUS current 2929 DESCRIPTION 2930 "The amount of time to wait before automatically 2931 deleting an entry in the lookupCtlTable and any 2932 dependent lookupResultsTable entries 2933 after the lookup operation represented by an 2934 lookupCtlEntry has completed. 2936 An lookupCtEntry is considered complete 2937 when its lookupCtlOperStatus object has a 2938 value of completed(3)." 2939 DEFVAL { 900 } -- 15 minutes as default 2940 ::= { lookupObjects 2 } 2942 -- Lookup Control Table 2944 lookupCtlTable OBJECT-TYPE 2945 SYNTAX SEQUENCE OF LookupCtlEntry 2946 MAX-ACCESS not-accessible 2947 STATUS current 2948 DESCRIPTION 2949 "Defines the Lookup Control Table for providing 2950 the capability of performing a lookup operation, 2951 gethostbyname or gethostbyaddr, from a remote host." 2952 ::= { lookupObjects 3 } 2954 lookupCtlEntry OBJECT-TYPE 2955 SYNTAX LookupCtlEntry 2956 MAX-ACCESS not-accessible 2957 STATUS current 2958 DESCRIPTION 2959 "Defines an entry in the lookupCtlTable. An 2960 lookupCtlEntry is initially indexed by 2961 lookupCtlOwnerIndex, which is of the SnmpAdminString 2962 textual convention that allows for use of the SNMPv3 2963 View-Based Access Control Model (RFC 2575 [11], VACM) 2964 and also allows an management application to identify 2965 its entries. The 2nd index element, 2966 lookupCtlOperationName, enables the same 2967 lookupCtlOwnerIndex entity to have multiple outstanding 2968 requests. 2970 The value of lookupCtlTargetAddressType determines which 2971 lookup function to perform. Specification of dnsName(1) 2972 as the value of this index implies that the gethostbyname 2973 function should be performed to determine the numeric 2974 addresses associated with a symbolic name via 2975 lookupResultsTable entries. Use of a value of either 2976 ipv4(2) or ipv6(3) implies that the gethostbyaddr function 2977 should be performed to determine the symbolic name(s) 2978 associated with a numeric address at a remote host." 2979 INDEX { 2980 lookupCtlOwnerIndex, 2981 lookupCtlOperationName 2982 } 2983 ::= { lookupCtlTable 1 } 2985 LookupCtlEntry ::= 2986 SEQUENCE { 2987 lookupCtlOwnerIndex SnmpAdminString, 2988 lookupCtlOperationName SnmpAdminString, 2989 lookupCtlTargetAddressType HostAddressType, 2990 lookupCtlTargetAddress HostAddress, 2991 lookupCtlOperStatus INTEGER, 2992 lookupCtlTime Unsigned32, 2993 lookupCtlRc Unsigned32, 2994 lookupCtlRowStatus RowStatus 2995 } 2997 lookupCtlOwnerIndex OBJECT-TYPE 2998 SYNTAX SnmpAdminString (SIZE(0..32)) 2999 MAX-ACCESS not-accessible 3000 STATUS current 3001 DESCRIPTION 3002 "To facilitate the provisioning of access control by a 3003 security administrator using the View-Based Access 3004 Control Model (RFC 2575, VACM) for tables in which 3005 multiple users may need to independently create or 3006 modify entries, the initial index is used as an 'owner 3007 index'. Such an initial index has a syntax of 3008 SnmpAdminString, and can thus be trivially mapped to a 3009 securityName or groupName as defined in VACM, in 3010 accordance with a security policy. 3012 When used in conjunction with such a security policy all 3013 entries in the table belonging to a particular user (or 3014 group) will have the same value for this initial index. 3015 For a given user's entries in a particular table, the 3016 object identifiers for the information in these entries 3017 will have the same subidentifiers (except for the 3018 'column' subidentifier) up to the end of the encoded 3019 owner index. To configure VACM to permit access to this 3020 portion of the table, one would create 3021 vacmViewTreeFamilyTable entries with the value of 3022 vacmViewTreeFamilySubtree including the owner index 3023 portion, and vacmViewTreeFamilyMask 'wildcarding' the 3024 column subidentifier. More elaborate configurations 3025 are possible." 3026 ::= { lookupCtlEntry 1 } 3028 lookupCtlOperationName OBJECT-TYPE 3029 SYNTAX SnmpAdminString (SIZE(0..32)) 3030 MAX-ACCESS not-accessible 3031 STATUS current 3032 DESCRIPTION 3033 "The name of a lookup operation. This is locally unique, 3034 within the scope of an lookupCtlOwnerIndex." 3035 ::= { lookupCtlEntry 2 } 3037 lookupCtlTargetAddressType OBJECT-TYPE 3038 SYNTAX HostAddressType 3039 MAX-ACCESS read-create 3040 STATUS current 3041 DESCRIPTION 3042 "Specifies the type of address for either performing a 3043 gethostbyname or a gethostbyaddr function at a remote host. 3044 Specification of dnsName(1) as the value for this object 3045 implies that the gethostbyname function should be performed 3046 to return one or more numeric addresses. Use of a value 3047 of either ipv4(2) or ipv6(3) implies that the gethostbyaddr 3048 function should be used to return the symbolic names 3049 associated with a remote host." 3050 ::= { lookupCtlEntry 3 } 3052 lookupCtlTargetAddress OBJECT-TYPE 3053 SYNTAX HostAddress 3054 MAX-ACCESS read-create 3055 STATUS current 3056 DESCRIPTION 3057 "Specifies the address used for a resolver lookup at a 3058 remote host. The corresponding lookupCtlAddressType 3059 objects determines its type as well as the function 3060 that can be requested. 3062 A value for this object MUST be set prior to 3063 transitioning its corresponding lookupCtlEntry to 3064 active(1) via lookupCtlRowStatus." 3065 ::= { lookupCtlEntry 4 } 3067 lookupCtlOperStatus OBJECT-TYPE 3068 SYNTAX INTEGER { 3069 enabled(1), -- operation is in progress 3070 notStarted(2), -- operation has not started 3071 completed(3) -- operation is done 3072 } 3073 MAX-ACCESS read-only 3074 STATUS current 3075 DESCRIPTION 3076 "Reflects the operational state of an lookupCtlEntry: 3078 enabled(1) - Operation is active. 3079 notStarted(2) - Operation has not been enabled. 3081 completed(3) - Operation has completed. 3083 An operation is automatically enabled(1) when its 3084 lookupCtlRowStatus object is transitioned to active(1) 3085 status. Until this occurs lookupCtlOperStatus MUST 3086 report a value of notStarted(2). After the lookup 3087 operation completes (success or failure) the value 3088 for lookupCtlOperStatus MUST be transitioned to 3089 completed(3)." 3090 ::= { lookupCtlEntry 5 } 3092 lookupCtlTime OBJECT-TYPE 3093 SYNTAX Unsigned32 3094 UNITS "milliseconds" 3095 MAX-ACCESS read-only 3096 STATUS current 3097 DESCRIPTION 3098 "Reports the number of milliseconds that a lookup 3099 operation required to be completed at a remote host. 3100 Completed means operation failure as well as 3101 success." 3102 ::= { lookupCtlEntry 6 } 3104 lookupCtlRc OBJECT-TYPE 3105 SYNTAX Unsigned32 3106 MAX-ACCESS read-only 3107 STATUS current 3108 DESCRIPTION 3109 "The system specific return code from a lookup 3110 operation. All implementations MUST return a value 3111 of 0 for this object when the remote lookup 3112 operation succeeds. A non-zero value for this 3113 objects indicates failure. It is recommended that 3114 implementations that support errno use it as the 3115 value of this object to aid a management 3116 application in determining the cause of failure." 3117 ::= { lookupCtlEntry 7 } 3119 lookupCtlRowStatus OBJECT-TYPE 3120 SYNTAX RowStatus 3121 MAX-ACCESS read-create 3122 STATUS current 3123 DESCRIPTION 3124 "This object allows entries to be created and deleted 3125 in the lookupCtlTable. 3127 A remote lookup operation is started when an 3128 entry in this table is created via an SNMP SET 3129 request and the entry is activated. This 3130 occurs by setting the value of this object 3131 to CreateAndGo(4) during row creation or 3132 by setting this object to active(1) after 3133 the row is created. 3135 A value MUST be specified for lookupCtlTargetAddress 3136 prior to a transition to active(1) state being 3137 accepted. 3139 A remote lookup operation starts when its entry 3140 first becomes active(1). Transitions in and 3141 out of active(1) state have no effect on the 3142 operational behavior of a remote lookup 3143 operation, with the exception that deletion of 3144 an entry in this table by setting its RowStatus 3145 object to destroy(6) will stop an active 3146 remote lookup operation. 3148 The operational state of a remote lookup operation 3149 can be determined by examination of its 3150 lookupCtlOperStatus object." 3151 REFERENCE 3152 "RFC 2579, 'Textual Conventions for SMIv2.'" 3153 ::= { lookupCtlEntry 8 } 3155 -- Lookup Results Table 3157 lookupResultsTable OBJECT-TYPE 3158 SYNTAX SEQUENCE OF LookupResultsEntry 3159 MAX-ACCESS not-accessible 3160 STATUS current 3161 DESCRIPTION 3162 "Defines the Lookup Results Table for providing 3163 the capability of determining the results of a 3164 operation at a remote host. 3166 One or more entries are added to the 3167 lookupResultsTable when a lookup operation, 3168 as reflected by an lookupCtlEntry, completes 3169 successfully. All entries related to a 3170 successful lookup operation MUST be added 3171 to the lookupResultsTable at the same time 3172 that the associating lookupCtlOperStatus 3173 object is transitioned to completed(2). 3175 The number of entries added depends on the 3176 results determined for a particular lookup 3177 operation. All entries associated with an 3178 lookupCtlEntry are removed when the 3179 lookupCtlEntry is deleted. 3181 A remote host can be multi-homed and have more 3182 than one IP address associated with it 3183 (gethostbyname results) and/or it can have more 3184 than one symbolic name (gethostbyaddr results). 3186 The gethostbyaddr function is called with a 3187 host address as its parameter and is used 3188 primarily to determine a symbolic name to 3189 associate with the host address. Entries in 3190 the lookupResultsTable MUST be made for each 3191 host name returned. The official host name MUST 3192 be assigned a lookupResultsIndex of 1. 3194 The gethostbyname function is called with a 3195 symbolic host name and is used primarily to 3196 retrieve a host address. If possible the 3197 primary host address SHOULD be assigned a 3198 lookupResultsIndex of 1." 3199 ::= { lookupObjects 4 } 3201 lookupResultsEntry OBJECT-TYPE 3202 SYNTAX LookupResultsEntry 3203 MAX-ACCESS not-accessible 3204 STATUS current 3205 DESCRIPTION 3206 "Defines an entry in the lookupResultsTable. The 3207 initial 2 index elements identify the 3208 lookupCtlEntry that a lookupResultsEntry belongs 3209 to. The 3th index element selects a single 3210 lookup operation result." 3211 INDEX { 3212 lookupCtlOwnerIndex, 3213 lookupCtlOperationName, 3214 lookupResultsIndex 3215 } 3216 ::= { lookupResultsTable 1 } 3218 LookupResultsEntry ::= 3219 SEQUENCE { 3220 lookupResultsIndex Unsigned32, 3221 lookupResultsAddressType HostAddressType, 3222 lookupResultsAddress HostAddress 3223 } 3225 lookupResultsIndex OBJECT-TYPE 3226 SYNTAX Unsigned32 (1..'ffffffff'h) 3227 MAX-ACCESS not-accessible 3228 STATUS current 3229 DESCRIPTION 3230 "Entries in the lookupResultsTable are created when 3231 the result of a lookup operation is determined. 3233 Entries MUST be stored in the lookupResultsTable in 3234 the order that they are retrieved. Values assigned 3235 to lookupResultsIndex MUST start at 1 and increase 3236 in order." 3237 ::= { lookupResultsEntry 1 } 3239 lookupResultsAddressType OBJECT-TYPE 3240 SYNTAX HostAddressType 3241 MAX-ACCESS read-only 3242 STATUS current 3243 DESCRIPTION 3244 "Indicates the type of result of a remote lookup 3245 operation. A value of none(0) implies that 3246 either the operation hasn't been started or that 3247 it has failed." 3248 ::= { lookupResultsEntry 2 } 3250 lookupResultsAddress OBJECT-TYPE 3251 SYNTAX HostAddress 3252 MAX-ACCESS read-only 3253 STATUS current 3254 DESCRIPTION 3255 "Reflects a result for a remote lookup operation 3256 as per the value of lookupResultsAddressType." 3257 ::= { lookupResultsEntry 3 } 3259 -- Conformance information 3260 -- Compliance statements 3262 lookupCompliances OBJECT IDENTIFIER ::= { lookupConformance 1 } 3263 lookupGroups OBJECT IDENTIFIER ::= { lookupConformance 2 } 3265 -- Compliance statements 3267 lookupCompliance MODULE-COMPLIANCE 3268 STATUS current 3269 DESCRIPTION 3270 "The compliance statement for the DISMAN-NSLOOKUP-MIB." 3271 MODULE -- this module 3272 MANDATORY-GROUPS { 3273 lookupGroup 3274 } 3276 OBJECT lookupMaxConcurrentRequests 3277 MIN-ACCESS read-only 3278 DESCRIPTION 3279 "The agent is not required to support a SET 3280 operation to this object." 3282 OBJECT lookupPurgeTime 3283 MIN-ACCESS read-only 3284 DESCRIPTION 3285 "The agent is not required to support a SET 3286 operation to this object." 3287 ::= { lookupCompliances 1 } 3289 -- MIB groupings 3290 lookupGroup OBJECT-GROUP 3291 OBJECTS { 3292 lookupMaxConcurrentRequests, 3293 lookupPurgeTime, 3294 lookupCtlOperStatus, 3295 lookupCtlTargetAddressType, 3296 lookupCtlTargetAddress, 3297 lookupCtlTime, 3298 lookupCtlRc, 3299 lookupCtlRowStatus, 3300 lookupResultsAddressType, 3301 lookupResultsAddress 3302 } 3303 STATUS current 3304 DESCRIPTION 3305 "The group of objects that comprise the remote 3306 Lookup operation." 3307 ::= { lookupGroups 1 } 3309 END 3311 5.0 Security Considerations 3313 Certain management information in the MIBs defined by this document may 3314 be considered sensitive in some network environments. Therefore, 3315 authentication of received SNMP requests and controlled access to 3316 management information SHOULD be employed in such environments. The 3317 method for this authentication is a function of the SNMP Administrative 3318 Framework, and has not been expanded by this MIB. 3320 To facilitate the provisioning of access control by a security 3321 administrator using the View-Based Access Control Model (VACM) defined 3322 in RFC 2575 [11] for tables in which multiple users may need to 3323 independently create or modify entries, the initial index is used as an 3324 "owner index". Such an initial index has a syntax of SnmpAdminString, 3325 and can thus be trivially mapped to a securityName or groupName as 3326 defined in VACM, in accordance with a security policy. 3328 All entries in related tables belonging to a particular user will have 3329 the same value for this initial index. For a given user's entries in a 3330 particular table, the object identifiers for the information in these 3331 entries will have the same subidentifiers (except for the "column" 3332 subidentifier) up to the end of the encoded owner index. To configure 3333 VACM to permit access to this portion of the table, one would create 3334 vacmViewTreeFamilyTable entries with the value of 3335 vacmViewTreeFamilySubtree including the owner index portion, and 3336 vacmViewTreeFamilyMask "wildcarding" the column subidentifier. More 3337 elaborate configurations are possible. The VACM access control 3338 mechanism described above provides control 3340 In general both the ping and traceroute functions when used excessively 3341 are considered a form of system attack. In the case of ping sending a 3342 system requests too often can negatively effect its performance or 3343 attempting to connect to what is supposed to be an unused port can be 3344 very unpredictable. Excessive use of the traceroute capability can like 3345 ping negatively affect system performance. In insecure environments it 3346 is RECOMMENDED that the MIBs defined within this memo not be supported. 3348 6.0 Intellectual Property 3350 The IETF takes no position regarding the validity or scope of any 3351 intellectual property or other rights that might be claimed to pertain 3352 to the implementation or use of the technology described in this 3353 document or the extent to which any license under such rights might or 3354 might not be available; neither does it represent that it has made any 3355 effort to identify any such rights. Information on the IETF's 3356 procedures with respect to rights in standards-track and 3357 standards-related documentation can be found in BCP-11. Copies of 3358 claims of rights made available for publication and any assurances of 3359 licenses to be made available, or the result of an attempt made to 3360 obtain a general license or permission for the use of such proprietary 3361 rights by implementers or users of this specification can be obtained 3362 from the IETF Secretariat. 3364 The IETF invites any interested party to bring to its attention any 3365 copyrights, patents or patent applications, or other proprietary rights 3366 which may cover technology that may be required to practice this 3367 standard. Please address the information to the IETF Executive 3368 Director. 3370 7.0 Acknowledgments 3372 This document is a product of the DISMAN Working Group. 3374 8.0 References 3376 [1] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network 3377 Management Protocol", STD 15, RFC 1157, May 1990. 3379 [2] 3381 Postel, J., "Echo Protocol", RFC 862, ISI, May 1983. 3383 [3] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. 3384 and Waldbusser, S., "Structure of Management Information Version 2 3385 (SMIv2)", STD 58, RFC 2578, April 1999. 3387 [4] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. 3388 and Waldbusser, S., "Textual Conventions for SMIv2", STD 58, RFC 3389 2579, April 1999. 3391 [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. 3392 and Waldbusser, S., "Conformance Statements for SMIv2", STD 58, RFC 3393 2580, April 1999. 3395 [6] Case, J., McCloghrie, K., Rose, M. and Waldbusser, S., "Protocol 3396 Operations for Version 2 of the Simple Network Management Protocol 3397 (SNMPv2)", RFC 1905, January 1996. 3399 [7] Harrington D., Presuhn, R., Wijnen, B., "An Architecture for 3400 Describing SNMP Management Frameworks", RFC 2571, April 1999. 3402 [8] Case, J., Harrington D., Presuhn, R., Wijnen, B., "Message 3403 Processing and Dispatching for the Simple Network Management 3404 Protocol (SNMP)", RFC 2572, April 1999. 3406 [9] Levi D., Meyer P., Stewart, B., "SNMPv3 Applications", RFC 2573, 3407 April 1999. 3409 [10] Blumenthal, U., Wijnen, B., "User-based Security Model (USM) for 3410 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 3411 2574, April 1999. 3413 [11] Wijnen, B., Presuhn, R., McCloghrie, K., "View-based Access Control 3414 Model (VACM) for the Simple Network Management Protocol (SNMP)", 3415 RFC 2575, April 1999. 3417 [12] Hovey, R. and Bradner, S., "The Organizations Involved in the IETF 3418 Standards Process", BCP 11, RFC 2028, October 1996. 3420 [13] Bradner, S., "Key words for use in RFCs to Indicate Requirement 3421 Levels", BCP 14, RFC 2119, March 1997. 3423 [14] Rose, M., and McCloghrie, K., "Structure and Identification of 3424 Management Information for TCP/IP-based Internets", RFC 1155, May 3425 1990. 3427 [15] Rose, M., and McCloghrie, K., "Concise MIB Definitions", RFC 1212, 3428 March 1991. 3430 [16] Rose, M., "A Convention for Defining Traps for use with the SNMP", 3431 RFC 1215, March 1991. 3433 [17] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 3434 "Introduction to Community-based SNMPv2", RFC 1901, January 1996. 3436 [18] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Transport 3437 Mappings for Version 2 of the Simple Network Management Protocol 3438 (SNMPv2)", RFC 1906, January 1996. 3440 [19] Bradner, S., "The Internet Standards Process -- Revision 3", RFC 3441 2026, BCP 9, October 1996. 3443 [20.] Postel, J., "Internet Control Message Protocol", RFC 792, 3444 September 1981. 3446 [21.] Nichols, K., Blake, S., Baker, F., Black, D. "Definition of the 3447 Differentiated Services Field (DS Field) in the IPv4 and IPv6 3448 Headers", RFC 2474, December 1998 3450 9.0 Author's Address 3452 Kenneth D. White 3453 Dept. BRQA/Bldg. 501/G114 3454 IBM Corporation 3455 P.O.Box 12195 3456 3039 Cornwallis 3457 Research Triangle Park, NC 27709, USA 3458 E-mail: wkenneth@us.ibm.com 3460 10.0 Full Copyright Statement 3462 Copyright (C) The Internet Society (1999). All Rights Reserved. 3464 This document and translations of it may be copied and furnished to 3465 others, and derivative works that comment on or otherwise explain it or 3466 assist in its implementation may be prepared, copied, published and 3467 distributed, in whole or in part, without restriction of any kind, 3468 provided that the above copyright notice and this paragraph are included 3469 on all such copies and derivative works. However, this document itself 3470 may not be modified in any way, such as by removing the copyright notice 3471 or references to the Internet Society or other Internet organizations, 3472 except as needed for the purpose of developing Internet standards in 3473 which case the procedures for copyrights defined in the Internet 3474 Standards process must be followed, or as required to translate it into 3475 languages other than English. 3477 The limited permissions granted above are perpetual and will not be 3478 revoked by the Internet Society or its successors or assigns. 3480 This document and the information contained herein is provided on an "AS 3481 IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK 3482 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT 3483 LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 3484 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 3485 FITNESS FOR A PARTICULAR PURPOSE.