Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) Management Information Base (MIB)
Extracted elements (26)
MPLS tunnels need not be represented as interfaces; mplsTunnelIsIf is a TruthValue that defaults to false. This avoids mandating ifTable overhead for all tunnels while enabling full interface-based management (counters, admin/oper status via ifTable) for those where it is useful.
mplsTunnelTable does not directly define the in-segments and out-segments of a tunnel; instead it uses a RowPointer (mplsTunnelXCPointer) into the mplsXCTable defined in RFC 3813. This separates TE-level tunnel configuration from the lower-level label binding and cross-connect management.
Multiple tunnels may share a single mplsTunnelResourceTable entry by pointing to the same mplsTunnelResourceIndex. An entry referenced by a zero-instance tunnel holds configured parameters; an entry referenced by a non-zero instance reflects in-use parameters that may have been negotiated by the signaling protocol.
Three distinct hop tables are maintained for each tunnel: configured hops (mplsTunnelHopTable), CSPF-computed hops (mplsTunnelCHopTable), and signaling-reported actual hops (mplsTunnelARHopTable). This separation allows operators to compare the requested path, the computed path, and the path actually established by the signaling protocol.
mplsTunnelCRLDPResTable is a sparse extension to mplsTunnelResourceTable providing CR-LDP-specific parameters (excess burst size, frequency, weight). It is indexed by the same mplsTunnelResourceIndex and may be supported only by implementations that implement the CR-LDP signaling protocol.
mplsTunnelHopAddrType lspid(5) is valid only for tunnels signaled via CR-LDP; when set, mplsTunnelHopLspId contains the LSPID of a nested tunnel, enabling label stacking. For unnumbered interfaces, mplsTunnelHopAddrUnnum holds the interface identifier while mplsTunnelHopIpAddr holds the LSR Router ID.
When mplsTunnelIsIf is true, ifName of the resulting interface SHOULD equal mplsTunnelName, and the tunnel description in mplsTunnelDescr MAY be absent or auto-generated at transit and egress LSRs because it is not signaled by MPLS protocols.
For interfaces operating 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 and 64-bit octet counters MUST be supported. For interfaces at 650 Mbps or faster, 64-bit packet counters AND 64-bit octet counters MUST be supported.
mplsTunnelRole MUST be set to head(1) at the originating point, MUST be set to transit(2) at transit points (if supported), and MUST be set to tail(3) at the terminating point (if supported).
mplsTunnelTotalUpTime MUST return a value of 0 if the aggregate up time across all instances of the tunnel is unavailable.
RowPointer objects mplsTunnelXCPointer and mplsTunnelResourcePointer MUST point to the first instance of the first accessible columnar object in the target conceptual row. A value of zeroDotZero indicates no LSP (for XCPointer) or best-effort treatment (for ResourcePointer).
When a tunnel row is in active(1) state, no objects in that row can be modified except mplsTunnelAdminStatus, mplsTunnelRowStatus, and mplsTunnelStorageType. Similarly, active hop rows restrict modification to mplsTunnelHopRowStatus and mplsTunnelHopStorageType.
When creating rows in mplsTunnelHopTable or mplsTunnelResourceTable, the agent MUST verify that the proposed index value is still unused at SET time. If a concurrent manager already claimed it, the SET MUST fail and the manager must re-read the NextFree scalar to obtain a new value.
When the MPLS signaling protocol is rsvp(2), mplsTunnelIndex SHOULD equal the Tunnel Id of the RSVP Session object, and mplsTunnelInstance SHOULD equal the LSP Id of the Sender Template object. For crldp(3), mplsTunnelIndex SHOULD equal the CR-LDP LSP ID.
mplsTunnelARHopTable records the actual hops traversed by a tunnel as reported by the MPLS signaling protocol after setup. Support is optional since not all signaling protocols record the actual route; all columns are read-only and contents may change during re-routing.
mplsTunnelCHopTable lists the hops computed by a constraint-based routing (CSPF) engine based on mplsTunnelHopTable. Support is optional and all entries are read-only; at transit LSRs it contains computed hops for the downstream portion of the tunnel.
mplsTunnelHopTable specifies the configured strict or loose hops for a signaled MPLS tunnel, indexed by hop-list, path-option, and hop. mplsTunnelHopEntryPathComp selects between dynamic (CSPF-computed, source and destination only) and explicit (full path specified) computation modes.
mplsTunnelResourceTable specifies the traffic parameters for a tunnel: maximum rate, mean rate, maximum burst size, mean burst size, excess burst size, frequency (unspecified/frequent/veryFrequent), and weight. Multiple tunnels may share a single resource entry by pointing to the same mplsTunnelResourceIndex.
mplsTunnelRole designates each tunnel entry's function: head(1) at the originating LSR, transit(2) at intermediate LSRs, tail(3) at the terminating LSR, or headTail(4) when the tunnel begins and ends on the same LSR. This value must be set at row creation.
mplsTunnelSessionAttributes is a BITS field encoding five optional session behaviors: fastReroute(0) permits local repair without tearing down the tunnel, mergingPermitted(1) allows session merging for scalability, isPersistent(2) enables auto-restoration after failure, isPinned(3) pins loose hops, and recordRoute(4) requests path recording by the signaling protocol.
The mplsTunnelTable is the central table for creating, reconfiguring, and removing MPLS TE tunnels. Only point-to-point tunnel segments are supported; each tunnel can have one out-segment originating at the LSR and/or one in-segment terminating at it. Tunnel entries are uniquely identified across an MPLS network by the four-part index: mplsTunnelIndex, mplsTunnelInstance, mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId.
Three affinity (administrative group) constraint objects on each tunnel entry control link selection during path computation: mplsTunnelIncludeAnyAffinity (link must share at least one group, or constraint is zero), mplsTunnelIncludeAllAffinity (link must contain all specified groups), and mplsTunnelExcludeAnyAffinity (link must contain none of the specified groups).
When mplsTunnelIsIf is true, the tunnel is represented in ifTable with ifType mplsTunnel(150). The interface stack places the MPLS tunnel interface above the MPLS interface (ifType mpls(166)), which sits above the underlying layer (ATM, Frame Relay, Ethernet, etc.).
The MPLS-TE-STD-MIB module is assigned OID { mplsStdMIB 3 } under the MPLS Standards MIB subtree. The module defines the mplsTeNotifications, mplsTeScalars, mplsTeObjects, and mplsTeConformance subtrees.
The MIB module contains numerous read-create and read-write objects (tunnel parameters, hop lists, resource allocations) that could be exploited to misconfigure or disrupt MPLS tunnel operations. SNMP implementations MUST use protocols offering message authentication and integrity, and SHOULD employ encryption, to protect writable objects from unauthorized modification.
mplsTunnelOperStatus defines seven operational states: up(1), down(2), testing(3), unknown(4), dormant(5), notPresent(6) when a component is missing, and lowerLayerDown(7) when down due to a lower-layer interface. mplsTunnelAdminStatus controls desired state with up(1), down(2), or testing(3). mplsTunnelStateTransitions counts the number of OperStatus changes.