  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


        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)."






     -- 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.





       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



      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




        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



             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



         (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






      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."



     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."



        ::= { 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."




    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."



      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



          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."




      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 }




  -- 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."






  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."






  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,



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

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