Network Working Group                                   Riza Cetin Cetin, Ed.
Internet Draft                                        Stefaan De Cnodder
Expiration Date: September 2004                                                  Alcatel

                                                              Der-Hwa Gan
                                                   Juniper Networks, Inc.

                                                  Thomas D. Nadeau Nadeau, Ed.
                                                     Cisco Systems, Inc.

                                                            February 2004

Expiration Date: Febuary 2006
                                                             August 2005

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

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

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

Status of this Memo

    This document

   By submitting this Internet-Draft, each author represents that
   any applicable patent or other IPR claims of which he or she is an Internet-Draft
   aware have been or will be disclosed, and is any of which he or she
   becomes aware will be disclosed, in full conformance accordance with
    all provisions of Section 10 6 of RFC2026 [1].
   BCP 79.

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

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet- Drafts 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
   http://www.ietf.org/1id-abstracts.html

   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

     Abstract...................................................2
1. ABSTRACT...................................................1   Introduction...............................................2
2. TABLE OF CONTENTS..........................................1   Terminology................................................2
3. CONVENTIONS USED IN THIS DOCUMENT..........................2   The Internet-Standard Management Framework.................3
4. INTRODUCTION...............................................3
5. BRIEF DESCRIPTION OF   Brief Description of MIB OBJECTS...........................3
5.1. MPLSFRRCONSTTABLE........................................3
5.2. MPLSFRRPLRTABLE..........................................3
5.3. MPLSFRRDETOURTABLE.......................................3 Objects...........................3
5.   MPLS-FRR-STD-MIB DEFINITIONS...............................4
6. MPLS FAST REROUTE MIB DEFINITIONS..........................4   Acknowledgments...........................................30
7. SECURITY CONSIDERATIONS...................................29   Editors' Addresses........................................30
8. REFERENCEAS...............................................29
9. ACKNOWLEDGMENTS...........................................30   Contributors' Addresses...................................30
9 .  Full Copyright Statement..................................30
10. Intellectual Property Considerations.....................30  Security Considerations...................................41
11. AUTHORSĖ ADDRESSES.......................................30   References...............................................29
11.1 Normative References......................................37
11.2 Informative References....................................37
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].

4.  IANA Considerations.......................................41
12.1 IANA Considerations for MPLS-FRR-STD-MIB..................41
13.  Intellectual Property Statement...........................41

1. 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] [RFC3812] and [4].

5. [RFC3813].

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

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

2.  Terminology

   This document uses terminology from the document describing the MPLS
   architecture [RFC3031] and from the document describing MPLS Fast
   Reroute [RFC4090].

3. The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

4. Brief Description of MIB Objects.

    The objects described in this section support the detour
    functionality described in Section 3 of [5].

5.1. [RFC4090].

4.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 backup LSPs (detour LSPs or by-pass tunnels).

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

5.2.

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

5.3.

4.3. mplsFrrDetourTable

    The mplsFrrDetourTable shows the detour LSPs in each node (ingress,
    transit and egress nodes). An entry of this table represents a
    detour LSP.

    Each detour is identified by: by the following indexes:

    - tunnel index: mplsTunnelIndex [RFC3812]:
      set to the tunnel-id of an LSP protected by a detour.

    - tunnel instance: mplsTunnelInstance [RFC3812]: consists of two parts

      1) lower 16 bits:  - protected tunnel instance
                         - uniquely identifies a protected LSP within
                           a tunnel.
      2) higher 16 bits: - detour instance
                         - uniquely identifies a detour LSP of a
                           protected tunnel instance.

                           Multiple detours of the same protected LSP
                           may go through the same node. In this case,
                           higher 16 bits of the tunnel instance
                           object is used as a detour instance.

    - ingress node: node's LSR ID (mplsFrrOne2OnePlrTunIngrLSRId):
      set to the ingress node of an LSP protected by a detour.

    - egress node: node's LSR ID (mplsFrrOne2OnePlrTunEgrLSRId):
      set to the egress node of an LSP protected by a detour.

    A detour LSP is also considered as an instance of a protected tunnel.
    Therefore,
    tunnel.Therefore, each detour LSP will have an entry in the
    mplsTunnelTable (defined in the MPLS-TE-MIB). MPLS-TE-STD-MIB[RFC3812]).

    In the mplsTunnelTable, higher 16 bits of the tunnel instance will
    be used as detour instance. Note that for the protected tunnel
    instances, higher 16 bits of the tunnel instance must be all zeros.

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

5.4.

4.4. mplsFrrTunnelARHopTable

    This table extends mplsTunnelARHop table (defined in the MPLS-TE MIB)
    MPLS-TE-STD-MIB) with fast-reroute objects which specifies the status of
    local protection (availability and in-use) per hop traversed by a protected type or types of availability as well as what
    type or types are actally in-use for each hop traversed by a
    protected tunnel.

    The support of this table is optional since not all MPLS signalling
    protocols may support mplsTunnelARHopTable.

    ED NOTE: Need to add description of Facility-based FRR tables
    and explanation of new MIB structure.

6.

5. MPLS Fast Reroute MIB Definitions

MPLS-FRR-MIB

MPLS-FRR-STD-MIB DEFINITIONS ::= BEGIN

    IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       Integer32, Unsigned32, Counter32,
       NOTIFICATION-TYPE, experimental Gauge32
          FROM SNMPv2-SMI                            -- [RFC2578]
       MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
          FROM SNMPv2-CONF
       TEXTUAL-CONVENTION,                           -- [RFC2580]
       TruthValue, RowStatus,
       TimeStamp StorageType
          FROM SNMPv2-TC                             -- [RFC2579]
       InterfaceIndex, InterfaceIndexOrZero
          FROM IF-MIB                                -- [RFC2863]
       MplsTunnelIndex, MplsTunnelInstanceIndex,
       MplsTunnelAffinity, MplsLsrIdentifier MplsLsrIdentifier, mplsStdMIB
          FROM MPLS-TC-MIB MPLS-TC-STD-MIB                       -- [RFC3811]
       mplsTunnelARHopEntry
          FROM MPLS-TE-STD-MIB                       -- [RFC3812]
       InetAddressType, InetAddress
          FROM INET-ADDRESS-MIB                      -- [RFC3291]
       ;

    mplsFrrMIB MODULE-IDENTITY
       LAST-UPDATED
          "200211011200Z"
          "200508011200Z" -- 01 November 2002 August 2005 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

                     Thomas D. Nadeau
              Email: tnadeau@cisco.com

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

    -- Revision history.
       REVISION
            "200211011200Z"
          "200508011200Z" -- 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 August 2005 12:00:00 GMT
       DESCRIPTION
          "Initial draft version." version. Published as RFC xxxx."
                          -- RFC-editor pls fill in xxxx
   ::= { experimental 120 mplsStdMIB XXX } -- to be RFC-editor please fill in
                          -- XXX with value assigned under mplsMIB. by IANA,
                          -- End of MPLS Fast Reroute textual-conventions. see section 18.1 for details
    -- Top level components of this MIB.
    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
    mplsFrrOne2OneObjects 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        Integer32 (-1|0..2147483647)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "The number of detour LSPs entering the device (greater
          than or equal to 0) if
         mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod
          is set to oneToOneBackup(1), or 0 -1 if mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2)."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 1 }

    mplsFrrDetourOutgoing OBJECT-TYPE
       SYNTAX        Unsigned32        Integer32 (-1|0..2147483647)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "The number of detour LSPs leaving the device (greater
          than or equal to 0) if
         mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod
          is set to oneToOneBackup(1), or
         0 -1 if mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2)."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 2 }

    mplsFrrDetourOriginating OBJECT-TYPE
       SYNTAX        Unsigned32        Integer32(-1|0..2147483647)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "The number of detour LSPs originating at this PLR (greater
          than or equal to 0) if
         mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod
          is set to oneToOneBackup(1).
          This object MUST return 0 01 if the mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2)."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 3 }

    mplsFrrSwitchover OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "The number of tunnel instances that are switched over
          to their corresponding detour LSP if mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod is set
          to oneToOneBackup(1), or tunnel instances being switched
          over if
         mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2)."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 4 }

    mplsFrrConfIfs OBJECT-TYPE
       SYNTAX        Unsigned32        Integer32(-1|0..2147483647)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of MPLS interfaces configured for
          protection by the FRR feature, feature if
          mplsFrrConstProtectionMethod
          is set to facilityBackup(2), otherwise this value
          MUST return 0 -1 to indicate that LSPs traversing any
          interface may not be protected."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 5 }

    mplsFrrActProtectedIfs OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of interfaces currently being
          protected by the FRR feature if mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2), otherwise this value should return
          0 to indicate that LSPs traversing any interface may
          not be protected. This value MUST be less than or equal
          to mplsFrrConfIfs."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 6 }

    mplsFrrConfProtectedTuns OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of bypass tunnels configured to
          protect facilities on this LSR using the FRR feature
          if mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod is set to
          facilityBackup(2), otherwise this value MUST return
          0."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 7 }

    mplsFrrActProtectedTuns OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of bypass tunnels indicated in
          mplsFrrConfProtectedTuns whose operStatus
          is up(1) indicating that they are currently protecting
          facilities on this LSR using the FRR feature. This
          object MUST return 0 if mplsFrrConstProtectionMethod mplsFrrConstFrrProtectionMethod
          is set to oneToOneBackup(1)."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 8 }

    mplsFrrActivelyProtectedLSPs OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of LSPs currently protected by
          the FRR feature. feature on a per-device basis. If mplsFrrConstProtectionMethod
          mplsFrrConstFrrProtectionMethod
          is set to oneToOneBackup(1)this oneToOneBackup(1) this object MUST return
          0."
       DEFVAL { 0 }
       ::= { mplsFrrScalars 9 }

    mplsFrrConstProtectionMethod

    mplsFrrConstFrrProtectionMethod OBJECT-TYPE
       SYNTAX        INTEGER { oneToOneBackup(0),
                               facilityBackup(1) oneToOneBackup(1),
                               facilityBackup(2)
                             }
       MAX-ACCESS    read-write
       STATUS        current
       DESCRIPTION
         "Indicates which protection method is to be used for fast
          reroute.
          reroute on this device. Some devices may require a reboot of their routing
          processors
          if this variable is changed. An agent which
          does not wish to reboot or modify its FRR mode
          MUST return an inconsistentValue error. Please
          consult the device's agent capability statement
          for more details." take affect after being modified."
       ::= { mplsFrrScalars 10 }

    mplsFrrNotifsEnabled OBJECT-TYPE
        SYNTAX            TruthValue
        MAX-ACCESS        read-write
        STATUS            current
        DESCRIPTION
            "Enables or disables FRR notifications defined in this MIB
            module. Notifications are disabled by default."
        DEFVAL { false }
    ::= { mplsFrrScalars 11 }

    mplsFrrLogTableMaxEntries

    mplsFrrNotifMaxRate OBJECT-TYPE
       SYNTAX       Unsigned32
       UNITS        "milliseconds"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
            "Indicates
           "This variable indicates the maximum number of entries allowed in the 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 by the agent.

             If this value is returned as 0, this indicates
             that no additional log entries will be added to the current
             table either because the table has been completely
             filled or logging has been disabled. However, agents
             may wish to not delete existing entries in the log table
             so that managers may review them in the future.

             It is implied that when mplsFrrLogTableCurrEntries
             has reached the value of this variable, that logging
             entries may not continue to be added to the table,
             although existing ones may remain.  Furthermore, an
             agent may begin to delete existing (perhaps the
             oldest entries) entries to make room for new ones."
        DEFVAL { 0 }
    ::= { mplsFrrScalars 12 }

    mplsFrrLogTableCurrEntries OBJECT-TYPE
        SYNTAX            Counter32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
            "Indicates the current number of entries in the FRR log
            table."
    ::= { mplsFrrScalars 13 }

    mplsFrrNotifMaxRate OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "This variable indicates the number of milliseconds milliseconds
            that must elapse between notification emissions. If
            events occur more rapidly, the implementation may
            simply fail to emit these notifications during that
            period, or may queue them until an appropriate
            time in the future. A value of 0 means no minimum
            elapsed period is specified."
       DEFVAL       { 0 }
    ::= { mplsFrrScalars 14 12 }

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

    -- MPLS Fast Reroute Constraints table

    mplsFrrConstTable OBJECT-TYPE
       SYNTAX        SEQUENCE OF MplsFrrConstEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "This table shows backup LSP setup constraints."
       ::= {  mplsFrrGeneralObjects 1 }

    mplsFrrConstEntry OBJECT-TYPE
       SYNTAX        MplsFrrConstEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "An entry in this table represents detour LSP or bypass tunnel
          setup constraints for a tunnel instance to be protected by
          detour LSPs or a tunnel.

          Agents must allow entries in this table to be
          created 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 { mplsFrrConstIfIndex,
               mplsFrrConstTunnelIndex,
               mplsFrrConstTunnelInstance
             }
       ::= { mplsFrrConstTable 1 }

    MplsFrrConstEntry ::= SEQUENCE {
          mplsFrrConstIfIndex           InterfaceIndexOrZero,
          mplsFrrConstTunnelIndex       MplsTunnelIndex,
          mplsFrrConstTunnelInstance    MplsTunnelInstanceIndex,
          mplsFrrConstProtectionType    INTEGER,
          mplsFrrConstSetupPrio         Unsigned32,
          mplsFrrConstHoldingPrio       Unsigned32,
          mplsFrrConstInclAnyAffinity   MplsTunnelAffinity,
          mplsFrrConstInclAllAffinity   MplsTunnelAffinity,
          mplsFrrConstExclAnyAffinity   MplsTunnelAffinity,
          mplsFrrConstHopLimit          Unsigned32,
          mplsFrrConstBandwidth         Integer32,
          mplsFrrConstStorageType       StorageType,
          mplsFrrConstRowStatus         RowStatus
    }

    mplsFrrConstIfIndex  OBJECT-TYPE
       SYNTAX        InterfaceIndexOrZero
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies an interface for which a fast reroute
          protection tunnel is
         configured. Tabular entries indexed with configured to potentially protect in
          the event of a 0 value apply fault. Entries with this index set to 0
          indicates that the protection tunnel configured protects
          all interfaces on this device for which the FRR feature can operate
         on." (i.e.: node protection)."
       ::= { mplsFrrConstEntry 1 }

    mplsFrrConstTunnelIndex OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies a tunnel for which fast reroute is
          requested." configured
          to possibly protect the interface(s) specified by
          mplsFrrConstIfIndex in the event of a fault as
          must exist in the mplsTunnelTable."
       REFERENCE "mplsTunnelTable from RFC3812."
       ::= { mplsFrrConstEntry 2 }

    mplsFrrConstTunnelInstance OBJECT-TYPE
       SYNTAX        MplsTunnelInstanceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies an existing instance of this tunnel
          for which fast reroute is requested. Note that a value of
          0 indicates that the configuration points at a tunnel
          head (as specified in RFC3812). This is typically how
          configuration of this feature is performed on devices
          where the actual protection LSP used is left up to the
          protecting tunnel. However, in cases where static
          configuration is possible, any valid tunnel
          instance is permissible.  In these cases, it is recommended
          that the instance index follow the following convention
          as to make identication of backup LSPs easier:

          - lower 16 bits : protected tunnel instance
          - higher 16 bits: must be all zeros"
       ::= { mplsFrrConstEntry 3 }

    mplsFrrConstProtectionType OBJECT-TYPE
       SYNTAX        INTEGER { none(0), linkProtection(1),
                               nodeProtection(2)
                             }
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
         "Indicates type of the resource protection." protection:

          linkProtection(1) indicates that this tunnel is
            setup to protect a particular link's resources.

          nodeProtection(2) indicates that this tunnel is
            setup to protect an entire node from failure.
         "
       DEFVAL { nodeProtection }
       ::= { mplsFrrConstEntry 4 }

    mplsFrrConstSetupPrio OBJECT-TYPE
       SYNTAX        Unsigned32 (0..7)
       MAX-ACCESS    read-create
       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"
         "RFC 3209"
       DEFVAL { 7 }
       ::= { mplsFrrConstEntry 5 }

    mplsFrrConstHoldingPrio OBJECT-TYPE
       SYNTAX        Unsigned32 (0..7)
       MAX-ACCESS    read-create
       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"
         "RFC 3209"
       DEFVAL { 0 }
       ::= { 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 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."
         "RFC 3209"
       DEFVAL { 0 }
       ::= { mplsFrrConstEntry 7 }

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

    mplsFrrConstExclAnyAffinity OBJECT-TYPE
       SYNTAX        MplsTunnelAffinity
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
         "A link satisfies the exclude-all constraint if and only if the
          link contains none of the administrative groups specified in
          the constraint."
       REFERENCE
         "1. RSVP-TE: Extensions to RSVP for LSP Tunnels, Awduche et al,
          RFC 3209, December 2001."
         "RFC 3209"
       DEFVAL { 0 }
       ::= { mplsFrrConstEntry 9 }

    mplsFrrConstHopLimit OBJECT-TYPE
       SYNTAX        Unsigned32 (1..255)
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
         "The maximum number of hops that 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."
         "RFC4090."
       DEFVAL { 32 }
    ::= { mplsFrrConstEntry 10 }

    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 }

   mplsFrrConstStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
        "The storage type for this configuration entry.
         Conceptual rows having the value 'permanent'
         need not allow write-access to any columnar
         objects in the row."
   REFERENCE
        "RFC2579"
   DEFVAL { volatile }
       ::= { mplsFrrConstEntry 12 }

    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 13 }

    -- MPLS Fast Reroute Tunnel Actual Route Hop table

    mplsFrrTunARHopTable OBJECT-TYPE
       SYNTAX             SEQUENCE OF MplsFrrTunARHopEntry
       MAX-ACCESS         not-accessible
       STATUS             current
       DESCRIPTION
         "This table extends mplsTunnelARHop table defined in the
          MPLS-TE MIB
          MPLS-TE-STD-MIB with fast-reroute objects which specifies
          the status of local protection (availability and in-use) per hop
          per-hop traversed by a protected tunnel."
       ::= {  mplsFrrGeneralObjects 2 }

    mplsFrrTunARHopEntry  OBJECT-TYPE
       SYNTAX             MplsFrrTunARHopEntry
       MAX-ACCESS         not-accessible
       STATUS             current
       DESCRIPTION
         "This entry contains fast-reroute protection status of a signle single
          protected tunnel hop."
       AUGMENTS { mplsTunnelARHopEntry }
       ::= { mplsFrrTunARHopTable 1 }

    mplsFrrTunnARHopEntry

    MplsFrrTunARHopEntry    ::= SEQUENCE {
        mplsFrrTunARHopProtectAvailable TruthValue,
        mplsFrrTunARHopProtectInUse     TruthValue,
        mplsFrrTunARHopBandwidthProtect TruthValue,
        mplsFrrTunARHopNodeProtect      TruthValue
        mplsFrrTunARHopProtectType      BITS,
        mplsFrrTunARHopProtectTypeInUse BITS
    }

    mplsFrrTunARHopProtectAvailable

     mplsFrrTunARHopProtectType  OBJECT-TYPE
       SYNTAX                       TruthValue                       BITS { path(0), node(1), link(2) }
       MAX-ACCESS                   read-only
       STATUS                       current
       DESCRIPTION
         "This object indicates whether local the protection provided
          by fast-reroute is available at type or types of the
          associated path hop object.  Note that since this hop." object is a
          BITS type, one, none or all of the bits may be set to indicate
          various combinations of protection types."
       ::= { mplsFrrTunArHopEntry mplsFrrTunARHopEntry 1 }

    mplsFrrTunARHopProtectInUse

     mplsFrrTunARHopProtectTypeInUse OBJECT-TYPE
       SYNTAX                       TruthValue                       BITS { path(0), node(1),
                                           link(2) }
       MAX-ACCESS                   read-only
       STATUS                       current
       DESCRIPTION
         "This object indicates whether local the protection provided
          by fast-reroute is type or types that are
          currently in use at by the associated path hop object.
          Note that since this hop." object is a BITS type, one, none or all
          of the bits may be set to indicate various combinations of
          protection types.  If no bits are set, this indicates that
          no protection types are in use."
       ::= { mplsFrrTunARHopEntry 2 }

    mplsFrrTunARHopBandwidthProtect

    --
    -- 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                       TruthValue        SEQUENCE OF MplsFrrOne2OnePlrEntry
       MAX-ACCESS                   read-only    not-accessible
       STATUS        current
       DESCRIPTION
         "This object indicates whether bandwidth protection
          is provided by this hop."
       ::= { mplsFrrTunArHopEntry 3 }

    mplsFrrTunARHopNodeProtect      OBJECT-TYPE
       SYNTAX                       TruthValue
       MAX-ACCESS                   read-only
       STATUS                       current
       DESCRIPTION
         "This object indicates whether node protection
          is provided by this hop."
       ::= { mplsFrrTunArHopEntry 4 }

    -- Fast Reroute Log Table

    mplsFrrLogTable OBJECT-TYPE
        SYNTAX            SEQUENCE OF MplsFrrLogEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
            "The fast reroute log table records fast reroute events such
             as protected links going up or down or shows the FRR feature
             kicking in." lists of PLRs that initiated
          detour LSPs which affect this node."
       ::= { mplsFrrGeneralObjects 2 mplsFrrOne2OneObjects 1 }

    mplsFrrLogEntry

    mplsFrrOne2OnePlrEntry  OBJECT-TYPE
       SYNTAX            MplsFrrLogEntry        MplsFrrOne2OnePlrEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "An entry in this table is created to describe one fast
             reroute event.  Entries represents a PLR together with its
          detour instance. An entry in this table are is only created and
             destroyed by the
          an SNMP agent implementation. The maximum number
             of entries in this log is governed as instructed by the scalar." an MPLS signaling protocol."
       INDEX { mplsFrrLogIndex mplsFrrOne2OnePlrTunIdx,       -- from MPLS-TE-STD-MIB
               mplsFrrOne2OnePlrTunDetourInst,-- mplsTunnelTable
               mplsFrrOne2OnePlrTunIngrLSRId, -- Tunnels must exist
               mplsFrrOne2OnePlrTunEgrLSRId,  -- a priori
               mplsFrrOne2OnePlrId    }
       ::= { mplsFrrLogTable mplsFrrOne2OnePlrTable 1 }

    MplsFrrLogEntry

    MplsFrrOne2OnePlrEntry ::= SEQUENCE {
        mplsFrrLogIndex                Unsigned32,
        mplsFrrLogEventTime            TimeStamp,
        mplsFrrLogInterface            InterfaceIndexOrZero,
        mplsFrrLogEventType            INTEGER,
        mplsFrrLogEventDuration        TimeTicks,
        mplsFrrLogEventReasonString    OCTET STRING
          mplsFrrOne2OnePlrTunIdx         MplsTunnelIndex,
          mplsFrrOne2OnePlrTunDetourInst  MplsTunnelInstanceIndex,
          mplsFrrOne2OnePlrTunIngrLSRId   MplsLsrIdentifier,
          mplsFrrOne2OnePlrTunEgrLSRId    MplsLsrIdentifier,
          mplsFrrOne2OnePlrId             MplsLsrIdentifier,
          mplsFrrOne2OnePlrSenderAddrType InetAddressType,
          mplsFrrOne2OnePlrSenderAddr     InetAddress,
          mplsFrrOne2OnePlrAvoidNAddrType InetAddressType,
          mplsFrrOne2OnePlrAvoidNAddr     InetAddress
    }

    mplsFrrLogIndex

    mplsFrrOne2OnePlrTunIdx OBJECT-TYPE
       SYNTAX            Unsigned32        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies a fast reroute event entry." tunnel between a pair of LSRs
          from the mplsTunnelEntry."
       ::= { mplsFrrLogEntry mplsFrrOne2OnePlrEntry 1 }

    mplsFrrLogEventTime

    mplsFrrOne2OnePlrTunDetourInst OBJECT-TYPE
       SYNTAX            TimeStamp        MplsTunnelInstanceIndex
       MAX-ACCESS        read-only    not-accessible
       STATUS        current
       DESCRIPTION
            "This object provides the amount
         "Uniquely identifies a detour instance of time ticks since this
             event occured." a tunnel from
          the mplsTunnelEntry.

         - lower 16 bits : protected tunnel instance
         - higher 16 bits: detour instance"
       ::= { mplsFrrLogEntry mplsFrrOne2OnePlrEntry 2 }

    mplsFrrLogInterface

    mplsFrrOne2OnePlrTunIngrLSRId OBJECT-TYPE
       SYNTAX            InterfaceIndexOrZero        MplsLsrIdentifier
       MAX-ACCESS        read-only    not-accessible
       STATUS        current
       DESCRIPTION
            "This
         "The purpose of this object indicates which interface was affected by is to uniquely identity a
           tunnel within a network. When the MPLS signalling
           protocol is rsvp(2) this
             FRR event. This value may be set to 0 if
             mplsFrrConstProtectionMethod SHOULD mimic the
           Extended Tunnel Id field in the SESSION object.
           When the MPLS signalling protocol is set to oneToOneBackup(0)."
    ::= { mplsFrrLogEntry 3 }

    mplsFrrLogEventType OBJECT-TYPE crldp(3) this
           value SHOULD mimic the Ingress LSR Router ID field
           in the LSPID TLV object."
       REFERENCE
         "RFC3209, RFC3212"
       ::= { mplsFrrOne2OnePlrEntry 3 }

     mplsFrrOne2OnePlrTunEgrLSRId OBJECT-TYPE
       SYNTAX    INTEGER        MplsLsrIdentifier
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Specifies the egress LSR ID."
       ::= {
                           other(1),
                           protected(2) mplsFrrOne2OnePlrEntry 4 }

    mplsFrrOne2OnePlrId OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS        read-only    not-accessible
       STATUS        current
       DESCRIPTION
         "This object describes what value represents the PLR that has initiated a detour LSP
         to protect a tunnel instance."
       ::= { mplsFrrOne2OnePlrEntry 5 }

    mplsFrrOne2OnePlrSenderAddrType OBJECT-TYPE
       SYNTAX        InetAddressType
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
         "Denotes the address type of fast reroute event
             occured." this detour instance's sender
          address."
       DEFVAL        { ipv4 }
       ::= { mplsFrrLogEntry 4 mplsFrrOne2OnePlrEntry 6 }

    mplsFrrLogEventDuration

    mplsFrrOne2OnePlrSenderAddr OBJECT-TYPE
       SYNTAX            TimeTicks        InetAddress
       MAX-ACCESS        read-only    read-create
       STATUS        current
       DESCRIPTION
            "This object describes
         "If mplsFrrOne2OnePlrSenderAddrType is set to ipv4(1),
          then this value will contain the duration IPv4 address of this event."
          detour instance's sender. This object is otherwise
          insignificant and should contain a
          value of 0."
       ::= { mplsFrrLogEntry 5 mplsFrrOne2OnePlrEntry 7 }

    mplsFrrLogEventReasonString
    mplsFrrOne2OnePlrAvoidNAddrType OBJECT-TYPE
       SYNTAX            OCTET STRING (SIZE(128))        InetAddressType
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
            "This object contains an implementation-specific explanation
     "Denotes the address type of the event." node that this PLR tries to
          avoid."
       DEFVAL        { ipv4 }
       ::= { mplsFrrLogEntry 6 mplsFrrOne2OnePlrEntry 8 }

    --
    -- One-to-One Specific Tables
    --
    -- Tables in this section pertain only

    mplsFrrOne2OnePlrAvoidNAddr OBJECT-TYPE
       SYNTAX        InetAddress
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "If mplsFrrOne2OnePlrAvoidNAddrType is set to ipv4(1), then
          this value will contain the 1-1
    -- style IPv4 address of FRR.
    -- the avoid node.
          This object is otherwise insignificant and should contain
          a value of 0.0.0.0, which should be ignored."
       ::= { mplsFrrOne2OnePlrEntry 9 }

    -- MPLS One-To-One Fast Reroute Point of Local Repair table

    mplsFrrOne2OnePlrTable Detour table.

    mplsFrrDetourTable OBJECT-TYPE
       SYNTAX        SEQUENCE OF MplsFrrOne2OnePlrEntry MplsFrrDetourEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "This table shows the lists of PLRs that initiated detour LSPs
         which affect this node." LSPs."
       ::= { mplsFrr1to1Objects 1 mplsFrrOne2OneObjects 2 }

    mplsFrrOne2OnePlrEntry

    mplsFrrDetourEntry OBJECT-TYPE
       SYNTAX        MplsFrrOne2OnePlrEntry        MplsFrrDetourEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "An entry in this table represents a PLR together with its
         detour instance. detour. An entry in this
         table is only created by an SNMP agent as instructed by an MPLS
         signaling protocol." protocol. "
       INDEX {
               mplsFrrOne2OnePlrTunIdx,        -- from MPLS-TE MIB
               mplsFrrOne2OnePlrTunDetourInst,-- MPLS-TE-STD-MIB
               mplsFrrOne2OnePlrTunDetourInst, -- mplsTunnelTable
               mplsFrrOne2OnePlrTunIngrLSRId,  -- Tunnels must exist
               mplsFrrOne2OnePlrTunEgrLSRId,
               mplsFrrOne2OnePlrTunEgrLSRId    -- a priori
               mplsFrrOne2OnePlrId
          }
       ::= { mplsFrrOne2OnePlrTable mplsFrrDetourTable 1 }

    MplsFrrOne2OnePlrEntry
    MplsFrrDetourEntry ::= SEQUENCE {
          mplsFrrOne2OnePlrTunIdx         MplsTunnelIndex,
          mplsFrrOne2OnePlrTunDetourInst  MplsTunnelInstanceIndex,
          mplsFrrOne2OnePlrTunIngrLSRId   MplsLsrIdentifier,
          mplsFrrOne2OnePlrTunEgrLSRId    MplsLsrIdentifier,
          mplsFrrOne2OnePlrId             MplsLsrIdentifier,
          mplsFrrOne2OnePlrSenderAddrType InetAddressType,
          mplsFrrOne2OnePlrSenderAddr     InetAddress,
          mplsFrrOne2OnePlrAvoidNAddrType InetAddressType,
          mplsFrrOne2OnePlrAvoidNAddr     InetAddress
          mplsFrrDetourActive             TruthValue,
          mplsFrrDetourMerging            INTEGER,
          mplsFrrDetourMergedDetourInst   MplsTunnelInstanceIndex
    }

    mplsFrrOne2OnePlrTunIdx

    mplsFrrDetourActive OBJECT-TYPE
       SYNTAX        MplsTunnelIndex        TruthValue
       MAX-ACCESS    not-accessible    read-only
       STATUS        current
       DESCRIPTION
         "Uniquely identifies a tunnel between a pair of LSRs
          from
         "Indicates whether or not the mplsTunnelEntry." main LSP has switched over to
          this detour LSP. This is only relevant for detours
          originated by this node."
       ::= { mplsFrrOne2OnePlrEntry mplsFrrDetourEntry 1 }

    mplsFrrOne2OnePlrTunDetourInst

    mplsFrrDetourMerging OBJECT-TYPE
       SYNTAX        MplsTunnelInstanceIndex        INTEGER { none(1),
                               protectedTunnel(2),
                               detour(3)
                             }
       MAX-ACCESS    not-accessible    read-only
       STATUS        current
       DESCRIPTION
         "Uniquely identifies a
         "This value represents whether or not this detour is merged.
          This value MUST be set to none(1) if this detour is not
          merged.

          This value MUST be set to protectedTunnel(2) if this detour is
          merged with the protected tunnel. This value MUST be set to
          detour(3) if this detour is merged with another detour
          protecting the same tunnel."
       ::= { mplsFrrDetourEntry 2 }

    mplsFrrDetourMergedDetourInst OBJECT-TYPE
       SYNTAX        MplsTunnelInstanceIndex
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "This value represents the instance of a tunnel from the mplsTunnelEntry. detour with which
          this detour is merged. This object is only valid when
          mplsFrrDetourMerging is set to detour(3).

          - lower 16 bits : protected tunnel instance
          - higher 16 bits: detour instance"
       ::= { mplsFrrOne2OnePlrEntry 2 mplsFrrDetourEntry 3 }

    mplsFrrOne2OnePlrTunIngrLSRId

    --
    -- Facility-based FRR-specific Tables
    --

    mplsFrrFacRouteDBTable OBJECT-TYPE
        SYNTAX        MplsLsrIdentifier            SEQUENCE OF MplsFrrFacRouteDBEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
            "The purpose of this object is mplsFrrDBTable provides information about the fast
             reroute database.  Each entry belongs to uniquely identity a an interface,
             protecting backup tunnel within a network. When the and protected tunnel. MPLS signalling
           protocol is rsvp(2)
             interfaces defined on this value SHOULD mimic node are protected by backup
             tunnels and are indexed by mplsInterfaceConfIndex. Backup
             tunnels defined to protect the
           Extended Tunnel Id field in tunnels traversing an
             interface, and are indexed by mplsTunnelIndex. Note that
             the SESSION object.
           When tunnel instance index is not required, since it is
             implied to be 0, which indicates the MPLS signalling protocol tunnel head
             interface for the protecting tunnel. The protecting
             tunnel is crldp(3) this
           value SHOULD mimic defined to exist on the Ingress LSR Router ID field PLR in the LSPID TLV object." FRR
             specification.  Protected tunnels are
             the LSPs that traverse the protected link.  These LSPs are
             uniquely identified by mplsTunnelIndex, mplsTunnelInstance,
             mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId."
        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"
            "RFC3812"
    ::= { mplsFrrOne2OnePlrEntry 3 mplsFrrFacObjects 1 }

     mplsFrrOne2OnePlrTunEgrLSRId

    mplsFrrFacRouteDBEntry OBJECT-TYPE
        SYNTAX        MplsLsrIdentifier            MplsFrrFacRouteDBEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
         "Specifies
            "An entry in the egress LSR ID." 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 mplsTunnelTable
             present in the MPLS-TE-STD-MIB for
             additional information about the protecting and protected
             tunnels, and the ifEntry in the IF-MIB for the protected
             interface."
        REFERENCE
            "RFC3812"
        INDEX {
                mplsFrrFacRouteProtIfIdx,        -- from MPLS-TE-STD-MIB
                mplsFrrFacRouteProtTunIdx,       -- from MPLS-TE-STD-MIB
                mplsFrrFacRouteBkupTunIdx,       -- from MPLS-TE-STD-MIB
                mplsFrrFacRouteBkupTunInst,      -- mplsTunnelTable
                mplsFrrFacRouteBkupTunIngrLSRId, -- Tunnels must exist
                mplsFrrFacRouteBkupTunEgrLSRId } -- a priori
    ::= { mplsFrrOne2OnePlrEntry 4 mplsFrrFacRouteDBTable 1 }

    mplsFrrOne2OnePlrId

    MplsFrrFacRouteDBEntry ::= SEQUENCE {
        mplsFrrFacRouteProtIfIdx          InterfaceIndex,
        mplsFrrFacRouteProtTunIdx         MplsTunnelIndex,
        mplsFrrFacRouteBkupTunIdx         MplsTunnelIndex,
        mplsFrrFacRouteBkupTunInst        MplsTunnelInstanceIndex,
        mplsFrrFacRouteBkupTunIngrLSRId   MplsLsrIdentifier,
        mplsFrrFacRouteBkupTunEgrLSRId    MplsLsrIdentifier,
        mplsFrrFacRouteDBNumProtTunOnIf   Gauge32,
        mplsFrrFacRouteDBNumProtLspOnIf   Gauge32,
        mplsFrrFacRouteDBNumProtTun       Gauge32,
        mplsFrrFacRouteDBProtTunStatus    INTEGER,
        mplsFrrFacRouteDBProtTunResvBw    Unsigned32
    }

    mplsFrrFacRouteProtIfIdx OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier        InterfaceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "This value represents
         "Uniquely identifies the PLR that has initiated a detour LSP
         to protect a tunnel instance." interface configured for FRR
          protection."
      ::= { mplsFrrOne2OnePlrEntry 5 mplsFrrFacRouteDBEntry 1 }

    mplsFrrOne2OnePlrSenderAddrType

    mplsFrrFacRouteProtTunIdx OBJECT-TYPE
       SYNTAX        InetAddressType        MplsTunnelIndex
       MAX-ACCESS    read-create    not-accessible
       STATUS        current
       DESCRIPTION
         "Denotes the address type
         "Uniquely identifies the mplsTunnelEntry primary index for
          the tunnel head interface designated to protect the
          interface as specified in the mplsFrrFacRouteIfProtIdx
          (and all of the tunnels using this detour instance's sender
         address."
       DEFVAL interface)."
       ::= { ipv4 mplsFrrFacRouteDBEntry 2 }

    mplsFrrFacRouteBkupTunIdx OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
        "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."
       ::= { mplsFrrOne2OnePlrEntry 6 mplsFrrFacRouteDBEntry 3 }

    mplsFrrOne2OnePlrSenderAddr

    mplsFrrFacRouteBkupTunInst OBJECT-TYPE
       SYNTAX        InetAddress        MplsTunnelInstanceIndex
       MAX-ACCESS    read-create    not-accessible
       STATUS        current
       DESCRIPTION
         "If mplsFrrOne2OnePlrSenderAddrType is set to ipv4(1), then this value
         will contain the IPv4 address of this detour instance's sender.
         This object
         "Uniquely identifies an mplsTunnelEntry that is otherwise insignificant and should contain a
         value of 0."
          being protected by FRR."
       ::= { mplsFrrOne2OnePlrEntry 7 mplsFrrFacRouteDBEntry 4 }

    mplsFrrOne2OnePlrAvoidNAddrType

    mplsFrrFacRouteBkupTunIngrLSRId OBJECT-TYPE
       SYNTAX        InetAddressType        MplsLsrIdentifier
       MAX-ACCESS    read-only    not-accessible
       STATUS        current
       DESCRIPTION
         "Denotes the address type of the node
         "Uniquely identifies an mplsTunnelEntry that this PLR tries to
         avoid."
       DEFVAL is
          being protected by FRR."
       REFERENCE
         "RFC3209, RFC3212"
       ::= { ipv4 mplsFrrFacRouteDBEntry 5 }

    mplsFrrFacRouteBkupTunEgrLSRId  OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."
       ::= { mplsFrrOne2OnePlrEntry 8 mplsFrrFacRouteDBEntry 6 }

    mplsFrrOne2OnePlrAvoidNAddr

    mplsFrrFacRouteDBNumProtTunOnIf OBJECT-TYPE
        SYNTAX        InetAddress            Gauge32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
         "If mplsFrrOne2OnePlrAvoidNAddrType is set to ipv4(1), then this
         value will contain the IPv4 address
            "The number of backup tunnels protecting the avoid node. This
         object is otherwise insignificant and should contain a value of
         0." specified
             interface."
       ::= { mplsFrrOne2OnePlrEntry 9 mplsFrrFacRouteDBEntry 7 }

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

    mplsFrrDetourTable

    mplsFrrFacRouteDBNumProtLspOnIf OBJECT-TYPE
        SYNTAX        SEQUENCE OF MplsFrrDetourEntry            Gauge32
        MAX-ACCESS    not-accessible        read-only
        STATUS            current
        DESCRIPTION
         "This table shows detour LSPs."
            "The number of LSPs currently being protected on
             the specified interface."
       ::= { mplsFrr1to1Objects 2 mplsFrrFacRouteDBEntry 8 }

    mplsFrrDetourEntry

    mplsFrrFacRouteDBNumProtTun OBJECT-TYPE
        SYNTAX        MplsFrrDetourEntry            Gauge32
        MAX-ACCESS    not-accessible        read-only
        STATUS            current
        DESCRIPTION
         "An entry in this table represents a detour. An entry in this
         table is only created by an SNMP agent as instructed by an MPLS
         signaling protocol. "
       INDEX {
               mplsFrrOne2OnePlrTunIdx,        -- from MPLS-TE MIB
               mplsFrrOne2OnePlrTunDetourInst, -- mplsTunnelTable
               mplsFrrOne2OnePlrTunIngrLSRId,  -- Tunnels must exist
               mplsFrrOne2OnePlrTunEgrLSRId,   -- a priori
          }
       ::= { mplsFrrDetourTable 1 }

    MplsFrrDetourEntry ::= SEQUENCE {
          mplsFrrDetourActive             TruthValue,
          mplsFrrDetourMerging            INTEGER,
          mplsFrrDetourMergedDetourInst   MplsTunnelInstanceIndex
    }

    mplsFrrDetourActive OBJECT-TYPE
       SYNTAX        TruthValue
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates whether or not the main LSP has switched over to this
         detour LSP. This is only relevant for detours originated by
            "The number of tunnels protected on this node." interface."
    ::= { mplsFrrDetourEntry 1 mplsFrrFacRouteDBEntry 9 }

    mplsFrrDetourMerging

    mplsFrrFacRouteDBProtTunStatus OBJECT-TYPE
        SYNTAX            INTEGER { none(0),
                               protectedTunnel(1),
                               detour(2)
                              active(1),
                              ready(2),
                              partial(3)
                          }
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
         "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
            "Specifies the state of the protected tunnel.

             active  This value MUST tunnel's label has been placed in the
                      LFIB and is ready to be set applied to
         detour(2) if this detour incoming
                      packets.

             ready -  This tunnel's label entry has been created but is merged with another detour
         protecting
                      not yet in the same tunnel." LFIB.

             partial - This tunnel's label entry as not been fully
                       created."
    ::= { mplsFrrDetourEntry 2 mplsFrrFacRouteDBEntry 10 }

    mplsFrrDetourMergedDetourInst

    mplsFrrFacRouteDBProtTunResvBw  OBJECT-TYPE
        SYNTAX        MplsTunnelInstanceIndex            Unsigned32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
         "This value represents
            "Specifies the instance amount of the detour with which
         this detour bandwidth in megabytes per second
             that is merged. actually reserved by the protection tunnel for
             facility backup. This object is only valid when
         mplsFrrDetourMerging value is set to detour(2).

         - lower 16 bits : protected repeated here from the MPLS-
             TE-STD-MIB because the tunnel instance
         - higher 16 bits: detour instance"
       ::= { mplsFrrDetourEntry 3 }

    --
    -- Facility-based FRR-specific Tables
    --

    mplsFrrFacRouteDBTable OBJECT-TYPE
        SYNTAX            SEQUENCE OF MplsFrrFacRouteDBEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
            "The mplsFrrDBTable provides information about the fast
            reroute database.  Each entry belongs to an interface,
            protecting backup tunnel and protected tunnel. MPLS
            interfaces defined on this node are protected will reveal the
             bandwidth reserved by the signaling protocol, which is
             typically 0 for backup tunnels and are indexed by mplsInterfaceConfIndex. Backup
            tunnels defined so as to protect the tunnels traversing an
            interface, and not over-book
             bandwidth. However, internal reservations are indexed by mplsTunnelIndex. Note that typically
             made on the
            tunnel instance index is not required, since it is implied
            to PLR, thus this value should be 0, which indicates the tunnel head interface for the
            protecting tunnel. The protecting tunnel revealed here
             as it is defined to exist
            on often different from the PLR one found in the FRR specification.  Protected tunnels are
            the LSPs that traverse the protected link.  These LSPs are
            uniquely identified by mplsTunnelIndex, mplsTunnelInstance,
            mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId."
        REFERENCE
            "Srinivansan, C., and A. Viswanathan, T. Nadeau, MPLS Traffic
            Engineering Management Information Base Using SMIv2,
             draft-ietf-mpls-te-mib-06.txt "
             MPLS-TE-STD-MIB."
     ::= { mplsFrrFacObjects 1 } mplsFrrFacRouteDBEntry OBJECT-TYPE
        SYNTAX            MplsFrrFacRouteDBEntry
        MAX-ACCESS        not-accessible 11 }

    -- Notifications

    mplsFrrProtected NOTIFICATION-TYPE
        OBJECTS { mplsFrrFacRouteDBNumProtTunOnIf,
                  mplsFrrFacRouteDBNumProtLspOnIf,
                  mplsFrrFacRouteDBNumProtTun,
                  mplsFrrFacRouteDBProtTunStatus,
                  mplsFrrFacRouteDBProtTunResvBw
                }
    STATUS      current
    DESCRIPTION
            "An entry
        "This notification is generated when a tunnel running over an
         interface as specified in the mplsFrrDBTable represents a single protected
            LSP, mplsFrrConstTable is initially
         protected by a the backup tunnel and defined for a specific
            protected interface. Note that for brevity, managers should
            consult the mplsTunnelTable present also specified in the MPLS-TE MIB
         mplsFrrConstTable. This notification should not be generated
         for
            additional information about each subsequent tunnel that is backed up by the protecting and protected
            tunnels, FRR feature
         on this LSR, as this may result in potential scaling issues
         with regard to LSR performance and the ifEntry network loading. Note also
         that notifications MUST be generated in accordance with the IF-MIB for 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 {
                mplsFrrFacRouteProtIfIdx,       -- from MPLS-TE MIB
                mplsFrrFacRouteProtTunIdx,      -- from MPLS-TE MIB

                mplsFrrFacRouteBkupTunIdx,      -- from MPLS-TE MIB
                mplsFrrFacRouteBkupTunInst,     -- mplsTunnelTable
                mplsFrrFacRouteBkupTunIngrLSRId, -- Tunnels must exist
                mplsFrrFacRouteBkupTunEgrLSRId }  -- a priori
         mplsFrrNotifMaxRate."
        ::= { mplsFrrFacRouteDBTable mplsFrrNotif 1 }

    MplsFrrFacRouteDBEntry ::= SEQUENCE

    mplsFrrUnProtected NOTIFICATION-TYPE
        OBJECTS {
        mplsFrrFacRouteProtIfIdx          InterfaceIndex,
        mplsFrrFacRouteProtTunIdx         MplsTunnelIndex,
        mplsFrrFacRouteBkupTunIdx         MplsTunnelIndex,
        mplsFrrFacRouteBkupTunInst        MplsTunnelInstanceIndex,
        mplsFrrFacRouteBkupTunIngrLSRId   MplsLsrIdentifier,
        mplsFrrFacRouteBkupTunEgrLSRId    MplsLsrIdentifier,
        mplsFrrFacRouteDBNumProtTunOnIf   Gauge32,
        mplsFrrFacRouteDBNumProtTun       Gauge32,
        mplsFrrFacRouteDBProtTunStatus    INTEGER, mplsFrrFacRouteDBNumProtTunOnIf,
                  mplsFrrFacRouteDBNumProtLspOnIf,
                  mplsFrrFacRouteDBNumProtTun,
                  mplsFrrFacRouteDBProtTunStatus,
                  mplsFrrFacRouteDBProtTunResvBw    Unsigned32
    }

    mplsFrrFacRouteProtIfIdx OBJECT-TYPE
       SYNTAX        InterfaceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the interface configured for FRR protection."
      ::= { mplsFrrFacRouteDBEntry 1
                }

    mplsFrrFacRouteProtTunIdx OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
    STATUS      current
    DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry primary index for
        "This notification is generated when the final tunnel that is
         being protected by a backup tunnel head interface designated to protect the
          interface as specified in the mplsFrrFacRouteIfProtIdx
          (and all of the tunnels using
         mplsFrrConstTable is restored to normal operation. This
         notification should not be generated for each restored tunnel,
         as this interface)." 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."
        ::= { mplsFrrFacRouteDBEntry mplsFrrNotif 2 }

    mplsFrrFacRouteBkupTunIdx OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
        "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."

    -- Module Conformance Statement

    mplsFrrGroups
       OBJECT IDENTIFIER ::= { mplsFrrFacRouteDBEntry 3 {mplsFrrConformance 1 }

    mplsFrrFacRouteBkupTunInst OBJECT-TYPE
       SYNTAX        MplsTunnelInstanceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."

    mplsFrrCompliances
       OBJECT IDENTIFIER ::= { mplsFrrFacRouteDBEntry 4 {mplsFrrConformance 2 }

    mplsFrrFacRouteBkupTunIngrLSRId OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS    not-accessible

    mplsFrrModuleFullCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
         "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."
       REFERENCE
         "1. RSVP-TE: Extensions to RSVP
         "Compliance statements for LSP Tunnels,
           Awduche et al, RFC 3209, December 2001
          2. Constraint-Based LSP Setup using LDP, Jamoussi
           (Editor), agents that support the MPLS FRR
         MIB."

      MODULE IF-MIB -- The Interfaces Group MIB, RFC 3212, January 2002"
       ::= 2863.
         MANDATORY-GROUPS { mplsFrrFacRouteDBEntry 5
            ifGeneralInformationGroup,
            ifCounterDiscontinuityGroup
         }

    mplsFrrFacRouteBkupTunEgrLSRId  OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies an mplsTunnelEntry that is
          being protected by FRR."
       ::=

      MODULE MPLS-TE-STD-MIB  -- The MPLS Traffic Engineering
                              -- MIB, RFC 3812
         MANDATORY-GROUPS { mplsFrrFacRouteDBEntry 6
            mplsTunnelGroup,
            mplsTunnelScalarGroup
         }

    mplsFrrFacRouteDBNumProtTunOnIf OBJECT-TYPE
        SYNTAX            Gauge32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
            "The number of backup tunnels protecting the specified
            interface."
       ::=

       MODULE -- this module
           MANDATORY-GROUPS { mplsFrrFacRouteDBEntry 7
                             mplsFrrScalarGroup,
                             mplsFrrTunARHopGroup,
                             mplsFrrConstGroup
                            }

    mplsFrrFacRouteDBNumProtTun OBJECT-TYPE

       OBJECT       mplsFrrConstRowStatus
       SYNTAX            Gauge32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
            "The number of tunnels protected on this interface."
    ::=       RowStatus { mplsFrrFacRouteDBEntry 8 active(1), notInService(2) }

    mplsFrrFacRouteDBProtTunStatus OBJECT-TYPE
        SYNTAX            INTEGER
       WRITE-SYNTAX RowStatus { active(1),
                              ready(2),
                              partial(3) notInService(2),
                                createAndGo(4), destroy(6)
                              }
        MAX-ACCESS        read-only
        STATUS            current
       DESCRIPTION
            "Specifies the state of the protected tunnel.

             active  This tunnel's label has been placed in "Support for createAndWait and notReady is
                    not required."

       GROUP mplsFrrOne2OnePLRDetourGroup
       DESCRIPTION
           "This group is mandatory for devices which support
            the
                      LFIB one-to-one FRR mechanism, and is ready to be applied to incoming
                      packets.

             ready -  This tunnel's label entry has been created but optional for
            those which do not."

       GROUP mplsFrrOne2OnePlrGroup
       DESCRIPTION
           "This group is
                      not yet in mandatory for devices which support
            the LFIB.

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

    mplsFrrFacRouteDBProtTunResvBw  OBJECT-TYPE
        SYNTAX            Unsigned32
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
            "Specifies the amount of bandwidth in megabytes per second
             that one-to-one FRR mechanism, and is actually reserved by the protection tunnel optional for
             facility backup. This value
            those which do not."

       GROUP mplsFrrFacRouteDBGroup
       DESCRIPTION
           "This group is repeated here from the MPLS-
             TE MIB because the tunnel entry will reveal the bandwidth
             reserved by mandatory for devices which support
            the signaling protocol, Facility Backup FRR mechanism, and is optional
            for those which do not."

       GROUP mplsFrrNotifGroup
       DESCRIPTION
           "This group is typically 0 mandatory for backup tunnels so as to not over-book bandwidth.
             However, internal reservations are typically made on devices which support
            the
             PLR, thus this value should be revealed here." Facility Backup FRR mechanism, and is optional
            for those which do not."

       ::= { mplsFrrFacRouteDBEntry 10 mplsFrrCompliances 1 }

    -- Notifications

    -- Ed Note: Currently these notifications only apply to
    --          Facility-based FRR. Do we need to define
    --          additional notifications

    mplsFrrModuleReadOnlyCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
         "Compliance statements for One2One?

    mplsFrrProtected NOTIFICATION-TYPE
        OBJECTS agents that support the MPLS FRR
         MIB."
       MODULE
           MANDATORY-GROUPS { mplsFrrFacRouteDBNumProtTunOnIf,
                  mplsFrrFacRouteDBNumProtTun,
                  mplsFrrFacRouteDBProtTunStatus,
                  mplsFrrFacRouteDBProtTunResvBw
                             mplsFrrScalarGroup,
                             mplsFrrTunARHopGroup,
                             mplsFrrConstGroup
                            }
    STATUS      current

       GROUP mplsFrrOne2OnePLRDetourGroup
       DESCRIPTION
           "This notification group is generated when a tunnel running over an
         interface as specified in mandatory for devices which support
            the mplsFrrConstTable one-to-one FRR mechanism, and is initially
         protected by the backup tunnel also specified in the
         mplsFrrConstTable. This notification should not be generated optional for each subsequent tunnel that
            those which do not."

       GROUP mplsFrrOne2OnePlrGroup
       DESCRIPTION
           "This group is backed up by mandatory for devices which support
            the 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."
        ::= { mplsFrrNotif 1 }

    mplsFrrUnProtected NOTIFICATION-TYPE
        OBJECTS { mplsFrrFacRouteDBNumProtTunOnIf,
                  mplsFrrFacRouteDBNumProtTun,
                  mplsFrrFacRouteDBProtTunStatus,
                  mplsFrrFacRouteDBProtTunResvBw
                }
    STATUS      current
    DESCRIPTION
        "This notification is generated when the final tunnel that is
         being protected by a backup tunnel as specified in the
         mplsFrrConstTable is restored to normal operation. This
         notification should not be generated for each restored tunnel,
         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."
        ::= { mplsFrrNotif 2 }

    -- 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 {
                             mplsFrrScalarGroup,
                             mplsFrrConstGroup,
                             mplsFrrLogGroup
                            }

       GROUP mplsFrrTunARHopGroup
       DESCRIPTION
           "Objects that are required to present per hop
            fast-reroute protection status."

       GROUP mplsFrrOne2OnePLRDetourGroup
       DESCRIPTION
           "This group is mandatory for devices which support
            the 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 one-to-one one-to-one FRR mechanism, and is optional for
            those which do not."

       GROUP mplsFrrFacRouteDBGroup
       DESCRIPTION
           "This group is mandatory for devices which support
            the Facility Backup FRR mechanism, and is optional
            for those which do not."

       GROUP mplsFrrNotifGroup
       DESCRIPTION
           "This group is mandatory for devices which support
            the Facility Backup FRR mechanism, and is optional
            for those which do not."

       -- mplsFrrConstTable
       OBJECT        mplsFrrConstProtectionMethod        mplsFrrConstFrrProtectionMethod
       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        mplsFrrConstHopLimit
       MIN-ACCESS    read-only
       DESCRIPTION
         "Write access is not required."

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

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

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

       ::= { mplsFrrCompliances 1 2 }

    -- Units of conformance

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

    mplsFrrConstGroup OBJECT-GROUP
       OBJECTS {
          mplsFrrConstProtectionMethod,
          mplsFrrConstProtectionType,
          mplsFrrConstSetupPrio,
          mplsFrrConstHoldingPrio,
          mplsFrrConstInclAnyAffinity,
          mplsFrrConstInclAllAffinity,
          mplsFrrConstExclAllAffinity,
          mplsFrrConstExclAnyAffinity,
          mplsFrrConstHopLimit,
          mplsFrrConstBandwidth,
          mplsFrrConstStorageType,
          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 }
    mplsFrrTunARHopGroup         OBJECT-GROUP
     OBJECTS {
              mplsFrrTunARHopProtectAvailable,
              mplsFrrTunARHopProtectInUse,
              mplsFrrTunARHopBandwidthProtect,
              mplsFrrTunARHopNodeProtect
               mplsFrrTunARHopProtectType,
               mplsFrrTunARHopProtectTypeInUse
             }
     STATUS        current
     DESCRIPTION
         "Objects that are required to present per hop fast-reroute
          protection status."
    ::= { mplsFrrGroups 3}

    mplsFrrOne2OnePLRDetourGroup OBJECT-GROUP
     OBJECTS {
              mplsFrrDetourActive,
              mplsFrrDetourMerging,
              mplsFrrDetourMergedDetourInst
             }
     STATUS        current
     DESCRIPTION
         "Objects that are required to present the detour LSP
          information at the detour ingress, transit and egress LSRs."
     ::= { mplsFrrGroups 4 }

    mplsFrrLogGroup

    mplsFrrOne2OnePlrGroup OBJECT-GROUP
      OBJECTS { mplsFrrLogEventTime,
              mplsFrrLogInterface,
              mplsFrrLogEventType,
              mplsFrrLogEventDuration,
              mplsFrrLogEventReasonString
          mplsFrrOne2OnePlrSenderAddrType,
          mplsFrrOne2OnePlrSenderAddr,
          mplsFrrOne2OnePlrAvoidNAddrType,
          mplsFrrOne2OnePlrAvoidNAddr
         }
    STATUS        current
    DESCRIPTION
       "Objects that are required to represent FRR logging information
       at the detour ingress, transit and egress LSRs." FRR
        One-2-One PLR information."
    ::= { mplsFrrGroups 5 }

    mplsFrrOne2OnePlrGroup

    mplsFrrFacRouteDBGroup OBJECT-GROUP
      OBJECTS {
          mplsFrrOne2OnePlrSenderAddrType,
          mplsFrrOne2OnePlrSenderAddr,
          mplsFrrOne2OnePlrAvoidNAddrType,
          mplsFrrOne2OnePlrAvoidNAddr mplsFrrFacRouteDBNumProtTunOnIf,
                mplsFrrFacRouteDBNumProtLspOnIf,
                mplsFrrFacRouteDBNumProtTun,
                mplsFrrFacRouteDBProtTunStatus,
                mplsFrrFacRouteDBProtTunResvBw
        }
    STATUS        current
    DESCRIPTION
       "Objects that are required to represent the FRR
        One-2-One PLR
        Facility Route Database information."
    ::= { mplsFrrGroups 6 }

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

    END

-- End of MPLS-FRR-STD-MIB

6. Acknowledgments

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

7. Editors' Addresses

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

   Thomas D. Nadeau
   Cisco Systems, Inc.
   300 Beaverbrook Drive
   Boxborough, MA
   Phone: +1-978-936-1470
   Email: tnadeau@cisco.com

8. Contributors' Addresses

    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

9.  Full Copyright Statement

    Copyright (C) The Internet Society (2005).  This document is
    subject to the rights, licenses and restrictions contained in BCP
    78, and except as set forth therein, the authors retain all their
    rights.

    This document and the information contained herein are provided
    on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
    REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND
    THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

10. Security Considerations

   It is clear that these MIB modules are potentially useful for
   monitoring of MPLS LSRs supporting fast reroute.  This
   MIB module can also be used for configuration of certain objects,
   and anything that can be configured can be incorrectly configured,
   with potentially disastrous results.

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and objects and their
   sensitivity/vulnerability:

   o    the mplsFrrConst table and some objects in the
        mplsFrrScalarGroup contain objects which may be used
        to provision MPLS fast reroute features.  Unauthorized
        access to these objects could result in disruption of
        traffic on the network.  This is especially true if the
        objects in question refer to previously provisioned protection
        tunnels and configuration. The use of stronger
        mechanisms such as SNMPv3 security should be considered where
        possible.  Specifically, SNMPv3 VACM and USM MUST be used with
        any v3 agent which implements this MIB module.  Administrators
        should consider whether read access to these objects should
        be allowed, since read access may be undesirable under certain
        circumstances.

   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to
   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These are the tables and objects and their
   sensitivity/vulnerability:

   o    the mplsFrrPLRTable, mplsFrrDetourTable, and
        mplsFrrTunnelARHopTable tables and some objects
        contained in the mplsFrrScalarGroup
        collectively show the MPLS fast reroute interfaces, tunnels,
        and other associated fast reroute feature configurations
        as well as their linkages to other MPLS-related
        configuration and/or performanc statistics.
        Administrators not wishing to reveal this information should
        consider these objects sensitive/vulnerable and take
        precautions so they are not revealed.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module, is properly configured to give access
   to the FRR
        Facility Route Database information."
    ::= { mplsFrrGroups 7 }

    mplsFrrNotifGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
                    mplsFrrProtected,
                    mplsFrrUnProtected
                  }
    STATUS        current
    DESCRIPTION
         "Objects objects only to those principals (users) that are required have legitimate
   rights to represent FRR notifications."
    ::= { mplsFrrGroups 8 }

    END

7. Security Considerations

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

8. indeed GET or SET (change/create/delete) them.

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

11.1 Normative References

    [RFC4090] Pan, P., Swallow, G., Atlas, A., "Fast Reroute
              Extensions to Indicate Requirement
       Levels", BCP 14, RFC 2119, March 1997.

    [3]Srinivasan, RSVP-TE for LSP Tunnels", RFC4090,
              May 2005.

   [RFC3812] 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, RFC 3814, June 2004

   [RFC3813] Srinivasan, C., Viswanathan, A. and T. Nadeau, T.,
             "MPLS Label Switch Router Management Information Base ",
              RFC 3813, June 2004

   [RFC3811]  Nadeau, T. and J. Cucchiara, "Definition of Textual
              Conventions and for Multiprotocol Label Switching (MPLS)
              Management", RFC 3811, June 2004.

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

   [RFC3291]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "TextualConventions for Internet Draft <draft-ietf-
       mpls-lsr-mib-08.txt, January Network
              Addresses", RFC 3291, May 2002. Work in progress.

    [5]Pan, P., Gan,

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

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

   [RFC2579] McCloghrie, K., Perkins, D., Atlas,
       A., Jork, Schoenwaelder, J., Case,
             J., Rose, M., Fast Reroute Techniques in RSVP-TE, draft-ietf-mpls-
       rsvp-lsp-fastreroute-00.txt, and S. Waldbusser, "Textual Conventions
             for SMIv2", STD 58, RFC 2579, April 1999.

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

11.2 Informative Referencse

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

9. Acknowledgments

    We would like to thank Alia Atlas, Yeong Tai 2001.

   [RFC3410]  Case, J., Mundy, R., Partain, D. and Walter Vanhimbeeck,
    Mike Piecuch B. Stewart,
              "Introduction and Adrien Grise Applicability Statements for the helpful discussions
              Internet-Standard Management Framework", RFC 3410,
              December 2002.

   [RFC2434]  Narten, T. and
    contributions H. Alvestrand.,  "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 2434,
              October 1998.

12.  IANA Considerations

   As described in MPLS-TC-STD-MIB [RFC3811], MPLS related
   standards track MIB modules should be rooted under the mplsStdMIB
   subtree. There is one MPLS-related
   MIB module contained in this document. The following "IANA
   Considerations" subsect requests IANA for a new assignment under
   the mplsStdMIB subtree.  New assignments can only be made via a
   Standards Action as specified in [RFC2434].

12.1.  IANA Considerations for MPLS-FRR-STD-MIB

   The IANA is requested to assign { mplsStdMIB 12 } to the
   MPLS-FRR-STD-MIB module specified in this document.

10.

13. Intellectual Property Considerations Statement

   The IETF takes no position regarding the validity or scope of any
    intellectual property
   Intellectual Property Rights or other rights that might be claimed to per-
    tain
   pertain 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 nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the IETF's procedures with respect to rights in standards-track and standards-
    related documentation RFC documents can be
   found in BCP-11. BCP 78 and BCP 79.

   Copies of claims of
    rights IPR disclosures made available for publication to the IETF Secretariat 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. on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which that may cover technology that may be required to practice implement
   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. at ietf-
   ipr@ietf.org.