Network Working Group                                         Riza Cetin
Internet Draft                                        Stefaan De Cnodder
Expiration Date: December 2002 May 2003                                        Alcatel

                                                             Der-Hwa Gan
                                                  Juniper Networks, Inc.

                                                        Thomas D. Nadeau
                                                     Cisco Systems, Inc.

                                                                              June

                                                           November 2002

   Multiprotocol Label Switching (MPLS) Traffic Engineering Management
                    Information Base for Fast Reroute

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

                 draft-ietf-mpls-fastreroute-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 RFC2026 [1].

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

1. 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) based fast rerouting.

2. Table of Contents

1. ABSTRACT...................................................1
2. TABLE OF CONTENTS..........................................1
3. CONVENTIONS USED IN THIS DOCUMENT..........................2
4. INTRODUCTION...............................................3

5. BRIEF DESCRIPTION OF MIB OBJECTS...........................3
5.1. MPLSFRRCONSTTABLE........................................3
5.2. MPLSFRRPLRTABLE..........................................3
5.3. MPLSFRRDETOURTABLE.......................................3
6. MPLS FAST REROUTE MIB DEFINITIONS..........................4
7. SECURITY CONSIDERATIONS...................................29
8. REFERENCEAS...............................................29
9. ACKNOWLEDGMENTS...........................................30
10. Intellectual Property Considerations.....................30
11. AUTHORSĘ ADDRESSES.......................................30
12. FULL COPYRIGHT STATEMENT.................................30

3. Conventions used in this document

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

               Cetin, et. al.                                                [Page 1] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

               3.

4. 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) based fast rerouting. This MIB should be used in
   conjunction with [3] and [4].

               4.

5. Brief Description of MIB Objects.

   The objects described in this section support the detour
   functionality described in Section 3 of [5]. Bypass tunnels are for
   further study.

               4.1.

5.1. mplsFrrConstTable

   This table contains fast-reroute constraints such as setup and
   holding priorities and bandwidth for a tunnel instance to be
   protected by using detour LSPs.

   This table is used at the ingress node of the protected tunnel
   instance to configure detour LSP setup constraints.

               4.2.

5.2. mplsFrrPLRTable

   The mplsFrrPLRTable is an optional table that contains lists of PLRs
   that initiated detour LSPs to protect tunnel instances.

   When detour LSPs initiated by different PLRs to protect the same
   tunnel instance, are merged together before entering an LSR then at
   this LSR, entries of those PLRs point to the same detour LSP entry in
   the mplsFrrDetourTable.

               4.3.

5.3. mplsFrrDetourTable

   The mplsFrrDetourTable shows the detour LSPs in each node (ingress,
   transit and egress LSRs). An entry of this table represents a detour
   LSP. Each detour is identified by:

   - tunnel index (which is set to the tunnel-id of the LSP protected
     by this detour),
   - tunnel instance (which is set to the LSP-id of the LSP protected
     by this detour),
   - ingress node (which is set to the ingress node of the LSP
     protected by this detour),
   - egress node (which is set to the egress node of the LSP
     protected by this detour), and
   - detour index.

   Multiple detours of the same protected LSP may go through the same
   node. In this case, the first four identifiers are not sufficient to
   uniquely identify each detour LSP. Therefore, an additional detour
   index is introduced.

               Cetin, et. al.                                                [Page 2] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

   Each entry describes the properties of the detour LSP like bandwidth,
   setup and holding priority,... and also whether or not the detour LSP
   is merged with another detour LSP or with the protected LSP.

   mplsFrrDetourTable does not define the in and out segments forming
   the detour. Instead, these are defined by creating rows in the in-
   segment and out-segment tables, defining relationships in the cross-
   connect table and referring to these rows in the mplsFrrDetourTable
   using a cross-connect row pointer (mplsFrrDetourXCPointer). These
   segment and cross-connect related objects are defined in [4].

   When detour LSPs are merged, then for each individual detour LSP, an
   entry is created in this table. Each such detour LSP points to a
   different cross-connect entry. These cross-connect entries have the
   same mplsXCIndex and mplsOutSegmentIndex. mplsOutSegmentIndex will
   point to the entry of the out segment table created for the final
   detour LSP selected as a result of the merging rules. This final
   detour LSP is given by mplsFrrDetourMergedDetourIndex object in each
   entry of the merged detour LSPs. In case detour LSPs are merged with
   the protected LSP, mplsOutSegmentIndex will point to the entry of the
   out segment table created for the protected LSP. In this case the
   mplsFrrDetourMergedDetourIndex object is not relevant.

   This table is optional and is only required in case mplsFrrPLRTable
   is supported.

               4.4. mplsFrrHopTable

                  The mplsFrrHopTable contains the list of hops for explicit path
                  (e.g., the content of the ERO of RSVP) and record path (e.g., the
                  content of the RRO of RSVP) of a detour LSP. Each detour has two
                  different sets of hops in this table: a set for the explicit path
                  hops and another set for the record path hops, pointed by
                  mplsFrrDetourExplicitPathIndex and the mplsFrrDetourRecordPathIndex,
                  respectively, from the mplsFrrDetourTable.

                  This table is optional and is only required in case mplsFrrPLRTable
                  is supported.

               4.5. mplsFrrInSegTable

                  The mplsFrrInSegTable contains a description of the incoming MPLS
                  segment for a particular detour LSP and their associated parameters.
                  The table also includes objects

   ED NOTE: Need to measure the performance.

                  This table is optional and not required when LSR-MIB [4] is
                  supported or mplsFrrPLRTable is not supported.

               4.6. mplsFrrOutSegTable

               Cetin, et. al.                                                [Page 3] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                  The mplsFrrOutSegTable contains a add description of the outgoing MPLS
                  segment for a particular detour LSP and their associated parameters.
                  The table also includes objects to measure the performance.

                  This table is optional Facility-based FRR tables
   and not required when LSR-MIB [4] is
                  supported or mplsFrrPLRTable is not supported.

               5. explanation of new MIB structure.

6. MPLS Fast Reroute MIB Definitions

MPLS-FRR-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE,
      Integer32, Unsigned32, Counter32, Counter64
      NOTIFICATION-TYPE, experimental
         FROM SNMPv2-SMI
      MODULE-COMPLIANCE, OBJECT-GROUP OBJECT-GROUP, NOTIFICATION-GROUP
         FROM SNMPv2-CONF
      TEXTUAL-CONVENTION, TruthValue, RowStatus, RowPointer,
                     DisplayString,
      TimeStamp
         FROM SNMPv2-TC
                     InterfaceIndex
      InterfaceIndex, InterfaceIndexOrZero
         FROM IF-MIB
                     mplsMIB,
      MplsTunnelIndex, MplsTunnelInstanceIndex,
      MplsTunnelAffinity, MplsLsrIdentifier, MplsLabel MplsLsrIdentifier
         FROM MPLS-TC-MIB
                     InetAddressIPv4, InetAddressIPv6
      InetAddressType, InetAddress
         FROM INET-ADDRESS-MIB
      ;

   mplsFrrMIB MODULE-IDENTITY
      LAST-UPDATED
                        "200203221200Z"
         "200211011200Z" -- 22 March 01 November 2002 12:00:00 GMT
      ORGANIZATION
         "Multiprotocol Label Switching (MPLS) Working Group"
      CONTACT-INFO
           "
                    Riza Cetin
            Postal: Alcatel
                    Francis Wellesplein 1
                    B-2018 Antwerp, Belgium
            Tel:    +32-3-2404735
            Email:  riza.cetin@alcatel.be

                    Stefaan De Cnodder
            Postal: Alcatel
                    Francis Wellesplein 1
                    B-2018 Antwerp, Belgium
            Tel:    +32-3-2408515
            Email:  Stefaan.de_cnodder@alcatel.be

                    Der-Hwa Gan
            Postal: Juniper Networks, Inc.
                    1194 N. Mathilda Avenue

               Cetin, et. al.                                                [Page 4] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
                    Sunnyvale, CA 94089
            Tel:    +1-408-745-20-74
            Email:  dhg@juniper.net

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

           "
      DESCRIPTION
        "This MIB module contains managed object definitions for MPLS
         Fast Reroute (FRR) as defined in:
                            1. Pan, in:Pan, P., Gan, D., Swallow, G.,
         Vasseur, J.Ph., Cooper, D., Atlas, A., Jork, M., Fast Reroute
         Techniques in RSVP-TE, draft-ietf-mpls-rsvp-lsp-fastreroute-00.txt, draft-ietf-mpls-rsvp-lsp-fastreroute-
         00.txt, January 2002" 2002."

   -- Revision history.
      REVISION
           "200211011200Z" -- 01 November 2002 12:00:00 GMT
      DESCRIPTION
           "Added support for Facility-based FRR.

            Removed tables that were redundant with
              other MPLS MIBs.

            Assigned experimental.120."

      REVISION
           "200203221200Z" -- 18 April 2002 12:00:00 GMT
      DESCRIPTION
           "Initial draft version."

      ::= { mplsMIB xxx experimental 120 } ū- -- to be assigned. assigned under mplsMIB.

   -- MPLS Fast Reroute textual-conventions.

   MplsFrrDetourIndex ::= TEXTUAL-CONVENTION
      STATUS        current
      DESCRIPTION
        "Index into mplsFrrDetourTable."
      SYNTAX  Integer32 (1..65535)

                  MplsFrrPathIndex ::= TEXTUAL-CONVENTION
                     STATUS        current
                     DESCRIPTION
                       "A unique identifier used to identify a specific path (list of
                       hops) used by a detour LSP."
                     SYNTAX  Unsigned32

                  MplsFrrPathIndexorZero ::= TEXTUAL-CONVENTION
                     STATUS        current
                     DESCRIPTION
                       "A unique identifier used to identify a specific path (list of
                       hops) used by a detour LSP. If it is set to zero, then there is
                       no path available."
                     SYNTAX  Unsigned32

                  MplsFrrHopIndex ::= TEXTUAL-CONVENTION

               Cetin, et. al.                                                [Page 5] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                     STATUS        current
                     DESCRIPTION
                       "A unique identifier used to identify a specific hop within a
                       path (list of hops) used by a detour LSP."
                     SYNTAX  Unsigned32

   -- End of MPLS Fast Reroute textual-conventions.

   -- Top level components of this MIB.

                  -- tables, scalars
   mplsFrrNotif         OBJECT IDENTIFIER ::= { mplsFrrMIB 0 }
   mplsFrrScalars       OBJECT IDENTIFIER ::= { mplsFrrMIB 1 }
   mplsFrrObjects       OBJECT IDENTIFIER ::= { mplsFrrMIB 2 }
   -- objects that work for either method of FRR
   mplsFrrGeneralObjects OBJECT IDENTIFIER ::= { mplsFrrObjects 1 }

   -- objects defined for 1-to-1 style FRR
   mplsFrr1to1Objects   OBJECT IDENTIFIER ::= { mplsFrrObjects 2 }

   -- objects defined for Facility Backup style FRR
   mplsFrrFacObjects    OBJECT IDENTIFIER ::= { mplsFrrObjects 3 }

   --
   -- Ed Note: need to define two conformance statements: one for
   -- one for 1-2-1 and for Facility.  Might need separate ones for
   -- read-only vs. read-write too.  There is currently just a single
   -- conformance statement due to time constraints.
   --
   mplsFrrConformance   OBJECT IDENTIFIER ::= { mplsFrrMIB 3 }

   -- MPLS Fast Reroute scalars.

   mplsFrrDetourIncoming OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
        "The number of detour LSPs entering the device." device if
        mplsFrrConstProtectionMethod is set to oneToOneBackup(0), or
        tunnels if mplsFrrConstProtectionMethod is set to
        facilityBackup(1)."
      DEFVAL { 0 }
      ::= { mplsFrrScalars 1 }

   mplsFrrDetourOutgoing OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
        "The number of detour LSPs leaving the device." device if
        mplsFrrConstProtectionMethod is set to oneToOneBackup(0), or
        tunnels being backed up if mplsFrrConstProtectionMethod is set
        to facilityBackup(1)."
      DEFVAL { 0 }
      ::= { mplsFrrScalars 2 }

   mplsFrrDetourOriginating OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
        "The number of detour LSPs originated by at the device." device if
        mplsFrrConstProtectionMethod is set to oneToOneBackup(0), or
        tunnels being backed up if mplsFrrConstProtectionMethod is set
        to facilityBackup(1)."
      DEFVAL { 0 }
      ::= { mplsFrrScalars 3 }

   mplsFrrSwitchover OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
        "The number of main tunnel instances that are switched over to their
        corresponding detour LSP. LSP if mplsFrrConstProtectionMethod is set
        to oneToOneBackup(0), or tunnels being backed up if
        mplsFrrConstProtectionMethod is set to facilityBackup(1).
         This object is only meaningful when this router behaves as PLR."
      DEFVAL { 0 }
      ::= { mplsFrrScalars 4 }

               Cetin, et. al.                                                [Page 6] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                  -- End of MPLS Fast Reroute scalars.

                  -- MPLS Fast Reroute Constraints table

                  mplsFrrConstTable

   mplsFrrConfIfs OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsFrrConstEntry        Unsigned32
      MAX-ACCESS    not-accessible    read-only
      STATUS        current
      DESCRIPTION
                       "This table shows detour setup constraints."
        "Indicates the number of interfaces configured for protection by
         the FRR feature."
      DEFVAL { 0 }
      ::= { mplsFrrObjects 1 mplsFrrScalars 5 }

                  mplsFrrConstEntry

   mplsFrrActProtectedIfs OBJECT-TYPE
      SYNTAX        MplsFrrConstEntry        Unsigned32
      MAX-ACCESS    not-accessible    read-only
      STATUS        current
      DESCRIPTION
                       "An entry in this table represents detour LSP setup constraints
                       for a tunnel instance to be
        "Indicates the number of interfaces currently being protected by detour LSPs. An entry
                       in
        the FRR feature if mplsFrrConstProtectionMethod is set to
        facilityBackup(1), otherwise this table can only be created by a network administrator
                       for tunnel instances that require fast-reroute."
                     INDEX value should return 0."
      DEFVAL {
                        mplsFrrConstTunnelIndex,
                        mplsFrrConstTunnelInstance
                           }
                     ::= { mplsFrrConstTable 1 0 }

                  MplsFrrConstEntry
      ::= SEQUENCE {
                        mplsFrrConstTunnelIndex       MplsTunnelIndex,
                        mplsFrrConstTunnelInstance    MplsTunnelInstanceIndex,
                        mplsFrrConstProtectionMethod  INTEGER,
                        mplsFrrConstProtectionType    INTEGER,
                        mplsFrrConstSetupPrio         INTEGER,
                        mplsFrrConstHoldingPrio       INTEGER,
                        mplsFrrConstInclAnyAffinity   MplsTunnelAffinity,
                        mplsFrrConstInclAllAffinity   MplsTunnelAffinity,
                        mplsFrrConstExclAllAffinity   MplsTunnelAffinity,
                        mplsFrrConstHopLimit          INTEGER,
                        mplsFrrConstBandwidth         Integer32,
                        mplsFrrConstRowStatus         RowStatus mplsFrrScalars 6 }

                  mplsFrrConstTunnelIndex

   mplsFrrConfProtectedTuns OBJECT-TYPE
      SYNTAX        MplsTunnelIndex        Unsigned32
      MAX-ACCESS    not-accessible    read-only
      STATUS        current
      DESCRIPTION
                       "Uniquely identifies a tunnel for which fast reroute
        "Indicates the number of tunnels configured to protect
        facilities on this LSR using the FRR feature if
        mplsFrrConstProtectionMethod is
                       requested." set to facilityBackup(1),
        otherwise this value should return 0."
      DEFVAL { 0 }
      ::= { mplsFrrConstEntry 1 mplsFrrScalars 7 }

                  mplsFrrConstTunnelInstance

   mplsFrrActProtectedTuns OBJECT-TYPE
      SYNTAX        MplsTunnelInstanceIndex

               Cetin, et. al.                                                [Page 7] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002        Unsigned32
      MAX-ACCESS    not-accessible    read-only
      STATUS        current
      DESCRIPTION
                       "Uniquely identifies an instance
        "Indicates the number of by-pass tunnels configured to protect
        facilities on this tunnel for which fast
                       reroute LSR using the FRR feature if
        mplsFrrConstProtectionMethod is requested." set to facilityBackup(1),
        otherwise this value should return 0."
      DEFVAL { 0 }
      ::= { mplsFrrConstEntry 2 mplsFrrScalars 8 }

                  mplsFrrConstProtectionMethod

   mplsFrrActivelyProtectedLSPs OBJECT-TYPE
      SYNTAX        INTEGER { oneToOneBackup(0),
                                             facilityBackup(1),
                                             oneToOneAndFacilityBackup(2)
                                           }        Unsigned32
      MAX-ACCESS    read-create    read-only
      STATUS        current
      DESCRIPTION
        "Indicates which protection method the number of LSPs currently protected by the FRR
        feature if mplsFrrConstProtectionMethod is set to be used for fast-
                       reroute."
        oneToOneBackup(0), otherwise this value should return 0."
      DEFVAL { oneToOneAndFacilityBackup 0 }
      ::= { mplsFrrConstEntry 3 mplsFrrScalars 9 }

                  mplsFrrConstProtectionType

   mplsFrrConstProtectionMethod OBJECT-TYPE
      SYNTAX        INTEGER { linkProtection(0),
                                             nodeProtection(1) oneToOneBackup(0),
                              facilityBackup(1)
                            }
      MAX-ACCESS    read-create    read-write
      STATUS        current
      DESCRIPTION
        "Indicates type which protection method is to be used for fast
         reroute. Some devices may require a reboot of their routing
         processors if this variable is changed. Please consult the resource protection."
                     DEFVAL { nodeProtection }
         device's agent capability statement for more details."
      ::= { mplsFrrConstEntry 4 mplsFrrScalars 10 }

                  mplsFrrConstSetupPrio

   mplsFrrNotifsEnabled OBJECT-TYPE
       SYNTAX        INTEGER (0..7)            TruthValue
       MAX-ACCESS    read-create        read-write
       STATUS            current
       DESCRIPTION
                       "Indicates the setup priority of detour LSP."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001"
           "Enables or disables FRR notifications defined in this MIB
           module. Notifications are disabled by default."
       DEFVAL { 7 false }
   ::= { mplsFrrConstEntry 5 mplsFrrScalars 11 }

                  mplsFrrConstHoldingPrio

   mplsFrrLogTableMaxEntries OBJECT-TYPE
       SYNTAX        INTEGER (0..7)            Unsigned32
       MAX-ACCESS    read-create        read-write
       STATUS            current
       DESCRIPTION
           "Indicates the holding priority for detour LSP."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001"
                     DEFVAL { 0 }

               Cetin, et. al.                                                [Page 8] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                     ::= { mplsFrrConstEntry 6 }

                  mplsFrrConstInclAnyAffinity OBJECT-TYPE
                     SYNTAX        MplsTunnelAffinity
                     MAX-ACCESS    read-create
                     STATUS        current
                     DESCRIPTION
                       "A link satisfies the include-any constraint if and only if maximum number of entries allowed in the
                       constraint FRR
           Log table. Agents receiving SETs for values that cannot be
           used must return an inconsistent value error. If a manager
           sets this value to 0, this indicates that no logging should
           take place.  If this value is zero, or returned as 0, this indicates
           that no additional log entries will be added to the link and current
           table, although agents may wish to not delete existing
           entries. This implies that mplsFrrLogTableCurrEntries that
           when mplsFrrLogTableCurrEntries has exceeded the constraint have a
                       resource class in common."
                     REFERENCE
                       "1. RSVP-TE: Extensions value of
           this variable, that logging entries may not continue to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001." be
           added to the table, although existing ones may remain."
       DEFVAL { 0 }
   ::= { mplsFrrConstEntry 7 mplsFrrScalars 12 }

                  mplsFrrConstInclAllAffinity

   mplsFrrLogTableCurrEntries OBJECT-TYPE
       SYNTAX        MplsTunnelAffinity            Counter32
       MAX-ACCESS    read-create        read-only
       STATUS            current
       DESCRIPTION
                       "A link satisfies the include-all constraint if and only if
           "Indicates the
                       link contains all current number of the administrative groups specified entries in the
                       constraint."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001."
                     DEFVAL { 0 } FRR log
           table."
   ::= { mplsFrrConstEntry 8 mplsFrrScalars 13 }

                  mplsFrrConstExclAllAffinity

mplsFrrNotifMaxRate OBJECT-TYPE
   SYNTAX        MplsTunnelAffinity       Unsigned32
   MAX-ACCESS    read-create   read-write
   STATUS       current
   DESCRIPTION
                       "A link satisfies the exclude-all constraint if and only if
        "This variable indicates the
                       link contains none number of milliseconds
          that must elapse between notification emissions. If
          events occur more rapidly, the administrative groups specified in
                       the constraint."
                     REFERENCE
                       "1. RSVP-TE: Extensions implementation may
          simply fail to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001." emit these notifications during that
          period, or may queue them until an appropriate
          time. A value of 0 means no minimum elapsed period
          is specified."
   DEFVAL       { 0 }
   ::= { mplsFrrConstEntry 9 }

                  mplsFrrConstHopLimit OBJECT-TYPE
                     SYNTAX        INTEGER (1..255)
                     MAX-ACCESS    read-create
                     STATUS        current
                     DESCRIPTION
                       "The maximum number of hops that the detour LSP may traverse."
                     DEFVAL { 32 }
                  ::= { mplsFrrConstEntry 10 }

               Cetin, et. al.                                                [Page 9] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                  mplsFrrConstBandwidth OBJECT-TYPE
                     SYNTAX        Integer32
                     MAX-ACCESS    read-create
                     STATUS        current
                     DESCRIPTION
                       "This variable represents the bandwidth for detour LSPs of this
                       tunnel, in units of thousands of bits per second (Kbps)."
                     DEFVAL { 0 }
                     ::= { mplsFrrConstEntry 11 }

                  mplsFrrConstRowStatus OBJECT-TYPE
                     SYNTAX        RowStatus
                     MAX-ACCESS    read-create
                     STATUS        current
                     DESCRIPTION
                       "This object is used to create, modify, and/or delete a row in
                       this table."
                     ::= { mplsFrrConstEntry 12 mplsFrrScalars 14 }

   -- End
   --  General FRR Table Section
   --
   --  These tables apply to both types of Fast Reroute Constraints table FRR
   --  and should be implemented by all LSRs supporting
   --  FRR.
   --

   -- MPLS Fast Reroute Point of Local Repair Constraints table

                  mplsFrrPLRTable
   mplsFrrConstTable OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsFrrPLREntry MplsFrrConstEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
        "This table shows the lists of PLRs that initiated detour LSPs
                       which affect this node." setup constraints."
      ::= { mplsFrrObjects 2  mplsFrrGeneralObjects 1 }

                  mplsFrrPLREntry

   mplsFrrConstEntry OBJECT-TYPE
      SYNTAX        MplsFrrPLREntry        MplsFrrConstEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
        "An entry in this table represents detour LSP or Tunnel setup
        constraints for a PLR together with its tunnel instance to be protected by detour instance. An entry LSPs
        or a tunnel. Agents must allow entries in this table is only to be
        created by an
                       SNMP agent as instructed by an MPLS signaling protocol." only for tunnel instances that require fast-reroute.
        Entries indexed with mplsFrrConstIfIndex set to 0 apply to all
        interfaces on this device for which the FRR feature can operate
        on."
      INDEX {
                        mplsFrrPLRTunnelIndex,
                        mplsFrrPLRTunnelInstance,
                        mplsFrrPLRTunnelIngressLSRId,
                        mplsFrrPLRTunnelEgressLSRId,
                        mplsFrrPLRId,
                        mplsFrrPLRDetourInstance mplsFrrConstIfIndex,
              mplsFrrConstTunnelIndex,
              mplsFrrConstTunnelInstance
            }
      ::= { mplsFrrPLRTable mplsFrrConstTable 1 }

                  MplsFrrPLREntry

   MplsFrrConstEntry ::= SEQUENCE {
                        mplsFrrPLRTunnelIndex
         mplsFrrConstIfIndex           InterfaceIndexOrZero,
         mplsFrrConstTunnelIndex       MplsTunnelIndex,
                        mplsFrrPLRTunnelInstance
         mplsFrrConstTunnelInstance    MplsTunnelInstanceIndex,
                        mplsFrrPLRTunnelIngressLSRId     MplsLsrIdentifier,

               Cetin, et. al.                                               [Page 10] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                        mplsFrrPLRTunnelEgressLSRId      MplsLsrIdentifier,
                        mplsFrrPLRId                     MplsLsrIdentifier,
                        mplsFrrPLRDetourInstance         Integer32,
                        mplsFrrPLRSenderAddrType         INTEGER,
                        mplsFrrPLRSenderIpv4Addr         InetAddressIPv4,
                        mplsFrrPLRSenderIpv6Addr         InetAddressIPv6,
                        mplsFrrPLRAvoidNodeAddrType
         mplsFrrConstProtectionType    INTEGER,
                        mplsFrrPLRAvoidNodeIpv4Addr      InetAddressIPv4,
                        mplsFrrPLRAvoidNodeIpv6Addr      InetAddressIPv6,
                        mplsFrrPLRDetourIndex            MplsFrrDetourIndex
         mplsFrrConstSetupPrio         Unsigned32,
         mplsFrrConstHoldingPrio       Unsigned32,
         mplsFrrConstInclAnyAffinity   MplsTunnelAffinity,
         mplsFrrConstInclAllAffinity   MplsTunnelAffinity,
         mplsFrrConstExclAllAffinity   MplsTunnelAffinity,
         mplsFrrConstHopLimit          Unsigned32,
         mplsFrrConstBandwidth         Integer32,
         mplsFrrConstRowStatus         RowStatus
   }

                  mplsFrrPLRTunnelIndex

   mplsFrrConstIfIndex  OBJECT-TYPE
      SYNTAX        MplsTunnelIndex        InterfaceIndexOrZero
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
                       "This value represents
        "Uniquely identifies an identifier of a tunnel that interface for which fast reroute is
                       protected by
        configured. Tabular entries indexed with a 0 value apply to all
        interfaces on this PLR." device for which the FRR feature can operate
        on."
      ::= { mplsFrrPLREntry mplsFrrConstEntry 1 }

                  mplsFrrPLRTunnelInstance

   mplsFrrConstTunnelIndex OBJECT-TYPE
      SYNTAX        MplsTunnelInstanceIndex        MplsTunnelIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
        "Uniquely identifies an instance of a tunnel that for which fast reroute is protected
                       by this PLR."
        requested."
      ::= { mplsFrrPLREntry mplsFrrConstEntry 2 }

                  mplsFrrPLRTunnelIngressLSRId

   mplsFrrConstTunnelInstance OBJECT-TYPE
      SYNTAX        MplsLsrIdentifier        MplsTunnelInstanceIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
                       "This value represents the LSR initiating the
        "Uniquely identifies an instance of this tunnel that for which fast
        reroute is
                       protected by this PLR." requested."
      ::= { mplsFrrPLREntry mplsFrrConstEntry 3 }

                  mplsFrrPLRTunnelEgressLSRId

   mplsFrrConstProtectionType OBJECT-TYPE
      SYNTAX        MplsLsrIdentifier        INTEGER { linkProtection(0),
                              nodeProtection(1)
                            }
      MAX-ACCESS    not-accessible    read-create
      STATUS        current
      DESCRIPTION
                       "This value represents the egress LSR
        "Indicates type of the tunnel that is
                       protected by this PLR." resource protection."
      DEFVAL { nodeProtection }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 4 }

                  mplsFrrPLRId

   mplsFrrConstSetupPrio OBJECT-TYPE
      SYNTAX        MplsLsrIdentifier        Unsigned32 (0..7)
      MAX-ACCESS    not-accessible    read-create
      STATUS        current
      DESCRIPTION

               Cetin, et. al.                                               [Page 11] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                       "This value represents
        "Indicates the PLR that has initiated a setup priority of detour LSP LSP."
      REFERENCE
        "1. RSVP-TE: Extensions to protect a tunnel instance." RSVP for LSP Tunnels, Awduche et al,
        RFC 3209, December 2001"
      DEFVAL { 7 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 5 }

                  mplsFrrPLRDetourInstance

   mplsFrrConstHoldingPrio OBJECT-TYPE
      SYNTAX        Integer32        Unsigned32 (0..7)
      MAX-ACCESS    not-accessible    read-create
      STATUS        current
      DESCRIPTION
                       "This value represents an instance of a
        "Indicates the holding priority for detour initiated by
                       this PLR." LSP."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
        RFC 3209, December 2001"
      DEFVAL { 0 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 6 }

                  mplsFrrPLRSenderAddrType

   mplsFrrConstInclAnyAffinity OBJECT-TYPE
      SYNTAX        INTEGER {
                                        ipV4(1),
                                        ipV6(2)
                                   }        MplsTunnelAffinity
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "Denotes
        "A link satisfies the address type of this detour instance's sender
                       address." include-any constraint if and only if the
        constraint is zero, or the link and the constraint have a
        resource class in common."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
        RFC 3209, December 2001."
      DEFVAL { ipV4 0 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 7 }

                  mplsFrrPLRSenderIpv4Addr

   mplsFrrConstInclAllAffinity OBJECT-TYPE
      SYNTAX        InetAddressIPv4        MplsTunnelAffinity
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "If mplsFrrPLRSenderAddrType is set to ipV4(1), then this value
                       will contain
        "A link satisfies the IPv4 address of this detour instance's sender.
                       This object is otherwise insignificant include-all constraint if and should contain a
                       value only if the
        link contains all of 0." the administrative groups specified in the
        constraint."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
        RFC 3209, December 2001."
      DEFVAL { 0 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 8 }

                  mplsFrrPLRSenderIpv6Addr

   mplsFrrConstExclAllAffinity OBJECT-TYPE
      SYNTAX        InetAddressIPv6        MplsTunnelAffinity
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "If the mplsFrrPLRSenderAddrType is set to ipV6(2), then this
                       variable contains
        "A link satisfies the IPv6 address of this detour instance's
                       sender.  This object is otherwise insignificant exclude-all constraint if and should
                       contain a value only if the
        link contains none of 0." the administrative groups specified in the
        constraint."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
        RFC 3209, December 2001."
      DEFVAL { 0 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 9 }

                  mplsFrrPLRAvoidNodeAddrType

   mplsFrrConstHopLimit OBJECT-TYPE
      SYNTAX        INTEGER {
                                        ipV4(1),
                                        ipV6(2)
                                   }

               Cetin, et. al.                                               [Page 12] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002        Unsigned32 (1..255)
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "Denotes the address type
        "The maximum number of the node hops that this PLR tries to
                       avoid." the detour LSP may traverse."
      REFERENCE
        "Pan, P., Gan, D., Swallow, G., Vasseur, J.Ph., Cooper, D.,
        Atlas, A., Jork, M., Fast Reroute Techniques in RSVP-TE, draft-
        ietf-mpls-rsvp-lsp-fastreroute-00.txt, January 2002. Work in
        progress."
      DEFVAL { ipV4 32 }
   ::= { mplsFrrPLREntry mplsFrrConstEntry 10 }

                  mplsFrrPLRAvoidNodeIpv4Addr

   mplsFrrConstBandwidth OBJECT-TYPE
      SYNTAX        InetAddressIPv4        Integer32
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "If mplsFrrPLRAvoidNodeAddrType is set to ipV4(1), then this
                       value will contain
        "This variable represents the IPv4 address bandwidth for detour LSPs of the avoid node. This
                       object is otherwise insignificant and should contain a value this
        tunnel, in units of
                       0." thousands of bits per second (Kbps)."
      DEFVAL { 0 }
      ::= { mplsFrrPLREntry mplsFrrConstEntry 11 }

                  mplsFrrPLRAvoidNodeIpv6Addr

   mplsFrrConstRowStatus OBJECT-TYPE
      SYNTAX        InetAddressIPv6        RowStatus
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "If the mplsFrrPLRAvoidNodeAddrType is set to ipV6(2), then
                       this variable contains the IPv6 address of the avoid node.
                       This
        "This object is otherwise insignificant and should contain used to create, modify, and/or delete a
                       value of 0."
                     ::= { mplsFrrPLREntry 12 }

                  mplsFrrPLRDetourIndex OBJECT-TYPE
                     SYNTAX        MplsFrrDetourIndex
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "The index of the corresponding detour LSP row in the
                       mplsFrrDetourTable."
         this table."
      ::= { mplsFrrPLREntry 13 mplsFrrConstEntry 12 }

   -- End of MPLS Fast Reroute Point of Local Repair table

                  -- MPLS Fast Reroute Detour table.

                  mplsFrrDetourTable Log Table

   mplsFrrLogTable OBJECT-TYPE
       SYNTAX            SEQUENCE OF MplsFrrDetourEntry MplsFrrLogEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
                       "This
           "The fast reroute log table shows all detour LSPs together with their
                       characteristics." records fast reroute events such
            as protected links going up or down or the FRR feature
            kicking in."
   ::= { mplsFrrObjects 3 mplsFrrGeneralObjects 2 }

                  mplsFrrDetourEntry

   mplsFrrLogEntry OBJECT-TYPE

               Cetin, et. al.                                               [Page 13] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
       SYNTAX        MplsFrrDetourEntry            MplsFrrLogEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
           "An entry in this table represents a detour. An entry is created to describe one fast
            reroute event.  Entries in this table is are only created and
            destroyed by an SNMP the agent as instructed implementation. The maximum number
            of entries in this log is governed by an MPLS
                       signaling protocol. " the scalar."
       INDEX {
                        mplsFrrPLRTunnelIndex,
                        mplsFrrPLRTunnelInstance,
                        mplsFrrPLRTunnelIngressLSRId,
                        mplsFrrPLRTunnelEgressLSRId,
                        mplsFrrDetourIndex mplsFrrLogIndex }
   ::= { mplsFrrDetourTable mplsFrrLogTable 1 }

                  MplsFrrDetourEntry

   MplsFrrLogEntry ::= SEQUENCE {
                        mplsFrrDetourIndex              MplsFrrDetourIndex,
                        mplsFrrDetourTunnelName         DisplayString,
                        mplsFrrDetourRole               INTEGER,
                        mplsFrrDetourOperStatus         INTEGER,
                        mplsFrrDetourActive             TruthValue,
                        mplsFrrDetourMerging            INTEGER,
                        mplsFrrDetourMergedDetourIndex  MplsFrrDetourIndex,
                        mplsFrrDetourSetupPrio          INTEGER,
                        mplsFrrDetourHoldingPrio        INTEGER,
                        mplsFrrDetourInclAnyAffinity    MplsTunnelAffinity,
                        mplsFrrDetourInclAllAffinity    MplsTunnelAffinity,
                        mplsFrrDetourExclAllAffinity    MplsTunnelAffinity,
                        mplsFrrDetourHopLimit           INTEGER,
                        mplsFrrDetourSignallingProto    INTEGER,
                        mplsFrrDetourBandwidth          Integer32,
                        mplsFrrDetourExplicitPathIndex  MplsFrrPathIndex,
                        mplsFrrDetourRecordPathIndex    MplsFrrPathIndexorZero,
                        mplsFrrDetourRecordResvIndex    MplsFrrPathIndexorZero,
                        mplsFrrDetourXCPointer          RowPointer,
                        mplsFrrDetourPathChanges        Counter32,
                        mplsFrrDetourLastPathChange
       mplsFrrLogIndex                Unsigned32,
       mplsFrrLogEventTime            TimeStamp,
                        mplsFrrDetourCreationTime       TimeStamp
       mplsFrrLogInterface            InterfaceIndexOrZero,
       mplsFrrLogEventType            INTEGER,
       mplsFrrLogEventDuration        TimeTicks,
       mplsFrrLogEventReasonString    OCTET STRING
   }

                  mplsFrrDetourIndex

   mplsFrrLogIndex OBJECT-TYPE
       SYNTAX        MplsFrrDetourIndex            Unsigned32
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
           "Uniquely identifies this detour." a fast reroute event entry."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 1 }

                  mplsFrrDetourTunnelName

   mplsFrrLogEventTime OBJECT-TYPE
       SYNTAX        DisplayString            TimeStamp
       MAX-ACCESS        read-only
       STATUS            current

               Cetin, et. al.                                               [Page 14] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
       DESCRIPTION
                       "The canonical name assigned to
           "This object provides the tunnel that amount of time ticks since this detour is
                       protecting."
           event occured."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 2 }

                  mplsFrrDetourRole

   mplsFrrLogInterface OBJECT-TYPE
       SYNTAX        INTEGER { head(1), transit(2), tail(3) }            InterfaceIndexOrZero
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
           "This value signifies the role that object indicates which interface was affected by this detour entry
                       represents. This value MUST be set to head(1) at the PLR
                       originating the detour.
           FRR event. This value MUST may be set to transit(2) at
                       transit points along the detour. This value MUST be 0 if
           mplsFrrConstProtectionMethod is set to
                       tail(3) at the terminating point of the detour.

                       If detour is merged with another detour or with the protected
                       tunnel, then the Role is still considered as transit." oneToOneBackup(0)."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 3 }

                  mplsFrrDetourOperStatus

   mplsFrrLogEventType OBJECT-TYPE
       SYNTAX            INTEGER {
                                            -- ready to pass packets
                                               up(1),
                                               down(2),
                                            -- status cannot be determined
                                               unknown(3)
                             other(1),
                             protected(2),
                             unProtected(3)
                         }
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
                       "Indicates the actual operational status
           "This object describes what type of this detour. This
                       is only relevant when the mplsFrrDetourRole is head(1)." fast reroute event
           occured."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 4 }

                  mplsFrrDetourActive

   mplsFrrLogEventDuration OBJECT-TYPE
       SYNTAX        TruthValue            TimeTicks
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
                       "Indicates whether or not
           "This object describes the main LSP has switched over to duration of this detour LSP. This is only relevant when the
                       mplsFrrDetourRole is head(1)." event."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 5 }

                  mplsFrrDetourMerging

   mplsFrrLogEventReasonString OBJECT-TYPE
       SYNTAX        INTEGER { none(0),
                                             protectedTunnel(1),
                                             detour(2)
                                           }            OCTET STRING (SIZE(128))
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION

               Cetin, et. al.                                               [Page 15] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
           "This value represents whether or not this detour is merged.
                       This value MUST be set to none(0) if this detour is not merged.
                       This value MUST be set to protectedTunnel(1) if this detour is
                       merged with the protected tunnel. This value MUST be set to
                       detour(2) if this detour is merged with another detour
                       protecting object contains an implementation-specific explanation
           of the same tunnel." event."
   ::= { mplsFrrDetourEntry mplsFrrLogEntry 6 }

                  mplsFrrDetourMergedDetourIndex

   --
   -- One-to-One Specific Tables
   --
   -- Tables in this section pertain only to the 1-1
   -- style of FRR.
   --

   -- MPLS Fast Reroute Point of Local Repair table

   mplsFrrOne2OnePlrTable  OBJECT-TYPE
      SYNTAX        MplsFrrDetourIndex        SEQUENCE OF MplsFrrOne2OnePlrEntry
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
        "This value represents table shows the lists of PLRs that initiated detour entry with LSPs
        which affect this node."
      ::= { mplsFrr1to1Objects 1 }

   mplsFrrOne2OnePlrEntry  OBJECT-TYPE
      SYNTAX        MplsFrrOne2OnePlrEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
        "An entry in this table represents a PLR together with its
        detour
                       is merged. This object instance. An entry in this table is only valid when mplsFrrDetourMerging
                       is set to detour(2)." created by an
        SNMP agent as instructed by an MPLS signaling protocol."
      INDEX { mplsFrrOne2OnePlrTunIdIdx,     -- from MPLS-TE MIB
              mplsFrrOne2OnePlrTunInst,      -- mplsTunnelTable
              mplsFrrOne2OnePlrTunIngrLSRId, -- Tunnels must exist
              mplsFrrOne2OnePlrTunEgrLSRId,  -- a priori
              mplsFrrOne2OnePlrId,
              mplsFrrOne2OnePlrDetourInstance }
      ::= { mplsFrrDetourEntry 7 mplsFrrOne2OnePlrTable 1 }

   MplsFrrOne2OnePlrEntry ::= SEQUENCE {
         mplsFrrOne2OnePlrTunIdIdx       MplsTunnelIndex,
         mplsFrrOne2OnePlrTunInst        MplsTunnelInstanceIndex,
         mplsFrrOne2OnePlrTunIngrLSRId   MplsLsrIdentifier,
         mplsFrrOne2OnePlrTunEgrLSRId    MplsLsrIdentifier,
         mplsFrrOne2OnePlrId             MplsLsrIdentifier,
         mplsFrrOne2OnePlrDetourInstance MplsTunnelInstanceIndex,
         mplsFrrOne2OnePlrSenderAddrType InetAddressType,
         mplsFrrOne2OnePlrSenderAddr     InetAddress,
         mplsFrrOne2OnePlrAvoidNAddrType InetAddressType,
         mplsFrrOne2OnePlrAvoidNAddr     InetAddress,
         mplsFrrOne2OnePlrDetourIndex    MplsFrrDetourIndex
   }

                  mplsFrrDetourSetupPrio

   mplsFrrOne2OnePlrTunIdIdx OBJECT-TYPE
      SYNTAX        INTEGER (0..7)        MplsTunnelIndex
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "Indicates
        "Uniquely identifies a row from the setup priority of this detour."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001" mplsTunnelEntry."
      ::= { mplsFrrDetourEntry 8 mplsFrrOne2OnePlrEntry 1 }

                  mplsFrrDetourHoldingPrio

   mplsFrrOne2OnePlrTunInst OBJECT-TYPE
      SYNTAX        INTEGER (0..7)        MplsTunnelInstanceIndex
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "Indicates
        "Uniquely identifies an instance of a tunnel from
         the holding priority for this detour."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001" mplsTunnelEntry. "
      ::= { mplsFrrDetourEntry 9 mplsFrrOne2OnePlrEntry 2 }

                  mplsFrrDetourInclAnyAffinity

   mplsFrrOne2OnePlrTunIngrLSRId OBJECT-TYPE
      SYNTAX        MplsTunnelAffinity        MplsLsrIdentifier
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "A link satisfies the include-any constraint if and only if
        "The purpose of this object is to uniquely identity a
          tunnel within a network. When the
                       constraint MPLS signalling
          protocol is zero, or rsvp(2) this value SHOULD mimic the link and
          Extended Tunnel Id field in the constraint have a
                       resource class SESSION object.
          When the MPLS signalling protocol is crldp(3) this
          value SHOULD mimic the Ingress LSR Router ID field
          in common." the LSPID TLV object."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels,
          Awduche et al, RFC 3209, December 2001." 2001
         2. Constraint-Based LSP Setup using LDP, Jamoussi
          (Editor), RFC 3212, January 2002"
      ::= { mplsFrrDetourEntry 10 mplsFrrOne2OnePlrEntry 3 }

               Cetin, et. al.                                               [Page 16] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                  mplsFrrDetourInclAllAffinity

    mplsFrrOne2OnePlrTunEgrLSRId OBJECT-TYPE
      SYNTAX        MplsTunnelAffinity        MplsLsrIdentifier
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "A link satisfies the include-all constraint if and only if the
                       link contains all of the administrative groups specified in
        "Specifies the
                       constraint."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001." egress LSR ID."
      ::= { mplsFrrDetourEntry 11 mplsFrrOne2OnePlrEntry 4 }

                  mplsFrrDetourExclAllAffinity

   mplsFrrOne2OnePlrId OBJECT-TYPE
      SYNTAX        MplsTunnelAffinity        MplsLsrIdentifier
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "A link satisfies the exclude-all constraint if and only if the
                       link contains none of the administrative groups specified in
        "This value represents the constraint."
                     REFERENCE
                       "1. RSVP-TE: Extensions to RSVP for PLR that has initiated a detour LSP Tunnels, Awduche et al,
                       RFC 3209, December 2001."
        to protect a tunnel instance."
      ::= { mplsFrrDetourEntry 12 mplsFrrOne2OnePlrEntry 5 }

                  mplsFrrDetourHopLimit

   mplsFrrOne2OnePlrDetourInstance OBJECT-TYPE
      SYNTAX        INTEGER(1..255)        MplsTunnelInstanceIndex
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "The maximum number
        "This value represents an instance of hops that this a detour may traverse. This
                       is only relevant when the mplsFrrDetourRole is head(1)." initiated by this
        PLR."
      ::= { mplsFrrDetourEntry 13 mplsFrrOne2OnePlrEntry 6 }

                  mplsFrrDetourSignallingProto

   mplsFrrOne2OnePlrSenderAddrType OBJECT-TYPE
      SYNTAX       INTEGER {
                                       rsvp(1),
                                       other(2)
                                       }        InetAddressType
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION
                       "The signaling protocol, which was used to setup
        "Denotes the address type of this detour." detour instance'S sender
        address."
      DEFVAL        { rsvp ipv4 }
      ::= { mplsFrrDetourEntry 14 mplsFrrOne2OnePlrEntry 7 }

                  mplsFrrDetourBandwidth

   mplsFrrOne2OnePlrSenderAddr OBJECT-TYPE
      SYNTAX        Integer32        InetAddress
      MAX-ACCESS    read-only    read-create
      STATUS        current
      DESCRIPTION

               Cetin, et. al.                                               [Page 17] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                       "This variable represents the bandwidth for
        "If mplsFrrOne2OnePlrSenderAddrType is set to ipv4(1), then this detour, in
                       units value
        will contain the IPv4 address of thousands this detour instance's sender.
        This object is otherwise insignificant and should contain a
        value of bits per second (Kbps)." 0."
      ::= { mplsFrrDetourEntry 15 mplsFrrOne2OnePlrEntry 8 }

                  mplsFrrDetourExplicitPathIndex

   mplsFrrOne2OnePlrAvoidNAddrType OBJECT-TYPE
      SYNTAX        MplsFrrPathIndex        InetAddressType
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "Index into
        "Denotes the mplsFrrHopTable entry that specifies address type of the
                       explicit path hops for node that this detour." PLR tries to
        avoid."
      DEFVAL        { ipv4 }
      ::= { mplsFrrDetourEntry 16 mplsFrrOne2OnePlrEntry 9 }

                  mplsFrrDetourRecordPathIndex

   mplsFrrOne2OnePlrAvoidNAddr OBJECT-TYPE
      SYNTAX        MplsFrrPathIndexorZero        InetAddress
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "Index into the mplsFrrHopTable entry that specifies the actual
                       hops traversed by the packets going over this detour before
        "If mplsFrrOne2OnePlrAvoidNAddrType is set to ipv4(1), then this node.

                       For a detour LSP originated by
        value will contain the ingress node IPv4 address of the
                       protected LSP, this avoid node. This
        object is set to zero." otherwise insignificant and should contain a value of
        0."
      ::= { mplsFrrDetourEntry 17 mplsFrrOne2OnePlrEntry 10 }

                  mplsFrrDetourRecordResvIndex

   mplsFrrOne2OnePlrDetourIndex OBJECT-TYPE
      SYNTAX        MplsFrrPathIndexorZero        MplsFrrDetourIndex
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "Index into the mplsFrrHopTable entry that specifies the actual
                       hops that will be traversed by
        "The index of the packets going over this
                       detour after this node.

                       For a corresponding detour LSP terminated at the egress node of the protected
                       LSP, i.e. in the mplsFrrDetourRole is set to tail(3), this object
                       is set to zero."
        mplsFrrDetourTable."
   ::= { mplsFrrDetourEntry 18 mplsFrrOne2OnePlrEntry 11 }

                  mplsFrrDetourXCPointer

   -- MPLS One-To-One Fast Reroute Detour table.

   mplsFrrDetourTable OBJECT-TYPE
      SYNTAX        RowPointer        SEQUENCE OF MplsFrrDetourEntry
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
        "This variable points to a row in the mplsXCTable. This table
                       identifies the segments that compose this detour, their
                       characteristics, and relationships to each other.

                       In case multiple detours are merged with each other, then they
                       form a multi-point to point cross connection and each shows all detour
                       points to a branch of it.

               Cetin, et. al.                                               [Page 18] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                       This object is optional and it is not required when
                       mplsFrrInSegTable and mplsFrrOutSegTable are supported."
                     REFERENCE
                       "Srinivasan, C., Viswanathan, A., and T. Nadeau, MPLS Label
                       Switch Router Management Information Base, Internet Draft
                       <draft-ietf-mpls-lsr-mib-08.txt>, December 2001." LSPs together with their
        characteristics."
      ::= { mplsFrrDetourEntry 19 mplsFrr1to1Objects 2 }

                  mplsFrrDetourPathChanges

   mplsFrrDetourEntry OBJECT-TYPE
      SYNTAX        Counter32        MplsFrrDetourEntry
      MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Specifies the number of times the path has changed for this
                       detour."
                     ::= { mplsFrrDetourEntry 20 }

                  mplsFrrDetourLastPathChange OBJECT-TYPE
                     SYNTAX        TimeStamp
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Specifies the value of SysUpTime when the last path change for
                       this detour occurred."
                     ::= { mplsFrrDetourEntry 21 }

                  mplsFrrDetourCreationTime OBJECT-TYPE
                     SYNTAX        TimeStamp
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Specifies the value of SysUpTime when the detour came into
                       existence."
                     ::= { mplsFrrDetourEntry 22 }

                  -- End of Fast Reroute Detour table

                  -- MPLS Fast Reroute Hop table

                  mplsFrrHopTable  OBJECT-TYPE
                     SYNTAX        SEQUENCE OF MplsFrrHopEntry
                     MAX-ACCESS    not-accessible
                     STATUS        current
                     DESCRIPTION
                       "The mplsFrrHopTable is used to indicate the hops of a detour
                       route (explicit and record). Each detour has three different
                       sets of hops in this table: a set for the explicit route path
                       and another two sets for the record path hops, pointed by
                       mplsFrrDetourExplicitPathIndex, mplsFrrDetourRecordPathIndex
                       and mplsFrrDetourRecordResvIndex, respectively, from the
                       mplsFrrDetourTable."
                     ::= { mplsFrrObjects 4 }

               Cetin, et. al.                                               [Page 19] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                  mplsFrrHopEntry  OBJECT-TYPE
                     SYNTAX        MplsFrrHopEntry
                     MAX-ACCESS    not-accessible    not-accessible
      STATUS        current
      DESCRIPTION
        "An entry in this table represents a detour explicit or record
                       path hop. detour. An entry in this
        table is only created by an SNMP agent as instructed by an MPLS
        signaling protocol." protocol. "
      INDEX { mplsFrrHopListIndex, mplsFrrHopIndex
              mplsFrrOne2OnePlrTunIdIdx,     -- from MPLS-TE MIB
              mplsFrrOne2OnePlrTunInst,      -- mplsTunnelTable
              mplsFrrOne2OnePlrTunIngrLSRId, -- Tunnels must exist
              mplsFrrOne2OnePlrTunEgrLSRId,  -- a priori
              mplsFrrDetourIndexIndex
         }
      ::= { mplsFrrHopTable mplsFrrDetourTable 1 }

                  MplsFrrHopEntry

   MplsFrrDetourEntry ::= SEQUENCE {
                        mplsFrrHopListIndex          MplsFrrPathIndex,
                        mplsFrrHopIndex              MplsFrrHopIndex,
                        mplsFrrHopAddrType
         mplsFrrDetourIndexIndex         MplsFrrDetourIndex,
         mplsFrrDetourActive             TruthValue,
         mplsFrrDetourMerging            INTEGER,
                        mplsFrrHopIpv4Addr           InetAddressIPv4,
                        mplsFrrHopIpv4PrefixLen      Unsigned32,
                        mplsFrrHopIpv6Addr           InetAddressIPv6,
                        mplsFrrHopIpv6PrefixLen      Unsigned32,
                        mplsFrrHopType               INTEGER
         mplsFrrDetourMergedDetourIndex  MplsFrrDetourIndex,
         mplsFrrDetourCreationTime       TimeStamp
   }

                  mplsFrrHopListIndex

   mplsFrrDetourIndexIndex OBJECT-TYPE
      SYNTAX        MplsFrrPathIndex        MplsFrrDetourIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
                       "Primary index into
        "Uniquely identifies this table identifying a particular
                       explicit or record path hop list." detour."
      ::= { mplsFrrHopEntry mplsFrrDetourEntry 1 }

                  mplsFrrHopIndex

   mplsFrrDetourActive OBJECT-TYPE
      SYNTAX        MplsFrrHopIndex        TruthValue
      MAX-ACCESS    not-accessible    read-only
      STATUS        current
      DESCRIPTION
                       "Secondary index into
        "Indicates whether or not the main LSP has switched over to this table identifying
        detour LSP. This is only relevant when the particular
                       hop." mplsFrrDetourRole is
        head(1)."
      ::= { mplsFrrHopEntry mplsFrrDetourEntry 2 }

                  mplsFrrHopAddrType

   mplsFrrDetourMerging OBJECT-TYPE
      SYNTAX        INTEGER {
                                        ipV4(1),
                                        ipV6(2) none(0),
                              protectedTunnel(1),
                              detour(2)
                            }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "Denotes the address type of
        "This value represents whether or not this hop."
                     DEFVAL        { ipV4 }
                     ::= { mplsFrrHopEntry 3 }

                  mplsFrrHopIpv4Addr OBJECT-TYPE

               Cetin, et. al.                                               [Page 20] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                     SYNTAX        InetAddressIPv4
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "If mplsFrrHopAddrType detour is merged.

        This value MUST be set to ipV4(1), then none(0) if this detour is not merged.
        This value will
                       contain the IPv4 address of MUST be set to protectedTunnel(1) if this hop. This object detour is otherwise
                       insignificant and should contain a value of 0."
                     ::= { mplsFrrHopEntry 4 }

                  mplsFrrHopIpv4PrefixLen OBJECT-TYPE
                     SYNTAX        Unsigned32 (0..32)
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "If mplsFrrHopAddrType is set to ipV4(1), this value will
                       contain
        merged with the prefix length for this hop's IPv4 address. protected tunnel. This
                       object is otherwise insignificant and should contain a value of
                       0."
                     ::= { mplsFrrHopEntry 5 }

                  mplsFrrHopIpv6Addr OBJECT-TYPE
                     SYNTAX        InetAddressIPv6
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "If the mplsFrrHopAddrType is MUST be set to ipV6(2), then this
                       variable contains the IPv6 address of
        detour(2) if this hop.  This object detour is
                       otherwise insignificant and should contain a value of 0." merged with another detour
        protecting the same tunnel."
      ::= { mplsFrrHopEntry 6 mplsFrrDetourEntry 3 }

                  mplsFrrHopIpv6PrefixLen

   mplsFrrDetourMergedDetourIndex OBJECT-TYPE
      SYNTAX        Unsigned32 (0..128)        MplsFrrDetourIndex
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "If mplsFrrHopAddrType is set to ipV6(2), this
        "This value will
                       contain represents the prefix length for detour entry with which this hop's IPv6 address. detour
        is merged. This object is otherwise insignificant and should contain a value of
                       0." only valid when mplsFrrDetourMerging
        is set to detour(2)."
      ::= { mplsFrrHopEntry 7 mplsFrrDetourEntry 4 }

                  mplsFrrHopType

   mplsFrrDetourCreationTime OBJECT-TYPE
      SYNTAX        INTEGER {
                            strict(1),
                            loose(2)
                        }        TimeStamp
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
                       "Denotes whether this
        "Specifies the value of SysUpTime when the detour hop is routed in a strict or loose
                       fashion." came into
        existence."
      ::= { mplsFrrHopEntry 8 mplsFrrDetourEntry 5 }

               Cetin, et. al.                                               [Page 21] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

   -- End of MPLS Fast Reroute Hop table
   -- MPLS Fast Reroute in-segment table

                  mplsFrrInSegTable Facility-based FRR-specific Tables
   --

   mplsFrrFacRouteDBTable OBJECT-TYPE
       SYNTAX            SEQUENCE OF MplsFrrInSegEntry MplsFrrFacRouteDBEntry
       MAX-ACCESS        not-accessible
       STATUS            current
       DESCRIPTION
                       "This table shows all detour LSPs together with
           "The mplsFrrDBTable provides information about the in-segment
                       data."
                     ::= { mplsFrrObjects 5 }

                  mplsFrrInSegEntry OBJECT-TYPE
                     SYNTAX        MplsFrrInSegEntry
                     MAX-ACCESS    not-accessible
                     STATUS        current
                     DESCRIPTION
                       "An fast
           reroute database.  Each entry in this table represents belongs to an in-segment of a detour
                       LSP. There will be one entry in interface,
           protecting backup tunnel and protected tunnel. MPLS
           interfaces defined on this table for each entry in node are protected by backup
           tunnels and are indexed by mplsInterfaceConfIndex. Backup
           tunnels defined to protect the mplsFrrDetourTable where tunnels traversing an
           interface, and are indexed by mplsTunnelIndex. Note that the mplsFrrDetourRole
           tunnel instance index is either
                       transit(2) or tail(3). An entry in this table not required, since it is only created
                       by an SNMP agent as instructed implied
           to be 0, which indicates the tunnel head interface for the
           protecting tunnel. The protecting tunnel is defined to exist
           on the PLR in the FRR specification.  Protected tunnels are
           the LSPs that traverse the protected link.  These LSPs are
           uniquely identified by an mplsTunnelIndex, mplsTunnelInstance,
           mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId."
       REFERENCE
           "Srinivansan, C., and A. Viswanathan, T. Nadeau, MPLS signaling protocol."
                     INDEX {
                        mplsFrrPLRTunnelIndex,
                        mplsFrrPLRTunnelInstance,
                        mplsFrrPLRTunnelIngressLSRId,
                        mplsFrrPLRTunnelEgressLSRId,
                        mplsFrrDetourIndex
                        } Traffic
           Engineering Management Information Base Using SMIv2,
            draft-ietf-mpls-te-mib-06.txt "

   ::= { mplsFrrInSegTable mplsFrrFacObjects 1 }

                  MplsFrrInSegEntry ::= SEQUENCE {
                        mplsFrrInSegIfIndex          InterfaceIndex,
                        mplsFrrInSegLabel            MplsLabel,
                        mplsFrrInSegOctets           Counter32,
                        mplsFrrInSegPackets          Counter32,
                        mplsFrrInSegErrors           Counter32,
                        mplsFrrInSegDiscards         Counter32,
                        mplsFrrInSegHCOctets         Counter64,
                        mplsFrrInSegCounterDiscTime  TimeStamp
                        }

                  mplsFrrInSegIfIndex

   mplsFrrFacRouteDBEntry OBJECT-TYPE
       SYNTAX        InterfaceIndex            MplsFrrFacRouteDBEntry
       MAX-ACCESS    read-only        not-accessible
       STATUS            current
       DESCRIPTION
                       "This value
           "An entry in the mplsFrrDBTable represents a single protected
           LSP, protected by a backup tunnel and defined for a specific
           protected interface. Note that for brevity, managers should
           consult the index of mplsTunnelTable present in the interface where this
                       detour came in."
                     ::= { mplsFrrInSegEntry 1 }

                  mplsFrrInSegLabel OBJECT-TYPE

               Cetin, et. al.                                               [Page 22] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                     SYNTAX        MplsLabel
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "The incoming label MPLS-TE MIB for this detour LSP."
                     ::= { mplsFrrInSegEntry 2 }

                  mplsFrrInSegOctets OBJECT-TYPE
                     SYNTAX        Counter32
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Total number of octets received by this detour LSP."
                     ::= { mplsFrrInSegEntry 3 }

                  mplsFrrInSegPackets OBJECT-TYPE
                     SYNTAX        Counter32
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Total number of packets received by this detour LSP."
                     ::= { mplsFrrInSegEntry 4 }

                  mplsFrrInSegErrors OBJECT-TYPE
                     SYNTAX        Counter32
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "Total number of errored packets received by this detour LSP."
                     ::= { mplsFrrInSegEntry 5 }

                  mplsFrrInSegDiscards 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 them from being transmitted. One
                       possible reason
           additional information about the protecting and protected
           tunnels, and the ifEntry in the IF-MIB for discarding such a labeled packet could be
                       to free up buffer space."
                     ::= the protected
           interface."
       REFERENCE
           "Srinivansan, C., and A. Viswanathan, T. Nadeau, MPLS Label
            Switch Router Management Information Base Using SMIv2,
            draft-ietf-mpls-lsr-mib-07.txt Srinivansan, C., and A.
            Viswanathan, T. Nadeau, MPLS Traffic Engineering Management
            Information Base Using SMIv2, draft-ietf-mpls-te-mib-
            06.txt."
       INDEX { mplsFrrInSegEntry 6
               mplsFrrFacRouteProtIfIdx, -- from MPLS-TE MIB
               mplsFrrFacRouteProtTunIdIdx, -- from MPLS-TE MIB

               mplsFrrFacRouteBkupTunIdIdx, -- from MPLS-TE MIB
               mplsFrrFacRouteBkupTunInst,     -- mplsTunnelTable
               mplsFrrFacRouteBkupTunIngrLSRId, -- Tunnels must exist
               mplsFrrFacRouteBkupTunEgrLSRId }

                  mplsFrrInSegHCOctets OBJECT-TYPE
                     SYNTAX        Counter64
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       " Total number of octets received by this detour LSP. This is
                       the 64 bit version of mplsFrrInSegOctets."  -- a priori
   ::= { mplsFrrInSegEntry 7 mplsFrrFacRouteDBTable 1 }

                  mplsFrrInSegCounterDiscTime OBJECT-TYPE

               Cetin, et. al.                                               [Page 23] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

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

   MplsFrrFacRouteDBEntry ::= SEQUENCE { mplsFrrInSegEntry 8
       mplsFrrFacRouteProtIfIdx          InterfaceIndex,
       mplsFrrFacRouteProtTunIdIdx       MplsTunnelIndex,
       mplsFrrFacRouteBkupTunIdIdx       MplsTunnelIndex,
       mplsFrrFacRouteBkupTunInst        MplsTunnelInstanceIndex,
       mplsFrrFacRouteBkupTunIngrLSRId   MplsLsrIdentifier,
       mplsFrrFacRouteBkupTunEgrLSRId    MplsLsrIdentifier,
       mplsFrrFacRouteDBNumProtTunOnIf   Gauge32,
       mplsFrrFacRouteDBNumProtTun       Gauge32,
       mplsFrrFacRouteDBProtTunStatus    INTEGER,
       mplsFrrFacRouteDBProtTunResvBw    Unsigned32
   }

                  -- End of MPLS Fast Reroute in-segment table

                  -- MPLS Fast Reroute out-segment table

                  mplsFrrOutSegTable

   mplsFrrFacRouteProtIfIdx OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsFrrOutSegEntry        InterfaceIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
                       "This table shows all detour LSPs together with
        "Uniquely identifies the out-segment
                       data." interface configured for FRR protection."
     ::= { mplsFrrObjects 6 mplsFrrFacRouteDBEntry 1 }

                  mplsFrrOutSegEntry

   mplsFrrFacRouteProtTunIdIdx OBJECT-TYPE
      SYNTAX        MplsFrrOutSegEntry        MplsTunnelIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
                       "An entry in this table represents an out-segment of a detour
                       LSP. There will be one entry in this table for each entry in
        "Uniquely identifies the mplsFrrDetourTable where mplsTunnelEntry primary index for
         the mplsFrrDetourRole is either
                       head(1) or transit(2) and tunnel head interface designated to protect the mplsFrrDetourMerging is none(0).
                       An entry in this table is only created by an SNMP agent
         interface as
                       instructed by an MPLS signaling protocol. "
                     INDEX {
                        mplsFrrPLRTunnelIndex,
                        mplsFrrPLRTunnelInstance,
                        mplsFrrPLRTunnelIngressLSRId,
                        mplsFrrPLRTunnelEgressLSRId,
                        mplsFrrDetourIndex
                        }
                     ::= { mplsFrrOutSegTable 1 }

                  MplsFrrOutSegEntry specified in the mplsFrrFacRouteIfProtIdx
         (and all of the tunnels using this interface)."
      ::= SEQUENCE {
                        mplsFrrOutSegIfIndex           InterfaceIndex,
                        mplsFrrOutSegTopLabel          MplsLabel,
                        mplsFrrOutSegNHIpAddrType      INTEGER,
                        mplsFrrOutSegNHIpv4Addr        InetAddressIPv4,
                        mplsFrrOutSegNHIpv6Addr        InetAddressIPv6,
                        mplsFrrOutSegOctets            Counter32,
                        mplsFrrOutSegPackets           Counter32,
                        mplsFrrOutSegErrors            Counter32,

               Cetin, et. al.                                               [Page 24] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                        mplsFrrOutSegDiscards          Counter32,
                        mplsFrrOutSegHCOctets          Counter64,
                        mplsFrrOutSegCounterDiscTime   TimeStamp mplsFrrFacRouteDBEntry 2 }

                  mplsFrrOutSegIfIndex

   mplsFrrFacRouteBkupTunIdIdx OBJECT-TYPE
      SYNTAX        InterfaceIndex        MplsTunnelIndex
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "This value represents the index of interface where this detour
       "Uniquely identifies an mplsTunnelEntry that is leaving the device."
         being protected by FRR."
      ::= { mplsFrrOutSegEntry 1 mplsFrrFacRouteDBEntry 3 }

                  mplsFrrOutSegTopLabel

   mplsFrrFacRouteBkupTunInst OBJECT-TYPE
      SYNTAX        MplsLabel        MplsTunnelInstanceIndex
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "This represents the label
        "Uniquely identifies an mplsTunnelEntry that should be pushed onto the top
                       of the outgoing packet's label stack." is
         being protected by FRR."
      ::= { mplsFrrOutSegEntry 2 mplsFrrFacRouteDBEntry 4 }

                  mplsFrrOutSegNHIpAddrType

   mplsFrrFacRouteBkupTunIngrLSRId OBJECT-TYPE
      SYNTAX        INTEGER {
                                        unknown(0),
                                        ipV4(1),
                                        ipV6(2)
                                   }        MplsLsrIdentifier
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "Indicates whether the next hop address is IPv4 or IPv6.  Note
        "Uniquely identifies an mplsTunnelEntry that a value of unknown (0) is valid only when the outgoing
                       interface is of type point-to-point."
         being protected by FRR."
      REFERENCE
        "1. RSVP-TE: Extensions to RSVP for LSP Tunnels,
          Awduche et al, RFC 3209, December 2001
         2. Constraint-Based LSP Setup using LDP, Jamoussi
          (Editor), RFC 3212, January 2002"
      ::= { mplsFrrOutSegEntry 3 mplsFrrFacRouteDBEntry 5 }

                  mplsFrrOutSegNHIpv4Addr
   mplsFrrFacRouteBkupTunEgrLSRId  OBJECT-TYPE
      SYNTAX        InetAddressIPv4        MplsLsrIdentifier
      MAX-ACCESS    read-only    not-accessible
      STATUS        current
      DESCRIPTION
                       "IPv4 Address of the next hop.  Its value is significant only
                       when mplsOutSegNHIpAddrType
        "Uniquely identifies an mplsTunnelEntry that is ipV4 (1), otherwise it SHOULD
                       return a value of 0."
         being protected by FRR."
      ::= { mplsFrrOutSegEntry 4 mplsFrrFacRouteDBEntry 6 }

                  mplsFrrOutSegNHIpv6Addr

   mplsFrrFacRouteDBNumProtTunOnIf OBJECT-TYPE
       SYNTAX        InetAddressIPv6            Gauge32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION

               Cetin, et. al.                                               [Page 25] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                       "IPv6 address
           "The number of backup tunnels protecting the next hop.  Its value is significant only
                       when mplsOutSegNHIpAddrType is ipV6 (2), otherwise it SHOULD
                       return a value of 0." specified
           interface."
      ::= { mplsFrrOutSegEntry 5 mplsFrrFacRouteDBEntry 7 }

                  mplsFrrOutSegOctets

   mplsFrrFacRouteDBNumProtTun OBJECT-TYPE
       SYNTAX        Counter32            Gauge32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
                       "Total
           "The number of octets sent tunnels protected on this detour LSP." interface."
   ::= { mplsFrrOutSegEntry 6 mplsFrrFacRouteDBEntry 8 }

                  mplsFrrOutSegPackets

   mplsFrrFacRouteDBProtTunStatus OBJECT-TYPE
       SYNTAX        Counter32            INTEGER {
                             active(1),
                             ready(2),
                             partial(3)
                         }
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
                       "Total number
           "Specifies the state of packets sent on this detour LSP." the protected tunnel.

            active  This tunnel's label has been placed in the
                     LFIB and is ready to be applied to incoming
                     packets.

            ready -  This tunnel's label entry has been created but is
                     not yet in the LFIB.

            partial - This tunnel's label entry as not been fully
                      created."
   ::= { mplsFrrOutSegEntry 7 mplsFrrFacRouteDBEntry 9 }

                  mplsFrrOutSegErrors

   mplsFrrFacRouteDBProtTunResvBw  OBJECT-TYPE
       SYNTAX        Counter32            Unsigned32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
                       "Total number
           "Specifies the amount of errored packets bandwidth in megabytes per second
            that could not be sent due is actually reserved by the protection tunnel for
            facility backup. This value is repeated here from the MPLS-
            TE MIB because the tunnel entry will reveal the bandwidth
            reserved by the signaling protocol, which is typically 0
            for backup tunnels so as to
                       errors not over-book bandwidth.
            However, internal reservations are typically made on the out-segment of
            PLR, thus this detour LSP." value should be revealed here."
    ::= { mplsFrrOutSegEntry 8 mplsFrrFacRouteDBEntry 10 }

                  mplsFrrOutSegDiscards OBJECT-TYPE
                     SYNTAX        Counter32
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                       "The number of labeled packets received on this out-segment,
                       which were chosen

   -- Notifications

   -- Ed Note: Currently these notifications only apply to be discarded even though no errors had
                       been detected
   --          Facility-based FRR. Do we need to prevent them from being transmitted. One
                       possible reason define
   --          additional notifications for discarding such a labeled packet could be
                       to free up buffer space."
                     ::= One2One?

   mplsFrrProtected NOTIFICATION-TYPE
       OBJECTS { mplsFrrOutSegEntry 9 mplsFrrFacRouteDBNumProtTunOnIf,
                 mplsFrrFacRouteDBNumProtTun,
                 mplsFrrFacRouteDBProtTunStatus,
                 mplsFrrFacRouteDBProtTunResvBw
               }

                  mplsFrrOutSegHCOctets OBJECT-TYPE
                     SYNTAX        Counter64
                     MAX-ACCESS    read-only
   STATUS      current
   DESCRIPTION
                       "Total number of octets sent on this detour LSP.
       "This notification is generated when a tunnel running over an
        interface as specified in the mplsFrrConstTable is initially
        protected by the backup tunnel also specified in the
        mplsFrrConstTable. This notification should not be generated
        for each subsequent tunnel that is backed up by the 64
                       bit version of mplsFrrOutSegOctets." FRR feature
        on this LSR, as this may result in potential scaling issues
        with regard to LSR performance and network loading. Note also
        that notifications MUST be generated in accordance with the
        mplsFrrNotifMaxRate."
       ::= { mplsFrrOutSegEntry 10 mplsFrrNotif 1 }

   mplsFrrUnProtected NOTIFICATION-TYPE
       OBJECTS { mplsFrrFacRouteDBNumProtTunOnIf,
                 mplsFrrFacRouteDBNumProtTun,
                 mplsFrrFacRouteDBProtTunStatus,
                 mplsFrrFacRouteDBProtTunResvBw
               }

                  mplsFrrOutSegCounterDiscTime OBJECT-TYPE
                     SYNTAX        TimeStamp

               Cetin, et. al.                                               [Page 26] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                     MAX-ACCESS    read-only
   STATUS      current
   DESCRIPTION
                       "The value of sysUpTime on
       "This notification is generated when the most recent occasion at which
                       any one or more of this segment's Counter32 or Counter64
                       suffered final tunnel that is
        being protected by a discontinuity. If no such discontinuities have
                       occurred since the last re-initialization of backup tunnel as specified in the local
                       management subsystem, then
        mplsFrrConstTable is restored to normal operation. This
        notification should not be generated for each restored tunnel,
        as this object contains a zero value." may result in potential scaling issues with regard to
        LSR performance and network loading. Note also that
        notifications MUST be generated in accordance with the
        mplsFrrNotifMaxRate."
       ::= { mplsFrrOutSegEntry 11 mplsFrrNotif 2 }

   -- End of MPLS fast reroute out-segment table

                  -- Module Conformance Statement

   mplsFrrGroups
      OBJECT IDENTIFIER ::= {mplsFrrConformance 1 }

   mplsFrrCompliances
      OBJECT IDENTIFIER ::= {mplsFrrConformance 2 }

   mplsFrrModuleCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
        "Compliance statements for agents that support the MPLS FRR
        MIB."
                     MODULE
                         MANDATORY-GROUPS {
                                           mplsFrrConstGroup
                                          }

                     GROUP mplsFrrScalarGroup
                     DESCRIPTION
                       "This group is required to gather node level fast reroute
                       statistics."

                     GROUP mplsFrrConstGroup
                     DESCRIPTION
                       "This group is required to configure fast reroute constraints
                       at the ingress LSR of the tunnel that requires fast reroute
                       service."
      MODULE
          MANDATORY-GROUPS {
                            mplsFrrScalarGroup,
                            mplsFrrConstGroup,
                            mplsFrrLogGroup
                           }

      GROUP mplsFrrDetourGroup mplsFrrOne2OnePLRDetourGroup
      DESCRIPTION
          "This group is required to present mandatory for devices which support
           the detour LSP information
                       at one-to-one FRR mechanism, and is optional for
           those which do not."

      GROUP mplsFrrOne2OnePlrGroup
      DESCRIPTION
          "This group is mandatory for devices which support
           the detour ingress, transit one-to-one FRR mechanism, and egress LSRs." is optional for
           those which do not."

      GROUP mplsFrrXCGroup mplsFrrFacRouteDBGroup
      DESCRIPTION
          "This group is required when MPLS-LSR-MIB [4] mandatory for devices which support
           the Facility Backup FRR mechanism, and is supported." optional
           for those which do not."

      GROUP mplsFrrSegmentGroup mplsFrrNotifGroup
      DESCRIPTION

               Cetin, et. al.                                               [Page 27] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
          "This group is required when MPLS-LSR-MIB [4] mandatory for devices which support
           the Facility Backup FRR mechanism, and is not
                       supported." optional
           for those which do not."
      -- mplsFrrConstTable

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

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

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

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

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

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

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

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

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

      OBJECT        mplsFrrConstRowStatus
      MIN-ACCESS    read-only
      DESCRIPTION

               Cetin, et. al.                                               [Page 28] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002
        "Write access is not required."

      ::= { mplsFrrCompliances 1 }

   -- Units of conformance

   mplsFrrScalarGroup OBJECT-GROUP
      OBJECTS {
               mplsFrrDetourIncoming,
               mplsFrrDetourOutgoing,
               mplsFrrDetourOriginating,
                        mplsFrrSwitchover
               mplsFrrSwitchover,
               mplsFrrConfIfs,
               mplsFrrActProtectedIfs,
               mplsFrrConfProtectedTuns,
               mplsFrrActProtectedTuns,
               mplsFrrActivelyProtectedLSPs,
               mplsFrrConstProtectionMethod,
               mplsFrrNotifsEnabled,
               mplsFrrLogTableMaxEntries,
               mplsFrrLogTableCurrEntries,
               mplsFrrNotifMaxRate
              }
      STATUS        current
      DESCRIPTION
        "Objects that are required to gather node level fast reroute statistics."
      ::= { mplsFrrGroups 1 }

   mplsFrrConstGroup OBJECT-GROUP
      OBJECTS {
                        -- mplsFrrConstTable
         mplsFrrConstProtectionMethod,
         mplsFrrConstProtectionType,
         mplsFrrConstSetupPrio,
         mplsFrrConstHoldingPrio,
         mplsFrrConstInclAnyAffinity,
         mplsFrrConstInclAllAffinity,
         mplsFrrConstExclAllAffinity,
         mplsFrrConstHopLimit,
         mplsFrrConstBandwidth,
         mplsFrrConstRowStatus
      }
      STATUS        current
      DESCRIPTION
        "Objects that are required to configure fast reroute constraints
        at the ingress LSR of the tunnel that requires fast reroute
        service."
      ::= { mplsFrrGroups 2 }

                  mplsFrrDetourGroup

   mplsFrrOne2OnePLRDetourGroup OBJECT-GROUP
    OBJECTS {
                        -- mplsFrrPLRTable
                        mplsFrrPLRSenderAddrType,
                        mplsFrrPLRSenderIpv4Addr,
                        mplsFrrPLRSenderIpv6Addr,
                        mplsFrrPLRAvoidNodeAddrType,
                        mplsFrrPLRAvoidNodeIpv4Addr,
                        mplsFrrPLRAvoidNodeIpv6Addr,
                        mplsFrrPLRDetourIndex,
                        -- mplsFrrDetourTable
                        mplsFrrDetourTunnelName,
                        mplsFrrDetourRole,

               Cetin, et. al.                                               [Page 29] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                        mplsFrrDetourOperStatus,
             mplsFrrDetourActive,
             mplsFrrDetourMerging,
             mplsFrrDetourMergedDetourIndex,
                        mplsFrrDetourSetupPrio,
                        mplsFrrDetourHoldingPrio,
                        mplsFrrDetourInclAnyAffinity,
                        mplsFrrDetourInclAllAffinity,
                        mplsFrrDetourExclAllAffinity,
                        mplsFrrDetourHopLimit,
                        mplsFrrDetourSignallingProto,
                        mplsFrrDetourBandwidth,
                        mplsFrrDetourExplicitPathIndex,
                        mplsFrrDetourRecordPathIndex,
                        mplsFrrDetourRecordResvIndex,
                        mplsFrrDetourPathChanges,
                        mplsFrrDetourLastPathChange,
                        mplsFrrDetourCreationTime,
                        -- mplsFrrHopTable
                        mplsFrrHopAddrType,
                        mplsFrrHopIpv4Addr,
                        mplsFrrHopIpv4PrefixLen,
                        mplsFrrHopIpv6Addr,
                        mplsFrrHopIpv6PrefixLen,
                        mplsFrrHopType
             mplsFrrDetourCreationTime
            }
    STATUS        current
    DESCRIPTION
        "Objects that are required to present the detour LSP information
        at the detour ingress, transit and egress LSRs."
    ::= { mplsFrrGroups 3 }

                  mplsFrrXCGroup

   mplsFrrLogGroup OBJECT-GROUP
   OBJECTS {
                        mplsFrrDetourXCPointer mplsFrrLogEventTime,
             mplsFrrLogInterface,
             mplsFrrLogEventType,
             mplsFrrLogEventDuration,
             mplsFrrLogEventReasonString
           }
   STATUS        current
   DESCRIPTION
                       "Object
      "Objects that are required when MPLS-LSR-MIB [4] is supported." to represent FRR logging information
      at the detour ingress, transit and egress LSRs."
   ::= { mplsFrrGroups 4 }

                  mplsFrrSegmentGroup

   mplsFrrOne2OnePlrGroup OBJECT-GROUP
     OBJECTS {
                        -- mplsFrrInSegTable
                        mplsFrrInSegIfIndex,
                        mplsFrrInSegLabel,
                        mplsFrrInSegOctets,
                        mplsFrrInSegPackets,
                        mplsFrrInSegErrors,
                        mplsFrrInSegDiscards,
                        mplsFrrInSegHCOctets,
                        mplsFrrInSegCounterDiscTime,
                        -- mplsFrrOutSegTable

               Cetin, et. al.                                               [Page 30] 
                               draft-ietf-mpls-fastreroute-mib-00.txt   December 2002

                        mplsFrrOutSegIfIndex,
                        mplsFrrOutSegTopLabel,
                        mplsFrrOutSegNHIpAddrType,
                        mplsFrrOutSegNHIpv4Addr,
                        mplsFrrOutSegNHIpv6Addr,
                        mplsFrrOutSegOctets,
                        mplsFrrOutSegPackets,
                        mplsFrrOutSegErrors,
                        mplsFrrOutSegDiscards,
                        mplsFrrOutSegHCOctets,
                        mplsFrrOutSegCounterDiscTime
         mplsFrrOne2OnePlrSenderAddrType,
         mplsFrrOne2OnePlrSenderAddr,
         mplsFrrOne2OnePlrAvoidNAddrType,
         mplsFrrOne2OnePlrAvoidNAddr,
         mplsFrrOne2OnePlrDetourIndex
        }
   STATUS        current
   DESCRIPTION
                       "Object
      "Objects that are required when MPLS-LSR-MIB [4] is not supported." to represent the FRR
       One-2-One PLR information."
   ::= { mplsFrrGroups 5 }

   mplsFrrFacRouteDBGroup OBJECT-GROUP
     OBJECTS { mplsFrrFacRouteDBNumProtTunOnIf,
               mplsFrrFacRouteDBNumProtTun,
               mplsFrrFacRouteDBProtTunStatus,
               mplsFrrFacRouteDBProtTunResvBw
       }
   STATUS        current
   DESCRIPTION
      "Objects that are required to represent the FRR
       Facility Route Database information."
   ::= { mplsFrrGroups 6 }
   mplsFrrNotifGroup NOTIFICATION-GROUP
   NOTIFICATIONS {
                   mplsFrrProtected,
                   mplsFrrUnProtected
                 }
   STATUS        current
   DESCRIPTION
        "Objects that are required to represent FRR notifications."
   ::= { mplsFrrGroups 7 }

   END

7. Security Considerations

   This MIB does not pose any additional security issues compared with
   [3] and [4].

8. Reference References

   [1]Bradner, S., "The Internet Standards Process -- Revision 3", BCP
      9, RFC 2026, October 1996.

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

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

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

   [5]Pan, P., Gan, D., Swallow, G., Vasseur, J.Ph., Cooper, D., Atlas,
      A., Jork, M., Fast Reroute Techniques in RSVP-TE, draft-ietf-
                     mpls-rsvp-lsp-fastreroute-00.txt, draft-ietf-mpls-
      rsvp-lsp-fastreroute-00.txt, January 2002. Work in progress.

9. Acknowledgments

   We would like to thank Alia Atlas, Yeong Tai and Walter Vanhimbeeck Vanhimbeeck,
   Mike Piecuch and Adrien Grise for the helpful discussions.

               Cetin, et. al.                                               [Page 31] 
                              draft-cetin-mpls-fastreroute-mib-00.txt  February 2002 discussions and
   contributions to this document.

10. Author's Intellectual Property Considerations

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to per-
   tain to the implementation or use of the technology described in this
   document or the extent to which any license under such rights might
   or might not be available; neither does it represent that it has made
   any effort to identify any such rights.  Information on the IETF's
   procedures with respect to rights in standards-track and standards-
   related documentation can be found in BCP-11.  Copies of claims of
   rights made available for publication and any assurances of licenses
   to be made available, or the result of an attempt made to obtain a
   general license or permission for the use of such proprietary rights
   by implementers or users of this specification can be obtained from
   the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

11. AuthorsĘ Addresses

   Riza Cetin
   Alcatel
   Francis Wellesplein 1
   B-2018 Antwerp, Belgium
   Email: riza.cetin@alcatel.be

   Stefaan De Cnodder
   Alcatel
   Francis Wellesplein 1
   B-2018 Antwerp, Belgium
   Email: stefaan.de_cnodder@alcatel.be

   Der-Hwa Gan
   Juniper Networks, Inc.
   1194 N. Mathilda Avenue
   Sunnyvale, CA 94089
   Email: dhg@juniper.net

   Thomas D. Nadeau
   Cisco Systems, Inc.
   300 Apollo Drive
   Chelmsford, MA 01824
   Email: tnadeau@cisco.com

12. Full Copyright Statement

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

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   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 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.

               Cetin, et. al.                                               [Page 32]