mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-24 10:41:56 +01:00
1815 lines
70 KiB
Plaintext
1815 lines
70 KiB
Plaintext
IF-MIB DEFINITIONS ::= BEGIN
|
|
|
|
IMPORTS
|
|
MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
|
|
Integer32, TimeTicks, mib-2,
|
|
NOTIFICATION-TYPE FROM SNMPv2-SMI
|
|
TEXTUAL-CONVENTION, DisplayString,
|
|
PhysAddress, TruthValue, RowStatus,
|
|
TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-TC
|
|
MODULE-COMPLIANCE, OBJECT-GROUP,
|
|
NOTIFICATION-GROUP FROM SNMPv2-CONF
|
|
snmpTraps FROM SNMPv2-MIB
|
|
IANAifType FROM IANAifType-MIB;
|
|
|
|
ifMIB MODULE-IDENTITY
|
|
LAST-UPDATED "200006140000Z"
|
|
ORGANIZATION "IETF Interfaces MIB Working Group"
|
|
CONTACT-INFO
|
|
" Keith McCloghrie
|
|
Cisco Systems, Inc.
|
|
170 West Tasman Drive
|
|
San Jose, CA 95134-1706
|
|
US
|
|
|
|
408-526-5260
|
|
kzm@cisco.com"
|
|
DESCRIPTION
|
|
"The MIB module to describe generic objects for network
|
|
interface sub-layers. This MIB is an updated version of
|
|
MIB-II's ifTable, and incorporates the extensions defined in
|
|
RFC 1229."
|
|
|
|
REVISION "200006140000Z"
|
|
DESCRIPTION
|
|
"Clarifications agreed upon by the Interfaces MIB WG, and
|
|
published as RFC 2863."
|
|
REVISION "199602282155Z"
|
|
DESCRIPTION
|
|
"Revisions made by the Interfaces MIB WG, and published in
|
|
RFC 2233."
|
|
REVISION "199311082155Z"
|
|
DESCRIPTION
|
|
"Initial revision, published as part of RFC 1573."
|
|
::= { mib-2 31 }
|
|
|
|
ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
|
|
|
|
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
|
|
|
|
--
|
|
-- Textual Conventions
|
|
--
|
|
|
|
-- OwnerString has the same semantics as used in RFC 1271
|
|
|
|
OwnerString ::= TEXTUAL-CONVENTION
|
|
DISPLAY-HINT "255a"
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This data type is used to model an administratively
|
|
assigned name of the owner of a resource. This information
|
|
is taken from the NVT ASCII character set. It is suggested
|
|
that this name contain one or more of the following: ASCII
|
|
form of the manager station's transport address, management
|
|
station name (e.g., domain name), network management
|
|
personnel's name, location, or phone number. In some cases
|
|
the agent itself will be the owner of an entry. In these
|
|
cases, this string shall be set to a string starting with
|
|
'agent'."
|
|
SYNTAX OCTET STRING (SIZE(0..255))
|
|
|
|
-- InterfaceIndex contains the semantics of ifIndex and should be used
|
|
-- for any objects defined in other MIB modules that need these semantics.
|
|
|
|
InterfaceIndex ::= TEXTUAL-CONVENTION
|
|
DISPLAY-HINT "d"
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A unique value, greater than zero, for each interface or
|
|
interface sub-layer in the managed system. It is
|
|
recommended that values are assigned contiguously starting
|
|
from 1. The value for each interface sub-layer must remain
|
|
constant at least from one re-initialization of the entity's
|
|
network management system to the next re-initialization."
|
|
SYNTAX Integer32 (1..2147483647)
|
|
|
|
InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
|
|
DISPLAY-HINT "d"
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This textual convention is an extension of the
|
|
InterfaceIndex convention. The latter defines a greater
|
|
than zero value used to identify an interface or interface
|
|
sub-layer in the managed system. This extension permits the
|
|
additional value of zero. the value zero is object-specific
|
|
and must therefore be defined as part of the description of
|
|
any object which uses this syntax. Examples of the usage of
|
|
zero might include situations where interface was unknown,
|
|
or when none or all interfaces need to be referenced."
|
|
SYNTAX Integer32 (0..2147483647)
|
|
|
|
ifNumber OBJECT-TYPE
|
|
SYNTAX Integer32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of network interfaces (regardless of their
|
|
current state) present on this system."
|
|
::= { interfaces 1 }
|
|
|
|
ifTableLastChange OBJECT-TYPE
|
|
SYNTAX TimeTicks
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of sysUpTime at the time of the last creation or
|
|
deletion of an entry in the ifTable. If the number of
|
|
entries has been unchanged since the last re-initialization
|
|
of the local network management subsystem, then this object
|
|
contains a zero value."
|
|
::= { ifMIBObjects 5 }
|
|
|
|
-- the Interfaces table
|
|
|
|
-- The Interfaces table contains information on the entity's
|
|
|
|
-- interfaces. Each sub-layer below the internetwork-layer
|
|
-- of a network interface is considered to be an interface.
|
|
|
|
ifTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF IfEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A list of interface entries. The number of entries is
|
|
given by the value of ifNumber."
|
|
::= { interfaces 2 }
|
|
|
|
ifEntry OBJECT-TYPE
|
|
SYNTAX IfEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry containing management information applicable to a
|
|
particular interface."
|
|
INDEX { ifIndex }
|
|
::= { ifTable 1 }
|
|
|
|
IfEntry ::=
|
|
SEQUENCE {
|
|
ifIndex InterfaceIndex,
|
|
ifDescr DisplayString,
|
|
ifType IANAifType,
|
|
ifMtu Integer32,
|
|
ifSpeed Gauge32,
|
|
ifPhysAddress PhysAddress,
|
|
ifAdminStatus INTEGER,
|
|
ifOperStatus INTEGER,
|
|
ifLastChange TimeTicks,
|
|
ifInOctets Counter32,
|
|
ifInUcastPkts Counter32,
|
|
ifInNUcastPkts Counter32, -- deprecated
|
|
ifInDiscards Counter32,
|
|
ifInErrors Counter32,
|
|
ifInUnknownProtos Counter32,
|
|
ifOutOctets Counter32,
|
|
ifOutUcastPkts Counter32,
|
|
ifOutNUcastPkts Counter32, -- deprecated
|
|
ifOutDiscards Counter32,
|
|
ifOutErrors Counter32,
|
|
ifOutQLen Gauge32, -- deprecated
|
|
ifSpecific OBJECT IDENTIFIER -- deprecated
|
|
}
|
|
|
|
ifIndex OBJECT-TYPE
|
|
SYNTAX InterfaceIndex
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A unique value, greater than zero, for each interface. It
|
|
is recommended that values are assigned contiguously
|
|
starting from 1. The value for each interface sub-layer
|
|
must remain constant at least from one re-initialization of
|
|
the entity's network management system to the next re-
|
|
initialization."
|
|
::= { ifEntry 1 }
|
|
|
|
ifDescr OBJECT-TYPE
|
|
SYNTAX DisplayString (SIZE (0..255))
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A textual string containing information about the
|
|
interface. This string should include the name of the
|
|
manufacturer, the product name and the version of the
|
|
interface hardware/software."
|
|
::= { ifEntry 2 }
|
|
|
|
ifType OBJECT-TYPE
|
|
SYNTAX IANAifType
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The type of interface. Additional values for ifType are
|
|
assigned by the Internet Assigned Numbers Authority (IANA),
|
|
through updating the syntax of the IANAifType textual
|
|
convention."
|
|
::= { ifEntry 3 }
|
|
|
|
ifMtu OBJECT-TYPE
|
|
SYNTAX Integer32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The size of the largest packet which can be sent/received
|
|
on the interface, specified in octets. For interfaces that
|
|
are used for transmitting network datagrams, this is the
|
|
size of the largest network datagram that can be sent on the
|
|
interface."
|
|
::= { ifEntry 4 }
|
|
|
|
ifSpeed OBJECT-TYPE
|
|
SYNTAX Gauge32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An estimate of the interface's current bandwidth in bits
|
|
per second. For interfaces which do not vary in bandwidth
|
|
or for those where no accurate estimation can be made, this
|
|
object should contain the nominal bandwidth. If the
|
|
bandwidth of the interface is greater than the maximum value
|
|
reportable by this object then this object should report its
|
|
maximum value (4,294,967,295) and ifHighSpeed must be used
|
|
to report the interace's speed. For a sub-layer which has
|
|
no concept of bandwidth, this object should be zero."
|
|
::= { ifEntry 5 }
|
|
|
|
ifPhysAddress OBJECT-TYPE
|
|
SYNTAX PhysAddress
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The interface's address at its protocol sub-layer. For
|
|
example, for an 802.x interface, this object normally
|
|
contains a MAC address. The interface's media-specific MIB
|
|
must define the bit and byte ordering and the format of the
|
|
value of this object. For interfaces which do not have such
|
|
an address (e.g., a serial line), this object should contain
|
|
an octet string of zero length."
|
|
::= { ifEntry 6 }
|
|
|
|
ifAdminStatus OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
up(1), -- ready to pass packets
|
|
down(2),
|
|
testing(3) -- in some test mode
|
|
}
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The desired state of the interface. The testing(3) state
|
|
indicates that no operational packets can be passed. When a
|
|
managed system initializes, all interfaces start with
|
|
ifAdminStatus in the down(2) state. As a result of either
|
|
explicit management action or per configuration information
|
|
retained by the managed system, ifAdminStatus is then
|
|
changed to either the up(1) or testing(3) states (or remains
|
|
in the down(2) state)."
|
|
::= { ifEntry 7 }
|
|
|
|
ifOperStatus OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
up(1), -- ready to pass packets
|
|
down(2),
|
|
testing(3), -- in some test mode
|
|
unknown(4), -- status can not be determined
|
|
-- for some reason.
|
|
dormant(5),
|
|
notPresent(6), -- some component is missing
|
|
lowerLayerDown(7) -- down due to state of
|
|
-- lower-layer interface(s)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The current operational state of the interface. The
|
|
testing(3) state indicates that no operational packets can
|
|
be passed. If ifAdminStatus is down(2) then ifOperStatus
|
|
should be down(2). If ifAdminStatus is changed to up(1)
|
|
then ifOperStatus should change to up(1) if the interface is
|
|
ready to transmit and receive network traffic; it should
|
|
change to dormant(5) if the interface is waiting for
|
|
external actions (such as a serial line waiting for an
|
|
incoming connection); it should remain in the down(2) state
|
|
if and only if there is a fault that prevents it from going
|
|
to the up(1) state; it should remain in the notPresent(6)
|
|
state if the interface has missing (typically, hardware)
|
|
components."
|
|
::= { ifEntry 8 }
|
|
|
|
ifLastChange OBJECT-TYPE
|
|
SYNTAX TimeTicks
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of sysUpTime at the time the interface entered
|
|
its current operational state. If the current state was
|
|
entered prior to the last re-initialization of the local
|
|
network management subsystem, then this object contains a
|
|
zero value."
|
|
::= { ifEntry 9 }
|
|
|
|
ifInOctets OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of octets received on the interface,
|
|
including framing characters.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 10 }
|
|
|
|
ifInUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were not addressed to a multicast
|
|
or broadcast address at this sub-layer.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 11 }
|
|
|
|
ifInNUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were addressed to a multicast or
|
|
broadcast address at this sub-layer.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime.
|
|
|
|
This object is deprecated in favour of ifInMulticastPkts and
|
|
ifInBroadcastPkts."
|
|
::= { ifEntry 12 }
|
|
|
|
ifInDiscards OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of inbound packets which were chosen to be
|
|
discarded even though no errors had been detected to prevent
|
|
|
|
their being deliverable to a higher-layer protocol. One
|
|
possible reason for discarding such a packet could be to
|
|
free up buffer space.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 13 }
|
|
|
|
ifInErrors OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"For packet-oriented interfaces, the number of inbound
|
|
packets that contained errors preventing them from being
|
|
deliverable to a higher-layer protocol. For character-
|
|
oriented or fixed-length interfaces, the number of inbound
|
|
transmission units that contained errors preventing them
|
|
from being deliverable to a higher-layer protocol.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 14 }
|
|
|
|
ifInUnknownProtos OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"For packet-oriented interfaces, the number of packets
|
|
received via the interface which were discarded because of
|
|
an unknown or unsupported protocol. For character-oriented
|
|
or fixed-length interfaces that support protocol
|
|
multiplexing the number of transmission units received via
|
|
the interface which were discarded because of an unknown or
|
|
unsupported protocol. For any interface that does not
|
|
support protocol multiplexing, this counter will always be
|
|
0.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 15 }
|
|
|
|
ifOutOctets OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of octets transmitted out of the
|
|
interface, including framing characters.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 16 }
|
|
|
|
ifOutUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were not addressed to a
|
|
multicast or broadcast address at this sub-layer, including
|
|
those that were discarded or not sent.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 17 }
|
|
|
|
ifOutNUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were addressed to a
|
|
multicast or broadcast address at this sub-layer, including
|
|
those that were discarded or not sent.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime.
|
|
|
|
This object is deprecated in favour of ifOutMulticastPkts
|
|
and ifOutBroadcastPkts."
|
|
::= { ifEntry 18 }
|
|
|
|
ifOutDiscards OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of outbound packets which were chosen to be
|
|
discarded even though no errors had been detected to prevent
|
|
their being transmitted. One possible reason for discarding
|
|
such a packet could be to free up buffer space.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 19 }
|
|
|
|
ifOutErrors OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"For packet-oriented interfaces, the number of outbound
|
|
packets that could not be transmitted because of errors.
|
|
For character-oriented or fixed-length interfaces, the
|
|
number of outbound transmission units that could not be
|
|
transmitted because of errors.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifEntry 20 }
|
|
|
|
ifOutQLen OBJECT-TYPE
|
|
SYNTAX Gauge32
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The length of the output packet queue (in packets)."
|
|
::= { ifEntry 21 }
|
|
|
|
ifSpecific OBJECT-TYPE
|
|
SYNTAX OBJECT IDENTIFIER
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A reference to MIB definitions specific to the particular
|
|
media being used to realize the interface. It is
|
|
|
|
recommended that this value point to an instance of a MIB
|
|
object in the media-specific MIB, i.e., that this object
|
|
have the semantics associated with the InstancePointer
|
|
textual convention defined in RFC 2579. In fact, it is
|
|
recommended that the media-specific MIB specify what value
|
|
ifSpecific should/can take for values of ifType. If no MIB
|
|
definitions specific to the particular media are available,
|
|
the value should be set to the OBJECT IDENTIFIER { 0 0 }."
|
|
::= { ifEntry 22 }
|
|
|
|
--
|
|
-- Extension to the interface table
|
|
--
|
|
-- This table replaces the ifExtnsTable table.
|
|
--
|
|
|
|
ifXTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF IfXEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A list of interface entries. The number of entries is
|
|
given by the value of ifNumber. This table contains
|
|
additional objects for the interface table."
|
|
::= { ifMIBObjects 1 }
|
|
|
|
ifXEntry OBJECT-TYPE
|
|
SYNTAX IfXEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry containing additional management information
|
|
applicable to a particular interface."
|
|
AUGMENTS { ifEntry }
|
|
::= { ifXTable 1 }
|
|
|
|
IfXEntry ::=
|
|
SEQUENCE {
|
|
ifName DisplayString,
|
|
ifInMulticastPkts Counter32,
|
|
ifInBroadcastPkts Counter32,
|
|
ifOutMulticastPkts Counter32,
|
|
ifOutBroadcastPkts Counter32,
|
|
ifHCInOctets Counter64,
|
|
ifHCInUcastPkts Counter64,
|
|
ifHCInMulticastPkts Counter64,
|
|
ifHCInBroadcastPkts Counter64,
|
|
ifHCOutOctets Counter64,
|
|
ifHCOutUcastPkts Counter64,
|
|
ifHCOutMulticastPkts Counter64,
|
|
ifHCOutBroadcastPkts Counter64,
|
|
ifLinkUpDownTrapEnable INTEGER,
|
|
ifHighSpeed Gauge32,
|
|
ifPromiscuousMode TruthValue,
|
|
ifConnectorPresent TruthValue,
|
|
ifAlias DisplayString,
|
|
ifCounterDiscontinuityTime TimeStamp
|
|
}
|
|
|
|
ifName OBJECT-TYPE
|
|
SYNTAX DisplayString
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The textual name of the interface. The value of this
|
|
object should be the name of the interface as assigned by
|
|
the local device and should be suitable for use in commands
|
|
entered at the device's `console'. This might be a text
|
|
name, such as `le0' or a simple port number, such as `1',
|
|
depending on the interface naming syntax of the device. If
|
|
several entries in the ifTable together represent a single
|
|
interface as named by the device, then each will have the
|
|
same value of ifName. Note that for an agent which responds
|
|
to SNMP queries concerning an interface on some other
|
|
(proxied) device, then the value of ifName for such an
|
|
interface is the proxied device's local name for it.
|
|
|
|
If there is no local name, or this object is otherwise not
|
|
applicable, then this object contains a zero-length string."
|
|
::= { ifXEntry 1 }
|
|
|
|
ifInMulticastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were addressed to a multicast
|
|
address at this sub-layer. For a MAC layer protocol, this
|
|
includes both Group and Functional addresses.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 2 }
|
|
|
|
ifInBroadcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were addressed to a broadcast
|
|
address at this sub-layer.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 3 }
|
|
|
|
ifOutMulticastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were addressed to a
|
|
multicast address at this sub-layer, including those that
|
|
were discarded or not sent. For a MAC layer protocol, this
|
|
includes both Group and Functional addresses.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 4 }
|
|
|
|
ifOutBroadcastPkts OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were addressed to a
|
|
broadcast address at this sub-layer, including those that
|
|
were discarded or not sent.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 5 }
|
|
|
|
--
|
|
-- High Capacity Counter objects. These objects are all
|
|
-- 64 bit versions of the "basic" ifTable counters. These
|
|
-- objects all have the same basic semantics as their 32-bit
|
|
-- counterparts, however, their syntax has been extended
|
|
-- to 64 bits.
|
|
--
|
|
|
|
ifHCInOctets OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of octets received on the interface,
|
|
including framing characters. This object is a 64-bit
|
|
version of ifInOctets.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 6 }
|
|
|
|
ifHCInUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were not addressed to a multicast
|
|
or broadcast address at this sub-layer. This object is a
|
|
64-bit version of ifInUcastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 7 }
|
|
|
|
ifHCInMulticastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were addressed to a multicast
|
|
address at this sub-layer. For a MAC layer protocol, this
|
|
includes both Group and Functional addresses. This object
|
|
is a 64-bit version of ifInMulticastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 8 }
|
|
|
|
ifHCInBroadcastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of packets, delivered by this sub-layer to a
|
|
higher (sub-)layer, which were addressed to a broadcast
|
|
address at this sub-layer. This object is a 64-bit version
|
|
of ifInBroadcastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 9 }
|
|
|
|
ifHCOutOctets OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of octets transmitted out of the
|
|
interface, including framing characters. This object is a
|
|
64-bit version of ifOutOctets.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 10 }
|
|
|
|
ifHCOutUcastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were not addressed to a
|
|
multicast or broadcast address at this sub-layer, including
|
|
those that were discarded or not sent. This object is a
|
|
64-bit version of ifOutUcastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 11 }
|
|
|
|
ifHCOutMulticastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were addressed to a
|
|
multicast address at this sub-layer, including those that
|
|
were discarded or not sent. For a MAC layer protocol, this
|
|
includes both Group and Functional addresses. This object
|
|
is a 64-bit version of ifOutMulticastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 12 }
|
|
|
|
ifHCOutBroadcastPkts OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The total number of packets that higher-level protocols
|
|
requested be transmitted, and which were addressed to a
|
|
broadcast address at this sub-layer, including those that
|
|
were discarded or not sent. This object is a 64-bit version
|
|
of ifOutBroadcastPkts.
|
|
|
|
Discontinuities in the value of this counter can occur at
|
|
re-initialization of the management system, and at other
|
|
times as indicated by the value of
|
|
ifCounterDiscontinuityTime."
|
|
::= { ifXEntry 13 }
|
|
|
|
ifLinkUpDownTrapEnable OBJECT-TYPE
|
|
SYNTAX INTEGER { enabled(1), disabled(2) }
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Indicates whether linkUp/linkDown traps should be generated
|
|
for this interface.
|
|
|
|
By default, this object should have the value enabled(1) for
|
|
interfaces which do not operate on 'top' of any other
|
|
interface (as defined in the ifStackTable), and disabled(2)
|
|
otherwise."
|
|
::= { ifXEntry 14 }
|
|
|
|
ifHighSpeed OBJECT-TYPE
|
|
SYNTAX Gauge32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An estimate of the interface's current bandwidth in units
|
|
of 1,000,000 bits per second. If this object reports a
|
|
value of `n' then the speed of the interface is somewhere in
|
|
the range of `n-500,000' to `n+499,999'. For interfaces
|
|
which do not vary in bandwidth or for those where no
|
|
accurate estimation can be made, this object should contain
|
|
the nominal bandwidth. For a sub-layer which has no concept
|
|
of bandwidth, this object should be zero."
|
|
::= { ifXEntry 15 }
|
|
|
|
ifPromiscuousMode OBJECT-TYPE
|
|
SYNTAX TruthValue
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object has a value of false(2) if this interface only
|
|
accepts packets/frames that are addressed to this station.
|
|
This object has a value of true(1) when the station accepts
|
|
all packets/frames transmitted on the media. The value
|
|
true(1) is only legal on certain types of media. If legal,
|
|
setting this object to a value of true(1) may require the
|
|
interface to be reset before becoming effective.
|
|
|
|
The value of ifPromiscuousMode does not affect the reception
|
|
of broadcast and multicast packets/frames by the interface."
|
|
::= { ifXEntry 16 }
|
|
|
|
ifConnectorPresent OBJECT-TYPE
|
|
SYNTAX TruthValue
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object has the value 'true(1)' if the interface
|
|
sublayer has a physical connector and the value 'false(2)'
|
|
otherwise."
|
|
::= { ifXEntry 17 }
|
|
|
|
ifAlias OBJECT-TYPE
|
|
SYNTAX DisplayString (SIZE(0..64))
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is an 'alias' name for the interface as
|
|
specified by a network manager, and provides a non-volatile
|
|
'handle' for the interface.
|
|
|
|
On the first instantiation of an interface, the value of
|
|
ifAlias associated with that interface is the zero-length
|
|
string. As and when a value is written into an instance of
|
|
ifAlias through a network management set operation, then the
|
|
agent must retain the supplied value in the ifAlias instance
|
|
associated with the same interface for as long as that
|
|
interface remains instantiated, including across all re-
|
|
initializations/reboots of the network management system,
|
|
including those which result in a change of the interface's
|
|
ifIndex value.
|
|
|
|
An example of the value which a network manager might store
|
|
in this object for a WAN interface is the (Telco's) circuit
|
|
number/identifier of the interface.
|
|
|
|
Some agents may support write-access only for interfaces
|
|
having particular values of ifType. An agent which supports
|
|
write access to this object is required to keep the value in
|
|
non-volatile storage, but it may limit the length of new
|
|
values depending on how much storage is already occupied by
|
|
the current values for other interfaces."
|
|
::= { ifXEntry 18 }
|
|
|
|
ifCounterDiscontinuityTime OBJECT-TYPE
|
|
SYNTAX TimeStamp
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of sysUpTime on the most recent occasion at which
|
|
any one or more of this interface's counters suffered a
|
|
discontinuity. The relevant counters are the specific
|
|
instances associated with this interface of any Counter32 or
|
|
|
|
Counter64 object contained in the ifTable or ifXTable. If
|
|
no such discontinuities have occurred since the last re-
|
|
initialization of the local management subsystem, then this
|
|
object contains a zero value."
|
|
::= { ifXEntry 19 }
|
|
|
|
-- The Interface Stack Group
|
|
--
|
|
-- Implementation of this group is optional, but strongly recommended
|
|
-- for all systems
|
|
--
|
|
|
|
ifStackTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF IfStackEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The table containing information on the relationships
|
|
between the multiple sub-layers of network interfaces. In
|
|
particular, it contains information on which sub-layers run
|
|
'on top of' which other sub-layers, where each sub-layer
|
|
corresponds to a conceptual row in the ifTable. For
|
|
example, when the sub-layer with ifIndex value x runs over
|
|
the sub-layer with ifIndex value y, then this table
|
|
contains:
|
|
|
|
ifStackStatus.x.y=active
|
|
|
|
For each ifIndex value, I, which identifies an active
|
|
interface, there are always at least two instantiated rows
|
|
in this table associated with I. For one of these rows, I
|
|
is the value of ifStackHigherLayer; for the other, I is the
|
|
value of ifStackLowerLayer. (If I is not involved in
|
|
multiplexing, then these are the only two rows associated
|
|
with I.)
|
|
|
|
For example, two rows exist even for an interface which has
|
|
no others stacked on top or below it:
|
|
|
|
ifStackStatus.0.x=active
|
|
ifStackStatus.x.0=active "
|
|
::= { ifMIBObjects 2 }
|
|
|
|
ifStackEntry OBJECT-TYPE
|
|
SYNTAX IfStackEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Information on a particular relationship between two sub-
|
|
layers, specifying that one sub-layer runs on 'top' of the
|
|
other sub-layer. Each sub-layer corresponds to a conceptual
|
|
row in the ifTable."
|
|
INDEX { ifStackHigherLayer, ifStackLowerLayer }
|
|
::= { ifStackTable 1 }
|
|
|
|
IfStackEntry ::=
|
|
SEQUENCE {
|
|
ifStackHigherLayer InterfaceIndexOrZero,
|
|
ifStackLowerLayer InterfaceIndexOrZero,
|
|
ifStackStatus RowStatus
|
|
}
|
|
|
|
ifStackHigherLayer OBJECT-TYPE
|
|
SYNTAX InterfaceIndexOrZero
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of ifIndex corresponding to the higher sub-layer
|
|
of the relationship, i.e., the sub-layer which runs on 'top'
|
|
of the sub-layer identified by the corresponding instance of
|
|
ifStackLowerLayer. If there is no higher sub-layer (below
|
|
the internetwork layer), then this object has the value 0."
|
|
::= { ifStackEntry 1 }
|
|
|
|
ifStackLowerLayer OBJECT-TYPE
|
|
SYNTAX InterfaceIndexOrZero
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of ifIndex corresponding to the lower sub-layer
|
|
of the relationship, i.e., the sub-layer which runs 'below'
|
|
the sub-layer identified by the corresponding instance of
|
|
ifStackHigherLayer. If there is no lower sub-layer, then
|
|
this object has the value 0."
|
|
::= { ifStackEntry 2 }
|
|
|
|
ifStackStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The status of the relationship between two sub-layers.
|
|
|
|
Changing the value of this object from 'active' to
|
|
'notInService' or 'destroy' will likely have consequences up
|
|
and down the interface stack. Thus, write access to this
|
|
object is likely to be inappropriate for some types of
|
|
interfaces, and many implementations will choose not to
|
|
support write-access for any type of interface."
|
|
::= { ifStackEntry 3 }
|
|
|
|
ifStackLastChange OBJECT-TYPE
|
|
SYNTAX TimeTicks
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of sysUpTime at the time of the last change of
|
|
the (whole) interface stack. A change of the interface
|
|
stack is defined to be any creation, deletion, or change in
|
|
value of any instance of ifStackStatus. If the interface
|
|
stack has been unchanged since the last re-initialization of
|
|
the local network management subsystem, then this object
|
|
contains a zero value."
|
|
::= { ifMIBObjects 6 }
|
|
|
|
-- Generic Receive Address Table
|
|
--
|
|
-- This group of objects is mandatory for all types of
|
|
-- interfaces which can receive packets/frames addressed to
|
|
-- more than one address.
|
|
--
|
|
-- This table replaces the ifExtnsRcvAddr table. The main
|
|
-- difference is that this table makes use of the RowStatus
|
|
-- textual convention, while ifExtnsRcvAddr did not.
|
|
|
|
ifRcvAddressTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF IfRcvAddressEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains an entry for each address (broadcast,
|
|
multicast, or uni-cast) for which the system will receive
|
|
packets/frames on a particular interface, except as follows:
|
|
|
|
- for an interface operating in promiscuous mode, entries
|
|
are only required for those addresses for which the system
|
|
would receive frames were it not operating in promiscuous
|
|
mode.
|
|
|
|
- for 802.5 functional addresses, only one entry is
|
|
required, for the address which has the functional address
|
|
bit ANDed with the bit mask of all functional addresses for
|
|
which the interface will accept frames.
|
|
|
|
A system is normally able to use any unicast address which
|
|
corresponds to an entry in this table as a source address."
|
|
::= { ifMIBObjects 4 }
|
|
|
|
ifRcvAddressEntry OBJECT-TYPE
|
|
SYNTAX IfRcvAddressEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A list of objects identifying an address for which the
|
|
system will accept packets/frames on the particular
|
|
interface identified by the index value ifIndex."
|
|
INDEX { ifIndex, ifRcvAddressAddress }
|
|
::= { ifRcvAddressTable 1 }
|
|
|
|
IfRcvAddressEntry ::=
|
|
SEQUENCE {
|
|
ifRcvAddressAddress PhysAddress,
|
|
ifRcvAddressStatus RowStatus,
|
|
ifRcvAddressType INTEGER
|
|
}
|
|
|
|
ifRcvAddressAddress OBJECT-TYPE
|
|
SYNTAX PhysAddress
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An address for which the system will accept packets/frames
|
|
on this entry's interface."
|
|
::= { ifRcvAddressEntry 1 }
|
|
|
|
ifRcvAddressStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to create and delete rows in the
|
|
ifRcvAddressTable."
|
|
::= { ifRcvAddressEntry 2 }
|
|
|
|
ifRcvAddressType OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
|
|
other(1),
|
|
volatile(2),
|
|
nonVolatile(3)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object has the value nonVolatile(3) for those entries
|
|
in the table which are valid and will not be deleted by the
|
|
next restart of the managed system. Entries having the
|
|
value volatile(2) are valid and exist, but have not been
|
|
saved, so that will not exist after the next restart of the
|
|
managed system. Entries having the value other(1) are valid
|
|
and exist but are not classified as to whether they will
|
|
continue to exist after the next restart."
|
|
DEFVAL { volatile }
|
|
::= { ifRcvAddressEntry 3 }
|
|
|
|
-- definition of interface-related traps.
|
|
|
|
linkDown NOTIFICATION-TYPE
|
|
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A linkDown trap signifies that the SNMP entity, acting in
|
|
an agent role, has detected that the ifOperStatus object for
|
|
one of its communication links is about to enter the down
|
|
state from some other state (but not from the notPresent
|
|
state). This other state is indicated by the included value
|
|
of ifOperStatus."
|
|
::= { snmpTraps 3 }
|
|
|
|
linkUp NOTIFICATION-TYPE
|
|
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A linkUp trap signifies that the SNMP entity, acting in an
|
|
agent role, has detected that the ifOperStatus object for
|
|
one of its communication links left the down state and
|
|
transitioned into some other state (but not into the
|
|
notPresent state). This other state is indicated by the
|
|
included value of ifOperStatus."
|
|
::= { snmpTraps 4 }
|
|
|
|
-- conformance information
|
|
|
|
ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
|
|
|
|
ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 }
|
|
ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
|
|
|
|
-- compliance statements
|
|
|
|
ifCompliance3 MODULE-COMPLIANCE
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The compliance statement for SNMP entities which have
|
|
network interfaces."
|
|
|
|
MODULE -- this module
|
|
MANDATORY-GROUPS { ifGeneralInformationGroup,
|
|
linkUpDownNotificationsGroup }
|
|
|
|
-- The groups:
|
|
-- ifFixedLengthGroup
|
|
-- ifHCFixedLengthGroup
|
|
-- ifPacketGroup
|
|
-- ifHCPacketGroup
|
|
-- ifVHCPacketGroup
|
|
-- are mutually exclusive; at most one of these groups is implemented
|
|
-- for a particular interface. When any of these groups is implemented
|
|
-- for a particular interface, then ifCounterDiscontinuityGroup must
|
|
-- also be implemented for that interface.
|
|
|
|
GROUP ifFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for those network interfaces which
|
|
are character-oriented or transmit data in fixed-length
|
|
transmission units, and for which the value of the
|
|
corresponding instance of ifSpeed is less than or equal to
|
|
20,000,000 bits/second."
|
|
|
|
GROUP ifHCFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for those network interfaces which
|
|
are character-oriented or transmit data in fixed-length
|
|
transmission units, and for which the value of the
|
|
corresponding instance of ifSpeed is greater than 20,000,000
|
|
bits/second."
|
|
|
|
GROUP ifPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for those network interfaces which
|
|
are packet-oriented, and for which the value of the
|
|
corresponding instance of ifSpeed is less than or equal to
|
|
20,000,000 bits/second."
|
|
|
|
GROUP ifHCPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are packet-oriented and for which the value of the
|
|
corresponding instance of ifSpeed is greater than 20,000,000
|
|
bits/second but less than or equal to 650,000,000
|
|
bits/second."
|
|
|
|
GROUP ifVHCPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are packet-oriented and for which the value of the
|
|
corresponding instance of ifSpeed is greater than
|
|
650,000,000 bits/second."
|
|
|
|
GROUP ifCounterDiscontinuityGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for those network interfaces that
|
|
are required to maintain counters (i.e., those for which one
|
|
of the ifFixedLengthGroup, ifHCFixedLengthGroup,
|
|
ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is
|
|
mandatory)."
|
|
|
|
GROUP ifRcvAddressGroup
|
|
DESCRIPTION
|
|
"The applicability of this group MUST be defined by the
|
|
media-specific MIBs. Media-specific MIBs must define the
|
|
exact meaning, use, and semantics of the addresses in this
|
|
group."
|
|
|
|
OBJECT ifLinkUpDownTrapEnable
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifPromiscuousMode
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifAdminStatus
|
|
SYNTAX INTEGER { up(1), down(2) }
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required, nor is support for the value
|
|
testing(3)."
|
|
|
|
OBJECT ifAlias
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
::= { ifCompliances 3 }
|
|
|
|
-- units of conformance
|
|
|
|
ifGeneralInformationGroup OBJECT-GROUP
|
|
OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
|
|
ifAdminStatus, ifOperStatus, ifLastChange,
|
|
ifLinkUpDownTrapEnable, ifConnectorPresent,
|
|
ifHighSpeed, ifName, ifNumber, ifAlias,
|
|
ifTableLastChange }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information applicable to
|
|
all network interfaces."
|
|
::= { ifGroups 10 }
|
|
|
|
-- the following five groups are mutually exclusive; at most
|
|
-- one of these groups is implemented for any interface
|
|
|
|
ifFixedLengthGroup OBJECT-GROUP
|
|
OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
|
|
ifInErrors, ifOutErrors }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
non-high speed (non-high speed interfaces transmit and
|
|
receive at speeds less than or equal to 20,000,000
|
|
bits/second) character-oriented or fixed-length-transmission
|
|
network interfaces."
|
|
::= { ifGroups 2 }
|
|
|
|
ifHCFixedLengthGroup OBJECT-GROUP
|
|
OBJECTS { ifHCInOctets, ifHCOutOctets,
|
|
ifInOctets, ifOutOctets, ifInUnknownProtos,
|
|
ifInErrors, ifOutErrors }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
high speed (greater than 20,000,000 bits/second) character-
|
|
oriented or fixed-length-transmission network interfaces."
|
|
::= { ifGroups 3 }
|
|
|
|
ifPacketGroup OBJECT-GROUP
|
|
OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
|
|
ifInErrors, ifOutErrors,
|
|
ifMtu, ifInUcastPkts, ifInMulticastPkts,
|
|
ifInBroadcastPkts, ifInDiscards,
|
|
ifOutUcastPkts, ifOutMulticastPkts,
|
|
ifOutBroadcastPkts, ifOutDiscards,
|
|
ifPromiscuousMode }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
non-high speed (non-high speed interfaces transmit and
|
|
receive at speeds less than or equal to 20,000,000
|
|
bits/second) packet-oriented network interfaces."
|
|
::= { ifGroups 4 }
|
|
|
|
ifHCPacketGroup OBJECT-GROUP
|
|
OBJECTS { ifHCInOctets, ifHCOutOctets,
|
|
ifInOctets, ifOutOctets, ifInUnknownProtos,
|
|
ifInErrors, ifOutErrors,
|
|
ifMtu, ifInUcastPkts, ifInMulticastPkts,
|
|
ifInBroadcastPkts, ifInDiscards,
|
|
ifOutUcastPkts, ifOutMulticastPkts,
|
|
ifOutBroadcastPkts, ifOutDiscards,
|
|
ifPromiscuousMode }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
high speed (greater than 20,000,000 bits/second but less
|
|
than or equal to 650,000,000 bits/second) packet-oriented
|
|
network interfaces."
|
|
::= { ifGroups 5 }
|
|
|
|
ifVHCPacketGroup OBJECT-GROUP
|
|
OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
|
|
ifHCInBroadcastPkts, ifHCOutUcastPkts,
|
|
ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
|
|
ifHCInOctets, ifHCOutOctets,
|
|
ifInOctets, ifOutOctets, ifInUnknownProtos,
|
|
ifInErrors, ifOutErrors,
|
|
ifMtu, ifInUcastPkts, ifInMulticastPkts,
|
|
ifInBroadcastPkts, ifInDiscards,
|
|
ifOutUcastPkts, ifOutMulticastPkts,
|
|
ifOutBroadcastPkts, ifOutDiscards,
|
|
ifPromiscuousMode }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
higher speed (greater than 650,000,000 bits/second) packet-
|
|
oriented network interfaces."
|
|
::= { ifGroups 6 }
|
|
|
|
ifRcvAddressGroup OBJECT-GROUP
|
|
OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information on the
|
|
multiple addresses which an interface receives."
|
|
::= { ifGroups 7 }
|
|
|
|
ifStackGroup2 OBJECT-GROUP
|
|
OBJECTS { ifStackStatus, ifStackLastChange }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information on the
|
|
layering of MIB-II interfaces."
|
|
::= { ifGroups 11 }
|
|
|
|
ifCounterDiscontinuityGroup OBJECT-GROUP
|
|
OBJECTS { ifCounterDiscontinuityTime }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing information specific to
|
|
interface counter discontinuities."
|
|
::= { ifGroups 13 }
|
|
|
|
linkUpDownNotificationsGroup NOTIFICATION-GROUP
|
|
NOTIFICATIONS { linkUp, linkDown }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The notifications which indicate specific changes in the
|
|
value of ifOperStatus."
|
|
::= { ifGroups 14 }
|
|
|
|
-- Deprecated Definitions - Objects
|
|
|
|
--
|
|
-- The Interface Test Table
|
|
--
|
|
-- This group of objects is optional. However, a media-specific
|
|
|
|
-- MIB may make implementation of this group mandatory.
|
|
--
|
|
-- This table replaces the ifExtnsTestTable
|
|
--
|
|
|
|
ifTestTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF IfTestEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This table contains one entry per interface. It defines
|
|
objects which allow a network manager to instruct an agent
|
|
to test an interface for various faults. Tests for an
|
|
interface are defined in the media-specific MIB for that
|
|
interface. After invoking a test, the object ifTestResult
|
|
can be read to determine the outcome. If an agent can not
|
|
perform the test, ifTestResult is set to so indicate. The
|
|
object ifTestCode can be used to provide further test-
|
|
specific or interface-specific (or even enterprise-specific)
|
|
information concerning the outcome of the test. Only one
|
|
test can be in progress on each interface at any one time.
|
|
If one test is in progress when another test is invoked, the
|
|
second test is rejected. Some agents may reject a test when
|
|
a prior test is active on another interface.
|
|
|
|
Before starting a test, a manager-station must first obtain
|
|
'ownership' of the entry in the ifTestTable for the
|
|
interface to be tested. This is accomplished with the
|
|
ifTestId and ifTestStatus objects as follows:
|
|
|
|
try_again:
|
|
get (ifTestId, ifTestStatus)
|
|
while (ifTestStatus != notInUse)
|
|
/*
|
|
* Loop while a test is running or some other
|
|
* manager is configuring a test.
|
|
*/
|
|
short delay
|
|
get (ifTestId, ifTestStatus)
|
|
}
|
|
|
|
/*
|
|
* Is not being used right now -- let's compete
|
|
* to see who gets it.
|
|
*/
|
|
lock_value = ifTestId
|
|
|
|
if ( set(ifTestId = lock_value, ifTestStatus = inUse,
|
|
ifTestOwner = 'my-IP-address') == FAILURE)
|
|
/*
|
|
* Another manager got the ifTestEntry -- go
|
|
* try again
|
|
*/
|
|
goto try_again;
|
|
|
|
/*
|
|
* I have the lock
|
|
*/
|
|
set up any test parameters.
|
|
|
|
/*
|
|
* This starts the test
|
|
*/
|
|
set(ifTestType = test_to_run);
|
|
|
|
wait for test completion by polling ifTestResult
|
|
|
|
when test completes, agent sets ifTestResult
|
|
agent also sets ifTestStatus = 'notInUse'
|
|
|
|
retrieve any additional test results, and ifTestId
|
|
|
|
if (ifTestId == lock_value+1) results are valid
|
|
|
|
A manager station first retrieves the value of the
|
|
appropriate ifTestId and ifTestStatus objects, periodically
|
|
repeating the retrieval if necessary, until the value of
|
|
ifTestStatus is 'notInUse'. The manager station then tries
|
|
to set the same ifTestId object to the value it just
|
|
retrieved, the same ifTestStatus object to 'inUse', and the
|
|
corresponding ifTestOwner object to a value indicating
|
|
itself. If the set operation succeeds then the manager has
|
|
obtained ownership of the ifTestEntry, and the value of the
|
|
ifTestId object is incremented by the agent (per the
|
|
semantics of TestAndIncr). Failure of the set operation
|
|
indicates that some other manager has obtained ownership of
|
|
the ifTestEntry.
|
|
|
|
Once ownership is obtained, any test parameters can be
|
|
setup, and then the test is initiated by setting ifTestType.
|
|
On completion of the test, the agent sets ifTestStatus to
|
|
'notInUse'. Once this occurs, the manager can retrieve the
|
|
results. In the (rare) event that the invocation of tests
|
|
by two network managers were to overlap, then there would be
|
|
a possibility that the first test's results might be
|
|
overwritten by the second test's results prior to the first
|
|
|
|
results being read. This unlikely circumstance can be
|
|
detected by a network manager retrieving ifTestId at the
|
|
same time as retrieving the test results, and ensuring that
|
|
the results are for the desired request.
|
|
|
|
If ifTestType is not set within an abnormally long period of
|
|
time after ownership is obtained, the agent should time-out
|
|
the manager, and reset the value of the ifTestStatus object
|
|
back to 'notInUse'. It is suggested that this time-out
|
|
period be 5 minutes.
|
|
|
|
In general, a management station must not retransmit a
|
|
request to invoke a test for which it does not receive a
|
|
response; instead, it properly inspects an agent's MIB to
|
|
determine if the invocation was successful. Only if the
|
|
invocation was unsuccessful, is the invocation request
|
|
retransmitted.
|
|
|
|
Some tests may require the interface to be taken off-line in
|
|
order to execute them, or may even require the agent to
|
|
reboot after completion of the test. In these
|
|
circumstances, communication with the management station
|
|
invoking the test may be lost until after completion of the
|
|
test. An agent is not required to support such tests.
|
|
However, if such tests are supported, then the agent should
|
|
make every effort to transmit a response to the request
|
|
which invoked the test prior to losing communication. When
|
|
the agent is restored to normal service, the results of the
|
|
test are properly made available in the appropriate objects.
|
|
Note that this requires that the ifIndex value assigned to
|
|
an interface must be unchanged even if the test causes a
|
|
reboot. An agent must reject any test for which it cannot,
|
|
perhaps due to resource constraints, make available at least
|
|
the minimum amount of information after that test
|
|
completes."
|
|
::= { ifMIBObjects 3 }
|
|
|
|
ifTestEntry OBJECT-TYPE
|
|
SYNTAX IfTestEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"An entry containing objects for invoking tests on an
|
|
interface."
|
|
AUGMENTS { ifEntry }
|
|
::= { ifTestTable 1 }
|
|
|
|
IfTestEntry ::=
|
|
|
|
SEQUENCE {
|
|
ifTestId TestAndIncr,
|
|
ifTestStatus INTEGER,
|
|
ifTestType AutonomousType,
|
|
ifTestResult INTEGER,
|
|
ifTestCode OBJECT IDENTIFIER,
|
|
ifTestOwner OwnerString
|
|
}
|
|
|
|
ifTestId OBJECT-TYPE
|
|
SYNTAX TestAndIncr
|
|
MAX-ACCESS read-write
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This object identifies the current invocation of the
|
|
interface's test."
|
|
::= { ifTestEntry 1 }
|
|
|
|
ifTestStatus OBJECT-TYPE
|
|
SYNTAX INTEGER { notInUse(1), inUse(2) }
|
|
MAX-ACCESS read-write
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This object indicates whether or not some manager currently
|
|
has the necessary 'ownership' required to invoke a test on
|
|
this interface. A write to this object is only successful
|
|
when it changes its value from 'notInUse(1)' to 'inUse(2)'.
|
|
After completion of a test, the agent resets the value back
|
|
to 'notInUse(1)'."
|
|
::= { ifTestEntry 2 }
|
|
|
|
ifTestType OBJECT-TYPE
|
|
SYNTAX AutonomousType
|
|
MAX-ACCESS read-write
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A control variable used to start and stop operator-
|
|
initiated interface tests. Most OBJECT IDENTIFIER values
|
|
assigned to tests are defined elsewhere, in association with
|
|
specific types of interface. However, this document assigns
|
|
a value for a full-duplex loopback test, and defines the
|
|
special meanings of the subject identifier:
|
|
|
|
noTest OBJECT IDENTIFIER ::= { 0 0 }
|
|
|
|
When the value noTest is written to this object, no action
|
|
is taken unless a test is in progress, in which case the
|
|
test is aborted. Writing any other value to this object is
|
|
|
|
only valid when no test is currently in progress, in which
|
|
case the indicated test is initiated.
|
|
|
|
When read, this object always returns the most recent value
|
|
that ifTestType was set to. If it has not been set since
|
|
the last initialization of the network management subsystem
|
|
on the agent, a value of noTest is returned."
|
|
::= { ifTestEntry 3 }
|
|
|
|
ifTestResult OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
none(1), -- no test yet requested
|
|
success(2),
|
|
inProgress(3),
|
|
notSupported(4),
|
|
unAbleToRun(5), -- due to state of system
|
|
aborted(6),
|
|
failed(7)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This object contains the result of the most recently
|
|
requested test, or the value none(1) if no tests have been
|
|
requested since the last reset. Note that this facility
|
|
provides no provision for saving the results of one test
|
|
when starting another, as could be required if used by
|
|
multiple managers concurrently."
|
|
::= { ifTestEntry 4 }
|
|
|
|
ifTestCode OBJECT-TYPE
|
|
SYNTAX OBJECT IDENTIFIER
|
|
MAX-ACCESS read-only
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"This object contains a code which contains more specific
|
|
information on the test result, for example an error-code
|
|
after a failed test. Error codes and other values this
|
|
object may take are specific to the type of interface and/or
|
|
test. The value may have the semantics of either the
|
|
AutonomousType or InstancePointer textual conventions as
|
|
defined in RFC 2579. The identifier:
|
|
|
|
testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 }
|
|
|
|
is defined for use if no additional result code is
|
|
available."
|
|
::= { ifTestEntry 5 }
|
|
|
|
ifTestOwner OBJECT-TYPE
|
|
SYNTAX OwnerString
|
|
MAX-ACCESS read-write
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The entity which currently has the 'ownership' required to
|
|
invoke a test on this interface."
|
|
::= { ifTestEntry 6 }
|
|
|
|
-- Deprecated Definitions - Groups
|
|
|
|
ifGeneralGroup OBJECT-GROUP
|
|
OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
|
|
ifAdminStatus, ifOperStatus, ifLastChange,
|
|
ifLinkUpDownTrapEnable, ifConnectorPresent,
|
|
ifHighSpeed, ifName }
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A collection of objects deprecated in favour of
|
|
ifGeneralInformationGroup."
|
|
::= { ifGroups 1 }
|
|
|
|
ifTestGroup OBJECT-GROUP
|
|
OBJECTS { ifTestId, ifTestStatus, ifTestType,
|
|
ifTestResult, ifTestCode, ifTestOwner }
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A collection of objects providing the ability to invoke
|
|
tests on an interface."
|
|
::= { ifGroups 8 }
|
|
|
|
ifStackGroup OBJECT-GROUP
|
|
OBJECTS { ifStackStatus }
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The previous collection of objects providing information on
|
|
the layering of MIB-II interfaces."
|
|
::= { ifGroups 9 }
|
|
|
|
ifOldObjectsGroup OBJECT-GROUP
|
|
OBJECTS { ifInNUcastPkts, ifOutNUcastPkts,
|
|
ifOutQLen, ifSpecific }
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"The collection of objects deprecated from the original MIB-
|
|
II interfaces group."
|
|
::= { ifGroups 12 }
|
|
|
|
-- Deprecated Definitions - Compliance
|
|
|
|
ifCompliance MODULE-COMPLIANCE
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A compliance statement defined in a previous version of
|
|
this MIB module, for SNMP entities which have network
|
|
interfaces."
|
|
|
|
MODULE -- this module
|
|
MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }
|
|
|
|
GROUP ifFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for all network interfaces which
|
|
are character-oriented or transmit data in fixed-length
|
|
transmission units."
|
|
|
|
GROUP ifHCFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are character-oriented or transmit data in fixed-
|
|
length transmission units, and for which the value of the
|
|
corresponding instance of ifSpeed is greater than 20,000,000
|
|
bits/second."
|
|
|
|
GROUP ifPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for all network interfaces which
|
|
are packet-oriented."
|
|
|
|
GROUP ifHCPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are packet-oriented and for which the value of the
|
|
corresponding instance of ifSpeed is greater than
|
|
650,000,000 bits/second."
|
|
|
|
GROUP ifTestGroup
|
|
DESCRIPTION
|
|
"This group is optional. Media-specific MIBs which require
|
|
interface tests are strongly encouraged to use this group
|
|
for invoking tests and reporting results. A medium specific
|
|
MIB which has mandatory tests may make implementation of
|
|
|
|
this group mandatory."
|
|
|
|
GROUP ifRcvAddressGroup
|
|
DESCRIPTION
|
|
"The applicability of this group MUST be defined by the
|
|
media-specific MIBs. Media-specific MIBs must define the
|
|
exact meaning, use, and semantics of the addresses in this
|
|
group."
|
|
|
|
OBJECT ifLinkUpDownTrapEnable
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifPromiscuousMode
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifStackStatus
|
|
SYNTAX INTEGER { active(1) } -- subset of RowStatus
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required, and only one of the six
|
|
enumerated values for the RowStatus textual convention need
|
|
be supported, specifically: active(1)."
|
|
|
|
OBJECT ifAdminStatus
|
|
SYNTAX INTEGER { up(1), down(2) }
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required, nor is support for the value
|
|
testing(3)."
|
|
::= { ifCompliances 1 }
|
|
|
|
ifCompliance2 MODULE-COMPLIANCE
|
|
STATUS deprecated
|
|
DESCRIPTION
|
|
"A compliance statement defined in a previous version of
|
|
this MIB module, for SNMP entities which have network
|
|
interfaces."
|
|
|
|
MODULE -- this module
|
|
MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
|
|
ifCounterDiscontinuityGroup }
|
|
|
|
GROUP ifFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for all network interfaces which
|
|
are character-oriented or transmit data in fixed-length
|
|
transmission units."
|
|
|
|
GROUP ifHCFixedLengthGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are character-oriented or transmit data in fixed-
|
|
length transmission units, and for which the value of the
|
|
corresponding instance of ifSpeed is greater than 20,000,000
|
|
bits/second."
|
|
|
|
GROUP ifPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory for all network interfaces which
|
|
are packet-oriented."
|
|
|
|
GROUP ifHCPacketGroup
|
|
DESCRIPTION
|
|
"This group is mandatory only for those network interfaces
|
|
which are packet-oriented and for which the value of the
|
|
corresponding instance of ifSpeed is greater than
|
|
650,000,000 bits/second."
|
|
|
|
GROUP ifRcvAddressGroup
|
|
DESCRIPTION
|
|
"The applicability of this group MUST be defined by the
|
|
media-specific MIBs. Media-specific MIBs must define the
|
|
exact meaning, use, and semantics of the addresses in this
|
|
group."
|
|
|
|
OBJECT ifLinkUpDownTrapEnable
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifPromiscuousMode
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
|
|
OBJECT ifStackStatus
|
|
SYNTAX INTEGER { active(1) } -- subset of RowStatus
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required, and only one of the six
|
|
enumerated values for the RowStatus textual convention need
|
|
be supported, specifically: active(1)."
|
|
|
|
OBJECT ifAdminStatus
|
|
SYNTAX INTEGER { up(1), down(2) }
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required, nor is support for the value
|
|
testing(3)."
|
|
|
|
OBJECT ifAlias
|
|
MIN-ACCESS read-only
|
|
DESCRIPTION
|
|
"Write access is not required."
|
|
::= { ifCompliances 2 }
|
|
|
|
END
|