Monitoring a Running Ping Test
When pingCtlAdminStatus is successfully set to enabled, the following is done before the acknowledgment of the SNMP Set request is sent back to the client:
- pingResultsEntry is created if it does not already exist.
- pingResultsOperStatus transitions to enabled.
For more information, see the following sections:
pingResultsTable
While the test is running, pingResultsEntry keeps track of the status of the test. The value of pingResultsOperStatus is enabled while the test is running and disabled when it has stopped.
The value of pingCtlAdminStatus remains enabled until you set it to disabled. Thus, to get the status of the test, you must examine pingResultsOperStatus.
The pingCtlFrequency variable can be used to schedule many tests for one pingCtlEntry. After a test ends normally (you did not stop the test) and the pingCtlFrequency number of seconds has elapsed, the test is started again just as if you had set pingCtlAdminStatus to enabled. If you intervene at any time between repeated tests (you set pingCtlAdminStatus to disabled or pingCtlRowStatus to notInService), the repeat feature is disabled until another test is started and ends normally. A value of 0 for pingCtlFrequency indicates this repeat feature is not active.
pingResultsIpTgtAddr and pingResultsIpTgtAddrType are set to the value of the resolved destination address when the value of pingCtlTargetAddressType is dns. When a test starts successfully and pingResultsOperStatus transitions to enabled:
- pingResultsIpTgtAddr is set to null-string.
- pingResultsIpTgtAddrType is set to unknown.
pingResultsIpTgtAddr and pingResultsIpTgtAddrType are not set until pingCtlTargetAddress can be resolved to a numeric address. To retrieve these values, poll pingResultsIpTgtAddrType for any value other than unknown after successfully setting pingCtlAdminStatus to enabled.
At the start of a test, pingResultsSentProbes is initialized to 1 and the first probe is sent. pingResultsSentProbes increases by 1 each time a probe is sent.
As the test runs, every pingCtlTimeOut seconds, the following occur:
- pingProbeHistoryStatus for the corresponding pingProbeHistoryEntry in pingProbeHistoryTable is set to requestTimedOut.
- A pingProbeFailed trap is generated, if necessary.
- An attempt is made to send the next probe.
Note: No more than one outstanding probe exists for each test.
For every probe, you can receive one of the following results:
- The target host acknowledges the probe with a response.
- The probe times out; there is no response from the target host acknowledging the probe.
- The probe could not be sent.
Each probe result is recorded in pingProbeHistoryTable. For more information about pingProbeHistoryTable, see pingProbeHistoryTable.
When a response is received from the target host acknowledging the current probe:
- pingResultsProbeResponses increases by 1.
- The following variables are updated:
- pingResultsMinRtt—Minimum round-trip time
- pingResultsMaxRtt—Maximum round-trip time
- pingResultsAverageRtt—Average round-trip time
- pingResultsRttSumOfSquares—Sum of squares of round-trip times
- pingResultsLastGoodProbe—Timestamp of the
last response
Note: Only probes that result in a response from the target host contribute to the calculation of the round-trip time (RTT) variables.
When a response to the last probe is received or the last probe has timed out, the test is complete.
pingProbeHistoryTable
An entry in pingProbeHistoryTable (pingProbeHistoryEntry) represents a probe result and is indexed by three variables:
- The first two variables, pingCtlOwnerIndex and pingCtlTestName, are the same ones used for pingCtlTable, which identifies the test.
- The third variable, pingProbeHistoryIndex, is a counter to uniquely identify each probe result.
The maximum number of pingProbeHistoryTable entries created for a given test is limited by pingCtlMaxRows. If pingCtlMaxRows is set to 0, no pingProbeHistoryTable entries are created for that test.
Each time a probe result is determined, a pingProbeHistoryEntry is created and added to pingProbeHistoryTable. pingProbeHistoryIndex of the new pingProbeHistoryEntry is 1 greater than the last pingProbeHistoryEntry added to pingProbeHistoryTable for that test. pingProbeHistoryIndex is set to 1 if this is the first entry in the table. The same test can be run multiple times, so this index keeps growing.
If pingProbeHistoryIndex of the last pingProbeHistoryEntry added is 0xFFFFFFFF, the next pingProbeHistoryEntry added has pingProbeHistoryIndex set to 1.
The following is recorded for each probe result:
- pingProbeHistoryResponse—Time to live (TTL)
- pingProbeHistoryStatus—What happened and why
- pingProbeHistoryLastRC—Return code (RC) value of ICMP packet
- pingProbeHistoryTime—Timestamp when probe result was determined
When a probe cannot be sent, pingProbeHistoryResponse is set to 0. When a probe times out, pingProbeHistoryResponse is set to the difference between the time when the probe was discovered to be timed out and the time when the probe was sent.
Generating Traps
For any trap to be generated, the appropriate bit of pingCtlTrapGeneration must be set. You must also configure a trap group to receive remote operations. A trap is generated under the following conditions:
- A pingProbeFailed trap is generated every time pingCtlTrapProbeFailureFilter number of consecutive probes fail during the test.
- A pingTestFailed trap is generated when the test completes and at least pingCtlTrapTestFailureFilter number of probes fail.
- A pingTestCompleted trap is generated when the
test completes and fewer than pingCtlTrapTestFailureFilter probes fail.
Note: A probe is considered a failure when pingProbeHistoryStatus of the probe result is anything besides responseReceived.
For information about how to configure a trap group to receive remote operations, see Configuring SNMP Trap Groups and Example: Setting Trap Notification for Remote Operations.