    Internet Engineering Task Force (IETF)                     M. Venkatesan
    Request for Comments: 7453                                     Dell Inc.
    Category: Standards Track                                     K. Sampath
    ISSN: 2070-1721                                                   Redeem
                                                                   S. Aldrin
                                                         Huawei Technologies
                                                                   T. Nadeau
                                                                     Brocade
                                                               February 2015

           MPLS Transport Profile (MPLS-TP) Traffic Engineering (TE)
                       Management Information Base (MIB)

    Abstract

       This memo defines a portion of the Management Information Base (MIB)
       for use with network management protocols in the Internet community.
       In particular, it describes additional managed objects and textual
       conventions for tunnels, identifiers, and Label Switching Routers to
       support Multiprotocol Label Switching (MPLS) MIB modules for
       transport networks.

    Status of This Memo

       This is an Internet Standards Track document.

       This document is a product of the Internet Engineering Task Force
       (IETF).  It represents the consensus of the IETF community.  It has
       received public review and has been approved for publication by the
       Internet Engineering Steering Group (IESG).  Further information on
       Internet Standards is available in Section 2 of RFC 5741.

       Information about the current status of this document, any errata,
       and how to provide feedback on it may be obtained at
       http://www.rfc-editor.org/info/rfc7453.

    Venkatesan, et al.           Standards Track                    [Page 1]

    RFC 7453                       MPLS-TP MIB                 February 2015

    Copyright Notice

       Copyright (c) 2015 IETF Trust and the persons identified as the
       document authors.  All rights reserved.

       This document is subject to BCP 78 and the IETF Trust's Legal
       Provisions Relating to IETF Documents
       (http://trustee.ietf.org/license-info) in effect on the date of
       publication of this document.  Please review these documents
       carefully, as they describe your rights and restrictions with respect
       to this document.  Code Components extracted from this document must
       include Simplified BSD License text as described in Section 4.e of
       the Trust Legal Provisions and are provided without warranty as
       described in the Simplified BSD License.

    Table of Contents

       1. Introduction ....................................................4
       2. The Internet-Standard Management Framework ......................5
       3. Overview ........................................................5
          3.1. Conventions Used in This Document ..........................5
          3.2. Terminology ................................................6
          3.3. Acronyms ...................................................6
       4. Motivations .....................................................6
       5. Feature List ....................................................7
       6. Outline .........................................................7
          6.1. MIB Module Extensions ......................................8
               6.1.1. Summary of MIB Module Changes .......................8
          6.2. MPLS-TE-EXT-STD-MIB ........................................9
               6.2.1. mplsTunnelExtNodeConfigTable ........................9
               6.2.2. mplsTunnelExtNodeIpMapTable .........................9
               6.2.3. mplsTunnelExtNodeIccMapTable .......................10
               6.2.4. mplsTunnelExtTable .................................10
          6.3. MPLS-TC-EXT-STD-MIB .......................................10
          6.4. MPLS-ID-STD-MIB ...........................................10
          6.5. MPLS-LSR-EXT-STD-MIB ......................................11
          6.6. The Use of RowPointer .....................................11
       7. MIB Modules' Interdependencies .................................11
       8. Dependencies between MIB Module Tables .........................13
       9. Example of MPLS-TP Tunnel Setup ................................13
          9.1. Example of MPLS-TP Static Co-routed Bidirectional
               Tunnel Setup ..............................................15
               9.1.1. mplsTunnelEntry ....................................15
               9.1.2. mplsTunnelExtEntry .................................16
               9.1.3. Forward-Direction mplsOutSegmentEntry ..............16
               9.1.4. Reverse-Direction mplsInSegmentEntry ...............16
               9.1.5. Forward-Direction mplsXCEntry ......................17
               9.1.6. Reverse-Direction mplsXCEntry ......................17

    Venkatesan, et al.           Standards Track                    [Page 2]

    RFC 7453                       MPLS-TP MIB                 February 2015

               9.1.7. Forward-Direction mplsXCExtEntry ...................18
               9.1.8. Reverse-Direction mplsXCExtEntry ...................18
          9.2. Example of MPLS-TP Static Associated Bidirectional
               Tunnel Setup ..............................................18
               9.2.1. Forward-Direction mplsTunnelEntry ..................18
               9.2.2. Forward-Direction mplsTunnelExtEntry ...............19
               9.2.3. Forward-Direction mplsOutSegmentTable ..............20
               9.2.4. Forward-Direction mplsXCEntry ......................20
               9.2.5. Forward-Direction mplsXCExtEntry ...................20
               9.2.6. Reverse-Direction mplsTunnelEntry ..................21
               9.2.7. Reverse-Direction mplsTunnelExtEntry ...............22
               9.2.8. Reverse-Direction mplsInSegmentEntry ...............22
               9.2.9. Reverse-Direction mplsXCEntry ......................22
               9.2.10. Reverse-Direction mplsXCExtEntry ..................23
          9.3. Example of MPLS-TP Signaled Co-routed
               Bidirectional Tunnel Setup ................................23
               9.3.1. mplsTunnelEntry ....................................23
               9.3.2. mplsTunnelExtEntry .................................24
               9.3.3. Forward-Direction mplsOutSegmentEntry ..............24
               9.3.4. Reverse-Direction mplsInSegmentEntry ...............25
               9.3.5. Forward-Direction mplsXCEntry ......................25
               9.3.6. Reverse-Direction mplsXCEntry ......................25
               9.3.7. Forward-Direction mplsXCExtEntry ...................25
               9.3.8. Reverse-Direction mplsXCExtEntry ...................25
       10. MPLS Textual Convention Extension MIB Definitions .............26
       11. MPLS Identifier MIB Definitions ...............................29
       12. MPLS LSR Extension MIB Definitions ............................34
       13. MPLS Tunnel Extension MIB Definitions .........................39
       14. Security Considerations .......................................57
       15. IANA Considerations ...........................................58
          15.1. IANA Considerations for MPLS-TC-EXT-STD-MIB ..............58
          15.2. IANA Considerations for MPLS-ID-STD-MIB ..................58
          15.3. IANA Considerations for MPLS-LSR-EXT-STD-MIB .............58
          15.4. IANA Considerations for MPLS-TE-EXT-STD-MIB ..............59
       16. References ....................................................59
          16.1. Normative References .....................................59
          16.2. Informative References ...................................60
       Acknowledgments ...................................................62
       Authors' Addresses ................................................62

    Venkatesan, et al.           Standards Track                    [Page 3]

    RFC 7453                       MPLS-TP MIB                 February 2015

    1.  Introduction

       This memo defines a portion of the Management Information Base (MIB)
       for use with network management protocols in the Internet community.
       In particular, it describes additional textual conventions and
       managed objects for tunnels, identifiers, and Label Switching Routers
       to support Multiprotocol Label Switching (MPLS) MIB modules for
       transport networks.  MIB modules defined in this document extend the
       existing MPLS MIB objects in such a way that they support the MPLS
       Transport Profile (MPLS-TP) but also other MPLS networks.  Hence,
       "MPLS-TP" is not included in the MIB module names.

       As described in the MPLS Traffic Engineering (TE) MIB definition
       [RFC3812], MPLS traffic engineering is concerned with the creation
       and management of MPLS tunnels.  This term is a shorthand for a
       combination of one or more LSPs linking an ingress and an egress LSR.
       Several types of point-to-point MPLS tunnels may be constructed
       between a pair of LSRs A and B:

          - Unidirectional with a single LSP (say, from A to B).

          - Associated bidirectional consisting of two separately routed
            LSPs, one linking A to B and the other linking B to A.
            Together, the pair provides a single logical bidirectional
            transport path.

          - Co-routed bidirectional consisting of an associated
            bidirectional tunnel but with the second LSP from B to A
            following the reverse of the path of the LSP from A to B, in
            terms of both nodes and links.

       Tunnels may be either statically configured by management action or
       dynamically created using an LSP management protocol.

       The existing MPLS TE MIB [RFC3812] and the GMPLS TE MIB [RFC4802]
       address only a subset of the combinations of statically and
       dynamically configured tunnel types, catering to statically
       configured unidirectional tunnels together with dynamically
       configured unidirectional and co-routed bidirectional tunnels.  They
       are also restricted to two endpoint LSRs identified by IP addresses.

       The MPLS-TP TE MIB defined in this document extends the MIB modules
       defined in [RFC3812] to cover all six combinations (that is, adding
       support for statically configured associated and co-routed
       bidirectional plus dynamically configured associated bidirectional
       tunnels).  It also extends support to endpoints that have identifiers
       other than IP addresses.

    Venkatesan, et al.           Standards Track                    [Page 4]

    RFC 7453                       MPLS-TP MIB                 February 2015

       This support is provided by a suite of four MIB modules that are to
       be used in conjunction with the MIB modules defined in [RFC3812] and
       the companion document [RFC3813] for MPLS-TP tunnel management.

       At the time of writing, SNMP SET is no longer recommended as a way to
       configure MPLS networks as described in [RFC3812].  However, since
       the MIB modules specified in this document extend and are intended to
       work in parallel with the MIB modules for MPLS specified in
       [RFC3812], certain objects defined here are specified with MAX-ACCESS
       of read-write or read-create so that specifications of the base
       tables in [RFC3812] and the extensions in this document are
       consistent.  Although the examples described in Section 9 specify
       means to configure MPLS-TP Tunnels in a similar way to the examples
       in [RFC3812], this should be seen as indicating how the MIB values
       would be returned if the specified circumstances were configured by
       alternative means.

    2.  The Internet-Standard Management Framework

       For a detailed overview of the documents that describe the current
       Internet-Standard Management Framework, please refer to section 7 of
       RFC 3410 [RFC3410].

       Managed objects are accessed via a virtual information store, termed
       the Management Information Base or MIB.  MIB objects are generally
       accessed through the Simple Network Management Protocol (SNMP).
       Objects in the MIB are defined using the mechanisms defined in the
       Structure of Management Information (SMI).  This memo specifies a MIB
       module that is compliant to the SMIv2, which is described in STD 58,
       RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
       [RFC2580].

    3.  Overview

    3.1.  Conventions Used in This Document

       The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
       "OPTIONAL" in this document are to be interpreted as described in
       [RFC2119].

    Venkatesan, et al.           Standards Track                    [Page 5]

    RFC 7453                       MPLS-TP MIB                 February 2015

    3.2.  Terminology

       This document uses terminology from the "Multiprotocol Label
       Switching Architecture" [RFC3031], "Multiprotocol Label Switching
       (MPLS) Traffic Engineering (TE) Management Information Base (MIB)"
       [RFC3812], "Multiprotocol Label Switching (MPLS) Label Switching
       Router (LSR) Management Information Base (MIB)" [RFC3813], and"MPLS
       Transport Profile (MPLS-TP) Identifiers" [RFC6370].

    3.3.  Acronyms

       CC: Country Code
       ICC: ITU Carrier Code
       LSP: Label Switched Path
       LSR: Label Switching Router
       MPLS-TP: MPLS Transport Profile
       TE: Traffic Engineering
       TP: Transport Profile

    4.  Motivations

       "Multiprotocol Label Switching (MPLS) Traffic Engineering (TE)
       Management Information Base (MIB)" [RFC3812] provides support for
       Traffic Engineering tunnels.  In MPLS, the actual transport of
       packets is provided by Label Switched Paths (LSPs).  A transport
       service may be composed of multiple LSPs.  In order to clearly
       identify the MPLS-TP service, as defined in [RFC6370], we use the
       term "MPLS-TP Tunnel" or simply "tunnel".  However, with MPLS-TP, the
       characteristics of the tunnels were enhanced.  For example, MPLS-TP
       Tunnels are bidirectional in nature and could be used with non-IP
       identifiers for the tunnel endpoints.  As the existing
       MPLS-TE-STD-MIB and GMPLS-TE-STD-MIB were defined mainly to support
       unidirectional tunnels and signaled co-routed bidirectional tunnel
       definitions, respectively, these existing MIB modules are not
       sufficient to capture all the characteristics of the tunnels.  Hence,
       enhancing the MIB modules to support MPLS-TP Tunnels is required.  As
       most of the attributes of MPLS Traffic Engineering tunnels are also
       applicable to MPLS-TP Tunnels, it is optimal to reuse and extend the
       existing MIB module definition instead of defining a new MIB module.

       This document defines four additional MIB modules, namely,
       MPLS-TE-EXT-STD-MIB, MPLS-TC-EXT-STD-MIB, MPLS-ID-STD-MIB, and
       MPLS-LSR-EXT-STD-MIB.  As these additional MIB modules are required
       for MPLS-TP functionality, these are all defined in this document,
       instead of being documented separately.

    Venkatesan, et al.           Standards Track                    [Page 6]

    RFC 7453                       MPLS-TP MIB                 February 2015

    5.  Feature List

       The MIBs in this document satisfy the following requirements and
       constraints:

       The MIB modules, taken together, support statically configured and
       dynamically signaled point-to-point, co-routed bidirectional and
       associated bidirectional tunnels.

          - The MPLS tunnels need not be interfaces, but it is possible to
            configure an MPLS-TP Tunnel as an interface.  The same ifType
            150, as defined in Section 8 of [RFC3812], will be used for
            MPLS-TP Tunnels as well.

          - The mplsTunnelTable [RFC3812] is also to be used for MPLS-TP
            Tunnels.

          - New MPLS-TP-specific textual conventions and identifiers are
            required.

          - The mplsTunnelTable is sparsely extended to support objects
            specific to MPLS-TP Tunnels.

          - A node configuration table (mplsTunnelExtNodeConfigTable), as
            detailed in Section 6.2.1, below, is used to translate the
            Global_ID::Node_ID or ICC_Operator_ID::Node_ID to the local
            identifier in order to index the mplsTunnelTable.

          - The mplsXCTable is sparsely extended to support objects specific
            to MPLS-TP XC (Cross Connect).

          - The MIB module supports persistent, as well as non-persistent,
            tunnels.

    6.  Outline

       Traffic Engineering support for the MPLS-TP Tunnels requires the
       setup of the co-routed or associated bidirectional tunnel.  The
       tables and MIB modules that are mentioned in the below subsections
       support the functionality described in [RFC5654] and [RFC6370].
       These tables support both IP-compatible and ICC-based tunnel
       configurations.

       Figure 1, below, depicts how the table references are followed in
       this MIB.

    Venkatesan, et al.           Standards Track                    [Page 7]

    RFC 7453                       MPLS-TP MIB                 February 2015

                Tunnel1-->XC1<--------------
                 ^ ^      | |               |
                 | |      | |-->InSeg1      |
                 | |      | |-->OutSeg1     |
                 | |      v                 |
                 |  ------XCext1            |
                 |         |                |
                 V         v                |
                Tunnel2-->XC1               |
                   ^      | |               |
                   |      | |-->InSeg2      |
                   |      | |-->OutSeg2     |
                   |      v                 |
                    ------XCext2------------

                     Figure 1: Table References of MIB Modules

    6.1.  MIB Module Extensions

       Four MIB modules are extended to support MPLS-TP Tunnels, namely,
       MPLS-TE-EXT-STD-MIB, MPLS-TC-EXT-STD-MIB, MPLS-ID-STD-MIB, and
       MPLS-LSR-EXT-STD-MIB.  The following section provides the summary of
       changes.

    6.1.1.  Summary of MIB Module Changes

       - Node configuration table (mplsTunnelExtNodeConfigTable) for setting
         the local identifier for Tunnel Ingress and Egress identifiers.

       - Node IP map table (mplsTunnelExtNodeIpMapTable) for querying the
         local identifier for a given Global_ID and Node_ID.

       - Node ICC map table (mplsTunnelExtNodeIccMapTable) for querying the
         local identifier for a given ICC_Operator_ID and Node_ID.

       - Tunnel extension table (mplsTunnelExtTable) for setting up MPLS-TP
         Tunnels with sparse extension of mplsTunnelTable.

       - Textual conventions and object definitions for MPLS-TP Tunnels.

       - Cross-connect extension table (mplsXCExtTable) for setting up the
         MPLS-TP LSPs.

         These tables are described in the subsequent sections.

    Venkatesan, et al.           Standards Track                    [Page 8]

    RFC 7453                       MPLS-TP MIB                 February 2015

    6.2.  MPLS-TE-EXT-STD-MIB

         The TE MIB module extensions and details of the tables are
         described in the following sections.

    6.2.1.  mplsTunnelExtNodeConfigTable

       The mplsTunnelExtNodeConfigTable is used to assign a local identifier
       for a given ICC_Operator_ID::Node_ID or Global_ID::Node_ID
       combination as defined in [RFC6923] and [RFC6370], respectively.  The
       CC is a string of two characters, each being an uppercase Basic Latin
       alphabetic (i.e., A-Z).  The ICC is a string of one to six
       characters, each an uppercase Basic Latin alphabetic (i.e., A-Z) or
       numeric (i.e., 0-9).  All of the characters are encoded using [T.50]
       as described in [RFC6370].

       In the IP-compatible mode, Global_ID::Node_ID, is used to uniquely
       identify a node.  For each ICC_Operator_ID::Node_ID or
       Global_ID::Node_ID, there is a unique entry in the table representing
       a node.  As the regular TE tunnels use the IP address as the LSR ID,
       the local identifier should be below the first valid IP address,
       which is 16777216[1.0.0.0].  Every node is assigned a local
       identifier within a range of 0 to 16777215.  This local identifier is
       used for indexing into mplsTunnelTable as mplsTunnelIngressLSRId and
       mplsTunnelEgressLSRId.

       For IP-compatible environments, an MPLS-TP Tunnel is indexed by
       Tunnel Index, Tunnel Instance, Source Global_ID, Source Node_ID,
       Destination Global_ID, and Destination Node_ID.

       For ICC-based environments, an MPLS-TP Tunnel is indexed by Tunnel
       Index, Tunnel Instance, Source CC, Source ICC, Source Node_ID,
       Destination CC, Destination ICC, and Destination Node_ID.

       As mplsTunnelTable is indexed by mplsTunnelIndex, mplsTunnelInstance,
       mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId, the MPLS-TP tunnel
       identifiers cannot be used directly.

       The mplsTunnelExtNodeConfigTable will be used to store an entry for
       ICC_Operator_ID::Node_ID or Global_ID::Node_ID with a local
       identifier to be used as the LSR ID in mplsTunnelTable.

    6.2.2.  mplsTunnelExtNodeIpMapTable

       The read-only mplsTunnelExtNodeIpMapTable is used to query the local
       identifier assigned and stored in mplsTunnelExtNodeConfigTable for a
       given Global_ID::Node_ID.  In order to query the local identifier, in

    Venkatesan, et al.           Standards Track                    [Page 9]

    RFC 7453                       MPLS-TP MIB                 February 2015

       the IP-compatible mode, this table is indexed with
       Global_ID::Node_ID.  In the IP-compatible mode for a TP tunnel,
       Global_ID::Node_ID is used.

       A separate query is made to get the local identifier of both Ingress
       and Egress Global_ID::Node_ID identifiers.  These local identifiers
       are used as mplsTunnelIngressLSRId and mplsTunnelEgressLSRId when
       indexing mplsTunnelTable.

    6.2.3.  mplsTunnelExtNodeIccMapTable

       The read-only mplsTunnelExtNodeIccMapTable is used to query the local
       identifier assigned and stored in the mplsTunnelExtNodeConfigTable
       for a given ICC_Operator_ID::Node_ID.

       A separate query is made to get the local identifier of both Ingress
       and Egress ICC_Operator_ID::Node_ID.  These local identifiers are
       used as mplsTunnelIngressLSRId and mplsTunnelEgressLSRId when
       indexing mplsTunnelTable.

    6.2.4.  mplsTunnelExtTable

       This table sparsely extends the mplsTunnelTable in order to support
       MPLS-TP Tunnels with additional objects.  All the additional
       attributes specific to supporting a TP tunnel are contained in this
       extended table and could be accessed with the mplsTunnelTable
       indices.

       The gmplsTunnelReversePerfTable [RFC4802] should be used to provide
       per-tunnel packet performance information for the reverse direction
       of a bidirectional tunnel.  It can be seen as supplementing the
       mplsTunnelPerfTable, which augments the mplsTunnelTable.

    6.3.  MPLS-TC-EXT-STD-MIB

       This MIB module contains textual conventions for LSPs of MPLS-based
       transport networks.

    6.4.  MPLS-ID-STD-MIB

       This MIB module contains identifier object definitions for MPLS
       Traffic Engineering in transport networks.

    Venkatesan, et al.           Standards Track                   [Page 10]

    RFC 7453                       MPLS-TP MIB                 February 2015

    6.5.  MPLS-LSR-EXT-STD-MIB

       This MIB module contains generic object definitions (including the
       mplsXCExtTable -- cross-connect extension table -- for setting up the
       MPLS-TP LSPs with sparse extension of mplsXCTable) for MPLS LSRs in
       transport networks.

    6.6.  The Use of RowPointer

       This document follows the RowPointer usage as described in Section 10
       of [RFC3812].

       A new RowPointer object, mplsTunnelExtOppositeDirPtr, is added to
       mplsTunnelExtTable of MPLS-TE-EXT-STD-MIB module.  This RowPointer
       object points to the tunnel entry in the opposite direction.

       Two additional RowPointers objects, mplsXCExtTunnelPointer and
       mplsXCExtOppositeDirXCPtr, are added to the mplsXCExtTable of
       MPLS-LSR-EXT-STD-MIB.  The RowPointer mplsXCExtTunnelPointer is a
       read-only object used to indicate the back pointer to the tunnel
       entry.  The RowPointer mplsXCExtOppositeDirXCPtr object points to the
       opposite-direction XC entry.

       If either of these RowPointers return zeroDotZero, it implies that
       there is no entry associated with the RowPointer object.

    7.  MIB Modules' Interdependencies

       This section provides an overview of the relationships between the
       MPLS-TP TE MIB module and other MPLS MIB modules.

       The arrows in the following diagram show a "depends on" relationship.
       A relationship of "MIB module A depends on MIB module B" means that
       MIB module A uses an object, object identifier, or textual convention
       defined in MIB module B, or that MIB module A contains a pointer
       (index or RowPointer) to an object in MIB module B.

    Venkatesan, et al.           Standards Track                   [Page 11]

    RFC 7453                       MPLS-TP MIB                 February 2015

           MPLS-TC-EXT-STD-MIB
              ^
              |
              |
              +<---- MPLS-ID-STD-MIB
                            ^
              |             |
              +<---- MPLS-TE-EXT-STD-MIB
              |             |
              |             V
              |      MPLS-TE-STD-MIB
              |             |
              |             |
              |             V
              |      MPLS-LSR-STD-MIB
              |             ^
              |             |
              |             |
              +------MPLS-LSR-EXT-STD-MIB

           Figure 2: MIB Modules' Interdependencies

           Thus:

          - All the new MPLS extension MIB modules depend on
            MPLS-TC-EXT-STD-MIB.

          - MPLS-ID-STD-MIB contains references to objects in
            MPLS-TE-STD-MIB [RFC3812].

          - MPLS-TE-EXT-STD-MIB contains references to objects in
            MPLS-TE-STD-MIB [RFC3812].

          - MPLS-LSR-EXT-STD-MIB contains references to objects in
            MPLS-LSR-STD-MIB [RFC3813].

       The mplsTunnelExtTable sparsely extends the mplsTunnelTable of
       MPLS-TE-STD-MIB [RFC3812].  This helps in associating the reverse-
       direction tunnel information.

       The mplsXCExtTable sparsely extends the mplsXCTable of
       MPLS-LSR-STD-MIB [RFC3813].  This helps in pointing back to the
       tunnel entry for easy tunnel access from the XC entry.

       Note that all of the MIB modules shown above in the figure also have
       a dependency on MPLS-TC-STD-MIB.

    Venkatesan, et al.           Standards Track                   [Page 12]

    RFC 7453                       MPLS-TP MIB                 February 2015

    8.  Dependencies between MIB Module Tables

       The tables in MPLS-TE-EXT-STD-MIB are related as shown on the diagram
       below.  The arrows indicate a reference from one table to another.

             mplsTunnelExtNodeConfigTable
                  ^          ^       ^
                  |          |       |
                  |          |       |
                  |          |       |
                  |          |       +----------------------+
                  |          |                              |
                  | mplsTunnelExtNodeIpMapTable mplsTunnelExtNodeIccMapTable
                  |
                  |              mplsXCExtTable
                  |               |      ^
                  |     +---------+      |
                  |     |                |
                  |     |                |
                  |     V                V
             mplsTunnelTable ---->mplsXCTable
                  ^
                  |
                  |
                  |
            mplsTunnelExtTable

         Figure 3: Dependencies between MIB Module Tables

       An existing mplsTunnelTable uses the mplsTunnelExtNodeConfigTable
       table to map the Global_ID::Node_ID and/or ICC_Operator_ID::Node_ID
       with the local number in order to accommodate in the existing tunnel
       table's ingress/egress LSR ID.

       The new mplsTunnelExtTable provides the reverse-direction LSP
       information for the existing tunnel table so that bidirectional LSPs
       can be created.

       The mplsXCExtTable sparsely extends the mplsLsrXCTable to provide
       backward reference to tunnel entry.

    9.  Example of MPLS-TP Tunnel Setup

       In this section, we provide an example of configuring MPLS-TP
       bidirectional tunnels with IP tunnel identifiers.  This example
       provides the usage of the MPLS-TP Tunnel MIB along with the extended
       MIB modules introduced in this document.

    Venkatesan, et al.           Standards Track                   [Page 13]

    RFC 7453                       MPLS-TP MIB                 February 2015

       Do note that a MPLS-TP Tunnel could be set up statically as well as
       signaled via the control plane.  This example considers accessing MIB
       objects on a head-end for static and signaled MPLS-TP Tunnels.  This
       section shows the configuration of the forward- and reverse-direction
       MPLS-TP LSPs that run between East and West, and vice versa.  Only
       objects relevant to MPLS-TP Tunnels are illustrated here.

       In mplsTunnelExtNodeConfigTable:

       {
       -- Non-IP Ingress LSR_ID (Index to the table)

         mplsTunnelExtNodeConfigLocalId              = 1,

         mplsTunnelExtNodeConfigGlobalId             = 1234,
         mplsTunnelExtNodeConfigNodeId               = 10,
       -- Mandatory parameters needed to activate the row go here
         mplsTunnelExtNodeConfigRowStatus         = createAndGo (4)

       -- Non-IP Egress LSR ID (Index to the table)
         mplsTunnelExtNodeConfigLocalId              = 2,
         mplsTunnelExtNodeConfigGlobalId             = 1234,
         mplsTunnelExtNodeConfigNodeId               = 20,
       -- Mandatory parameters needed to activate the row go here
         mplsTunnelExtNodeConfigRowStatus         = createAndGo (4)
       }

       This will create an entry in the mplsTunnelExtNodeConfigTable for a
       Global_ID::Node_ID.  The Ingress and Egress LSR are represented by
       separate entries.

       The following read-only mplsTunnelExtNodeIpMapTable table is
       populated automatically upon creating an entry in
       mplsTunnelExtNodeConfigTable, and this table is used to retrieve the
       local identifier for the given Global_ID::Node_ID.

       In mplsTunnelExtNodeIpMapTable:

       {
       -- Global_ID (Index to the table)
         mplsTunnelExtNodeIpMapGlobalId             = 1234,
       -- Node Identifier (Index to the table)
         mplsTunnelExtNodeIpMapNodeId               = 10,
         mplsTunnelExtNodeIpMapLocalId              = 1

       -- Global_ID (Index to the table)
         mplsTunnelExtNodeIpMapGlobalId             = 1234,

    Venkatesan, et al.           Standards Track                   [Page 14]

    RFC 7453                       MPLS-TP MIB                 February 2015

       -- Node Identifier (Index to the table)
         mplsTunnelExtNodeIpMapNodeId               = 20,
         mplsTunnelExtNodeIpMapLocalId              = 2
       }

    9.1.  Example of MPLS-TP Static Co-routed Bidirectional Tunnel Setup

       The following denotes the co-routed bidirectional tunnel "head"
       entry.

    9.1.1.  mplsTunnelEntry

         In mplsTunnelTable:

       {
         mplsTunnelIndex              = 1,
         mplsTunnelInstance           = 1,
       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Ingress LSR ID
         mplsTunnelIngressLSRId       = 1,

       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Egress LSR ID
         mplsTunnelEgressLSRId        = 2,
         mplsTunnelName               = "TP co-routed bidirectional LSP",
         mplsTunnelDescr              = "East to West",
         mplsTunnelIsIf               = true (1),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelXCPointer          =
                                    mplsXCLspId.4.0.0.0.1.1.0.4.0.0.0.1,
         mplsTunnelSignallingProto    = none (1),
         mplsTunnelSetupPrio          = 0,
         mplsTunnelHoldingPrio        = 0,
         mplsTunnelSessionAttributes  = 0,
         mplsTunnelLocalProtectInUse  = false (0),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelResourcePointer    = mplsTunnelResourceMaxRate.5,
         mplsTunnelInstancePriority   = 1,
         mplsTunnelHopTableIndex      = 1,
         mplsTunnelIncludeAnyAffinity = 0,
         mplsTunnelIncludeAllAffinity = 0,
         mplsTunnelExcludeAnyAffinity = 0,
         mplsTunnelRole               = head (1),
       -- Mandatory parameters needed to activate the row go here
         mplsTunnelRowStatus          = createAndGo (4)
       }

    Venkatesan, et al.           Standards Track                   [Page 15]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.1.2.  mplsTunnelExtEntry

       -- An MPLS extension table
       In mplsTunnelExtTable:
       {
         -- This opposite-direction tunnel pointer may point to 0.0
         -- if co-routed bidirectional tunnel is managed by single tunnel
         -- entry
         mplsTunnelExtOppositeDirTnlPtr       = 0.0
         -- Set both the Ingress and Egress LocalId objects to TRUE, as
         -- this tunnel entry uses the local identifiers.
         mplsTunnelExtIngressLSRLocalIdValid  = true,
         mplsTunnelExtEgressLSRLocalIdValid = true
       }

       Next, we must create the appropriate in-segment and out-segment
       entries.  These are done in [RFC3813] using the mplsInSegmentTable
       and mplsOutSegmentTable.

    9.1.3.  Forward-Direction mplsOutSegmentEntry

       For the forward direction:

       In mplsOutSegmentTable:
       {
          mplsOutSegmentIndex          = 0x0000001,
          mplsOutSegmentInterface      = 13, -- outgoing interface
          mplsOutSegmentPushTopLabel   = true(1),
          mplsOutSegmentTopLabel       = 22, -- outgoing label

          -- RowPointer MUST point to the first accessible column.
          mplsOutSegmentTrafficParamPtr   = 0.0,
          mplsOutSegmentRowStatus         = createAndGo (4)
       }

    9.1.4.  Reverse-Direction mplsInSegmentEntry

         For the reverse direction:

       In mplsInSegmentTable:
       {
          mplsInSegmentIndex           = 0x0000001
          mplsInSegmentLabel           = 21, -- incoming label
          mplsInSegmentNPop            = 1,
          mplsInSegmentInterface       = 13, -- incoming interface

    Venkatesan, et al.           Standards Track                   [Page 16]

    RFC 7453                       MPLS-TP MIB                 February 2015

          -- RowPointer MUST point to the first accessible column.
          mplsInSegmentTrafficParamPtr    = 0.0,
          mplsInSegmentRowStatus          = createAndGo (4)
       }

       Next, two cross-connect entries are created in the mplsXCTable of the
       MPLS-LSR-STD-MIB [RFC3813], thereby associating the newly created
       segments together.

    9.1.5.  Forward-Direction mplsXCEntry

       In mplsXCTable:
       {
          mplsXCIndex                = 0x01,
          mplsXCInSegmentIndex       = 0x00000000,
          mplsXCOutSegmentIndex      = 0x00000001,
          mplsXCLspId                = 0x0102 -- unique ID

          -- only a single outgoing label
          mplsXCLabelStackIndex      = 0x00,
          mplsXCRowStatus            = createAndGo(4)

       }

    9.1.6.  Reverse-Direction mplsXCEntry

       In mplsXCTable:
       {
          mplsXCIndex                = 0x01,
          mplsXCInSegmentIndex       = 0x00000001,
          mplsXCOutSegmentIndex      = 0x00000000,
          mplsXCLspId                = 0x0102 -- unique ID
          -- only a single outgoing label
          mplsXCLabelStackIndex      = 0x00,
          mplsXCRowStatus            = createAndGo(4)
       }

       This table entry is extended by an entry in the mplsXCExtTable.  Note
       that the nature of the 'extends' relationship is a sparse
       augmentation so that the entry in the mplsXCExtTable has the same
       index values as the entry in the mplsXCTable.

    Venkatesan, et al.           Standards Track                   [Page 17]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.1.7.  Forward-Direction mplsXCExtEntry

       In mplsXCExtTable (0x01, 0x00000000, 0x00000001)
       {
         -- Back pointer from XC table to Tunnel table
         mplsXCExtTunnelPointer         = mplsTunnelName.1.1.1.2
         mplsXCExtOppositeDirXCPtr         =
                                     mplsXCLspId.4.0.0.0.1.4.0.0.0.1.1.0
       }

    9.1.8.  Reverse-Direction mplsXCExtEntry

       Next, for the reverse direction:

       In mplsXCExtTable (0x01, 0x00000001, 0x00000000)
       {
         -- Back pointer from XC table to Tunnel table
         mplsXCExtTunnelPointer         = mplsTunnelName.1.1.1.2
         mplsXCExtOppositeDirXCPtr         =
                                     mplsXCLspId.4.0.0.0.1.1.0.4.0.0.0.1
       }

    9.2.  Example of MPLS-TP Static Associated Bidirectional Tunnel Setup

       The MPLS-TP associated bidirectional tunnel is implemented by two
       different unidirectional tunnels (Forward and Reverse LSPs), and
       these are associated together using mplsTunnelExtTable.  Two
       different tunnel entries to provide the forward and reverse
       directions MAY be used for co-routed bidirectional tunnels as well.

       The following denotes the associated bidirectional forward tunnel
       "head" entry:

    9.2.1.  Forward-Direction mplsTunnelEntry

         In mplsTunnelTable:

       {
         mplsTunnelIndex              = 1,
         mplsTunnelInstance           = 1,
       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Ingress LSR ID
         mplsTunnelIngressLSRId       = 1,

    Venkatesan, et al.           Standards Track                   [Page 18]

    RFC 7453                       MPLS-TP MIB                 February 2015

       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Egress LSR ID
         mplsTunnelEgressLSRId        = 2,
         mplsTunnelName               = "TP associated bidirectional
                                         forward LSP",
         mplsTunnelDescr              = "East to West",
         mplsTunnelIsIf               = true (1),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelXCPointer          =
                                    mplsXCLspId.4.0.0.0.1.1.0.4.0.0.0.1,
         mplsTunnelSignallingProto    = none (1),
         mplsTunnelSetupPrio          = 0,
         mplsTunnelHoldingPrio        = 0,
         mplsTunnelSessionAttributes  = 0,
         mplsTunnelLocalProtectInUse  = false (0),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelResourcePointer    = mplsTunnelResourceMaxRate.5,
         mplsTunnelInstancePriority   = 1,
         mplsTunnelHopTableIndex      = 1,
         mplsTunnelIncludeAnyAffinity = 0,

         mplsTunnelIncludeAllAffinity = 0,
         mplsTunnelExcludeAnyAffinity = 0,
         mplsTunnelRole               = head (1),
       -- Mandatory parameters needed to activate the row go here
         mplsTunnelRowStatus          = createAndGo (4)
       }

    9.2.2.  Forward-Direction mplsTunnelExtEntry

       For the associated bidirectional forward LSP,
       in mplsTunnelExtTable:

       {
         mplsTunnelExtOppositeDirPtr       = mplsTunnelName.2.1.2.1
        -- Set both the Ingress and Egress LocalId objects to TRUE, as
        -- this tunnel entry uses the local identifiers.
         mplsTunnelExtIngressLSRLocalIdValid  = true,
         mplsTunnelExtEgressLSRLocalIdValid = true
       }

    Venkatesan, et al.           Standards Track                   [Page 19]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.2.3.  Forward-Direction mplsOutSegmentTable

       For the forward direction:

       In mplsOutSegmentTable:
       {
          mplsOutSegmentIndex          = 0x0000001,
          mplsOutSegmentInterface      = 13, -- outgoing interface
          mplsOutSegmentPushTopLabel   = true(1),
          mplsOutSegmentTopLabel       = 22, -- outgoing label

          -- RowPointer MUST point to the first accessible column.
          mplsOutSegmentTrafficParamPtr   = 0.0,
          mplsOutSegmentRowStatus         = createAndGo (4)
       }

    9.2.4.  Forward-Direction mplsXCEntry

       In mplsXCTable:
       {
          mplsXCIndex                = 0x01,
          mplsXCInSegmentIndex       = 0x00000000,
          mplsXCOutSegmentIndex      = 0x00000001,
          mplsXCLspId                = 0x0102 -- unique ID
          -- only a single outgoing label
          mplsXCLabelStackIndex      = 0x00,
          mplsXCRowStatus            = createAndGo(4)
       }

    9.2.5.  Forward-Direction mplsXCExtEntry

       In mplsXCExtTable (0x01, 0x00000000, 0x00000001)
       {
         -- Back pointer from XC table to Tunnel table
         mplsXCExtTunnelPointer         = mplsTunnelName.1.1.1.2
         mplsXCExtOppositeDirXCPtr         =
                                    mplsXCLspId.4.0.0.0.1.4.0.0.0.1.1.0
       }

    Venkatesan, et al.           Standards Track                   [Page 20]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.2.6.  Reverse-Direction mplsTunnelEntry

       The following denotes the configured associated bidirectional reverse
       tunnel "tail" entry:

           In mplsTunnelTable:

       {
         mplsTunnelIndex              = 2,
         mplsTunnelInstance           = 1,
       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Ingress LSR ID
         mplsTunnelIngressLSRId       = 2,
       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Egress LSR ID
         mplsTunnelEgressLSRId        = 1,
         mplsTunnelName               = "TP associated bidirectional
                                         reverse LSP",
         mplsTunnelDescr              = "West to East",
         mplsTunnelIsIf               = true (1),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelXCPointer          =
                                    mplsXCLspId.4.0.0.0.1.4.0.0.0.1.1.0,
         mplsTunnelSignallingProto    = none (1),
         mplsTunnelSetupPrio          = 0,
         mplsTunnelHoldingPrio        = 0,
         mplsTunnelSessionAttributes  = 0,
         mplsTunnelLocalProtectInUse  = false (0),

       --  RowPointer MUST point to the first accessible column
         mplsTunnelResourcePointer    = mplsTunnelResourceMaxRate.5,
         mplsTunnelInstancePriority   = 1,
         mplsTunnelHopTableIndex      = 1,
         mplsTunnelIncludeAnyAffinity = 0,
         mplsTunnelIncludeAllAffinity = 0,
         mplsTunnelExcludeAnyAffinity = 0,
         mplsTunnelRole               = head (1),
       -- Mandatory parameters needed to activate the row go here

         mplsTunnelRowStatus          = createAndGo (4)
       }

    Venkatesan, et al.           Standards Track                   [Page 21]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.2.7.  Reverse-Direction mplsTunnelExtEntry

       For the associated bidirectional reverse LSP,
       in mplsTunnelExtTable:

       {
         mplsTunnelExtOppositeDirPtr       = mplsTunnelName.1.1.1.2
         -- Set both the Ingress and Egress LocalId objects to TRUE, as
         -- this tunnel entry uses the local identifiers.
         mplsTunnelExtIngressLSRLocalIdValid  = true,
         mplsTunnelExtEgressLSRLocalIdValid = true
       }

    9.2.8.  Reverse-Direction mplsInSegmentEntry

       Next, we must create the appropriate in-segment and out-segment
       entries.  These are done in [RFC3813] using the mplsInSegmentTable
       and mplsOutSegmentTable.

       In mplsInSegmentTable:
       {
          mplsInSegmentIndex           = 0x0000001
          mplsInSegmentLabel           = 21, -- incoming label
          mplsInSegmentNPop            = 1,
          mplsInSegmentInterface       = 13, -- incoming interface

          -- RowPointer MUST point to the first accessible column.
          mplsInSegmentTrafficParamPtr    = 0.0,
          mplsInSegmentRowStatus          = createAndGo (4)
       }

       Next, two cross-connect entries are created in the mplsXCTable of the
       MPLS-LSR-STD-MIB [RFC3813], thereby associating the newly created
       segments together.

    9.2.9.  Reverse-Direction mplsXCEntry

       In mplsXCTable:
       {
          mplsXCIndex                = 0x01,
          mplsXCInSegmentIndex       = 0x00000001,
          mplsXCOutSegmentIndex      = 0x00000000,
          mplsXCLspId                = 0x0102 -- unique ID
          -- only a single outgoing label
          mplsXCLabelStackIndex      = 0x00,

          mplsXCRowStatus            = createAndGo(4)
       }

    Venkatesan, et al.           Standards Track                   [Page 22]

    RFC 7453                       MPLS-TP MIB                 February 2015

       This table entry is extended by an entry in the mplsXCExtTable.  Note
       that the nature of the 'extends' relationship is a sparse
       augmentation so that the entry in the mplsXCExtTable has the same
       index values as the entry in the mplsXCTable.

    9.2.10.  Reverse-Direction mplsXCExtEntry

       Next, for the reverse direction:

       In mplsXCExtTable (0x01, 0x00000001, 0x00000000)
       {
         -- Back pointer from XC table to Tunnel table
         mplsXCExtTunnelPointer         = mplsTunnelName.2.1.2.1
         mplsXCExtOppositeDirXCPtr         =
                                  mplsXCLspId.4.0.0.0.1.1.0.4.0.0.0.1
       }

    9.3.  Example of MPLS-TP Signaled Co-routed Bidirectional Tunnel Setup

       The following denotes the co-routed bidirectional tunnel "head"
       entry.  In intermediate and tail-end nodes, the tunnel table and its
       associated tables are created by the local management subsystem
       (e.g., agent) when the MPLS-TP Tunnel is signaled successfully.
       Refer to [RFC3812] and [RFC4802] for examples of signaled tunnel
       table configuration.

    9.3.1.  mplsTunnelEntry

         In mplsTunnelTable:

       {
         mplsTunnelIndex              = 1,
         mplsTunnelInstance           = 0,
       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Ingress LSR-Id.  For the intermediate and tail-end nodes,
       -- the local management entity is expected to pick the first
       -- available local identifier that is not used in mplsTunnelTable.
         mplsTunnelIngressLSRId       = 1,

       -- Local map number created in mplsTunnelExtNodeConfigTable for
       -- Egress LSR ID
         mplsTunnelEgressLSRId        = 2,
         mplsTunnelName               = "TP co-routed bidirectional LSP",
         mplsTunnelDescr              = "East to West",
         mplsTunnelIsIf               = true (1),

    Venkatesan, et al.           Standards Track                   [Page 23]

    RFC 7453                       MPLS-TP MIB                 February 2015

       --  RowPointer MUST point to the first accessible column
         mplsTunnelXCPointer          =
                                    mplsXCLspId.4.0.0.0.1.1.0.4.0.0.0.1,
         mplsTunnelSignallingProto    = none (1),
         mplsTunnelSetupPrio          = 0,
         mplsTunnelHoldingPrio        = 0,
         mplsTunnelSessionAttributes  = 0,
         mplsTunnelLocalProtectInUse  = false (0),
       --  RowPointer MUST point to the first accessible column
         mplsTunnelResourcePointer    = mplsTunnelResourceMaxRate.5,
         mplsTunnelInstancePriority   = 1,
         mplsTunnelHopTableIndex      = 1,
         mplsTunnelIncludeAnyAffinity = 0,
         mplsTunnelIncludeAllAffinity = 0,
         mplsTunnelExcludeAnyAffinity = 0,
         mplsTunnelRole               = head (1),
       -- Mandatory parameters needed to activate the row go here
         mplsTunnelRowStatus          = createAndGo (4)
       }

    9.3.2.  mplsTunnelExtEntry

       -- An MPLS extension table
       In mplsTunnelExtTable:
       {
         -- This opposite-direction tunnel pointer may point to 0.0
         -- if co-routed bidirectional tunnel is managed by a single
         -- tunnel entry
         mplsTunnelExtOppositeDirTnlPtr       = 0.0
         -- Set both the Ingress and Egress LocalId objects to TRUE, as
         -- this tunnel entry uses the local identifiers.
         mplsTunnelExtIngressLSRLocalIdValid  = true,
         mplsTunnelExtEgressLSRLocalIdValid = true
       }

       Next, we must create the appropriate in-segment and out-segment
       entries.  These are done in [RFC3813] using the mplsInSegmentTable
       and mplsOutSegmentTable.

    9.3.3.  Forward-Direction mplsOutSegmentEntry

       The forward-direction mplsOutSegmentTable will be populated
       automatically based on the information received from the signaling
       protocol.

    Venkatesan, et al.           Standards Track                   [Page 24]

    RFC 7453                       MPLS-TP MIB                 February 2015

    9.3.4.  Reverse-Direction mplsInSegmentEntry

       The reverse-direction mplsOutSegmentTable will be populated
       automatically based on the information received from the signaling
       protocol.

       Next, two cross-connect entries are created in the mplsXCTable of the
       MPLS-LSR-STD-MIB [RFC3813], thereby associating the newly created
       segments together.

    9.3.5.  Forward-Direction mplsXCEntry

       The forward-direction mplsXCEntry will be populated as soon as the
       forward-path label information is available.

    9.3.6.  Reverse-Direction mplsXCEntry

       The reverse-direction mplsXCEntry will be populated as soon as the
       reverse-path label information is available.

       This table entry is extended by an entry in the mplsXCExtTable.  Note
       that the nature of the 'extends' relationship is a sparse
       augmentation so that the entry in the mplsXCExtTable has the same
       index values as the entry in the mplsXCTable.

    9.3.7.  Forward-Direction mplsXCExtEntry

       Once the forward path information is negotiated using the signaling
       protocol, the forward-direction mplsXCExtEntry will be created for
       associating the opposite-direction XC entry and tunnel table entry.

    9.3.8.  Reverse-Direction mplsXCExtEntry

       Once the reverse path information is negotiated using the signaling
       protocol, the reverse-direction mplsXCExtEntry will be created for
       associating the opposite-direction XC entry and tunnel table entry.

    Venkatesan, et al.           Standards Track                   [Page 25]

    RFC 7453                       MPLS-TP MIB                 February 2015

    10.  MPLS Textual Convention Extension MIB Definitions

       MPLS-TC-EXT-STD-MIB DEFINITIONS ::= BEGIN

       IMPORTS
          MODULE-IDENTITY, Unsigned32
             FROM SNMPv2-SMI               -- RFC 2578

          TEXTUAL-CONVENTION
             FROM SNMPv2-TC                -- RFC 2579

          mplsStdMIB
             FROM MPLS-TC-STD-MIB          -- RFC 3811

          ;

       mplsTcExtStdMIB MODULE-IDENTITY

          LAST-UPDATED
             "201502020000Z" -- February 2, 2015
          ORGANIZATION
             "Multiprotocol Label Switching (MPLS) Working Group"
          CONTACT-INFO
             "
                    Venkatesan Mahalingam
                    Dell Inc,
                    5450 Great America Parkway,
                    Santa Clara, CA 95054, USA
              Email: venkat.mahalingams@gmail.com

                    Kannan KV Sampath
                    Redeem,
                    India
              Email: kannankvs@gmail.com

                    Sam Aldrin
                    Huawei Technologies
                    2330 Central Express Way,
                    Santa Clara, CA 95051, USA
              Email:  aldrin.ietf@gmail.com

                    Thomas D. Nadeau
              Email: tnadeau@lucidvision.com
             "
          DESCRIPTION
             "This MIB module contains Textual Conventions for LSPs of MPLS-
              based transport networks.

    Venkatesan, et al.           Standards Track                   [Page 26]

    RFC 7453                       MPLS-TP MIB                 February 2015

              Copyright (c) 2015 IETF Trust and the persons identified as
              authors of the code.  All rights reserved.

              Redistribution and use in source and binary forms, with or
              without modification, is permitted pursuant to, and subject to
              the license terms contained in, the Simplified BSD License set
              forth in Section 4.c of the IETF Trust's Legal Provisions
              Relating to IETF Documents
              (http://trustee.ietf.org/license-info)."

          -- Revision history.

          REVISION
             "201502020000Z" -- February 2, 2015
          DESCRIPTION
               "MPLS Textual Convention Extensions"

          ::= { mplsStdMIB 17 }

       MplsGlobalId ::= TEXTUAL-CONVENTION
          STATUS      current
          DESCRIPTION
               "This object contains the Textual Convention for an IP-based
                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 ASN,
                the two high-order octets of this 4-octet identifier
                MUST be set to zero (0x00).  Further, ASN 0 is reserved.
                The size of the Global_ID string MUST be zero if
                the Global_ID is invalid.

                Note that a Global_ID of zero is limited to entities
                contained within a single operator and MUST NOT be used
                across a Network-to-Network Interface (NNI).  A non-zero
                Global_ID MUST be derived from an ASN owned by
                the operator."
          REFERENCE
               "MPLS Transport Profile (MPLS-TP) Identifiers, RFC 6370,
                Section 3"
          SYNTAX  OCTET STRING (SIZE (4))

       MplsCcId ::= TEXTUAL-CONVENTION
       STATUS      current
       DESCRIPTION
            "The CC (Country Code) is a string of two characters, each
             being an uppercase Basic Latin alphabetic (i.e., A-Z).

    Venkatesan, et al.           Standards Track                   [Page 27]

    RFC 7453                       MPLS-TP MIB                 February 2015

             The characters are encoded using ITU-T Recommendation T.50.
             The size of the CC string MUST be zero if the CC identifier
             is invalid."
       REFERENCE
            "MPLS-TP Identifiers Following ITU-T Conventions,
             RFC 6923, Section 3.
             International Reference Alphabet (IRA) (Formerly
             International Alphabet No. 5 or IA5) - Information
             technology - 7-bit coded character set for information
             exchange, ITU-T Recommendation T.50, September 1992."
       SYNTAX  OCTET STRING (SIZE (0|2))

       MplsIccId ::= TEXTUAL-CONVENTION
       STATUS      current
       DESCRIPTION
            "The ICC is a string of one to six characters, each
             an uppercase Basic Latin alphabetic (i.e., A-Z) or
             numeric (i.e., 0-9).  The characters are encoded
             using ITU-T Recommendation T.50.  The size of
             the ICC string MUST be zero if the ICC identifier
             is invalid."
       REFERENCE
            "MPLS-TP Identifiers Following ITU-T Conventions,
             RFC 6923, Section 3.
             International Reference Alphabet (IRA) (Formerly
             International Alphabet No. 5 or IA5) - Information
             technology - 7-bit coded character set for information
             exchange, ITU-T Recommendation T.50, September 1992."
       SYNTAX  OCTET STRING (SIZE (0|1..6))

       MplsNodeId ::= TEXTUAL-CONVENTION
          DISPLAY-HINT "d"
          STATUS      current
          DESCRIPTION
              "The Node_ID is assigned within the scope of
               the Global_ID/ICC_Operator_ID.

               When IPv4 addresses are in use, the value of this object
               can be derived from the LSR's IPv4 loopback address.
               When IPv6 addresses are in use, the value of this object
               can be a 32-bit value unique within the scope of
               a Global_ID.

               Note that, when IP reachability is not needed, the 32-bit
               Node_ID is not required to have any association
               with the IPv4 address space.  The value of 0 indicates
               an invalid Node_ID."

    Venkatesan, et al.           Standards Track                   [Page 28]

    RFC 7453                       MPLS-TP MIB                 February 2015

          REFERENCE
               "MPLS Transport Profile (MPLS-TP) Identifiers, RFC 6370,
                Section 4"
          SYNTAX  Unsigned32 (0|1..4294967295)

         -- MPLS-TC-EXT-STD-MIB module ends
         END

    11.  MPLS Identifier MIB Definitions

       MPLS-ID-STD-MIB DEFINITIONS ::= BEGIN

       IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE
           FROM SNMPv2-SMI                                 -- RFC 2578
        MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF                                -- RFC 2580
        mplsStdMIB
           FROM MPLS-TC-STD-MIB                            -- RFC 3811
        MplsGlobalId, MplsCcId, MplsIccId, MplsNodeId
           FROM MPLS-TC-EXT-STD-MIB
        ;

      mplsIdStdMIB MODULE-IDENTITY
        LAST-UPDATED
            "201502020000Z" -- February 2, 2015
        ORGANIZATION
           "Multiprotocol Label Switching (MPLS) Working Group"

        CONTACT-INFO
           "
                  Venkatesan Mahalingam
                  Dell Inc,
                  5450 Great America Parkway,
                  Santa Clara, CA 95054, USA
            Email: venkat.mahalingams@gmail.com

                  Kannan KV Sampath
                  Redeem,
                  India
            Email: kannankvs@gmail.com

                  Sam Aldrin
                  Huawei Technologies
                  2330 Central Express Way,
                  Santa Clara, CA 95051, USA
            Email:  aldrin.ietf@gmail.com

    Venkatesan, et al.           Standards Track                   [Page 29]

    RFC 7453                       MPLS-TP MIB                 February 2015

                  Thomas D. Nadeau
            Email: tnadeau@lucidvision.com
          "
        DESCRIPTION
            "This MIB module contains identifier object definitions for
             MPLS Traffic Engineering in transport networks.

             Copyright (c) 2015 IETF Trust and the persons identified as
             authors of the code.  All rights reserved.

             Redistribution and use in source and binary forms, with or
             without modification, is permitted pursuant to, and subject to
             the license terms contained in, the Simplified BSD License set
             forth in Section 4.c of the IETF Trust's Legal Provisions
             Relating to IETF Documents
             (http://trustee.ietf.org/license-info)."

        -- Revision history.

        REVISION
            "201502020000Z" -- February 2, 2015
        DESCRIPTION
             "This MIB modules defines the MIB objects for MPLS-TP
              identifiers"

        ::= { mplsStdMIB 18 }

        -- notifications
        mplsIdNotifications OBJECT IDENTIFIER ::= { mplsIdStdMIB 0 }
        -- tables, scalars
        mplsIdObjects       OBJECT IDENTIFIER ::= { mplsIdStdMIB 1 }
        -- conformance
        mplsIdConformance   OBJECT IDENTIFIER ::= { mplsIdStdMIB 2 }

        -- MPLS common objects

      mplsIdGlobalId OBJECT-TYPE
           SYNTAX      MplsGlobalId
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
               "This object allows the operator or service provider to
                assign a unique operator identifier, also called the MPLS-TP
                Global_ID.
                If this value is used in mplsTunnelExtNodeConfigGlobalId
                for mapping Global_ID::Node_ID with the local identifier,
                then this object value MUST NOT be changed."
          ::= { mplsIdObjects 1 }

    Venkatesan, et al.           Standards Track                   [Page 30]

    RFC 7453                       MPLS-TP MIB                 February 2015

      mplsIdNodeId OBJECT-TYPE
           SYNTAX      MplsNodeId
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
              "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/ICC_Operator_ID.
               If this value is used in mplsTunnelExtNodeConfigNodeId
               for mapping Global_ID::Node_ID with the local identifier,
               then this object value SHOULD NOT be changed.
               If this value is used in mplsTunnelExtNodeConfigNodeId
               for mapping ICC_Operator_ID::Node_ID with the local
               identifier, then this object value MUST NOT be changed."
          ::= { mplsIdObjects 2 }

      mplsIdCc OBJECT-TYPE
           SYNTAX      MplsCcId
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
              "This object allows the operator or service provider to
               assign a Country Code (CC) to the node.  Global
               uniqueness of ICC is assured by concatenating the ICC
               with a Country Code (CC).
               If this value is used in mplsTunnelExtNodeConfigCcId
               for mapping ICC_Operator_ID::Node_ID with the local
               identifier, then this object value MUST NOT be changed."
          REFERENCE
               "MPLS-TP Identifiers Following ITU-T Conventions,
                RFC 6923, Section 3"
              ::= { mplsIdObjects 3 }

      mplsIdIcc OBJECT-TYPE
           SYNTAX      MplsIccId
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION
              "This object allows the operator or service provider to
               assign a unique MPLS-TP ITU-T Carrier Code (ICC) to
               the node.  Together, the CC and the ICC form
               the ICC_Operator_ID as CC::ICC.
               If this value is used in mplsTunnelExtNodeConfigIccId
               for mapping ICC_Operator_ID::Node_ID with the local
               identifier, then this object value MUST NOT be changed."
          REFERENCE
               "MPLS-TP Identifiers Following ITU-T Conventions,
                RFC 6923, Section 3"

    Venkatesan, et al.           Standards Track                   [Page 31]

    RFC 7453                       MPLS-TP MIB                 February 2015

              ::= { mplsIdObjects 4 }

       -- Module compliance.

      mplsIdCompliances
         OBJECT IDENTIFIER ::= { mplsIdConformance 1 }

      mplsIdGroups
         OBJECT IDENTIFIER ::= { mplsIdConformance 2 }

      -- Compliance requirement for fully compliant implementations.

      mplsIdModuleFullCompliance MODULE-COMPLIANCE
         STATUS current
         DESCRIPTION
              "Compliance statement for agents that provide full
                support of the MPLS-ID-STD-MIB module."

         MODULE -- this module

            -- The mandatory group has to be implemented by all LSRs that
            -- originate, terminate, or act as transit for MPLS-TP Tunnels.

            GROUP mplsIdIpOperatorGroup
            DESCRIPTION
                "This group is mandatory for devices that support
                 IP-based identifier configuration."

            GROUP mplsIdIccOperatorGroup
            DESCRIPTION
                "This group is mandatory for devices that support
                 ICC-based identifier configuration."

             ::= { mplsIdCompliances 1 }

             -- Compliance requirement for read-only implementations.

            mplsIdModuleReadOnlyCompliance MODULE-COMPLIANCE
               STATUS current
               DESCRIPTION
                    "Compliance statement for agents that only provide
                     read-only support for the MPLS-ID-STD-MIB module."

            MODULE -- this module

    Venkatesan, et al.           Standards Track                   [Page 32]

    RFC 7453                       MPLS-TP MIB                 February 2015

            GROUP mplsIdIpOperatorGroup
            DESCRIPTION
                "This group is mandatory for devices that support
                 IP-based identifier configuration."

            GROUP mplsIdIccOperatorGroup
            DESCRIPTION
                "This group is mandatory for devices that support
                 ICC-based identifier configuration."

            OBJECT   mplsIdGlobalId
            MIN-ACCESS  read-only
            DESCRIPTION
              "Write access is not required."

            OBJECT   mplsIdNodeId
            MIN-ACCESS  read-only
            DESCRIPTION
              "Write access is not required."

            OBJECT   mplsIdCc
            MIN-ACCESS  read-only
            DESCRIPTION
              "Write access is not required."

            OBJECT   mplsIdIcc
            MIN-ACCESS  read-only
            DESCRIPTION
              "Write access is not required."

            ::= { mplsIdCompliances 2 }

        -- Units of conformance.

            mplsIdIpOperatorGroup OBJECT-GROUP
                  OBJECTS { mplsIdGlobalId,
                            mplsIdNodeId
                  }
                  STATUS  current
                  DESCRIPTION
                      "The objects in this group are optional for an
                       ICC-based node."
                  ::= { mplsIdGroups 1 }

    Venkatesan, et al.           Standards Track                   [Page 33]

    RFC 7453                       MPLS-TP MIB                 February 2015

            mplsIdIccOperatorGroup OBJECT-GROUP
                  OBJECTS { mplsIdNodeId,
                            mplsIdCc,
                            mplsIdIcc
                  }
                  STATUS  current
                  DESCRIPTION
                     "The objects in this group are optional for an
                      IP-based node."
                  ::= { mplsIdGroups 2 }

       -- MPLS-ID-STD-MIB module ends
       END

    12.  MPLS LSR Extension MIB Definitions

       MPLS-LSR-EXT-STD-MIB DEFINITIONS ::= BEGIN

       IMPORTS
          MODULE-IDENTITY, OBJECT-TYPE
             FROM SNMPv2-SMI                                 -- RFC 2578
          MODULE-COMPLIANCE, OBJECT-GROUP
             FROM SNMPv2-CONF                                -- RFC 2580
          mplsStdMIB
             FROM MPLS-TC-STD-MIB                            -- RFC 3811
          RowPointer
             FROM SNMPv2-TC                                  -- RFC 2579
          mplsXCIndex, mplsXCInSegmentIndex, mplsXCOutSegmentIndex,
          mplsInterfaceGroup, mplsInSegmentGroup, mplsOutSegmentGroup,
          mplsXCGroup, mplsLsrNotificationGroup
             FROM MPLS-LSR-STD-MIB;                          -- RFC 3813

       mplsLsrExtStdMIB MODULE-IDENTITY
          LAST-UPDATED
             "201502020000Z" -- February 2, 2015
          ORGANIZATION
             "Multiprotocol Label Switching (MPLS) Working Group"
          CONTACT-INFO
             "
                    Venkatesan Mahalingam
                    Dell Inc,
                    5450 Great America Parkway,
                    Santa Clara, CA 95054, USA
              Email: venkat.mahalingams@gmail.com

    Venkatesan, et al.           Standards Track                   [Page 34]

    RFC 7453                       MPLS-TP MIB                 February 2015

                    Kannan KV Sampath
                    Redeem,
                    India
              Email: kannankvs@gmail.com

                    Sam Aldrin
                    Huawei Technologies
                    2330 Central Express Way,
                    Santa Clara, CA 95051, USA
              Email:  aldrin.ietf@gmail.com

                    Thomas D. Nadeau
              Email: tnadeau@lucidvision.com
            "
          DESCRIPTION
            "This MIB module contains generic object definitions for
             MPLS LSRs in transport networks.

             Copyright (c) 2015 IETF Trust and the persons identified as
             authors of the code.  All rights reserved.

             Redistribution and use in source and binary forms, with or
             without modification, is permitted pursuant to, and subject to
             the license terms contained in, the Simplified BSD License set
             forth in Section 4.c of the IETF Trust's Legal Provisions
             Relating to IETF Documents
             (http://trustee.ietf.org/license-info)."

          -- Revision history.

          REVISION
             "201502020000Z" -- February 2, 2015
          DESCRIPTION
               "MPLS LSR-specific MIB objects extension"

          ::= { mplsStdMIB 19 }

       -- notifications
       mplsLsrExtNotifications OBJECT IDENTIFIER ::= { mplsLsrExtStdMIB 0 }

       -- tables, scalars
       mplsLsrExtObjects       OBJECT IDENTIFIER
                                ::= { mplsLsrExtStdMIB 1 }
       -- conformance
       mplsLsrExtConformance   OBJECT IDENTIFIER
                                ::= { mplsLsrExtStdMIB 2 }

       -- MPLS LSR common objects

    Venkatesan, et al.           Standards Track                   [Page 35]

    RFC 7453                       MPLS-TP MIB                 February 2015

       mplsXCExtTable  OBJECT-TYPE
           SYNTAX        SEQUENCE OF MplsXCExtEntry
           MAX-ACCESS    not-accessible
           STATUS        current
           DESCRIPTION
              "This table sparse augments the mplsXCTable of
               MPLS-LSR-STD-MIB (RFC 3813) to provide MPLS-TP-specific
               information about associated tunnel information"
           REFERENCE
              "Multiprotocol Label Switching (MPLS) Label Switching
               Router (LSR) Management Information Base (MIB), RFC 3813."
       ::= { mplsLsrExtObjects 1 }

       mplsXCExtEntry  OBJECT-TYPE
           SYNTAX        MplsXCExtEntry
           MAX-ACCESS    not-accessible

           STATUS        current
           DESCRIPTION
              "An entry in this table sparsely extends the cross-connect
               information represented by an entry in
               the mplsXCTable in MPLS-LSR-STD-MIB (RFC 3813) through
               a sparse augmentation.  An entry can be created by
               a network operator via SNMP SET commands or in
               response to signaling protocol events."
           REFERENCE
              "Multiprotocol Label Switching (MPLS) Label Switching
               Router (LSR) Management Information Base (MIB), RFC 3813."

         INDEX { mplsXCIndex, mplsXCInSegmentIndex,
               mplsXCOutSegmentIndex }
        ::= { mplsXCExtTable 1 }

       MplsXCExtEntry ::= SEQUENCE {
          mplsXCExtTunnelPointer        RowPointer,
          mplsXCExtOppositeDirXCPtr     RowPointer
       }

       mplsXCExtTunnelPointer OBJECT-TYPE
           SYNTAX        RowPointer
           MAX-ACCESS    read-only
           STATUS        current
           DESCRIPTION
              "This read-only object indicates the back pointer to
               the tunnel entry segment.
               The only valid value for Tunnel Pointer is
               mplsTunnelTable entry."

    Venkatesan, et al.           Standards Track                   [Page 36]

    RFC 7453                       MPLS-TP MIB                 February 2015

           REFERENCE
              "Multiprotocol Label Switching (MPLS) Label Switching
               Router (LSR) Management Information Base (MIB), RFC 3813."
        ::= { mplsXCExtEntry 1 }

       mplsXCExtOppositeDirXCPtr OBJECT-TYPE
           SYNTAX        RowPointer
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "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).  If this pointer is not set or
               removed, mplsXCOperStatus should be set to down(2)."
           REFERENCE
              "Multiprotocol Label Switching (MPLS) Label Switching
               Router (LSR) Management Information Base (MIB), RFC 3813."
        ::= { mplsXCExtEntry 2 }

        mplsLsrExtCompliances
           OBJECT IDENTIFIER ::= { mplsLsrExtConformance 1 }

        mplsLsrExtGroups
           OBJECT IDENTIFIER ::= { mplsLsrExtConformance 2 }

        -- Compliance requirement for fully compliant implementations.

        mplsLsrExtModuleFullCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
               "Compliance statement for agents that provide full support
                for MPLS-LSR-EXT-STD-MIB.
                The mandatory group has to be implemented by all LSRs
                that originate, terminate, or act as transit for
                TE-LSPs/tunnels.
                In addition, depending on the type of tunnels supported,
                other groups become mandatory as explained below."

         MODULE MPLS-LSR-STD-MIB -- The MPLS-LSR-STD-MIB, RFC 3813

         MANDATORY-GROUPS {
           mplsInSegmentGroup,
           mplsOutSegmentGroup,
           mplsXCGroup,
           mplsLsrNotificationGroup
         }

    Venkatesan, et al.           Standards Track                   [Page 37]

    RFC 7453                       MPLS-TP MIB                 February 2015

         MODULE -- this module

         MANDATORY-GROUPS    {
           mplsXCExtGroup
         }

         ::= { mplsLsrExtCompliances 1 }

        -- Compliance requirement for implementations that provide
        -- read-only access.

         mplsLsrExtModuleReadOnlyCompliance MODULE-COMPLIANCE
           STATUS current
           DESCRIPTION
              "Compliance requirement for implementations that only
               provide read-only support for MPLS-LSR-EXT-STD-MIB.
               Such devices can then be monitored but cannot be
               configured using this MIB module."

         MODULE MPLS-LSR-STD-MIB

         MANDATORY-GROUPS {
             mplsInterfaceGroup,
             mplsInSegmentGroup,
             mplsOutSegmentGroup
         }

         MODULE -- this module

         GROUP mplsXCExtReadOnlyObjectsGroup
         DESCRIPTION
               "This group is mandatory for devices that support
                opposite-direction XC configuration of tunnels."

         -- mplsXCExtTable
              OBJECT mplsXCExtOppositeDirXCPtr
              MIN-ACCESS   read-only
              DESCRIPTION
                  "Write access is not required.
                   This object indicates the pointer to the opposite-
                   direction XC entry.  The only valid value for XC
                   Pointer is mplsXCTable entry."
              ::= { mplsLsrExtCompliances 2 }

         -- Units of conformance.

    Venkatesan, et al.           Standards Track                   [Page 38]

    RFC 7453                       MPLS-TP MIB                 February 2015

         mplsXCExtGroup  OBJECT-GROUP
         OBJECTS {
             mplsXCExtTunnelPointer,
             mplsXCExtOppositeDirXCPtr
         }
         STATUS  current
         DESCRIPTION
             "This object should be supported in order to access
             the tunnel entry from the XC entry."
         ::= { mplsLsrExtGroups 1 }

         mplsXCExtReadOnlyObjectsGroup OBJECT-GROUP
         OBJECTS {
             mplsXCExtTunnelPointer,
             mplsXCExtOppositeDirXCPtr
         }
         STATUS  current
         DESCRIPTION
             "This Object is needed to associate the opposite-direction
             (forward/reverse) XC entry."
         ::= { mplsLsrExtGroups 2 }

        -- MPLS-LSR-EXT-STD-MIB module ends
        END

    13.  MPLS Tunnel Extension MIB Definitions

       This MIB module imports from [RFC2578], [RFC2579], [RFC2580],
       [RFC3289], [RFC3811], and [RFC3812].

       MPLS-TE-EXT-STD-MIB DEFINITIONS ::= BEGIN

       IMPORTS
          MODULE-IDENTITY, OBJECT-TYPE
             FROM SNMPv2-SMI                               -- RFC 2578
          MODULE-COMPLIANCE, OBJECT-GROUP
             FROM SNMPv2-CONF                              -- RFC 2580
          TruthValue, RowStatus, RowPointer, StorageType
             FROM SNMPv2-TC                                -- RFC 2579
          IndexIntegerNextFree
             FROM DIFFSERV-MIB                             -- RFC 3289
          MplsGlobalId, MplsNodeId, MplsCcId, MplsIccId
             FROM MPLS-TC-EXT-STD-MIB
          mplsStdMIB, MplsTunnelIndex, MplsTunnelInstanceIndex,
          MplsExtendedTunnelId
             FROM MPLS-TC-STD-MIB                          -- RFC 3811
          mplsTunnelIndex, mplsTunnelInstance, mplsTunnelIngressLSRId,
          mplsTunnelEgressLSRId

    Venkatesan, et al.           Standards Track                   [Page 39]

    RFC 7453                       MPLS-TP MIB                 February 2015

             FROM MPLS-TE-STD-MIB                          -- RFC 3812
          ;

       mplsTeExtStdMIB MODULE-IDENTITY
          LAST-UPDATED
             "201502020000Z" -- February 2, 2015
          ORGANIZATION
             "Multiprotocol Label Switching (MPLS) Working Group"
          CONTACT-INFO
             "
                    Venkatesan Mahalingam
                    Dell Inc,
                    5450 Great America Parkway,
                    Santa Clara, CA 95054, USA
              Email: venkat.mahalingams@gmail.com

                    Kannan KV Sampath
                    Redeem,
                    India
              Email: kannankvs@gmail.com

                    Sam Aldrin
                    Huawei Technologies
                    2330 Central Express Way,
                    Santa Clara, CA 95051, USA
              Email:  aldrin.ietf@gmail.com

                    Thomas D. Nadeau
              Email: tnadeau@lucidvision.com
            "
          DESCRIPTION
            "This MIB module contains generic object definitions for
             extending the MPLS Traffic Engineering tunnels in transport
             networks.

             Copyright (c) 2015 IETF Trust and the persons identified as
             authors of the code.  All rights reserved.

             Redistribution and use in source and binary forms, with or
             without modification, is permitted pursuant to, and subject to
             the license terms contained in, the Simplified BSD License set
             forth in Section 4.c of the IETF Trust's Legal Provisions
             Relating to IETF Documents
             (http://trustee.ietf.org/license-info)."

    Venkatesan, et al.           Standards Track                   [Page 40]

    RFC 7453                       MPLS-TP MIB                 February 2015

          -- Revision history.

          REVISION
           "201502020000Z" -- February 2, 2015

          DESCRIPTION
               "MPLS TE MIB objects extension"

          ::= { mplsStdMIB 20 }

       -- Top-level components of this MIB module.

       -- tables, scalars
       mplsTeExtObjects       OBJECT IDENTIFIER
                                        ::= { mplsTeExtStdMIB 0 }
       -- conformance
       mplsTeExtConformance   OBJECT IDENTIFIER
                                        ::= { mplsTeExtStdMIB 1 }

      -- Start of MPLS Transport Profile Node configuration table

      mplsTunnelExtNodeConfigLocalIdNext OBJECT-TYPE
       SYNTAX        IndexIntegerNextFree (0..16777215)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
          "This object contains an unused value for
           mplsTunnelExtNodeConfigLocalId, or a zero to indicate
           that none exist.  Negative values are not allowed,
           as they do not correspond to valid values of
           mplsTunnelExtNodeConfigLocalId."
        ::= { mplsTeExtObjects 1 }

        mplsTunnelExtNodeConfigTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF MplsTunnelExtNodeConfigEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
           "This table allows the operator to map a node or
            LSR identifier (IP-compatible [Global_ID::Node_ID] or
            ICC-based [ICC_Operator_ID::Node_ID]) with a local
            identifier.

            This table is created to reuse the existing
            mplsTunnelTable for MPLS-based transport network
            tunnels also.

    Venkatesan, et al.           Standards Track                   [Page 41]

    RFC 7453                       MPLS-TP MIB                 February 2015

            Since the MPLS tunnel's Ingress/Egress LSR identifiers'
            size (Unsigned32) value is not compatible for
            MPLS-TP Tunnel, i.e., Global_ID::Node_ID of size 8 bytes and
            ICC_Operator_ID::Node_ID of size 12 bytes, there exists a
            need to map the Global_ID::Node_ID or ICC_Operator_ID::Node_ID
            with the local identifier of size 4 bytes (Unsigned32) value
            in order to index (Ingress/Egress LSR identifier)
            the existing mplsTunnelTable."

         ::= { mplsTeExtObjects 2 }

        mplsTunnelExtNodeConfigEntry OBJECT-TYPE
         SYNTAX        MplsTunnelExtNodeConfigEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
            "An entry in this table represents a mapping
            identification for the operator or service provider
            to a node or an LSR.

            As per RFC 6370, IP-compatible mapping is represented
            as Global_ID::Node_ID.

            As per RFC 6923, the CC and the ICC form the ICC_Operator_ID
            as CC::ICC, and ICC-compatible mapping is represented
            as ICC_Operator_ID::Node_ID.

            Note: Each entry in this table should have a unique
            [Global_ID and Node_ID] or [CC::ICC and Node_ID] combination."
            INDEX { mplsTunnelExtNodeConfigLocalId }
            ::= { mplsTunnelExtNodeConfigTable 1 }

        MplsTunnelExtNodeConfigEntry ::= SEQUENCE {
              mplsTunnelExtNodeConfigLocalId     MplsExtendedTunnelId,
              mplsTunnelExtNodeConfigGlobalId    MplsGlobalId,
              mplsTunnelExtNodeConfigCcId        MplsCcId,
              mplsTunnelExtNodeConfigIccId       MplsIccId,
              mplsTunnelExtNodeConfigNodeId      MplsNodeId,
              mplsTunnelExtNodeConfigIccValid    TruthValue,
              mplsTunnelExtNodeConfigStorageType StorageType,
              mplsTunnelExtNodeConfigRowStatus   RowStatus

        }

        mplsTunnelExtNodeConfigLocalId  OBJECT-TYPE
           SYNTAX        MplsExtendedTunnelId
           MAX-ACCESS    not-accessible
           STATUS        current

    Venkatesan, et al.           Standards Track                   [Page 42]

    RFC 7453                       MPLS-TP MIB                 February 2015

           DESCRIPTION
             "This object is used in accommodating the bigger-
              size Global_ID::Node_ID and/or the ICC_Operator_ID::Node_ID
              with the smaller-size LSR identifier in order to index
              the mplsTunnelTable.

              The local identifier is configured between 0 and 16777215,
              as the valid IP address range starts from
              16777216(01.00.00.00).
              This range is chosen to determine whether the
              mplsTunnelTable's Ingress/Egress LSR ID is an IP address or
              local identifier.  If the configured range is not an
              IP address, the operator is expected to retrieve the
              complete information (Global_ID::Node_ID or
              ICC_Operator_ID::Node_ID) from mplsTunnelExtNodeConfigTable.
              This way, the existing mplsTunnelTable is reused for
              bidirectional tunnel extensions for MPLS-based transport
              networks.

              The local identifier allows the operator to assign
              a unique identifier to map Global_ID::Node_ID and/or
              ICC_Operator_ID::Node_ID.  As this local identifier is unique
              within the node and the same syntax of this object can be
              used for MPLS-TE tunnel also, it is up to the operator/local
              management entity to choose a non-conflicting value for
              indexing the MPLS and MPLS-TP tunnel entries."
           ::= { mplsTunnelExtNodeConfigEntry 1 }

        mplsTunnelExtNodeConfigGlobalId  OBJECT-TYPE
           SYNTAX        MplsGlobalId
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
             "This object indicates the Global Operator Identifier.
              This object has no meaning when
              mplsTunnelExtNodeConfigIccValid is set true."
           REFERENCE
                 "MPLS Transport Profile (MPLS-TP) Identifiers, RFC 6370,
                  Section 3."
           ::= { mplsTunnelExtNodeConfigEntry 2 }

        mplsTunnelExtNodeConfigCcId OBJECT-TYPE
             SYNTAX      MplsCcId
             MAX-ACCESS  read-create
             STATUS      current

    Venkatesan, et al.           Standards Track                   [Page 43]

    RFC 7453                       MPLS-TP MIB                 February 2015

             DESCRIPTION
                "This object allows the operator or service provider to
                 configure a unique MPLS-TP ITU-T Country Code (CC)
                 either for Ingress ID or Egress ID.

                 This object has no meaning when
                 mplsTunnelExtNodeConfigIccValid is set to false."
                REFERENCE
                   "MPLS-TP Identifiers Following ITU-T Conventions,
                   RFC 6923, Section 3"
           ::= { mplsTunnelExtNodeConfigEntry 3 }

           mplsTunnelExtNodeConfigIccId OBJECT-TYPE
                SYNTAX      MplsIccId
                MAX-ACCESS  read-create
                STATUS      current
                DESCRIPTION
                   "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 has no meaning when
                    mplsTunnelExtNodeConfigIccValid is set to false."
                REFERENCE
                   "MPLS-TP Identifiers Following ITU-T Conventions,
                    RFC 6923, Section 3"
           ::= { mplsTunnelExtNodeConfigEntry 4 }

           mplsTunnelExtNodeConfigNodeId  OBJECT-TYPE
              SYNTAX        MplsNodeId
              MAX-ACCESS    read-create
              STATUS        current
              DESCRIPTION
                 "This object indicates the Node_ID within the scope
                  of a Global_ID or ICC_Operator_ID."
              REFERENCE
                  "MPLS Transport Profile (MPLS-TP) Identifiers, RFC 6370,
                   Section 4."
              ::= { mplsTunnelExtNodeConfigEntry 5 }

           mplsTunnelExtNodeConfigIccValid  OBJECT-TYPE
              SYNTAX        TruthValue
              MAX-ACCESS    read-create
              STATUS        current
              DESCRIPTION
                 "Denotes whether or not this entry uses
                  mplsTunnelExtNodeConfigCcId,
                  mplsTunnelExtNodeConfigIccId, and

    Venkatesan, et al.           Standards Track                   [Page 44]

    RFC 7453                       MPLS-TP MIB                 February 2015

                  mplsTunnelExtNodeConfigNodeId for mapping
                  the ICC-based identifiers with the local identifier.
                  Note that if this variable is set to false, then the
                  mplsTunnelExtNodeConfigGlobalId and
                  mplsTunnelExtNodeConfigNodeId objects should have
                  the valid information."
              DEFVAL { false }
                ::= { mplsTunnelExtNodeConfigEntry 6 }

           mplsTunnelExtNodeConfigStorageType OBJECT-TYPE
              SYNTAX        StorageType
              MAX-ACCESS    read-create
              STATUS        current
              DESCRIPTION
               "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."
              DEFVAL { volatile }
              ::= { mplsTunnelExtNodeConfigEntry 7 }

        mplsTunnelExtNodeConfigRowStatus OBJECT-TYPE
           SYNTAX        RowStatus
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "This object allows the operator to create, modify,
               and/or delete a row in this table."
           ::= { mplsTunnelExtNodeConfigEntry 8 }

       -- End of MPLS Transport Profile Node configuration table

       -- Start of MPLS Transport Profile Node IP-compatible
       -- mapping table

      mplsTunnelExtNodeIpMapTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF MplsTunnelExtNodeIpMapEntry

         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "This read-only table allows the operator to retrieve
              the local identifier for a given Global_ID::Node_ID in an
              IP-compatible operator environment.
              This table MAY be used in on-demand and/or proactive
              OAM operations to get the Ingress/Egress LSR identifier

    Venkatesan, et al.           Standards Track                   [Page 45]

    RFC 7453                       MPLS-TP MIB                 February 2015

              (local identifier) from Src-Global_Node_ID
              or Dst-Global_Node_ID.  The Ingress and Egress LSR
              identifiers are used to retrieve the tunnel entry.

              This table returns nothing when the associated entry
              is not defined in mplsTunnelExtNodeConfigTable."
         ::= { mplsTeExtObjects 3 }

        mplsTunnelExtNodeIpMapEntry OBJECT-TYPE
         SYNTAX        MplsTunnelExtNodeIpMapEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
               "An entry in this table represents a mapping of
                Global_ID::Node_ID with the local identifier.

                An entry in this table is created automatically when
                the local identifier is associated with Global_ID and
                Node_Id in the mplsTunnelExtNodeConfigTable.

                Note: Each entry in this table should have a unique
                Global_ID and Node_ID combination."
          INDEX { mplsTunnelExtNodeIpMapGlobalId,
                  mplsTunnelExtNodeIpMapNodeId
                }
          ::= { mplsTunnelExtNodeIpMapTable 1 }

        MplsTunnelExtNodeIpMapEntry ::= SEQUENCE {
              mplsTunnelExtNodeIpMapGlobalId    MplsGlobalId,
              mplsTunnelExtNodeIpMapNodeId      MplsNodeId,
              mplsTunnelExtNodeIpMapLocalId     MplsExtendedTunnelId
        }

        mplsTunnelExtNodeIpMapGlobalId  OBJECT-TYPE
           SYNTAX        MplsGlobalId
           MAX-ACCESS    not-accessible
           STATUS        current
           DESCRIPTION
             "This object indicates the Global_ID."
           ::= { mplsTunnelExtNodeIpMapEntry 1 }

        mplsTunnelExtNodeIpMapNodeId  OBJECT-TYPE
           SYNTAX        MplsNodeId
           MAX-ACCESS    not-accessible
           STATUS        current

    Venkatesan, et al.           Standards Track                   [Page 46]

    RFC 7453                       MPLS-TP MIB                 February 2015

           DESCRIPTION
             "This object indicates the Node_ID within the
              operator."
           ::= { mplsTunnelExtNodeIpMapEntry 2 }

        mplsTunnelExtNodeIpMapLocalId  OBJECT-TYPE
           SYNTAX        MplsExtendedTunnelId
           MAX-ACCESS    read-only
           STATUS        current
           DESCRIPTION
             "This object contains an IP-compatible local identifier
              that is defined in mplsTunnelExtNodeConfigTable."
           ::= { mplsTunnelExtNodeIpMapEntry 3 }

        -- End MPLS Transport Profile Node IP compatible table

        -- Start of MPLS Transport Profile Node ICC based table

        mplsTunnelExtNodeIccMapTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF MplsTunnelExtNodeIccMapEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
            "This read-only table allows the operator to retrieve
             the local identifier for a given ICC_Operator_ID::Node_ID
             in an ICC operator environment.

             This table MAY be used in on-demand and/or proactive
             OAM operations to get the Ingress/Egress LSR
             identifier (local identifier) from Src-ICC
             or Dst-ICC.  The Ingress and Egress LSR
             identifiers are used to retrieve the tunnel entry.
             This table returns nothing when the associated entry
             is not defined in mplsTunnelExtNodeConfigTable."
         ::= { mplsTeExtObjects 4 }

        mplsTunnelExtNodeIccMapEntry OBJECT-TYPE
         SYNTAX        MplsTunnelExtNodeIccMapEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
               "An entry in this table represents a mapping of
                ICC_Operator_ID::Node_ID with the local identifier.

                An entry in this table is created automatically when
                the local identifier is associated with
                ICC_Operator_ID::Node_ID in
                the mplsTunnelExtNodeConfigTable."

    Venkatesan, et al.           Standards Track                   [Page 47]

    RFC 7453                       MPLS-TP MIB                 February 2015

          INDEX { mplsTunnelExtNodeIccMapCcId,
                  mplsTunnelExtNodeIccMapIccId,
                  mplsTunnelExtNodeIccMapNodeId }
          ::= { mplsTunnelExtNodeIccMapTable 1 }

        MplsTunnelExtNodeIccMapEntry ::= SEQUENCE {
              mplsTunnelExtNodeIccMapCcId       MplsCcId,
              mplsTunnelExtNodeIccMapIccId      MplsIccId,
              mplsTunnelExtNodeIccMapNodeId     MplsNodeId,
              mplsTunnelExtNodeIccMapLocalId    MplsExtendedTunnelId
        }

        mplsTunnelExtNodeIccMapCcId OBJECT-TYPE
             SYNTAX      MplsCcId
             MAX-ACCESS  not-accessible
             STATUS      current
             DESCRIPTION
                "This object allows the operator or service provider to
                 configure a unique MPLS-TP ITU-T Country Code (CC)
                 either for Ingress or Egress LSR ID.

                 The CC is a string of two alphabetic characters
                 represented with uppercase letters (i.e., A-Z)."
             ::= { mplsTunnelExtNodeIccMapEntry 1 }

             mplsTunnelExtNodeIccMapIccId OBJECT-TYPE
                  SYNTAX      MplsIccId
                  MAX-ACCESS  not-accessible
                  STATUS      current
                  DESCRIPTION
                     "This object allows the operator or service provider
                      to configure a unique MPLS-TP ITU-T Carrier
                      Code (ICC) either for Ingress or Egress LSR ID.

                      The ICC is a string of one to six characters, each
                      character being either alphabetic (i.e., A-Z) or
                      numeric (i.e., 0-9) characters.  Alphabetic characters
                      in the ICC should be represented with uppercase
                      letters."
             ::= { mplsTunnelExtNodeIccMapEntry 2 }

             mplsTunnelExtNodeIccMapNodeId  OBJECT-TYPE
                SYNTAX        MplsNodeId
                MAX-ACCESS    not-accessible
                STATUS        current
                DESCRIPTION
                  "This object indicates the Node_ID within the
                   ICC-based operator."

    Venkatesan, et al.           Standards Track                   [Page 48]

    RFC 7453                       MPLS-TP MIB                 February 2015

             ::= { mplsTunnelExtNodeIccMapEntry 3}

        mplsTunnelExtNodeIccMapLocalId  OBJECT-TYPE
           SYNTAX        MplsExtendedTunnelId
           MAX-ACCESS    read-only
           STATUS        current
           DESCRIPTION
             "This object contains an ICC-based local identifier
              that is defined in mplsTunnelExtNodeConfigTable."
        ::= { mplsTunnelExtNodeIccMapEntry 4 }

     -- End MPLS Transport Profile Node ICC-based table

     -- Start of MPLS Tunnel table extension

       mplsTunnelExtTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF MplsTunnelExtEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
           "This table represents extensions to mplsTunnelTable
            in order to support MPLS-TP Tunnels.

            As per MPLS-TP Identifiers (RFC 6370), LSP_ID for IP-based
            co-routed bidirectional tunnel:

            A1-{Global_ID::Node_ID::Tunnel_Num}::Z9-{Global_ID::
            Node_ID::Tunnel_Num}::LSP_Num

            LSP_ID for IP based associated bidirectional tunnel:
            A1-{Global_ID::Node_ID::Tunnel_Num::LSP_Num}::
            Z9-{Global_ID::Node_ID::Tunnel_Num::LSP_Num}

            mplsTunnelTable is reused for forming the LSP_ID
            as follows:

            Source Tunnel_Num is mapped with mplsTunnelIndex,
            Source Node_ID is mapped with
            mplsTunnelIngressLSRId, Destination Node_ID is
            mapped with mplsTunnelEgressLSRId, and LSP_Num is mapped with
            mplsTunnelInstance.

            Source Global_ID::Node_ID and/or ICC_Operator_ID::Node_ID and
            Destination Global_ID::Node_ID and/or ICC_Operator_ID::Node-ID
            are maintained in the mplsTunnelExtNodeConfigTable.
            mplsTunnelExtNodeConfigLocalId is used to create an entry
            in mplsTunnelTable."

    Venkatesan, et al.           Standards Track                   [Page 49]

    RFC 7453                       MPLS-TP MIB                 February 2015

         REFERENCE
               "MPLS Transport Profile (MPLS-TP) Identifiers, RFC 6370."
         ::= { mplsTeExtObjects 5 }

        mplsTunnelExtEntry OBJECT-TYPE
        SYNTAX        MplsTunnelExtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
              "An entry in this table represents additional MPLS-TP-
               specific tunnel configurations."
        INDEX {
          mplsTunnelIndex,
          mplsTunnelInstance,
          mplsTunnelIngressLSRId,
          mplsTunnelEgressLSRId
         }
         ::= { mplsTunnelExtTable 1 }

        MplsTunnelExtEntry ::= SEQUENCE {
             mplsTunnelExtOppositeDirPtr          RowPointer,
             mplsTunnelExtOppositeDirTnlValid     TruthValue,
             mplsTunnelExtDestTnlIndex            MplsTunnelIndex,
             mplsTunnelExtDestTnlLspIndex         MplsTunnelInstanceIndex,
             mplsTunnelExtDestTnlValid            TruthValue,
             mplsTunnelExtIngressLSRLocalIdValid  TruthValue,
             mplsTunnelExtEgressLSRLocalIdValid   TruthValue
        }

        mplsTunnelExtOppositeDirPtr  OBJECT-TYPE
           SYNTAX        RowPointer
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "This object points to the opposite-direction tunnel entry."
        ::= { mplsTunnelExtEntry 1 }

        mplsTunnelExtOppositeDirTnlValid  OBJECT-TYPE
           SYNTAX        TruthValue
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "Denotes whether or not this tunnel uses
               mplsTunnelExtOppositeDirPtr for identifying the opposite-
               direction tunnel information.  Note that if this variable
               is set to true, then the mplsTunnelExtOppositeDirPtr should
               point to the first accessible row of the valid opposite-
               direction tunnel."

    Venkatesan, et al.           Standards Track                   [Page 50]

    RFC 7453                       MPLS-TP MIB                 February 2015

           DEFVAL { false }
             ::= { mplsTunnelExtEntry 2 }

        mplsTunnelExtDestTnlIndex  OBJECT-TYPE
           SYNTAX        MplsTunnelIndex
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "This object is applicable only for the bidirectional
               tunnel that has the forward and reverse LSPs in the
               different tunnel entries.

               The values of this object and the
               mplsTunnelExtDestTnlLspIndex object together can be used
               to identify an opposite-direction LSP, i.e., if the
               mplsTunnelIndex and mplsTunnelInstance hold the value
               for forward LSP, this object and
               mplsTunnelExtDestTnlLspIndex can be used to retrieve
               the reverse-direction LSP and vice versa.

               This object and mplsTunnelExtDestTnlLspIndex values
               provide the first two indices of tunnel entry, and
               the remaining indices can be derived as follows:
               the Ingress and Egress Identifiers should be
               swapped in order to index the other direction tunnel."
              ::= { mplsTunnelExtEntry 3 }

        mplsTunnelExtDestTnlLspIndex  OBJECT-TYPE
           SYNTAX        MplsTunnelInstanceIndex
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "This object is applicable only for the bidirectional
               tunnel that has the forward and reverse LSPs in the
               different tunnel entries.  This object holds
               the instance index of the opposite-direction tunnel."
              ::= { mplsTunnelExtEntry 4 }

        mplsTunnelExtDestTnlValid  OBJECT-TYPE
           SYNTAX        TruthValue
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
              "Denotes whether or not this tunnel uses
               mplsTunnelExtDestTnlIndex and
               mplsTunnelExtDestTnlLspIndex for identifying
               the opposite-direction tunnel information.  Note that if
               this variable is set to true, then the

    Venkatesan, et al.           Standards Track                   [Page 51]

    RFC 7453                       MPLS-TP MIB                 February 2015

               mplsTunnelExtDestTnlIndex and
               mplsTunnelExtDestTnlLspIndex objects should have
               the valid opposite-direction tunnel indices."
           DEFVAL { false }
             ::= { mplsTunnelExtEntry 5 }

        mplsTunnelExtIngressLSRLocalIdValid OBJECT-TYPE
           SYNTAX        TruthValue
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
            "This object denotes whether the mplsTunnelIngressLSRId
             contains the local value that is used to reference
             the complete Ingress Global_ID::Node_ID or ICC_Operator_ID
             from the mplsTunnelExtNodeConfigTable.

             If this object is set to FALSE, mplsTunnelExtNodeConfigTable
             will not contain an entry to reference the local identifier
             with Global_ID::Node_ID or ICC_Operator_ID::Node_ID value.

             This object is set to FALSE for legacy implementations like
             MPLS TE tunnels where mplsTunnelIngressId itself provides
             the complete Ingress LSR ID."
           REFERENCE
             "MPLS-TE-STD-MIB (RFC 3812), Section 11.
              mplsTunnelIngressLSRId object in mplsTunnelTable."
           DEFVAL { false }
             ::= { mplsTunnelExtEntry 6 }

        mplsTunnelExtEgressLSRLocalIdValid OBJECT-TYPE
           SYNTAX        TruthValue
           MAX-ACCESS    read-create
           STATUS        current
           DESCRIPTION
            "This object denotes whether the mplsTunnelEgressLSRId
             contains the local value, which is used to reference
             the complete Egress Global_ID::Node_ID or
             ICC_Operator_ID::Node_ID from
             the mplsTunnelExtNodeConfigTable.

             If this object is set to FALSE, mplsTunnelExtNodeConfigTable
             will not contain an entry to reference the local identifier
             with Global_ID::Node_ID or ICC_Operator_ID::Node_ID value.

             This object is set to FALSE for legacy implementations like
             MPLS TE tunnels where mplsTunnelEgressId itself provides
             the complete Egress LSR ID."

    Venkatesan, et al.           Standards Track                   [Page 52]

    RFC 7453                       MPLS-TP MIB                 February 2015

           REFERENCE
             "MPLS-TE-STD-MIB (RFC 3812), Section 11.
              mplsTunnelEgressLSRId object in mplsTunnelTable."
           DEFVAL { false }
             ::= { mplsTunnelExtEntry 7 }

        -- End of MPLS Tunnel table extension

       -- Module compliance.

       mplsTeExtCompliances
          OBJECT IDENTIFIER ::= { mplsTeExtConformance 1 }

       mplsTeExtGroups
          OBJECT IDENTIFIER ::= { mplsTeExtConformance 2 }

       -- Compliance requirement for fully compliant implementations.

       mplsTeExtModuleFullCompliance MODULE-COMPLIANCE
          STATUS current
          DESCRIPTION
               "Compliance statement for agents that provide full
                support the MPLS-TE-EXT-STD-MIB module."

          MODULE -- this module

             -- The mandatory group has to be implemented by all
             -- LSRs that originate/terminate MPLS-TP Tunnels.
             -- In addition, depending on the type of tunnels
             -- supported, other groups become mandatory as
             -- explained below.

             MANDATORY-GROUPS    {
                mplsTunnelExtGroup
             }

             GROUP mplsTunnelExtIpOperatorGroup
             DESCRIPTION
                 "This group is mandatory for devices that support
                  configuration of IP-based identifier tunnels."

             GROUP mplsTunnelExtIccOperatorGroup
             DESCRIPTION
                 "This group is mandatory for devices that support
                  configuration of ICC based tunnels."

              ::= { mplsTeExtCompliances 1 }

    Venkatesan, et al.           Standards Track                   [Page 53]

    RFC 7453                       MPLS-TP MIB                 February 2015

       -- Compliance requirement for read-only implementations.

       mplsTeExtModuleReadOnlyCompliance MODULE-COMPLIANCE
          STATUS current
          DESCRIPTION
              "Compliance statement for agents that only provide
               read-only support for the MPLS-TE-EXT-STD-MIB module."

          MODULE -- this module

       MANDATORY-GROUPS    {
          mplsTunnelExtGroup
       }

       GROUP mplsTunnelExtIpOperatorGroup
       DESCRIPTION
           "This group is mandatory for devices that support
            configuration of IP-based identifier tunnels."

       GROUP mplsTunnelExtIccOperatorGroup
       DESCRIPTION
           "This group is mandatory for devices that support
            configuration of ICC-based tunnels."

       -- mplsTunnelExtTable

       OBJECT      mplsTunnelExtOppositeDirPtr
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtOppositeDirTnlValid
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtDestTnlIndex
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtDestTnlLspIndex
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

    Venkatesan, et al.           Standards Track                   [Page 54]

    RFC 7453                       MPLS-TP MIB                 February 2015

       OBJECT      mplsTunnelExtDestTnlValid
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtIngressLSRLocalIdValid
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtEgressLSRLocalIdValid
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigGlobalId
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigNodeId
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigStorageType
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigRowStatus
       SYNTAX      RowStatus { active(1) }
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigCcId
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

       OBJECT      mplsTunnelExtNodeConfigIccId
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

    Venkatesan, et al.           Standards Track                   [Page 55]

    RFC 7453                       MPLS-TP MIB                 February 2015

       OBJECT      mplsTunnelExtNodeConfigIccValid
       MIN-ACCESS  read-only
       DESCRIPTION
             "Write access is not required."

            ::= { mplsTeExtCompliances 2 }

         -- Units of conformance.

         mplsTunnelExtGroup OBJECT-GROUP
            OBJECTS {
              mplsTunnelExtOppositeDirPtr,
              mplsTunnelExtOppositeDirTnlValid,
              mplsTunnelExtDestTnlIndex,
              mplsTunnelExtDestTnlLspIndex,
              mplsTunnelExtDestTnlValid,
              mplsTunnelExtIngressLSRLocalIdValid,
              mplsTunnelExtEgressLSRLocalIdValid
           }

          STATUS  current
          DESCRIPTION
               "Necessary, but not sufficient, set of objects to
                 implement tunnels.  In addition, depending on the
                 operating environment, the following groups are
                 mandatory."
          ::= { mplsTeExtGroups 1 }

       mplsTunnelExtIpOperatorGroup  OBJECT-GROUP
          OBJECTS { mplsTunnelExtNodeConfigLocalIdNext,
                    mplsTunnelExtNodeConfigGlobalId,
                    mplsTunnelExtNodeConfigNodeId,
                    mplsTunnelExtNodeIpMapLocalId,
                    mplsTunnelExtNodeConfigStorageType,
                    mplsTunnelExtNodeConfigRowStatus
          }
          STATUS  current
          DESCRIPTION
               "Object(s) needed to implement IP-compatible tunnels."
          ::= { mplsTeExtGroups 2 }

       mplsTunnelExtIccOperatorGroup  OBJECT-GROUP
          OBJECTS { mplsTunnelExtNodeConfigLocalIdNext,
                    mplsTunnelExtNodeConfigCcId,
                    mplsTunnelExtNodeConfigIccId,
                    mplsTunnelExtNodeConfigNodeId,
                    mplsTunnelExtNodeConfigIccValid,
                    mplsTunnelExtNodeIccMapLocalId,

    Venkatesan, et al.           Standards Track                   [Page 56]

    RFC 7453                       MPLS-TP MIB                 February 2015

                    mplsTunnelExtNodeConfigStorageType,
                    mplsTunnelExtNodeConfigRowStatus
          }
          STATUS  current
          DESCRIPTION
               "Object(s) needed to implement ICC-based tunnels."
          ::= { mplsTeExtGroups 3 }

       -- MPLS-TE-EXT-STD-MIB module ends
       END

    14.  Security Considerations

       This document follows the security considerations mentioned in
       Section 12 of [RFC3812].  These security considerations are also
       applicable to the MIB objects and tables defined in this document,
       which are identified as below.

          - The common objects mplsIdGlobalId, mplsIdNodeId, mplsIdCc, and
            mplsIdIcc are used to define the identity of an MPLS-TP node for
            OAM purposes.  If write-access is allowed to these objects it
            offers the possibility for incorrect values to be entered that
            will confuse the information returned by OAM functions and
            possibly prevent OAM from operating correctly.  Furthermore,
            there is the possibility of inducing one node to impersonate
            another with confusing results.

          - mplsTunnelExtNodeConfigTable, mplsTunnelExtTable and
            mplsXCExtTable collectively contain objects to provision MPLS-TP
            Tunnels, tunnel hops, and tunnel resources.

       Some of the readable objects in this MIB module (i.e., objects with a
       MAX-ACCESS other than not-accessible) may be considered sensitive or
       vulnerable in some network environments.  It is thus important to
       control even GET and/or NOTIFY access to these objects and possibly
       to even encrypt the values of these objects when sending them over
       the network via SNMP.  These are the tables and objects and their
       sensitivity/vulnerability:

          - mplsTunnelExtNodeConfigTable, mplsTunnelExtTable, and
            mplsXCExtTable collectively show the characteristics of the
            MPLS-TP tunnel network topology.  If an Administrator does not
            want to reveal this information, then these tables should be
            considered sensitive/vulnerable.

       SNMP versions prior to SNMPv3 did not include adequate security.
       Even if the network itself is secure (for example by using IPsec),
       there is no control as to who on the secure network is allowed to

    Venkatesan, et al.           Standards Track                   [Page 57]

    RFC 7453                       MPLS-TP MIB                 February 2015

       access and GET/SET (read/change/create/delete) the objects in this
       MIB module.

       Implementations SHOULD provide the security features described by the
       SNMPv3 framework (see [RFC3410]), and implementations claiming
       compliance to the SNMPv3 standard MUST include full support for
       authentication and privacy via the User-based Security Model (USM)
       [RFC3414] with the AES cipher algorithm [RFC3826].  Implementations
       MAY also provide support for the Transport Security Model (TSM)
       [RFC5591] in combination with a secure transport such as SSH
       [RFC5592] or TLS/DTLS [RFC6353].

       Further, deployment of SNMP versions prior to SNMPv3 is NOT
       RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
       enable cryptographic security.  It is then a customer/operator
       responsibility to ensure that the SNMP entity giving access to an
       instance of this MIB module is properly configured to give access to
       the objects only to those principals (users) that have legitimate
       rights to indeed GET or SET (change/create/delete) them.

    15.  IANA Considerations

       As described in [RFC4221] and [RFC6639], and as requested in the
       MPLS-TC-STD-MIB [RFC3811], MPLS-related Standards Track MIB modules
       should be rooted under the mplsStdMIB subtree.  There are four MPLS
       MIB modules contained in this document; each of the following
       subsections lists a new assignment made by IANA under the mplsStdMIB
       subtree.  New assignments can only be made via a Standards Action as
       specified in [RFC5226].

    15.1.  IANA Considerations for MPLS-TC-EXT-STD-MIB

       IANA has assigned the OID { mplsStdMIB 17 } to the
       MPLS-TC-EXT-STD-MIB module specified in this document.

    15.2.  IANA Considerations for MPLS-ID-STD-MIB

       IANA has assigned the OID { mplsStdMIB 18 } to the MPLS-ID-STD-MIB
       module specified in this document.

    15.3.  IANA Considerations for MPLS-LSR-EXT-STD-MIB

       IANA has assigned the OID { mplsStdMIB 19 } to the
       MPLS-LSR-EXT-STD-MIB module specified in this document.

    Venkatesan, et al.           Standards Track                   [Page 58]

    RFC 7453                       MPLS-TP MIB                 February 2015

    15.4.  IANA Considerations for MPLS-TE-EXT-STD-MIB

       IANA has assigned the OID { mplsStdMIB 20 } to the
       MPLS-TE-EXT-STD-MIB module specified in this document.

    16.  References

    16.1.  Normative References

       [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
                  Requirement Levels", BCP 14, RFC 2119, March 1997,
                  <http://www.rfc-editor.org/info/rfc2119>.

       [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
                  Schoenwaelder, Ed., "Structure of Management Information
                  Version 2 (SMIv2)", STD 58, RFC 2578, April 1999,
                  <http://www.rfc-editor.org/info/rfc2578>.

       [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
                  Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD
                  58, RFC 2579, April 1999,
                  <http://www.rfc-editor.org/info/rfc2579>.

       [RFC2580]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
                  Schoenwaelder, Ed., "Conformance Statements for SMIv2",
                  STD 58, RFC 2580, April 1999,
                  <http://www.rfc-editor.org/info/rfc2580>.

       [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
                  Label Switching Architecture", RFC 3031, January 2001,
                  <http://www.rfc-editor.org/info/rfc3031>.

       [RFC3289]  Baker, F., Chan, K., and A. Smith, "Management Information
                  Base for the Differentiated Services Architecture", RFC
                  3289, May 2002, <http://www.rfc-editor.org/info/rfc3289>.

       [RFC3811]  Nadeau, T., Ed., and J. Cucchiara, Ed., "Definitions of
                  Textual Conventions (TCs) for Multiprotocol Label
                  Switching (MPLS) Management", RFC 3811, June 2004,
                  <http://www.rfc-editor.org/info/rfc3811>.

       [RFC3812]  Srinivasan, C., Viswanathan, A., and T. Nadeau,
                  "Multiprotocol Label Switching (MPLS) Traffic Engineering
                  (TE) Management Information Base (MIB)", RFC 3812, June
                  2004, <http://www.rfc-editor.org/info/rfc3812>.

    Venkatesan, et al.           Standards Track                   [Page 59]

    RFC 7453                       MPLS-TP MIB                 February 2015

       [RFC3813]  Srinivasan, C., Viswanathan, A., and T. Nadeau,
                  "Multiprotocol Label Switching (MPLS) Label Switching
                  Router (LSR) Management Information Base (MIB)", RFC 3813,
                  June 2004, <http://www.rfc-editor.org/info/rfc3813>.

       [RFC4802]  Nadeau, T., Ed., and A. Farrel, Ed., "Generalized
                  Multiprotocol Label Switching (GMPLS) Traffic Engineering
                  Management Information Base", RFC 4802, February 2007,
                  <http://www.rfc-editor.org/info/rfc4802>.

       [RFC6370]  Bocci, M., Swallow, G., and E. Gray, "MPLS Transport
                  Profile (MPLS-TP) Identifiers", RFC 6370, September 2011,
                  <http://www.rfc-editor.org/info/rfc6370>.

       [RFC6923]  Winter, R., Gray, E., van Helvoort, H., and M. Betts,
                  "MPLS Transport Profile (MPLS-TP) Identifiers Following
                  ITU-T Conventions", RFC 6923, May 2013,
                  <http://www.rfc-editor.org/info/rfc6923>.

       [T.50]     ITU-T, "International Reference Alphabet (IRA) (Formerly
                  International Alphabet No. 5 or IA5) - Information
                  technology - 7-bit coded character set for information
                  exchange", ITU-T Recommendation T.50, September 1992.

    16.2.  Informative References

       [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
                  "Introduction and Applicability Statements for Internet-
                  Standard Management Framework", RFC 3410, December 2002,
                  <http://www.rfc-editor.org/info/rfc3410>.

       [RFC3414]  Blumenthal, U. and B. Wijnen, "User-based Security Model
                  (USM) for version 3 of the Simple Network Management
                  Protocol (SNMPv3)", STD 62, RFC 3414, December 2002,
                  <http://www.rfc-editor.org/info/rfc3414>.

       [RFC3826]  Blumenthal, U., Maino, F., and K. McCloghrie, "The
                  Advanced Encryption Standard (AES) Cipher Algorithm in the
                  SNMP User-based Security Model", RFC 3826, June 2004,
                  <http://www.rfc-editor.org/info/rfc3826>.

       [RFC4221]  Nadeau, T., Srinivasan, C., and A. Farrel, "Multiprotocol
                  Label Switching (MPLS) Management Overview", RFC 4221,
                  November 2005, <http://www.rfc-editor.org/info/rfc4221>.

       [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
                  IANA Considerations Section in RFCs", BCP 26, RFC 5226,
                  May 2008, <http://www.rfc-editor.org/info/rfc5226>.

    Venkatesan, et al.           Standards Track                   [Page 60]

    RFC 7453                       MPLS-TP MIB                 February 2015

       [RFC5591]  Harrington, D. and W. Hardaker, "Transport Security Model
                  for the Simple Network Management Protocol (SNMP)", STD
                  78, RFC 5591, June 2009,
                  <http://www.rfc-editor.org/info/rfc5591>.

       [RFC5592]  Harrington, D., Salowey, J., and W. Hardaker, "Secure
                  Shell Transport Model for the Simple Network Management
                  Protocol (SNMP)", RFC 5592, June 2009,
                  <http://www.rfc-editor.org/info/rfc5592>.

       [RFC5654]  Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed.,
                  Sprecher, N., and S. Ueno, "Requirements of an MPLS
                  Transport Profile", RFC 5654, September 2009,
                  <http://www.rfc-editor.org/info/rfc5654>.

       [RFC6353]  Hardaker, W., "Transport Layer Security (TLS) Transport
                  Model for the Simple Network Management Protocol (SNMP)",
                  STD 78, RFC 6353, July 2011,
                  <http://www.rfc-editor.org/info/rfc6353>.

       [RFC6639]  King, D., Ed., and M. Venkatesan, Ed., "Multiprotocol
                  Label Switching Transport Profile (MPLS-TP) MIB-Based
                  Management Overview", RFC 6639, June 2012,
                  <http://www.rfc-editor.org/info/rfc6639>.

    Venkatesan, et al.           Standards Track                   [Page 61]

    RFC 7453                       MPLS-TP MIB                 February 2015

    Acknowledgments

       The authors would like to thank Francesco Fondelli, Josh Littlefield,
       Agrahara Kiran Koushik, Metrri Jain, Muly Ilan, Randy Presuhn, Elwyn
       Davies, Tom Taylor, and Pete Resnick for their valuable reviews and
       comments.  A special thanks to Joan Cucchiara and Adrian Farrel for
       really getting the MIB modules into shape.

    Authors' Addresses

       Venkatesan Mahalingam
       Dell Inc.
       5450 Great America Parkway,
       Santa Clara, CA 95054
       United States
       EMail: venkat.mahalingams@gmail.com

       Sam Aldrin
       Huawei Technologies
       2330 Central Express Way,
       Santa Clara, CA 95051
       United States
       EMail:  aldrin.ietf@gmail.com

       Thomas D. Nadeau
       Brocade
       EMail: tnadeau@lucidvision.com

       Kannan KV Sampath
       Redeem
       India
       EMail: kannankvs@gmail.com

    Venkatesan, et al.           Standards Track                   [Page 62]