Prerequisites for MPLS-TP MIB
-
General knowledge of SNMP
-
Software used to query Cisco devices via SNMP
The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
The Multiprotocol Label Switching Transport Profile (MPLS-TP) allows you to meet your transport requirements as those requirements evolve from Synchronous Optical Networking (SONET) and Synchronous Digital Hierarchy (SDH) time-division multiplexing (TDM) technologies to MPLS and Ethernet technologies. Currently, a strong momentum for MPLS-TP in terms of both rapid standards development and increasing market demand exists. MPLS-TP technologies have been recently requested by multiple service providers for packet transport primarily in the aggregation networks and access networks while the core network remains MPLS (MPLS-TP is being considered for core transport as well by one or two providers). Service providers aim at using MPLS-TP to support the following deployment scenarios: Ethernet services, mobile backhaul, Asynchronous Transfer Mode (ATM) aggregation replacement, video transport, and long haul transport.
MPLS TP MIB allows you to poll MPLS-TP configured nodes via Simple Network Management Protocol (SNMP) and monitor and manage the MPLS-TP network.
General knowledge of SNMP
Software used to query Cisco devices via SNMP
MPLS-TP MIB doesn’t specify any traps for TP and thus no trap support is provided.
The MPLS-TP MIB module supports point-to-point, co-routed bi-directional tunnels.
MPLS-TP MIB is part of the SNMP process. The MIB interacts with MPLS-TP functions to get the data required for objects and indices.
The following MIBs are implemented:
CISCO-MPLS-TC-EXT-STD-MIB
CISCO-MPLS-ID-STD-MIB
CISCO-MPLS-LSR-EXT-STD-MIB
CISCO-MPLS-TE-EXT-STD-MIB
This MIB module contains textual conventions for MPLS-based transport networks.
Textual Convention |
Description (from IETF draft) |
MplsGlobalId |
This object contains the textual convention of the operator unique identifier (Global_ID). The Global_ID can contain the 2-octet or 4-octet value of the operator's Autonomous System Number (ASN). When the Global_ID is derived from a 2-octet AS number, the two high-order octets of this 4-octet identifier MUST be set to zero. ASN 0 is reserved. A Global_ID of zero means that no Global_ID is present. |
MplsNodeId |
The Node_ID is assigned within the scope of the Global_ID. The value 0 (or 0.0.0.0 in dotted decimal notation) is reserved and MUST NOT be used. When IPv4 addresses are in use, the value of this object can be derived from the LSR's /32 IPv4 loop back address. |
MplsLocalId |
This textual convention is used in accommodating the bigger size Global_Node_ID and/or ICC with lower size LSR identifier in order to index mplsTunnelTable. The Local Identifier is configured between 1 and 16777215, as the valid IP address range starts from 16777216 (01.00.00.00). This range is chosen to identify the mplsTunnelTable's Ingress/Egress. LSR-id is the IP address or local identifier. If the configured range is not an IP address, the administrator is expected to retrieve the complete information (Global_Node_ID) from mplsNodeConfigTable. This way, the existing mplsTunnelTable is reused for bidirectional tunnel extensions for MPLS-based transport networks. |
This MIB module contains generic object definitions for MPLS Traffic Engineering in transport networks.
Object |
Description (from IETF draft) |
mplsGlobalId |
This object allows the administrator to assign a unique operator identifier also called MPLS-TP Global_ID. |
mplsNodeId |
This object allows the operator or service provider to assign a unique MPLS-TP Node_ID. The Node_ID is assigned within the scope of the Global_ID. |
At the endpoints. For each tunnel, there is one entry for mplsOutSegmentTable [RFC 3813] showing the outsegment label and one entry for mplsInSegmentTable [RFC 3813] for the working LSP. Similarly, an entry is shown to the protected LSP. The assumption is that both working and protected LSPs are configured. If only one working LSP and one protected LSP is configured, the entries are displayed accordingly. There are 2 entries per tunnel for mplsXCTable [RFC 3813] for a working LSP and similarly to a protected LSP.
At the midpoints. For a co-routed bidirectional tunnel, a midpoint has forward and reverse LSPs configured. Thus, there are a pair of mplsInSegmentTable and mplsOutSegmentTable entries for the forward LSP and a pair of mplsInSegmentTable and mplsOutSegmentTable entries for the reverse LSP. If the working and protected LSPs are configured then the above listed entries are shown for both protected and working LSPs. For mplsXCTable, there are two entries—one for the forward LSP and one for the reverse LSP. If the config has working and protected LSPs configured, then the above listed mplsXCTable entries are shown for both protected and working LSPs.
|----| |----||----||----||----| |----|
FPI = 3 Tunnel-id LSP_ident
![]() Note |
equals 1 byte.
|
|----| |----||----||----||----|
FPI = 0 Label
mplsXCOutSegmentIndex is the same as mplsOutSegmentIndex, which is the same as mplsXCIndex plus moi_index. The last two bytes in mplsOutSegmentIndex contain the MOI list index.
A new cfc_mpls_cp_lsrmib_rfc_get_tp_label_id MIB function will be created for the MIB team to fetch TP-related data.
Object |
Value and function used to get the value |
mplsOutSegmentTable |
|
mplsOutSegmentIndex |
This object contains the outsegment index as explained above. The cfc_mpls_cp_lsrmib_rfc_get_outseg_entry function is used to get this value. |
mplsOutSegmentInterface |
This object contains the outsegment interface that comes from the IDB. The cfc_mpls_cp_lsrmib_rfc_get_outseg_entry function is used to get this value. |
mplsOutSegmentPushTopLabel |
This object is set to D_mplsOutSegmentPushTopLabel_true. |
mplsOutSegmentTopLabel |
The lsrmib_get_top_label function is used to get this value. |
mplsOutSegmentTopLabelPtr |
Set to 0.0. |
mplsOutSegmentNextHopAddrType |
The value of mfi_out_info.nh.type provides the value of this object. |
mplsOutSegmentNextHopAddr |
The value of mfi_out_info.nh.ip_addr provides the value of this object. |
mplsOutSegmentXCIndex |
This object contains mplsXCIndex from mplsXCTable. The cfc_mpls_cp_lsrmib_rfc_get_xc_search_indices function is used to get this value. |
mplsOutSegmentOwner |
Will add a new a macro: LSRMIB_MPLS_FPI_IF4 and this will map to D_mplsOutSegmentOwner_tp. |
mplsOutSegmentTrafficParamPtr |
Always set to 0.0. |
mplsOutSegmentRowStatus |
D_mplsOutSegmentRowStatus_active |
mplsOutSegmentStorageType |
D_mplsInSegmentStorageType_volatile |
mplsOutSegmentPerfTable |
|
mplsOutSegmentPerfOctets |
mfi_out_info.bytes |
mplsOutSegmentPerfPackets |
mfi_out_info.packets |
mplsOutSegmentPerfErrors |
mfi_out_info.errors |
mplsOutSegmentPerfDiscards |
mfi_out_info.discards |
mplsOutSegmentPerfHCOctets |
Get from MFI. |
mplsOutSegmentPerfDiscontinuityTime |
lsrmib_get_discontinuity_time() |
mplsInSegmentTable |
|
mplsInSegmentIndex |
This object contains the insegmen index as explained above. The lsrmib_get_in_label_id function is used to get the value. |
mplsInSegmentInterface |
This is set to 0. |
mplsInSegmentLabel |
lsrmib_get_in_label_id function is used. |
mplsInSegmentLabelPtr |
Always set to 0.0. |
mplsInSegmentNPop |
Set to default value 1. |
mplsInSegmentAddrFamily |
Set to D_mplsInSegmentAddrFamily_ipV4. |
mplsInSegmentXCIndex |
This object contains mplsXCIndex. The cfc_mpls_cp_lsrmib_rfc_mfi_info_to_xc function is used to get this value. |
mplsInSegmentOwner |
D_mplsInSegmentOwner_other |
mplsInSegmentTrafficParamPtr |
0.0 |
mplsInSegmentRowStatus |
D_mplsInSegmentRowStatus_active |
mplsInSegmentStorageType |
D_mplsInSegmentStorageType_volatile |
mplsInSegmentPerfTable |
|
mplsInSegmentPerfOctets |
mfi_out_info.bytes |
mplsInSegmentPerfPackets |
mfi_out_info.packets |
mplsInSegmentPerfErrors |
mfi_out_info.errors |
mplsInSegmentPerfDiscards |
mfi_out_info.discards |
mplsInSegmentPerfHCOctets |
Get from MFI. |
mplsInSegmentPerfDiscontinuityTime |
lsrmib_get_discontinuity_time() |
mplsXCTable |
|
mplsXCIndex |
cfc_mpls_cp_lsrmib_rfc_get_xc_search_indices function is used to get this value. |
mplsXCInSegmentIndex |
cfc_mpls_cp_lsrmib_rfc_get_xc_search_indices function is used to get this value. |
mplsXCOutSegmentIndex |
cfc_mpls_cp_lsrmib_rfc_get_xc_search_indices function is used to get this value. |
mplsXCLSPId |
cfc_mpls_cp_lsrmib_rfc_get_xc_search_indices is used to get this value. |
mplsXCLabelStackIndex |
This object contains the octet string 0.0. which indicates that no labels are to be stacked beneath the top label. |
mplsXCOwner |
RFC LSR MIB doesn't provide a specific value for TP. Thus, D_mplsXCOwner_other is used to fetch this value. |
mplsXCRowStatus |
Set to D_mplsXCRowStatus_active. |
mplsXCStorageType |
Set to D_mplsXCStorageType_volatile. |
mplsXCAdminStatus |
Set to D_mplsXCAdminStatus_up. |
mplsXCOperStatus |
Set to D_mplsXCOperStatus_up. |
Midpoint. At the midpoint there are 2 entries, one for the forward LSP and one for the reverse LSP. If both working and protected LSPs are configured, then there will be 2 entries for each of the LSPs.
Endpoint. At the endpoint there are two entries in mplsXCExtTunnelPointer. If both working and protected LSPs are configured, then there will be 2 entries for each LSP.
Object |
Description |
Value and function used to get the value |
mplsXCExtTunnelPointer |
This object indicates the back pointer to the tunnel entry segment. This object cannot be modified if mplsXCRowStatus for the corresponding entry in the mplsXCTable is active(1). |
Both the entries (per tunnel) point to the same tunnel entry. A new function to fetch this information from TP will be created. At the endpoint, the MIB code provides the tunnel number and the LSP identifier (working/protected) and expects in return from the TP the other two tunnel indices—the local ID for the source and the local ID for the destination of this tunnel. At midpoint, the MIB code provides the incoming label and expects the TP to return the unique tunnel entry that provides the tunnel index, LSP instance, source-local-id, and destination-local-id. |
mplsXCOppositeDirXCPtr |
This object indicates the pointer to the opposite direction XC entry. This object cannot be modified if mplsXCRowStatus for the corresponding entry in the mplsXCTable is active(1). |
For the endpoint, there are two entries for this object. At the endpoint, the entry that represents the outgoing segment contains the mplsXCLspId entry that corresponds to the reverse direction in-label. The entry that corresponds to the in-label contains the mplsXCLspId representing the outgoing segment (so, in essence, contains the indices with FPI type 3 for the TP tunnel). For the midpoint, there are two entries for this object. Each entry contains the mplsXCLspId representing the reverse direction in-label. |
mplsTunnelTable from MPLS-TE-STD-MIB shows TP tunnel entries. For details on object description, refer to RFC 3812. Protected LSP is assumed to be configured for every working LSP.
TP configuration allows partial configuration. If an LSP is partially configured where destination node-id/global ID is not specified, then the local-id is set to 0.
Endpoint. mplsTunnelTable has one entry per LSP.
Midpoint. For the working LSP, mplsTunnelTable has one entry for the forward LSP and one entry for the reverse LSP. Similarly, if the protected LSP is configured, entries for the protected LSP are shown.
Object |
Value and function used to get the value |
mplsTunnelIndex |
At an endpoint, mplsTunnelIndex contains the source tunnel number. At a midpoint, the mplsTunnelIndex contains the source tunnel number for the forward LSP and the destination tunnel number for the reverse LSP. |
mplsTunnelInstance |
This contains the LSP number. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelIngressLSRId |
At an endpoint, this contains the value of mplsNodeConfigLocalId for the source of the tunnel. At a midpoint, it stores the mplsNodeConfigLocalId for the source of the tunnel for the forward LSP and mplsNodeConfigLocalId for the destination of the reverse LSP. This value ranges between 1 and 16777215. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelEgressLSRId |
At an endpoint, this contains the value of mplsNodeConfigLocalId for the destination node of the tunnel. At a midpoint, it stores the mplsNodeConfigLocalId for the destination of the tunnel for the forward LSP and mplsNodeConfigLocalId for the source of the tunnel for the reverse LSP. This value ranges between 1 and 16777215. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelName |
This contains the tunnel name, applicable at both endpoint and midpoint. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelDescr |
This contains the tunnel description. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelIsIf |
This is always true because the TP tunnel is always an interface. |
mplsTunnelIfIndex |
This contains the tunnel ifindex. The tp_get_tunnel_detail function provides the IF number. The interface number can be used to get the interface index. |
mplsTunnelOwner |
This is set to D_mplsTunnelOwner_other. |
mplsTunnelRole |
The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelXCPointer |
The cfc_mpls_cp_lsrmib_rfc_make_XC_pointer function is used. |
mplsTunnelSignallingProto |
None(1). The MPLS TP implementation on Cisco IOS does not have a control plane and there is no signaling protocol. |
mplsTunnelSetupPrio |
0. By default, MPLS TP LSPs have 0 priority. |
mplsTunnelHoldingPrio |
0. By default, MPLS TP LSPs have 0 priority. |
mplsTunnelSessionAttributes |
N/A. 0. |
mplsTunnelLocalProtectInUse |
This object indicates whether a protected LSP is being used. The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelResourcePointer |
0.0. Not supported. |
mplsTunnelPrimaryInstance |
This is used to indicate the LSP number of the working LSP. If the working LSP is not configured, then this shows a default value of 0. |
mplsTunnelInstancePriority |
N/A. 0. |
mplsTunnelHopTableIndex |
N/A. 0. |
mplsTunnelPathInUse |
N/A. 0. |
mplsTunnelARHopTableIndex |
N/A. 0. |
mplsTunnelCHopTableIndex |
N/A. 0. |
mplsTunnelIncludeAnyAffinity |
N/A. 0. |
mplsTunnelIncludeAllAffinity |
N/A. 0. |
mplsTunnelTotalUpTime |
The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelInstanceUpTime |
The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelPrimaryUpTime |
The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelPathChanges |
N/A. 0. |
mplsTunnelLastPathChange |
N/A. |
mplsTunnelCreationTime |
The tp_get_tunnel_detail function is used to get this value. |
mplsTunnelStateTransitions |
N/A. 0. |
mplsTunnelAdminStatus |
At endpoint, the tp_get_tunnel_detail function is used to get this value. At midpoint, this is set to "testing(3)" as the TP does not maintain admin status at the midpoint. |
mplsTunnelOperStatus |
At endpoint, the tp_get_tunnel_detail function is used to get this value. At midpoint, this is set to "testing(3)" as the TP does not maintain oper status at the midpoint. |
mplsTunnelRowStatus |
D_mplsTunnelRowStatus_active |
mplsTunnelStorageType |
D_mplsTunnelStorageType_readOnly |
mplsTunnelPerfTable: This counter is not supported. |
This MIB module contains generic object definitions for MPLS Traffic Engineering in transport networks.
Object |
Description (as IETF draft defines it) |
Value and function used to get the value |
mplsNodeConfigTable |
||
mplsNodeConfigLocalId |
This object allows the administrator to assign a unique local identifier to map Global_Node_ID. |
This table is used to represent a node in a TP network. This object provides a unique local value for the node. The value of this object lies between 1 and 16777215. The TP provides a new tp_get_node_detail function. This is used to get this object’s value. |
mplsNodeConfigGlobalId |
This object indicates the Global Operator Identifier. |
This maps to the mpls_tp_global_id_t global_id field of the TP data structure. tp_get_node_detail is used to get this object's value. |
mplsNodeConfigNodeId |
This object indicates the Node_ID within the operator. This object value should be zero when mplsNodeConfigIccId is configured with non-null value. |
This object maps to mpls_tp_node_id_t node_id field of TP data structure. The tp_get_node_detail function is used to get this object's value. |
mplsNodeConfigIccId |
This object allows the operator or service provider to configure a unique MPLS-TP ITU-T Carrier Code (ICC) either for Ingress ID or Egress ID. This object value should be zero when mplsNodeConfigGlobalId and mplsNodeConfigNodeId are assigned with a non-zero value. |
This object is set to 0. Cisco IOS implementation only supports IP-compatible implementation. |
mplsNodeConfigRowStatus |
This object allows the administrator to create, modify, and/or delete a row in this table. |
This is set to 'active'. |
mplsNodeConfigStorageType |
This variable indicates the storage type for this object. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row. |
This is set to 'readonly' because write access to any object is not allowed. |
mplsNodeIpMapTable: This table is indexed by mplsNodeIpMapNodeId and mplsNodeIpMapLocalId |
||
mplsNodeIpMapGlobalId |
This object indicates the Global_ID. |
The tp_get_node_detail function is used to get this object's value. |
mplsNodeIpMapNodeId |
This object indicates the Node_ID within the operator. |
The tp_get_node_detail function is used to get this object's value. |
mplsNodeIpMapLocalId |
This object contains an IP compatible local identifier that is defined in mplsNodeConfigTable. |
The tp_get_node_detail function is used to get this object's value. |
mplsTunnelExtTable : The indices of this table are the same as mplsTunnelTable (RFC 3812) |
||
mplsTunnelOppositeDirPtr |
This object is applicable only for the bidirectional tunnel that has the forward and reverse LSPs in the same tunnel or in different tunnels. This object holds the opposite direction tunnel entry if the bidirectional tunnel is set up by configuring two tunnel entries in mplsTunnelTable. The value of zeroDotZero indicates single tunnel entry is used for bidirectional tunnel setup. |
Because only one entry per tunnel per LSP for mplsTunnelTable is shown, this object will contain the value 0.0. |
mplsTunnelReversePerfTable: This counter is not supported. |
||
mplsNodeIccMapTable: Because only IP-compatible implementation of the TP is supported, this table is not supported. |
A generic SNMP configuration automatically enables MPLS-TP MIB. However, the MPLS TP feature must be configured. See the MPLS Transport Profile document for more information.
You should perform the following generic SNMP configuration tasks:
Enabling the SNMP agent (required)
Verifying the status of the SNMP agent (optional)
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
show running-config Example:
|
Displays the running configuration of the router so that you can determine if an SNMP agent is already running on the device. If no SNMP information is displayed, continue with the next step. If any SNMP information is displayed, you can modify the information or change it as desired. |
Step 3 |
configure terminal Example:
|
Enters global configuration mode. |
Step 4 |
snmp-server community string [view view-name] [ro | rw][ number] Example:
|
Configures read-only (ro) community strings for the MPLS-TP MIB.
|
Step 5 |
end Example:
|
Exits to privileged EXEC mode. |
Step 6 |
write memory Example:
|
Writes the modified SNMP configuration into NVRAM of the router, permanently saving the SNMP settings. |
Step 7 |
show running-config Example:
|
Displays the running configuration of the router so that you can determine if an SNMP agent is already running on the device. If you see any snmp-server statements, SNMP has been enabled on the router. If any SNMP information is displayed, you can modify the information or change it as desired. |
To verify that the SNMP agent has been enabled on a host network device, perform the steps shown in the following table:
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
show running-config Example:
|
Displays the running configuration on the target device. |
The following example shows how to enable an SNMP agent on a host network device.
Device# config terminal
Device(config)# snmp-server community
The following example shows how to enable SNMPv1 and SNMPv2C. The configuration permits any SNMP agent to access all MPLS TP MIB objects with read-only permissions using the community string public.
Device(config)# snmp-server community public
The following example shows how to allow read-only access to all MPLS TP MIB objects relating to members of access list 4 that specify the comaccess community string. No other SNMP agents will have access to any MPLS TP MIB objects.
Device(config)# snmp-server community comaccess ro 4
The following example shows how to verify the status of the SNMP agent.
Device# show running-config
...
...
snmp-server community public RO
snmp-server community private RO
Any snmp-server statement that appears in the output and which takes the form shown above verifies that SNMP has been enabled on that device.
Related Topic |
Document Title |
---|---|
Cisco IOS commands |
|
MPLS commands |
|
MPLS Transport Profile configuration document |
Standard/RFC |
Title |
---|---|
draft-ietf-mpls-tp-te-mib-02.txt |
MPLS-TP Traffic Engineering (TE) Management Information Base (MIB) |
Description |
Link |
---|---|
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password. |
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Feature Name |
Releases |
Feature Information |
---|---|---|
MPLS-TP MIB |
15.3(1)S XE 3S |
Allows you to meet your transport requirements as those requirements evolve from Synchronous Optical Networking (SONET) and Synchronous Digital Hierarchy (SDH) time-division multiplexing (TDM) technologies to MPLS and Ethernet technologies. |