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

 IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, mib-2,
    Integer32, Gauge32
       FROM SNMPv2-SMI                            -- [RFC2578]
    MODULE-COMPLIANCE, OBJECT-GROUP
       FROM SNMPv2-CONF                           -- [RFC2580]
    TruthValue
       FROM SNMPv2-TC                             -- [RFC2579]
    MplsTunnelIndex, MplsTunnelInstanceIndex,
    MplsLsrIdentifier
       FROM MPLS-TC-STD-MIB                       -- [RFC3811]
    InetAddressType, InetAddress

       FROM INET-ADDRESS-MIB                      -- [RFC4001]
    mplsFrrGeneralScalarGroup, mplsFrrGeneralTunnelARHopGroup,
    mplsFrrGeneralConstraintsGroup
       FROM MPLS-FRR-GENERAL-STD-MIB
    ;

 mplsFrrOne2OneMIB MODULE-IDENTITY
    LAST-UPDATED
       "201111030000Z" -- 03 Nov 2011 00:00:00 GMT
    ORGANIZATION
       "Multiprotocol Label Switching (MPLS) Working Group"
    CONTACT-INFO
         "
                  Riza Cetin
           Email: riza.cetin@alcatel.be

                  Thomas D. Nadeau
           Email: thomas.nadeau@ca.com

                  A S Kiran Koushik
           Email: kkoushik@cisco.com

                  Stefaan De Cnodder
           Email: Stefaan.de_cnodder@alcatel.be

                  Der-Hwa Gan
           Email: dhg@juniper.net
         "
    DESCRIPTION
      "Copyright (c) 2011 IETF Trust and the persons
       identified as authors of the code.  All rights
       reserved.

       Redistribution and use in source and binary forms,
       with or without modification, is permitted pursuant
       to, and subject to the license terms contained in,
       the Simplified BSD License set forth in Section 4.c
       of the IETF Trust's Legal Provisions Relating to
       IETF Documents
       (http://trustee.ietf.org/license-info).

       This MIB module contains object definitions for the
       MPLS Traffic Engineering one-to-one backup method for
       Fast Reroute as defined in RFC 4090."

 -- Revision history.
    REVISION
      "201111030000Z" -- 03 Nov 2011 00:00:00 GMT
    DESCRIPTION
      "Initial version.  Published as RFC 6445."
    ::= { mib-2 203 }

 -- Top-level components of this MIB module

 mplsFrrOne2OneObjects OBJECT IDENTIFIER
                         ::= { mplsFrrOne2OneMIB 1 }
 mplsFrrOne2OneConformance   OBJECT IDENTIFIER
                         ::= { mplsFrrOne2OneMIB 2 }

 -- Scalar objects defined for the one-to-one style of FRR

 mplsFrrIncomingDetourLSPs OBJECT-TYPE
    SYNTAX        Integer32 (0..2147483647)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "The number of detour LSPs entering the device."
    ::= { mplsFrrOne2OneObjects 1 }

 mplsFrrOutgoingDetourLSPs OBJECT-TYPE
    SYNTAX        Integer32 (0..2147483647)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "The number of detour LSPs leaving the device."
    ::= { mplsFrrOne2OneObjects 2 }

 mplsFrrOne2OneDetourOriginating OBJECT-TYPE
    SYNTAX        Integer32(0..2147483647)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "The number of detour LSPs originating at this PLR."
    ::= { mplsFrrOne2OneObjects 3 }

 mplsFrrActiveProtectedLSPs OBJECT-TYPE
    SYNTAX        Gauge32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "Indicates the number of LSPs currently protected by
       the FRR feature where this device acts as the PLR
       for those LSPs."
    ::= { mplsFrrOne2OneObjects 4 }

 --

 -- One-to-One specific tables
 --
 -- Tables in this section pertain only to the one-to-one
 -- style of FRR.
 --

 -- MPLS Fast-Reroute Point of Local Repair table

 mplsFrrOne2OnePlrTable  OBJECT-TYPE
    SYNTAX        SEQUENCE OF MplsFrrOne2OnePlrEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "This table shows a list of protected TE tunnels with
       the corresponding protecting tunnel, as well as the PLR
       where the protecting tunnel that initiated the detour
       LSPs traverses this node."
    ::= { mplsFrrOne2OneObjects 5 }

 mplsFrrOne2OnePlrEntry  OBJECT-TYPE
    SYNTAX        MplsFrrOne2OnePlrEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "An entry in this table represents a protected tunnel LSP
       together with its detour tunnel instance.  An entry in
       this table is only created by an SNMP engine as instructed
       by an MPLS signaling protocol.

       The entries of this table are present in all LSRs on the
       path of the detour LSP.

       The objects mplsFrrOne2OnePlrSenderAddrType and
       mplsFrrOne2OnePlrSenderAddr can be modified after the row
       is created.

       The objects mplsFrrOne2OnePlrTunnelIndex,
       mplsFrrOne2OnePlrTunnelDetourInstance,
       mplsFrrOne2OnePlrTunnelIngressLSRId,
       and mplsFrrOne2OnePlrTunnelEgressLSRId have the same
       values as the objects mplsTunnelIndex, mplsTunnelInstance,
       mplsTunnelIngressLSRId, and mplsTunnelEgressLSRId of the
       detour tunnel instance created in the mplsTunnelTable
       (MPLS-TE-STD-MIB).

       The entries in this table will be deleted when the
       corresponding entries in the mplsTunnelTable are deleted."
    INDEX { mplsFrrOne2OnePlrTunnelIndex,     -- from MPLS-TE-STD-MIB

            mplsFrrOne2OnePlrTunnelDetourInstance,-- mplsTunnelTable
            mplsFrrOne2OnePlrTunnelIngressLSRId,-- Tunnels must exist
            mplsFrrOne2OnePlrTunnelEgressLSRId,  -- a priori
            mplsFrrOne2OnePlrId    }
    ::= { mplsFrrOne2OnePlrTable 1 }

 MplsFrrOne2OnePlrEntry ::= SEQUENCE {
     mplsFrrOne2OnePlrTunnelIndex           MplsTunnelIndex,
     mplsFrrOne2OnePlrTunnelDetourInstance  MplsTunnelInstanceIndex,
     mplsFrrOne2OnePlrTunnelIngressLSRId    MplsLsrIdentifier,
     mplsFrrOne2OnePlrTunnelEgressLSRId     MplsLsrIdentifier,
     mplsFrrOne2OnePlrId                    MplsLsrIdentifier,
     mplsFrrOne2OnePlrSenderAddrType        InetAddressType,
     mplsFrrOne2OnePlrSenderAddr            InetAddress,
     mplsFrrOne2OnePlrAvoidNodeAddrType     InetAddressType,
     mplsFrrOne2OnePlrAvoidNodeAddr         InetAddress
 }

 mplsFrrOne2OnePlrTunnelIndex OBJECT-TYPE
    SYNTAX        MplsTunnelIndex
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "Uniquely identifies a tunnel between a pair of LSRs
       from the mplsTunnelEntry."
    ::= { mplsFrrOne2OnePlrEntry 1 }

 mplsFrrOne2OnePlrTunnelDetourInstance OBJECT-TYPE
    SYNTAX        MplsTunnelInstanceIndex
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "Uniquely identifies a detour instance of a tunnel from
       the mplsTunnelEntry.

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

 mplsFrrOne2OnePlrTunnelIngressLSRId OBJECT-TYPE
    SYNTAX        MplsLsrIdentifier
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "The purpose of this object is to uniquely identify a
       tunnel within a network.  When the MPLS signaling
       protocol is rsvp(2), this object SHOULD contain the
       same value as the Extended Tunnel ID field in the

       SESSION object.  When the MPLS signaling protocol
       is crldp(3), this object SHOULD contain the same
       value as the Ingress LSR Router ID field in the
       LSPID TLV object.

       This value represents the head-end of the protected
       tunnel instance."
    REFERENCE
      "Section 4.7 of RFC 3209."
    ::= { mplsFrrOne2OnePlrEntry 3 }

 mplsFrrOne2OnePlrTunnelEgressLSRId OBJECT-TYPE
    SYNTAX        MplsLsrIdentifier
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "Specifies the egress LSR ID of the protected tunnel instance."
    ::= { mplsFrrOne2OnePlrEntry 4 }

 mplsFrrOne2OnePlrId OBJECT-TYPE
    SYNTAX        MplsLsrIdentifier
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "This value represents the PLR that has initiated a detour LSP
       to protect a tunnel instance.

       This value is signaled via the DETOUR object defined in
       MPLS RSVP."
    REFERENCE
      "Section 4.2 of RFC 4090."
    ::= { mplsFrrOne2OnePlrEntry 5 }

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

 mplsFrrOne2OnePlrSenderAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
      "The IP address of the PLR that has initiated the detour LSP.
       The type of this address is determined by the value of the
       mplsFrrOne2OnePlrSenderAddrType object."
    ::= { mplsFrrOne2OnePlrEntry 7 }

 mplsFrrOne2OnePlrAvoidNodeAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "Denotes the address type of the node that this PLR tries to
       avoid."
    DEFVAL        { ipv4 }
    ::= { mplsFrrOne2OnePlrEntry 8 }

 mplsFrrOne2OnePlrAvoidNodeAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "The IP address of the node that this PLR tries to avoid.
       The type of this address is determined by the value of the
       mplsFrrOne2OnePlrAvoidNodeAddrType object.

       This value is signaled via the DETOUR object defined in
       MPLS RSVP."
    REFERENCE
      "Section 4.2 of RFC 4090."
    ::= { mplsFrrOne2OnePlrEntry 9 }

 -- MPLS One-to-One Fast-Reroute Detour table

 mplsFrrOne2OneDetourTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF MplsFrrOne2OneDetourEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "This table shows detour LSPs."
    ::= { mplsFrrOne2OneObjects 6 }

 mplsFrrOne2OneDetourEntry OBJECT-TYPE
    SYNTAX        MplsFrrOne2OneDetourEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "An entry in this table represents a detour.  An entry in this
       table is only created by an SNMP engine as instructed by an

       MPLS signaling protocol."
    INDEX {
            mplsFrrOne2OnePlrTunnelIndex,     -- from MPLS-TE-STD-MIB
            mplsFrrOne2OnePlrTunnelDetourInstance, -- mplsTunnelTable
            mplsFrrOne2OnePlrTunnelIngressLSRId,-- Tunnels must exist
            mplsFrrOne2OnePlrTunnelEgressLSRId    -- a priori
       }
    ::= { mplsFrrOne2OneDetourTable 1 }

 MplsFrrOne2OneDetourEntry ::= SEQUENCE {
       mplsFrrOne2OneDetourActive             TruthValue,
       mplsFrrOne2OneDetourMergedStatus       INTEGER,
       mplsFrrOne2OneDetourMergedDetourInst   MplsTunnelInstanceIndex
 }

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

       If the value of this object is 'true', then it means that
       the main LSP has switched over to this detour LSP.  Otherwise,
       it contains a value of 'false'.
       This is only relevant for detours originated by this node."
    ::= { mplsFrrOne2OneDetourEntry 1 }

 mplsFrrOne2OneDetourMergedStatus OBJECT-TYPE
    SYNTAX        INTEGER { notMerged(1),
                            mergedWithProtectedTunnel(2),
                            mergedWithDetour(3)
                          }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "This value represents whether or not this detour is merged.
       This value is set to notMerged(1) if this detour is not
       merged.

       This value is set to mergedWithProtectedTunnel(2) if
       this detour is merged with the protected tunnel.  This value
       is mergedWithDetour(3) if this detour is merged
       with another detour protecting the same tunnel."
    ::= { mplsFrrOne2OneDetourEntry 2 }

 mplsFrrOne2OneDetourMergedDetourInst OBJECT-TYPE
    SYNTAX        MplsTunnelInstanceIndex
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "This value represents the mplsTunnelInstance of the detour
       with which this detour is merged.  This object is only valid
       when mplsFrrOne2OneDetourMergedStatus is set to
       mergedWithDetour(3).

       - lower 16 bits : protected tunnel instance
       - higher 16 bits: detour instance"
    ::= { mplsFrrOne2OneDetourEntry 3 }

 -- Module Conformance Statement

 mplsFrrOne2OneCompliances
    OBJECT IDENTIFIER ::= {mplsFrrOne2OneConformance 1 }

 mplsFrrOne2OneGroups
    OBJECT IDENTIFIER ::= {mplsFrrOne2OneConformance 2 }

 mplsFrrOne2OneModuleFullCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
      "Compliance statements for SNMP engines that support the
       MPLS-FRR-ONE2ONE-STD-MIB module."

   MODULE MPLS-FRR-GENERAL-STD-MIB -- MPLS FRR Generic MIB
      MANDATORY-GROUPS {
                          mplsFrrGeneralScalarGroup,
                          mplsFrrGeneralTunnelARHopGroup,
                          mplsFrrGeneralConstraintsGroup
      }

    MODULE -- this module
        MANDATORY-GROUPS {
                          mplsFrrOne2OneScalarsGroup,
                          mplsFrrOne2OnePLRDetourGroup,
                          mplsFrrOne2OnePlrGroup
                         }
    ::= { mplsFrrOne2OneCompliances 1 }

 mplsFrrOne2OneModuleReadOnlyCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
      "Compliance statements for SNMP engines that support the

       MPLS-FRR-ONE2ONE-STD-MIB module."
    MODULE
        MANDATORY-GROUPS {
                          mplsFrrOne2OneScalarsGroup,
                          mplsFrrOne2OnePLRDetourGroup,
                          mplsFrrOne2OnePlrGroup
                         }
    -- mplsFrrOne2OnePlrTable

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

    OBJECT        mplsFrrOne2OnePlrSenderAddr
    MIN-ACCESS    read-only
    DESCRIPTION
      "Write access is not required."
    ::= { mplsFrrOne2OneCompliances 2 }

 -- Units of conformance

 mplsFrrOne2OneScalarsGroup OBJECT-GROUP
    OBJECTS {
             mplsFrrIncomingDetourLSPs,
             mplsFrrOutgoingDetourLSPs,
             mplsFrrOne2OneDetourOriginating,
             mplsFrrActiveProtectedLSPs
            }
    STATUS        current
    DESCRIPTION
      "Objects that are required for general One-to-One PLR
       information."
    ::= { mplsFrrOne2OneGroups 1 }

 mplsFrrOne2OnePLRDetourGroup OBJECT-GROUP
    OBJECTS {
             mplsFrrOne2OneDetourActive,
             mplsFrrOne2OneDetourMergedStatus,
             mplsFrrOne2OneDetourMergedDetourInst
            }
    STATUS        current
    DESCRIPTION
      "Objects that are required to present the detour LSP
       information at the detour ingress, transit, and egress
       LSRs."
    ::= { mplsFrrOne2OneGroups 2 }

 mplsFrrOne2OnePlrGroup OBJECT-GROUP
    OBJECTS {
        mplsFrrOne2OnePlrSenderAddrType,
        mplsFrrOne2OnePlrSenderAddr,
        mplsFrrOne2OnePlrAvoidNodeAddrType,
        mplsFrrOne2OnePlrAvoidNodeAddr
       }
    STATUS        current
    DESCRIPTION
      "Objects that are required to represent the FRR
       One-to-One PLR information."
    ::= { mplsFrrOne2OneGroups 3 }

END
