rfc-3813

Multiprotocol Label Switching (MPLS) Label Switching Router (LSR) Management Information Base (MIB)

C. Srinivasan, A. Viswanathan, T. Nadeau
date2004-06 streamIETF areartg wgmpls statusPROPOSED STANDARD pages60 canonicalhttps://www.rfc-editor.org/rfc/rfc3813 doi10.17487/RFC3813 errataview
This memo defines an portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects to configure and/or monitor a Multiprotocol Label Switching (MPLS) Label Switching Router (LSR). [STANDARDS-TRACK]

Extracted elements (26)

design-rationale §10

MplsIndexType is defined as an OCTET STRING (1..24) rather than an integer to accommodate both write-access systems (where it is treated as a simple multi-digit integer) and read-only systems (where it may encode implementation-specific information such as interface index, physical card, or application ID). The value 0x00 is reserved as a sentinel for special cases.

mpls, snmp

design-rationale §5.9

mplsInSegmentMapTable exists as a separate reverse-index table to enable an alternative lookup path from (interface, label) to the segment's opaque index. Its primary use is hop-by-hop LSP tracing: a manager retrieves the outgoing label/interface at one LSR and then queries this table at the next-hop LSR using those values to continue the trace.

mpls, snmp

design-rationale §5.5

mplsOutSegmentTable uses a single arbitrary index rather than being indexed by in-segment and out-segment pairs because equal-cost multi-path may require two out-segments with identical outgoing labels assigned to the same cross-connect entry (going to different neighboring LSRs), making a composite index non-unique.

mpls, snmp

design-rationale §10

The mplsXCUp and mplsXCDown notifications carry two instances of mplsXCOperStatus representing the start and end of a contiguous range of affected cross-connect indexes. This range-encoding allows a single notification to cover bulk state changes (e.g., a link failure affecting many LSPs) rather than generating one notification per cross-connect entry.

mpls, snmp

interoperability-note §5.9

If the mplsInSegmentMapLabelPtrIndex OID (used as an index in mplsInSegmentMapTable) has more than 111 sub-identifiers, the resulting column instance OIDs will exceed 128 sub-identifiers and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3.

mpls, snmp

interoperability-note §8.1

MPLS interfaces are represented in the IF-MIB ifTable with ifType=mpls(166). The MPLS interface is treated as a sub-layer; ifConnectorPresent is false(2), ifLinkUpDownTrapEnable defaults to disabled(2), and ifInUnknownProtos counts labeled packets discarded during header validation including those with unrecognized label values.

mpls, snmp

normative-requirement §5.3 MUST

Agents not allowing managers to create entries in mplsInSegmentTable or mplsOutSegmentTable MUST set the corresponding IndexNext object (mplsInSegmentIndexNext, mplsOutSegmentIndexNext) to the string containing the single octet 0x00, which is the sentinel value indicating no new entries can be created.

mpls, snmp

normative-requirement §6 MUST

Counter size requirements depend on interface speed: for interfaces at or below 20 Mbps, 32-bit byte and packet counters MUST be supported; above 20 Mbps and below 650 Mbps, 32-bit packet counters MUST and 64-bit octet counters MUST be supported; at or above 650 Mbps, both 64-bit packet counters AND 64-bit octet counters MUST be supported.

mpls, snmp

normative-requirement §5.1 MUST

For mplsInterfaceLabelParticipationType, at least one of the perPlatform(0) or perInterface(1) bits MUST be set. For entries with index 0 (per-platform label space), the perPlatform(0) bit MUST be set. Agents MUST ensure label ranges are specified consistently and MUST return an inconsistentValue error when they are not.

mpls, snmp

normative-requirement §5.3 MUST

If mplsInSegmentLabelPtr is zeroDotZero, then mplsInSegmentLabel MUST contain the incoming label. If the label cannot fit in mplsInSegmentLabel, mplsInSegmentLabelPtr MUST point to the first accessible column of an external extension table; in all other cases mplsInSegmentLabelPtr MUST be set to zeroDotZero.

mpls, snmp

normative-requirement §5.1 MUST

If the ifTable entry corresponding to an mplsInterfaceEntry is operationally disabled, the corresponding entry in mplsInterfaceTable MUST be deleted shortly thereafter. An mplsInterfaceEntry exists if and only if a corresponding ifTable entry with ifType=mpls(166) exists.

mpls, snmp

normative-requirement §5.5 MUST

mplsOutSegmentPushTopLabel MUST be set to true(1) if the outgoing interface does not support pop-and-go and no label stack remains (e.g., ATM interfaces or tunnel origination). The LSR MUST ensure that mplsOutSegmentPushTopLabel is not false when the cross-connect entry referencing the out-segment has a non-zero mplsXCLabelStackIndex.

mpls, snmp

normative-requirement §10 SHOULD

mplsXCNotificationsEnable defaults to false(2); setting it to true(1) enables emission of mplsXCUp and mplsXCDown notifications. For contiguous ranges of cross-connects transitioning to the same state simultaneously, the device SHOULD issue a single notification per contiguous index range to minimize notification volume.

mpls, snmp

normative-requirement §5.7 MUST

The agent MUST ensure that the StorageType of an mplsXCEntry and its associated in-segment and out-segment entries remain consistent and are restored consistently upon system restart. StorageType SHOULD be set to permanent(4) if the entry was created by static LSP configuration.

mpls, snmp

normative-requirement §9 SHOULD

The trafficParamPtr in mplsInSegmentTable and mplsOutSegmentTable SHOULD indicate the first accessible column of an MplsTunnelResourceEntry in the MPLS-TE-STD-MIB (RFC 3812) for segments used in TE tunnels. A value of zeroDotZero indicates best-effort treatment; two or more segments sharing the same pointer value indicate resource sharing.

mpls, snmp

normative-requirement §5.3 MUST

When a row in mplsInSegmentTable, mplsOutSegmentTable, or mplsXCTable has RowStatus active(1), no objects in that row can be modified except RowStatus and StorageType (and mplsXCLspId for the XC table). This prevents reconfiguration of active forwarding entries via SNMP without first taking the row out of service.

mpls, snmp

protocol-element §2

An LSR is modeled as a set of in-segments, out-segments, and cross-connects. An in-segment corresponds to an incoming MPLS label; an out-segment corresponds to an outgoing label; a cross-connect associates one or more in-segments with one or more out-segments to form an LSP. A cross-connect with no in-segment represents an LSP originating at the LSR.

mpls, snmp

protocol-element §5.9

mplsInSegmentMapTable provides a reverse lookup from (interface, label) pair to the mplsInSegmentIndex, enabling managers to trace LSPs hop-by-hop by following the in-segment to out-segment at each LSR. Implementors must be aware that if mplsInSegmentMapLabelPtrIndex OID has more than 111 sub-identifiers, column OIDs exceed 128 sub-identifiers and cannot be accessed via SNMPv1, SNMPv2c, or SNMPv3.

mpls, snmp

protocol-element §5.3

mplsInSegmentTable describes incoming MPLS segments at an LSR. Each entry is indexed by MplsIndexType and carries the incoming interface, label (or a RowPointer to an extension table for oversized labels), the number of labels to pop (mplsInSegmentNPop), address family, and a pointer back to the cross-connect entry via mplsInSegmentXCIndex.

mpls, snmp

protocol-element §5.1

mplsInterfaceTable represents each MPLS-capable interface on an LSR. It is indexed by InterfaceIndexOrZero; index 0 represents the per-platform label space. Each entry carries label range limits (min/max in and out), total and available bandwidth (in Kbps), and a participation type bitmap indicating per-platform and/or per-interface label space usage.

mpls, snmp

protocol-element §5.8

mplsLabelStackTable specifies labels to be pushed onto a packet beneath the top label. It is indexed by mplsLabelStackIndex and mplsLabelStackLabelIndex, where a smaller LabelIndex value refers to a label higher in the stack (popped earlier at a downstream LSR). Entries are referred to from mplsXCTable via mplsXCLabelStackIndex.

mpls, snmp

protocol-element §5.5

mplsOutSegmentTable describes outgoing MPLS segments at an LSR. Each entry specifies the outgoing interface, whether to push a top label (mplsOutSegmentPushTopLabel), the outgoing label value or pointer, the next-hop address (IPv4, IPv6, or unknown for point-to-point), and a traffic parameter pointer. A separate arbitrary index is used to uniquely identify out-segments to support equal-cost multi-path scenarios.

mpls, snmp

protocol-element §5.7

mplsXCTable associates in-segments and out-segments to form cross-connects. It supports point-to-point, point-to-multipoint, and multipoint-to-point connections. LSPs originating at the LSR use a special mplsXCInSegmentIndex of 0x00; LSPs terminating at the LSR use a special mplsXCOutSegmentIndex of 0x00.

mpls, snmp

registry §13.1

MPLS-LSR-STD-MIB is assigned the OID { mplsStdMIB 2 } under the MPLS Standards MIB arc. The module defines the mplsLsrNotifications, mplsLsrObjects, and mplsLsrConformance subtrees. IANA has assigned this OID as part of the mplsStdMIB managed by the IANA per RFC 3811.

mpls, snmp, registry

security-consideration §11

Several objects in MPLS-LSR-STD-MIB have MAX-ACCESS read-create, allowing SNMP write operations that can create, modify, or delete LSP forwarding entries. Unauthorized write access could reconfigure or disrupt active label-switched paths. Implementors should use SNMPv3 with authentication and privacy to protect management traffic and restrict write access to authorized principals.

mpls, snmp, security

state-machine §5.7

mplsXCAdminStatus (desired state: up, down, testing) and mplsXCOperStatus (actual state: up, down, testing, unknown, dormant, notPresent, lowerLayerDown) model the administrative and operational state of each cross-connect entry. The mplsXCUp and mplsXCDown notifications are generated on transitions to up(1) or down(2) respectively.

mpls, snmp