rfc-2863

The Interfaces Group MIB

K. McCloghrie, F. Kastenholz
date2000-06 streamIETF areaint wgifmib statusDRAFT STANDARD pages69 canonicalhttps://www.rfc-editor.org/rfc/rfc2863 doi10.17487/RFC2863 errataview
This memo discusses the 'interfaces' group of MIB-II, especially the experience gained from the definition of numerous media-specific MIB modules for use in conjunction with the 'interfaces' group for managing various sub-layers beneath the internetwork-layer. It specifies clarifications to, and extensions of, the architectural issues within the MIB-II model of the 'interfaces' group. [STANDARDS-TRACK]

obsoletes

updated by

Extracted elements (28)

design-rationale §3.1.6

64-bit expanded counters were adopted instead of scaling counters because scaled counters cause traffic to appear artificially bursty at low traffic rates, leading to incorrect network performance conclusions. The ifCounterDiscontinuityTime object was added to allow counter discontinuity detection without requiring ifIndex reassignment on interface return.

snmp

design-rationale §3.1.1

Each sub-layer beneath the internetwork layer is represented as an individual conceptual row in the ifTable, with a new ifStackTable identifying superior/subordinate relationships via integer pointers. This design supports both upward and downward multiplexing and avoids requiring enumerated ifType values for each combination of sub-layers.

snmp

design-rationale §3.1.16

ifSpecific was deprecated because its original definition was ambiguous, leading to three different incompatible interpretations by implementors. The only unambiguous definition (pointing to the media-specific MIB module OID) conveys no more information than ifType, making the object redundant.

snmp

design-rationale §3.1.10

ifType's syntax was changed to reference the IANAifType textual convention defined in a separate document so that new interface type values can be assigned by IANA without requiring re-issue of the IF-MIB. Previously, adding enumerated values necessitated a full MIB revision, which historically occurred only every several years.

registry, snmp

design-rationale §3.1.17

The ifTable intentionally has no RowStatus column because nearly all creatable interfaces require media-specific configuration parameters not present in the generic table. Interface creation and deletion is delegated to media-specific MIBs whose RowStatus operations cause ifTable rows to appear and disappear as a side effect.

snmp

design-rationale §3.1.3

Virtual circuits in connection-oriented sub-layers (e.g., Frame Relay, X.25) are strongly recommended not to have individual ifTable rows, to avoid proliferation of conceptual rows with redundant information. A media-specific MIB that assigns per-VC rows must present compelling rationale in its specification.

snmp

interoperability-note §3.1.5

After a dynamic interface removal, an agent must not reuse the freed ifIndex value for a different interface until after the next re-initialization of the network management system. When the same interface returns, it should retain its previous ifIndex and update ifCounterDiscontinuityTime rather than requiring a new index.

snmp

interoperability-note §3.1.8

The non-unicast counters ifInNUcastPkts and ifOutNUcastPkts are deprecated in favor of separate multicast and broadcast counters (ifInMulticastPkts, ifInBroadcastPkts, ifOutMulticastPkts, ifOutBroadcastPkts) defined in this memo. The combined non-unicast counters became redundant once separate counters were available.

snmp

interoperability-note §3.1.5

The requirement that ifIndex values be less than ifNumber was removed. Existing agent implementations already conform to the new looser definition, preserving backward compatibility. The value of ifNumber continues to represent the count of conceptual rows and increases or decreases as interfaces are dynamically added or removed.

snmp

normative-requirement §3.1.18 MUST NOT

An agent MUST NOT instantiate an object with an incorrect value when the true value is unknown; it MUST respond with the appropriate error or exception condition (noSuchInstance or noSuchName). Instantiating a counter as zero when it cannot be counted provides misinformation to management applications.

snmp

normative-requirement §3.1.6 MUST

For interfaces at 20 Mbps or less, 32-bit byte and packet counters MUST be supported. For interfaces faster than 20 Mbps and slower than 650 Mbps, 32-bit packet counters MUST and 64-bit octet counters MUST be supported. For interfaces at 650 Mbps or faster, 64-bit packet AND 64-bit octet counters MUST be supported.

snmp

normative-requirement §3.1.15 MUST

LinkUp and linkDown traps are generated just after ifOperStatus leaves, or just before it enters, the down state respectively; traps are never generated on transitions to/from the notPresent state. The lowerLayerDown state is treated as equivalent to down for trap generation purposes.

snmp

normative-requirement §3.1.18 MUST

Management applications MUST be able to cope with responses revealing that some columnar objects within an ifTable conceptual row are missing or unavailable, since agents may omit object instances whose values are temporarily unknown.

snmp

normative-requirement §4 MUST

Media-specific MIB designers MUST completely and unambiguously specify the layering model used, MUST specify whether virtual circuits are assigned ifTable entries, MUST specify the applicability of ifRcvAddressTable, and MUST NOT change the semantics, DESCRIPTION, or applicability of objects defined in the IF-MIB.

snmp

normative-requirement §3.1.6 MUST

When 64-bit counters are in use, the 32-bit counters MUST still be available and report the low 32 bits of the associated 64-bit count (e.g., ifInOctets reports the least significant 32 bits of ifHCInOctets). This preserves interoperability with existing implementations.

snmp

normative-requirement §3.1.15 SHOULD

When an interface is 'flapping' (rapidly oscillating between up and down states), an agent should limit the rate at which it generates linkUp/linkDown traps to avoid flooding the network and the network management system with unnecessary traps.

snmp

protocol-element §3.1.5

ifCounterDiscontinuityTime records the sysUpTime value at the last counter discontinuity on an interface. Management applications must discard calculated counter differences whenever this value differs between successive polls, and check it in addition to sysUpTime to detect agent re-initialization.

snmp

protocol-element §3.1.7

ifHighSpeed reports interface speed in units of 1,000,000 bits/second (±500,000 bps granularity), providing speed reporting for interfaces faster than the approximately 2.2 Gbps maximum representable by the Gauge32 ifSpeed object. ifHighSpeed is mandatory when ifSpeed reports its maximum value of 4,294,967,295.

snmp

protocol-element §3.1.9

ifLinkUpDownTrapEnable controls per-sub-layer linkUp/linkDown trap generation. By default, only the lowest sub-layer of an interface stack should generate traps, limiting trap volume to one per interface per link event.

snmp

protocol-element §3.1.5

ifName contains the device's local console name for the physical or logical interface; multiple ifTable sub-layer entries for the same physical interface may share the same ifName value. ifAlias is a non-volatile manager-assigned name that persists across reboots even if ifIndex is reassigned.

snmp

protocol-element §5

ifRcvAddressTable defines the set of media-level addresses at which an interface will receive packets. Media-specific MIB designers must specify exactly how this generic table applies to their particular interface type.

snmp

protocol-element §5

The ifStackTable identifies layering relationships between interface sub-layers through integer pointers to ifTable rows. It enables representation of upward multiplexing (e.g., MLP aggregating serial lines) and downward multiplexing (e.g., PPP instances over separate X.25 virtual circuits).

snmp

protocol-element §5

The ifXTable (OID ifMIBObjects.1) augments ifTable with extension objects: ifName, ifInMulticastPkts, ifInBroadcastPkts, ifOutMulticastPkts, ifOutBroadcastPkts, ifHCInOctets, ifHCOutOctets, ifHCInUcastPkts, ifHCOutUcastPkts, ifHCInMulticastPkts, ifHCInBroadcastPkts, ifHCOutMulticastPkts, ifHCOutBroadcastPkts, ifLinkUpDownTrapEnable, ifHighSpeed, ifPromiscuousMode, ifConnectorPresent, ifAlias, and ifCounterDiscontinuityTime.

snmp

registry §3.1.10

The IANAifType textual convention, maintained by IANA in the separate IANAifType-MIB document, defines enumerated integer values for the ifType object. New ifType values are assigned by IANA without requiring re-issue of the IF-MIB, decoupling interface type registration from MIB versioning.

registry, snmp

security-consideration §9

Several IF-MIB objects have read-write access, most notably ifAdminStatus (which can bring interfaces up or down) and ifLinkUpDownTrapEnable (which can suppress fault notifications). Unauthorized SNMP write access to these objects poses a significant network management security risk; implementations should apply appropriate access control consistent with the SNMP security frameworks.

security, snmp

state-machine §3.1.12

ifOperStatus has seven states: up (ready to pass packets), down (not ready or fault), testing (no operational packets), unknown (state indeterminate), dormant (operable but waiting for external event), notPresent (hardware component missing), and lowerLayerDown (down due to lower-layer interface state). Transitions from any state except notPresent into down trigger a linkDown trap; transitions out of down to any state except notPresent trigger a linkUp trap.

snmp

state-machine §3.1.13

When ifAdminStatus transitions to up, ifOperStatus should move to: up (if able to pass packets), lowerLayerDown (if blocked by lower layer), dormant (operable but awaiting external events), testing (if tests must be performed), unknown (state indeterminate), or remain in down (fault detected) or notPresent (components missing). New ifTable entries are initialized with ifAdminStatus down.

snmp

wire-format §6

The ifTable (OID mib-2.2) contains IfEntry rows indexed by ifIndex (InterfaceIndex, Integer32 1..2147483647). Fields include ifType (IANAifType), ifMtu (Integer32, octets), ifSpeed (Gauge32, bps), ifPhysAddress (PhysAddress), ifAdminStatus (up/down/testing), ifOperStatus (seven-state INTEGER), ifLastChange (TimeTicks), and Counter32 traffic/error counters for inbound and outbound traffic.

snmp