Network Working Group                                  Thomas D. Nadeau
Internet Draft                                      Cisco Systems, Inc.
Expires: July 2002
                                                      Cheenu Srinivasan
                                                  Parama Networks, Inc.

                                                          Adrian Farrel
                                                   Movaz Networks, Inc.

                                                               Tim Hall
                                                        Edward Harrison
                                                   Data Connection Ltd.

                                                           January 2002


      Generalized Multiprotocol Label Switching (GMPLS)
     Label Switching Router Management Information Base

           draft-nadeau-ccamp-gmpls-lsr-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
   [RFC2026].

   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.


Abstract

   This memo defines a portion of the Management Information
   Base (MIB) for use with network management protocols in
   the Internet community.  In particular, it describes
   managed objects for Multiprotocol Label Switching (MPLS)



Nadeau et al.                Expires July 2002               [Page 1]


Internet Draft               GMPLS LSR MIB               January 2002



   and Generalized Multiprotocol Label Switching (GMPLS)
   Label Switched Routers (LSRs).


Table of Contents

  1. Changes and Pending Work ..................................  2
   1.1. Changes Since the Last Version .........................  2
   1.2. Pending Work ...........................................  3
  2. Introduction ..............................................  3
   2.1. Migration Strategy .....................................  4
  3. The SNMP Management Framework .............................  4
  4. Terminology ...............................................  6
  5. Feature List ..............................................  6
  6. Outline ...................................................  7
   6.1. Summary of LSR MIB .....................................  7
  7. Brief Description of MIB Objects ..........................  8
   7.1. gmplsInterfaceConfTable ................................  8
   7.2. gmplsInterfacePerfTable ................................  9
   7.3. gmplsInSegmentTable ....................................  9
   7.4. gmplsInSegmentPerfTable ................................  9
   7.5. gmplsOutSegmentTable ...................................  9
   7.6. gmplsOutSegmentPerfTable ............................... 10
   7.7. gmplsXCTable ........................................... 10
   7.8. gmplsLabelStackTable ................................... 10
   7.9. gmplsTrafficParamTable ................................. 10
  8. Bidirectional LSPs ........................................ 10
  9. Example of LSP Setup ...................................... 11
  10. Application of the Interface Group to MPLS ............... 14
   10.1. Support of the MPLS Layer by ifTable .................. 15
  11. The Use of RowPointer and Other Cross-References ......... 16
   11.1. RowPointer ............................................ 16
   11.2. Cross-referencing to the gmplsLabelTable .............. 17
  12. GMPLS Label Switching Router MIB Definitions ............. 17
  13. Security Considerations .................................. 60
  14. References ............................................... 62
   14.1. Normative References .................................. 64
   14.2. Informational References .............................. 66
  15. Authors' Addresses ....................................... 66
  16. Full Copyright Statement ................................. 67



1. Changes and Pending Work

   This section must be removed before the draft progresses
   to RFC.


1.1.  Changes Since the Last Version



Nadeau et al.                Expires July 2002               [Page 2]


Internet Draft               GMPLS LSR MIB               January 2002






   -  Clarify which objects can be modified when row-status
      and admin-status are set to active.

   -  Apply bug fixes in line with updates to [LSRMIB].

   -  Update examples and provide more detail.


1.2.  Pending Work

   The following work items have been identified for this
   draft.  They will be addressed in a future version.

   -  Expand conformance statements to give one for
      monitoring only, and one for monitoring and control.

   -  Bring references up to date, include all drafts
      referenced from this document, and exclude those that
      are not referenced.

   -  Provide objects or tables to support getNextIndex for
      all arbitrary indexes.

   -  Provide support for monitoring tunnel resources in
      GMPLS systems.  For example, SONET/SDH or G.709.  This
      might be done through an arbitrary RowPointer to an
      external MIB.

   -  Enhance gmplsTrafficParamsTable to support GMPLS
      traffic parameters for signaled and static LSPs.

   -  Enhance performance tables for technology-specific
      GMPLS LSPs.




2. Introduction

   This memo defines a portion of the Management Information
   Base (MIB) for use with network management protocols in
   the Internet community.  In particular, it describes
   managed objects for Multiprotocol Label Switching (MPLS)
   [RFC3031] and Generalized Multiprotocol Label Switching
   (GMPLS) [GMPLSArch] Label Switching Routers (LSRs).

   Comments should be made directly to the CCAMP mailing



Nadeau et al.                Expires July 2002               [Page 3]


Internet Draft               GMPLS LSR MIB               January 2002



   list at ccamp@ops.ietf.org.

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


2.1.  Migration Strategy

   This MIB is built upon the Label Switching Router MIB
   defined for use with MPLS [LSRMIB]. The only changes made
   are additions for support of GMPLS or changes that are
   necessary to support the increased complexity of a GMPLS
   system.

   In all cases, these changes have been made such that
   migration from [LSRMIB] to this MIB will be as simple as
   possible.

   Note that this MIB may be used in systems that support
   MPLS, GMPLS or both.

   This MIB may be seen as a replacement for the MPLS LSR
   MIB [LSRMIB] in systems which support GMPLS, but it is
   not a requirement that it replace the MPLS LSR MIB in
   systems that only support MPLS.

   The companion document modeling and managing GMPLS based
   traffic engineering [GMPLSTEMIB] is based on the MPLS TE
   MIB [TEMIB] with the same intentions.  It is not expected
   that a system would mix MPLS and GMPLS MIBs.

   Textual conventions and OBJECT-IDENTIFIERS are defined in
   [GMPLSTCMIB] which extends the set of textual conventions
   originally defined in [TCMIB].

   See section 11.1 for a description of how the
   gmplsLabelTable may be omitted in systems that support
   MPLS only.


3. The SNMP Management Framework

   The SNMP Management Framework presently consists of five
   major components:

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



Nadeau et al.                Expires July 2002               [Page 4]


Internet Draft               GMPLS LSR MIB               January 2002




   -  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 [RFC1155], STD 16, RFC 1212 [RFC1212] and STD 16,
      RFC 1215 [RFC1215].  The second version, called SMIv2,
      is described in STD 58, RFC 2578 [RFC2578], STD 58,
      RFC 2579 [RFC2579] and STD 58, RFC 2580 [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 [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
      [RFC1901] and RFC 1906 [RFC1906].  The third version
      of the message protocol is called SNMPv3 and described
      in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574
      [RFC2574].

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

   -  A set of fundamental applications described in RFC
      2573 [RFC2573] and the view-based access control
      mechanism described in RFC 2575 [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 possible (use of Counter64).  Some machine
   readable information in SMIv2 will be converted into
   textual descriptions in SMIv1 during the translation
   process.  However, this loss of machine readable
   information is not considered to change the semantics of



Nadeau et al.                Expires July 2002               [Page 5]


Internet Draft               GMPLS LSR MIB               January 2002



   the MIB.


4. Terminology

   This document uses terminology from the document
   describing the MPLS architecture [RFC3031].

   A label switched path (LSP) is modeled as a connection
   consisting of one or more incoming segments (in-segments)
   and/or one or more outgoing segments (out-segments) at a
   Label Switching Router (LSR).  The association or
   interconnection of the in-segments and out-segments is
   accomplished by using a cross-connect.  We use the
   terminology "connection" and "LSP" interchangeably where
   the meaning is clear from the context.


5. Feature List

   The GMPLS Label Switching Router MIB is designed to
   satisfy the following requirements and constraints:

   -  The MIB supports both manually configured LSPs as well
      as those configured via any MPLS or GMPLS signaling
      protocol.

   -  The MIB supports the enabling and disabling of MPLS
      capability on MPLS capable interfaces of an LSR.

   -  The MIB allows resource sharing between two or more
      LSPs.

   -  Both per-platform and per-interface label spaces are
      supported.

   -  Forwarding can be performed solely based on an
      incoming top label [RFC3031, RFC3032].

   -  Support is provided for next-hop resolution when the
      outgoing interface is a shared media interface.  In
      the point-to-multipoint case, each outgoing segment
      can reside on a different shared media interface.

   -  The MIB supports point-to-point, point-to-multipoint
      and multipoint-to-point connections at an LSR.

   -  For multipoint-to-point connections all outgoing
      packets can have the same top label.




Nadeau et al.                Expires July 2002               [Page 6]


Internet Draft               GMPLS LSR MIB               January 2002



   -  For multipoint-to-point connections, the outgoing
      resources of the merged connections can be shared.

   -  For multipoint-to-point connections, packets from
      different incoming connections can have distinct
      outgoing label stacks beneath the (identical) top
      label.

   -  In the point-to-multipoint case each outgoing
      connection can have a distinct label stack including
      the top label.

   -  All the members of a point-to-multipoint connection
      can share the resources allocated for the ingress
      segments.

   -  The MIB provides cross-connect capability to "pop" an
      incoming label and forward the packet with the
      remainder of the label stack unchanged and without
      pushing any labels ("pop-and-go") [RFC3032].

   -  The MIB supports persistent as well as non-persistent
      LSPs.

   -  Performance counters are provided for in-segments and
      out-segments as well as for measuring performance on a
      per-interface basis.


6. Outline

   Configuring LSPs through an LSR involves the following
   steps:

   -  Enabling MPLS on MPLS capable interfaces.

   -  Configuring in-segments and out-segments.

   -  Setting up the cross-connect table to associate
      segments and/or to indicate connection origination and
      termination.

   -  Optionally specifying label stack actions.

   -  Optionally specifying segment traffic parameters.


6.1.  Summary of LSR MIB

   The MIB objects for performing these actions consist of



Nadeau et al.                Expires July 2002               [Page 7]


Internet Draft               GMPLS LSR MIB               January 2002



   the following tables:

   -  The interface configuration table
      (gmplsInterfaceConfTable), which is used for enabling
      the MPLS protocol on MPLS-capable interfaces.

   -  The in-segment (gmplsInSegmentTable) and out-segment
      (gmplsOutSegmentTable) tables, which are used for
      configuring LSP segments at an LSR.

   -  The cross-connect table (gmplsXCTable), which is used
      to associate in and out segments together, in order to
      form a cross-connect.

   -  The label stack table (gmplsLabelStackTable), which is
      used for specifying label stack operations.

   -  The Traffic Parameter table (gmplsTrafficParamTable),
      which is used for specifying LSP-related traffic
      parameters.

   Further, the in-segment and out-segment performance
   tables, gmplsInSegmentPerfTable and
   gmplsOutSegmentPerfTable, contain the objects necessary
   to measure the performance of LSPs, and
   gmplsInterfacePerfTable has objects to measure
   performance on a per-interface basis.

   These tables are described in the subsequent sections.


7. Brief Description of MIB Objects

   Sections 7.1-7.2 describe objects pertaining to MPLS-
   capable interfaces of an LSR.  The objects described in
   Sections 7.3-7.8, were derived from the Incoming Label
   Map (ILM) and Next Hop Label Forwarding Entry (NHLFE) as
   specified in the MPLS architecture document [RFC3031].
   Section 7.9 describes objects for specifying traffic
   parameters for in and out segments. It is appropriate to
   note that the in-segment, out-segment, and cross-connect
   tables were modeled after similar tables found in
   [RFC2515].


7.1.  gmplsInterfaceConfTable

   This table represents the interfaces that are MPLS or
   GMPLS capable.  An LSR creates an entry in this table for
   every such interface on that LSR.



Nadeau et al.                Expires July 2002               [Page 8]


Internet Draft               GMPLS LSR MIB               January 2002





7.2.  gmplsInterfacePerfTable

   This table contains objects to measure the performance of
   MPLS and GMPLS capable interfaces and is an AUGMENT to
   gmplsInterfaceConfTable.  High capacity counters are
   provided for objects that are likely to wrap around
   quickly on high-speed interfaces.


7.3.  gmplsInSegmentTable

   This table contains a description of the incoming
   segments to an LSR and their associated parameters.

   The administrative and operational status objects for
   this table are used to control packet transmission on
   this segment.  If either the administrative or
   operational status objects for this table is set to
   'down', this implies that packets will not be forwarded.
   Likewise, if the values are set to 'up' this implies that
   packets are forwarded.  These values are particularly
   useful in cases where multi-point connections utilize a
   single cross-connect and the administrator wishes to
   disable some, but not all of the streams.  In these
   cases, the administrator may set the administrative
   status object to 'down' on some of the in-segments.


7.4.  gmplsInSegmentPerfTable

   The In-Segment Performance Table has objects to measure
   the performance of an incoming segment configured on an
   LSR.  It is an AUGMENT to gmplsInSegmentTable.  High
   capacity counters are provided for objects that are
   likely to wrap around quickly on high-speed interfaces.


7.5.  gmplsOutSegmentTable

   The Out-Segment Table contains a description of the
   outgoing segments at an LSR and their associated
   parameters.  The administrative and operational status
   objects for this table are used to control packet
   transmission on this segment.  If either the
   administrative or operational status objects is set to
   'down', this implies that packets will not be forwarded.
   Likewise, if the values are set to 'up' this implies that
   packets are forwarded.  These values are particularly



Nadeau et al.                Expires July 2002               [Page 9]


Internet Draft               GMPLS LSR MIB               January 2002



   useful in cases where multicast connections utilize a
   single cross-connect and the administrator wishes to
   disable some, but not all of the streams.  In these
   cases, the administrator may set the administrative
   status object to 'down' on some of the out-segments.


7.6.  gmplsOutSegmentPerfTable

   The Out-Segment Table contains objects to measure the
   performance of an outgoing segment configured on an LSR.
   It is an AUGMENT to gmplsOutSegmentTable.  High capacity
   counters are provided for objects that are likely to wrap
   around quickly on high-speed interfaces.


7.7.  gmplsXCTable

   The gmplsXCTable specifies information for associating
   segments together in order to instruct the LSR to switch
   between the specified segments.  It supports point-to-
   point, point-to-multi-point and multi-point-to-point
   connections.

   The administrative and operational status objects for
   this table imply control of packet forwarding to and from
   a XCEntry.  When the administrative and operational
   status objects are set to 'down' for example, this
   implies that the specified XCEntry will not forward
   packets.  Likewise, when either is set to 'up' this
   implies that packets will be forwarded.


7.8.  gmplsLabelStackTable

   The gmplsLabelStackTable specifies the label stack to be
   pushed onto a packet, beneath the top label.  Entries to
   this table are referred to from gmplsXCTable.


7.9.  gmplsTrafficParamTable

   The gmplsTrafficParamTable contains objects for
   specifying the traffic parameters of in-segments and out-
   segments.  Entries in this table are referred to from
   gmplsInSegmentTable and gmplsOutSegmentTable.


8. Bidirectional LSPs




Nadeau et al.               Expires July 2002               [Page 10]


Internet Draft               GMPLS LSR MIB               January 2002



   This MIB supports bidirectional LSPs as required for
   GMPLS.

   A single entry in the gmplsXCIndex is shared by all of
   the segments for the entire bidirectional LSP.  This
   facilitates a simple reference from [GMPLSTEMIB] and
   makes fate-sharing more obvious.

   It is, however, important that the direction of segments
   is understood to avoid connecting all in-segments to all
   out-segments.  This is achieved by an object in each
   segment that indicates the direction of the segment with
   respect to data flow.

   A segment that is marked as 'forward' carries data from
   the 'head' of the LSP to the 'tail'.  A segment marked as
   'reverse' carries data in the reverse direction.

   Where an LSP is signaled using a conventional signaling
   protocol, the 'head' of the LSP is the source of the
   signaling (also known as the ingress) and the 'tail' is
   the destination (also known as the egress).  For manually
   configured LSPs an arbitrary decision must be made about
   which segments are 'forward' and which 'reverse'.  For
   consistency this decision should be made across all LSRs
   that participate in the LSP by assigning 'head' and
   'tail' ends to the LSP.


9. Example of LSP Setup

   In this section we provide a brief example of using the
   MIB objects described in section 12. to set up an LSP.
   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 best-
   effort, bi-directional LSP.  Assume that, in the forward
   direction, the LSP enters the LSR via MPLS interface A
   with ifIndex 12 and exits the LSR via MPLS interface B
   with ifIndex 13.  For the reverse direction, we assume
   the LSP enters via interface B and leaves via interface A
   (i.e. the forward and reverse directions use the same bi-
   directional interfaces).  Let us also assume that we do
   not wish to have a label stack beneath the top label on
   the outgoing labeled packets.  The following example
   illustrates which rows and corresponding objects might be
   created to accomplish this.



Nadeau et al.               Expires July 2002               [Page 11]


Internet Draft               GMPLS LSR MIB               January 2002




   First, the traffic parameter entries must be set-up for
   both segments.

   In gmplsTrafficParamTable for the incoming direction:
   {
     gmplsTrafficParamIndex           = 5
     gmplsTrafficParamMaxRate         = 100000,
     gmplsTrafficParamMeanRate        = 100000,
     gmplsTrafficParamMaxBurstSize    = 2000,
     gmplsTrafficParamRowStatus       = createAndGo(4)
   }

   In gmplsTrafficParamTable for the outgoing direction:
   {
     gmplsTrafficParamIndex           = 6
     gmplsTrafficParamMaxRate         = 100000,
     gmplsTrafficParamMeanRate        = 100000,
     gmplsTrafficParamMaxBurstSize    = 2000,
     gmplsTrafficParamRowStatus       = createAndGo(4)
   }

   Note that for a bi-directional LSP, the segments in the
   reverse direction can share the traffic parameter entries
   (and hence resources) with the segments in the forward
   direction.

   We must next create the appropriate in-segment and out-
   segment entries with suitable traffic parameters by
   pointing to the appropriate traffic parameter entries
   that we have just created.

   First for the forward direction:

   In gmplsInSegmentTable
   {
     gmplsInSegmentIndex           = 1,
     -- incoming interface
     gmplsInSegmentIfIndex         = 12,
     -- incoming label
     gmplsInSegmentLabel           = 21,
     gmplsInSegmentNPop            = 1,
     gmplsInSegmentOwner           = snmp (2),
     gmplsInSegmentTrafficParamPtr =
                          gmplsTrafficParamIndex.5,
     gmplsInSegmentDirection       = forward (1),
     gmplsInSegmentRowStatus       = createAndGo(4)
   }

   In gmplsOutSegmentTable



Nadeau et al.               Expires July 2002               [Page 12]


Internet Draft               GMPLS LSR MIB               January 2002



   {
     gmplsOutSegmentIndex           = 1,
     -- outgoing interface
     gmplsOutSegmentIfIndex         = 13,
     gmplsOutSegmentPushTopLabel    = true(1),
     -- outgoing label
     gmplsOutSegmentTopLabel        = 22,
     gmplsOutSegmentOwner           = snmp (2),
     gmplsOutSegmentTrafficParamPtr =
                           gmplsTrafficParamIndex.6,
     gmplsOutSegmentDirection       = forward (1),
     gmplsOutSegmentRowStatus       = createAndGo(4)
   }

   Next for the reverse direction:

   In gmplsInSegmentTable
   {
     gmplsInSegmentIndex           = 2,
     -- incoming interface
     gmplsInSegmentIfIndex         = 13,
     -- incoming label
     gmplsInSegmentLabel           = 31,
     gmplsInSegmentNPop            = 1,
     gmplsInSegmentOwner           = snmp (2),
     gmplsInSegmentTrafficParamPtr =
                          gmplsTrafficParamIndex.6,
     gmplsInSegmentDirection       = reverse (2),
     gmplsInSegmentRowStatus       = createAndGo(4)
   }

   In gmplsOutSegmentTable
   {
     gmplsOutSegmentIndex           = 2,
     -- outgoing interface
     gmplsOutSegmentIfIndex         = 12,
     gmplsOutSegmentPushTopLabel    = true(1),
     -- outgoing label
     gmplsOutSegmentTopLabel        = 32,

     gmplsOutSegmentOwner           = snmp (2),
     gmplsOutSegmentTrafficParamPtr =
                           gmplsTrafficParamIndex.5,
     gmplsOutSegmentDirection       = reverse (2),
     gmplsOutSegmentRowStatus       = createAndGo(4)
   }

   Next, two cross-connect entries are created thereby
   associating the newly created segments together.




Nadeau et al.               Expires July 2002               [Page 13]


Internet Draft               GMPLS LSR MIB               January 2002



   In gmplsXCTable:
   {
     gmplsXCIndex             = 2,
     gmplsInSegmentIndex      = 1,
     gmplsOutSegmentIndex     = 1,
     -- 192.33.4.21.2
     gmplsXCLspId             = 'c021041502'H,
     gmplsXCIsPersistent      = false (1),
     gmplsXCOwner             = snmp (2),
     -- only a single outgoing label
     gmplsLabelStackIndex     = 0,
     gmplsXCRowStatus         = createAndGo(4)
   }

   In gmplsXCTable:
   {
     gmplsXCIndex             = 3,
     gmplsInSegmentIndex      = 2,
     gmplsOutSegmentIndex     = 2,
     -- 192.33.4.21.2
     gmplsXCLspId             = 'c021041502'H,
     gmplsXCIsPersistent      = false (1),
     gmplsXCOwner             = snmp (2),
     -- only a single outgoing label
     gmplsLabelStackIndex     = 0,
     gmplsXCRowStatus         = createAndGo(4)
   }

   Note that the gmplsInSegmentXCIndex and
   gmplsOutSegmentXCIndex objects will automatically be
   populated with the values 2 and 3 (for the forward and
   reverse segments respectively) when these segments are
   referred to from the corresponding cross-connect entry.


10.   Application of the Interface Group to MPLS

   This memo contains media-specific extensions to the
   Interfaces Group for managing MPLS interfaces and assumes
   the interpretation of the Interfaces Group to be in
   accordance with [RFC2863] 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 MPLS 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 [RFC2863].

   When using MPLS interfaces, the interface stack table



Nadeau et al.               Expires July 2002               [Page 14]


Internet Draft               GMPLS LSR MIB               January 2002



   might appear as follows:

   +----------------------------------------+
   | MPLS-interface ifType = mpls(166)      +
   +----------------------------------------+
   | Underlying Layer...                    +
   +----------------------------------------+

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


10.1. Support of the MPLS Layer by ifTable

   Some specific interpretations of ifTable for the MPLS
   layer follow.

   Object        Use for the MPLS layerObject

   ifIndex       Each MPLS interface is represented by an
                 ifEntry.

   ifDescr       Description of the MPLS interface.

   ifType        The value that is allocated for MPLS is
                 166.

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

   ifPhysAddress Unused.

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

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

   ifLastChange  See [RFC2863].

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




Nadeau et al.               Expires July 2002               [Page 15]


Internet Draft               GMPLS LSR MIB               January 2002



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

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

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

   ifOutErrors   See [RFC2863].

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

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

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

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

   ifCounterDiscontinuityTime
                 See [RFC2863].



11.   The Use of RowPointer and Other Cross-References


11.1. RowPointer

   RowPointer is a textual convention used to identify a
   conceptual row in an SNMP Table by pointing to one of its



Nadeau et al.               Expires July 2002               [Page 16]


Internet Draft               GMPLS LSR MIB               January 2002



   objects. In this MIB, it is used in gmplsInSegmentTable
   and gmplsOutSegmentTable for the following purposes.
   First, it indicates a particular traffic parameter table.
   An example of such a table is gmplsTrafficParamTable.
   Second, it is used to indicate a specific instance of a
   traffic parameter entry that is associated with a given
   in-segment or out-segment entry. In the in-segment and
   out-segment tables, the trafficParamPtr SHOULD point to
   the first column of the appropriate conceptual row.


11.2. Cross-referencing to the gmplsLabelTable

   The gmplsLabelTable [GMPLSLABELMIB] provides a way to
   model labels in a GMPLS system where labels might not be
   simple 32 bit integers.

   Several tables in this document (gmplsInterfaceConfTable,
   gmplsInSegmentTable, gmplsOutSegmentTable,
   gmplsLabelStackTable) use arbitrary indexes to point to
   entries in the gmplsLabelTable to indicate specific label
   values.

   Since the primary index into gmplsLabelTabel is a simple
   32 bit integer (gmplsLabelIndex), in systems where the
   nature of a label is well-known, and where the label can
   safely be encoded as a 32 bit integer (for example a
   conventional MPLS system), the gmplsLabelTable does not
   need to be supported and the pointers to the
   gmplsLabelTable (gmplsInterfaceLabelMinIn,
   gmplsInterfaceLabelMaxIn, gmplsInterfaceLabelMinOut,
   gmplsInterfaceLabelMaxOut, gmplsInSegmentLabel,
   gmplsOutSegmentTopLabel, gmplsLabelStackLabel) may be
   replaced with the direct label values.

   This provides both a good way to support legacy systems
   that implement the previous version of this MIB [LSRMIB],
   and a significant simplification in GMPLS systems that
   are limited to a single, simple label type.

   Note that gmplsLabelTable supports concatenated labels
   through the use of a sub-label index
   (gmplsSublabelIndex).


12.   GMPLS Label Switching Router MIB Definitions

GMPLS-LSR-MIB DEFINITIONS ::= BEGIN

IMPORTS



Nadeau et al.               Expires July 2002               [Page 17]


Internet Draft               GMPLS LSR MIB               January 2002



   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
   Integer32, Counter32, Unsigned32, Counter64,
   Gauge32
      FROM SNMPv2-SMI
   MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
      FROM SNMPv2-CONF
   TruthValue, RowStatus, StorageType,
   RowPointer, TimeStamp
      FROM SNMPv2-TC
   InterfaceIndexOrZero
      FROM IF-MIB
   AddressFamilyNumbers
      FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB
   InetAddressIPv4, InetAddressIPv6, InetAddressType
      FROM INET-ADDRESS-MIB
   MplsLSPID, MplsBitRate, MplsBurstSize,
   MplsInitialCreationSource
      FROM MPLS-TC-MIB
   gmplsMIB, GmplsSegmentDirection, GmplsTrapEnable
      FROM GMPLS-TC-MIB
   InetAddressIPv4, InetAddressIPv6
      FROM INET-ADDRESS-MIB
   ;

gmplsLsrMIB MODULE-IDENTITY
   LAST-UPDATED
       "200201251200Z"  -- 25 Jan 2002 12:00:00 GMT
   ORGANIZATION
       "Common Control And Management Protocols
        (CCAMP) Working Group"
   CONTACT-INFO
       "       Thomas D. Nadeau
       Postal: Cisco Systems, Inc.
               250 Apollo Drive
               Chelmsford, MA 01824
          Tel: +1-978-244-3051
        Email: tnadeau@cisco.com

               Cheenu Srinivasan
       Postal: Parama Networks, Inc.
               1030 Broad Street
               Shrewsbury, NJ 07702
          Tel: +1-732-544-9120 x731
        Email: cheenu@paramanet.com

               Adrian Farrel
       Postal: Movaz Networks, Inc.
               7926 Jones Branch Drive
               McLean, VA 22102
          Tel: +1-703-847-1986



Nadeau et al.               Expires July 2002               [Page 18]


Internet Draft               GMPLS LSR MIB               January 2002



        Email: afarrel@movaz.com

               Edward Harrison
       Postal: Data Connection Ltd.
               100 Church Street
               Enfield, Middlesex
               EN2 6BQ, United Kingdom
          Tel: +44-20-8366-1177
        Email: eph@dataconnection.com

               Tim Hall
       Postal: Data Connection Ltd.
               100 Church Street
               Enfield, Middlesex
               EN2 6BQ, United Kingdom
          Tel: +44-20-8366-1177
        Email: timhall@dataconnection.com

       Email comments to the CCAMP WG Mailing List
        at ccamp@ops.ietf.org."
   DESCRIPTION
       "This MIB contains managed object
        definitions for the Generalized
        Multiprotocol Label Switching (GMPLS)
        Router."
   -- Revision history.
   REVISION
       "200111111100Z"  -- 11 Nov 2001 11:00:00 GMT
   DESCRIPTION
       "Initial draft version."
   REVISION
       "200201251200Z"  -- 25 Jan 2002 12:00:00 GMT
   DESCRIPTION
       "Revision for compilation and work in
        progress."
   ::= { gmplsMIB 2 }

-- Tables, Scalars
gmplsLsrObjects
   OBJECT IDENTIFIER ::= { gmplsLsrMIB 1 }

-- Notifications
gmplsLsrNotifications
   OBJECT IDENTIFIER ::= { gmplsLsrMIB 2 }

gmplsLsrNotifyPrefix
   OBJECT IDENTIFIER ::= { gmplsLsrNotifications 0 }

-- Conformance
gmplsLsrConformance



Nadeau et al.               Expires July 2002               [Page 19]


Internet Draft               GMPLS LSR MIB               January 2002



   OBJECT IDENTIFIER ::= { gmplsLsrMIB 3 }


-- GMPLS Interface Configuration Table.

gmplsInterfaceConfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsInterfaceConfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies per-interface MPLS
        capability and associated information."
   ::= { gmplsLsrObjects 1 }

gmplsInterfaceConfEntry OBJECT-TYPE
   SYNTAX        GmplsInterfaceConfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by an LSR
        for every interface capable of supporting
        MPLS. Each entry in this table will exist
        only if a corresponding entry in ifTable
        exists. If the associated entry in ifTable
        is deleted, the corresponding entry in this
        table must also be deleted shortly
        thereafter. The entry with index 0
        represents the per-platform label space and
        contains parameters that apply to all
        interfaces that participate in the per-
        platform label space. Other entries defined
        in this table represent additional MPLS
        interfaces that may participate in either
        the per-platform or per-interface label
        spaces, or both.  Additional information
        about label space participation of an
        interface is provided in the description
        clause of
        mplsInterfaceLabelParticipationType."
   INDEX { gmplsInterfaceConfIndex }
   ::= { gmplsInterfaceConfTable 1 }

GmplsInterfaceConfEntry ::= SEQUENCE {
     gmplsInterfaceConfIndex              InterfaceIndexOrZero,
     gmplsInterfaceLabelMinIn             Unsigned32,
     gmplsInterfaceLabelMaxIn             Unsigned32,
     gmplsInterfaceLabelMinOut            Unsigned32,
     gmplsInterfaceLabelMaxOut            Unsigned32,
     gmplsInterfaceTotalBandwidth         MplsBitRate,



Nadeau et al.               Expires July 2002               [Page 20]


Internet Draft               GMPLS LSR MIB               January 2002



     gmplsInterfaceAvailableBandwidth     MplsBitRate,
     gmplsInterfaceLabelParticipationType BITS,
     gmplsInterfaceConfSignalingCaps      BITS
   }

gmplsInterfaceConfIndex OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This is a unique index for an entry in the
        gmplsInterfaceConfTable.  A non-zero index
        for an entry indicates the ifIndex for the
        corresponding interface entry in of the
        MPLS-layer in the ifTable. Note that the
        per-platform label space may apply to
        several interfaces, and therefore the
        configuration of the per-platform label
        space interface parameters will apply to
        all of the interfaces that are
        participating in the per-platform label
        space."
   REFERENCE
       "RFC 2863 - The Interfaces Group MIB,
        McCloghrie, K., and F. Kastenholtz, June
        2000"
   ::= { gmplsInterfaceConfEntry 1 }

gmplsInterfaceLabelMinIn OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the minimum value of an MPLS label
        that this LSR is willing to receive on this
        interface.  This object contains the index
        into the gmplsLabelTable of the entry that
        contains the label value to apply.  Note
        that in implementations where the label may
        be encoded within a 32 bit integer and
        where gmplsLabelTable is not implemented,
        this object may directly contain the label
        value to use."
   ::= { gmplsInterfaceConfEntry 2 }

gmplsInterfaceLabelMaxIn OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION



Nadeau et al.               Expires July 2002               [Page 21]


Internet Draft               GMPLS LSR MIB               January 2002



       "This is the maximum value of an MPLS label
        that this LSR is willing to receive on this
        interface.  This object contains the index
        into the gmplsLabelTable of the entry that
        contains the label value to apply.  Note
        that in implementations where the label may
        be encoded within a 32 bit integer and
        where gmplsLabelTable is not implemented,
        this object may directly contain the label
        value to use."
   ::= { gmplsInterfaceConfEntry 3 }

gmplsInterfaceLabelMinOut OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the minimum value of an MPLS label
        that this LSR is willing to send on this
        interface.  This object contains the index
        into the gmplsLabelTable of the entry that
        contains the label value to apply.  Note
        that in implementations where the label may
        be encoded within a 32 bit integer and
        where gmplsLabelTable is not implemented,
        this object may directly contain the label
        value to use."
   ::= { gmplsInterfaceConfEntry 4 }

gmplsInterfaceLabelMaxOut OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the maximum value of an MPLS label
        that this LSR is willing to send on this
        interface.  This object contains the index
        into the gmplsLabelTable of the entry that
        contains the label value to apply.  Note
        that in implementations where the label may
        be encoded within a 32 bit integer and
        where gmplsLabelTable is not implemented,
        this object may directly contain the label
        value to use."
   ::= { gmplsInterfaceConfEntry 5 }

gmplsInterfaceTotalBandwidth        OBJECT-TYPE
   SYNTAX        MplsBitRate
   MAX-ACCESS    read-only
   STATUS        current



Nadeau et al.               Expires July 2002               [Page 22]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "This value indicates the total amount of
        usable bandwidth on this interface and is
        specified in kilobits per second (Kbps).
        This variable is not applicable when
        applied to the interface with index 0.
        When this value cannot be measured, this
        value should contain the nominal
        bandwidth."
   ::= { gmplsInterfaceConfEntry 6 }

gmplsInterfaceAvailableBandwidth       OBJECT-TYPE
   SYNTAX        MplsBitRate
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value indicates the total amount of
        available bandwidth available on this
        interface and is specified in kilobits per
        second (Kbps).  This value is calculated as
        the difference between the amount of
        bandwidth currently in use and that
        specified in gmplsInterfaceTotalBandwidth.
        This variable is not applicable when
        applied to the interface with index 0.
        When this value cannot be measured, this
        value should contain the nominal
        bandwidth."
   ::= { gmplsInterfaceConfEntry 7 }

gmplsInterfaceLabelParticipationType OBJECT-TYPE
   SYNTAX  BITS {
      perPlatform (0),
      perInterface (1)
   }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Either the perPlatform(0) or
        perInterface(1) bit MUST be set. If the
        value of the gmplsInterfaceConfIndex for
        this entry is zero, then only the
        perPlatform(0) bit MUST be set and the
        perInterface(1) bit is meaningless. If the
        perInterface(1) bit is set then the value
        of gmplsInterfaceLabelMinIn,
        gmplsInterfaceLabelMaxIn,
        gmplsInterfaceLabelMinOut, and
        gmplsInterfaceLabelMaxOut for this entry
        reflect the label ranges for this



Nadeau et al.               Expires July 2002               [Page 23]


Internet Draft               GMPLS LSR MIB               January 2002



        interface.  If only the perPlatform(0) bit
        is set, then the value of
        gmplsInterfaceLabelMinIn,
        gmplsInterfaceLabelMaxIn,
        gmplsInterfaceLabelMinOut, and
        gmplsInterfaceLabelMaxOut for this entry
        must be identical to the instance of these
        objects with index 0."
   REFERENCE
       "Multiprotocol Label Switching, Rosen et al,
        RFC 3031, January 2001."
   ::= { gmplsInterfaceConfEntry 8 }

gmplsInterfaceConfSignalingCaps  OBJECT-TYPE
   SYNTAX       BITS {
      rsvpMpls (0),
      crldpMpls (1),
      ldpMpls (2),
      otherMpls (3),
      rsvpGmpls (4),
      crldpGmpls (5),
      otherGmpls (6)
   }
   MAX-ACCESS   read-create
   STATUS       current
   DESCRIPTION
       "Defines the signaling capabilities on this
        interface.  Multiple bits may legitimately
        be set at once.  Setting no bits implies
        that signaling cannot be performed on this
        interface and all LSPs must be manually
        provisioned."
   ::= { gmplsInterfaceConfEntry 9 }

-- End of gmplsInterfaceConfTable


-- MPLS Interface Performance Table.
gmplsInterfacePerfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsInterfacePerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table provides MPLS performance
        information on a per-interface basis."
   ::= { gmplsLsrObjects 2 }

gmplsInterfacePerfEntry OBJECT-TYPE
   SYNTAX        GmplsInterfacePerfEntry
   MAX-ACCESS    not-accessible



Nadeau et al.               Expires July 2002               [Page 24]


Internet Draft               GMPLS LSR MIB               January 2002



   STATUS        current
   DESCRIPTION
       "An entry in this table is created by the
        LSR for every interface capable of
        supporting MPLS.  Its is an extension to
        the gmplsInterfaceConfEntry table."
   AUGMENTS      { gmplsInterfaceConfEntry }
   ::= { gmplsInterfacePerfTable 1 }

GmplsInterfacePerfEntry ::= SEQUENCE {
      -- incoming direction
      gmplsInterfaceInLabelsUsed          Gauge32,
      gmplsInterfaceFailedLabelLookup     Counter32,
      -- outgoing direction
      gmplsInterfaceOutLabelsUsed         Gauge32,
      gmplsInterfaceOutFragments          Counter32
   }

gmplsInterfaceInLabelsUsed OBJECT-TYPE
   SYNTAX        Gauge32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of labels
        that are in use at this point in time on
        this interface in the incoming direction.
        If the interface participates in the per-
        platform label space only, then this
        instance of this object MUST be identical
        with the instance with index 0. If the
        interface participates in the per-interface
        label space, then this this instance of
        this object MUST represent the number of
        per-interface labels that are in use at
        this point in time on this interface."
   ::= { gmplsInterfacePerfEntry 1 }

gmplsInterfaceFailedLabelLookup OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of labeled
        packets that have been received on this
        interface and were discarded because there
        was no matching cross-connect entry. This
        object MUST count on a per-interface basis
        regardless of which label space the
        interface participates in."
   ::= { gmplsInterfacePerfEntry 2 }



Nadeau et al.               Expires July 2002               [Page 25]


Internet Draft               GMPLS LSR MIB               January 2002




gmplsInterfaceOutLabelsUsed OBJECT-TYPE
   SYNTAX        Gauge32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of top-most
        labels in the outgoing label stacks that
        are in use at this point in time on this
        interface. This object MUST count on a per-
        interface basis regardless of which label
        space the interface participates in."
   ::= { gmplsInterfacePerfEntry 3 }

gmplsInterfaceOutFragments OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of outgoing
        MPLS packets that required fragmentation
        before transmission on this interface. This
        object transmission on this interface. This
        object MUST count on a per-interface basis
        regardless of which label space the
        interface participates in."
   ::= { gmplsInterfacePerfEntry 4 }

-- In-segment table.

gmplsInSegmentIndexNext OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains the next appropriate
        value to be used for gmplsInSegmentIndex
        when creating entries in the
        gmplsInSegmentTable.  If the number of
        unassigned entries is exhausted, this
        object will take on the value of 0.  To
        obtain the gmplsInSegmentIndex value for a
        new entry, the manager must first issue a
        management protocol retrieval operation to
        obtain the current value of this object.
        The agent should modify the value to
        reflect the next unassigned index after
        each retrieval operation.  After a manager
        retrieves a value the agent will determine
        through its local policy when this index



Nadeau et al.               Expires July 2002               [Page 26]


Internet Draft               GMPLS LSR MIB               January 2002



        value will be made available for reuse."
    ::= { gmplsLsrObjects 3 }

gmplsInSegmentTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsInSegmentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table contains a collection of
        incoming segments to an LSR."
   ::= { gmplsLsrObjects 4 }

gmplsInSegmentEntry  OBJECT-TYPE
   SYNTAX        GmplsInSegmentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table represents one
        incoming segment.  An entry can be created
        by a network administrator or an SNMP
        agent, or an MPLS signaling protocol.  The
        creator of the entry is denoted by
        gmplsInSegmentOwner.  The value of
        gmplsInSegmentRowStatus cannot be
        active(1)unless the ifTable entry
        corresponding to gmplsInSegmentIfIndex
        exists."
   INDEX { gmplsInSegmentIndex }
   ::= { gmplsInSegmentTable 1 }

GmplsInSegmentEntry ::= SEQUENCE {
     gmplsInSegmentIndex           Unsigned32,
     gmplsInSegmentIfIndex         InterfaceIndexOrZero,
     gmplsInSegmentLabel           Unsigned32,
     gmplsInSegmentNPop            Integer32,
     gmplsInSegmentAddrFamily      AddressFamilyNumbers,
     gmplsInSegmentXCIndex         Unsigned32,
     gmplsInSegmentOwner           MplsInitialCreationSource,
     gmplsInSegmentTrafficParamPtr RowPointer,
     gmplsInSegmentRowStatus       RowStatus,
     gmplsInSegmentStorageType     StorageType,
     gmplsInSegmentDirection       GmplsSegmentDirection
   }

gmplsInSegmentIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION



Nadeau et al.               Expires July 2002               [Page 27]


Internet Draft               GMPLS LSR MIB               January 2002



       "This value contains a unique index for this
        row.  While a value of 0 is not valid as an
        index for this row it can be supplied as a
        valid value to index gmplsXCTable to access
        entries for which no in-segment has been
        configured."
   ::= { gmplsInSegmentEntry 1 }

gmplsInSegmentIfIndex OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is a unique index for an entry in the
        gmplsInSegmentTable.  This value represents
        the interface index for the incoming MPLS
        interface.  A value of zero represents an
        incoming label from the per-platform label
        space."
   ::= { gmplsInSegmentEntry 2 }

gmplsInSegmentLabel OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The incoming label for this segment.  This
        object contains the index into the
        gmplsLabelTable of the entry that contains
        the label value to apply.  Note that in
        implementations where the label may be
        encoded within a 32 bit integer and where
        gmplsLabelTable is not implemented, this
        object may directly contain the label value
        to use."
   ::= { gmplsInSegmentEntry 3 }

gmplsInSegmentNPop OBJECT-TYPE
   SYNTAX        Integer32 (1..2147483647)
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The number of labels to pop from the
        incoming data.  Note that technologies
        which do not support examining label stacks
        and multi-label popping should set this
        value to its default value of 1. Note
        further that in some GMPLS technologies
        labels are not pushed and popped at each
        LSR, but where LSRs handle LSP hierarchies



Nadeau et al.               Expires July 2002               [Page 28]


Internet Draft               GMPLS LSR MIB               January 2002



        this function is used.  This object cannot
        be modified if gmplsInSegmentRowStatus is
        active(1)."
   DEFVAL        { 1 }
   ::= { gmplsInSegmentEntry 4 }

gmplsInSegmentAddrFamily OBJECT-TYPE
   SYNTAX        AddressFamilyNumbers
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The IANA address family [IANAFamily] of the
        incoming packet.  A value of other(0)
        indicates that the family type is either
        unknown or undefined.  This object cannot
        be modified if gmplsInSegmentRowStatus is
        active(1)."
   DEFVAL        { other }
   ::= { gmplsInSegmentEntry 5 }

gmplsInSegmentXCIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Index into gmplsXCTable which identifies
        which cross-connect entry this segment is
        part of.  A value of zero indicates that
        this entry is not referred to by any cross-
        connect entry.  When a cross-connect entry
        is created which this in-segment is a part
        of, this object is automatically updated to
        reflect the value of gmplsXCIndex of that
        cross-connect entry."
   DEFVAL        { 0 }
   ::= { gmplsInSegmentEntry 6 }

gmplsInSegmentOwner OBJECT-TYPE
   SYNTAX        MplsInitialCreationSource
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Denotes the entity that created and is
        responsible for managing this segment.
        This object cannot be modified if
        gmplsInSegmentRowStatus is active(1)."
   DEFVAL        { unknown }
   ::= { gmplsInSegmentEntry 7 }

gmplsInSegmentTrafficParamPtr OBJECT-TYPE



Nadeau et al.               Expires July 2002               [Page 29]


Internet Draft               GMPLS LSR MIB               January 2002



   SYNTAX            RowPointer
   MAX-ACCESS        read-create
   STATUS            current
   DESCRIPTION
       "This variable represents a pointer to the
        traffic parameter specification for this in-
        segment.  This value may point at an entry
        in the gmplsTrafficParamTable to indicate
        which gmplsTrafficParamEntry is to be
        assigned to this segment.  This value may
        optionally point at an externally defined
        traffic parameter specification table.  A
        value of zero-dot-zero indicates best-
        effort treatment.  By having the same value
        of this object, two or more segments can
        indicate resource sharing.  This object
        cannot be modified if
        gmplsInSegmentRowStatus is active(1)."
   ::= { gmplsInSegmentEntry 8 }

gmplsInSegmentRowStatus 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.  This
        object cannot be modified if
        gmplsInSegmentRowStatus is active(1). If
        this variable is set to readOnly(5), and
        the corresponding TFIB entry is removed,
        then the agent must remove this row shortly
        thereafter."
   ::= { gmplsInSegmentEntry 9 }

gmplsInSegmentStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the storage type
        for this table entry.  When set to
        'permanent', the entire row is to be
        stored."
   ::= { gmplsInSegmentEntry 10 }

gmplsInSegmentDirection OBJECT-TYPE
   SYNTAX        GmplsSegmentDirection
   MAX-ACCESS    read-create
   STATUS        current



Nadeau et al.               Expires July 2002               [Page 30]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "This variable indicates the direction of
        data flow on this segment."
   DEFVAL        { forward }
   ::= { gmplsInSegmentEntry 11 }

-- End of gmplsInSegmentTable

-- In-segment performance table.

gmplsInSegmentPerfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsInSegmentPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table contains statistical information
        for incoming MPLS segments to an LSR."
   ::= { gmplsLsrObjects 5 }

gmplsInSegmentPerfEntry  OBJECT-TYPE
   SYNTAX        GmplsInSegmentPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains statistical
        information about one incoming segment
        which was configured in the
        gmplsInSegmentTable. The counters in this
        entry should behave in a manner similar to
        that of the interface."
   AUGMENTS      { gmplsInSegmentEntry }
   ::= { gmplsInSegmentPerfTable 1 }

GmplsInSegmentPerfEntry ::= SEQUENCE {
      gmplsInSegmentOctets                 Counter32,
      gmplsInSegmentPackets                Counter32,
      gmplsInSegmentErrors                 Counter32,
      gmplsInSegmentDiscards               Counter32,

      -- high capacity counter
      gmplsInSegmentHCOctets               Counter64,

      gmplsInSegmentPerfDiscontinuityTime  TimeStamp
   }

gmplsInSegmentOctets OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION



Nadeau et al.               Expires July 2002               [Page 31]


Internet Draft               GMPLS LSR MIB               January 2002



       "This value represents the total number of
        octets received by this segment."
   ::= { gmplsInSegmentPerfEntry 1 }

gmplsInSegmentPackets OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Total number of packets received by this
        segment."
   ::= { gmplsInSegmentPerfEntry 2 }

gmplsInSegmentErrors OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The number of errored packets received on
        this segment."
   ::= { gmplsInSegmentPerfEntry 3 }

gmplsInSegmentDiscards OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The number of labeled packets received on
        this in-segment, which were chosen to be
        discarded even though no errors had been
        detected to prevent their being
        transmitted.  One possible reason for
        discarding such a labeled packet could be
        to free up buffer space."
   ::= { gmplsInSegmentPerfEntry 4 }

gmplsInSegmentHCOctets OBJECT-TYPE
   SYNTAX        Counter64
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The total number of octets received.  This
        is the 64 bit version of
        gmplsInSegmentOctets."
   ::= { gmplsInSegmentPerfEntry 5 }

gmplsInSegmentPerfDiscontinuityTime OBJECT-TYPE
   SYNTAX      TimeStamp
   MAX-ACCESS  read-only
   STATUS      current



Nadeau et al.               Expires July 2002               [Page 32]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "The value of sysUpTime on the most recent
        occasion at which any one or more of this
        segment's Counter32 or Counter64 suffered a
        discontinuity. If no such discontinuities
        have occurred since the last re-
        initialization of the local management
        subsystem, then this object contains a zero
        value."
   ::= { gmplsInSegmentPerfEntry 6 }

-- End of gmplsInSegmentPerfTable.


-- Out-segment table.

gmplsOutSegmentIndexNext OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains the next appropriate
        value to be used for gmplsOutSegmentIndex
        when creating entries in the
        gmplsOutSegmentTable.  If the number of
        unassigned entries is exhausted, this
        object will take on the value of 0.  To
        obtain the gmplsOutSegmentIndex value for a
        new entry, the manager must first issue a
        management protocol retrieval operation to
        obtain the current value of this object.
        The agent should modify the value to
        reflect the next unassigned index after
        each retrieval operation.  After a manager
        retrieves a value the agent will determine
        through its local policy when this index
        value will be made available for reuse."
   ::= { gmplsLsrObjects 6 }

gmplsOutSegmentTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsOutSegmentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table contains a representation of the
        outgoing segments from an LSR."
   ::= { gmplsLsrObjects 7 }

gmplsOutSegmentEntry  OBJECT-TYPE
   SYNTAX        GmplsOutSegmentEntry



Nadeau et al.               Expires July 2002               [Page 33]


Internet Draft               GMPLS LSR MIB               January 2002



   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table represents one
        outgoing segment.  An entry can be created
        by a network administrator or an SNMP
        agent, or an MPLS signaling protocol.  The
        object gmplsOutSegmentOwner indicates the
        creator of this entry.  The value of
        gmplsOutSegmentRowStatus cannot be
        active(1) unless the ifTable entry
        corresponding to gmplsOutSegmentIfIndex
        exists."
   INDEX         { gmplsOutSegmentIndex }
   ::= { gmplsOutSegmentTable 1 }

GmplsOutSegmentEntry ::= SEQUENCE {
      gmplsOutSegmentIndex             Unsigned32,
      gmplsOutSegmentIfIndex
      InterfaceIndexOrZero,
      gmplsOutSegmentPushTopLabel      TruthValue,
      gmplsOutSegmentTopLabel          Unsigned32,
      gmplsOutSegmentNextHopIpAddrType InetAddressType,
      gmplsOutSegmentNextHopIpv4Addr   InetAddressIPv4,
      gmplsOutSegmentNextHopIpv6Addr   InetAddressIPv6,
      gmplsOutSegmentXCIndex           Unsigned32,
      gmplsOutSegmentOwner             MplsInitialCreationSource,
      gmplsOutSegmentTrafficParamPtr   RowPointer,
      gmplsOutSegmentRowStatus         RowStatus,
      gmplsOutSegmentStorageType       StorageType,
      gmplsOutSegmentDirection         GmplsSegmentDirection,
      gmplsOutSegmentTTLDecrement      Unsigned32
   }

gmplsOutSegmentIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This value contains a unique index for this
        row.  While a value of 0 is not valid as an
        index for this row it can be supplied as a
        valid value to index gmplsXCTable to access
        entries for which no out-segment has been
        configured."
   ::= { gmplsOutSegmentEntry 1 }

gmplsOutSegmentIfIndex OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero



Nadeau et al.               Expires July 2002               [Page 34]


Internet Draft               GMPLS LSR MIB               January 2002



   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This value must contain the interface index
        of the outgoing interface. This object may
        only take the value of 0 during the create-
        and-wait row creation operation if the
        management station has not yet set the
        value of this object. This object cannot be
        modified if gmplsOutSegmentRowStatus is
        active(1).  The gmplsOutSegmentRowStatus
        cannot be set to active(1) until this
        object is set to a value corresponding to a
        valid ifEntry."
   DEFVAL        { 0 }
   ::= { gmplsOutSegmentEntry 2 }

gmplsOutSegmentPushTopLabel OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This value indicates whether or not a top
        label should be pushed onto the outgoing
        label stack.  The value of this variable
        MUST be set to true if the outgoing
        interface does not support pop-and-go (for
        example an ATM interface) or if it is a
        tunnel origination.  Note that it is
        considered an error in the case that
        gmplsOutSegmentPushTopLabel is set to
        false, but the cross-connect entry which
        refers to this out-segment has a non-zero
        gmplsLabelStackIndex.  The LSR MUST ensure
        that this situation does not happen.  Note
        that in many GMPLS technologies labels are
        not popped and pushed at each LSR, but are
        passed through.  This pass-through approach
        is equivalent to pop and push.
        This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   ::= { gmplsOutSegmentEntry 3 }

gmplsOutSegmentTopLabel OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "If gmplsOutSegmentPushTopLabel is true then
        this represents the label that should be



Nadeau et al.               Expires July 2002               [Page 35]


Internet Draft               GMPLS LSR MIB               January 2002



        pushed onto the top of the outgoing
        packet's label stack.  This object contains
        the index into the gmplsLabelTable of the
        entry that contains the label value to
        apply.  Note that in implementations where
        the label may be encoded within a 32 bit
        integer and where gmplsLabelTable is not
        implemented, this object may directly
        contain the label value to use.  If no
        label is to be pushed this value SHOULD be
        set to 0 by the management station and MUST
        be ignored by the agent. This object cannot
        be modified if gmplsOutSegmentRowStatus is
        active(1)."
   DEFVAL        { 0 }
   ::= { gmplsOutSegmentEntry 4 }

gmplsOutSegmentNextHopIpAddrType OBJECT-TYPE
   SYNTAX        InetAddressType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Indicates whether the next hop address is
        IPv4 or IPv6.  Note that a value of unknown
        (0) is valid only when the outgoing
        interface is of type point-to-point.  This
        object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   DEFVAL        { unknown }
   ::= { gmplsOutSegmentEntry 5 }

gmplsOutSegmentNextHopIpv4Addr OBJECT-TYPE
   SYNTAX        InetAddressIPv4
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "IPv4 Address of the next hop.  Its value is
        significant only when
        gmplsOutSegmentNextHopIpAddrType is ipV4
        (1), otherwise it SHOULD return a value of
        0.  This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   ::= { gmplsOutSegmentEntry 6 }

gmplsOutSegmentNextHopIpv6Addr OBJECT-TYPE
   SYNTAX        InetAddressIPv6
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "IPv6 address of the next hop.  Its value is



Nadeau et al.               Expires July 2002               [Page 36]


Internet Draft               GMPLS LSR MIB               January 2002



        significant only when
        gmplsOutSegmentNextHopIpAddrType is ipV6
        (2), otherwise it SHOULD return a value of
        0.  This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   ::= { gmplsOutSegmentEntry 7 }

gmplsOutSegmentXCIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Index into gmplsXCTable which identifies
        which cross-connect entry this segment is
        part of.  A value of zero indicates that
        this entry is not referred to by any cross-
        connect entry.  When a cross-connect entry
        is created which this out-segment is a part
        of, this object is automatically updated to
        reflect the value of gmplsXCIndex of that
        cross-connect entry."
   DEFVAL        { 0 }
   ::= { gmplsOutSegmentEntry 8 }

gmplsOutSegmentOwner OBJECT-TYPE
   SYNTAX        MplsInitialCreationSource
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Denotes the entity which created and is
        responsible for managing this segment.
        This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   DEFVAL { unknown }
   ::= { gmplsOutSegmentEntry 9 }

gmplsOutSegmentTrafficParamPtr OBJECT-TYPE
   SYNTAX        RowPointer
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable represents a pointer to the
        traffic parameter specification for this
        out-segment.  This value may point at an
        entry in the gmplsTrafficParamTable to
        indicate which gmplsTrafficParamEntry is to
        be assigned to this segment.  This value
        may optionally point at an externally
        defined traffic parameter specification
        table.  A value of zero-dot-zero indicates



Nadeau et al.               Expires July 2002               [Page 37]


Internet Draft               GMPLS LSR MIB               January 2002



        best-effort treatment.  By having the same
        value of this object, two or more segments
        can indicate resource sharing.  This object
        cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   ::= { gmplsOutSegmentEntry 10 }

gmplsOutSegmentRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For creating, modifying, and deleting this
        row."
   ::= { gmplsOutSegmentEntry 11 }

gmplsOutSegmentStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the storage type
        for this table entry.  When set to
        'permanent', the entire row is to be
        stored.  This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1). If
        this variable is set to readOnly(5), and
        the corresponding TFIB entry is removed,
        then the agent must remove this row shortly
        thereafter."
   ::= { gmplsOutSegmentEntry 12 }

gmplsOutSegmentDirection OBJECT-TYPE
   SYNTAX        GmplsSegmentDirection
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This variable indicates the direction of
        data flow on this segment.  This object
        cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   DEFVAL        { forward }
   ::= { gmplsOutSegmentEntry 13 }

gmplsOutSegmentTTLDecrement OBJECT-TYPE
   SYNTAX        Unsigned32 (0..255)
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
   "This variable indicates the amount by which



Nadeau et al.               Expires July 2002               [Page 38]


Internet Draft               GMPLS LSR MIB               January 2002



   to decrement the TTL of any payload packets
   forwarded on this segment if per-hop
   decrementing is being done.
   A value of zero indicates that no decrement
   should be made or that per-hop decrementing
   is not in force.
   See the gmplsTunnelTTLDecrement object in
   the gmplsTunnelTable of [GMPLSTEMIB] for a
   value by which to decrement the TTL for the
   whole of a tunnel.
        This object cannot be modified if
        gmplsOutSegmentRowStatus is active(1)."
   DEFVAL        { 0 }
   ::= { gmplsOutSegmentEntry 14 }


-- End of gmplsOutSegmentTable


-- Out-segment performance table.

gmplsOutSegmentPerfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsOutSegmentPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table contains statistical information
        about outgoing segments from an LSR. The
        counters in this entry should behave in a
        manner similar to that of the interface."
   ::= { gmplsLsrObjects 8 }

gmplsOutSegmentPerfEntry  OBJECT-TYPE
   SYNTAX        GmplsOutSegmentPerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table contains statistical
        information about one outgoing segment
        configured in gmplsOutSegmentTable."
   AUGMENTS      { gmplsOutSegmentEntry }
   ::= { gmplsOutSegmentPerfTable 1 }

GmplsOutSegmentPerfEntry ::= SEQUENCE {
      gmplsOutSegmentOctets                Counter32,
      gmplsOutSegmentPackets               Counter32,
      gmplsOutSegmentErrors                Counter32,
      gmplsOutSegmentDiscards              Counter32,

      -- HC counter



Nadeau et al.               Expires July 2002               [Page 39]


Internet Draft               GMPLS LSR MIB               January 2002



      gmplsOutSegmentHCOctets              Counter64,

      gmplsOutSegmentPerfDiscontinuityTime  TimeStamp
   }

gmplsOutSegmentOctets OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value contains the total number of
        octets sent on this segment."
   ::= { gmplsOutSegmentPerfEntry 1 }

gmplsOutSegmentPackets OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value contains the total number of
        packets sent on this segment."
   ::= { gmplsOutSegmentPerfEntry 2 }

gmplsOutSegmentErrors OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Number of packets that could not be sent
        due to errors on this segment."
   ::= { gmplsOutSegmentPerfEntry 3 }

gmplsOutSegmentDiscards OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The number of labeled packets received on
        this out-segment, which were chosen to be
        discarded even though no errors had been
        detected to prevent their being
        transmitted.  One possible reason for
        discarding such a labeled packet could be
        to free up buffer space."
   ::= { gmplsOutSegmentPerfEntry 4 }

gmplsOutSegmentHCOctets OBJECT-TYPE
   SYNTAX        Counter64
   MAX-ACCESS    read-only
   STATUS        current



Nadeau et al.               Expires July 2002               [Page 40]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "Total number of octets sent.  This is the
        64 bit version of gmplsOutSegmentOctets."
   ::= { gmplsOutSegmentPerfEntry 5 }

gmplsOutSegmentPerfDiscontinuityTime OBJECT-TYPE
   SYNTAX      TimeStamp
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "The value of sysUpTime on the most recent
        occasion at which any one or more of this
        segment's Counter32 or Counter64 suffered a
        discontinuity. If no such discontinuities
        have occurred since the last re-
        initialization of the local management
        subsystem, then this object contains a zero
        value."
   ::= { gmplsOutSegmentPerfEntry 6 }


-- End of gmplsOutSegmentPerfTable.

-- Cross-connect table.

gmplsXCIndexNext OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains an appropriate value
        to be used for gmplsXCIndex when creating
        entries in the gmplsXCTable.  The value 0
        indicates that no unassigned entries are
        available.  To obtain the value of
        gmplsXCIndex for a new entry in the
        gmplsXCTable, the manager issues a
        management protocol retrieval operation to
        obtain the current value of gmplsXCIndex.
        After each retrieval operation, the agent
        should modify the value to reflect the next
        unassigned index.  After a manager
        retrieves a value the agent will determine
        through its local policy when this index
        value will be made available for reuse."
   ::= { gmplsLsrObjects 9 }

gmplsXCTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsXCEntry
   MAX-ACCESS    not-accessible



Nadeau et al.               Expires July 2002               [Page 41]


Internet Draft               GMPLS LSR MIB               January 2002



   STATUS        current
   DESCRIPTION
       "This table specifies information for
        switching between LSP segments.  It
        supports point-to-point, point-to-
        multipoint and multipoint-to-point
        connections.  gmplsLabelStackTable
        specifies the label stack information for a
        cross-connect LSR and is referred to from
        gmplsXCTable."
   ::= { gmplsLsrObjects 10 }

gmplsXCEntry  OBJECT-TYPE
   SYNTAX        GmplsXCEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "A row in this table represents one cross-
        connect entry.  The following objects index
        it:

       -  cross-connect index gmplsXCIndex that uniquelyidentifies
          a group of cross-connect entries
-  - in-segment index, gmplsInSegmentIndex
-  - out-segment index, gmplsOutSegmentIndex

       Originating LSPs:
       These are represented by using the special
       value gmplsInSegmentIndex=0In this case the
       gmplsOutSegmentIndex MUST be non-zero.

       Terminating LSPs:
       These are represented by using the special
       value gmplsOutSegmentIndex=0 as index.  In
       this case the  gmplsInSegmentIndex MUST be
       non-zero.

       Bidirectional LSPs:
       These are represented in the normal way.
       Objects within the component links indicate
       the direction of data flow on those links.

       Special labels:
       Entries indexed by reserved MPLS label
       values 0 through 15 imply terminating LSPs
       and MUST have gmplsOutSegmentIfIndex = 0.
       Note that situations where LSPs are
       terminated with incoming label equal to 0,
       should have gmplsInSegmentIfIndex = 0 as
       well, but can be distinguished from



Nadeau et al.               Expires July 2002               [Page 42]


Internet Draft               GMPLS LSR MIB               January 2002



       originating LSPs because the
       gmplsOutSegmentIfIndex = 0.  The
       gmplsOutSegmentIfIndex MUST only be set to
       0 in cases of terminating LSPs.

       An entry can be created by a network
       administrator by an SNMP agent as
       instructed by an MPLS signaling protocol."
   INDEX  { gmplsXCIndex,
          gmplsInSegmentIndex,
          gmplsOutSegmentIndex }
   ::= { gmplsXCTable 1 }

GmplsXCEntry ::= SEQUENCE {
      gmplsXCIndex           Unsigned32,
      gmplsXCLspId           MplsLSPID,
      gmplsXCLabelStackIndex Unsigned32,
      gmplsXCIsPersistent    TruthValue,
      gmplsXCOwner           MplsInitialCreationSource,
      gmplsXCRowStatus       RowStatus,
      gmplsXCStorageType     StorageType,
      gmplsXCAdminStatus     INTEGER,
      gmplsXCOperStatus      INTEGER
   }

gmplsXCIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "Primary index for the conceptual row
        identifying a group of cross-connect
        segments."
   ::= { gmplsXCEntry 1 }

gmplsXCLspId OBJECT-TYPE
   SYNTAX        MplsLSPID
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This value identifies the label switched
        path that this cross-connect entry belongs
        to.  This object cannot be modified if
        mplsXCRowStatus is active(1)."
   ::= { gmplsXCEntry 2 }

gmplsXCLabelStackIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-create
   STATUS        current



Nadeau et al.               Expires July 2002               [Page 43]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "Primary index into gmplsLabelStackTable
        identifying a stack of labels to be pushed
        beneath the top label.  Note that the top
        label identified by the out-segment ensures
        that all the components of a multipoint-to-
        point connection have the same outgoing
        label.  A value of 0 indicates that no
        labels are to be stacked beneath the top
        label.  This object cannot be modified if
        mplsXCRowStatus is active(1)."
   ::= { gmplsXCEntry 3 }

gmplsXCIsPersistent OBJECT-TYPE
   SYNTAX        TruthValue
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Denotes whether or not this cross-connect
        entry and associated in- and out-segments
        should be restored automatically after
        failures.  This value MUST be set to false
        in cases where this cross-connect entry was
        created by a signaling protocol.  This
        object cannot be modified if
        mplsXCRowStatus is active(1)."
   DEFVAL        { false }
   ::= { gmplsXCEntry 4 }

gmplsXCOwner OBJECT-TYPE
   SYNTAX    MplsInitialCreationSource
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Denotes the entity that created and is
        responsible for managing this cross-
        connect.    This object cannot be modified
        if mplsXCRowStatus is active(1)."
   ::= { gmplsXCEntry 5 }

gmplsXCRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For creating, modifying, and deleting this
        row."
   ::= { gmplsXCEntry 6 }

gmplsXCStorageType OBJECT-TYPE



Nadeau et al.               Expires July 2002               [Page 44]


Internet Draft               GMPLS LSR MIB               January 2002



   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Defines the storage type for this table
        entry. When set to 'permanent', the entire
        row is to be stored. This object cannot be
        modified if mplsXCRowStatus is active(1).
        If this variable is set to readOnly(5), and
        the corresponding TFIB entry is removed,
        then the agent must remove this row shortly
        thereafter."
   ::= { gmplsXCEntry 7 }

gmplsXCAdminStatus OBJECT-TYPE
   SYNTAX   INTEGER {
      up(1),     -- ready to pass packets
      down(2),
      testing(3) -- in some test mode
   }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The desired operational status of this
        segment."
   ::= { gmplsXCEntry 8 }

gmplsXCOperStatus OBJECT-TYPE
   SYNTAX   INTEGER {
      up(1),            -- ready to pass packets
      down(2),
      testing(3),       -- in some test mode
      unknown(4),       -- status cannot be determined
                        -- for some reason.
      dormant(5),
      notPresent(6),    -- some component is missing
      lowerLayerDown(7) -- down due to the state of
                        -- lower layer interfaces
   }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The actual operational status of this cross-
        connect."
   ::= { gmplsXCEntry 9 }

-- End of gmplsXCTable


-- Label stack table.



Nadeau et al.               Expires July 2002               [Page 45]


Internet Draft               GMPLS LSR MIB               January 2002



gmplsMaxLabelStackDepth  OBJECT-TYPE
   SYNTAX        Integer32 (1..2147483647)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "The maximum stack depth supported by this
        LSR."
   ::= { gmplsLsrObjects 11 }

gmplsLabelStackIndexNext  OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains an appropriate value
        to be used for gmplsLabelStackIndex when
        creating entries in the
        gmplsLabelStackTable.  The value 0
        indicates that no unassigned entries are
        available.  To obtain an
        gmplsLabelStackIndex value for a new entry,
        the manager issues a management protocol
        retrieval operation to obtain the current
        value of this object.  After each retrieval
        operation, the agent should modify the
        value to reflect the next unassigned index.
        After a manager retrieves a value the agent
        will determine through its local policy
        when this index value will be made
        available for reuse."
   ::= { gmplsLsrObjects 12 }

gmplsLabelStackTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsLabelStackEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the label stack to be
        pushed onto a packet, beneath the top
        label.  Entries into this table are
        referred to from gmplsXCTable."
   ::= { gmplsLsrObjects 13 }

gmplsLabelStackEntry OBJECT-TYPE
   SYNTAX        GmplsLabelStackEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table represents one label
        which is top label.  An entry can be



Nadeau et al.               Expires July 2002               [Page 46]


Internet Draft               GMPLS LSR MIB               January 2002



        created by a network administrator or by an
        SNMP agent as instructed by an MPLS
        signaling protocol."
   INDEX         { gmplsLabelStackIndex,
   gmplsLabelStackLabelIndex }
   ::= { gmplsLabelStackTable 1 }

GmplsLabelStackEntry ::= SEQUENCE {
      gmplsLabelStackIndex             Unsigned32,
      gmplsLabelStackLabelIndex        Unsigned32,
      gmplsLabelStackLabel             Unsigned32,
      gmplsLabelStackRowStatus         RowStatus,
      gmplsLabelStackStorageType       StorageType
   }

gmplsLabelStackIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "Primary index for this row identifying a
        stack of labels to be pushed on an outgoing
        packet, beneath the top label."
   ::= { gmplsLabelStackEntry 1 }

gmplsLabelStackLabelIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "Secondary index for this row identifying
        one label of the stack.  Note that an entry
        with a smaller gmplsLabelStackLabelIndex
        would refer to a label higher up the label
        stack and would be popped at a downstream
        LSR before a label represented by a higher
        gmplsLabelStackLabelIndex at a downstream
   LSR."
   ::= { gmplsLabelStackEntry 2 }

gmplsLabelStackLabel OBJECT-TYPE
   SYNTAX        Unsigned32
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The label to be pushed.  This object
        contains the index into the gmplsLabelTable
        of the entry that contains the label value
        to apply.  Note that in implementations
        where the label may be  encoded within a 32



Nadeau et al.               Expires July 2002               [Page 47]


Internet Draft               GMPLS LSR MIB               January 2002



        bit integer and where gmplsLabelTable is
        not implemented, this object may directly
        contain the label value to use."
   ::= { gmplsLabelStackEntry 3 }

gmplsLabelStackRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For creating, modifying, and deleting this
        row."
   ::= { gmplsLabelStackEntry 4 }

gmplsLabelStackStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Defines the storage type for this  table
        entry.  When set to 'permanent', the entire
        row is to be stored.  If this variable is
        set to readOnly(5), and the corresponding
        TFIB entry is removed, then the agent must
        remove this row shortly thereafter."
   ::= { gmplsLabelStackEntry 5 }

-- End of gmplsLabelStackTable

-- Traffic Parameter table.

gmplsTrafficParamIndexNext OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains an appropriate value
        which will be used for
        gmplsTrafficParamIndex when creating
        entries in the gmplsTrafficParamTable.  The
        value 0 indicates that no unassigned
        entries are available.  To obtain the
        gmplsTrafficParamIndex value for a new
        entry, the manager issues a management
        protocol retrieval operation to obtain the
        current value of this object.  After each
        retrieval operation, the agent should
        modify the value to reflect the next
        unassigned index.  After a manager
        retrieves a value the agent will determine



Nadeau et al.               Expires July 2002               [Page 48]


Internet Draft               GMPLS LSR MIB               January 2002



        through its local policy when this index
        value will be made available for reuse."
   ::= { gmplsLsrObjects 14 }

gmplsTrafficParamTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF GmplsTrafficParamEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies the Traffic Parameter
        objects for in and out-segments."
   ::= { gmplsLsrObjects 15 }

gmplsTrafficParamEntry OBJECT-TYPE
   SYNTAX        GmplsTrafficParamEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table represents the
        TrafficParam objects for one or more in or
        out segments.  A single entry can be
        pointed to by multiple segments indicating
        resource sharing."
   INDEX         { gmplsTrafficParamIndex }
   ::= { gmplsTrafficParamTable 1 }

GmplsTrafficParamEntry ::= SEQUENCE {
      gmplsTrafficParamIndex           Unsigned32,
      gmplsTrafficParamMaxRate         MplsBitRate,
      gmplsTrafficParamMeanRate        MplsBitRate,
      gmplsTrafficParamMaxBurstSize    MplsBurstSize,
      gmplsTrafficParamRowStatus       RowStatus,
      gmplsTrafficParamStorageType     StorageType
   }

gmplsTrafficParamIndex OBJECT-TYPE
   SYNTAX        Unsigned32 (0..4294967295)
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "Uniquely identifies this row of the table.
        Note that zero represents an invalid
        index."
   ::= { gmplsTrafficParamEntry 1 }

gmplsTrafficParamMaxRate OBJECT-TYPE
   SYNTAX        MplsBitRate
   UNITS         "kilobits per second"
   MAX-ACCESS    read-create
   STATUS        current



Nadeau et al.               Expires July 2002               [Page 49]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "Maximum rate in kilobits/second."
   ::= { gmplsTrafficParamEntry 2 }

gmplsTrafficParamMeanRate OBJECT-TYPE
   SYNTAX        MplsBitRate
   UNITS         "kilobits per second"
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Mean rate in kilobits/second."
   ::= { gmplsTrafficParamEntry 3 }

gmplsTrafficParamMaxBurstSize OBJECT-TYPE
   SYNTAX        MplsBurstSize
   UNITS         "bytes"
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "Maximum burst size in bytes."
   ::= { gmplsTrafficParamEntry 4 }

gmplsTrafficParamRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "For creating, modifying, and deleting this
        row."
   ::= { gmplsTrafficParamEntry 5 }

gmplsTrafficParamStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this table entry. When
        set to 'permanent', the entire row is to be
        stored.  If this variable is set to
        readOnly(5), and the corresponding TFIB
        entry is removed, then the agent must
        remove this row shortly thereafter."
   ::= { gmplsTrafficParamEntry 6 }

-- End of gmplsTrafficParamTable

-- Notification Configuration

gmplsXCTrapEnable OBJECT-TYPE
   SYNTAX        GmplsTrapEnable



Nadeau et al.               Expires July 2002               [Page 50]


Internet Draft               GMPLS LSR MIB               January 2002



   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION
       "This object controls the generation of
        gmplsXCUp and gmplsXCDown notifications.
        If set to diabled (0), these notifications
        are not emitted.  If set to oneAtATime (1),
        each notification may only carry
        information about a single XC that has
        changed state.  If set to rangeAllowed (2),
        each notification MAY carry information
        about a contiguous range of XCs that have
        changed state, but note that
        implementations may send multiple
        individual notifications even when
        rangeAllowed is selected."
   DEFVAL { disabled }
   ::= { gmplsLsrObjects 16 }

-- Cross-connect.

gmplsXCUp NOTIFICATION-TYPE
   OBJECTS     {
      gmplsXCOperStatus,  -- start of range
      gmplsXCOperStatus   -- end of range
   }
   STATUS      current
   DESCRIPTION
       "This notification is generated when the
        gmplsXCOperStatus object for one or more
        contiguous entries in gmplsXCTable are
        about to enter the up(1) state from some
        other.  The included values of
        gmplsXCOperStatus MUST both be set equal to
        this other state.  The two instances of
        gmplsXCOperStatus in this notification
        indicate the range of indexes that are
        affected.  Note that all the indexes of the
        two ends of the range can be derived from
        the instance identifiers of these two
        objects.  For cases where a contiguous
        range of cross-connects have transitioned
        into the up(1) state at roughly the same
        time, the device SHOULD issue a single
        notification for each range of contiguous
        indexes in an effort to minimize the
        emission of a large number of
        notifications.  If a notification has to be
        issued for just a single cross-connect
        entry, then the instance identifier (and



Nadeau et al.               Expires July 2002               [Page 51]


Internet Draft               GMPLS LSR MIB               January 2002



        values) of the two gmplsXCOperStatus
        objects MUST be the identical."
   ::= { gmplsLsrNotifyPrefix 1 }

gmplsXCDown NOTIFICATION-TYPE
   OBJECTS     {
      gmplsXCOperStatus,  -- start of range
      gmplsXCOperStatus   -- end of range
   }
   STATUS      current
   DESCRIPTION
       "This notification is generated when the
        gmplsXCOperStatus object for one or more
        contiguous entries in gmplsXCTable are
        about to enter the down(2) state from some
        other.  The included values of
        gmplsXCOperStatus MUST both be set equal to
        this other state.  The two instances of
        gmplsXCOperStatus in this notification
        indicate the range of indexes that are
        affected.  Note that all the indexes of the
        two ends of the range can be derived from
        the instance identifiers of these two
        objects.  For cases where a contiguous
        range of cross-connects have transitioned
        into the down(2) state at roughly the same
        time, the device SHOULD issue a single
        notification for each range of contiguous
        indexes in an effort to minimize the
        emission of a large number of
        notifications.  If a notification has to be
        issued for just a single cross-connect
        entry, then the instance identifier (and
        values) of the two gmplsXCOperStatus
        objects MUST be the identical."
   ::= { gmplsLsrNotifyPrefix 2 }

-- End of notifications.


-- Module compliance.

gmplsLsrGroups
   OBJECT IDENTIFIER ::= { gmplsLsrConformance 1 }

gmplsLsrCompliances
   OBJECT IDENTIFIER ::= { gmplsLsrConformance 2 }

gmplsLsrModuleCompliance MODULE-COMPLIANCE
   STATUS current



Nadeau et al.               Expires July 2002               [Page 52]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "Compliance statement for agents that
        support the MPLS LSR MIB."
   MODULE -- this module

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

   MANDATORY-GROUPS    {
      gmplsInSegmentGroup,
      gmplsOutSegmentGroup,
      gmplsXCGroup,
      gmplsInterfaceGroup,
      gmplsPerfGroup,
      gmplsSegmentDiscontinuityGroup
   }

   GROUP gmplsHCInSegmentPerfGroup
   DESCRIPTION
       "This group is mandatory for those in-
        segment entries for which the object
        gmplsInSegmentOutOctets wraps around too
        quickly."

   GROUP gmplsHCOutSegmentPerfGroup
   DESCRIPTION
       "This group is mandatory for those out-
        segment entries for which the object
        gmplsOutSegmentOctets wraps around too
        quickly."

   GROUP gmplsTrafficParamGroup
   DESCRIPTION
       "This group is mandatory for those LSRs that
        support QoS resource reservation."


   -- Depending on whether the device implements
   -- persistent cross-connects or not one of the
   -- following two groups is mandatory.

   GROUP gmplsXCIsPersistentGroup
   DESCRIPTION
       "This group is mandatory for devices which
        support persistent cross-connects.  The
        following constraints apply:
        gmplsXCIsPersistent must at least be read-
        only returning true(2)."



Nadeau et al.               Expires July 2002               [Page 53]


Internet Draft               GMPLS LSR MIB               January 2002




   GROUP gmplsXCIsNotPersistentGroup
   DESCRIPTION
       "This group is mandatory for devices which
        support non-persistent cross-connects.  The
        following constraints apply:
        gmplsXCIsPersistent must at least be read-
        only returning false(1)."

   -- gmplsInSegmentTable

   OBJECT     gmplsInSegmentXCIndex
   DESCRIPTION
       "Write access is not required."

   OBJECT      gmplsInSegmentNPop
   MIN-ACCESS  read-only
   DESCRIPTION
       "Write access is not required.  This object
        should be set to 1 if it is read-only."

   OBJECT      gmplsInSegmentAddrFamily
   DESCRIPTION
       "Write access is not required.  A value of
        other(0) should be supported because there
        may be cases where the agent may not know
        about or support any address types."

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

   OBJECT      gmplsInSegmentDirection
   SYNTAX      GmplsSegmentDirection
   MIN-ACCESS  read-only
   DESCRIPTION
       "Only forward(1) needs to be supported."


   -- gmplsOutSegmentTable

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

   OBJECT      gmplsOutSegmentPushTopLabel
   MIN-ACCESS  read-only



Nadeau et al.               Expires July 2002               [Page 54]


Internet Draft               GMPLS LSR MIB               January 2002



   DESCRIPTION
       "Write access is not required."

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

   OBJECT      gmplsOutSegmentNextHopIpAddrType
   MIN-ACCESS  read-only
   DESCRIPTION
       "ipV6(3) need not be supported."

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

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

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

   OBJECT      gmplsOutSegmentDirection
   SYNTAX      GmplsSegmentDirection
   MIN-ACCESS  read-only
   DESCRIPTION
       "Only forward(1) needs to be supported."

   OBJECT      gmplsOutSegmentTTLDecrement
   SYNTAX      Unsigned32 (0..255)
   MIN-ACCESS  read-only
   DESCRIPTION



Nadeau et al.               Expires July 2002               [Page 55]


Internet Draft               GMPLS LSR MIB               January 2002



       "Write access is not required."


   -- gmplsXCTable

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

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

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

   OBJECT      gmplsXCOperStatus
   SYNTAX      INTEGER { up(1), down(2) }
   DESCRIPTION
       "Only up(1) and down(2) need to be
        supported."

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

   ::= { gmplsLsrCompliances 1 }

-- Units of conformance.




Nadeau et al.               Expires July 2002               [Page 56]


Internet Draft               GMPLS LSR MIB               January 2002



gmplsInterfaceGroup OBJECT-GROUP
   OBJECTS {
      gmplsInterfaceLabelMinIn,
      gmplsInterfaceLabelMaxIn,
      gmplsInterfaceLabelMinOut,
      gmplsInterfaceLabelMaxOut,
      gmplsInterfaceTotalBandwidth,
      gmplsInterfaceAvailableBandwidth,
      gmplsInterfaceLabelParticipationType,
      gmplsInterfaceConfSignalingCaps
   }
   STATUS  current
   DESCRIPTION
       "Collection of objects needed for MPLS
        interface configuration and performance
        information."
   ::= { gmplsLsrGroups 1 }

gmplsInSegmentGroup  OBJECT-GROUP
   OBJECTS {
      gmplsInSegmentIndexNext,
      gmplsInSegmentIfIndex,
      gmplsInSegmentLabel,
      gmplsInSegmentNPop,
      gmplsInSegmentAddrFamily,
      gmplsInSegmentXCIndex,
      gmplsInSegmentOwner,
      gmplsInSegmentTrafficParamPtr,
      gmplsInSegmentRowStatus,
      gmplsInSegmentStorageType,
      gmplsInSegmentDirection
   }
   STATUS  current
   DESCRIPTION
       "Collection of objects needed to implement
        an in-segment."
   ::= { gmplsLsrGroups 2 }

gmplsOutSegmentGroup  OBJECT-GROUP
   OBJECTS {
      gmplsOutSegmentIndexNext,
      gmplsOutSegmentIfIndex,
      gmplsOutSegmentPushTopLabel,
      gmplsOutSegmentTopLabel,
      gmplsOutSegmentNextHopIpAddrType,
      gmplsOutSegmentNextHopIpv4Addr,
      gmplsOutSegmentNextHopIpv6Addr,
      gmplsOutSegmentXCIndex,
      gmplsOutSegmentOwner,
      gmplsOutSegmentTrafficParamPtr,



Nadeau et al.               Expires July 2002               [Page 57]


Internet Draft               GMPLS LSR MIB               January 2002



      gmplsOutSegmentRowStatus,
      gmplsOutSegmentStorageType,
      gmplsOutSegmentDirection,
      gmplsOutSegmentTTLDecrement
   }
   STATUS  current
   DESCRIPTION
       "Collection of objects needed to implement
        an out-segment."
   ::= { gmplsLsrGroups 3 }

gmplsXCGroup  OBJECT-GROUP
   OBJECTS {
      gmplsXCIndexNext,
      gmplsXCLabelStackIndex,
      gmplsXCIsPersistent,
      gmplsXCOwner,
      gmplsXCRowStatus,
      gmplsXCAdminStatus,
      gmplsXCStorageType,
      gmplsXCOperStatus,
      gmplsXCTrapEnable
   }
   STATUS  current
   DESCRIPTION
       "Collection of objects needed to implement a
        cross-connect entry."
   ::= { gmplsLsrGroups 4 }

gmplsXCOptionalGroup  OBJECT-GROUP
   OBJECTS { gmplsXCLspId }
   STATUS  current
   DESCRIPTION
       "Collection of optional objects for
        implementing a cross-connect entry."
   ::= { gmplsLsrGroups 5 }

gmplsPerfGroup OBJECT-GROUP
   OBJECTS {
      gmplsInSegmentOctets,
      gmplsInSegmentPackets,
      gmplsInSegmentErrors,
      gmplsInSegmentDiscards,
      gmplsOutSegmentOctets,
      gmplsOutSegmentPackets,
      gmplsOutSegmentErrors,
      gmplsOutSegmentDiscards,
      gmplsInterfaceInLabelsUsed,
      gmplsInterfaceFailedLabelLookup,
      gmplsInterfaceOutFragments,



Nadeau et al.               Expires July 2002               [Page 58]


Internet Draft               GMPLS LSR MIB               January 2002



      gmplsInterfaceOutLabelsUsed
   }
   STATUS  current
   DESCRIPTION
       "Collection of objects providing performance
        information about an LSR."
   ::= { gmplsLsrGroups 6 }

gmplsHCInSegmentPerfGroup OBJECT-GROUP
   OBJECTS { gmplsInSegmentHCOctets }
   STATUS  current
   DESCRIPTION
       "Object(s) providing performance information
        specific to out-segments for which the
        object gmplsInterfaceInOctets wraps around
        too quickly."
   ::= { gmplsLsrGroups 7 }

gmplsHCOutSegmentPerfGroup OBJECT-GROUP
   OBJECTS { gmplsOutSegmentHCOctets }
   STATUS  current
   DESCRIPTION
       "Object(s) providing performance information
        specific to out-segments for which the
        object gmplsInterfaceOutOctets wraps around
        too quickly."
   ::= { gmplsLsrGroups 8 }

gmplsXCIsPersistentGroup OBJECT-GROUP
   OBJECTS { gmplsXCIsPersistent }
   STATUS  current
   DESCRIPTION
       "Objects needed to support persistent cross-
        connects."
   ::= { gmplsLsrGroups 9 }

gmplsXCIsNotPersistentGroup OBJECT-GROUP
   OBJECTS { gmplsXCIsPersistent }
   STATUS  current
   DESCRIPTION
       "Objects needed to support non-persistent
        cross-connects."
   ::= { gmplsLsrGroups 10 }

gmplsLabelStackGroup OBJECT-GROUP
   OBJECTS {
      gmplsLabelStackIndexNext,
      gmplsLabelStackLabel,
      gmplsLabelStackRowStatus,
      gmplsLabelStackStorageType,



Nadeau et al.               Expires July 2002               [Page 59]


Internet Draft               GMPLS LSR MIB               January 2002



      gmplsMaxLabelStackDepth
   }
   STATUS current
   DESCRIPTION
       "Objects needed to support label stacking."
   ::= { gmplsLsrGroups 11 }

gmplsTrafficParamGroup OBJECT-GROUP
   OBJECTS {
      gmplsTrafficParamIndexNext,
      gmplsTrafficParamMaxRate,
      gmplsTrafficParamMeanRate,
      gmplsTrafficParamMaxBurstSize,
      gmplsTrafficParamRowStatus,
      gmplsTrafficParamStorageType
   }
   STATUS  current
   DESCRIPTION
       "Object(s) required for supporting QoS
        resource reservation."
   ::= { gmplsLsrGroups 12 }

gmplsSegmentDiscontinuityGroup OBJECT-GROUP
   OBJECTS {
      gmplsInSegmentPerfDiscontinuityTime,
      gmplsOutSegmentPerfDiscontinuityTime
   }
   STATUS  current
   DESCRIPTION
       "A collection of objects providing
        information specific to segment
        discontinuities.."
   ::= { gmplsLsrGroups 13 }

gmplsLsrNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS {
      gmplsXCUp,
      gmplsXCDown
   }
   STATUS  current
   DESCRIPTION
       "Set of notifications implemented in this
        module.  None is mandatory."
   ::= { gmplsLsrGroups 14 }

END


13.   Security Considerations




Nadeau et al.               Expires July 2002               [Page 60]


Internet Draft               GMPLS LSR MIB               January 2002



   It is clear that this MIB is potentially useful for
   monitoring of MPLS and GMPLS LSRs.  This MIB can also be
   used for configuration of certain objects, and anything
   that can be configured can be incorrectly configured,
   with potentially disastrous results.

   There are a number of management objects defined in this
   MIB that 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 environment without proper
   protection can have a negative effect on network
   operations.

   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 to the MPLS network.  Allowing uncontrolled
   access to these objects could result in malicious and
   unwanted disruptions of network traffic or incorrect
   configurations for these customers.  There are no objects
   that are particularly sensitive in their own right, such
   as passwords or monetary amounts.

   It is thus important to control even GET access to these
   objects and possibly to even encrypt the values of these
   object when sending them over the network via SNMP. Not
   all versions of SNMP provide features for such a secure
   environment.

   At this writing, no security holes have been identified
   beyond those that SNMP Security [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 operator error, which is beyond the scope of any
   security architecture.

   SNMPv1 or SNMPv2 are by themselves not a secure
   environment. Even if the network itself is secure (for
   example by using IPSec [RFC2401]), there is no control as
   to who on the secure network is allowed to access and
   GET/SET (read, change, create and/or 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 [RFC2574] and the View-based Access
   Control [RFC2575] is recommended. It is then a
   customer/user responsibility to ensure that the SNMP
   entity giving access to an instance of this MIB is



Nadeau et al.               Expires July 2002               [Page 61]


Internet Draft               GMPLS LSR MIB               January 2002



   properly configured to give access to the objects only to
   those principals (users) that have legitimate rights to
   indeed GET or SET (change/create/delete) them.


14.   References


14.1. Normative References

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

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

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

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

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

   [RFC3032]     Rosen, E., Rekhter, Y., Tappan, D.,
                 Farinacci, D., Federokow, G., Li, T., and
                 A. Conta, "MPLS Label Stack Encoding", RFC
                 3032, January 2001.

   [RFC3036]     Anderson, L., Doolan, P., Feldman, N.,
                 Fredette, A., and B. Thomas, "LDP
                 Specification", RFC 3036, January 2001.

   [RSVPTE]      Awduche, D., Berger, L., Gan, D., Li, T.,
                 Srinivasan, V., and G. Swallow, "RSVP-TE:
                 Extensions to RSVP for LSP Tunnels", draft-
                 ietf-mpls-rsvp-lsp-tunnel-08.txt, February
                 2001, work in progress.

   [CRLDP]       Jamoussi, B., Aboul-Magd, O., Andersson,
                 L., Ashwood-Smith, P., Hellstrand, F.,
                 Sundell, K., Callon, R., Dantu, R., Wu, L.,
                 Doolan, P., Worster, T., Feldman, N.,
                 Fredette, A., Girish, M., Gray, E.,
                 Halpern, J., Heinanen, J., Kilty, T.,



Nadeau et al.               Expires July 2002               [Page 62]


Internet Draft               GMPLS LSR MIB               January 2002



                 Malis, A., and P. Vaananen, "Constraint-
                 Based LSP Setup using LDP", draft-ietf-mpls-
                 cr-ldp-05.txt, February 2001, work in
                 progress."

   [GMPLSArch]   Ashwood-Smith, P., Awduche, D., Banerjee,
                 A., Basak, D, Berger, L., Bernstein, G.,
                 Drake, J., Fan, Y., Fedyk, D., Grammel, D.,
                 Kompella, K., Kullberg, A., Lang, J., Liaw,
                 F., Papadimitriou, D., Pendarakis, D.,
                 Rajagopalan, B., Rekhter, Y., Saha, D.,
                 Sandick, H., Sharma, V., Swallow, G., Tang,
                 Z., Yu, J., Zinin, A., Nadeau, T., Mannie,
                 E., Generalized Multiprotocol Label
                 Switching (GMPLS) Architecture, Internet
                 Draft <draft-many-gmpls-architecture-
                 01.txt>, March 2001, work in progress.

   [GMPLSSig]    Ashwood-Smith, P., Awduche, D., Banerjee,
                 A., Basak, D, Berger, L., Bernstein, G.,
                 Drake, J., Fan, Y., Fedyk, D., Grammel, D.,
                 Kompella, K., Kullberg, A., Lang,
                 Rajagopalan, B., Rekhter, Y., Saha, D.,
                 Sharma, V., Swallow, G., Bo Tang, Z.,
                 Generalized MPLS - Signaling Functional
                 Description, <draft-ietf-mpls-generalized-
                 signaling-04.txt>, May 2001, work in
                 progress.

   [GMPLSCRLDP]  Ashwood-Smith, P., Awduche, D., Banerjee,
                 A., Basak, D, Berger, L., Bernstein, G.,
                 Drake, J., Fan, Y., Fedyk, D., Grammel, D.,
                 Kompella, K., Kullberg, A., Lang,
                 Rajagopalan, B., Rekhter, Y., Saha, D.,
                 Sharma, V., Swallow, G., Bo Tang, Z.,
                 Generalized MPLS Signaling - CR-LDP
                 Extensions, Internet Draft <draft-ietf-mpls-
                 generalized-cr-ldp-03.txt>, May 2001, work
                 in progress.

   [GMPLSRSVPTE] Ashwood-Smith, P., Awduche, D., Banerjee,
                 A., Basak, D, Berger, L., Bernstein, G.,
                 Drake, J., Fan, Y., Fedyk, D., Grammel, D.,
                 Kompella, K., Kullberg, A., Lang,
                 Rajagopalan, B., Rekhter, Y., Saha, D.,
                 Sharma, V., Swallow, G., Bo Tang, Z.,
                 Generalized MPLS Signaling - RSVP-TE
                 Extensions, Internet Draft <draft-ietf-mpls-
                 generalized-rsvp-te-03.txt>, May 2001, work
                 in progress.



Nadeau et al.               Expires July 2002               [Page 63]


Internet Draft               GMPLS LSR MIB               January 2002




   [GMPLSSonetSDH]  Mannie, E., Ansorge, S., Ashwood-Smith,
                 P., Banerjee, A., Berger, L., Bernstein,
                 G., Chiu, A., Drake, J., Fan, Y., Fontana,
                 M., Grammel, G., Heiles, J., Katukam, S.,
                 Kompella, K., Lang, J. P., Liaw, F., Lin,
                 Z., Mack-Crane, B., Papadimitriou, D.,
                 Pendarakis, D., Raftelis, M., Rajagopalan,
                 B., Rekhter, Y., Saha, D., Sharma, V.,
                 Swallow, G., Bo Tang, Z., Varma, E.,
                 Vissers, M., Xu, Y., GMPLS Extensions for
                 SONET and SDH Control, Internet Draft
                 <draft-ietf-ccamp-gmpls-sonet-sdh-00.txt>,
                 May 2001, work in progress.

   [TCMIB]       Nadeau, T., Cucchiara, J., Srinivasan, C,
                 Viswanathan, A. and H. Sjostrand,
                 "Definition of Textual Conventions and
                 OBJECT-IDENTITIES for Multiprotocol Label
                 Switching (MPLS) Management", Internet
                 Draft <draft-ietf-mpls-tc-mib-03.txt>,
                 January 2002, work in progress.

   [LSRMIB]      Srinivasan, C., Viswanathan, A. and T.
                 Nadeau, "MPLS Label Switching Router
                 Management Information Base Using SMIv2",
                 Internet Draft <draft-ietf-mpls-lsr-mib-
                 08.txt>, January 2002, work in progress.

   [LABELMIB]    Nadeau, T., Srinivasan, C., A., Farrel, A.,
                 Hall, T., and Harrison, E., "Generalized
                 Multiprotocol Label Switching (GMPLS) Label
                 Management Information Base", draft-nadeau-
                 ccamp-gmpls-label-mib-01.txt, January 2002,
                 work in progress.

   [GMPLSTEMIB]  Nadeau, T., Srinivasan, C., Farrel, A.,
                 Hall, T., and Harrison, E., "Generalized
                 Multiprotocol Label Switching (GMPLS)
                 Traffic
                 Engineering Management Information Base",
                 draft-nadeau-ccamp-gmpls-te-mib-01.txt,
                 January 2002, work in progress.


14.2. Informational References

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



Nadeau et al.               Expires July 2002               [Page 64]


Internet Draft               GMPLS LSR MIB               January 2002



                 1990.

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

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

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

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

   [RFC2514]     Noto, et. al., "Definitions of Textual
                 Conventions and OBJECT-IDENTITIES for ATM
                 Management", RFC 2514, Feb. 1999

   [RFC2515]     K. Tesink, "Definitions of Managed Objects
                 for ATM Management", RFC 2515, Feb. 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.

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

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

   [RFC2573]     Levi, D., Meyer, P., and B. Stewart,
                 "SNMPv3 Applications", RFC 2573, 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.



Nadeau et al.               Expires July 2002               [Page 65]


Internet Draft               GMPLS LSR MIB               January 2002




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

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

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

   [RFC3031]     Rosen, E., Viswanathan, A., and R. Callon,
                 "Multiprotocol Label Switching
                 Architecture", RFC 3031, January 2001.

   [RFC3034]     Conta, A., Doolan, P., Malis, A., "Use of
                 Label Switching on Frame Relay Networks
                 Specification", RFC 3034, January 2001.

   [RFC3035]     Davie, B., Lawrence, J., McCloghrie, K.,
                 Rosen, E., Swallow, G., Rekhter, Y., and P.
                 Doolan, "MPLS using LDP and ATM VC
                 switching", RFC 3035, January 2001.

   [IANAFamily]  Internet Assigned Numbers Authority (IANA),
                 ADDRESS FAMILY NUMBERS.

   [TEMIB]       Nadeau, T., Srinivasan, C, Viswanathan, A.,
                 "Multiprotocol Label Switching (MPLS)
                 Traffic Engineering Management Information
                 Base", Internet Draft <draft-ietf-mpls-te-
                 mib-08.txt>, January 2002, work in
                 progress.


15.   Authors' Addresses

Thomas D. Nadeau
Cisco Systems, Inc.
300 Apollo Drive
Chelmsford, MA 01824

   Phone: +1-978-244-3051
   Email: tnadeau@cisco.com



Nadeau et al.               Expires July 2002               [Page 66]


Internet Draft               GMPLS LSR MIB               January 2002




   Cheenu Srinivasan
   Parama Networks, Inc.
   1030 Broad Street
   Shrewsbury, NJ 07702
   Phone: +1-732-544-9120 x731
   Email: cheenu@paramanet.com

   Adrian Farrel
   Movaz Networks, Inc.
   7926 Jones Branch Drive, Suite 615
   McLean VA, 22102 USA
   Phone: +1-703-847-9847
   Email: afarrel@movaz.com

   Tim Hall
   Data Connection Ltd.
   100 Church Street
   Enfield, Middlesex
   EN2 6BQ, UK
   Phone: +44 20 8366 1177
   Email: timhall@dataconnection.com

   Edward Harrison
   Data Connection Ltd.
   100 Church Street
   Enfield, Middlesex
   EN2 6BQ, UK
   Phone: +44 20 8366 1177
   Email: eph@dataconnection.com


16.   Full Copyright Statement

   Copyright (C) The Internet Society (2002). 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 document 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
   developing Internet standards in which case the
   procedures for copyrights defined in the Internet



Nadeau et al.               Expires July 2002               [Page 67]


Internet Draft               GMPLS LSR MIB               January 2002



   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.








































Nadeau et al.               Expires July 2002               [Page 68]