with respect to the persistence of the table entries that they
create.
3.4. Conformance
Each of the three MIB modules defined in this document has two
current compliance statements, one for full compliance and one for
minimum compliance. The minimum compliance statements are intended
to be applied to implementation for devices with very limited
resources. The main difference between full and minimum compliance
is that for minimum compliance, dynamic creation and deletion of
table entries is not required, whereas it is required for full
compliance.
In addition, the DISMAN-PING-MIB module and the DISMAN-TRACEROUTE-MIB
modules each have a deprecated compliance statement that was current
in RFC 2925. Semantically, the new full compliance statements are
identical to the deprecated ones. But some of the object groups used
in the old compliance statements needed to be split in order to
support the new minimal compliance statements.
4. Definitions
The following MIB modules import from [RFC2863], [RFC3411], and
[RFC4001]. They also use the REFERENCE clause to reference
[RFC1812], [RFC2474], and [RFC3260].
4.1. DISMAN-PING-MIB
DISMAN-PING-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32,
Unsigned32, Gauge32, mib-2,
NOTIFICATION-TYPE, OBJECT-IDENTITY
FROM SNMPv2-SMI -- RFC2578
TEXTUAL-CONVENTION, RowStatus,
StorageType, DateAndTime, TruthValue
FROM SNMPv2-TC -- RFC2579
MODULE-COMPLIANCE, OBJECT-GROUP,
NOTIFICATION-GROUP
FROM SNMPv2-CONF -- RFC2580
InterfaceIndexOrZero -- RFC2863
FROM IF-MIB
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB -- RFC3411
InetAddressType, InetAddress
FROM INET-ADDRESS-MIB; -- RFC4001
pingMIB MODULE-IDENTITY
LAST-UPDATED "200606130000Z" -- 13 June 2006
ORGANIZATION "IETF Distributed Management Working Group"
CONTACT-INFO
"Juergen Quittek
NEC Europe Ltd.
Network Laboratories
Kurfuersten-Anlage 36
69115 Heidelberg
Germany
Phone: +49 6221 4342-115
Email: quittek@netlab.nec.de"
DESCRIPTION
"The Ping MIB (DISMAN-PING-MIB) provides the capability of
controlling the use of the ping function at a remote
host.
Copyright (C) The Internet Society (2006). This version of
this MIB module is part of RFC 4560; see the RFC itself for
full legal notices."
-- Revision history
REVISION "200606130000Z" -- 13 June 2006
DESCRIPTION
"Updated version, published as RFC 4560.
- Correctly considered IPv6 in DESCRIPTION
clause of pingCtlDataSize
- Replaced references to RFC 2575 by RFC 3415
- Replaced references to RFC 2571 by RFC 3411
- Replaced references to RFC 2851 by RFC 4001
- Added DEFVAL { {} } to definition of
pingCtlTrapGeneration
- Changed DEFVAL of object pingCtlDescr from
DEFVAL { ’00’H } to DEFVAL { ’’H }
- Changed DEFVAL of object pingCtlSourceAddressType
from DEFVAL { ipv4 } to DEFVAL { unknown }
- Extended DESCRIPTION clause of pingResultsTable
describing re-initialization of entries
- Changed SYNTAX of pingResultsProbeResponses and
pingResultsSentProbes from Unsigned32 to Gauge32
- Changed status of pingCompliance to deprecated
- Added pingFullCompliance and pingMinimumCompliance
- Changed status of pingGroup and pingTimeStampGroup
to deprecated
- Added pingMinimumGroup, pingCtlRowStatusGroup,
and pingHistoryGroup"
REVISION "200009210000Z" -- 21 September 2000
DESCRIPTION
"Initial version, published as RFC 2925."
::= { mib-2 80 }
-- Textual Conventions
OperationResponseStatus ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Used to report the result of an operation:
responseReceived(1) - Operation is completed successfully.
unknown(2) - Operation failed due to unknown error.
internalError(3) - An implementation detected an error
in its own processing that caused an operation
to fail.
requestTimedOut(4) - Operation failed to receive a
valid reply within the time limit imposed on it.
unknownDestinationAddress(5) - Invalid destination
address.
noRouteToTarget(6) - Could not find a route to target.
interfaceInactiveToTarget(7) - The interface to be
used in sending a probe is inactive, and an
alternate route does not exist.
arpFailure(8) - Unable to resolve a target address to a
media-specific address.
maxConcurrentLimitReached(9) - The maximum number of
concurrent active operations would have been exceeded
if the corresponding operation was allowed.
unableToResolveDnsName(10) - The DNS name specified was
unable to be mapped to an IP address.
invalidHostAddress(11) - The IP address for a host
has been determined to be invalid. Examples of this
are broadcast or multicast addresses."
SYNTAX INTEGER {
responseReceived(1),
unknown(2),
internalError(3),
requestTimedOut(4),
unknownDestinationAddress(5),
noRouteToTarget(6),
interfaceInactiveToTarget(7),
arpFailure(8),
maxConcurrentLimitReached(9),
unableToResolveDnsName(10),
invalidHostAddress(11)
}
-- Top level structure of the MIB
pingNotifications OBJECT IDENTIFIER ::= { pingMIB 0 }
pingObjects OBJECT IDENTIFIER ::= { pingMIB 1 }
pingConformance OBJECT IDENTIFIER ::= { pingMIB 2 }
-- The registration node (point) for ping implementation types
pingImplementationTypeDomains OBJECT IDENTIFIER ::= { pingMIB 3 }
pingIcmpEcho OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Indicates that an implementation is using the Internet
Control Message Protocol (ICMP) ’ECHO’ facility."
::= { pingImplementationTypeDomains 1 }
pingUdpEcho OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Indicates that an implementation is using the UDP echo
port (7)."
REFERENCE
"RFC 862, ’Echo Protocol’."
::= { pingImplementationTypeDomains 2 }
pingSnmpQuery OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Indicates that an implementation is using an SNMP query
to calculate a round trip time."
::= { pingImplementationTypeDomains 3 }
pingTcpConnectionAttempt OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Indicates that an implementation is attempting to
connect to a TCP port in order to calculate a round
trip time."
::= { pingImplementationTypeDomains 4 }
-- Simple Object Definitions
pingMaxConcurrentRequests OBJECT-TYPE
SYNTAX Unsigned32
UNITS "requests"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The maximum number of concurrent active ping requests
that are allowed within an agent implementation. A value
of 0 for this object implies that there is no limit for
the number of concurrent active requests in effect.
The limit applies only to new requests being activated.
When a new value is set, the agent will continue processing
all the requests already active, even if their number
exceeds the limit just imposed."
DEFVAL { 10 }
::= { pingObjects 1 }
-- Ping Control Table
pingCtlTable OBJECT-TYPE
SYNTAX SEQUENCE OF PingCtlEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines the ping Control Table for providing, via SNMP,
the capability of performing ping operations at
a remote host. The results of these operations are
stored in the pingResultsTable and the
pingProbeHistoryTable."
::= { pingObjects 2 }
pingCtlEntry OBJECT-TYPE
SYNTAX PingCtlEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the pingCtlTable. The first index
element, pingCtlOwnerIndex, is of type SnmpAdminString,
a textual convention that allows for use of the SNMPv3
View-Based Access Control Model (RFC 3415, VACM)
and that allows a management application to identify its
entries. The second index, pingCtlTestName (also an
SnmpAdminString), enables the same management
application to have multiple outstanding requests."
INDEX {
pingCtlOwnerIndex,
pingCtlTestName
}
::= { pingCtlTable 1 }
PingCtlEntry ::=
SEQUENCE {
pingCtlOwnerIndex SnmpAdminString,
pingCtlTestName SnmpAdminString,
pingCtlTargetAddressType InetAddressType,
pingCtlTargetAddress InetAddress,
pingCtlDataSize Unsigned32,
pingCtlTimeOut Unsigned32,
pingCtlProbeCount Unsigned32,
pingCtlAdminStatus INTEGER,
pingCtlDataFill OCTET STRING,
pingCtlFrequency Unsigned32,
pingCtlMaxRows Unsigned32,
pingCtlStorageType StorageType,
pingCtlTrapGeneration BITS,
pingCtlTrapProbeFailureFilter Unsigned32,
pingCtlTrapTestFailureFilter Unsigned32,
pingCtlType OBJECT IDENTIFIER,
pingCtlDescr SnmpAdminString,
pingCtlSourceAddressType InetAddressType,
pingCtlSourceAddress InetAddress,
pingCtlIfIndex InterfaceIndexOrZero,
pingCtlByPassRouteTable TruthValue,
pingCtlDSField Unsigned32,
pingCtlRowStatus RowStatus
}
pingCtlOwnerIndex OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"To facilitate the provisioning of access control by a
security administrator using the View-Based Access
Control Model (RFC 2575, VACM) for tables in which
multiple users may need to create or
modify entries independently, the initial index is used
as an ’owner index’. Such an initial index has a syntax
of SnmpAdminString and can thus be trivially mapped to a
securityName or groupName defined in VACM, in
accordance with a security policy.
When used in conjunction with such a security policy, all
entries in the table belonging to a particular user (or
group) will have the same value for this initial index.
For a given user’s entries in a particular table, the
object identifiers for the information in these entries
will have the same subidentifiers (except for the ’column’
subidentifier) up to the end of the encoded owner index.
To configure VACM to permit access to this portion of the
table, one would create vacmViewTreeFamilyTable entries
with the value of vacmViewTreeFamilySubtree including
the owner index portion, and vacmViewTreeFamilyMask
’wildcarding’ the column subidentifier. More elaborate
configurations are possible."
::= { pingCtlEntry 1 }
pingCtlTestName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The name of the ping test. This is locally unique, within
the scope of a pingCtlOwnerIndex."
::= { pingCtlEntry 2 }
pingCtlTargetAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies the type of host address to be used at a remote
host for performing a ping operation."
DEFVAL { unknown }
::= { pingCtlEntry 3 }
pingCtlTargetAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies the host address to be used at a remote host for
performing a ping operation. The host address type is
determined by the value of the corresponding
pingCtlTargetAddressType.
A value for this object MUST be set prior to transitioning
its corresponding pingCtlEntry to active(1) via
pingCtlRowStatus."
DEFVAL { ’’H }
::= { pingCtlEntry 4 }
pingCtlDataSize OBJECT-TYPE
SYNTAX Unsigned32 (0..65507)
UNITS "octets"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies the size of the data portion to be
transmitted in a ping operation, in octets. Whether this
value can be applied depends on the selected
implementation method for performing a ping operation,
indicated by pingCtlType in the same conceptual row.
If the method used allows applying the value contained
in this object, then it MUST be applied. If the specified
size is not appropriate for the chosen ping method, the
implementation SHOULD use whatever size (appropriate to
the method) is closest to the specified size.
The maximum value for this object was computed by
subtracting the smallest possible IP header size of
20 octets (IPv4 header with no options) and the UDP
header size of 8 octets from the maximum IP packet size.
An IP packet has a maximum size of 65535 octets
(excluding IPv6 Jumbograms)."
DEFVAL { 0 }
::= { pingCtlEntry 5 }
pingCtlTimeOut OBJECT-TYPE
SYNTAX Unsigned32 (1..60)
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies the time-out value, in seconds, for a
remote ping operation."
DEFVAL { 3 }
::= { pingCtlEntry 6 }
pingCtlProbeCount OBJECT-TYPE
SYNTAX Unsigned32 (1..15)
UNITS "probes"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Specifies the number of times to perform a ping
operation at a remote host as part of a single ping test."
DEFVAL { 1 }
::= { pingCtlEntry 7 }
pingCtlAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
enabled(1), -- test should be started
disabled(2) -- test should be stopped
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Reflects the desired state that a pingCtlEntry should be
in:
enabled(1) - Attempt to activate the test as defined by
this pingCtlEntry.
disabled(2) - Deactivate the test as defined by this
pingCtlEntry.
Refer to the corresponding pingResultsOperStatus to
determine the operational state of the test defined by
this entry."
DEFVAL { disabled }
::= { pingCtlEntry 8 }
pingCtlDataFill OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..1024))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The content of this object is used together with the
corresponding pingCtlDataSize value to determine how to
fill the data portion of a probe packet. The option of
selecting a data fill pattern can be useful when links
are compressed or have data pattern sensitivities. The
contents of pingCtlDataFill should be repeated in a ping
packet when the size of the data portion of the ping
packet is greater than the size of pingCtlDataFill."
DEFVAL { ’00’H }
::= { pingCtlEntry 9 }
pingCtlFrequency OBJECT-TYPE
SYNTAX Unsigned32
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The number of seconds to wait before repeating a ping test
as defined by the value of the various objects in the
corresponding row.
A single ping test consists of a series of ping probes.
The number of probes is determined by the value of the
corresponding pingCtlProbeCount object. After a single
test is completed the number of seconds as defined by the
value of pingCtlFrequency MUST elapse before the
next ping test is started.
A value of 0 for this object implies that the test
as defined by the corresponding entry will not be
repeated."
DEFVAL { 0 }
::= { pingCtlEntry 10 }
pingCtlMaxRows OBJECT-TYPE
SYNTAX Unsigned32
UNITS "rows"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum number of corresponding entries allowed
in the pingProbeHistoryTable. An implementation of this
MIB will remove the oldest corresponding entry in the
pingProbeHistoryTable to allow the addition of an
new entry once the number of corresponding rows in the