Multiprotocol Label Switching (MPLS) Label Switching Router (LSR) Management Information Base (MIB)
Extracted elements (26)
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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-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.
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.
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.