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