Network Working Group                                       Martin Dubuc
Internet Draft                                            edgeflow, Inc.                                          Meriton Networks
Expires: April August 2002
                                                     Sudheer Dharanikota
                                                          Nayna Networks, Inc. Networks

                                                        Thomas D. Nadeau
                                                           Cisco Systems, Inc. Systems

                                                        Jonathan P. Lang
                                                           Evan McGinnis
                                                        Calient Networks, Inc. Networks

                                                           February 2002

          Link Management Protocol Management Information Base Using SMIv2

                    draft-ietf-ccamp-lmp-mib-00.txt

                    draft-ietf-ccamp-lmp-mib-01.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC 2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet- Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Table of Contents

1.   Abstract .....................................................    2
2.   Introduction .................................................    2
3.   Terminology ..................................................    3
4.   The SNMP Management Framework ................................    3
4.1. Object Definitions ...........................................    4

5.   Feature Checklist ............................................    4
6.   Outline ......................................................    5
6.1. Summary of LMP MIB ...........................................    6    5
7.   Brief Description of MIB Objects .............................    6
7.1. lmpNbrTable ..................................................    6
7.2. lmpControlChannelTable .......................................    6
7.3. lmpControlChannelPerfTable ...................................    6
7.4. lmpTeLinkTable ...............................................    7
7.5. lmpLinkVerificationTable .....................................    7
7.6. lmpDataBearingLinkTable ......................................    7
7.7. lmpDataBearingLinkPerfTable ..................................    7
8.   Example of LMP Control Channel Interface Setup ...............    7
9.   Application of the Interface Interfaces Group to LMP ....................   10 ...................    9
9.1. Support of the LMP Layer by ifTable ..........................   10
10.  Link Management Protocol MIB Definitions .....................   12
11.  Security Considerations ......................................   51   66
12.  Acknowledgments ..............................................   52   67
13.  References ...................................................   52   67
14.  Authors' Addresses ...........................................   55   69
15.  Full Copyright Statement .....................................   55   70

1.  Abstract

   This memo defines an experimental portion of the Management Informa-
   tion Base (MIB) for use with network management protocols in the
   Internet community. In particular, it describes managed objects for
   modeling the Link Management Protocol (LMP) [LMP].

2.  Introduction

   This memo defines an experimental portion of the Management Informa-
   tion Base (MIB) for use with network management protocols

   Current work is underway in the
   Internet community. In particular, it describes managed objects for
   modeling the IETF to specify a suite of protocols
   to be used as a common control plane and a separate common measure-
   ment plane. The Link Management Protocol (LMP) [LMP]. Protocol, which primary purpose is to
   manage traffic engineering (TE) links, is one of the key components
   of this standardization activity. Primary goals of LMP are the
   maintenance of the control channel connectivity, correlation of link
   properties, verification of data-bearing links and detection and iso-
   lation of link faults.

   We describe in this document a MIB that can be used to manage LMP
   implementations. This MIB covers both configuration and performance
   monitoring aspects of LMP.

   Comments should be made directly to the ccamp mailing list at
   ccamp@ops.ietf.org.

   This memo does not, in its draft form, specify a standard for the
   Internet community.

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

3.  Terminology

   This document uses terminology from the document describing the Link
   Management Protocol [LMP]. An "LMP adjacency" is formed between two
   nodes that support the same capabilities, and LMP messages are
   exchanged between the node pair over control channels that form this
   adjacency. Several control channels can be active at the same time.
   With the exception of messages related to control channel management,
   any time a LMP message needs to be transferred to a neighbor node, it
   can be sent on any of the active control channels. The control chan-
   nels can also be used to exchange MPLS control plane information or
   routing information.

   LMP is designed to support aggregation of one or more data-bearing
   links into a traffic-engineering (TE) link. The data-bearing links
   can be either component links or ports depending on their multiplex-
   ing capability (see [LMP] for distinction between port and component
   link). Furthermore, the data-bearing links may be defined as primary
   or secondary data-bearing links, where a secondary data-bearing link
   is used to protect a primary data-bearing link, i.e. if a primary
   data-bearing link fails, data traffic is switched over to one of the
   secondary data-bearing links.

   Each TE link is associated with an LMP adjacency, and one or more
   control channels are used to exchange LMP messages. messages for a particular
   adjacency. In turn, control channels are used to manage one or more the TE links. links
   associated with the LMP adjacency.

4.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major com-
   ponents:

   -  An overall architecture, described in RFC 2571 [SNMPArch].

   - [RFC2571].

      Mechanisms for describing and naming objects and events for the
      purpose of management.  The first version of this Structure of
      Management Information (SMI) is called SMIv1 and described in
      STD 16, RFC 1155 [SMIv1], [RFC1155], STD 16, RFC 1212 [SNMPv1MIBDef] [RFC1212] and RFC
      1215
      [SNMPv1Traps]. [RFC1215].  The second version, called SMIv2, is described
      in STD 58, RFC 2578 [SMIv2], [RFC2578], STD 58, RFC 2579 [SNMPv2TC] [RFC2579] and
      STD 58, RFC 2580
      [SNMPv2Conf]. [RFC2580].

   -  Message protocols for transferring management information.  The
      first version of the SNMP message protocol is called SNMPv1 and
      described in STD 15, RFC 1157 [SNMPv1]. [RFC1157].  A second version of
      the SNMP message protocol, which is not an Internet standards
      track protocol, is called SNMPv2c and described in RFC 1901
      [SNMPv2c]
      [RFC1901] and RFC 1906 [SNMPv2TM]. [RFC1906].  The third version of the
      message protocol is called SNMPv3 and described in RFC 1906
      [SNMPv2TM],
      [RFC1906], RFC 2272 [SNMPv3MP] 2572 [RFC2572] and RFC 2574 [SNMPv3USM]. [RFC2574].

   -  Protocol operations for accessing management information.  The
      first set of protocol operations and associated PDU formats is
      described in STD 15, RFC 1157 [SNMPv1]. [RFC1157].  A second set of
      protocol operations and associated PDU formats is described in
      RFC 1905
      [SNMPv2PO]. [RFC1905].

   -  A set of fundamental applications described in RFC 2273
      [SNMPv3App] 2573
      [RFC2573] and the view-based access control mechanism described
      in RFC 2575 [SNMPv3VACM]. [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2.  A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possi-
   ble possible (use of Counter64).  Some machine-readable machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine-readable informa-
   tion machine
   readable information is not considered to change the semantics of the
   MIB.

4.1.  Object Definitions

   Managed objects are accessed via a virtual information store, termed
   the

5.  Feature Checklist

   The Link Management Information Base or MIB. Objects in protocol MIB (LMP-MIB) is designed to satisfy the
   following requirements and constraints:

   -  The MIB are
   defined using supports the subset of Abstract Syntax Notation One (ASN.1)
   defined in the SMI. In particular, each object type is named by an
   OBJECT IDENTIFIER, an administratively assigned name.  The object
   type together with an object instance serves to uniquely identify a
   specific instantiation of the object. For human convenience, we often
   use a textual string, termed the descriptor, to also refer to the
   object type.

5.  Feature Checklist

   The Link Management protocol MIB (LMP-MIB) is designed to satisfy the
   following requirements and constraints:

   -  The MIB supports the enabling and disabling enabling and disabling of LMP capability
      on LMP capable interfaces of a photonic switch, optical
      cross-connect or router.

   -  The MIB is used provide information about LMP adjacencies.

   -  Support is provided for configuration of the keep alive and
      link verification parameters.

   -  The MIB is used to express the mapping between local and remote
      TE links, as well as local and remote interface identifiers for
      port or component link.

   -  Performance counters are provided for measuring LMP
      performance on a per-control channel basis. Performance counters
      are also provided for measuring LMP performance on the data-bearing data-
      bearing links.

   Note that the LMP MIB goes hand-in-hand with the Link Bundling MIB
   [BUNDLE-MIB]. The TE link table, which is used to associate data-
   bearing links to TE links, is defined in the Link Bundling MIB. The
   TE link table in the LMP MIB contains TE link information specific to
   LMP.

6.  Outline

   Configuring LMP through an optical device involves the following
   steps:

   -  Enabling LMP on LMP capable interfaces through control channel
      configuration.

   -  Optionally specifying link verification parameters.

   -  Configuring the data-bearing links and associating them to the
      appropriate TE link (this association is stored in the
      ifStackTable of the Interfaces Group MIB).

   -  Identifying which

   TE links are managed by the control channels manage that run between the TE link.
   same pair of nodes (LMP adjacency).

6.1.  Summary of LMP MIB

   The MIB objects for performing these actions consist of the following
   tables:

   -  The remote node table (lmpNbrTable) is used to identify the pair
      of nodes that exchange LMP messages over control channels.

   -  The control channel table (lmpControlChannelTable) is used
      for enabling the LMP protocol on LMP-capable interfaces.

   -  The control channel performance table
      (lmpControlChannelPerfTable) is used for collecting
      LMP performance counts on a per-control channel basis.

   -  The TE link table (lmpTeLinkTable) is used for
      specifying LMP information associated with TE links.

   -  The link verification table (lmpLinkVerificationTable) is used for
      configuring the LMP link verification parameters of TE links.

   -  The data-bearing link table (lmpDataBearingLinkTable) is used to
      specify the data-bearing links that are associated with TE links.

   -  The data-bearing link performance table
      (lmpDataBearingLinkPerfTable) is used for collecting LMP
      performance counts on data-bearing links.

   These tables are described in the subsequent sections.

7.  Brief Description of MIB Objects

   Sections 7.1-7.3 describe objects pertaining to LMP-capable inter-
   faces. Section 7.4 to 7.7 describes objects for specifying TE links
   and data-bearing links. The MIB objects were derived from the LMP
   document [LMP].

7.1.  lmpNbrTable

   This table identifies the pairs of nodes on which LMP is enabled.

7.2.  lmpControlChannelTable

   This table represents the interfaces that are LMP capable (i.e. capa-
   ble of transmitting LMP messages). A photonic switch, optical cross-
   connect, or router creates an entry in this table for every LMP capa-
   ble interface on that device.

7.3.  lmpControlChannelPerfTable

   This table contains the objects to measure the LMP performance of LMP
   capable interfaces and is an AUGMENT to the lmpControlChannelTable.
   High capacity counters are provided for objects that are likely to
   wrap around quickly.

7.4.  lmpTeLinkTable

   This table represents the TE link information specific to LMP.

7.5.  lmpLinkVerificationTable

   This table augments the lmpTeLinkTable and represents the link verification verif-
   ication parameters associated with the TE links.

7.6.  lmpDataBearingLinkTable

   The data-bearing link table enumerates the data-bearing links that
   are associated with each TE link.

7.7.  lmpDataBearingLinkPerfTable

   This table augments the lmpDataBearingLinkTable. It contains the
   objects to measure the LMP performance of data-bearing links and is an AUGMENT to the lmpDataBearingLinkTable. links.

8.  Example of LMP Control Channel Setup

   In this section we provide a brief example of using the MIB
   objects described in section 11 10 to set up an LMP control channel.
   While this example is not meant to illustrate every nuance of the
   MIB, it is intended as an aid to understanding some of the key
   concepts. It is meant to be read after going through the MIB itself.

   Suppose that one would like to form an LMP adjacency between two
   nodes using two control channels. Suppose also that there are
   three data-bearing links. We also assume that the data-bearing
   links are ports (lambdas). We also assume that the link
   verification procedure is not enabled. The following example
   illustrates which rows and corresponding objects might be created
   to accomplish this.

   First, LMP must be enabled between the pair of nodes.

   In lmpNbrTable:
   {
      lmpNbrNodeId                       = 'c0010101'H, -- 192.1.1.1
      lmpNbrRetransmitInterval           = 10,
      lmpNbrRetransmitTimeoutInterval    = 0,
      lmpNbrAdminStatus                  = up(1),
      lmpNbrRowStatus                    = createAndGo(4)
   }

   Then, the control channels must be set up. These are created in
   the lmpControlChannelTable.

   In lmpControlChannelTable:
   {
      ifIndex
      lmpCcId                           = 1,
      lmpCcUnderlyingIfIndex            = 1,
      lmCcIsIf                          = false(1),
      lmpCcAuthentication               = false(1),
      lmpCcConfigRetransmitInterval     = 10,
      lmpCcHelloInterval                = 15,
      lmpCcHelloIntervalMin             = 15,
      lmpCcHelloIntervalMax             = 1000,
      lmpCcHelloDeadInterval            = 45,
      lmpCcHelloDeadIntervalMin         = 45,
      lmpCcHelloDeadIntervalMax         = 1000,
      lmpCcAdminStatus                  = up(1),
      lmpCcRowStatus                    = createAndGo(4)
   }

   {
      lmpCcId                           = 2,
      lmpCcUnderlyingIfIndex            = 2,
      lmCcIsIf                          = false(1),
      lmpCcAuthentication               = false(1),
      lmpCcConfigRetransmitInterval     = 10,
      lmpCcHelloInterval                = 15,
      lmpCcHelloIntervalMin             = 15,
      lmpCcHelloIntervalMax             = 1000,
      lmpCcHelloDeadInterval            = 45,
      lmpCcHelloDeadIntervalMin         = 45,
      lmpCcHelloDeadIntervalMax         = 1000,
      lmpCcAdminStatus                  = up(1),
      lmpCcRowStatus                    = createAndGo(4)
   }

   Next, the three data-bearing links are created. For each data-
   bearing link, an ifEntry with the same ifIndex needs to be created
   beforehand.

   In lmpDataBearingLinkTable:
   {
      ifIndex                         = 41,
      lmpDataBearingLinkNumberingType = unnumbered(1),
      lmpDataBearingLinkRemoteIfId    = 47,
      lmpDataBearingLinkRowStatus     = createAndGo(4)
   }

   {
      ifIndex                         = 43,
      lmpDataBearingLinkNumberingType = unnumbered(1),
      lmpDataBearingLinkRemoteIfId    = 42,
      lmpDataBearingLinkRowStatus     = createAndGo(4)
   }

   {
      ifIndex                         = 44,
      lmpDataBearingLinkNumberingType = unnumbered(1),
      lmpDataBearingLinkRemoteIfId    = 48,
      lmpDataBearingLinkRowStatus     = createAndGo(4)
   }

   Note that the data-bearing link type (lmpDataBearingLinkType) does
   not need to be provisioned as it is automatically populated by the
   node. The definition of the protection role (primary or
   secondary) for the data-bearing links is stored in the
   dataBearingChannelTable of the Link Bundling MIB [BUNDLE-MIB].

   Then, a TE link is created as an ifEntry with ifType teLink in
   the ifTable.

   Once the TE link is created in the ifTable, a TE link entry
   is created in the LMP MIB to specify TE link information specific
   to LMP.

   In lmpTeLinkTable:
   {
      ifIndex                    = 20,
      lmpTeLinkVerification      = true(2),
      lmpTeLinkFaultIsolation
      lmpTeLinkFaultManagement   = true(2),
      lmpTeLinkDwdm              = false(1),
      lmpTeLinkBitRate           = 100000,
      lmpTeLinkWavelength        = 0,
      lmpTeLinkRowStatus         = createAndGo(4)
   }

   The association between the data-bearing links and the TE links is
   stored in the ifStackTable [IF-MIB].

   In parallel with the entry created in the lmpTeLinkTable, an entry
   may be created in the teLinkTable of Link Bundling MIB
   [BUNDLE-MIB].

9.  Application of the Interface Interfaces Group to LMP

   The Interfaces Group of MIB II [IFMIB] defines generic managed objects for
   managing interfaces. This memo contains the media-specific
   extensions to the Interfaces Group for managing LMP control channels
   that are modeled as interfaces. If the control channel as defined in
   the lmpControlChannelTable is modeled as an ifEntry, then the
   following definition applies. An lmpControlChannelTable entry is
   designated as being represented as an Interfaces MIB ifEntry if the
   lmpControlChannelEntry object lmpCcIsIf is set to true (2). In this
   case, the control channel SHOULD be modeled as an ifEntry and
   provide appropriate interface stacking as defined below.

   This memo assumes the interpretation of the Interfaces Group to be
   in accordance with [IFMIB] which states that the interfaces table
   (ifTable) contains information on the managed resource's
   interfaces and that each sub-layer below the internetwork layer of
   a network interface is considered an interface. Since the LMP
   interface only carries control traffic, it is considered to be below
   the internetwork layer. Thus, the LMP interface may be represented
   as an entry in the ifTable. The inter-relation of entries in the
   ifTable is defined by Interfaces Stack Group defined in [IFMIB].

   When LMP control channels are modeled as interfaces, the interface
   stack table must appear as follows for the LMP control channel
   interfaces:

   +----------------------------------------+
   | LMP-interface ifType = lmp(TBD)        +
   +----------------------------------------+
   | Underlying Layer...                    +
   +----------------------------------------+

   In the above diagram, "Underlying Layer..." refers to the ifIndex
   of any interface type over which the LMP interface will transmit
   its traffic. Note that if the underlying layer provides multiple
   access to its media (i.e.: Ethernet), then it is possible to stack
   multiple LMP interfaces on top of this interface in parallel.

9.1.  Support of the LMP Layer by ifTable

   Some specific interpretations of ifTable for the LMP layer
   follow.

   Object        Use for the LMP layer

   ifIndex       Each LMP interface may be represented by an ifEntry.

   ifDescr       Description of the LMP interface.

   ifType        The value that is allocated for LMP is TBD.
                 This number will be assigned by the IANA.

   ifSpeed       The total bandwidth in bits per second for use by
                 the LMP layer.

   ifPhysAddress Unused.

   ifAdminStatus This variable indicates the administrator's intent
                 as to whether LMP should be enabled, disabled, or
                 running in some diagnostic testing mode on this
                 interface. Also see [IFMIB].

   ifOperStatus  This value reflects the actual or operational
                 status of LMP on this interface.

   ifLastChange  See [IFMIB].

   ifInOctets    The number of received octets over the interface,
                 i.e., the number of received, octets received as
                 labeled LMP
                 packets.

   ifOutOctets   The number of transmitted octets over the
                 interface, i.e., the number of octets transmitted
                 as labeled LMP packets.

   ifInErrors    The number of labeled LMP packets dropped due to
                 uncorrectable errors.

   ifInUnknownProtos
                 The number of received packets discarded during
                 packet header validation, including packets with
                 unrecognized label values.

   ifOutErrors   See [IFMIB].

   ifName        Textual name (unique on this system) of the
                 interface or an octet string of zero length.

   ifLinkUpDownTrapEnable
                 Default is disabled (2).

   ifConnectorPresent
                 Set to false (2).

   ifHighSpeed   See [IFMIB].

   ifHCInOctets  The 64-bit version of ifInOctets; supported if
                 required by the compliance statements in [IFMIB].

   ifHCOutOctets The 64-bit version of ifOutOctets; supported if
                 required by the compliance statements in [IFMIB].

   ifAlias       The non-volatile 'alias' name for the interface as
                 specified by a network manager.

   ifCounterDiscontinuityTime
                 See [IFMIB].

10.  LMP MIB Definitions

LMP-MIB DEFINITIONS ::= BEGIN

IMPORTS
   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
   experimental, Integer32, Unsigned32, Counter32, Counter64,
   TimeTicks, IpAddress TimeTicks
      FROM SNMPv2-SMI

   MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
      FROM SNMPv2-CONF

   TEXTUAL-CONVENTION, TruthValue, RowStatus, StorageType,
   RowPointer, TimeStamp
      FROM SNMPv2-TC

   InterfaceIndex, InterfaceIndexOrZero, ifIndex, ifStackHigherLayer
      FROM IF-MIB

   InetAddressType, InetAddress
      FROM INET-ADDRESS-MIB

   teLinkRemoteIpAddr, teLinkIncomingIfId
      FROM LINK-BUNDLING-MIB;

lmpMIB MODULE-IDENTITY
   LAST-UPDATED "200110181200Z" "200202261200Z"  -- 18 October 2001 26 February 2002 12:00:00 EST
   ORGANIZATION "Common Control and Measurement Protocols (CCAMP)
                 Working Group"
   CONTACT-INFO
       "        Martin Dubuc
        Postal: edgeflow, Inc.
                329 March Rd. Meriton Networks
                3026 Solandt Road
                Kanata, ON, CANADA K2K 2E1 2A5
        Tel:    +1-613-270-9279 x253
        Email:  martin.dubuc@edgeflow.com  martin.dubuc@meriton.com

                Sudheer Dharanikota
        Postal: Nayna Networks, Inc.
                157 Topaz Street
                Milipitas, CA 95035
        Tel:    +1-408-956-8000 x357
        Email:  sudheer@nayna.com

                Thomas D. Nadeau
        Postal: Cisco Systems, Inc.
                300 Apollo Drive
                Chelmsford, MA 01824
        Tel:    +1-978-244-3051
        Email:  tnadeau@cisco.com

                Jonathan P. Lang
        Postal: Calient Networks, Inc.
                25 Castilian Drive
                Goleta, CA 93117
        Email:  jplang@calient.net

                Evan McGinnis
        Postal: Calient Networks, Inc.
                5853 Rue Ferrari
                San Jose, CA 95138
        Email:  evan@calient.net"

   DESCRIPTION
       "This MIB contains managed object definitions for the
        Link Management Protocol (LMP) as
        defined in: Lang, J., Mitra, K., Drake, J., Kompella, K.,
        Rekhter, Y., Berger, L., Saha, D.,
        Basak, D., Sandick, H., Zinin, A., and
        Rajagopalan, B., Link Management Protocol,
        Internet Draft <draft-ietf-ccamp-lmp-01.txt>,
        September <draft-ietf-ccamp-lmp-02.txt>,
        November 2001."

   -- Revision history.
   REVISION
       "200110181200Z"
       "200202261200Z"  -- 18 26 February 2002 12:00:00 EST
   DESCRIPTION
      "- Used latest MIB boiler plate.
       - Added lmpFullModuleCompliance conformance statement.
       - Replaced IpAddress with InetAddress.
       - Added lmpOperStatus.
       - Added lmpCcHelloIntervalNegotiated and
         lmpCcHelloDeadIntervalNegotiated.
       - Converted all 64-bit counters to 32-bit counters.
       - Added counters for all LMP message types.
       - Added counters to monitor data-bearing link tests.
       - Reintroduced lmpNbrRetransmitTimeout.
       - Added lmpDataBearingLinkNumberingType and
         lmpDataBearingLinkRemoteIpAddress.
       - Split data-bearing link operational status into active and
         passive operational status.
       - Updated description of all row status and storage type objects.
       - Updated references."
   REVISION
       "200110211200Z"  -- 21 October 2001 12:00:00 EST
   DESCRIPTION
      "- Minor syntax fixes.
       - Added lmpCcId. Changed type of lmpRemoteCcId.
       - Updated lmpTeLinkEncodingType.
       - Removed lmpRemoteTeLinkType and lmpRemoteTeLinkId (their
         content can be derived from LINK-BUNDLING-MIB).
       - Added lmpCcLastChange, lmpCcCounterDiscontinuityTime and
         lmpDataBearingLinkCounterDiscontinuityTime.
       - Moved lmpTeLinkBitRate and lmpTeLinkWavelength to
         lmpLinkVerificationTable.
       - Updated lmpDataBearingLinkOperStatus.
       - Modified performance counters to account for changes in
         channel status message types.
       - Changed indices for lmpTeLinkPropertyMismatch and
         lmpDataBearingLinkPropertyMismatch traps. notifications.
       - Renamed lmpNbrLinkSumRetransmitInterval. Removed
         lmpNbrRetransmitTimeout.
       - Added lmpCcUnderlyingIfId, lmpCcIsIf and lmpCcSetupRole."
   REVISION
       "200105221200Z"  -- 22 May 2001 12:00:00 EST
   DESCRIPTION
      "Updates based on IETF-50 feedback. Aligned with
       upcoming version of LMP draft."
   REVISION
       "200102221200Z"  -- 22 February 2001 12:00:00 EST
   DESCRIPTION
      "Updates based on MPLS mailing list feedback."
   REVISION
       "200101261200Z"  -- 26 January 2001 12:00:00 EST
   DESCRIPTION
      "Initial draft version."
   ::= { experimental 113 }

-- Textual Conventions

NodeID ::= TEXTUAL-CONVENTION
   STATUS        current
   DESCRIPTION
       "This value represents a Node ID."
   SYNTAX        IpAddress        InetAddress

LmpInterval ::= TEXTUAL-CONVENTION
   DISPLAY-HINT "d"
   STATUS        current
   DESCRIPTION
       "The interval delay in milliseconds."
   SYNTAX        Unsigned32 (1..65535)

LmpRetransmitInterval ::= TEXTUAL-CONVENTION
   DISPLAY-HINT "d"
   STATUS        current
   DESCRIPTION
       "The retransmission interval delay in milliseconds."
   SYNTAX        Unsigned32 (1..4294967295)

-- Top level components of this MIB

-- Traps Notifications
lmpNotifications OBJECT IDENTIFIER ::= { lmpMIB 0 }
-- Tables, Scalars
lmpObjects       OBJECT IDENTIFIER ::= { lmpMIB 1 }
-- Conformance
lmpConformance   OBJECT IDENTIFIER ::= { lmpMIB 2 }

lmpAdminStatus OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "The desired operational status of LMP on the node."
   DEFVAL        { up }
   ::= { lmpObjects 1 }

lmpOperStatus OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of LMP on the node."
   ::= { lmpObjects 2 }

-- LMP Neighbor Table

lmpNbrTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpNbrEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the neighbor node node(s) to which control channels
        may be established."
   ::= { lmpObjects 2 3 }

lmpNbrEntry OBJECT-TYPE
   SYNTAX        LmpNbrEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by a LMP-enabled device for
        every pair of nodes that can establish control channels."
   INDEX         { lmpNbrNodeId }
   ::= { lmpNbrTable 1 }

LmpNbrEntry ::= SEQUENCE {
  lmpNbrNodeId              NodeID,
  lmpNbrRetransmitInterval  LmpRetransmitInterval,
  lmpNbrRetransmitTimeout   Unsigned32,
  lmpNbrAdminStatus         INTEGER,
  lmpNbrOperStatus          INTEGER,
  lmpNbrRowStatus           RowStatus,
  lmpNbrStorageType         StorageType
}

lmpNbrNodeId OBJECT-TYPE
   SYNTAX        NodeID
   MAX-ACCESS    accessible-for-notify
   STATUS        current
   DESCRIPTION
       "This is a unique index for an entry in the LmpNbrTable.
        This value represents the remote Node ID."
   ::= { lmpNbrEntry 1 }

lmpNbrRetransmitInterval OBJECT-TYPE
   SYNTAX        LmpRetransmitInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the interval that is used for the
        retransmission of LinkSummary, BeginVerify and EndVerify messages."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   ::= { lmpNbrEntry 2 }

lmpNbrAdminStatus

lmpNbrRetransmitTimeout OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The desired operational status of LMP to this remote node."
   ::=
       "This object specifies the LinkSummary, BeginVerify and EndVerify
        retransmission timeout period. If the specified timeout expires
        and the LinkSummary, BeginVerify and EndVerify message has not yet
        been acknowledged with a LinkSummaryAck, BeginVerifyAck or
        EndVerifyAck message, a node can stop retransmitting the LinkSummary,
        BeginVerify or EndVerify messages. A value of 0 is used to indicate
        that a node should never stop retransmission."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   DEFVAL        { 0 }
   ::= { lmpNbrEntry 7 }

lmpNbrAdminStatus OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The desired operational status of LMP to this remote node."
   ::= { lmpNbrEntry 3 }

lmpNbrOperStatus OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of LMP to this remote node."
   ::= { lmpNbrEntry 4 }

lmpNbrRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable is used to create, modify, and/or
        delete a row in this table." table. All read-create objects
        can be changed when lmpNbrRowStatus is active."
   ::= { lmpNbrEntry 5 }

lmpNbrStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this entry." conceptual row in the
        lmpNbrTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { lmpNbrEntry 6 }

-- End of lmpNbrTable

lmpCcHelloIntervalDefault OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default value for the HelloInterval
        parameter used in the Hello protocol keep-alive phase. It
        indicates how frequently LMP Hello messages will be sent." sent. It
        is used a the default value for lmpCcHelloInterval."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   ::= { lmpObjects 3 4 }

lmpCcHelloIntervalDefaultMin OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default minimum value for the
        HelloInterval parameter." parameter. It is used as a default value
        for lmpCcHelloIntervalMin."
   ::= { lmpObjects 4 5 }

lmpCcHelloIntervalDefaultMax OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default maximum value for the
        HelloInterval parameter." parameter. It is used as a default value
        for lmpCcHelloIntervalMax."
   ::= { lmpObjects 5 6 }

lmpCcHelloDeadIntervalDefault OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default HelloDeadInterval parameter to
        use in the Hello protocol keep-alive phase. It indicates how long
        a device should wait before declaring the control channel dead.
        The HelloDeadInterval parameter must be greater than the
        HelloInterval parameter and should be at least three times the
        value of HelloInterval." HelloInterval. It is used a a default value for
        lmpCcHelloDeadInterval."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   ::= { lmpObjects 6 7 }

lmpCcHelloDeadIntervalDefaultMin OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default minimum value for the
        HelloDeadInterval parameter." parameter. It is used as a default value
        for lmpCcHelloDeadIntervalMin."
   ::= { lmpObjects 7 8 }

lmpCcHelloDeadIntervalDefaultMax OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object specifies the default maximum value for the
        HelloDeadInterval parameter." parameter. It is used as a default value
        for lmpCcHelloDeadIntervalMax."
   ::= { lmpObjects 8 9 }

-- LMP Control Channel Table

lmpControlChannelTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpControlChannelEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies LMP control channel information."
   ::= { lmpObjects 9 10 }

lmpControlChannelEntry OBJECT-TYPE
   SYNTAX        LmpControlChannelEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by a LMP-enabled device for
        every control channel. Whenever a new entry is created with lmpCcIsIf
        set to true(2), then a corresponding entry is created in ifTable as
        well (see RFC 2863)."
   INDEX         { lmpCcId }
   ::= { lmpControlChannelTable 1 }

LmpControlChannelEntry ::= SEQUENCE {
  lmpCcId                           Unsigned32,
  lmpCcUnderlyingIfIndex            InterfaceIndexOrZero,
  lmpCcIsIf                         TruthValue,
  lmpCcNbrNodeId                    NodeID,
  lmpRemoteCcId                     Unsigned32,
  lmpCcSetupRole                    INTEGER,
  lmpCcAuthentication               TruthValue,
  lmpCcConfigRetransmitInterval     LmpRetransmitInterval,
  lmpCcConfigRetransmitTimeout      Unsigned32,
  lmpCcHelloInterval                LmpInterval,
  lmpCcHelloIntervalMin             LmpInterval,
  lmpCcHelloIntervalMax             LmpInterval,
  lmpCcHelloIntervalNegotiated      LmpInterval,
  lmpCcHelloDeadInterval            LmpInterval,
  lmpCcHelloDeadIntervalMin         LmpInterval,
  lmpCcHelloDeadIntervalMax         LmpInterval,
  lmpCcHelloDeadIntervalNegotiated  LmpInterval,
  lmpCcLastChange                   TimeTicks,
  lmpCcAdminStatus                  INTEGER,
  lmpCcOperStatus                   INTEGER,
  lmpCcRowStatus                    RowStatus,
  lmpCcStorageType                  StorageType
}

lmpCcId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create    accessible-for-notify
   STATUS        current
   DESCRIPTION
       "This value represents the local control channel identifier."
   ::= { lmpControlChannelEntry 1 }

lmpCcUnderlyingIfIndex OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This value represents the underlying interface index. index, i.e. the
        interface index of the interface over which the LMP interface
        will transmit its traffic. If set to 0, then the control channel
        is not associated with any underlying interface. If the control
        channel is not associated with an underlying interface, the control
        channel's operational status must not be up(1), nor should the
        control channel forward or receive traffic."
   ::= { lmpControlChannelEntry 2 }

lmpCcIsIf OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Denotes whether or not this control channel corresponds to
        an interface represented in the interfaces group table."
   ::= { lmpControlChannelEntry 3 }

lmpCcNbrNodeId OBJECT-TYPE
   SYNTAX        NodeID
   MAX-ACCESS    read-only    read-create
   STATUS        current
   DESCRIPTION
       "This is the Node ID of the control channel remote node.
        This value is either configured or gets created by the node
        when a Config message is received or when an outgoing Config
        message is acknowledged by the remote node."
   ::= { lmpControlChannelEntry 4 }

lmpRemoteCcId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value represents the remote control channel identifier. It is
        determined during the negotiation phase. A value
        of zero means that the remote control channel identifier has not
        yet been assigned." learnt."
   ::= { lmpControlChannelEntry 5 }

lmpCcSetupRole OBJECT-TYPE
   SYNTAX        INTEGER { active(1), passive(2) }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The role that this node should take during establishment of this
        control channel. An active node will initiate establishment. A
        passive node will wait for the remote node to initiate. A pair
        of nodes that both take the passive role will never establish
        communications."
   DEFVAL        { active }
   ::= { lmpControlChannelEntry 6 }

lmpCcAuthentication OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object indicates whether the control channel should use
        authentication."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   ::= { lmpControlChannelEntry 7 }

lmpCcConfigRetransmitInterval OBJECT-TYPE
   SYNTAX        LmpRetransmitInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the interval that is used for the
        retransmission of Config messages during the parameter
        negotiation phase."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   ::= { lmpControlChannelEntry 8 }

lmpCcConfigRetransmitTimeout OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the Config retransmission timeout
        period. If the specified timeout expires and no Config,
        ConfigAck or ConfigNack message has been received, a node
        can stop retransmitting Config messages on the control
        channel. A value of 0 is used to indicate that a node should
        never stop retransmission." retransmission. This parameter (if non-zero)
        should be greater than lmpCcConfigRetransmitInterval."
   REFERENCE
       "draft-ccamp-ietf-lmp-01.txt
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September November 2001."
   DEFVAL        { 0 }
   ::= { lmpControlChannelEntry 9 }

lmpCcHelloInterval OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the value of the HelloInterval
        parameter. Once the control channel is active, it represents
        the negotiated The default value of the HelloInterval." for this object should be
        set to lmpCcHelloIntervalDefault."
   ::= { lmpControlChannelEntry 10 }

lmpCcHelloIntervalMin OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the minimum value for the
        HelloInterval parameter." parameter. The default value for this
        object should be set to lmpCcHelloIntervalMinDefault."
   ::= { lmpControlChannelEntry 11 }

lmpCcHelloIntervalMax OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the maximum value for the
        HelloInterval parameter." parameter. The default value for this
        object should be set to lmpCcHelloIntervalMaxDefault."
   ::= { lmpControlChannelEntry 12 }

lmpCcHelloIntervalNegotiated OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Once the control channel is active, this object represents
        the negotiated HelloInterval value."
   ::= { lmpControlChannelEntry 13 }

lmpCcHelloDeadInterval OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the value of the HelloDeadInterval
        parameter. Once the control channel is active, it represents
        the negotiated The default value of the HelloDeadInterval." for this object should be
        set to lmpCcHelloDeadIntervalDefault."
   ::= { lmpControlChannelEntry 13 14 }

lmpCcHelloDeadIntervalMin OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the minimum value for the
        HelloDeadInterval parameter." parameter. The default value for this
        object should be set to lmpCcHelloDeadIntervalMinDefault."
   ::= { lmpControlChannelEntry 14 15 }

lmpCcHelloDeadIntervalMax OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the maximum value for the
        HelloDeadInterval parameter." parameter. The default value for this
        object should be set to lmpCcHelloIntervalMaxDefault."
   ::= { lmpControlChannelEntry 15 16 }

lmpCcHelloDeadIntervalNegotiated OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Once the control channel is active, this object represents
        the negotiated HelloDeadInterval value."
   ::= { lmpControlChannelEntry 17 }

lmpCcLastChange OBJECT-TYPE
   SYNTAX       TimeTicks
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
       "The value of sysUpTime at the time the control channel entered
        its current operational state. If the current state was
        entered prior to the last re-initialization of the local
        network management subsystem, then this object contains a
        zero value."
   ::= { lmpControlChannelEntry 16 18 }

lmpCcAdminStatus OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2) }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The desired operational status of this control channel."
   ::= { lmpControlChannelEntry 17 19 }

lmpCcOperStatus OBJECT-TYPE
   SYNTAX        INTEGER {
                     up(1),
                     down(2),
                     configSnd(3),
                     configRcv(4),
                     active(5),
                     goingDown(6)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of this control channel
        interface."
   ::= { lmpControlChannelEntry 18 20 }

lmpCcRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable is used to create, modify, and/or
        delete a row in this table." table. All read-create objects
        can be changed when lmpCcRowStatus is active."
   ::= { lmpControlChannelEntry 19 21 }

lmpCcStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this entry." conceptual row in the
        lmpControlChannelTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { lmpControlChannelEntry 20 22 }

-- End of lmpControlChannelTable

-- LMP Control Channel Performance Table

lmpControlChannelPerfTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpControlChannelPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies LMP control channel performance counters."
   ::= { lmpObjects 10 11 }

lmpControlChannelPerfEntry OBJECT-TYPE
   SYNTAX        LmpControlChannelPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by a LMP-enabled device for
        every control channel."
   AUGMENTS      { lmpControlChannelEntry }
   ::= { lmpControlChannelPerfTable 1 }

LmpControlChannelPerfEntry ::= SEQUENCE {
  lmpCcHCInOctets                     Counter64,
  lmpCcInOctets                       Counter32,
  lmpCcInDiscards                     Counter32,
  lmpCcInErrors                       Counter32,
  lmpCcHCOutOctets                    Counter64,
  lmpCcOutOctets                      Counter32,
  lmpCcOutDiscards                    Counter32,
  lmpCcOutErrors                      Counter32,
  lmpCcHCHelloReceived                Counter64,
  lmpCcHCHelloSent                    Counter64,
  lmpCcConfigReceived                 Counter32,
  lmpCcConfigSent                     Counter32,
  lmpCcConfigRetransmit               Counter32,
  lmpCcConfigAckReceived              Counter32,
  lmpCcConfigAckSent                  Counter32,
  lmpCcConfigNackReceived             Counter32,
  lmpCcConfigNackSent                 Counter32,
  lmpCcHelloReceived                  Counter32,
  lmpCcHelloSent                      Counter32,
  lmpCcBeginVerifyReceived            Counter32,
  lmpCcBeginVerifySent                Counter32,
  lmpCcBeginVerifyRetransmit          Counter32,
  lmpCcBeginVerifyAckReceived         Counter32,
  lmpCcBeginVerifyAckSent             Counter32,
  lmpCcBeginVerifyNackReceived        Counter32,
  lmpCcBeginVerifyNackSent            Counter32,
  lmpCcEndVerifyReceived              Counter32,
  lmpCcEndVerifySent                  Counter32,
  lmpCcEndVerifyRetransmit            Counter32,
  lmpCcEndVerifyAckReceived           Counter32,
  lmpCcEndVerifyAckSent               Counter32,
  lmpCcTestStatusSuccessReceived      Counter32,
  lmpCcTestStatusSuccessSent          Counter32,
  lmpCcTestStatusSuccessRetransmit    Counter32,
  lmpCcTestStatusFailureReceived      Counter32,
  lmpCcTestStatusFailureSent          Counter32,
  lmpCcTestStatusFailureRetransmit    Counter32,
  lmpCcTestStatusAckReceived          Counter32,
  lmpCcTestStatusAckSent              Counter32,
  lmpCcLinkSummaryReceived            Counter32,
  lmpCcLinkSummarySent                Counter32,
  lmpCcLinkSummaryRetransmit          Counter32,
  lmpCcLinkSummaryAckReceived         Counter32,
  lmpCcLinkSummaryAckSent             Counter32,
  lmpCcLinkSummaryNackReceived        Counter32,
  lmpCcLinkSummaryNackSent            Counter32,
  lmpCcChannelStatusReceived          Counter32,
  lmpCcChannelStatusSent              Counter32,
  lmpCcChannelStatusRetransmit        Counter32,
  lmpCcChannelStatusAckReceived       Counter32,
  lmpCcChannelStatusAckSent           Counter32,
  lmpCcChannelStatusRequestReceived   Counter32,
  lmpCcChannelStatusRequestSent       Counter32,
  lmpCcChannelStatusResponseReceived
  lmpCcChannelStatusRequestRetransmit Counter32,
  lmpCcChannelStatusResponseSent      Counter32,
  lmpCcChannelStatusResponseReceived  Counter32,
  lmpCcCounterDiscontinuityTime       TimeStamp
}

lmpCcHCInOctets

lmpCcInOctets OBJECT-TYPE
    SYNTAX      Counter64      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of LMP message octets received on the
             control channel."
    ::= { lmpControlChannelPerfEntry 1 }

lmpCcInDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of inbound packets which were chosen to be
             discarded even though no errors had been detected. One
             possible reason for discarding such a packet could be to
             free up buffer space."
    ::= { lmpControlChannelPerfEntry 2 }

lmpCcInErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of inbound packets that contained errors
             preventing them from being processed by LMP."
    ::= { lmpControlChannelPerfEntry 3 }

lmpCcHCOutOctets

lmpCcOutOctets OBJECT-TYPE
    SYNTAX       Counter64       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The total number of LMP message octets transmitted out of
             the control channel."
    ::= { lmpControlChannelPerfEntry 4 }

lmpCcOutDiscards OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of outbound packets which were chosen to be
             discarded even though no errors had been detected to prevent
             their being transmitted. One possible reason for discarding
             such a packet could be to free up buffer space."
    ::= { lmpControlChannelPerfEntry 5 }

lmpCcOutErrors OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of outbound packets that could not be
             transmitted because of errors."
    ::= { lmpControlChannelPerfEntry 6 }

lmpCcHCHelloReceived

lmpCcConfigReceived OBJECT-TYPE
   SYNTAX        Counter64        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Hello Config messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 7 }

lmpCcHCHelloSent

lmpCcConfigSent OBJECT-TYPE
   SYNTAX        Counter64        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Hello Config messages that have
        been sent on this control channel."
   ::= { lmpControlChannelPerfEntry 8 }

lmpCcConfigReceived

lmpCcConfigRetransmit OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Config messages that
        have been received on retransmitted over this control channel."
   ::= { lmpControlChannelPerfEntry 9 }

lmpCcConfigSent

lmpCcConfigAckReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Config ConfigAck messages that have
        been sent received on this control channel."
   ::= { lmpControlChannelPerfEntry 10 }

lmpCcConfigRetransmit

lmpCcConfigAckSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Config ConfigAck messages that have
        been retransmitted over sent on this interface." control channel."
   ::= { lmpControlChannelPerfEntry 11 }

lmpCcLinkSummaryReceived

lmpCcConfigNackReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of LinkSummary ConfigNack messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 12 }

lmpCcLinkSummarySent

lmpCcConfigNackSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of LinkSummary ConfigNack messages that have
        been sent on this control channel."
   ::= { lmpControlChannelPerfEntry 13 }

lmpCcLinkSummaryRetransmit

lmpCcHelloReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of LinkSummary Hello messages that have
        been retransmitted over received on this interface." control channel."
   ::= { lmpControlChannelPerfEntry 14 }

lmpCcChannelStatusReceived

lmpCcHelloSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatus Hello messages that have
        been received sent on this control channel."
   ::= { lmpControlChannelPerfEntry 15 }

lmpCcChannelStatusSent

lmpCcBeginVerifyReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatus BeginVerify messages that have
        been sent received on this control channel."
   ::= { lmpControlChannelPerfEntry 16 }

lmpCcChannelStatusRequestReceived

lmpCcBeginVerifySent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatusRequest BeginVerify messages that have
        been received sent on this control channel."
   ::= { lmpControlChannelPerfEntry 17 }

lmpCcChannelStatusRequestSent

lmpCcBeginVerifyRetransmit OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatusRequest BeginVerify messages that
        have been sent on retransmitted over this control channel."
   ::= { lmpControlChannelPerfEntry 18 }

lmpCcChannelStatusResponseReceived

lmpCcBeginVerifyAckReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatusResponse BeginVerifyAck messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 19 }

lmpCcChannelStatusResponseSent

lmpCcBeginVerifyAckSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatusResponse BeginVerifyAck messages that have
        been sent on this control channel."
   ::= { lmpControlChannelPerfEntry 20 }

lmpCcCounterDiscontinuityTime

lmpCcBeginVerifyNackReceived OBJECT-TYPE
   SYNTAX       TimeStamp        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
        "The value
       "This object counts the number of sysUpTime BeginVerifyNack messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 21 }

lmpCcBeginVerifyNackSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the most recent occasion at which
         any one or more number of BeginVerifyNack messages that have
        been sent on this control channel's counters suffered a
         discontinuity. The relevant counters are channel."
   ::= { lmpControlChannelPerfEntry 22 }

lmpCcEndVerifyReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the specific
         instances associated with number of EndVerify messages that have
        been received on this control channel of any channel."
   ::= { lmpControlChannelPerfEntry 23 }

lmpCcEndVerifySent OBJECT-TYPE
   SYNTAX        Counter32 or
         Counter64
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contained in counts the lmpControlChannelPerfTable. If
         no such discontinuities number of EndVerify messages that have occurred since
        been sent on this control channel."
   ::= { lmpControlChannelPerfEntry 24 }

lmpCcEndVerifyRetransmit OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the last re-
         initialization number of the local management subsystem, then EndVerify messages that
        have been retransmitted over this
         object contains a zero value." control channel."
   ::= { lmpControlChannelPerfEntry 21 25 }

-- End of lmpControlChannelPerfTable

-- LMP TE Link Table

lmpTeLinkTable

lmpCcEndVerifyAckReceived OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpTeLinkEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "This table contains a collection object counts the number of TE link." EndVerifyAck messages that have
        been received on this control channel."
   ::= { lmpObjects 11 lmpControlChannelPerfEntry 26 }

lmpTeLinkEntry

lmpCcEndVerifyAckSent OBJECT-TYPE
   SYNTAX        LmpTeLinkEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "An entry in this table exists for each ifEntry with an
        ifType of teLink(TBD), i.e. for every TE link. An ifEntry
        with an ifIndex must exist before the corresponding
        teLinkEntry is created. If a TE link entry in the ifTable is
        destroyed, then so is the corresponding entry in the
        teLinkTable. The administrative status value is controlled
        from the ifEntry. Setting the administrative status to
        testing prompts LMP to start link verification on the TE link.
        Information about
       "This object counts the TE link number of EndVerifyAck messages that is not LMP specific is also
        contained in teLinkTable [BUNDLE-MIB]."
   INDEX         { ifIndex } have
        been sent on this control channel."
   ::= { lmpTeLinkTable 1 lmpControlChannelPerfEntry 27 }

LmpTeLinkEntry

lmpCcTestStatusSuccessReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of TestStatusSuccess messages that have
        been received on this control channel."
   ::= SEQUENCE {
  lmpTeLinkNbrNodeId      NodeID,
  lmpTeLinkVerification   TruthValue,
  lmpTeLinkFaultIsolation TruthValue,
  lmpTeLinkDwdm           TruthValue,
  lmpTeLinkOperStatus     INTEGER,
  lmpTeLinkRowStatus      RowStatus,
  lmpTeLinkStorageType    StorageType lmpControlChannelPerfEntry 28 }

lmpTeLinkNbrNodeId

lmpCcTestStatusSuccessSent OBJECT-TYPE
   SYNTAX        NodeID        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This is object counts the Node ID number of the TE link remote node." TestStatusSuccess messages that have
        been sent on this control channel."
   ::= { lmpTeLinkEntry 1 lmpControlChannelPerfEntry 29 }

lmpTeLinkVerification

lmpCcTestStatusSuccessRetransmit OBJECT-TYPE
   SYNTAX        TruthValue        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object indicates if counts the extended LMP link verification
        procedure is enabled for number of TestStatusSuccess messages that
        have been retransmitted over this TE link."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpTeLinkEntry 2 lmpControlChannelPerfEntry 30 }

lmpTeLinkFaultIsolation

lmpCcTestStatusFailureReceived OBJECT-TYPE
   SYNTAX        TruthValue        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object indicates if counts the extended LMP fault isolation
        procedure is enabled number of TestStatusFailure messages that have
        been received on this TE link."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpTeLinkEntry 3 lmpControlChannelPerfEntry 31 }

lmpTeLinkDwdm

lmpCcTestStatusFailureSent OBJECT-TYPE
   SYNTAX        TruthValue        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object indicates if counts the extended LMP DWDM procedure
        is enabled number of TestStatusFailure messages that have
        been sent on this TE link."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpTeLinkEntry 4 lmpControlChannelPerfEntry 32 }

lmpTeLinkOperStatus

lmpCcTestStatusFailureRetransmit OBJECT-TYPE
   SYNTAX        INTEGER { up(1), down(2), testing(3), degraded(4) }        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of this TE link. The status
        is set to testing when the TE link is performing link
        verification. A degraded status indicates that the TE link
        cannot provide the provisioned protection level, but yet,
        there is no disruption of service. For instance, if the
        protection type is 1+1 and one link is down, the TE link
        still carries
       "This object counts the requested amount number of data traffic, but TestStatusFailure messages that
        have been retransmitted over this traffic is not protected anymore." control channel."
   ::= { lmpTeLinkEntry 5 lmpControlChannelPerfEntry 33 }

lmpTeLinkRowStatus

lmpCcTestStatusAckReceived OBJECT-TYPE
   SYNTAX        RowStatus        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This variable is used to create, modify, and/or
        delete a row in object counts the number of TestStatusAck messages that have
        been received on this table." control channel."
   ::= { lmpTeLinkEntry 6 lmpControlChannelPerfEntry 34 }

lmpTeLinkStorageType

lmpCcTestStatusAckSent OBJECT-TYPE
   SYNTAX        StorageType        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This variable indicates object counts the storage type for number of TestStatusAck messages that have
        been sent on this
        object." control channel."
   ::= { lmpTeLinkEntry 7 lmpControlChannelPerfEntry 35 }

-- End of lmpTeLinkTable

lmpLinkVerificationInterval

lmpCcLinkSummaryReceived OBJECT-TYPE
   SYNTAX        Unsigned32        Counter32
   MAX-ACCESS    read-write    read-only
   STATUS        current
   DESCRIPTION
       "This object indicates how often counts the link verification procedure
        is executed. The interval is in milliseconds."
   ::= { lmpObjects 12 number of LinkSummary messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 36 }

-- LMP Link Verification Table

lmpLinkVerificationTable

lmpCcLinkSummarySent OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpLinkVerificationEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "This table specifies TE link information
        associated with object counts the LMP verification procedure." number of LinkSummary messages that have
        been sent on this control channel."
   ::= { lmpObjects 13 lmpControlChannelPerfEntry 37 }

lmpLinkVerificationEntry

lmpCcLinkSummaryRetransmit OBJECT-TYPE
   SYNTAX        LmpLinkVerificationEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by a LMP-enabled device for
        every TE link that supports
       "This object counts the LMP verification
        procedure."
   AUGMENTS      { lmpTeLinkEntry } number of LinkSummary messages that
        have been retransmitted over this control channel."
   ::= { lmpLinkVerificationTable 1 lmpControlChannelPerfEntry 38 }

LmpLinkVerificationEntry

lmpCcLinkSummaryAckReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of LinkSummaryAck messages that have
        been received on this control channel."
   ::= SEQUENCE {
  lmpVerifyInterval           LmpInterval,
  lmpVerifyDeadInterval       LmpInterval,
  lmpVerifyTransportMechanism BITS,
  lmpVerifyAllLinks           INTEGER,
  lmpTeLinkBitRate            Unsigned32,
  lmpTeLinkWavelength         Unsigned32 lmpControlChannelPerfEntry 39 }

lmpVerifyInterval

lmpCcLinkSummaryAckSent OBJECT-TYPE
   SYNTAX        LmpInterval        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the VerifyInterval parameter used
        in the LMP link verification process. It indicates the interval
        at which counts the Test number of LinkSummaryAck messages are sent."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." that have
        been sent on this control channel."
   ::= { lmpLinkVerificationEntry 1 lmpControlChannelPerfEntry 40 }

lmpVerifyDeadInterval

lmpCcLinkSummaryNackReceived OBJECT-TYPE
   SYNTAX        LmpInterval        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the VerifyDeadInterval parameter used
        in counts the verification number of LinkSummaryNack messages that have
        been received on this control channel."
   ::= { lmpControlChannelPerfEntry 41 }

lmpCcLinkSummaryNackSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the physical connectivity number of data-bearing
        links. It specifies the observation period used to detect a Test
        message at the remote node."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." LinkSummaryNack messages that have
        been sent on this control channel."
   ::= { lmpLinkVerificationEntry 2 lmpControlChannelPerfEntry 42 }

lmpVerifyTransportMechanism

lmpCcChannelStatusReceived OBJECT-TYPE
   SYNTAX        BITS {
                     -- SONET/SDH encoding type:
                     j0OverheadBytes(0),
                     dccSectionOverheadBytes(1),
                     dccLineOverheadBytes(2),
                     pos(3)
                     -- GigE encoding type: TBD
                     -- 10GigE encoding type: TBD
                 }        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This defines the transport mechanism for object counts the Test messages. The
        scope number of ChannelStatus messages that have
        been received on this bit mask is restricted to each link encoding
        type. The local node will set the bits corresponding to the
        various mechanisms it can support for transmitting LMP Test
        messages. The receiver chooses the appropriate mechanism in the
        BeginVerifyAck message."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpLinkVerificationEntry 3 lmpControlChannelPerfEntry 43 }

lmpVerifyAllLinks

lmpCcChannelStatusSent OBJECT-TYPE
   SYNTAX        INTEGER        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of ChannelStatus messages that have
        been sent on this control channel."
   ::= { verifyAllLinks(1), verifyNewLinks(2) lmpControlChannelPerfEntry 44 }

lmpCcChannelStatusRetransmit OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This object indicates whether the verification process checks
        all entities or only counts the new entities number of ChannelStatus messages that have
        been added to retransmitted on this TE link." control channel."
   ::= { lmpLinkVerificationEntry 4 lmpControlChannelPerfEntry 45 }

lmpTeLinkBitRate

lmpCcChannelStatusAckReceived OBJECT-TYPE
   SYNTAX        Unsigned32        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This is the bit rate at which object counts the Test number of ChannelStatusAck messages will be
        transmitted and is expressed in bytes per second."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." that have
        been received on this control channel."
   ::= { lmpLinkVerificationEntry 5 lmpControlChannelPerfEntry 46 }

lmpTeLinkWavelength

lmpCcChannelStatusAckSent OBJECT-TYPE
   SYNTAX        Unsigned32        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "This value corresponds to the wavelength at
        which object counts the Test number of ChannelStatus messages will be transmitted over and is
        measured in nanometers (nm). If each data-bearing link
        corresponds to a separate wavelength, than that have
        been sent on this value should be
        set to 0."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpLinkVerificationEntry 6 lmpControlChannelPerfEntry 47 }

-- End of lmpLinkVerificationTable

-- LMP Data Bearing Link Table

lmpDataBearingLinkTable

lmpCcChannelStatusRequestReceived OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpDataBearingLinkEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "This table specifies the data-bearing links managed by object counts the
        LMP." number of ChannelStatusRequest messages that
        have been received on this control channel."
   ::= { lmpObjects 14 lmpControlChannelPerfEntry 48 }

lmpDataBearingLinkEntry

lmpCcChannelStatusRequestSent OBJECT-TYPE
   SYNTAX        LmpDataBearingLinkEntry        Counter32
   MAX-ACCESS    not-accessible    read-only
   STATUS        current
   DESCRIPTION
       "An entry in this table exists for each ifEntry that represents
        a data-bearing link. An ifEntry with an ifIndex must exist
        before the corresponding lmpDataBearingLinkEntry is created.
        If an entry representing the data-bearing link is destroyed in
        the ifTable, then so is the corresponding entry in the
        lmpDataBearingLinkTable. The administrative status value is
        controlled from
       "This object counts the ifEntry. The index to number of ChannelStatusRequest messages that
        have been sent on this table also
        used to get information in the dataBearingChannelTable
        [BUNDLE-MIB]."
   INDEX control channel."
   ::= { ifIndex }
   ::= { lmpDataBearingLinkTable 1 }

LmpDataBearingLinkEntry ::= SEQUENCE {
  lmpDataBearingLinkType             INTEGER,
  lmpDataBearingLinkRemoteIfId       InterfaceIndexOrZero,
  lmpDataBearingLinkEncodingType     INTEGER,
  lmpDataBearingLinkOperStatus       INTEGER,
  lmpDataBearingLinkRowStatus        RowStatus,
  lmpDataBearingLinkStorageType      StorageType lmpControlChannelPerfEntry 49 }

lmpDataBearingLinkType

lmpCcChannelStatusRequestRetransmit OBJECT-TYPE
   SYNTAX        INTEGER {
                     port(1),
                     componentLink(2)
                 }        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies whether object counts the number of ChannelStatusRequest messages that
        have been retransmitted on this data-bearing link is
        a port or a component link. Component link are multiplex
        capable whereas, ports are not multiplex capable."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001." control channel."
   ::= { lmpDataBearingLinkEntry 1 lmpControlChannelPerfEntry 50 }

lmpDataBearingLinkRemoteIfId

lmpCcChannelStatusResponseReceived OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "Interface identifier of the remote end point. This
        information is either configured manually or is
        communicated by the remote node during
       "This object counts the link verification
        procedure." number of ChannelStatusResponse messages that
        have been received on this control channel."
   ::= { lmpDataBearingLinkEntry 2 lmpControlChannelPerfEntry 51 }

lmpDataBearingLinkEncodingType

lmpCcChannelStatusResponseSent OBJECT-TYPE
   SYNTAX        INTEGER {
                     packet(1),
                     ethernetV2(2),
                     ansiPdh(3),
                     etsiPdh(4),
                     sdhItu1996(5),
                     sonetAnsi1995(6),
                     digitalWrapper(7),
                     lambda(8),
                     fiber(9),
                     ethernet8023(10),
                     sdhItu2000(11),
                     sonetAnsi2000(12)
                 }        Counter32
   MAX-ACCESS    read-create    read-only
   STATUS        current
   DESCRIPTION
       "The encoding type of
       "This object counts the data-bearing link."
   REFERENCE
       "draft-ietf-mpls-generalized-signaling-05.txt - Generalized
        MPLS Signaling Functional Description, P. Ashwood-Smith,
        A. Banarjee, L. Berger, G. Bernstein, J. Drake, Y. Fan,
        E. Mannie, J. Lang, B. Rajagopalan, Y. Rekhter, D. Saha,
        V. Sharma, G. Swallow, Z. Tang, July 2001." number of ChannelStatusResponse messages that
        have been sent on this control channel."
   ::= { lmpDataBearingLinkEntry 3 lmpControlChannelPerfEntry 52 }

lmpDataBearingLinkOperStatus

lmpCcCounterDiscontinuityTime OBJECT-TYPE
    SYNTAX        INTEGER {
                     upAlloc(1),
                     upFree(2),
                     down(3),
                     testing(4),
                     psvTst(5),
                     degraded(6) }       TimeStamp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The actual operational status value of this data-bearing link.
        A data-bearing link is in the degraded state if the
        control channel and associated backup control channel(s) are
        down but the data-bearing link is still operational."
   REFERENCE
       "draft-ietf-ccamp-lmp-01.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, September 2001."
   ::= { lmpDataBearingLinkEntry 4 }

lmpDataBearingLinkRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable is used to create, modify, and/or
        delete a row in this table."
   ::= { lmpDataBearingLinkEntry 5 }

lmpDataBearingLinkStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the storage type for this
        object."
   ::= { lmpDataBearingLinkEntry 6 }

-- End of lmpDataBearingLinkTable

-- LMP Data Bearing Link Performance Table

lmpDataBearingLinkPerfTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpDataBearingLinkPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the data-bearing links LMP performance
        counters."
   ::= { lmpObjects 15 }

lmpDataBearingLinkPerfEntry OBJECT-TYPE
   SYNTAX        LmpDataBearingLinkPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains information about
        the LMP performance counters for the data-bearing links."
   AUGMENTS      { lmpDataBearingLinkEntry }
   ::= { lmpDataBearingLinkPerfTable 1 }

LmpDataBearingLinkPerfEntry ::= SEQUENCE {
  lmpDataBearingLinkTestReceived             Counter32,
  lmpDataBearingLinkTestSent                 Counter32,
  lmpDataBearingLinkCounterDiscontinuityTime TimeStamp
}

lmpDataBearingLinkTestReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Test messages that have
        been received on this control channel."
   ::= { lmpDataBearingLinkPerfEntry 1 }

lmpDataBearingLinkTestSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Test messages that have
        been sent on this control channel."
   ::= { lmpDataBearingLinkPerfEntry 2 }

lmpDataBearingLinkCounterDiscontinuityTime OBJECT-TYPE
    SYNTAX       TimeStamp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The value of sysUpTime on sysUpTime on the most recent occasion at which
         any one or more of this data-bearing link's control channel's counters suffered a
         discontinuity. The relevant counters are the specific
         instances associated with this data-bearing link control channel of any Counter32 or
         Counter64 object contained in the lmpDataBearingLinkPerfTable. lmpControlChannelPerfTable. If
         no such discontinuities have occurred since the last re-
         initialization of the local management subsystem, then this
         object contains a zero value."
    ::= { lmpDataBearingLinkPerfEntry 3 lmpControlChannelPerfEntry 53 }

-- End of lmpDataBearingLinkPerfTable lmpControlChannelPerfTable

-- Notification Configuration

lmpLinkPropertyMismatchTrapEnable LMP TE Link Table

lmpTeLinkTable OBJECT-TYPE
   SYNTAX        TruthValue        SEQUENCE OF LmpTeLinkEntry
   MAX-ACCESS    read-write    not-accessible
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation
       "This table contains a collection of lmpTeLinkPropertyMismatch
        and lmpDataBearingLinkPropertyMismatch traps,
        otherwise these traps are not emitted."
   DEFVAL        { false } TE link."
   ::= { lmpObjects 16 12 }

lmpUnprotectedTrapEnable

lmpTeLinkEntry OBJECT-TYPE
   SYNTAX        TruthValue        LmpTeLinkEntry
   MAX-ACCESS    read-write    not-accessible
   STATUS        current
   DESCRIPTION
       "If
       "An entry in this object table exists for each ifEntry with an
        ifType of teLink(TBD), i.e. for every TE link. An ifEntry
        with an ifIndex must exist before the corresponding
        teLinkEntry is true, created. If a TE link entry in the ifTable is
        destroyed, then it enables so is the
        generation of lmpUnprotected trap,
        otherwise these traps are corresponding entry in the
        teLinkTable. The administrative status value is controlled
        from the ifEntry. Setting the administrative status to
        testing prompts LMP to start link verification on the TE link.
        Information about the TE link that is not emitted."
   DEFVAL LMP specific is also
        contained in teLinkTable [BUNDLE-MIB]."
   INDEX         { false ifIndex }
   ::= { lmpObjects 17 lmpTeLinkTable 1 }

LmpTeLinkEntry ::= SEQUENCE {
  lmpTeLinkNbrNodeId        NodeID,
  lmpTeLinkVerification     TruthValue,
  lmpTeLinkFaultManagement  TruthValue,
  lmpTeLinkDwdm             TruthValue,
  lmpTeLinkOperStatus       INTEGER,
  lmpTeLinkRowStatus        RowStatus,
  lmpTeLinkStorageType      StorageType
}

lmpCcUpDownTrapEnable

lmpTeLinkNbrNodeId OBJECT-TYPE
   SYNTAX        TruthValue        NodeID
   MAX-ACCESS    read-write    read-create
   STATUS        current
   DESCRIPTION
       "If this object
       "This is true, then it enables the generation Node ID of
        lmpControlChannelUp and lmpControlChannelDown traps,
        otherwise these traps are not emitted."
   DEFVAL        { false } the TE link remote node. This value
        may be learned during control channel parameter negotiation
        phase (in the Config message)."
   ::= { lmpObjects 18 lmpTeLinkEntry 1 }

lmpTeLinkTrapEnable

lmpTeLinkVerification OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write    read-create
   STATUS        current
   DESCRIPTION
       "If this
       "This object is true, then it enables indicates if the
        generation of lmpTeLinkDegraded trap,
        otherwise these traps are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 19 }

-- Notifications

-- extended LMP link verification
        procedure is enabled for this TE link."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Property Mismatch Traps

lmpTeLinkPropertyMismatch NOTIFICATION-TYPE
   OBJECTS Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { ifIndex,
                   teLinkRemoteIpAddr,
                   teLinkIncomingIfId lmpTeLinkEntry 2 }

lmpTeLinkFaultManagement OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This notification is generated when a TE link property
        mismatch is detected on object indicates if the node. ifIndex extended LMP fault management
        procedure is the
        interface index of the misconfigured TE link. The received remote enabled on this TE link id link."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpTeLinkEntry 3 }

lmpTeLinkDwdm OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object indicates if the extended LMP DWDM procedure
        is represented by either teLinkRemoteIpAddr
        or teLinkIncomingIfId depending enabled on whether the this TE link is
        numbered or unnumbered." link."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpNotifications 1 lmpTeLinkEntry 4 }

lmpDataBearingLinkPropertyMismatch NOTIFICATION-TYPE
   OBJECTS

lmpTeLinkOperStatus OBJECT-TYPE
   SYNTAX        INTEGER { ifStackHigherLayer,
                   ifIndex,
                   lmpDataBearingLinkRemoteIfId up(1), down(2), testing(3), init(4), degraded(5) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This notification is generated when a data-bearing link
        property mismatch is detected on the node. ifStackHigherLayer
        is the interface index
       "The actual operational status of the this TE link. The second ifIndex status
        is set to testing when the interface index of the data-bearing link. The remote entity
        interface id TE link is performing link
        verification. A degraded state indicates that there are
        no active control channel between the remote entity interface id received in pair of nodes that
        form the
        LinkSummary message." endpoints of the TE link, but yet at least one
        data-bearing links on the TE link is allocated."
   ::= { lmpNotifications 2 }

-- Neighbor Trap

lmpUnprotected NOTIFICATION-TYPE
   OBJECTS       { lmpCcNbrNodeId lmpTeLinkEntry 5 }

lmpTeLinkRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This notification variable is generated used to create, modify, and/or
        delete a row in this table. All read-create objects
        can be changed when all but one control channel lmpTeLinkRowStatus is operational. If the only operational control channel fails,
        then there will be no more control channels between active."
   ::= { lmpTeLinkEntry 6 }

lmpTeLinkStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this conceptual row in the pair of
        nodes and all
        lmpTeLinkTable. Conceptual rows having the data-bearing links between value
        'permanent' need not allow write-access to any
        columnar object in the pair row."
   ::= { lmpTeLinkEntry 7 }

-- End of nodes
        will go to degraded state." lmpTeLinkTable

lmpLinkVerificationInterval OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object indicates how often the link verification procedure
        is executed. The interval is in milliseconds."
   ::= { lmpNotifications 3 lmpObjects 13 }

-- Control Channel Trap

lmpControlChannelUp NOTIFICATION-TYPE
   OBJECTS LMP Link Verification Table

lmpLinkVerificationTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpLinkVerificationEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies TE link information associated with the
        LMP verification procedure."
   ::= { ifIndex lmpObjects 14 }

lmpLinkVerificationEntry OBJECT-TYPE
   SYNTAX        LmpLinkVerificationEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This notification is generated when a control
        channel transitions
       "An entry in this table is created by a LMP-enabled device for
        every TE link that supports the LMP verification
        procedure."
   AUGMENTS      { lmpTeLinkEntry }
   ::= { lmpLinkVerificationTable 1 }

LmpLinkVerificationEntry ::= SEQUENCE {
  lmpVerifyInterval           LmpInterval,
  lmpVerifyDeadInterval       LmpInterval,
  lmpVerifyTransportMechanism BITS,
  lmpVerifyAllLinks           INTEGER,
  lmpTeLinkBitRate            Unsigned32,
  lmpTeLinkWavelength         Unsigned32
}

lmpVerifyInterval OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the VerifyInterval parameter used
        in the LMP link verification process. It indicates the interval
        at which the Test messages are sent."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpLinkVerificationEntry 1 }

lmpVerifyDeadInterval OBJECT-TYPE
   SYNTAX        LmpInterval
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the VerifyDeadInterval parameter used
        in the verification of the physical connectivity of data-bearing
        links. It specifies the observation period used to detect a Test
        message at the remote node."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpLinkVerificationEntry 2 }

lmpVerifyTransportMechanism OBJECT-TYPE
   SYNTAX        BITS {
                     -- SONET/SDH encoding type:
                     j016OverheadBytes(1),
                     j064OverheadBytes(2),
                     dccSectionOverheadBytes(3),
                     dccLineOverheadBytes(4),
                     pos(5)
                     -- GigE encoding type: TBD
                     -- 10GigE encoding type: TBD
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This defines the transport mechanism for the Test messages. The
        scope of this bit mask is restricted to each link encoding
        type. The local node will set the bits corresponding to the
        various mechanisms it can support for transmitting LMP Test
        messages. The receiver chooses the appropriate mechanism in the
        BeginVerifyAck message."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpLinkVerificationEntry 3 }

lmpVerifyAllLinks OBJECT-TYPE
   SYNTAX        INTEGER { verifyAllLinks(1), verifyNewLinks(2) }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object indicates whether the verification process checks
        all entities or only the new entities that have been added to
        this TE link."
   ::= { lmpLinkVerificationEntry 4 }

lmpTeLinkBitRate OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is the bit rate at which the Test messages will be
        transmitted and is expressed in bytes per second."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpLinkVerificationEntry 5 }

lmpTeLinkWavelength OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This value corresponds to the wavelength at
        which the Test messages will be transmitted over and is
        measured in nanometers (nm). If each data-bearing link
        corresponds to a separate wavelength, than this value should be
        set to 0."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpLinkVerificationEntry 6 }

-- End of lmpLinkVerificationTable

-- LMP Data Bearing Link Table

lmpDataBearingLinkTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpDataBearingLinkEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the data-bearing links managed by the
        LMP."
   ::= { lmpObjects 15 }

lmpDataBearingLinkEntry OBJECT-TYPE
   SYNTAX        LmpDataBearingLinkEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table exists for each ifEntry that represents
        a data-bearing link. An ifEntry with an ifIndex must exist
        before the corresponding lmpDataBearingLinkEntry is created.
        If an entry representing the data-bearing link is destroyed in
        the ifTable, then so is the corresponding entry in the
        lmpDataBearingLinkTable. The administrative status value is
        controlled from the ifEntry. The index to this table also
        used to get information in the dataBearingChannelTable
        [BUNDLE-MIB]."
   INDEX         { ifIndex }
   ::= { lmpDataBearingLinkTable 1 }

LmpDataBearingLinkEntry ::= SEQUENCE {
  lmpDataBearingLinkType               INTEGER,
  lmpDataBearingLinkNumberingType      INTEGER,
  lmpDataBearingLinkRemoteIfId         InterfaceIndexOrZero,
  lmpDataBearingLinkRemoteIpAddress    InetAddress,
  lmpDataBearingLinkEncodingType       INTEGER,
  lmpDataBearingLinkActiveOperStatus   INTEGER,
  lmpDataBearingLinkPassiveOperStatus  INTEGER,
  lmpDataBearingLinkRowStatus          RowStatus,
  lmpDataBearingLinkStorageType        StorageType
}

lmpDataBearingLinkType OBJECT-TYPE
   SYNTAX        INTEGER {
                     port(1),
                     componentLink(2)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies whether this data-bearing link is
        a port or a component link. Component link are multiplex
        capable whereas, ports are not multiplex capable."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpDataBearingLinkEntry 1 }

lmpDataBearingLinkNumberingType OBJECT-TYPE
   SYNTAX        INTEGER {
                     unnumbered(1),
                     ipV4(2),
                     ipV6(3)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies the data-bearing link numbering
        type."
   ::= { lmpDataBearingLinkEntry 2 }

lmpDataBearingLinkRemoteIfId OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Interface identifier of the remote end point. This
        information is either configured manually or is
        communicated by the remote node during the link verification
        procedure."
   ::= { lmpDataBearingLinkEntry 3 }

lmpDataBearingLinkRemoteIpAddress OBJECT-TYPE
   SYNTAX        InetAddress
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "IP address of the remote end point. This
        information is either configured manually or is
        communicated by the remote node during the link verification
        procedure."
   ::= { lmpDataBearingLinkEntry 4 }

lmpDataBearingLinkEncodingType OBJECT-TYPE
   SYNTAX        INTEGER {
                     packet(1),
                     ethernetV2Dix(2),
                     ansiPdh(3),
                     etsiPdh(4),
                     sdhItuG707(5),
                     sonetAnsiT1105(6),
                     digitalWrapper(7),
                     lambda(8),
                     fiber(9),
                     ethernet8023(10),
                     fiberChannel(11)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The encoding type of the data-bearing link."
   REFERENCE
       "draft-ietf-mpls-generalized-signaling-07.txt - Generalized
        MPLS Signaling Functional Description, P. Ashwood-Smith,
        A. Banarjee, L. Berger, G. Bernstein, J. Drake, Y. Fan,
        E. Mannie, J. Lang, B. Rajagopalan, Y. Rekhter, D. Saha,
        V. Sharma, G. Swallow, Z. Tang, November 2001."
   ::= { lmpDataBearingLinkEntry 5 }

lmpDataBearingLinkActiveOperStatus OBJECT-TYPE
   SYNTAX        INTEGER {
                     upAlloc(1),
                     upFree(2),
                     down(3),
                     testing(4) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of this data-bearing link
        (active FSM)."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpDataBearingLinkEntry 6 }

lmpDataBearingLinkPassiveOperStatus OBJECT-TYPE
   SYNTAX        INTEGER {
                     upAlloc(1),
                     upFree(2),
                     down(3),
                     psvTst(4) }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of this data-bearing link
        (passive FSM)."
   REFERENCE
       "draft-ietf-ccamp-lmp-02.txt - Link Management Protocol (LMP),
        J. Lang, K. Mitra, J. Drake, K. Kompella, Y. Rekhter,
        L. Berger, D. Saha, D. Basak, H. Sandick, A. Zinin,
        B. Rajagopalan, November 2001."
   ::= { lmpDataBearingLinkEntry 7 }

lmpDataBearingLinkRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable is used to create, modify, and/or
        delete a row in this table. All read-create objects
        can be changed when lmpDataBearingLinkRowStatus is active."
   ::= { lmpDataBearingLinkEntry 8 }

lmpDataBearingLinkStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this conceptual row in the
        lmpDataBearingLinkTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { lmpDataBearingLinkEntry 9 }

-- End of lmpDataBearingLinkTable

-- LMP Data Bearing Link Performance Table

lmpDataBearingLinkPerfTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF LmpDataBearingLinkPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the data-bearing links LMP performance
        counters."
   ::= { lmpObjects 16 }

lmpDataBearingLinkPerfEntry OBJECT-TYPE
   SYNTAX        LmpDataBearingLinkPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains information about
        the LMP performance counters for the data-bearing links."
   AUGMENTS      { lmpDataBearingLinkEntry }
   ::= { lmpDataBearingLinkPerfTable 1 }

LmpDataBearingLinkPerfEntry ::= SEQUENCE {
  lmpDataBearingLinkTestReceived              Counter32,
  lmpDataBearingLinkTestSent                  Counter32,
  lmpDataBearingLinkActiveTestSuccess         Counter32,
  lmpDataBearingLinkActiveTestFailure         Counter32,
  lmpDataBearingLinkPassiveTestSuccess        Counter32,
  lmpDataBearingLinkPassiveTestFailure        Counter32,
  lmpDataBearingLinkCounterDiscontinuityTime  TimeStamp
}

lmpDataBearingLinkTestReceived OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Test messages that have
        been received on this data-bearing link."
   ::= { lmpDataBearingLinkPerfEntry 1 }

lmpDataBearingLinkTestSent OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of Test messages that have
        been sent on this data-bearing link."
   ::= { lmpDataBearingLinkPerfEntry 2 }

lmpDataBearingLinkActiveTestSuccess OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of data-bearing link test
        that were successful on the active side of this data-
        bearing link."
   ::= { lmpDataBearingLinkPerfEntry 3 }

lmpDataBearingLinkActiveTestFailure OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of data-bearing link test
        that failed on the active side of this data-bearing link."
   ::= { lmpDataBearingLinkPerfEntry 4 }

lmpDataBearingLinkPassiveTestSuccess OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of data-bearing link test
        that were successful on the passive side of this data-
        bearing link."
   ::= { lmpDataBearingLinkPerfEntry 5 }

lmpDataBearingLinkPassiveTestFailure OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of data-bearing link test
        that failed on the passive side of this data-bearing link."
   ::= { lmpDataBearingLinkPerfEntry 6 }

lmpDataBearingLinkCounterDiscontinuityTime OBJECT-TYPE
    SYNTAX       TimeStamp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The value of sysUpTime on the most recent occasion at which
         any one or more of this data-bearing link's counters suffered a
         discontinuity. The relevant counters are the specific
         instances associated with this data-bearing link of any Counter32 or
         Counter64 object contained in the lmpDataBearingLinkPerfTable. If
         no such discontinuities have occurred since the last re-
         initialization of the local management subsystem, then this
         object contains a zero value."
    ::= { lmpDataBearingLinkPerfEntry 7 }

-- End of lmpDataBearingLinkPerfTable

-- Notification Configuration

lmpLinkPropertyMismatchNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation of lmpTeLinkPropertyMismatch
        and lmpDataBearingLinkPropertyMismatch notifications,
        otherwise these notifications are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 17 }

lmpUnprotectedNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation of lmpUnprotected notifications,
        otherwise these notifications are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 18 }

lmpCcUpDownNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the generation of
        lmpControlChannelUp and lmpControlChannelDown notifications,
        otherwise these notifications are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 19 }

lmpTeLinkNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation of lmpTeLinkDegraded notification,
        otherwise these notifications are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 20 }

lmpDataBearingLinkNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation of lmpDataBearingLinkVerificationFailure
        notification, otherwise these notifications are not emitted."
   DEFVAL        { false }
   ::= { lmpObjects 21 }

-- Notifications

-- Link Property Mismatch Notifications

lmpTeLinkPropertyMismatch NOTIFICATION-TYPE
   OBJECTS       { teLinkRemoteIpAddr,
                   teLinkIncomingIfId }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a TE link property
        mismatch is detected on the node. The received remote TE link
        id of the misconfigured TE link is represented by either
        teLinkRemoteIpAddr or teLinkIncomingIfId depending on whether
        the TE link is numbered or unnumbered."
   ::= { lmpNotifications 1 }

lmpDataBearingLinkPropertyMismatch NOTIFICATION-TYPE
   OBJECTS       { ifStackHigherLayer,
                   lmpDataBearingLinkRemoteIfId }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a data-bearing link
        property mismatch is detected on the node. ifStackHigherLayer
        is the interface index of the TE link. The remote entity
        interface id is the remote entity interface id received in the
        LinkSummary message."
   ::= { lmpNotifications 2 }

-- Neighbor Notification

lmpUnprotected NOTIFICATION-TYPE
   OBJECTS       { lmpNbrNodeId }
   STATUS        current
   DESCRIPTION
       "This notification is generated when all but one control channel
        is operational. If the only operational control channel fails,
        then there will be no more control channels between the pair of
        nodes and all the data-bearing links between the pair of nodes
        will go to degraded state."
   ::= { lmpNotifications 3 }

-- Control Channel Notifications

lmpControlChannelUp NOTIFICATION-TYPE
   OBJECTS       { lmpCcId }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a control
        channel transitions to the up operational state."
   ::= { lmpNotifications 4 }

lmpControlChannelDown NOTIFICATION-TYPE
   OBJECTS       { lmpCcId }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a control
        channel transitions to the down operational state."
   ::= { lmpNotifications 5 }

-- TE Link Notification

lmpTeLinkDegraded NOTIFICATION-TYPE
   OBJECTS       { ifIndex }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a lmpTeLinkOperStatus
        object for a TE link enters the degraded state."
   ::= { lmpNotifications 6 }

-- Data-bearing Link Notification

lmpDataBearingLinkVerificationFailure NOTIFICATION-TYPE
   OBJECTS       { ifIndex }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a data-bearing
        link verification fails."
   ::= { lmpNotifications 7 }

-- End of notifications

-- Module compliance

lmpGroups
   OBJECT IDENTIFIER ::= { lmpConformance 1 }

lmpCompliances
   OBJECT IDENTIFIER ::= { lmpConformance 2 }

lmpFullModuleCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION
       "Compliance statement for agents that support the
        configuration and monitoring of LMP MIB."
   MODULE -- this module

      -- The mandatory groups have to be implemented
      -- by all LMP-enabled devices. However, they may all be supported
      -- as read-only objects in the case where manual
      -- configuration is unsupported.

      MANDATORY-GROUPS    { lmpNodeGroup,
                            lmpControlChannelGroup,
                            lmpLinkPropertyCorrelationGroup,
                            lmpPerfGroup,
                            lmpTeLinkGroup,
                            lmpDataBearingLinkGroup }

      GROUP lmpControlChannelIsNotInterfaceGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           control channels that are not interfaces, in addition to
           lmpControlChannelGroup. The following constraints apply:
           lmpCcIsIf must at least be read-only returning false(1)."

      GROUP lmpControlChannelIsInterfaceGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           control channels that are interfaces, in addition to
           lmpControlChannelGroup. The following constraints apply:
           lmpCcIsIf must at least be read-only returning true(2)."

      GROUP lmpLinkVerificationGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           the link verification procedure."

      -- lmpNbrTable

      OBJECT      lmpNbrRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpNbrStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- lmpControlChannelTable

      OBJECT      lmpCcRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpCcOperStatus
      SYNTAX      INTEGER { up(1), down(2) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of active(3), configuring(4), goingDown(5)
           need not be supported."
      OBJECT      lmpCcStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "Only other(1) needs to the up operational state."
   ::= be supported."

      -- lmpTeLinkTable

      OBJECT      lmpTeLinkOperStatus
      SYNTAX      INTEGER { lmpNotifications 4 up(1), down(2), degraded(4) }

lmpControlChannelDown NOTIFICATION-TYPE
   OBJECTS
      MIN-ACCESS  read-only
      DESCRIPTION
          "The testing(3) state need not be supported."

      OBJECT      lmpTeLinkRowStatus
      SYNTAX      INTEGER { ifIndex active(1), notInService(2),
                            createAndGo(4), destroy(6) }
   STATUS        current
      MIN-ACCESS  read-create
      DESCRIPTION
       "This notification is generated when a control
        channel transitions to the down operational state."
   ::=
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpTeLinkStorageType
      SYNTAX      INTEGER { lmpNotifications 5 other(1) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- TE Link Trap

lmpTeLinkDegraded NOTIFICATION-TYPE
   OBJECTS lmpDataBearingLinkTable

      OBJECT      lmpDataBearingLinkActiveOperStatus
      SYNTAX      INTEGER { ifIndex up(1), down(2), degraded(4) }
   STATUS        current
      MIN-ACCESS  read-only
      DESCRIPTION
       "This notification is generated when a lmpTeLinkOperStatus
        object for a TE link enters the degraded state."
   ::=
          "A value of testing(3) need not be supported."

      OBJECT      lmpDataBearingLinkPassiveOperStatus
      SYNTAX      INTEGER { lmpNotifications 6 up(1), down(2), degraded(4) }

-- End
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of notifications

-- Module compliance

lmpGroups testing(3) need not be supported."

      OBJECT IDENTIFIER ::=      lmpDataBearingLinkRowStatus
      SYNTAX      INTEGER { lmpConformance 1 active(1), notInService(2),
                            createAndGo(4), destroy(6) }

lmpCompliances
      MIN-ACCESS  read-only
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT IDENTIFIER      lmpDataBearingLinkStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-create
      DESCRIPTION
          "Only other(1) needs to be supported."

   ::= { lmpConformance 2 lmpCompliances 1 }

lmpModuleCompliance

lmpMonitoringModuleCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION
       "Compliance statement for agents that support the
        monitoring of the LMP MIB."
   MODULE -- this module

      -- The mandatory groups have to be implemented
      -- by all LMP-enabled devices. However, they may all be supported
      -- as read-only objects in the case where manual
      -- configuration is unsupported.

      MANDATORY-GROUPS    { lmpNodeGroup,
                            lmpControlChannelGroup,
                            lmpLinkPropertyCorrelationGroup,
                            lmpPerfGroup,
                            lmpTeLinkGroup,
                            lmpDataBearingLinkGroup }

      GROUP lmpControlChannelIsNotInterfaceGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           control channels that are not interfaces, in addition to
           lmpControlChannelGroup. The following constraints apply:
           lmpCcIsIf must at least be read-only returning false(1)."

      GROUP lmpControlChannelIsInterfaceGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           control channels that are interfaces, in addition to
           lmpControlChannelGroup. The following constraints apply:
           lmpCcIsIf must at least be read-only returning true(2)."

      GROUP lmpLinkVerificationGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           the link verification procedure."
      -- Scalars

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

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

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

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

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

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

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

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

      -- lmpNbrTable

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

      OBJECT      lmpNbrRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpNbrStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- lmpControlChannelTable

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

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

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

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

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

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

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

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

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

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

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

      OBJECT      lmpCcRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpCcOperStatus
      SYNTAX      INTEGER { up(1), down(2) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of active(3), configuring(4), goingDown(5)
           need not be supported."

      OBJECT      lmpCcStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."
      -- lmpLinkVerificationTable

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

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

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

      -- lmpTeLinkTable

      OBJECT      lmpTeLinkNbrNodeId
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required if the link verification
           procedure is enabled."

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

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

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

      OBJECT      lmpTeLinkOperStatus
      SYNTAX      INTEGER { up(1), down(2), degraded(4) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "The testing(3) state need not be supported."

      OBJECT      lmpTeLinkRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpTeLinkStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- lmpTeLinkVerificationTable

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

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

      -- lmpDataBearingLinkTable required."

      -- lmpDataBearingLinkTable

      OBJECT      lmpDataBearingLinkNumberingType
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required if the link verification
           procedure is enabled."

      OBJECT      lmpDataBearingLinkRemoteIfId
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required if the link verification
           procedure is enabled."

      OBJECT      lmpDataBearingLinkRemoteIfId      lmpDataBearingLinkRemoteIpAddress
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required if the link verification
           procedure is enabled."

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

      OBJECT      lmpDataBearingLinkOperStatus      lmpDataBearingLinkActiveOperStatus
      SYNTAX      INTEGER { up(1), down(2), degraded(4) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of testing(3) need not be supported."

      OBJECT      lmpDataBearingLinkPassiveOperStatus
      SYNTAX      INTEGER { up(1), down(2), degraded(4) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of psvTst(3) need not be supported."

      OBJECT      lmpDataBearingLinkRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "The notReady(3) and createAndWait(5) states need
           not be supported."

      OBJECT      lmpDataBearingLinkStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

   ::= { lmpCompliances 1 2 }

-- Units of conformance

lmpNodeGroup OBJECT-GROUP
   OBJECTS { lmpAdminStatus,
             lmpOperStatus,
             lmpNbrAdminStatus,
             lmpNbrOperStatus,
             lmpNbrRowStatus,
             lmpNbrStorageType,
             lmpUnprotectedTrapEnable
             lmpUnprotectedNotifEnable
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for LMP node configuration."
   ::= { lmpGroups 1 }

lmpControlChannelGroup OBJECT-GROUP
   OBJECTS {
             lmpNbrNodeId,
             lmpNbrRetransmitInterval,
             lmpNbrRetransmitTimeout,
             lmpNbrAdminStatus,
             lmpNbrOperStatus,
             lmpNbrRowStatus,
             lmpNbrStorageType,
             lmpCcHelloIntervalDefault,
             lmpCcHelloIntervalDefaultMin,
             lmpCcHelloIntervalDefaultMax,
             lmpCcHelloDeadIntervalDefault,
             lmpCcHelloDeadIntervalDefaultMin,
             lmpCcHelloDeadIntervalDefaultMax,
             lmpCcNbrNodeId,
             lmpCcId,
             lmpRemoteCcId,
             lmpCcSetupRole,
             lmpCcAuthentication,
             lmpCcConfigRetransmitInterval,
             lmpCcConfigRetransmitTimeout,
             lmpCcHelloInterval,
             lmpCcHelloIntervalMin,
             lmpCcHelloIntervalMax,
             lmpCcHelloIntervalNegotiated,
             lmpCcHelloDeadInterval,
             lmpCcHelloDeadIntervalMin,
             lmpCcHelloDeadIntervalMax,
             lmpCcHelloDeadIntervalNegotiated,
             lmpCcOperStatus,
             lmpCcRowStatus,
             lmpCcStorageType,
             lmpCcUpDownTrapEnable
             lmpCcUpDownNotifEnable
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for LMP interface
           configuration."
   ::= { lmpGroups 2 }

lmpControlChannelIsInterfaceGroup OBJECT-GROUP
   OBJECTS { lmpCcIsIf }
   STATUS  current
   DESCRIPTION
          "Objects needed to implement control channels that are
           interfaces."
   ::= { lmpGroups 3 }

lmpControlChannelIsNotInterfaceGroup OBJECT-GROUP
   OBJECTS {
             lmpCcUnderlyingIfIndex,
             lmpCcIsIf,
             lmpCcLastChange,
             lmpCcAdminStatus
           }
   STATUS  current
   DESCRIPTION
          "Objects needed to implement control channels that are not
           interfaces."
   ::= { lmpGroups 4 }

lmpLinkPropertyCorrelationGroup OBJECT-GROUP
   OBJECTS { lmpLinkPropertyMismatchTrapEnable lmpLinkPropertyMismatchNotifEnable }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed to implement the link
           property correlation procedure."
   ::= { lmpGroups 5 }

lmpLinkVerificationGroup OBJECT-GROUP
   OBJECTS { lmpLinkVerificationInterval,
             lmpVerifyInterval,
             lmpVerifyDeadInterval,
             lmpVerifyTransportMechanism,
             lmpVerifyAllLinks,
             lmpTeLinkBitRate,
             lmpTeLinkWavelength
             lmpTeLinkWavelength,
             lmpDataBearingLinkNotifEnable
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed to implement the link
           verification procedure."
   ::= { lmpGroups 6 }

lmpPerfGroup OBJECT-GROUP
   OBJECTS { lmpCcHCInOctets, lmpCcInOctets,
             lmpCcInDiscards,
             lmpCcInErrors,
             lmpCcHCOutOctets,
             lmpCcOutOctets,
             lmpCcOutDiscards,
             lmpCcOutErrors,
             lmpCcHCHelloReceived,
             lmpCcHCHelloSent,
             lmpCcConfigReceived,
             lmpCcConfigSent,
             lmpCcConfigRetransmit,
             lmpCcConfigAckReceived,
             lmpCcConfigAckSent,
             lmpCcConfigNackSent,
             lmpCcConfigNackReceived,
             lmpCcHelloReceived,
             lmpCcHelloSent,
             lmpCcBeginVerifyReceived,
             lmpCcBeginVerifySent,
             lmpCcBeginVerifyReceived,
             lmpCcBeginVerifyAckReceived,
             lmpCcBeginVerifyAckSent,
             lmpCcBeginVerifyNackReceived,
             lmpCcBeginVerifyNackSent,
             lmpCcEndVerifyReceived,
             lmpCcEndVerifySent,
             lmpCcEndVerifyReceived,
             lmpCcEndVerifyAckReceived,
             lmpCcEndVerifyAckSent,
             lmpCcTestStatusSuccessReceived,
             lmpCcTestStatusSuccessSent,
             lmpCcTestStatusSuccessReceived,
             lmpCcTestStatusFailureReceived,
             lmpCcTestStatusFailureSent,
             lmpCcTestStatusFailureReceived,
             lmpCcLinkSummaryReceived,
             lmpCcLinkSummarySent,
             lmpCcLinkSummaryRetransmit,
             lmpCcLinkSummaryAckReceived,
             lmpCcLinkSummaryAckSent,
             lmpCcLinkSummaryNackReceived,
             lmpCcLinkSummaryNackSent,
             lmpCcChannelStatusReceived,
             lmpCcChannelStatusSent,
             lmpCcChannelStatusRetransmit,
             lmpCcChannelStatusAckReceived,
             lmpCcChannelStatusAckSent,
             lmpCcChannelStatusRequestReceived,
             lmpCcChannelStatusRequestSent,
             lmpCcChannelStatusRequestRetransmit,
             lmpCcChannelStatusResponseReceived,
             lmpCcChannelStatusResponseSent,
             lmpCcCounterDiscontinuityTime,
             lmpDataBearingLinkTestReceived,
             lmpDataBearingLinkTestSent,
             lmpDataBearingLinkActiveTestSuccess,
             lmpDataBearingLinkActiveTestFailure,
             lmpDataBearingLinkPassiveTestSuccess,
             lmpDataBearingLinkPassiveTestFailure,
             lmpDataBearingLinkCounterDiscontinuityTime
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for providing performance
           information about LMP interfaces and data-bearing links."
   ::= { lmpGroups 7 }

lmpTeLinkGroup OBJECT-GROUP
   OBJECTS { lmpTeLinkNbrNodeId,
             lmpTeLinkVerification,
             lmpTeLinkFaultIsolation,
             lmpTeLinkFaultManagement,
             lmpTeLinkDwdm,
             lmpTeLinkOperStatus,
             lmpTeLinkRowStatus,
             lmpTeLinkStorageType,
             lmpTeLinkTrapEnable
             lmpTeLinkNotifEnable
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for TE link configuration."
   ::= { lmpGroups 8 }

lmpDataBearingLinkGroup OBJECT-GROUP
   OBJECTS { lmpDataBearingLinkType,
             lmpDataBearingLinkNumberingType,
             lmpDataBearingLinkRemoteIfId,
             lmpDataBearingLinkRemoteIpAddress,
             lmpDataBearingLinkEncodingType,
             lmpDataBearingLinkOperStatus,
             lmpDataBearingLinkActiveOperStatus,
             lmpDataBearingLinkPassiveOperStatus,
             lmpDataBearingLinkRowStatus,
             lmpDataBearingLinkStorageType
           }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for data-bearing link
           configuration."
   ::= { lmpGroups 9 }

lmpNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS { lmpTeLinkPropertyMismatch,
                   lmpDataBearingLinkPropertyMismatch,
                   lmpUnprotected,
                   lmpControlChannelUp,
                   lmpControlChannelDown,
                   lmpTeLinkDegraded
                   lmpTeLinkDegraded,
                   lmpDataBearingLinkVerificationFailure }
   STATUS  current
   DESCRIPTION
          "Set of notifications implemented in this module.
           None is mandatory."
   ::= { lmpGroups 10 }

-- End of LMP-MIB
END

11.  Security Considerations

   It is clear that this MIB is potentially useful for monitoring of LMP
   enabled devices. This MIB can also be used for configuration of cer-
   tain objects, and anything that can be configured can be incorrectly
   configured, with potentially disastrous results.

   At this writing, no security holes have been identified beyond those
   that SNMP Security [SNMPArch] [RFC2571] is itself intended to address.  These
   relate to primarily controlled access to sensitive information and
   the ability to configure a device - or which might result from opera-
   tor error, which is beyond the scope of any security architecture.

   There are a number of management objects defined in this MIB which
   have a MAX-ACCESS clause of read-write and/or read-create. Such
   objects may be considered sensitive or vulnerable in some network
   environments. The support for SET operations in a non-secure environ-
   ment without proper protection can have a negative effect on network
   operations. The use of SNMP Version 3 is recommended over prior ver-
   sions, for configuration control, as its security model is improved.

   SNMPv1 or SNMPv2 are by themselves not a secure environment. Even if
   the network itself is secure (for example by using IPSec [IPSEC]),
   there is no control as to who on the secure network is allowed to
   access and GET/SET (read/change/create/delete) the objects in this
   MIB. It is recommended that the implementers consider the security
   features as provided by the SNMPv3 framework. Specifically, the use
   of the User-based Security Model [SNMPv3USM] [RFC2574] and the View-based Access
   Control [SNMPv3VACM] [RFC2575] is recommended. It is then a customer/user responsibility respon-
   sibility to ensure that the SNMP entity giving access to an instance
   of this MIB is properly configured to give access to the objects only
   to those principals (users) that have leg-
   itimate legitimate rights to indeed GET
   or SET (change/create/delete) them.

   There are a number of managed objects in this MIB that may contain
   information that may be sensitive from a business perspective, in
   that they represent a customer's interface can be used to derive the G-MPLS network. network topology, e.g. list of
   nodes and their IP address (lmpNbrTable) and list of data-bearing
   links (lmpDataBearingLinkTable). Allowing uncontrolled access to
   these objects could result in mali-
   cious malicious and unwanted disruptions of
   network traffic or traffic, incorrect confi-
   gurations for these customers. network configurations or theft of com-
   petitive business information. There are no objects that are particu-
   larly sensitive in their own right, such as passwords or monetary
   amounts.

12.  Acknowledgments

   The general structure of this draft has been modeled around draft-
   ietf-mpls-lsr-mib-06.txt.

   The authors wish to thank Dmitry Ryumkin. Ryumkin, Baktha Muralidharan and
   George Wang.

13.  References

   [LMP]         Lang, J., Mitra, K., Drake, J., Kompella, K.,
                 Rekhter, Y., Berger, L., Saha, S., Basak, D.,
                 Sandick, H., Zinin, A., and Rajagopalan, B.,
                 "Link Management Protocol", Internet Draft
                 <draft-ietf-ccamp-lmp-01.txt>, September
                 <draft-ietf-ccamp-lmp-02.txt>, November 2001.

   [GMPLS]       Ashwood-Smith, P., Banarjee, A., Berger, L.,
                 Bernstein, G., Drake, J., Fan, Y., Kompella, K.,
                 Mannie, E., Lang, J., Rajagopalan, B., Rekhter, Y.,
                 Saha, D., Sharma, V., Swallow, G., and Tang, Z.,
                 "Generalized MPLS Signaling Function Description",
                 Internet Draft
                 <draft-ietf-mpls-generalized-signaling-05.txt>,
                 July
                 <draft-ietf-mpls-generalized-signaling-07.txt>,
                 November 2001.

   [BUNDLE]      Kompella, K., Rekhter, Y., and Berger, L.,
                 "Link Bundling in MPLS Traffic Engineering",
                 Internet Draft <draft-kompella-mpls-bundle-05.txt>,
                 February <draft-ietf-mpls-bundle-01.txt>,
                 November 2001.

   [BUNDLE-MIB]  Dubuc, M., Dharanikota, S. Nadeau, T., Lang, J.,
                 "Link Bundling Management Information Base using
   SMIv2", Base",
                 Internet Draft <draft-dubuc-mpls-bundle-mib-01.txt>,
                 May 2001. <draft-ietf-mpls-bundle-mib-01.txt>,
                 January 2002.

   [Assigned]    Reynolds, J., and J. Postel, "Assigned Numbers",
                 RFC 1700, October 1994. See also:
                 http://www.isi.edu/in-notes/iana/assignments/smi-
                 numbers

   [IANAFamily]  Internet Assigned Numbers Authority (IANA), ADDRESS
                 FAMILY NUMBERS, (http://www.isi.edu/in-
                 notes/iana/assignements/address-family-numbers),
                 for MIB see:
                 ftp://ftp.isi.edu/mib/ianaaddressfamilynumbers.mib

   [SNMPArch]

   [RFC2571]     Harrington, D., Presuhn, R., and B. Wijnen, "An
                 Architecture for Describing SNMP Management
                 Frameworks", RFC 2571, April 1999.

   [SMIv1]

   [RFC1155]     Rose, M., and K. McCloghrie, "Structure and
                 Identification of Management Information for TCP/IP-
                 based Internets", STD 16, RFC 1155, May 1990.

   [SNMPv1MIBDef]Rose,

   [RFC1212]     Rose, M., and K. McCloghrie, "Concise MIB Definitions",
                 STD 16, RFC 1212, March 1991.

   [SNMPv1Traps]

   [RFC1215]     M. Rose, "A Convention for Defining Traps for use with
                 the SNMP", RFC 1215, March 1991.

   [RFC2572]     Case, J., Harrington D., Presuhn R., and B. Wijnen,
                 "Message Processing and Dispatching for the Simple
                 Network Management Protocol (SNMP)", RFC 2572,
                 April 1999.

   [RFC2574]     Blumenthal, U., and B. Wijnen, "User-based Security
                 Model (USM) for version 3 of the Simple Network
                 Management Protocol (SNMPv3)", RFC 2574, April
                 1999.

   [RFC1905]     Case, J., McCloghrie, K., Rose, M., and S.
                 Waldbusser, "Protocol Operations for Version 2 of
                 the Simple Network Management Protocol (SNMPv2)",
                 RFC 1905, January 1996.

   [RFC2573]     Levi, D., Meyer, P., and B. Stewart, "SNMPv3
                 Applications", RFC 2573, April 1999.

   [RFC2575]     Wijnen, B., Presuhn, R., and K. McCloghrie, "View-
                 based Access Control Model (VACM) for the Simple
                 Network Management Protocol (SNMP)", RFC 2575,
                 April 1999.

   [RFC2570]     Case, J., Mundy, R., Partain, D., and B. Stewart,
                 "Introduction to Version 3 of the Internet-standard
                 Network Management Framework", RFC 2570, April
                 1999.

   [SMIv2]

   [RFC2578]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                 J., Rose, M., and S. Waldbusser, "Structure of
                 Management Information Version 2 (SMIv2)", STD 58,
                 RFC 2578, April 1999.

   [SNMPv2TC]

   [RFC2579]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                 J., Rose, M., and S. Waldbusser, "Textual Conventions
                 for SMIv2", STD 58, RFC 2579, April 1999.

   [SNMPv2Conf]

   [RFC2580]     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                 J., Rose, M., and S. Waldbusser, "Conformance
                 Statements for SMIv2", STD 58, RFC 2580, April 1999.

   [SNMPv1]

   [RFC1157]     Case, J., Fedor, M., Schoffstall, M., and J. Davin,
                 "Simple Network Management Protocol", STD 15, RFC 1157,
                 May 1990.

   [SNMPv2c]

   [RFC1901]     Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                 "Introduction to Community-based SNMPv2", RFC 1901,
                 January 1996.

   [SNMPv2TM]

   [RFC1906]     Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                 "Transport Mappings for Version 2 of the Simple Network
                 Management Protocol (SNMPv2)", RFC 1906, January 1996.

   [SNMPv3MP]

   [RFC2572]     Case, J., Harrington D., Presuhn R., and B. Wijnen,
                 "Message Processing and Dispatching for the Simple
                 Network Management Protocol (SNMP)", RFC 2272,
                 January 1998.

   [SNMPv3USM] 2572, April
                 1999.

   [RFC2574]     Blumenthal, U., and B. Wijnen, "User-based Security
                 Model (USM) for version 3 of the Simple Network
                 Management Protocol (SNMPv3)", RFC 2574, April 1999.

   [SNMPv2PO]

   [RFC1905]     Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                 "Protocol Operations for Version 2 of the Simple
                 Network Management Protocol (SNMPv2)", RFC 1905,
                 January 1996.

   [SNMPv3App]

   [RFC2573]     Levi, D., Meyer, P., and B. Stewart, "SNMPv3
                 Applications", RFC 2273, January 1998.

   [SNMPv3VACM] 2573, April 1999.

   [RFC2575]     Wijnen, B., Presuhn, R., and K. McCloghrie, "View-
                 based "View-based
                 Access Control Model (VACM) for the Simple Network
                 Management Protocol (SNMP)", RFC 2575, April 1999.

   [RFC2570]     Case, J., Mundy, R., Partain, D., and B. Stewart,
                 "Introduction to Version 3 of the Internet-standard
                 Network Management Framework", RFC 2570, April 1999.

   [IPSEC]       Kent, S., and Atkinson, R., "Security Architecture
                 for the Internet Protocol", RFC 2401, November
                 1998.

   [IFMIB]       McCloghrie, K., and Kastenholtz, F., "The Interfaces
                 Group MIB", RFC 2863, June 2000.

   [BCP14]       Bradner, S., "Key words for use in RFCs to Indicate
                 Requirement Levels", BCP 14, RFC 2119, March 1997.

14.  Authors' Addresses

Martin Dubuc                         Jonathan P. Lang
edgeflow, Inc.
Meriton Networks                     Calient Networks, Inc.
329 March Rd.
3026 Solandt Road                    25 Castilian Drive
Kanata, ON, CANADA K2K 2E1 2A5           Goleta, CA 93117
Phone: +1-613-270-9279 x253          Email: jplang@calient.net
Email: martin.dubuc@edgeflow.com martin.dubuc@meriton.com

Sudheer Dharanikota                  Evan McGinnis
Nayna Networks, Inc.                 Calient Networks, Inc.
157 Topaz Street                     5853 Rue Ferrari
Milipitas, CA 95035                  San Jose, CA 95138
Phone: +1-408-956-8000 x357          Email: evan@calient.net
Email: sudheer@nayna.com

Thomas D. Nadeau
Cisco Systems, Inc.
300 Apollo Drive
Chelmsford, MA 01824
Phone: +1-978-244-3051
Email: tnadeau@cisco.com

15.  Full Copyright Statement

   Copyright (C) The Internet Society (2000). (2001). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this docu-
   ment itself may not be modified in any way, such as by removing the
   copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of develop-
   ing Internet standards in which case the procedures for copyrights
   defined in the Internet Standards process must be followed, or as
   required to translate it into languages other than English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.  This
   document and the information contained herein is provided on an "AS
   IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
   FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
   LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL
   NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY
   OR FITNESS FOR A PARTICULAR PURPOSE.