Generalized Multiprotocol Label Switching (GMPLS) Traffic Engineering Management Information Base
Extracted elements (29)
GMPLS labels may exceed 32 bits or be composed of multiple sub-fields, so the MIB uses a dual-representation pattern: if a RowPointer companion object is zeroDotZero, the label is encoded in the adjacent Unsigned32 field; otherwise the RowPointer indicates a row in the gmplsLabelTable of GMPLS-LABEL-STD-MIB. This provides backward compatibility with legacy MPLS-TE-STD-MIB systems while accommodating complex GMPLS label types.
The gmplsTunnelAdminStatusFlags object can be modified while the corresponding mplsTunnelRowStatus and mplsTunnelAdminStatus are active(1), as an exception to the general rule that rows may not be modified while active. This allows in-service administrative status changes to trigger new signaling messages without tearing down the tunnel.
Three gmplsTunnelTable objects (LSPEncoding, SwitchingType, GPid) use IANA-maintained textual conventions (IANAGmplsLSPEncodingTypeTC, IANAGmplsSwitchingTypeTC, IANAGmplsGeneralizedPidTC) rather than locally defined enumerations, in order to protect GMPLS-TE-STD-MIB from requiring updates whenever the signaling protocol adds new enumeration values.
LSRs can migrate from MPLS-TE-STD-MIB to GMPLS-TE-STD-MIB by adding support for the additional tables and objects; no removal of MPLS-TE-STD-MIB support is required. Setting gmplsTunnelLSPEncoding to 'tunnelLspNotGmpls' allows an MPLS-TE LSP to benefit from the extended GMPLS MIB objects without supporting GMPLS signaling protocols.
An implementation MUST only issue one of mplsTunnelDown and gmplsTunnelDown for any single event on a single tunnel. If the tunnel has an entry in the gmplsTunnelTable, an implementation SHOULD use gmplsTunnelDown for all tunnel-down events and SHOULD NOT use mplsTunnelDown.
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 MUST be supported 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.
If the gmplsTunnelUpstreamNotifyRecipient (or SendResv, Downstream, SendPath variants) is set to 0, the corresponding address type object MUST be set to unknown(0). This constraint applies to all four Notify recipient address pairs in gmplsTunnelEntry.
Systems that read the gmplsTunnelErrorTable objects one at a time (non-atomic row reads) should read gmplsTunnelErrorLastTime before and after reading the other objects in the row, and verify the timestamp did not change, to ensure all data belongs to the same error event.
The gmplsTunnelDown notification is subject to mplsTunnelNotificationEnable; when that object is false(2), the notification must not be issued. It is also subject to mplsTunnelNotificationMaxRate, which limits notifications per second across both MPLS-TE-STD-MIB and GMPLS-TE-STD-MIB.
When an entry is present in the gmplsTunnelTable for a tunnel, gmplsTunnelPathComp MUST be used and the corresponding mplsTunnelHopEntryPathComp object in the mplsTunnelHopTable MUST be ignored and SHOULD NOT be set.
Scalar objects gmplsTunnelsConfigured (Gauge32) and gmplsTunnelsActive (Gauge32) report the number of GMPLS tunnels with active mplsTunnelRowStatus and the number with mplsTunnelOperStatus of up(1), respectively. These are mandatory objects in the gmplsTunnelScalarGroup.
The gmplsTunnelARHopLabelStatuses bitmask includes forwardPresent(0), reversePresent(1), forwardGlobal(2), and reverseGlobal(3) bits. The Global bits distinguish Global Label Space from Per-Interface labels; a Global bit is only meaningful when the corresponding Present bit is set.
The gmplsTunnelARHopTable sparsely extends the mplsTunnelARHopTable to report the actual labels in use on each hop as reported by the signaling protocol after tunnel setup. Implementation is optional because not all GMPLS signaling protocols report actual route information. All objects are read-only.
The gmplsTunnelCHopTable sparsely extends the mplsTunnelCHopTable to report labels computed by a constraint-based routing algorithm based on the gmplsTunnelHopTable. Implementation is optional; all objects are read-only and populated by the path computation component.
The gmplsTunnelDown notification is generated when a GMPLS tunnel's mplsTunnelOperStatus transitions to down(2) from any state other than notPresent. It includes mplsTunnelAdminStatus, mplsTunnelOperStatus, gmplsTunnelErrorLastErrorType, gmplsTunnelErrorReporterType, gmplsTunnelErrorReporter, gmplsTunnelErrorCode, and gmplsTunnelErrorSubcode to convey the failure cause.
The gmplsTunnelErrorTable augments the mplsTunnelTable and provides per-tunnel error information including error type (noError, unknown, protocol, pathComputation, localConfiguration, localResources, localOther), timestamp, reporter address, error code, subcode, interface identifier TLVs, and a human-readable help string. Entries are not persistent across system resets.
The gmplsTunnelExtraParamsPtr (RowPointer, default zeroDotZero) in gmplsTunnelEntry allows technology-specific additional parameters (e.g., SONET resource usage) to be supplied in an external table and referenced from the tunnel entry. A zeroDotZero value indicates no additional parameters.
The gmplsTunnelHopTable sparsely extends the mplsTunnelHopTable to provide explicit forward and reverse label specifications for each hop of a signaled GMPLS tunnel. It does not add new hops, only augments existing hop entries with GMPLS-specific label information via gmplsTunnelHopExplicitForwardLabel/Ptr and gmplsTunnelHopExplicitReverseLabel/Ptr.
The gmplsTunnelLinkProtection bitmask specifies required link protection for an LSP, with six defined bits: extraTraffic(0), unprotected(1), shared(2), dedicatedOneToOne(3), dedicatedOnePlusOne(4), and enhanced(5). A zero value indicates any protection type is acceptable. Only meaningful when gmplsTunnelLSPEncoding is not 'tunnelLspNotGmpls'.
The gmplsTunnelLSPEncoding object (IANAGmplsLSPEncodingTypeTC) specifies the encoding type of the LSP being requested. Setting it to 'tunnelLspNotGmpls' signals that GMPLS signaling is not in use, allowing MPLS systems to use the extended MIB objects without enabling GMPLS. The default is 'tunnelLspNotGmpls'.
The gmplsTunnelPathComp object governs how source-route path computation is performed: dynamicFull(1) means CSPF computes the full path, explicit(2) means the user provides the entire path, and dynamicPartial(3) means CSPF partially computes the path with the remainder filled in hop-by-hop. Default is dynamicFull.
The gmplsTunnelReversePerfTable augments the gmplsTunnelTable to provide packet and byte performance counters for the reverse direction of bidirectional GMPLS tunnels. It includes 32-bit (gmplsTunnelReversePerfPackets, gmplsTunnelReversePerfBytes, gmplsTunnelReversePerfErrors) and 64-bit (gmplsTunnelReversePerfHCPackets, gmplsTunnelReversePerfHCBytes) counters. Objects return noSuchInstance for links that do not transport packets.
The gmplsTunnelTable sparsely extends the mplsTunnelTable of MPLS-TE-STD-MIB to allow GMPLS tunnels to be created, reconfigured, or removed between an LSR and a remote endpoint. It is indexed by mplsTunnelIndex, mplsTunnelInstance, mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId. Row creation and modification are controlled by the corresponding mplsTunnelRowStatus.
GMPLS-TE-STD-MIB is assigned OID mplsStdMIB 13 under the IANA-managed mplsStdMIB arc. The MIB depends on IANA-GMPLS-TC-MIB, which provides IANAGmplsLSPEncodingTypeTC, IANAGmplsSwitchingTypeTC, IANAGmplsGeneralizedPidTC, and IANAGmplsAdminStatusInformationTC textual conventions maintained by IANA.
The IANA-GMPLS-TC-MIB module defines and maintains four textual conventions used by GMPLS MIBs: IANAGmplsLSPEncodingTypeTC (LSP encoding types), IANAGmplsSwitchingTypeTC (switching capability types), IANAGmplsGeneralizedPidTC (generalized payload identifiers), and IANAGmplsAdminStatusInformationTC (administrative status flags). IANA is requested to maintain these registries.
The GMPLS-TE-STD-MIB module contains read-write and read-create objects that can be used to configure tunnels, and their misuse could have a network-disruptive effect. SNMPv3 with authentication and privacy (authPriv security level) is RECOMMENDED for all SNMP access to these MIB modules to prevent unauthorized configuration changes.
The gmplsTunnelErrorTable and gmplsTunnelReversePerfTable expose operational state and error details that could be used by an attacker to infer network topology or traffic patterns. Read-only access to these tables should be restricted using SNMPv3 access control to prevent information leakage.
Explicit forward and reverse labels in gmplsTunnelHopTable, gmplsTunnelARHopTable, and gmplsTunnelCHopTable are encoded as Unsigned32 (32-bit integer) when the companion RowPointer is zeroDotZero. For labels exceeding 32 bits or with complex sub-field structure, the RowPointer references a row in the gmplsLabelTable of GMPLS-LABEL-STD-MIB.
The gmplsTunnelErrorTLVs object is an OCTET STRING of SIZE(0..65535) carrying the sequence of interface identifier TLVs reported with a signaling error, as defined in RFC 3473 section 8.2. A zero value in the first octet indicates no TLVs are present.