302 lines
10 KiB
Plaintext
302 lines
10 KiB
Plaintext
HP-OV-NETMON DEFINITIONS ::= BEGIN
|
|
|
|
-- First cut at HP OpenView Netmon MIB
|
|
|
|
IMPORTS
|
|
enterprises FROM SNMPv2-SMI,
|
|
OBJECT-TYPE
|
|
FROM RFC-1212;
|
|
|
|
hp OBJECT IDENTIFIER ::= { enterprises 11 }
|
|
nm OBJECT IDENTIFIER ::= { hp 2 }
|
|
openView OBJECT IDENTIFIER ::= { nm 17 }
|
|
hpOVDistribStation
|
|
OBJECT IDENTIFIER ::= { openView 4 }
|
|
hpOVNetmon OBJECT IDENTIFIER ::= { hpOVDistribStation 4 }
|
|
|
|
nmStatus OBJECT IDENTIFIER ::= { hpOVNetmon 1 }
|
|
nmTest OBJECT IDENTIFIER ::= { hpOVNetmon 2 }
|
|
nmICMPStatus OBJECT IDENTIFIER ::= { nmStatus 1 }
|
|
nmSNMPStatus OBJECT IDENTIFIER ::= { nmStatus 2 }
|
|
|
|
|
|
|
|
-- ICMP polling objects
|
|
|
|
nmICMPListLength OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The length of netmon's ICMP polling list, indicating
|
|
the number of managed interfaces actively being status
|
|
polled."
|
|
::= { nmICMPStatus 1 }
|
|
|
|
nmICMPPollsWithin1m OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The number of interfaces scheduled to be polled by
|
|
netmon via ICMP with the next minute."
|
|
::= { nmICMPStatus 2 }
|
|
|
|
nmICMPSecsUntilNextPoll OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The number of seconds until the next scheduled ICMP
|
|
poll. This may a negative number if netmon is behind in
|
|
ICMP polling."
|
|
::= { nmICMPStatus 3 }
|
|
|
|
|
|
-- SNMP polling objects
|
|
|
|
nmSNMPListLength OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The length of netmon's SNMP polling list, indicating
|
|
the number of managed nodes actively being polled."
|
|
::= { nmSNMPStatus 1 }
|
|
|
|
nmSNMPPollsWithin1m OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The number of nodes scheduled to be polled by netmon
|
|
via SNMP with the next minute."
|
|
::= { nmSNMPStatus 2 }
|
|
|
|
|
|
nmSNMPSecsUntilNextPoll OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The number of seconds netmon until the next scheduled
|
|
SNMP poll. It is calculated by subtracting the time of the
|
|
poll at the head of the list from the current time. If
|
|
netmon is behind, this can be a negative value."
|
|
::= { nmSNMPStatus 3 }
|
|
|
|
|
|
|
|
-- Netmon status poll testing table.
|
|
-- This table allows a test engineer to specify the status value of
|
|
-- an interface of a node in the network. This value is normally
|
|
-- determined by netmon during the ICMP (ping) status poll. When a
|
|
-- test engineer sets this to a non-measure value, netmon will not
|
|
-- perform the ping, instead it will use the user-specified value.
|
|
|
|
nmStatPollTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF NmStatPollEntry
|
|
ACCESS not-accessible
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"A list of nmStatPollEntry's which contain user specified
|
|
status values for node interfaces. There is no scalar
|
|
MIB that represents the number of entries."
|
|
::= { nmTest 1 }
|
|
|
|
nmStatPollEntry OBJECT-TYPE
|
|
SYNTAX NmStatPollEntry
|
|
ACCESS not-accessible
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The MIB objects in this entry contain the user
|
|
specified value of the status poll for the particular
|
|
interface and various support MIB variables which
|
|
control when the new status takes affect and how
|
|
many nodes will be changed by the action."
|
|
INDEX { topoObjID }
|
|
::= { nmStatPollTable 1 }
|
|
|
|
NmStatPollEntry ::=
|
|
SEQUENCE {
|
|
topoObjID
|
|
INTEGER,
|
|
objStatus
|
|
INTEGER,
|
|
takeEffectWhen
|
|
INTEGER,
|
|
numCritRouteObjs
|
|
INTEGER,
|
|
criticalRoute
|
|
DisplayString
|
|
}
|
|
|
|
topoObjID OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-only
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The OpenView Network Node Manager ovwDB ID which
|
|
corresponds to a particular internet interface object
|
|
in the topology database. This object can correspond
|
|
to an ip, ipx, level 2 interface. However, at first
|
|
deployment only ip interfaces are supported."
|
|
::= { nmStatPollEntry 1 }
|
|
|
|
objStatus OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
ifStatusMeasureIt(0), -- Measure status with ping.
|
|
ifStatusUnknown(1), -- Other values obtained from
|
|
ifStatusNormal(2), -- ipdl/include/topo_dbdefs.h.
|
|
ifStatusMinor(3),
|
|
ifStatusCritical(4),
|
|
ifStatusUnmanaged(5),
|
|
ifStatusWarning(6),
|
|
ifStatusMajor(7),
|
|
ifStatusRestricted(8),
|
|
ifStatusTesting(9),
|
|
ifStatusDisabled(10)
|
|
}
|
|
ACCESS read-write
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"The value of this MIB object is the value that netmon
|
|
will use as the status of the object whenever the
|
|
particular object comes to the top of the status
|
|
polling queue. If the value is different than what is
|
|
currently in the OpenView Network Node Manager topology
|
|
database, then netmon will process the change just like
|
|
it does if the result came back from ping (e.g. netmon
|
|
may change the status in the topoDB and send out various
|
|
events).
|
|
|
|
A value of D_ifStatus_measureIt(0) indicates that netmon
|
|
should measure the status of the object (like it
|
|
normally does in the product) using ping or
|
|
other techniques rather than using a value provided by
|
|
a user.
|
|
|
|
During a set operation, the user supplied value will be
|
|
written immediately to an interface specific record in
|
|
netmon. The value will ripple through to the event
|
|
system and topology database immediately if the
|
|
<takeEffectWhen> MIB variable has a value of
|
|
immediately(1) or at netmon's next status poll if
|
|
<takeEffectWhen> has a value of atNextStatusPoll(0).
|
|
|
|
This object is intended to be used to provide a value
|
|
for interfaces only. For example, setting a value for
|
|
a node will fail.
|
|
|
|
The instance value for this object is the ovwDB ID
|
|
(topoObjID) which corresponds to an interface in the
|
|
topology DB. The ovwDB ID is used instead of ipAddress
|
|
because it works for level 2, ip, ipx and in general
|
|
any kind of object in the topology database.
|
|
|
|
REFINEMENT/CORRECTION:
|
|
|
|
Instead of actually specifying a value that netmon must
|
|
use for the node, we want to communicate which nodes
|
|
are inaccessible and allow netmon to determine the
|
|
exact status using it's router down analysis and
|
|
configuration.
|
|
|
|
So the status values above will be mapped per the
|
|
following table:
|
|
|
|
ifStatusMeasureIt(0)
|
|
Maps to 'Measure status with ping just like
|
|
normal operation'.
|
|
|
|
ifStatusNormal(2)
|
|
Maps to 'Up'.
|
|
|
|
ifStatusUnknown(1),
|
|
ifStatusMinor(3),
|
|
ifStatusCritical(4),
|
|
ifStatusUnmanaged(5),
|
|
ifStatusWarning(6),
|
|
ifStatusMajor(7),
|
|
ifStatusRestricted(8),
|
|
ifStatusTesting(9),
|
|
ifStatusDisabled(10)
|
|
All others values map to inaccessible. The
|
|
actual status value used will be determined
|
|
by netmon using its Router Down algorithm
|
|
and configuration.
|
|
"
|
|
::= { nmStatPollEntry 2 }
|
|
|
|
|
|
takeEffectWhen OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
atNextStatusPoll(0),
|
|
immediately(1)
|
|
}
|
|
ACCESS read-write
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"This MIB object specifies when the user specified
|
|
interface status will impact the Event System and the
|
|
Topology database. A value of atNextStatusPoll(0)
|
|
indicates that the value will be recorded in netmon's
|
|
process memory but will not impact the Event System and
|
|
Topology database until netmon is ready to perform the
|
|
next status poll on the specified interface.
|
|
|
|
A value of immediately(1) causes netmon to move the
|
|
specified node to the front of the status poll queue
|
|
so that the new status impacts the Event System and
|
|
Topology database immediately.
|
|
|
|
A set with a value greater than immediately(1) is interpretted
|
|
as a time to schedule a status poll for the selected interface.
|
|
The interface is rescheduled at a time equal to
|
|
now + <takeEffectWhen> in seconds. This is useful for automated
|
|
tests for eliminating the possibility that netmon will status
|
|
poll nodes that the test is working on before the test is set
|
|
up or in a different order then the test expects.
|
|
|
|
The structure of this MIB table suggests that the
|
|
<takeEffectWhen> value is stored in netmon on a per
|
|
interface basis. This could happen at a later date but
|
|
is initially implemented as a interface-independent
|
|
global. For reliable operation, this MIB variable
|
|
should be specified as a var-bind preceding objStatus
|
|
in a multi-var-bind SNMP Set request."
|
|
::= { nmStatPollEntry 3 }
|
|
|
|
numCritRouteObjs OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
ACCESS read-write
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"This object is currently not implemented."
|
|
::= { nmStatPollEntry 4 }
|
|
|
|
criticalRoute OBJECT-TYPE
|
|
SYNTAX DisplayString (SIZE (0..255))
|
|
ACCESS read-write
|
|
STATUS mandatory
|
|
DESCRIPTION
|
|
"This MIB object's value is a space separated list of <ovwDbId>
|
|
<hostname>.<ifNumber> tuple values which correspond to the specified
|
|
interface's criticalRoute beginning with the netmon host/interface and
|
|
ending with the specified host/interface. This value is normally computed
|
|
by netmon during the status poll of the specified interface.
|
|
|
|
For automated test situations, you can imagine starting up
|
|
the system from scratch (including netmon). At the time the
|
|
test runs, it's possible that netmon has not yet calculated
|
|
criticalRoute for the nodes of interest.
|
|
|
|
Of course if you wait long enough, netmon will eventually get
|
|
around to computing a criticalRoute value. To facilitate
|
|
automated testing, a set to this object forces netmon to
|
|
compute the criticalRoute attribute for the specified
|
|
interface. The user supplied value is ignored.
|
|
"
|
|
::= { nmStatPollEntry 5 }
|
|
END
|