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











Network Working Group K.
Request for Comments: 2233 Cisco
Obsoletes: 1573 F.
Category: Standards Track FTP
November 1997


The Interfaces Group MIB using SMIv


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 (1997). All Rights Reserved

Table of

1 Introduction .............................................. 2
2 The SNMP Network Management Framework ..................... 2
2.1 Object Definitions ...................................... 3
3 Experience with the Interfaces Group ...................... 3
3.1 Clarifications/Revisions ................................ 3
3.1.1 Interface Sub-Layers .................................. 4
3.1.2 Guidance on Defining Sub-layers ....................... 6
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 ........................................... 18
3.1.10 Addition of New ifType values ........................ 18
3.1.11 InterfaceIndex Textual Convention .................... 18
3.1.12 New states for IfOperStatus .......................... 19
3.1.13 IfAdminStatus and IfOperStatus ....................... 20
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 ...................... 24
3.1.18 All Values Must be Known ............................. 24
4 Media-Specific MIB Applicability .......................... 25



McCloghrie & Kastenholz Standards Track [Page 1]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


5 Overview .................................................. 26
6 Interfaces Group Definitions .............................. 26
7 Acknowledgements .......................................... 64
8 References ................................................ 64
9 Security Considerations ................................... 65
10 Authors' Addresses ....................................... 65
11 Full Copyright Statement ................................. 66

1.

This memo defines a portion of the Management Information
(MIB) for use with network management protocols in the
community. In particular, it describes managed objects used
managing Network Interfaces

This memo discusses the 'interfaces' group of MIB-II, especially
experience gained from the definition of numerous media- specific
modules for use in conjunction with the 'interfaces' group
managing various sub-layers beneath the internetwork- layer.
specifies clarifications to, and extensions of, the
issues within the previous model used for the 'interfaces' group

This memo also includes a MIB module. As well as including
MIB definitions to support the architectural extensions, this
module also re-specifies the 'interfaces' group of MIB-II in
manner that is both compliant to the SNMPv2 SMI and semantically
identical to the existing SNMPv1-based definitions

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

2. The SNMP Network Management

The SNMP Network Management Framework presently consists of
major components. They are

o RFC 1902 which defines the SMI, the mechanisms used
describing and naming objects for the purpose of management

o STD 17, RFC 1213 defines MIB-II, the core set of
objects for the Internet suite of protocols

o STD 15, RFC 1157 and RFC 1905 which define two versions
the protocol used for network access to managed objects







McCloghrie & Kastenholz Standards Track [Page 2]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


The Framework permits new objects to be defined for the purpose
experimentation and evaluation

2.1. Object

Managed objects are accessed via a virtual information store
termed the Management Information Base or MIB. Objects in the
are defined using the subset of Abstract Syntax Notation
(ASN.1) defined in the SMI. In particular, each object
type is named by an OBJECT IDENTIFIER, an
assigned name. The object type together with an object
serves to uniquely identify a specific instantiation of
object. For human convenience, we often use a textual string
termed the descriptor, to refer to the object type

3. Experience with the Interfaces

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

Experience in defining these media-specific MIB modules has
that the model defined by MIB-II is too simplistic and/or
for some types of media-specific management. As a result, some
these media-specific MIB modules assume an evolution or
of the model. This memo documents and standardizes that
of the model and fills in the gaps caused by that evolution.
memo also incorporates the interfaces group extensions
in RFC 1229 [7].

3.1. Clarifications/

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




McCloghrie & Kastenholz Standards Track [Page 3]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


In some sections, one or more paragraphs contain discussion
rejected alternatives to the model adopted in this memo.
not familiar with the MIB-II model and not interested in
rationale 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-
beneath the internetwork-layer. In addition, there is a need
manage these sub-layers in devices (e.g., MAC-layer bridges)
are unaware of which, if any, internetwork protocols run
these sub-layers. As such, a model of having a single
row in the interfaces table (MIB-II's ifTable) represent a
interface underneath the internetwork-layer, and having a
associated media-specific MIB module (referenced via the
object) is too simplistic. A further problem arises with
value of the ifType object which has enumerated values for
type of interface

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

An associated problem is that of upward and downward
of the sub-layers. An example of upward multiplexing is
(Multi-Link-Procedure) which provides load-sharing over
serial lines by appearing as a single point-to-point link to
sub-layer(s) above. An example of downward multiplexing would
several instances of PPP, each framed within a separate X.25
virtual circuit, all of which run over one fractional T1 channel
concurrently with other uses of the T1 link. The MIB
must allow these sorts of relationships to be described

Several solutions for representing multiple sub-layers
rejected. One was to retain the concept of one conceptual row
all the sub-layers of an interface and have each media-
MIB module identify its "superior" and "subordinate" sub-
through OBJECT IDENTIFIER "pointers". This scheme would
several drawbacks: the superior/subordinate pointers would
contained in the media-specific MIB modules; thus, a manager
not learn the structure of an interface without
multiple pointers in different MIB modules; this would be



McCloghrie & Kastenholz Standards Track [Page 4]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


complex and only possible if the manager had knowledge of all
relevant media-specific MIB modules; MIB modules would all need
be retrofitted with these new "pointers"; this scheme would
adequately address the problem of upward and
multiplexing; and finally, enumerated values of ifType would
needed for each combination of sub-layers. Another
solution also retained the concept of one conceptual row for
the sub-layers of an interface but had a new separate MIB table
identify the "superior" and "subordinate" sub-layers and
contain OBJECT IDENTIFIER "pointers" to the media-specific
module for each sub-layer. Effectively, one conceptual row in
ifTable 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,
as PPP over MLP: observe that MLP makes two (or more)
lines appear to the layers above as a single physical interface
and thus PPP over MLP should appear to the internetwork-layer as
single interface; in contrast, this scheme would result in two (
more) conceptual rows in the ifTable, both of which
internetwork-layer would run over. This scheme would also
enumerated values of ifType for each combination of sub-layers

The solution adopted by this memo is to have an
conceptual row in the ifTable to represent each sub-layer,
have a new separate MIB table (the ifStackTable, see section 6
below) to identify the "superior" and "subordinate" sub-
through INTEGER "pointers" to the appropriate conceptual rows
the ifTable. This solution supports both upward and
multiplexing, allows the IANAifType to Media-Specific MIB
to identify the media-specific MIB module for that sub-layer,
that the new table need only be referenced to obtain
about layering, and it only requires enumerated values of
for each sub-layer, not for combinations of them. However,
does require that the descriptions of some objects in the
(specifically, ifType, ifPhysAddress, ifInUcastPkts,
ifOutUcastPkts) be generalized so as to apply to any sub-
(rather than only to a sub-layer immediately beneath the
layer as previously), plus some (specifically, ifSpeed) which
to have appropriate values identified for use when a
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
of the ifTable, be aware of whether an internetwork protocol
on top of (i.e., at some layer above) that sub-layer. In fact
the counters of packets received on an interface are defined
counting the number "delivered to a higher-layer protocol".
meaning of "higher-layer" includes



McCloghrie & Kastenholz Standards Track [Page 5]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


(1) Delivery to a forwarding module which
packets/frames/octets and forwards them on at the
protocol layer. 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
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
would be considered the higher sub-layer to the
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
higher 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
on 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
would be a "higher layer" to the serial interface

(3) For sub-layers that are "at the top of" the interface stack
a higher element in the network protocol stack. For example
for the purposes of this definition, the local IP
would be considered the higher layer to an
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
media-specific MIB designer in these decisions



McCloghrie & Kastenholz Standards Track [Page 6]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


In general, the number of entries in the ifTable should be kept
the minimum required for network management. In particular,
group of related interfaces should be treated as a
interface with 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),
and all of the ifTable's capabilities (e.g., write access
ifAdminStatus), to apply to the group of interfaces as
whole

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

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

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

Note that the sub-layers of an interface on one device
sometimes be different from the sub-layers of the
interface of another device; for example, for a frame-relay
interface connected a frameRelayService interface, the inter
connected DTE and DCE interfaces have different ifType values
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
for the MIB, and provide the assumptions, reasoning, and
used to develop that model



McCloghrie & Kastenholz Standards Track [Page 7]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


3.1.3. Virtual

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

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

If a media-specific MIB wishes to assign an entry in the
to each virtual circuit, the MIB designer must present
rationale for this decision in the media-specific MIB'
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
experience has shown that it is not appropriate to have
character-oriented sub-layer represented by a whole conceptual
in the ifTable

Experience has also shown that it is sometimes desirable to
some 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
where only some of the channels are carrying packet-based data

A further complication is that some subnetwork
transmit data in fixed length transmission units. One example
such a technology is cell relay, and in particular
Transfer Mode (ATM), which transmits data in fixed-length cells
Representing such a interface as a packet-based interface




McCloghrie & Kastenholz Standards Track [Page 8]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


redundant objects if the relationship between the number
packets and the number of octets in either direction is fixed
the size of the transmission unit (e.g., the size of a cell).

About half the objects in the ifTable are applicable to every
of interface: packet-oriented, character-oriented, and bit
oriented. Of the other half, two are applicable to
character-oriented and packet-oriented interfaces, and the
are applicable only to packet-oriented interfaces. Thus, while
is desirable for consistency to be able to represent any/all
of interfaces in the ifTable, it is not possible to implement
full ifTable for 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
objects that are relevant only to packet-oriented
(e.g., PPP), and another that may be used by all interfaces.
is highly undesirable since it would require changes in
agent implementing the ifTable (i.e., just about every
SNMP agent).

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

Thus, section 6 of this memo contains definitions of the
of the existing 'interfaces' group of MIB-II, in a manner which
both SNMPv2-compliant and semantically-equivalent to the
MIB-II definitions. With equivalent semantics, and with the
("on the wire") encodings unchanged, these definitions retain
same OBJECT IDENTIFIER values as assigned by MIB-II. Thus,
general, no rewrite of existing agents which conform to MIB-II
the ifExtensions MIB is required

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






McCloghrie & Kastenholz Standards Track [Page 9]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


(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)
are useful for this type of interface, but are
defined as being packet-oriented. To accommodate this,
definitions of these counters are generalized to apply
character-oriented interfaces and fixed-length-
interfaces

It should be noted that the octet counters in the
aggregate octet counts for unicast and non-unicast packets into
single octet counter per direction (received/transmitted). Thus
with the above definition of fixed-length-transmission interfaces
where such interfaces which support non-unicast packets,
counts of unicast and multicast/broadcast transmissions can
be maintained 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
object, and the description of ifIndex constrains its value
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."

This constancy requirement on the value of ifIndex for
particular interface is vital for efficient management. However
an increasing number of devices allow for the
addition/removal of network interfaces. One example of this is
dynamic ability to configure the use of SLIP/PPP over



McCloghrie & Kastenholz Standards Track [Page 10]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


character-oriented port. For such dynamic additions/removals,
combination of the constancy requirement and the restriction
the value of ifIndex is less than ifNumber is problematic

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

The solution adopted in this memo is just to delete
requirement that the value of ifIndex must be less than the
of ifNumber, and to retain ifNumber with its current definition
This is a minor change in the semantics of ifIndex; however,
existing agent implementations conform to this new definition,
in the interests of not requiring changes to existing
implementations and to the many existing media-specific MIBs,
memo assumes that this change does not require ifIndex to
deprecated. Experience indicates that this assumption
"break" a few management applications, but this is
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
ifTable are not necessarily contiguous, but SNMP's GetNext (
SNMPv2's GetBulk) operation easily deals with such holes.
value of ifNumber still represents the number of conceptual rows
which increases/decreases as new interfaces are
added/removed

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





McCloghrie & Kastenholz Standards Track [Page 11]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


(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
confused when calculating the difference between the
values retrieved on successive polls for a particular
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
interface's return, or else a new ifIndex value has had to
assigned to the returning interface. Both alternatives
proved to be burdensome 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
is unavoidable on agent re-initializations, it is
to avoid it between re-initializations

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




McCloghrie & Kastenholz Standards Track [Page 12]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


While defining this new object is a change in the semantics of
ifTable counter objects, it is impractical to deprecate
redefine all these counters because of their wide deployment
importance. Also, a survey of implementations indicates that
agents and management applications do not correctly implement
aspect of the current semantics (because of the burdensome
mentioned above), such that the practical implications of such
change is small. Thus, this breach of the SMI's rules
considered to be acceptable

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

It is necessary at certain times for the assignment of
values to change on a reinitialization of the agent (such as
reboot).

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

Note also that some agents support multiple "naming scopes", e.g.,
for an SNMPv1 agent, multiple values of the SNMPv1
string. For such an agent (e.g., a CNM agent which supports
different subset of interfaces for different customers), there
no required relationship between the ifIndex values which
interfaces in one naming scope and those which identify
in another naming scope. It is the agent's choice as to
the same or different ifIndex values identify the same
different interfaces in 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
the value of ifIndex, there is now the possibility that
values could be assigned as very large numbers (e.g.,
addresses). Such numbers would be much less user-friendly
Therefore, this memo recommends that ifIndex values still
assigned as (relatively) small integer values starting at 1,
though the values in use at any one time are not
contiguous. (Note that this makes remembering which values
been assigned easy for agents which dynamically add
interfaces).






McCloghrie & Kastenholz Standards Track [Page 13]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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.
mapping would be based on the ifIndex value. However, by
an ifTable entry for each interface sub-layer, mapping
interfaces to physical ports becomes increasingly problematic

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
at the device's local console) for the interface of which
relevant entry in the ifTable is a component. For example
consider a router having an interface composed of PPP running
an RS-232 port. If the router uses the name "wan1" for
(combined) interface, then the ifName objects for
corresponding PPP and RS-232 entries in the ifTable would
have the value "wan1". On the other hand, if the router uses
name "wan1.1" for the PPP interface and "wan1.2" for the RS-232
port, then the ifName objects for the corresponding PPP and RS-232
entries in the ifTable would have the values "wan1.1"
"wan1.2", respectively. As an another example, consider an
which responds to SNMP queries concerning an interface on
other (proxied) device: if such a proxied device associates
particular identifier with an interface, then it is appropriate
use this identifier as the value of the interface's ifName,
the local 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
The 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
and thus an interface must retain its assigned ifAlias
across reboots, even if an agent chooses a new ifIndex value
the interface

3.1.6. Counter

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





McCloghrie & Kastenholz Standards Track [Page 14]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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
be a significant interval before enough of the counted-
occur to cause the scaled counter to be incremented.
would then appear to be very bursty, leading to
conclusions of the network's performance

Instead, this memo adopts expanded, 64 bit, counters.
counters are provided in new "high capacity" groups. The old
32-bit, counters have not been deprecated. The 64-bit
are to be used only when the 32-bit counters do not provide
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 used.
interfaces that operate faster than 20,000,000 bits/second,
slower than 650,000,000 bits/second, 32-bit packet counters
be used and 64-bit octet counters MUST be used. For
that operate at 650,000,000 bits/second or faster, 64-bit
counters AND 64-bit octet counters MUST be used

These speed thresholds were chosen as reasonable compromises
on the following

(1) The cost of maintaining 64-bit counters is relatively high
so 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 SNMPv2.
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-
bit counters for these interfaces

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

- 10Mbs Ethernet: 57 minutes

- 16Mbs Token Ring: 36 minutes



McCloghrie & Kastenholz Standards Track [Page 15]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


- 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

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-based interfaces
both of these groups include 64 bit counters for 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







McCloghrie & Kastenholz Standards Track [Page 16]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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
would require additional complexity in agents due to
increased requirement for 64-bit operations

(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
necessary. The value of ifHighSpeed will be the only report
interface speed for interfaces that are faster
4,294,967,295 bits per second. At this speed, the
of ifHighSpeed will be 1,000,000 bits per second, thus the
will be 1/4294, or about 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
object is required since the semantics of ifSpeed would
significantly altered, and manager stations which do
understand the new 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 [7] defined one set of counters for multicast, and
separate set for broadcast packets. With the separate counters,
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








McCloghrie & Kastenholz Standards Track [Page 17]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


3.1.9. Trap

In the multi-layer interface model, each sub-layer for which there
an entry in the ifTable can generate linkUp/Down 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/Down 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

The default setting should limit the number of traps generated to
per interface per linkUp/Down event. Furthermore, it seems that
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








McCloghrie & Kastenholz Standards Track [Page 18]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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
to a remote system

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

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






McCloghrie & Kastenholz Standards Track [Page 19]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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
also 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
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 presumably 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
to send and receive packets

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




McCloghrie & Kastenholz Standards Track [Page 20]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


(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

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'
'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






McCloghrie & Kastenholz Standards Track [Page 21]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


Operational experience indicates that management stations are
concerned with an interface being in the down state and the fact
this state may indicate a failure. Thus, it is most useful
instrument transitions into/out of either the up state or the
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 interest
network managers

(2) Departing the down state (to a state other than
notPresent state) generally indicates that the interface
going to either up or dormant, both of which are
"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 on just after ifOperStatus leaves, or just before
enters, the down state, respectively; except that LinkUp and
traps never generated on transitions to/from the notPresent state

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.)




McCloghrie & Kastenholz Standards Track [Page 22]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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 rate- limit
generation of traps

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







McCloghrie & Kastenholz Standards Track [Page 23]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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 [2] 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 [8] 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

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 for SNMPv2).

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-
[8]). In such a case, the value is not known until after the
entry has already been created. In such a case, the ifTable
should be created without an instance of the object whose value
unknown; later, when the value becomes known, the missing object
then be instantiated (e.g., the instance of ifMtu is
instantiated once the interface's MTU becomes known).






McCloghrie & Kastenholz Standards Track [Page 24]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


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

Specific areas of clarification

Layering
The media-specific MIB designer MUST completely
unambiguously specify the layering model used. Each
sub-layer must be identified, as must the ifStackTable'
portrayal of the 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
are, compelling rationale must be presented


The media-specific MIB designer MUST specify the
of 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

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







McCloghrie & Kastenholz Standards Track [Page 25]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


5.

This MIB consists of 4 tables


This table is the ifTable from MIB-II


This table contains objects that have been added to
Interface MIB as a result of the Interface Evolution effort,
replacements for objects of the original (MIB-II) ifTable
were deprecated because the semantics of said objects
significantly changed. This table also contains objects
were previously in the 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
is a generic table. The designers of media- specific MIBs
define 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 FROM SNMPv2-
snmpTraps FROM SNMPv2-
IANAifType FROM IANAifType-MIB












McCloghrie & Kastenholz Standards Track [Page 26]

RFC 2233 Interfaces Group MIB using SMIv2 November 1997


ifMIB MODULE-
LAST-UPDATED "9611031355Z
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
network interface sub-layers. This MIB is an
version of MIB-II's ifTable, and incorporates
extensions defined in RFC 1229."
REVISION "9602282155Z

"Revisions made by the Interfaces MIB WG."
REVISION "9311082155Z

"Initial revision, published as part of RFC 1573."
::= { mib-2 31 }


ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }

interfaces OBJECT IDENTIFIER ::= { mib-2 2 }


OwnerString ::= TEXTUAL-
DISPLAY-HINT "255a
STATUS

"This data type is used to model an
assigned name of the owner of a resource.
information is taken from the NVT ASCII character set
It is suggested that this name contain one or more
the following: ASCII form of the manager station'
transport address, management station name (