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

                                                        Thomas D. Nadeau
                                                           Cisco Systems, Inc. Systems

                                                        Jonathan P. Lang
                                                        Calient Networks, Inc. Networks

                                                           February 2002

               Link Bundling Management Information Base Using SMIv2

                   draft-ietf-mpls-bundle-mib-00.txt

                   draft-ietf-mpls-bundle-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 Link Bundling MIB .................................    5
7.   Brief Description of MIB Objects .............................    6
7.1. teLinkTable ..................................................    6
7.2. teLinkDescriptorTable ........................................    6
7.3. teLinkOspfTeTable ............................................    6
7.4. teLinkSrlgTable ..............................................    7    6
7.5. teLinkBandwidthTable .........................................    7
7.6. dataBearingChannelTable ......................................    7
7.7. dataBearingChannelDescriptorTable ............................    7
7.8. dataBearingChannelBandwidthTable .............................    7
8.   Example of Bundled Link Setup ................................    7
9.   Application of the Interface Interfaces Group to TE Links ............... ..............   11
9.1  Support of the TE Link Layer by ifTable ......................   12
9.2  Using ifStackTable ...........................................   13
10.  Link Bundling MIB Definitions ............................... ................................   15
11.  Security Considerations ......................................   43   47
12.  Acknowledgments ..............................................   44   48
13.  References ...................................................   45   48
14.  Authors' Addresses ...........................................   48   51
15.  Full Copyright Statement .....................................   48   51

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 link bundling as described in [BUNDLING].

2.  Introduction

   This memo defines an experimental portion

   OSPF, G-MPLS and LMP use the concept of traffic engineering (TE)
   links to abstract link properties. The effect of this approach is the Management Informa-
   tion Base (MIB) for use with network management protocols
   reduction of the amount of routing information exchanged in the
   Internet community. net-
   work, which improves routing scalability. In particular, it describes managed objects for
   modeling addition, the use of TE
   link bundling allows the implementation of new capabilities such as described link pro-
   tection.

   We present in [BUNDLING]. this document a MIB that can be used to manage TE links
   and their extension, the bundled link. This MIB enable both the con-
   figuration and the performance monitoring of TE links and bundled
   link.

   Comments should be made directly to the MPLS mailing list at
   mpls@uu.net.

   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 documents describing link
   bundling [BUNDLING] and G-MPLS [GMPLS-ARCH].

   The link bundling feature is designed to aggregate one or more simi-
   lar entities between a node pair into a bundled link [BUNDLING]. In
   the document, those entities are referred to as TE links. A TE link
   is a subinterface capable of carrying MPLS traffic engineered
   traffic.  A TE Link may be comprised of only one underlying data-
   bearing channels. In cases where more than one data-bearing channel
   is to be combined, multiple data-bearing links should be created with
   differing priorities to indicate hot-standby or parallel utilization.

   A bundled link is just another kind of Traffic Engineering (TE) link
   (see [GMPLS-OSPF]). A link bundle is a subinterface which bonds the
   traffic of a group of one or more TE links. There should be more than
   one TE Link in a link bundle, but this is not a requirement.  Furth-
   ermore, if there are more than one TE link in a link bundle at some
   time, and at some point later, all but one of the links are deleted,
   the agent may choose to either delete the link bundle, or it may
   choose to leave it intact. Traffic counters on a link bundle are
   cumulative for all subinterfaces which it binds together.

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 Management Information Base or MIB. Objects in the MIB are
   defined using 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 bundling MIB (LINK-BUNDLING-MIB) is designed to satisfy the
   following requirements and constraints:

   -  The MIB supports the management of TE links, including bundled
      links.

   -  Support is provided for configuration of traffic engineering
      parameters associated with TE links.

   -  The MIB is used to monitor the priority-based data-bearing channel
      and TE link bandwidth values.

6.  Outline

   Configuring bundled links involves the following steps:

   -  Creating a bundled link.

   -  Creating TE links.

   -  Optionally specifying the shared risk link groups associated with
      the TE links.

   -  Configuring the data-bearing channels including the bandwidth
      parameters and associating the data-bearing channels with the
      appropriate TE link.

   -  Associating the TE links with the appropriate bundled link.

6.1.  Summary of Link Bundling MIB

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

   -  The TE link table (teLinkTable), which is used to
      specify TE links, including bundled links, and their generic
      traffic engineering parameters.

   -  The TE link descriptor table (teLinkDescriptorTable), which is
      used to enumerate the TE link descriptors.

   -  The TE link OSPF traffic engineering table
      (teLinkOspfTeTable), which is used for configuring OSPF
      traffic engineering parameters associated with TE links.

   -  The shared risk link group (SRLG) table (teLinkSrlgTable),
      which is used to specify the SRLGs associated with TE links.

   -  The TE link bandwidth table (teLinkBandwidthTable),
      which is used for reporting priority-based bandwidth values
      associated with TE links.

   -  The data-bearing channel table (dataBearingChannelTable), which is
      used to identify the data-bearing channels that are associated
      with the TE links and specify the data-bearing channel generic
      traffic engineering parameters.

   -  The data-bearing channel link descriptor table
      (dataBearingChannelDescriptorTable), which is used to enumerate
      the data-bearing channel link descriptors.

   -  The data-bearing channel bandwidth table
      (dataBearingChannelBandwidthTable), which is used to report
      priority-based bandwidth values associated with data-bearing
      channels.

   These tables are described in the subsequent sections.

7.  Brief Description of MIB Objects

   Sections 7.1-7.5 describe objects pertaining to TE links.  The MIB
   objects were derived from the link bundling document [BUNDLING].

7.1.  teLinkTable

   This table represents the TE links, including bundled links.

7.2.  teLinkDescriptorTable

   This table represents the TE link descriptors.

7.3.  teLinkOspfTeTable

   This table represents the OSPF traffic engineering parameters that
   are associated with the TE links.

7.4.  teLinkSrlgTable

   This table represents the shared risk link groups (SRLGs) associated
   with TE links.

7.5.  teLinkBandwidthTable

   This table specifies the priority-based bandwidth traffic engineering
   parameters associated with TE links.

7.6.  dataBearingChannelTable

   This table enumerates the data-bearing channels and their association
   with TE link.

7.7.  dataBearingChannelDescriptorTable

   This table enumerates the link descriptors that each data-bearing
   channel supports.

7.8.  dataBearingChannelBandwidthTable

   The data-bearing channel bandwidth table specifies the priority-based
   bandwidth values associated with the data-bearing channels.

8.  Example of Bundled Link Setup

   In this section we provide a brief example of using the MIB
   objects described in section 9 10 to set up a bundled link.
   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 manually create a bundled link
   out of two 1:1 TE links. Assume that the bundled link is associated
   with SRLGs 10 and 50. Finally, let the data-bearing channels be port
   entity interfaces (lambdas). The following example illustrates which
   rows and corresponding objects might be created to accomplish this.

   First, a bundled link entry is created. An ifEntry with the same
   ifIndex and with ifType teLink needs to be created beforehand.

   In teLinkTable:
   {
      ifIndex                        = 25,
      teLinkNumberingType            = unnumbered(1), unnumbered(2),
      teLinkRowStatus                = createAndGo(4)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 0,
      ifStackLowerLayer              = 25,
      ifStackStatus                  = createAndGo(4)
   }

   Next, the two TE links are created.

   In teLinkTable:
   {
      ifIndex                        = 20,
      teLinkNumberingType            = unnumbered(1), unnumbered(2),
      teLinkMetric                   = 5,
      teLinkResourceClass            = 3,
      teLinkRowStatus                = createAndWait(5)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 25,
      ifStackLowerLayer              = 20,
      ifStackStatus                  = createAndGo(4)
   }

   In teLinkTable:
   {
      ifIndex                        = 21,
      teLinkNumberingType            = unnumbered(1), unnumbered(2),
      teLinkMetric                   = 5,
      teLinkResourceClass            = 3,
      teLinkRowStatus                = createAndWait(5)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 25,
      ifStackLowerLayer              = 21,
      ifStackStatus                  = createAndGo(4)
   }

   The OSPF traffic engineering parameters are configured for the
   TE links.

   In teLinkOspfTeTable:
   {
      ifIndex                        = 20,
      teLinkOspfLinkId               = 'c0010101'H, -- 192.1.1.1
      teLinkRowStatus                = createAndGo(4)
   }

   In teLinkOspfTeTable:
   {
      ifIndex                        = 21,
      teLinkOspfLinkId               = 'c0010101'H, -- 192.1.1.1
      teLinkRowStatus                = createAndGo(4)
   }

   We assign SRLGs to the TE links.

   In the teLinkSrlgTable:
   {
      ifIndex                        = 20,
      srlg                           = 10,
      srlgRowStatus                  = createAndGo(4)
   }

   In the teLinkSrlgTable:
   {
      ifIndex                        = 21,
      srlg                           = 50,
      srlgRowStatus                  = createAndGo(4)
   }

   The bundled link inherits the OSPF and SRLG properties from the
   associated TE links.

   Next, for each TE link, two data-bearing channels are created.
   An ifEntry with the same ifIndex needs to be created beforehand.

   In dataBearingChannelTable:
   {
      ifIndex                               = 40,
      dataBearingChannelPreferredProtection = primary(1),
      dataBearingChannelRowStatus           = createAndGo(4)
   }
   In ifStackTable:
   {
      ifStackHigherLayer             = 20,
      ifStackLowerLayer              = 40,
      ifStackStatus                  = createAndGo(4)
   }

   In dataBearingChannelTable:
   {
      ifIndex                               = 43,
      dataBearingChannelPreferredProtection = secondary(2),
      dataBearingChannelRowStatus           = createAndGo(4)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 20,
      ifStackLowerLayer              = 43,
      ifStackStatus                  = createAndGo(4)
   }

   In dataBearingChannelTable:
   {
      ifIndex                               = 44,
      dataBearingChannelPreferredProtection = primary(1),
      dataBearingChannelRowStatus           = createAndGo(4)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 21,
      ifStackLowerLayer              = 44,
      ifStackStatus                  = createAndGo(4)
   }

   In dataBearingChannelTable:
   {
      ifIndex                               = 48,
      dataBearingChannelPreferredProtection = secondary(2),
      dataBearingChannelRowStatus           = createAndGo(4)
   }

   In ifStackTable:
   {
      ifStackHigherLayer             = 21,
      ifStackLowerLayer              = 48,
      ifStackStatus                  = createAndGo(4)
   }
   In this example, once a data-bearing channel is added to the
   dataBearingChannelTable, the associated link descriptors are
   implicitly added to the dataBearingChannelDescriptorTable.

   TE link link descriptors are derived from their data-bearing channel
   link descriptors.

   Note that the bandwidth attributes in teLinkDescriptorTable,
   dataBearingChannelDescriptorTable, teLinkBandwidthTable
   and dataBearingChannelBandwidthTable are maintained by the
   device according to LSP creation/deletion at different priorities.
   The values in the teLinkBandwidthTable are an aggregation
   of the values for the data-bearing channels of the TE links and
   the TE links of the bundled link.

9.  Application of the Interface Interfaces Group to TE Links

   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 TE LInk Link interfaces
   as logical interfaces.

   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.  Thus, the TE Link
   interface is 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 using TE Link interfaces, the interface stack table might appear
   as follows:

   +----------------------------------------+
   | TE link-interface ifType = teLink(TBD) teLink(200) +
   +----------------------------------------+
   | Underlying Layer...                    +
   +----------------------------------------+

   In the above diagram, "Underlying Layer..." refers to the ifIndex
   of any interface type, which has been defined for TE Link
   interworking.  Examples include ATM, Frame Relay, Ethernet, etc.

9.1.  Support of the TE Link Layer by ifTable

   Some specific interpretations of ifTable for the TE Link layer
   follow.

   Object        Use for the TE Link layer

   ifIndex       Each TE Link interface is represented by an ifEntry.

   ifDescr       Description of the TE Link interface.

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

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

   ifPhysAddress Unused.

   ifAdminStatus This variable indicates the administrator's intent
                 as to whether TE Link 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 TE Link on this interface.

   ifLastChange  See [IFMIB].

   ifInOctets    The number of received octets over the interface,
                 i.e., the number of received octets in all data-bearing
                 channels associated with the interface.

   ifOutOctets   The number of transmitted octets over the
                 interface, i.e., the number of octets transmitted
                 over all data-bearing channels associated with the
                 interface.

   ifInErrors    The number of packets dropped due to
                 uncorrectable errors.

   ifInUnknownProtos
                 The number of received packets discarded during
                 packet header validation.

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

   Support for ifInOctets, ifOutOctets, ifInErrors, ifInUnknownProtos,
   ifOutErrors, ifHCInOctets and ifHCOutOctets objects is not required
   if encoding type is clear. For other encoding types, traffic
   counters on a TE link are cumulative for all subinterfaces which it
   binds together.

9.2.  Using ifStackTable

   This section describes by example how to use ifStackTable to
   represent the relationship of TE links with underlying TE-enabled
   interfaces. Implementors of the stack table for TE link interfaces
   should look at the appropriate RFC for the service being stacked
   on TE links. Examples given below are for illustration purposes
   only.

   Example: MPLS is being carried on 2 bundled TE links.
            Each bundled TE link runs over a 1:1 optical
            transport interface.

           +---------------------------------+
           | mpls                            |
           +---------------------------------+
                            |
           +---------------------------------+
           | teLink (Link Bundle)            |
           +---------------------------------+
                   |                 |
           +---------------+ +---------------+
           | teLink        | | teLink        |
           +---------------+ +---------------+
               |        |        |        |
           +------+ +------+ +------+ +------+
           |oTrans| |oTrans| |oTrans| |oTrans|
           +------+ +------+ +------+ +------+

   The assignment of the index values could for example be:

           ifIndex  Description
           1        mpls             (type 166)
           2        teLink           (type TBD)
           3        teLink           (type TBD)
           4        teLink           (type TBD)
           5        opticalTransport (type 196)
           6        opticalTransport (type 196)
           7        opticalTransport (type 196)
           8        opticalTransport (type 196)

   The ifStackTable is then used to show the relationships between the
   various interfaces.

           ifStackTable Entries

           HigherLayer   LowerLayer
           0             1
           1             2
           2             3
           2             4
           3             5
           3             6
           4             7
           4             8
           5             0
           6             0
           7             0
           8             0

   In the case where MPLS is using a single TE link, then
   the upper TE link layer (link bundle) is not required.

           +---------------+
           | mpls          |
           +---------------+
                   |
           +---------------+
           | teLink        |
           +---------------+
               |        |
           +------+ +------+
           |oTrans| |oTrans|
           +------+ +------+

   The assignment of the index values could for example be:

           ifIndex  Description
           1        mpls             (type 166)
           2        teLink           (type TBD)
           3        opticalTransport (type 196)
           4        opticalTransport (type 196)

   The ifStackTable is then used to show the relationships between the
   various interfaces.

           ifStackTable Entries

           HigherLayer   LowerLayer
           0             1
           1             2
           2             3
           2             4
           3             0
           4             0

10.  Link Bundling MIB Definitions

LINK-BUNDLING-MIB DEFINITIONS ::= BEGIN

IMPORTS
   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
   experimental, Integer32, Unsigned32
      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
      FROM IF-MIB

   RouterID
      FROM OSPF-MIB

   InetAddressType, InetAddress
      FROM INET-ADDRESS-MIB;

linkBundlingMIB MODULE-IDENTITY
   LAST-UPDATED "200109101200Z" "200202261200Z"  -- 10 September 2001 26 February 2002 12:00:00 EST
   ORGANIZATION "Multiprotocol Label Switching (MPLS) 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"

   DESCRIPTION
       "This MIB contains managed object definitions for
        MPLS traffic engineering link bundling as
        defined in: Kompella, K., Rekhter, Y., Berger, L.,
        Link Bundling in MPLS Traffic Engineering
        Internet Draft <draft-ietf-mpls-bundling-05.txt>,
        February <draft-ietf-mpls-bundling-01.txt>,
        November 2001."
   -- Revision history.
   REVISION
       "200109101200Z"
       "200202261200Z"  -- 10 September 2001 26 February 2002 12:00:00 EST
   DESCRIPTION
      "Removed teLinkRemoteId.
      "- Updated teLinkEncodingType and
       dataBearingChannelEncodingType values."
   REVISION
       "200105221200Z"  -- 22 May 2001 12:00:00 EST
   DESCRIPTION
      "Replaced InetAddressIPv4 and InetAddressIPv6 with InetAddress MIB boiler plate and InetAddrType. references.
       - Added linkBundlingFullModuleCompliance conformance statement.
       - Removed teLinkIpAddrType. Replaced numbered value with
         ipV4 and ipV6 values in teLinkNumberingType.
       - Updated description of all row status and storage type objects.
       - Changed some of the enumerated value to start from 1 instead of 0.
       - Updated references."
   REVISION
       "200109101200Z"  -- 10 September 2001 12:00:00 EST
   DESCRIPTION
      "Removed teLinkRemoteId. Updated teLinkEncodingType and
       dataBearingChannelEncodingType values."
   REVISION
       "200105223200Z"  -- 22 May 2001 12:00:00 EST
   DESCRIPTION
      "Replaced InetAddressIPv4 and InetAddressIPv6 with InetAddress
       and InetAddrType. Changed description of entries which extend
       ifEntry. Made various minor corrections."
   REVISION
       "200105141200Z"  -- 14 May 2001 12:00:00 EST
   DESCRIPTION
      "Replaced componentLinkTable by dataBearingChannelTable.
       Replaced linkBundlingTable by teLinkTable. Converted TE links
       into interfaces."
   REVISION
       "200102231200Z"  -- 23 February 2001 12:00:00 EST
   DESCRIPTION
      "Initial draft version."
   ::= { experimental 114 }

-- Textual Conventions

-- Top level components of this MIB

-- Traps Notifications
linkBundlingNotifications OBJECT IDENTIFIER ::= { linkBundlingMIB 0 }
-- Tables, Scalars
linkBundlingObjects       OBJECT IDENTIFIER ::= { linkBundlingMIB 1 }
-- Conformance
linkBundlingConformance   OBJECT IDENTIFIER ::= { linkBundlingMIB 2 }

-- TE Link Table

teLinkTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF TeLinkEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the grouping of data-bearing channels into
        TE links and grouping of TE links into bundled links."
   ::= { linkBundlingObjects 1 }

teLinkEntry OBJECT-TYPE
   SYNTAX        TeLinkEntry
   MAX-ACCESS    not-accessible
   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
        in the ifTable must exist before a teLinkEntry is created with
        the corresponding ifIndex. If a TE link entry in the ifTable is
        destroyed, then so is the corresponding entry in the
        teLinkTable. The administrative and operational status values
        are controlled from the ifEntry. If the link is unnumbered,
        ifIndex is also used as the outgoing interface identifier."
   INDEX         { ifIndex }
   ::= { teLinkTable 1 }

TeLinkEntry ::= SEQUENCE {
  teLinkNumberingType          INTEGER,
  teLinkIpAddrType             InetAddressType,
  teLinkIpAddr                 InetAddress,
  teLinkRemoteIpAddr           InetAddress,
  teLinkMetric                 Unsigned32,
  teLinkMuxCapability          INTEGER,
  teLinkProtectionType         INTEGER,
  teLinkWorkingPriority        Unsigned32,
  teLinkResourceClass          Unsigned32,
  teLinkIncomingIfId           InterfaceIndexOrZero,
  teLinkOutgoingIfId           InterfaceIndexOrZero,
  teLinkFlooding               InterfaceIndexOrZero,
  teLinkRowStatus              RowStatus,
  teLinkStorageType            StorageType
}

teLinkNumberingType OBJECT-TYPE
   SYNTAX        INTEGER {
                     numbered(0),
                     unnumbered(1)
                     unnumbered(1),
                     ipV4(2),
                     ipV6(3)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The TE link identifier type (numbered or unnumbered)."
   ::= { teLinkEntry 1 }

teLinkIpAddrType OBJECT-TYPE
   SYNTAX        InetAddressType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Indicates whether the TE link address is IPv4 or
        IPv6 (numbered link)." numbering type."
   ::= { teLinkEntry 2 1 }

teLinkIpAddr OBJECT-TYPE
   SYNTAX        InetAddress
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For IPv4 and IPv6 numbered links, this object represents the
        IP address associated with the TE link."
   ::= { teLinkEntry 3 2 }

teLinkRemoteIpAddr OBJECT-TYPE
   SYNTAX        InetAddress
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The remote IP address associated with the TE link (numbered (IPv4 and
        IPv6 numbered links)."
   ::= { teLinkEntry 4 3 }

teLinkMetric OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The traffic engineering metric for the TE link is
        derived from its data-bearing channels. All data-bearing
        channels within the TE link must have the same traffic
        engineering metric."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February 2001."
   ::= { teLinkEntry 5 4 }

teLinkMuxCapability OBJECT-TYPE
   SYNTAX        INTEGER {
                     packetSwitch1(1),
                     packetSwitch2(2),
                     packetSwitch3(3),
                     packetSwitch4(4),
                     layer2Switch(51),
                     tdm(100),
                     lambdaSwitch(150),
                     fiberSwitch(200)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies link multiplex capability of the
        TE link, which is derived from its data-bearing channels. All
        data-bearing channels within the same TE link must have the
        same link multiplex capability."
   REFERENCE
       "draft-ietf-mpls-lsp-hierarchy-02.txt
       "draft-ietf-mpls-lsp-hierarchy-03.txt - LSP Hierarchy with
        MPLS TE, K. Kompella, Y. Rekhter, February May 2001."
   ::= { teLinkEntry 6 5 }

teLinkProtectionType OBJECT-TYPE
   SYNTAX        INTEGER {
                     unprotected(0),
                     shared(1),
                     dedicated1For1(2),
                     dedicated1Plus1(3),
                     enhanced(4)
                     unprotected(1),
                     shared(2),
                     dedicated1For1(3),
                     dedicated1Plus1(4),
                     enhanced(5)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies link protection type of the
        TE link."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-01.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, February 2001." 2002."
   ::= { teLinkEntry 7 6 }

teLinkWorkingPriority OBJECT-TYPE
   SYNTAX        Unsigned32 (0..7)
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object represents a priority value such that a new
        connection with a higher priority, i.e. numerically lower than
        this value, is guaranteed to be setup on a primary channel and
        not on a secondary channel."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." Februrary 2002."
   ::= { teLinkEntry 8 7 }

teLinkResourceClass OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies the TE link resource class.
        The resource class is a 32 bit bitfield. The resource class for
        a link bundle is derived from the resource class of its
        TE links. All TE links within a link bundle must have the
        same resource class."
   ::= { teLinkEntry 9 8 }

teLinkIncomingIfId OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For unnumbered links, the incoming interface is set to the
        outgoing interface identifier chosen by the neighboring LSR
        for the reverse link corresponding to this TE link."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt
       "draft-ietf-mpls-bundle-01.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February
        November 2001."
   ::= { teLinkEntry 10 9 }

teLinkOutgoingIfId OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "If the link is unnumbered, the outgoing interface identifier is
        set to the outgoing interface identifier chosen for the TE link
        by the advertising LSR."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt
       "draft-ietf-mpls-bundle-01.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February
        November 2001."
   ::= { teLinkEntry 11 10 }

teLinkFlooding OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object only has significance for link bundles which
        encoding type is not clear. For these link bundles, this object
        identifies the TE link on which to restrict flooding. If the
        value is zero, then flooding must be done on all TE links
        within the link bundle."
   REFERENCE
       "draft-ietf-ospf-isis-flood-opt-01.txt - Flooding optimization
        in link-state routing protocols, A. Zinin, M. Shand,
        March 2001."
   DEFVAL        { 0 }
   ::= { teLinkEntry 12 }

teLinkRowStatus 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 teLinkRowStatus is active."
   ::= { teLinkEntry 13 }

teLinkStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        teLinkTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { teLinkEntry 14 }

-- End of teLinkTable

-- TE Link Descriptor Table

teLinkDescriptorTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF TeLinkDescriptorEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the link descriptors associated with the
        TE links."
   ::= { linkBundlingObjects 2 }

teLinkDescriptorEntry OBJECT-TYPE
   SYNTAX        TeLinkDescriptorEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created for every TE link descriptor.
        An ifEntry in the ifTable must exist before a
        teLinkDescriptorEntry using the same ifIndex is created.
        If a TE link entry in the ifTable is destroyed, then so are all
        entries in the teLinkDescriptorTable that use the ifIndex of
        this TE link."
   INDEX         { ifIndex, teLinkDescriptorId }
   ::= { teLinkDescriptorTable 1 }

TeLinkDescriptorEntry ::= SEQUENCE {
  teLinkDescriptorId           Unsigned32,
  teLinkEncodingType           INTEGER,
  teLinkDescrPriority          Unsigned32,
  teLinkMinReservableBandwidth Unsigned32,
  teLinkMaxReservableBandwidth Unsigned32,
  teLinkDescrRowStatus         RowStatus,
  teLinkDescrStorageType       StorageType
}

teLinkDescriptorId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This object specifies the link descriptor identifier."
   ::= { teLinkDescriptorEntry 1 }

teLinkEncodingType OBJECT-TYPE
   SYNTAX        INTEGER {
                     packet(1),
                     ethernetV2(2),
                     ethernetV2Dix(2),
                     ansiPdh(3),
                     etsiPdh(4),
                     sdhItu1996(5),
                     sonetAnsi1995(6),
                     sdhItuG707(5),
                     sonetAnsiT1105(6),
                     digitalWrapper(7),
                     lambda(8),
                     fiber(9),
                     ethernet8023(10),
                     sdhItu2000(11),
                     sonetAnsi2000(12)
                     fiberChannel(11)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the TE link encoding type."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-mpls-generalized-signaling-07.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        MPLS Signaling Functional Description, P. Ashwood-Smith,
        A. Banerjee, J. Drake, Banarjee, L. Berger, G. Bernstein, D. Fedyk, J. Drake, Y. Fan,
        E. Mannie, J. Lang, B. Rajagopalan, Y. Rekhter, D. Saha,
        V. Sharma, July G. Swallow, Z. Tang, November 2001."
   ::= { teLinkDescriptorEntry 2 }

teLinkDescrPriority OBJECT-TYPE
   SYNTAX        Unsigned32 (0..7)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object specifies the lowest priority at which that link
        encoding type is available."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { teLinkDescriptorEntry 3 }

teLinkMinReservableBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the minimum reservable bandwidth on
        the TE link. This is derived from the union of the
        minimum reservable bandwidth of all the data-bearing
        channels associated with the TE link that can be used to carry
        live traffic. This value is an estimate in units of 1,000 bits
        per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { teLinkDescriptorEntry 4 }

teLinkMaxReservableBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the maximum reservable bandwidth on
        the TE link. This is the union of the maximum reservable
        bandwidth of all the data-bearing channels within the
        TE link that can be used to carry live traffic. This value
        is an estimate in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { teLinkDescriptorEntry 5 }

teLinkDescrRowStatus 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 teLinkDescrRowStatus is active."
   ::= { teLinkDescriptorEntry 6 }

teLinkDescrStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        teLinkDescriptorTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { teLinkDescriptorEntry 7 }

-- End of Link Descriptor Table teLinkDescriptorTable

-- OSPF Traffic Engineering Parameters for TE Links

teLinkOspfTeTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF TeLinkOspfTeEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the OSPF traffic engineering information
        associated with TE links."
   ::= { linkBundlingObjects 3 }

teLinkOspfTeEntry OBJECT-TYPE
   SYNTAX        TeLinkOspfTeEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "If OSPF is enabled, an entry in this table is created for
        every TE link."
   AUGMENTS      { teLinkEntry }
   ::= { teLinkOspfTeTable 1 }

TeLinkOspfTeEntry ::= SEQUENCE {
  teLinkOspfLinkType INTEGER,
  teLinkOspfLinkId   RouterID
}

teLinkOspfLinkType OBJECT-TYPE
   SYNTAX        INTEGER {
                     pointToPoint(1),
                     multiAccess(2)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the OSPF link type for the TE link.
        All TE links within the same bundle must have the same
        link type."
   ::= { teLinkOspfTeEntry 1 }

teLinkOspfLinkId OBJECT-TYPE
   SYNTAX        RouterID
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "On point-to-point link, the link identifier is the Router ID
        of the neighbor. For bundled link, is derived from the link
        identifier associated with its TE links."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt
       "draft-ietf-mpls-bundle-01.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February
        November 2001."
   ::= { teLinkOspfTeEntry 2 }

-- End of teLinkOspfTeTable

-- TE Link Shared Risk Link Group Table

teLinkSrlgTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF TeLinkSrlgEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the SRLGs associated with TE links."
   ::= { linkBundlingObjects 4 }

teLinkSrlgEntry OBJECT-TYPE
   SYNTAX        TeLinkSrlgEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains information about a
        SRLG associated with a TE link.
        An ifEntry in the ifTable must exist before a
        teLinkSrlgEntry using the same ifIndex is created.
        If a TE link entry in the ifTable is destroyed, then so are all
        entries in the teLinkSrlgTable that use the ifIndex of
        this TE link."
   INDEX         { ifIndex, srlg }
   ::= { teLinkSrlgTable 1 }

TeLinkSrlgEntry ::= SEQUENCE {
  srlg            Unsigned32,
  srlgRowStatus   RowStatus,
  srlgStorageType StorageType
}

srlg OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This identifies a SRLG supported by the TE link."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { teLinkSrlgEntry 1 }

srlgRowStatus 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 srlgRowStatus is active."
   ::= { teLinkSrlgEntry 2 }

srlgStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object."
   ::= { teLinkSrlgEntry 3 } conceptual row in the
        teLinkSrlgTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { teLinkSrlgEntry 3 }

-- End of teLinkSrlgTable

-- TE Link Bandwidth Table

teLinkBandwidthTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF TeLinkBandwidthEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the priority-based bandwidth table
        for TE links."
   ::= { linkBundlingObjects 5 }

teLinkBandwidthEntry OBJECT-TYPE
   SYNTAX        TeLinkBandwidthEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains information about
        the priority-based bandwidth of TE links. An ifEntry in the
        ifTable must exist before a teLinkBandwidthEntry using the
        same ifIndex is created. If a TE link entry in the ifTable
        is destroyed, then so are all entries in the teLinkBandwidthTable
        that use the ifIndex of this TE link."
   INDEX         { ifIndex, teLinkPriority }
   ::= { teLinkBandwidthTable 1 }

TeLinkBandwidthEntry ::= SEQUENCE {
  teLinkPriority             Unsigned32,
  teLinkUnreservedBandwidth  Unsigned32,
  teLinkMaximumLspBandwidth  Unsigned32,
  teLinkBandwidthRowStatus   RowStatus,
  teLinkBandwidthStorageType StorageType
}

teLinkPriority OBJECT-TYPE
   SYNTAX        Unsigned32 (1..8)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This attribute specifies the priority. It should be mapped
        to a number between 0 and 7"
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { teLinkBandwidthEntry 1 }

teLinkUnreservedBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the TE link unreserved
        bandwidth at priority p. It is the sum of the unreserved
        bandwidths at priority p of all data-bearing channel associated
        with the TE link (excludes all channels that are strictly
        used as protecting channels). This value is an estimate in units
        of 1,000 bits per second."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt
       "draft-ietf-mpls-bundle-05.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February
        November 2001."
   ::= { teLinkBandwidthEntry 2 }

teLinkMaximumLspBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the TE link maximum
        LSP bandwidth at priority p. It is the maximum of all
        maximum LSP bandwidth at priority p of the data-bearing channels
        associated with the TE link (excludes all channels that are
        strictly used as protecting channels). This value is an estimate
        in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-mpls-bundle-05.txt
       "draft-ietf-mpls-bundle-05.txt - Link Bundling in MPLS
        Traffic Engineering, K. Kompella, Y. Rekhter, L. Berger,
        February
        November 2001."
   ::= { teLinkBandwidthEntry 3 }

teLinkBandwidthRowStatus 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 teLinkBandwidthRowStatus is active."
   ::= { teLinkBandwidthEntry 4 }

teLinkBandwidthStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        teLinkBandwidthTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { teLinkBandwidthEntry 5 }

-- End of teLinkBandwidthTable

-- Data-bearing Channel Table

dataBearingChannelTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF DataBearingChannelEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the data-bearing channel
        parameters."
   ::= { linkBundlingObjects 6 }

dataBearingChannelEntry  OBJECT-TYPE
   SYNTAX        DataBearingChannelEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table exists for each ifEntry that represents
        a data-bearing channel. An ifEntry must exist in the ifTable
        before a dataBearingChannelEntry is created with the
        corresponding ifIndex. If an entry representing a data-bearing
        channel is destroyed in the ifTable, then so is the
        corresponding entry in the dataBearingChannelTable. The
        administrative and operational status values are controlled
        from the ifEntry."
   INDEX         { ifIndex }
   ::= { dataBearingChannelTable 1 }

DataBearingChannelEntry ::= SEQUENCE {
  dataBearingChannelLinkMuxCapability   INTEGER,
  dataBearingChannelPreferredProtection INTEGER,
  dataBearingChannelCurrentProtection   INTEGER,
  dataBearingChannelRowStatus           RowStatus,
  dataBearingChannelStorageType         StorageType
}

dataBearingChannelLinkMuxCapability OBJECT-TYPE
   SYNTAX        INTEGER {
                     packetSwitch1(1),
                     packetSwitch2(2),
                     packetSwitch3(3),
                     packetSwitch4(4),
                     layer2Switch(51),
                     tdm(100),
                     lambdaSwitch(150),
                     fiberSwitch(200)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies link multiplexing capabilities of the
        data-bearing channel."
   REFERENCE
       "draft-ietf-mpls-lsp-hierarchy-02.txt - LSP Hierarchy with
        MPLS TE, K. Kompella, Y. Rekhter, February 2001."
   ::= { dataBearingChannelEntry 1 }

dataBearingChannelPreferredProtection OBJECT-TYPE
   SYNTAX        INTEGER {
                     primary(1),
                     secondary(2)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies whether this data-bearing channel is
        a primary or secondary entity."
   ::= { dataBearingChannelEntry 2 }

dataBearingChannelCurrentProtection OBJECT-TYPE
   SYNTAX        INTEGER {
                     primary(1),
                     secondary(2)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies whether this data-bearing channel is
        currently used as primary or secondary channel."
   ::= { dataBearingChannelEntry 3 }

dataBearingChannelRowStatus 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 dataBearingChannelRowStatus is active."
   ::= { dataBearingChannelEntry 4 }

dataBearingChannelStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        dataBearingChannelTable. Conceptual rows having the value
        'permanent' need not allow write-access to any
        columnar object in the row."
   ::= { dataBearingChannelEntry 5 }

-- End of dataBearingChannelTable

-- Data-bearing Channel Link Descriptor Table

dataBearingChannelDescriptorTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF DataBearingChannelDescrEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the link descriptors associated with the
        data-bearing channels."
   ::= { linkBundlingObjects 7 }

dataBearingChannelDescrEntry OBJECT-TYPE
   SYNTAX        DataBearingChannelDescrEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created for every data-bearing channel
        descriptor. An ifEntry in the ifTable must exist before a
        dataBearingChannelDescrEntry using the same ifIndex is created.
        If a data-bearing channel entry in the ifTable is destroyed,
        then so are all entries in the
        dataBearingChannelDescriptorTable that use the ifIndex of
        this data-bearing channel."
   INDEX         { ifIndex, dataBearingChannelDescrId }
   ::= { dataBearingChannelDescriptorTable 1 }

DataBearingChannelDescrEntry ::= SEQUENCE {
  dataBearingChannelDescrId                Unsigned32,
  dataBearingChannelEncodingType           INTEGER,
  dataBearingChannelDescrPriority          Unsigned32,
  dataBearingChannelMinReservableBandwidth Unsigned32,
  dataBearingChannelMaxReservableBandwidth Unsigned32,
  dataBearingChannelDescrRowStatus         RowStatus,
  dataBearingChannelDescrStorageType       StorageType
}

dataBearingChannelDescrId OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This object specifies the link descriptor identifier."
   ::= { dataBearingChannelDescrEntry 1 }

dataBearingChannelEncodingType 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)
                 }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies the data-bearing channel encoding type."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelDescrEntry 2 }

dataBearingChannelDescrPriority OBJECT-TYPE
   SYNTAX        Unsigned32 (0..7)
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object specifies the lowest priority at which that link
        encoding type is available for the data-bearing channel."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelDescrEntry 3 }

dataBearingChannelMinReservableBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This attribute specifies the minimum reservable bandwidth on
        the data-bearing channel. This value is an estimate
        in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelDescrEntry 4 }

dataBearingChannelMaxReservableBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the maximum reservable bandwidth on
        the data-bearing channel. This value is an estimate
        in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelDescrEntry 5 }

dataBearingChannelDescrRowStatus 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 dataBearingChannelDescrRowStatus is active."
   ::= { dataBearingChannelDescrEntry 6 }

dataBearingChannelDescrStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        dataBearingChannelDescriptorTable. Conceptual rows
        having the value 'permanent' need not allow write-access
        to any columnar object in the row."
   ::= { dataBearingChannelDescrEntry 7 }

-- End of Link Descriptor Table dataBearingChannelDescriptorTable

-- Data-bearing Channel Bandwidth Table

dataBearingChannelBandwidthTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF DataBearingChannelBandwidthEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the priority-based bandwidth
        for data-bearing channels."
   ::= { linkBundlingObjects 8 }

dataBearingChannelBandwidthEntry OBJECT-TYPE
   SYNTAX        DataBearingChannelBandwidthEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains information about
        the priority-based bandwidth on data-bearing channels.
        An ifEntry in the ifTable must exist before a
        dataBearingChannelBandwidthEntry using the same ifIndex is
        created. If a data-bearing channel entry in the ifTable is
        destroyed, then so are all entries in the
        dataBearingChannelBandwidthTable that use the ifIndex of
        this data-bearing channel."
   INDEX         { ifIndex, dataBearingChannelPriority }
   ::= { dataBearingChannelBandwidthTable 1 }

DataBearingChannelBandwidthEntry ::= SEQUENCE {
  dataBearingChannelPriority            Unsigned32,
  dataBearingChannelUnreservedBandwidth Unsigned32,
  dataBearingChannelMaximumLspBandwidth Unsigned32,
  dataBearingChannelBwRowStatus         RowStatus,
  dataBearingChannelBwStorageType       StorageType
}

dataBearingChannelPriority OBJECT-TYPE
   SYNTAX        Unsigned32 (1..8)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This attribute specifies the priority. It should be mapped
        to a number between 0 and 7."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelBandwidthEntry 1 }

dataBearingChannelUnreservedBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the data-bearing channel unreserved
        bandwidth at priority p. This value is an estimate
        in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelBandwidthEntry 2 }

dataBearingChannelMaximumLspBandwidth OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This attribute specifies the data-bearing channel maximum
        LSP bandwidth at priority p. This value is an estimate
        in units of 1,000 bits per second."
   REFERENCE
       "draft-kompella-ospf-gmpls-extensions-02.txt
       "draft-ietf-ccamp-ospf-gmpls-extensions-04.txt - OSPF Extensions
        in Support of Generalized MPLS, K. Kompella, Y. Rekhter,
        A. Banerjee, J. Drake, G. Bernstein, D. Fedyk, E. Mannie,
        D. Saha, V. Sharma, July 2001." February 2002."
   ::= { dataBearingChannelBandwidthEntry 3 }

dataBearingChannelBwRowStatus 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 dataBearingChannelBwRowStatus is active."
   ::= { dataBearingChannelBandwidthEntry 4 }

dataBearingChannelBwStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the
       "The storage type for this
        object." conceptual row in the
        dataBearingChannelBandwidthTable. Conceptual rows
        having the value 'permanent' need not allow write-access
        to any columnar object in the row."
   ::= { dataBearingChannelBandwidthEntry 5 }

-- End of dataBearingChannelBandwidthTable

-- Notification Configuration

linkBundlingTrapEnable

linkBundlingNotifEnable OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "If this object is true, then it enables the
        generation of the link bundling traps, notifications,
        otherwise these traps notifications are not emitted."
   DEFVAL        { false }
   ::= { linkBundlingObjects 9 }

-- Notifications

-- Bundled Link Traps Notifications

linkBundleMismatch NOTIFICATION-TYPE
   OBJECTS       { ifIndex }
   STATUS        current
   DESCRIPTION
       "This notification is generated when a mismatch is found on a
        bundled link. Such mismatch can be detected for instance if one
        of the traffic engineering parameters is not consistent across
        all TE links within a bundled link (resource class,
        OSPF link type, etc.)."
   ::= { linkBundlingNotifications 1 }

-- End of notifications

-- Module compliance

linkBundlingGroups
   OBJECT IDENTIFIER ::= { linkBundlingConformance 1 }

linkBundlingCompliances
   OBJECT IDENTIFIER ::= { linkBundlingConformance 2 }

linkBundlingModuleCompliance

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

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

      MANDATORY-GROUPS    { linkBundlingGroup,
                            teLinkBandwidthGroup }

      GROUP teLinkOspfTeGroup
      DESCRIPTION
          "This group is mandatory for OSPF enabled devices."

      GROUP teLinkSrlgGroup
      DESCRIPTION
          "This group is mandatory for G-MPLS enabled devices."

      -- teLinkTable

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

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

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

      OBJECT      teLinkRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only  read-create
      DESCRIPTION
          "The notReady(3) state need not be supported."

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

      -- teLinkDescriptorTable

      OBJECT      teLinkDescrRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only  read-create
      DESCRIPTION
          "The notReady(3) state need not be supported."

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

      -- teLinkOspfTeTable

      OBJECT      teLinkOspfLinkId
      SYNTAX      INTEGER { pointToPoint(1) }
      MIN-ACCESS  read-only  read-create
      DESCRIPTION
          "A value of multiAccess(2) need not be supported."

      -- teLinkSrlgTable

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

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

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

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

      -- dataBearingChannelTable

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

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

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

      -- dataBearingChannelDescriptorTable

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

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

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

      OBJECT      dataBearingChannelDescrRowStatus
      SYNTAX      INTEGER { active(1), notInService(2),
                            createAndGo(4), destroy(6) }
      MIN-ACCESS  read-only  read-create
      DESCRIPTION
          "The notReady(3) state need not be supported."

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

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

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

   ::= { linkBundlingCompliances 1 }

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

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

      MANDATORY-GROUPS    { linkBundlingGroup,
                            teLinkBandwidthGroup }

      GROUP teLinkOspfTeGroup
      DESCRIPTION
          "This group is mandatory for OSPF enabled devices."

      GROUP teLinkSrlgGroup
      DESCRIPTION
          "This group is mandatory for G-MPLS enabled devices."

      -- teLinkTable

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

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

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

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

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

      -- teLinkDescriptorTable

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

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

      -- teLinkOspfTeTable

      OBJECT      teLinkOspfLinkId
      SYNTAX      INTEGER { pointToPoint(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "A value of multiAccess(2) need not be supported."

      -- teLinkSrlgTable

      OBJECT      srlgRowStatus
      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      srlgStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- teLinkBandwidthTable

      OBJECT      teLinkBandwidthRowStatus
      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      teLinkBandwidthStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

      -- dataBearingChannelTable

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

      OBJECT      dataBearingChannelRowStatus
      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      dataBearingChannelStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."
      -- dataBearingChannelDescriptorTable

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

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

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

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

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

      -- dataBearingChannelBandwidthTable

      OBJECT      dataBearingChannelBwRowStatus
      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      dataBearingChannelBwStorageType
      SYNTAX      INTEGER { other(1) }
      MIN-ACCESS  read-only
      DESCRIPTION
          "Only other(1) needs to be supported."

   ::= { linkBundlingCompliances 1 2 }

-- Units of conformance

linkBundlingGroup OBJECT-GROUP
   OBJECTS { teLinkNumberingType,
             teLinkIpAddrType,
             teLinkIpAddr,
             teLinkRemoteIpAddr,
             teLinkMetric,
             teLinkMuxCapability,
             teLinkProtectionType,
             teLinkWorkingPriority,
             teLinkResourceClass,
             teLinkIncomingIfId,
             teLinkOutgoingIfId,
             teLinkFlooding,
             teLinkRowStatus,
             teLinkStorageType,
             teLinkEncodingType,
             teLinkDescrPriority,
             teLinkMinReservableBandwidth,
             teLinkMaxReservableBandwidth,
             teLinkDescrRowStatus,
             teLinkDescrStorageType,
             dataBearingChannelLinkMuxCapability,
             dataBearingChannelPreferredProtection,
             dataBearingChannelCurrentProtection,
             dataBearingChannelRowStatus,
             dataBearingChannelStorageType,
             linkBundlingTrapEnable
             linkBundlingNotifEnable
           }

   STATUS  current
   DESCRIPTION
          "Collection of objects needed for the monitoring of
           resources associated with TE links."
   ::= { linkBundlingGroups 1 }

teLinkOspfTeGroup OBJECT-GROUP
   OBJECTS { teLinkOspfLinkType,
             teLinkOspfLinkId
           }

   STATUS  current
   DESCRIPTION
          "Collection of objects needed for the OSPF traffic
           engineering parameters of TE links."
   ::= { linkBundlingGroups 2 }

teLinkSrlgGroup OBJECT-GROUP
   OBJECTS { srlgRowStatus,
             srlgStorageType
           }

   STATUS  current
   DESCRIPTION
          "Collection of objects needed for the monitoring of
           SRLG resources associated with TE links."
   ::= { linkBundlingGroups 3 }

teLinkBandwidthGroup OBJECT-GROUP
   OBJECTS { teLinkUnreservedBandwidth,
             teLinkMaximumLspBandwidth,
             teLinkBandwidthRowStatus,
             teLinkBandwidthStorageType
           }

   STATUS  current
   DESCRIPTION
          "Collection of objects needed for the monitoring of
           the priority-based bandwidth resources associated with
           TE links and data-bearing channels."
   ::= { linkBundlingGroups 4 }

dataBearingChannelBandwidthGroup OBJECT-GROUP
   OBJECTS { dataBearingChannelEncodingType,
             dataBearingChannelDescrPriority,
             dataBearingChannelMinReservableBandwidth,
             dataBearingChannelMaxReservableBandwidth,
             dataBearingChannelDescrRowStatus,
             dataBearingChannelDescrStorageType,
             dataBearingChannelUnreservedBandwidth,
             dataBearingChannelMaximumLspBandwidth,
             dataBearingChannelBwRowStatus,
             dataBearingChannelBwStorageType
           }

   STATUS  current
   DESCRIPTION
          "Collection of objects needed for the monitoring of
           bandwidth parameters associated with data-bearing channels."
   ::= { linkBundlingGroups 5 }

linkBundlingNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS { linkBundleMismatch }
   STATUS  current
   DESCRIPTION
          "Set of notifications implemented in this module.

           None is mandatory."
   ::= { linkBundlingGroups 6 }

-- End of LINK-BUNDLING-MIB
END

11.  Security Considerations

   It is clear that this MIB is potentially useful for monitoring of
   link bundling enabled devices. This MIB can also be used for confi-
   guration of certain 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 OSPF/MPLS network. network topology, e.g. list of
   nodes and their IP address (teLinkTable), list of data-bearing chan-
   nels (dataBearingChannelTable) in addition to usage of network
   resources (teLinkBandwidthTable and
   dataBearingChannelBandwidthTable).  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 configuration or theft of competi-
   tive 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 would like to acknowlegde the
   contribution of Dmitry Ryumkin.

13.  References

   [BUNDLING]    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.

   [LMP]         Lang, J., Mitra, K., Drake, J., Kompella, K.,
                 Rekhter, Y., Berger, L., Rajagopalan, B.,
                 Basak, D., Sandick, H., Zinin, A., and
                 Banarjee, A., "Link Management Protocol",
                 Internet Draft <draft-ietf-mpls-lmp-02.txt>,
                 March <draft-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 Functional Description",
                 Internet Draft
                 <draft-ietf-mpls-generalized-signaling-04.txt>,
                 May
                 <draft-ietf-mpls-generalized-signaling-07.txt>,
                 November 2001.

   [GMPLS-ARCH]  Mannie, E., Ashwood-Smith, P., Awduche, D.,
                 Banarjee, A., Basak, D., Berger, L., Bernstein, G.,
                 Dharanikota, S., Drake, J., Fan, Y., Fedyk, D.,
                 Grammel, G., Guo, D., Kompella, K., Kullberg, A.,
                 Lang, J., Liaw, F., Nadeau, T., Ong, L.,
                 Papadimitriou, D., Pendarakis, D., Rajagopalan, B.,
                 Rekhter, Y., Saha, D., Sandick, H., D., Sharma, V.,
                 Swallow, G., Tang, Z., Yates, J., Young, G., Yu, J.,
                 Zinin, A., "Generalized Multi-Protocol Label Switching
                 (GMPLS) Architecture", Internet Draft
                 <draft-ietf-ccamp-gmpls-architecture-00.txt>,
                 June
                 <draft-ietf-ccamp-gmpls-architecture-01.txt>,
                 November 2001.

   [OSPF]        Katz, D., Yeung, D. "Traffic Engineering Extensions to
                 OSPF", Internet Draft
                 <draft-katz-yeung-ospf-traffic-05.txt>, June
                 <draft-katz-yeung-ospf-traffic-06.txt>, October 2001.

   [GMPLS-OSPF]  Kompella, K., Rekhter, Y., Banerjee, A. et al, "OSPF
                 Extensions in Support of Generalized MPLS", Internet
   Draft
                 <draft-kompella-ospf-gmpls-extensions-02.txt>,
                 July 2001.
                 <draft-ietf-ccamp-ospf-gmpls-extensions-04.txt>,
                 February 2002.

   [LSP-HIER]    Kompella, K., Rekhter, Y., LSP Hierarchy with MPLS TE,
                 Internet Draft <draft-ietf-mpls-lsp-hierarchy-02.txt>,
                 February <draft-ietf-mpls-lsp-hierarchy-03.txt>,
                 May 2001.

   [ZININ]       Zinin, A., SHand, M., "Flooding optimizations in link-
                 state routing protocols", Internet Draft,
                 <draft-ietf-ospf-isis-flood-opt-01.txt>, March 2001.

   [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                         Thomas D. Nadeau
edgeflow, Inc.
Meriton Networks                     Cisco Systems, Inc.
329 March Rd.
3026 Solandt Road                    300 Apollo Drive
Kanata, ON, CANADA K2K 2E1 2A5           Chelmsford, MA 01824
Phone: +1-613-270-9279 x253          Phone: +1-978-244-3051
Email: martin.dubuc@edgeflow.com martin.dubuc@meriton.com      Email: tnadeau@cisco.com

Sudheer Dharanikota                  Jonathan P. Lang
Nayna Networks, Inc.                 Calient Networks, Inc.
157 Topaz Street                     25 Castilian Drive
Milipitas, CA 95035                  Goleta, CA 93117
Phone: +1-408-956-8000 x357          Email: jplang@calient.net
Email: sudheer@nayna.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.