As per Relevance of the word standards, we have this rfc below:











Network Working Group K.
Request for Comments: 2863 Cisco
Obsoletes: 2233 F.
Category: Standards Track Argon
June 2000


The Interfaces Group

Status of this

This document specifies an Internet standards track protocol for
Internet community, and requests discussion and suggestions
improvements. Please refer to the current edition of the "
Official Protocol Standards" (STD 1) for the standardization
and status of this protocol. Distribution of this memo is unlimited

Copyright

Copyright (C) The Internet Society (2000). All Rights Reserved

Table of

1 Introduction ................................................. 2
2 The SNMP Network Management Framework ........................ 2
3 Experience with the Interfaces Group ......................... 3
3.1 Clarifications/Revisions ................................... 4
3.1.1 Interface Sub-Layers ..................................... 4
3.1.2 Guidance on Defining Sub-layers .......................... 7
3.1.3 Virtual Circuits ......................................... 8
3.1.4 Bit, Character, and Fixed-Length Interfaces .............. 8
3.1.5 Interface Numbering ...................................... 10
3.1.6 Counter Size ............................................. 14
3.1.7 Interface Speed .......................................... 16
3.1.8 Multicast/Broadcast Counters ............................. 17
3.1.9 Trap Enable .............................................. 17
3.1.10 Addition of New ifType values ........................... 18
3.1.11 InterfaceIndex Textual Convention ....................... 18
3.1.12 New states for IfOperStatus ............................. 18
3.1.13 IfAdminStatus and IfOperStatus .......................... 19
3.1.14 IfOperStatus in an Interface Stack ...................... 21
3.1.15 Traps ................................................... 21
3.1.16 ifSpecific .............................................. 23
3.1.17 Creation/Deletion of Interfaces ......................... 23
3.1.18 All Values Must be Known ................................ 24
4 Media-Specific MIB Applicability ............................. 24
5 Overview ..................................................... 25
6 Interfaces Group Definitions ................................. 26



McCloghrie & Kastenholz Standards Track [Page 1]

RFC 2863 The Interfaces Group MIB June 2000


7 Acknowledgements ............................................. 64
8 References ................................................... 64
9 Security Considerations ...................................... 66
10 Authors' Addresses .......................................... 67
11 Changes from RFC 2233 ....................................... 67
12 Notice on Intellectual Property ............................. 68
13 Full Copyright Statement .................................... 69

1.

This memo defines a portion of the Management Information Base (MIB
for use with network management protocols in the Internet community
In particular, it describes managed objects used for managing
Interfaces. This memo discusses the 'interfaces' group of MIB-
[17], especially the experience gained from the definition
numerous media-specific MIB modules for use in conjunction with the '
interfaces' group for managing various sub-layers beneath
internetwork-layer. It specifies clarifications to, and
of, the architectural issues within the MIB-II model of the '
interfaces' group. This memo obsoletes RFC 2233, the
version of the Interfaces Group MIB

The key words "MUST" and "MUST NOT" in this document are to
interpreted as described in RFC 2119 [16].

2. The SNMP Network Management

The SNMP Management Framework presently consists of five
components

o An overall architecture, described in RFC 2571 [1].

o Mechanisms for describing and naming objects and events for
purpose of management. The first version of this Structure
Management Information (SMI) is called SMIv1 and described
STD 16, RFC 1155 [2], STD 16, RFC 1212 [3] and RFC 1215 [4].
The second version, called SMIv2, is described in STD 58,
consists of RFC 2578 [5], RFC 2579 [6] and RFC 2580 [7].

o Message protocols for transferring management information.
first version of the SNMP message protocol is called SNMPv1
described in STD 15, RFC 1157 [8]. A second version of
SNMP message protocol, which is not an Internet standards
protocol, is called SNMPv2c and described in RFC 1901 [9]
RFC 1906 [10]. The third version of the message protocol
called SNMPv3 and described in RFC 1906 [10], RFC 2572 [11]
RFC 2574 [12].




McCloghrie & Kastenholz Standards Track [Page 2]

RFC 2863 The Interfaces Group MIB June 2000


o Protocol operations for accessing management information.
first set of protocol operations and associated PDU formats
described in STD 15, RFC 1157 [8]. A second set of
operations and associated PDU formats is described in RFC 1905
[13].

o A set of fundamental applications described in RFC 2573 [14]
and the view-based access control mechanism described in
2575 [15].

A more detailed introduction to the current SNMP Management
can be found in RFC 2570 [22].

Managed objects are accessed via a virtual information store,
the Management Information Base or MIB. Objects in the MIB
defined using the mechanisms defined in the SMI

This memo specifies a MIB module that is compliant to the SMIv2.
MIB conforming to the SMIv1 can be produced through the
translations. The resulting translated MIB must be
equivalent, except where objects or events are omitted because
translation is possible (e.g., use of Counter64). Some
readable information in SMIv2 will be converted into
descriptions in SMIv1 during the translation process. However,
loss of machine readable information is not considered to change
semantics of the MIB

3. Experience with the Interfaces

One of the strengths of internetwork-layer protocols such as IP [18]
is that they are designed to run over any network interface.
achieving this, IP considers any and all protocols it runs over as
single "network interface" layer. A similar view is taken by
internetwork-layer protocols. This concept is represented in MIB-
by the 'interfaces' group which defines a generic set of
objects such that any network interface can be managed in
interface-independent manner through these managed objects. The '
interfaces' group provides the means for additional managed
specific to particular types of network interface (e.g., a
medium such as Ethernet) to be defined as extensions to the '
interfaces' group for media-specific management. Since
standardization of MIB-II, many such media-specific MIB modules
been defined

Experience in defining these media-specific MIB modules has
that the model defined by MIB-II is too simplistic and/or static
some types of media-specific management. As a result, some of
media-specific MIB modules assume an evolution or loosening of



McCloghrie & Kastenholz Standards Track [Page 3]

RFC 2863 The Interfaces Group MIB June 2000


model. This memo documents and standardizes that evolution of
model and fills in the gaps caused by that evolution. This memo
incorporates the interfaces group extensions documented in RFC 1229
[19].

3.1. Clarifications/

There are several areas for which experience has indicated
clarification, revision, or extension of the model would be helpful
The following sections discuss the changes in the interfaces
adopted by this memo in each of these areas

In some sections, one or more paragraphs contain discussion
rejected alternatives to the model adopted in this memo. Readers
familiar with the MIB-II model and not interested in the
behind the new model may want to skip these paragraphs

3.1.1. Interface Sub-

Experience in defining media-specific management information
shown the need to distinguish between the multiple sub-layers
the internetwork-layer. In addition, there is a need to manage
sub-layers in devices (e.g., MAC-layer bridges) which are unaware
which, if any, internetwork protocols run over these sub-layers.
such, a model of having a single conceptual row in the
table (MIB-II's ifTable) represent a whole interface underneath
internetwork-layer, and having a single associated media-specific
module (referenced via the ifType object) is too simplistic.
further problem arises with the value of the ifType object which
enumerated values for each type of interface

Consider, for example, an interface with PPP running over an
link which uses a RS232-like connector. Each of these sub-layers
its own media-specific MIB module. If all of this is represented
a single conceptual row in the ifTable, then an enumerated value
ifType is needed for that specific combination which maps to
specific combination of media-specific MIBs. Furthermore, such
model still lacks a method to describe the relationship of all
sub-layers of the MIB stack

An associated problem is that of upward and downward multiplexing
the sub-layers. An example of upward multiplexing is MLP (Multi
Link-Procedure) which provides load-sharing over several serial
by appearing as a single point-to-point link to the sub-layer(s
above. An example of downward multiplexing would be
instances of PPP, each framed within a separate X.25 virtual circuit





McCloghrie & Kastenholz Standards Track [Page 4]

RFC 2863 The Interfaces Group MIB June 2000


all of which run over one fractional T1 channel, concurrently
other uses of the T1 link. The MIB structure must allow these
of relationships to be described

Several solutions for representing multiple sub-layers were rejected
One was to retain the concept of one conceptual row for all the sub
layers of an interface and have each media-specific MIB
identify its "superior" and "subordinate" sub-layers through
IDENTIFIER "pointers". This scheme would have several drawbacks:
superior/subordinate pointers would be contained in the media
specific MIB modules; thus, a manager could not learn the
of an interface without inspecting multiple pointers in different
modules; this would be overly complex and only possible if
manager had knowledge of all the relevant media-specific MIB modules
MIB modules would all need to be retrofitted with these
"pointers"; this scheme would not adequately address the problem
upward and downward multiplexing; and finally, enumerated values
ifType would be needed for each combination of sub-layers.
rejected solution also retained the concept of one conceptual row
all the sub-layers of an interface but had a new separate MIB
to identify the "superior" and "subordinate" sub-layers and
contain OBJECT IDENTIFIER "pointers" to the media-specific MIB
for each sub-layer. Effectively, one conceptual row in the
would represent each combination of sub-layers between
internetwork-layer and the wire. While this scheme has
drawbacks, it still would not support downward multiplexing, such
PPP over MLP: observe that MLP makes two (or more) serial
appear to the layers above as a single physical interface, and
PPP over MLP should appear to the internetwork-layer as a
interface; in contrast, this scheme would result in two (or more
conceptual rows in the ifTable, both of which the internetwork-
would run over. This scheme would also require enumerated values
ifType for each combination of sub-layers

The solution adopted by this memo is to have an individual
row in the ifTable to represent each sub-layer, and have a
separate MIB table (the ifStackTable, see section 6 below)
identify the "superior" and "subordinate" sub-layers through
"pointers" to the appropriate conceptual rows in the ifTable.
solution supports both upward and downward multiplexing, allows
IANAifType to Media-Specific MIB mapping to identify the media
specific MIB module for that sub-layer, such that the new table
only be referenced to obtain information about layering, and it
requires enumerated values of ifType for each sub-layer, not
combinations of them. However, it does require that the
of some objects in the ifTable (specifically, ifType, ifPhysAddress
ifInUcastPkts, and ifOutUcastPkts) be generalized so as to apply
any sub-layer (rather than only to a sub-layer immediately



McCloghrie & Kastenholz Standards Track [Page 5]

RFC 2863 The Interfaces Group MIB June 2000


the network layer as previously), plus some (specifically, ifSpeed
which need to have appropriate values identified for use when
generalized definition does not apply to a particular sub-layer

In addition, this adopted solution makes no requirement that
device, in which a sub-layer is instrumented by a conceptual row
the ifTable, be aware of whether an internetwork protocol runs on
of (i.e., at some layer above) that sub-layer. In fact, the
of packets received on an interface are defined as counting
number "delivered to a higher-layer protocol". This meaning
"higher-layer" includes

(1) Delivery to a forwarding module which
packets/frames/octets and forwards them on at the same
layer. For example, for the purposes of this definition,
forwarding module of a MAC-layer bridge is considered as
"higher-layer" to the MAC-layer of each port on the bridge

(2) Delivery to a higher sub-layer within a interface stack.
example, for the purposes of this definition, if a PPP
operated directly over a serial interface, the PPP module
be considered the higher sub-layer to the serial interface

(3) Delivery to a higher protocol layer which does not do
forwarding for sub-layers that are "at the top of"
interface stack. For example, for the purposes of
definition, the local IP module would be considered the
layer to a SLIP serial interface

Similarly, for output, the counters of packets transmitted out
interface are defined as counting the number "that higher-
protocols requested to be transmitted". This meaning of "higher
layer" includes

(1) A forwarding module, at the same protocol layer,
transmits packets/frames/octets that were received on
different interface. For example, for the purposes of
definition, the forwarding module of a MAC-layer bridge
considered as a "higher-layer" to the MAC-layer of each port
the bridge

(2) The next higher sub-layer within an interface stack.
example, for the purposes of this definition, if a PPP
operated directly over a serial interface, the PPP module
be a "higher layer" to the serial interface






McCloghrie & Kastenholz Standards Track [Page 6]

RFC 2863 The Interfaces Group MIB June 2000


(3) For sub-layers that are "at the top of" the interface stack,
higher element in the network protocol stack. For example,
the purposes of this definition, the local IP module would
considered the higher layer to an Ethernet interface

3.1.2. Guidance on Defining Sub-

The designer of a media-specific MIB must decide whether to
the interface into sub-layers or not, and if so, how to make
divisions. The following guidance is offered to assist the media
specific MIB designer in these decisions

In general, the number of entries in the ifTable should be kept
the minimum required for network management. In particular, a
of related interfaces should be treated as a single interface
one entry in the ifTable providing that

(1) None of the group of interfaces performs multiplexing for
other interface in the agent

(2) There is a meaningful and useful way for all of the ifTable'
information (e.g., the counters, and the status variables),
all of the ifTable's capabilities (e.g., write access
ifAdminStatus), to apply to the group of interfaces as a whole

Under these circumstances, there should be one entry in the
for such a group of interfaces, and any internal structure
needs to be represented to network management should be captured in
MIB module specific to the particular type of interface

Note that application of bullet 2 above to the ifTable's
object requires that there is a meaningful media-specific MIB and
meaningful ifType value which apply to the group of interfaces as
whole. For example, it is not appropriate to treat an HDLC sub-
and an RS-232 sub-layer as a single ifTable entry when the media
specific MIBs and the ifType values for HDLC and RS-232 are
(rather than combined).

Subject to the above, it is appropriate to assign an ifIndex value
any interface that can occur in an interface stack (in
ifStackTable) where the bottom of the stack is a physical
(ifConnectorPresent has the value 'true') and there is a layer-3
other application that "points down" to the top of this stack.
example of an application that points down to the top of the stack
the Character MIB [21].






McCloghrie & Kastenholz Standards Track [Page 7]

RFC 2863 The Interfaces Group MIB June 2000


Note that the sub-layers of an interface on one device will
be different from the sub-layers of the interconnected interface
another device; for example, for a frame-relay DTE
connected a frameRelayService interface, the inter-connected DTE
DCE interfaces have different ifType values and media-specific MIBs

These guidelines are just that, guidelines. The designer of
media-specific MIB is free to lay out the MIB in whatever
conformant manner is desired. However, in doing so, the media
specific MIB MUST completely specify the sub-layering model used
the MIB, and provide the assumptions, reasoning, and rationale
to develop that model

3.1.3. Virtual

Several of the sub-layers for which media-specific MIB modules
been defined are connection oriented (e.g., Frame Relay, X.25).
Experience has shown that each effort to define such a MIB
revisits the question of whether separate conceptual rows in
ifTable are needed for each virtual circuit. Most, if not all,
these efforts to date have decided to have all virtual
reference a single conceptual row in the ifTable

This memo strongly recommends that connection-oriented sub-layers
not have a conceptual row in the ifTable for each virtual circuit
This avoids the proliferation of conceptual rows, especially
which have considerable redundant information. (Note, as
comparison, that connection-less sub-layers do not have
rows for each remote address.) There may, however, be
under which it is appropriate for a virtual circuit of a connection
oriented sub-layer to have its own conceptual row in the ifTable;
example of this might be PPP over an X.25 virtual circuit. The
in section 6 of this memo supports such circumstances

If a media-specific MIB wishes to assign an entry in the ifTable
each virtual circuit, the MIB designer must present the rationale
this decision in the media-specific MIB's specification

3.1.4. Bit, Character, and Fixed-Length

RS-232 is an example of a character-oriented sub-layer over
(e.g., through use of PPP) IP datagrams can be sent. Due to
packet-based nature of many of the objects in the ifTable,
has shown that it is not appropriate to have a character-
sub-layer represented by a whole conceptual row in the ifTable






McCloghrie & Kastenholz Standards Track [Page 8]

RFC 2863 The Interfaces Group MIB June 2000


Experience has also shown that it is sometimes desirable to have
management information for bit-oriented interfaces, which
similarly difficult to represent by a whole conceptual row in
ifTable. For example, to manage the channels of a DS1 circuit,
only some of the channels are carrying packet-based data

A further complication is that some subnetwork technologies
data in fixed length transmission units. One example of such
technology is cell relay, and in particular Asynchronous
Mode (ATM), which transmits data in fixed-length cells.
such a interface as a packet-based interface produces
objects if the relationship between the number of packets and
number of octets in either direction is fixed by the size of
transmission unit (e.g., the size of a cell).

About half the objects in the ifTable are applicable to every type
interface: packet-oriented, character-oriented, and bit-oriented.
the other half, two are applicable to both character-oriented
packet-oriented interfaces, and the rest are applicable only
packet-oriented interfaces. Thus, while it is desirable
consistency to be able to represent any/all types of interfaces
the ifTable, it is not possible to implement the full ifTable
bit- and character-oriented sub-layers

A rejected solution to this problem would be to split the
into two (or more) new MIB tables, one of which would contain
that are relevant only to packet-oriented interfaces (e.g., PPP),
another that may be used by all interfaces. This is
undesirable since it would require changes in every
implementing the ifTable (i.e., just about every existing
agent).

The solution adopted in this memo builds upon the fact
compliance statements in SMIv2 (in contrast to SMIv1) refer to
groups, where object groups are explicitly defined by listing
objects they contain. Thus, with SMIv2, multiple
statements can be specified, one for all interfaces and
ones for specific types of interfaces. The separate
statements can be based on separate object groups, where the
group for all interfaces can contain only those objects from
ifTable which are appropriate for every type of interfaces.
this solution, every sub-layer can have its own conceptual row in
ifTable

Thus, section 6 of this memo contains definitions of the objects
the existing 'interfaces' group of MIB-II, in a manner which is
SNMPv2-compliant and semantically-equivalent to the existing MIB-
definitions. With equivalent semantics, and with the BER ("on



McCloghrie & Kastenholz Standards Track [Page 9]

RFC 2863 The Interfaces Group MIB June 2000


wire") encodings unchanged, these definitions retain the same
IDENTIFIER values as assigned by MIB-II. Thus, in general,
rewrite of existing agents which conform to MIB-II and
ifExtensions MIB is required

In addition, this memo defines several object groups for the
of defining which objects apply to which types of interface

(1) the ifGeneralInformationGroup. This group contains
objects applicable to all types of network interfaces
including bit-oriented interfaces

(2) the ifPacketGroup. This group contains those
applicable to packet-oriented network interfaces

(3) the ifFixedLengthGroup. This group contains the
applicable not only to character-oriented interfaces, such
RS-232, but also to those subnetwork technologies, such
cell-relay/ATM, which transmit data in fixed
transmission units. As well as the octet counters, there
also a few other counters (e.g., the error counters) which
useful for this type of interface, but are currently defined
being packet-oriented. To accommodate this, the definitions
these counters are generalized to apply to character-
interfaces and fixed-length-transmission interfaces

It should be noted that the octet counters in the ifTable
octet counts for unicast and non-unicast packets into a single
counter per direction (received/transmitted). Thus, with the
definition of fixed-length-transmission interfaces, where
interfaces which support non-unicast packets, separate counts
unicast and multicast/broadcast transmissions can only be
in a media-specific MIB module

3.1.5. Interface

MIB-II defines an object, ifNumber, whose value represents

"The number of network interfaces (regardless of
current state) present on this system."

Each interface is identified by a unique value of the ifIndex object
and the description of ifIndex constrains its value as follows

"Its value ranges between 1 and the value of ifNumber.
value for each interface must remain constant at least
one re-initialization of the entity's network
system to the next re-initialization."



McCloghrie & Kastenholz Standards Track [Page 10]

RFC 2863 The Interfaces Group MIB June 2000


This constancy requirement on the value of ifIndex for a
interface is vital for efficient management. However, an
number of devices allow for the dynamic addition/removal of
interfaces. One example of this is a dynamic ability to
the use of SLIP/PPP over a character-oriented port. For such
additions/removals, the combination of the constancy requirement
the restriction that the value of ifIndex is less than ifNumber
problematic

Redefining ifNumber to be the largest value of ifIndex was
since it would not help. Such a re-definition would require
to be deprecated and the utility of the redefined object would
questionable. Alternatively, ifNumber could be deprecated and
replaced. However, the deprecation of ifNumber would require
change to that portion of ifIndex's definition which refers
ifNumber. So, since the definition of ifIndex must be changed
in order to solve the problem, changes to ifNumber do not benefit
solution

The solution adopted in this memo is just to delete the
that the value of ifIndex must be less than the value of ifNumber
and to retain ifNumber with its current definition. This is a
change in the semantics of ifIndex; however, all existing
implementations conform to this new definition, and in the
of not requiring changes to existing agent implementations and to
many existing media-specific MIBs, this memo assumes that this
does not require ifIndex to be deprecated. Experience indicates
this assumption does "break" a few management applications, but
is considered preferable to breaking all agent implementations

This solution also results in the possibility of "holes" in
ifTable, i.e., the ifIndex values of conceptual rows in the
are not necessarily contiguous, but SNMP's GetNext (and GetBulk
operation easily deals with such holes. The value of ifNumber
represents the number of conceptual rows, which increases/
as new interfaces are dynamically added/removed

The requirement for constancy (between re-initializations) of
interface's ifIndex value is met by requiring that after an
is dynamically removed, its ifIndex value is not re-used by
*different* dynamically added interface until after the
re-initialization of the network management system. This avoids
need for assignment (in advance) of ifIndex values for all
interfaces that might be added dynamically. The exact meaning of
"different" interface is hard to define, and there will be
areas. Any firm definition in this document would likely turn out
be inadequate. Instead, implementors must choose what it means
their particular situation, subject to the following rules



McCloghrie & Kastenholz Standards Track [Page 11]

RFC 2863 The Interfaces Group MIB June 2000


(1) a previously-unused value of ifIndex must be assigned to
dynamically added interface if an agent has no knowledge
whether the interface is the "same" or "different" to
previously incarnated interface

(2) a management station, not noticing that an interface has
away and another has come into existence, must not be
when calculating the difference between the counter
retrieved on successive polls for a particular ifIndex value

When the new interface is the same as an old interface, but
discontinuity in the value of the interface's counters cannot
avoided, the ifTable has (until now) required that a new
value be assigned to the returning interface. That is, either
counter values have had to be retained during the absence of
interface in order to use the same ifIndex value on that interface'
return, or else a new ifIndex value has had to be assigned to
returning interface. Both alternatives have proved to be
to some implementations

(1) maintaining the counter values may not be possible (e.g.,
they are maintained on removable hardware),

(2) using a new ifIndex value presents extra work for
applications. While the potential need for such extra work
unavoidable on agent re-initializations, it is desirable
avoid it between re-initializations

To address this, a new object, ifCounterDiscontinuityTime, has
defined to record the time of the last discontinuity in
interface's counters. By monitoring the value of this new object,
management application can now detect counter discontinuities
the ifIndex value of the interface being changed. Thus, an
which implements this new object should, when a new interface is
same as an old interface, retain that interface's ifIndex value
update if necessary the interface's value
ifCounterDiscontinuityTime. With this new object, a
application must, when calculating differences between counter
retrieved on successive polls, discard any calculated difference
which the value of ifCounterDiscontinuityTime is different for
two polls. (Note that this test must be performed in addition to
normal checking of sysUpTime to detect an agent re-initialization.)
Since such discards are a waste of network management processing
bandwidth, an agent should not update the value
ifCounterDiscontinuityTime unless absolutely necessary

While defining this new object is a change in the semantics of
ifTable counter objects, it is impractical to deprecate and



McCloghrie & Kastenholz Standards Track [Page 12]

RFC 2863 The Interfaces Group MIB June 2000


all these counters because of their wide deployment and importance
Also, a survey of implementations indicates that many agents
management applications do not correctly implement this aspect of
current semantics (because of the burdensome issues mentioned above),
such that the practical implications of such a change is small
Thus, this breach of the SMI's rules is considered to be acceptable

Note, however, that the addition of ifCounterDiscontinuityTime
not change the fact that

it is necessary at certain times for the assignment
ifIndex values to change on a re-initialization of the
(such as a reboot).

The possibility of ifIndex value re-assignment must be
by a management application whenever the value of sysUpTime is
to zero

Note also that some agents support multiple "naming scopes", e.g.,
for an SNMPv1 agent, multiple values of the SNMPv1 community string
For such an agent (e.g., a CNM agent which supports a
subset of interfaces for different customers), there is no
relationship between the ifIndex values which identify interfaces
one naming scope and those which identify interfaces in
naming scope. It is the agent's choice as to whether the same
different ifIndex values identify the same or different interfaces
different naming scopes

Because of the restriction of the value of ifIndex to be less
ifNumber, interfaces have been numbered with small integer values
This has led to the ability by humans to use the ifIndex values
(somewhat) user-friendly names for network interfaces (e.g.,
"interface number 3"). With the relaxation of the restriction on
value of ifIndex, there is now the possibility that ifIndex
could be assigned as very large numbers (e.g., memory addresses).
Such numbers would be much less user-friendly. Therefore, this
recommends that ifIndex values still be assigned as (relatively
small integer values starting at 1, even though the values in use
any one time are not necessarily contiguous. (Note that this
remembering which values have been assigned easy for agents
dynamically add new interfaces

A new problem is introduced by representing each sub-layer as
ifTable entry. Previously, there usually was a simple, direct
mapping of interfaces to the physical ports on systems. This
would be based on the ifIndex value. However, by having an
entry for each interface sub-layer, mapping from interfaces
physical ports becomes increasingly problematic



McCloghrie & Kastenholz Standards Track [Page 13]

RFC 2863 The Interfaces Group MIB June 2000


To address this issue, a new object, ifName, is added to the MIB
This object contains the device's local name (e.g., the name used
the device's local console) for the interface of which the
entry in the ifTable is a component. For example, consider a
having an interface composed of PPP running over an RS-232 port.
the router uses the name "wan1" for the (combined) interface,
the ifName objects for the corresponding PPP and RS-232 entries
the ifTable would both have the value "wan1". On the other hand,
the router uses the name "wan1.1" for the PPP interface and "wan1.2"
for the RS-232 port, then the ifName objects for the
PPP and RS-232 entries in the ifTable would have the values "wan1.1"
and "wan1.2", respectively. As an another example, consider an
which responds to SNMP queries concerning an interface on some
(proxied) device: if such a proxied device associates a
identifier with an interface, then it is appropriate to use
identifier as the value of the interface's ifName, since the
console in this case is that of the proxied device

In contrast, the existing ifDescr object is intended to contain
description of an interface, whereas another new object, ifAlias
provides a location in which a network management application
store a non-volatile interface-naming value of its own choice.
ifAlias object allows a network manager to give one or
interfaces their own unique names, irrespective of any interface
stack relationship. Further, the ifAlias name is non-volatile,
thus an interface must retain its assigned ifAlias value
reboots, even if an agent chooses a new ifIndex value for
interface

3.1.6. Counter

As the speed of network media increase, the minimum time in which
32 bit counter will wrap decreases. For example, a 10Mbs stream
back-to-back, full-size packets causes ifInOctets to wrap in
over 57 minutes; at 100Mbs, the minimum wrap time is 5.7 minutes,
at 1Gbs, the minimum is 34 seconds. Requiring that interfaces
polled frequently enough not to miss a counter wrap is
problematic

A rejected solution to this problem was to scale the counters;
example, ifInOctets could be changed to count received octets in
say, 1024 byte blocks. While it would provide
functionality at high rates of the counted-events, at low rates
suffers. If there is little traffic on an interface, there might
a significant interval before enough of the counted-events occur
cause the scaled counter to be incremented. Traffic would
appear to be very bursty, leading to incorrect conclusions of
network's performance



McCloghrie & Kastenholz Standards Track [Page 14]

RFC 2863 The Interfaces Group MIB June 2000


Instead, this memo adopts expanded, 64 bit, counters. These
are provided in new "high capacity" groups. The old, 32-bit
counters have not been deprecated. The 64-bit counters are to
used only when the 32-bit counters do not provide enough capacity
that is, when the 32 bit counters could wrap too fast

For interfaces that operate at 20,000,000 (20 million) bits
second or less, 32-bit byte and packet counters MUST be supported
For interfaces that operate faster than 20,000,000 bits/second,
slower than 650,000,000 bits/second, 32-bit packet counters MUST
supported and 64-bit octet counters MUST be supported.
interfaces that operate at 650,000,000 bits/second or faster, 64-
packet counters AND 64-bit octet counters MUST be supported

These speed thresholds were chosen as reasonable compromises based
the following

(1) The cost of maintaining 64-bit counters is relatively high,
minimizing the number of agents which must support them
desirable. Common interfaces (such as 10Mbs Ethernet)
not require them

(2) 64-bit counters are a new feature, introduced in the SMIv2.
is reasonable to expect that support for them will be
for the immediate future. Thus, we wish to limit them to
few systems as possible. This, in effect, means that 64-
counters should be limited to higher speed interfaces
Ethernet (10,000,000 bps) and Token Ring (16,000,000 bps)
fairly wide-spread so it seems reasonable to not require 64-
counters for these interfaces

(3) The 32-bit octet counters will wrap in the following times,
the following interfaces (when transmitting maximum-
packets back-to-back):

- 10Mbs Ethernet: 57 minutes

- 16Mbs Token Ring: 36 minutes

- a US T3 line (45 megabits): 12 minutes

- FDDI: 5.7

(4) The 32-bit packet counters wrap in about 57 minutes when 64-
byte packets are transmitted back-to-back on a 650,000,000
bit/second link





McCloghrie & Kastenholz Standards Track [Page 15]

RFC 2863 The Interfaces Group MIB June 2000


As an aside, a 1-terabit/second (1,000 Gbs) link will cause a 64
octet counter to wrap in just under 5 years. Conversely,
81,000,000 terabit/second link is required to cause a 64-bit
to wrap in 30 minutes. We believe that, while technology
marches forward, this link speed will not be achieved for at
several years, leaving sufficient time to evaluate the
of 96 bit counters

When 64-bit counters are in use, the 32-bit counters MUST still
available. They will report the low 32-bits of the associated 64-
count (e.g., ifInOctets will report the least significant 32 bits
ifHCInOctets). This enhances inter-operability with
implementations at a very minimal cost to agents

The new "high capacity" groups are

(1) the ifHCFixedLengthGroup for character-oriented/fixed-
interfaces, and the ifHCPacketGroup for packet-
interfaces; both of these groups include 64 bit counters
octets,

(2) the ifVHCPacketGroup for packet-based interfaces; this
includes 64 bit counters for octets and packets

3.1.7. Interface

Network speeds are increasing. The range of ifSpeed is limited
reporting a maximum speed of (2**31)-1 bits/second, or
2.2Gbs. SONET defines an OC-48 interface, which is defined
operating at 48 times 51 Mbs, which is a speed in excess of 2.4Gbs
Thus, ifSpeed is insufficient for the future, and this memo
an additional object: ifHighSpeed

The ifHighSpeed object reports the speed of the interface
1,000,000 (1 million) bits/second units. Thus, the true speed of
interface will be the value reported by this object, plus or
500,000 bits/second

Other alternatives considered (but rejected) were

(1) Making the interface speed a 64-bit gauge. This was
since the current SMI does not allow such a syntax

Furthermore, even if 64-bit gauges were available, their use
require additional complexity in agents due to an
requirement for 64-bit operations





McCloghrie & Kastenholz Standards Track [Page 16]

RFC 2863 The Interfaces Group MIB June 2000


(2) We also considered making "high-32 bit" and "low-32-bit
objects which, when combined, would be a 64-bit value.
simply seemed overly complex for what we are trying to do

Furthermore, a full 64-bits of precision does not seem necessary
The value of ifHighSpeed will be the only report of
speed for interfaces that are faster than 4,294,967,295 bits
second. At this speed, the granularity of ifHighSpeed will
1,000,000 bits per second, thus the error will be 1/4294, or
0.02%. This seems reasonable

(3) Adding a "scale" object, which would define the units
ifSpeed's value is

This would require two additional objects; one for the
object, and one to replace the current ifSpeed. This later
is required since the semantics of ifSpeed would be
altered, and manager stations which do not understand the
semantics would be confused

3.1.8. Multicast/Broadcast

In MIB-II, the ifTable counters for multicast and broadcast
are combined as counters of non-unicast packets. In contrast,
ifExtensions MIB [19] defined one set of counters for multicast,
a separate set for broadcast packets. With the separate counters
the original combined counters become redundant. To avoid
redundancy, the non-unicast counters are deprecated

For the output broadcast and multicast counters defined in RFC 1229,
their definitions varied slightly from the packet counters in
ifTable, in that they did not count errors/discarded packets. Thus
this memo defines new objects with better aligned definitions
Counters with 64 bits of range are also needed, as explained above

3.1.9. Trap

In the multi-layer interface model, each sub-layer for which there
an entry in the ifTable can generate linkUp/linkDown Traps.
interface state changes would tend to propagate through the
(from top to bottom, or bottom to top), it is likely that
traps would be generated for each linkUp/linkDown occurrence

It is desirable to provide a mechanism for manager stations
control the generation of these traps. To this end,
ifLinkUpDownTrapEnable object has been added. This object
managers to limit generation of traps to just the sub-layers
interest



McCloghrie & Kastenholz Standards Track [Page 17]

RFC 2863 The Interfaces Group MIB June 2000


The default setting should limit the number of traps generated to
per interface per linkUp/linkDown event. Furthermore, it seems
the state changes of most interest to network managers occur at
lowest level of an interface stack. Therefore we specify that
default, only the lowest sub-layer of the interface generate traps

3.1.10. Addition of New ifType

Over time, there is the need to add new ifType enumerated values
new interface types. If the syntax of ifType were defined in the
in section 6, then a new version of this MIB would have to be re
issued in order to define new values. In the past, re-issuing of
MIB has occurred only after several years

Therefore, the syntax of ifType is changed to be a
convention, such that the enumerated integer values are now
in the textual convention, IANAifType, defined in a
document. This allows additional values to be documented
having to re-issue a new version of this document. The
Assigned Number Authority (IANA) is responsible for the assignment
all Internet numbers, including various SNMP-related numbers,
specifically, new ifType values

3.1.11. InterfaceIndex Textual

A new textual convention, InterfaceIndex, has been defined.
textual convention "contains" all of the semantics of the
object. This allows other MIB modules to easily import the
of ifIndex

3.1.12. New states for

Three new states have been added to ifOperStatus: 'dormant',
'notPresent', and 'lowerLayerDown'.

The dormant state indicates that the relevant interface is
actually in a condition to pass packets (i.e., it is not 'up') but
in a "pending" state, waiting for some external event. For "on
demand" interfaces, this new state identifies the situation where
interface is waiting for events to place it in the up state
Examples of such events might be

(1) having packets to transmit before establishing a connection
a remote system

(2) having a remote system establish a connection to the
(e.g. dialing up to a slip-server).




McCloghrie & Kastenholz Standards Track [Page 18]

RFC 2863 The Interfaces Group MIB June 2000


The notPresent state is a refinement on the down state
indicates that the relevant interface is down specifically
some component (typically, a hardware component) is not present
the managed system. Examples of use of the notPresent state are

(1) to allow an interface's conceptual row including its
values to be retained across a "hot swap" of a card/module
and/

(2) to allow an interface's conceptual row to be created,
thereby enable interfaces to be pre-configured prior
installation of the hardware needed to make the
operational

Agents are not required to support interfaces in the
state. However, from a conceptual viewpoint, when a row in
ifTable is created, it first enters the notPresent state and
subsequently transitions into the down state; similarly, when a
in the ifTable is deleted, it first enters the notPresent state
then subsequently the object instances are deleted. For an
with no support for notPresent, both of these transitions (from
notPresent state to the down state, and from the notPresent state
the instances being removed) are immediate, i.e., the transition
not last long enough to be recorded by ifOperStatus. Even for
agents which do support interfaces in the notPresent state,
length of time and conditions under which an interface stays in
notPresent state is implementation-specific

The lowerLayerDown state is also a refinement on the down state
This new state indicates that this interface runs "on top of" one
more other interfaces (see ifStackTable) and that this interface
down specifically because one or more of these lower-layer
are down

3.1.13. IfAdminStatus and

The down state of ifOperStatus now has two meanings, depending on
value of ifAdminStatus

(1) if ifAdminStatus is not down and ifOperStatus is down then
fault condition is presumed to exist on the interface

(2) if ifAdminStatus is down, then ifOperStatus will normally
be down (or notPresent) i.e., there is not (necessarily)
fault condition on the interface

Note that when ifAdminStatus transitions to down, ifOperStatus
normally also transition to down. In this situation, it is



McCloghrie & Kastenholz Standards Track [Page 19]

RFC 2863 The Interfaces Group MIB June 2000


that ifOperStatus's transition will not occur immediately, but
after a small time lag to complete certain operations before
"down"; for example, it might need to finish transmitting a packet
If a manager station finds that ifAdminStatus is down
ifOperStatus is not down for a particular interface, the
station should wait a short while and check again. If the
still exists, only then should it raise an error indication
Naturally, it should also ensure that ifLastChange has not
during this interval

Whenever an interface table entry is created (usually as a result
system initialization), the relevant instance of ifAdminStatus is
to down, and ifOperStatus will be down or notPresent

An interface may be enabled in two ways: either as a result
explicit management action (e.g. setting ifAdminStatus to up) or as
result of the managed system's initialization process.
ifAdminStatus changes to the up state, the related
should do one of the following

(1) Change to the up state if and only if the interface is able
send and receive packets

(2) Change to the lowerLayerDown state if and only if the
is prevented from entering the up state because of the state
one or more of the interfaces beneath it in the
stack

(3) Change to the dormant state if and only if the interface
found to be operable, but the interface is waiting for other
external, events to occur before it can transmit or
packets. Presumably when the expected events occur,
interface will then change to the up state

(4) Remain in the down state if an error or other fault
is detected on the interface

(5) Change to the unknown state if, for some reason, the state
the interface can not be ascertained

(6) Change to the testing state if some test(s) must be
on the interface. Presumably after completion of the test,
interface's state will change to up, dormant, or down,
appropriate

(7) Remain in the notPresent state if interface components
missing




McCloghrie & Kastenholz Standards Track [Page 20]

RFC 2863 The Interfaces Group MIB June 2000


3.1.14. IfOperStatus in an Interface

When an interface is a part of an interface-stack, but is not
lowest interface in the stack, then

(1) ifOperStatus has the value 'up' if it is able to pass
due to one or more interfaces below it in the stack being 'up',
irrespective of whether other interfaces below it are 'down', '
dormant', 'notPresent', 'lowerLayerDown', 'unknown' or '
testing'.

(2) ifOperStatus may have the value 'up' or 'dormant' if one
more interfaces below it in the stack are 'dormant', and
others below it are either 'down', 'dormant', 'notPresent', '
lowerLayerDown', 'unknown' or 'testing'.

(3) ifOperStatus has the value 'lowerLayerDown' while
interfaces below it in the stack are either 'down', '
notPresent', 'lowerLayerDown', or 'testing'.

3.1.15.

The exact definition of when linkUp and linkDown traps are
has been changed to reflect the changes to ifAdminStatus
ifOperStatus. Operational experience indicates that
stations are most concerned with an interface being in the down
and the fact that this state may indicate a failure. Thus, it
most useful to instrument transitions into/out of either the up
or the down state

Instrumenting transitions into or out of the up state was
since it would have the drawback that a demand interface might
many transitions between up and dormant, leading to many linkUp
and no linkDown traps. Furthermore, if a node's only interface
the demand interface, then a transition to dormant would
generation of a linkDown trap, necessitating bringing the link to
up state (and a linkUp trap)!!

On the other hand, instrumenting transitions into or out of the
state (to/from all other states except notPresent) has
advantages

(1) A transition into the down state (from a state other
notPresent) will occur when an error is detected on
interface. Error conditions are presumably of great
to network managers





McCloghrie & Kastenholz Standards Track [Page 21]

RFC 2863 The Interfaces Group MIB June 2000


(2) Departing the down state (to a state other than the
state) generally indicates that the interface is going
either up or dormant, both of which are considered "healthy
states

Furthermore, it is believed that generating traps on transitions
or out of the down state (except to/from the notPresent state)
generally consistent with current usage and interpretation of
traps by manager stations

Transitions to/from the notPresent state are concerned with
insertion and removal of hardware, and are outside the scope of
traps

Therefore, this memo defines that LinkUp and linkDown traps
generated just after ifOperStatus leaves, or just before it enters
the down state, respectively; except that LinkUp and linkDown
are never generated on transitions to/from the notPresent state.
the purpose of deciding when these traps occur, the
state and the down state are considered to be equivalent, i.e.,
is no trap on transition from lowerLayerDown into down, and there
a trap on transition from any other state except down (
notPresent) into lowerLayerDown

Note that this definition allows a node with only one interface
transmit a linkDown trap before that interface goes down. (
course, when the interface is going down because of a
condition, the linkDown trap probably cannot be
transmitted anyway.)

Some interfaces perform a link "training" function when trying
bring the interface up. In the event that such an interface
defective, then the training function would fail and the
would remain down, and the training function might be repeated
appropriate intervals. If the interface, while performing
training function, were considered to the in the testing state,
linkUp and linkDown traps would be generated for each start and
of the training function. This is not the intent of the linkUp
linkDown traps, and therefore, while performing such a
function, the interface's state should be represented as down

An exception to the above generation of linkUp/linkDown traps
changes in ifOperStatus, occurs when an interface is "flapping",
i.e., when it is rapidly oscillating between the up and down states
If traps were generated for each such oscillation, the network
the network management system would be flooded with
traps. In such a situation, the agent should limit the rate at
it generates traps



McCloghrie & Kastenholz Standards Track [Page 22]

RFC 2863 The Interfaces Group MIB June 2000


3.1.16.

The original definition of the OBJECT IDENTIFIER value of
was not sufficiently clear. As a result, different implementors
it differently, and confusion resulted. Some implementations set
value of ifSpecific to the OBJECT IDENTIFIER that defines the media
specific MIB, i.e., the "foo" of
foo OBJECT IDENTIFIER ::= { transmission xxx }

while others set it to be OBJECT IDENTIFIER of the specific table
entry in the appropriate media-specific MIB (i.e., fooTable
fooEntry), while still others set it be the OBJECT IDENTIFIER of
index object of the table's row, including instance identifier
(i.e., fooIfIndex.ifIndex). A definition based on the latter
not be sufficient unless it also allowed for media-specific
which include several tables, where each table has its
(different) indexing

The only definition that can both be made explicit and can cover
the useful situations is to have ifSpecific be the most general
for the media-specific MIB module (the first example given above).
This effectively makes it redundant because it contains no
information than is provided by ifType. Thus, ifSpecific has
deprecated

3.1.17. Creation/Deletion of

While some interfaces, for example, most physical interfaces,
be created via network management, other interfaces such as
interfaces sometimes can be. The ifTable contains only
information about an interface. Almost all 'create-able'
have other, media-specific, information through which
parameters may be supplied prior to creating such an interface
Thus, the ifTable does not itself support the creation or deletion
an interface (specifically, it has no RowStatus [6] column). Rather
if a particular interface type supports the dynamic creation and/
deletion of an interface of that type, then that media-specific
should include an appropriate RowStatus object (see the ATM LAN
Emulation Client MIB [20] for an example of a MIB which does this).
Typically, when such a RowStatus object is created/deleted, then
conceptual row in the ifTable appears/disappears as a by-product,
an ifIndex value (chosen by the agent) is stored in an
object in the media-specific MIB








McCloghrie & Kastenholz Standards Track [Page 23]

RFC 2863 The Interfaces Group MIB June 2000


3.1.18. All Values Must be

There are a number of situations where an agent does not know
value of one or more objects for a particular interface. In all
circumstances, an agent MUST NOT instantiate an object with
incorrect value; rather, it MUST respond with the
error/exception condition (e.g., noSuchInstance or noSuchName).

One example is where an agent is unable to count the
defined by one (or more) of the ifTable counters. In
circumstance, the agent MUST NOT instantiate the particular
with a value of, say, zero. To do so would be to provide mis
information to a network management application reading the
value, and thereby assuming that there have been no occurrences
the event (e.g., no input errors because ifInErrors is always zero).

Sometimes the lack of knowledge of an object's value is temporary
For example, when the MTU of an interface is a configured value and
device dynamically learns the configured value through (after
exchanging messages over the interface (e.g., ATM LAN-
[20]). In such a case, the value is not known until after
ifTable entry has already been created. In such a case, the
entry should be created without an instance of the object whose
is unknown; later, when the value becomes known, the missing
can then be instantiated (e.g., the instance of ifMtu is
instantiated once the interface's MTU becomes known).

As a result of this "known values" rule, management applications
be able to cope with the responses to retrieving the object
within a conceptual row of the ifTable revealing that some of
row's columnar objects are missing/not available

4. Media-Specific MIB

The exact use and semantics of many objects in this MIB are open
some interpretation. This is a result of the generic nature of
MIB. It is not always possible to come up with specific
unambiguous, text that covers all cases and yet preserves the
nature of the MIB

Therefore, it is incumbent upon a media-specific MIB designer to
wherever necessary, clarify the use of the objects in this MIB
respect to the media-specific MIB








McCloghrie & Kastenholz Standards Track [Page 24]

RFC 2863 The Interfaces Group MIB June 2000


Specific areas of clarification

Layering
The media-specific MIB designer MUST completely and
specify the layering model used. Each individual sub-layer
be identified, as must the ifStackTable's portrayal of
relationship(s) between the sub-layers

Virtual
The media-specific MIB designer MUST specify whether
circuits are assigned entries in the ifTable or not. If they are
compelling rationale must be presented


The media-specific MIB designer MUST specify the applicability
the ifRcvAddressTable


For each of the ifType values to which the media-specific
applies, it must specify the mapping of ifType values to media
specific MIB module(s) and instances of MIB objects within
modules


The definitions of ifInOctets and ifOutOctets (and similarly
ifHCInOctets and ifHCOutOctets) specify that their values
framing characters. The media-specific MIB designer MUST
any special conditions of the media concerning the inclusion
framing characters, especially with respect to frames with errors

However, wherever this interface MIB is specific in the semantics
DESCRIPTION, or applicability of objects, the media-specific
designer MUST NOT change said semantics, DESCRIPTION,
applicability

5.

This MIB consists of 4 tables


This table is the ifTable from MIB-II


This table contains objects that have been added to the
MIB as a result of the Interface Evolution effort, or
for objects of the original (MIB-II) ifTable that were





McCloghrie & Kastenholz Standards Track [Page 25]

RFC 2863 The Interfaces Group MIB June 2000


because the semantics of said objects have significantly changed
This table also contains objects that were previously in
ifExtnsTable


This table contains objects that define the relationships
the sub-layers of an interface


This table contains objects that are used to define the media
level addresses which this interface will receive. This table
a generic table. The designers of media-specific MIBs must
exactly how this table applies to their specific MIB

6. Interfaces Group

IF-MIB DEFINITIONS ::=


MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
Integer32, TimeTicks, mib-2,
NOTIFICATION-TYPE FROM SNMPv2-
TEXTUAL-CONVENTION, DisplayString
PhysAddress, TruthValue, RowStatus
TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-
MODULE-COMPLIANCE, OBJECT-GROUP
NOTIFICATION-GROUP FROM SNMPv2-
snmpTraps FROM SNMPv2-
IANAifType FROM IANAifType-MIB


ifMIB MODULE-
LAST-UPDATED "200006140000Z
ORGANIZATION "IETF Interfaces MIB Working Group
CONTACT-
" Keith
Cisco Systems, Inc
170 West Tasman
San Jose, CA 95134-1706


408-526-5260
kzm@cisco.com

"The MIB module to describe generic objects for
interface sub-layers. This MIB is an updated version
MIB-II's ifTable, and incorporates the extensions defined
RFC 1229."



McCloghrie & Kastenholz Standards Track [Page 26]

RFC 2863 The Int