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


    IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, mib-2,
       Integer32,
       NOTIFICATION-TYPE, Gauge32
          FROM SNMPv2-SMI                            -- [RFC2578]
       MODULE-COMPLIANCE, OBJECT-GROUP,
       NOTIFICATION-GROUP
          FROM SNMPv2-CONF                           -- [RFC2580]
       TruthValue
          FROM SNMPv2-TC                             -- [RFC2579]
       InterfaceIndex
          FROM IF-MIB                                -- [RFC2863]
       MplsTunnelIndex, MplsTunnelInstanceIndex,
       MplsLsrIdentifier, MplsBitRate
          FROM MPLS-TC-STD-MIB                       -- [RFC3811]
       mplsFrrGeneralScalarGroup, mplsFrrGeneralTunnelARHopGroup,
       mplsFrrGeneralConstraintsGroup
          FROM MPLS-FRR-GENERAL-STD-MIB
       ;

    mplsFrrFacilityMIB 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 facility 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 204 }

    -- Top-level components of this MIB module

    mplsFrrFacilityNotifications         OBJECT IDENTIFIER
                                    ::= { mplsFrrFacilityMIB 0 }

    mplsFrrFacilityObjects               OBJECT IDENTIFIER
                                    ::= { mplsFrrFacilityMIB 1 }





    mplsFrrFacilityConformance           OBJECT IDENTIFIER
                                    ::= { mplsFrrFacilityMIB 2 }

    -- Scalar objects defined for the facility backup style of FRR

    mplsFrrConfiguredInterfaces OBJECT-TYPE
       SYNTAX        Integer32(0..2147483647)
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of MPLS interfaces configured for
          protection."
       DEFVAL { 0 }
       ::= { mplsFrrFacilityObjects 1 }

    mplsFrrActiveInterfaces OBJECT-TYPE
       SYNTAX        Gauge32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of interfaces currently being
          protected.  This value MUST be less than or equal
          to mplsFrrConfiguredInterfaces."
       DEFVAL { 0 }
       ::= { mplsFrrFacilityObjects 2 }

    mplsFrrConfiguredBypassTunnels OBJECT-TYPE
       SYNTAX        Gauge32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of bypass tunnels configured to
          protect TE tunnels on this LSR."
       DEFVAL { 0 }
       ::= { mplsFrrFacilityObjects 3 }

    mplsFrrActiveBypassTunnels OBJECT-TYPE
       SYNTAX        Gauge32

       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
         "Indicates the number of bypass tunnels indicated in
          mplsFrrConfiguredBypassTunnels whose operStatus
          is up(1), indicating that they are currently protecting
          TE tunnels on this LSR."
       DEFVAL { 0 }
       ::= { mplsFrrFacilityObjects 4 }





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

          This object is needed to control the notifications
          emitted by this implementation."
       DEFVAL { false }
       ::= { mplsFrrFacilityObjects 5 }

    mplsFrrFacilityNotificationsMaxRate OBJECT-TYPE
       SYNTAX       Gauge32
       UNITS        "Notifications per Second"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
         "This variable indicates the maximum number of
          notifications issued per second.  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 case the
          implementation chooses to drop the events during
          throttling instead of queuing them to be sent at a later
          time, it is assumed that there will be no indication
          that events are being thrown away.

          A value of 0 means no throttling is applied and
          events may be generated at the rate at which they occur."
       DEFVAL       { 0 }
       ::= { mplsFrrFacilityObjects 6 }

    --
    -- Facility-based FRR-specific tables
    --
    -- Tables in this section pertain only to the facility-based
    -- style of FRR.
    --

     mplsFrrFacilityDBTable OBJECT-TYPE
        SYNTAX            SEQUENCE OF MplsFrrFacilityDBEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
          "The mplsFrrFacilityDBTable provides information about the
           fast-reroute database.  Each entry belongs to a protected





           interface, protecting backup tunnel, and protected tunnel.
           MPLS interfaces defined on this node are protected by
           backup tunnels and are indicated by the index
           mplsFrrFacilityProtectedIfIndex.  If the interface index is
           set to 0, this indicates that the remaining indexes apply
           to all configured protected interfaces.

           Note that all objects in this table are read-only, and
           if new objects are added to this table, they should also
           be read-only.

           It is recommended that ifIndex persistence be enabled
           across re-initializations.
           If persistence is not implemented, then the value of
           mplsFrrFacilityProtectedIfIndex in this
           table cannot be guaranteed across restarts and all entries
           in this table MUST NOT be persistent, or the values of
           mplsFrrFacilityProtectedIfIndex MUST be reconstructed
           on restart.

           It is recommended that entries in this table be persistent
           across reboots.

           The protecting tunnel is indicated by the
           index mplsFrrFacilityProtectingTunnelIndex and
           represents a valid mplsTunnelEntry.  Note that the tunnel
           instance index of the protecting tunnel may be set to 0,
           which indicates the tunnel head interface for the
           protecting tunnel, as per RFC 3812, but it may also be
           defined using the following semantics:

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

    mplsFrrFacilityDBEntry OBJECT-TYPE
       SYNTAX        MplsFrrFacilityDBEntry
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "An entry in the mplsFrrFacilityDBTable represents a single
          protected LSP, protected by a backup tunnel on a
          specific protected interface, or if the interface
          index is set to 0, on all interfaces.  Note that for
          brevity, managers should consult the mplsTunnelTable
          present in the MPLS-TE-STD-MIB module for
          additional information about the protecting and protected
          tunnels, and the ifEntry in the IF-MIB module





          for the protected interface."
       INDEX {
              mplsFrrFacilityProtectedIfIndex,   -- protected ifIndex
              mplsFrrFacilityProtectingTunnelIndex,-- protecting TE tun
              mplsFrrFacilityBackupTunnelIndex,    -- protected TE tun
              mplsFrrFacilityBackupTunnelInstance, -- LSP
              mplsFrrFacilityBackupTunnelIngressLSRId,
              mplsFrrFacilityBackupTunnelEgressLSRId }
       ::= { mplsFrrFacilityDBTable 1 }

    MplsFrrFacilityDBEntry ::= SEQUENCE {
       mplsFrrFacilityProtectedIfIndex          InterfaceIndex,
       mplsFrrFacilityProtectingTunnelIndex     MplsTunnelIndex,
       mplsFrrFacilityBackupTunnelIndex         MplsTunnelIndex,
       mplsFrrFacilityBackupTunnelInstance      MplsTunnelInstanceIndex,
       mplsFrrFacilityBackupTunnelIngressLSRId  MplsLsrIdentifier,
       mplsFrrFacilityBackupTunnelEgressLSRId   MplsLsrIdentifier,
       mplsFrrFacilityDBNumProtectingTunnelOnIf Gauge32,
       mplsFrrFacilityDBNumProtectedLspOnIf     Gauge32,
       mplsFrrFacilityDBNumProtectedTunnels     Gauge32,
       mplsFrrFacilityDBProtectingTunnelStatus  INTEGER,
       mplsFrrFacilityDBProtectingTunnelResvBw  MplsBitRate
    }

    mplsFrrFacilityProtectedIfIndex OBJECT-TYPE
       SYNTAX        InterfaceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the interface configured for FRR
          protection.  If this object is set to 0, this indicates
          that the remaining indexing combinations for this row
          apply to all interfaces on this device for which
          the FRR feature can operate."
       ::= { mplsFrrFacilityDBEntry 1 }

    mplsFrrFacilityProtectingTunnelIndex OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry primary index for
          the tunnel head interface designated to protect the
          interface as specified in the mplsFrrFacilityProtectedIfIndex
          (and all of the tunnels using this interface).  Note
          that the corresponding mplsTunnelInstance MUST BE
          0 as per the indexing convention stipulated."






       REFERENCE
         "Section 6.1 of RFC 3812."
       ::= { mplsFrrFacilityDBEntry 2 }

    mplsFrrFacilityBackupTunnelIndex OBJECT-TYPE
       SYNTAX        MplsTunnelIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry primary index for
          the TE tunnel LSP being protected on the
          interface as specified by mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 3 }

    mplsFrrFacilityBackupTunnelInstance OBJECT-TYPE
       SYNTAX        MplsTunnelInstanceIndex
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry secondary index
          for the TE tunnel LSP being protected on the
          interface as specified by mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 4 }

    mplsFrrFacilityBackupTunnelIngressLSRId OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry third index
          for the TE tunnel LSP being protected on the
          interface as specified by mplsFrrFacilityProtectedIfIndex."
       REFERENCE
         "Section 6.1 of RFC 3812."
       ::= { mplsFrrFacilityDBEntry 5 }

    mplsFrrFacilityBackupTunnelEgressLSRId  OBJECT-TYPE
       SYNTAX        MplsLsrIdentifier
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "Uniquely identifies the mplsTunnelEntry fourth index
          for the TE tunnel LSP being protected on the
          interface as specified by mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 6 }








    mplsFrrFacilityDBNumProtectingTunnelOnIf OBJECT-TYPE
       SYNTAX            Gauge32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
         "The number of backup tunnels protecting the
          interface specified by mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 7 }

    mplsFrrFacilityDBNumProtectedLspOnIf OBJECT-TYPE
       SYNTAX            Gauge32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
         "The number of LSPs currently being protected on
          the interface specified by
          mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 8 }

    mplsFrrFacilityDBNumProtectedTunnels OBJECT-TYPE
       SYNTAX            Gauge32
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
         "The number of tunnels protected on the interface
          specified by mplsFrrFacilityProtectedIfIndex."
       ::= { mplsFrrFacilityDBEntry 9 }

    mplsFrrFacilityDBProtectingTunnelStatus OBJECT-TYPE
       SYNTAX            INTEGER {
                             active(1),
                             ready(2),
                             partial(3)
                         }
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
         "Specifies the state of the protecting tunnel as
          specified by mplsFrrFacilityProtectingTunnelIndex.

          active  - This tunnel's label has been placed in the
                    LFIB and is ready to be applied to incoming
                    packets.
          ready   - This tunnel's label entry has been created but
                    is not yet in the LFIB.
          partial - This tunnel's label entry has not been fully
                    created."
       ::= { mplsFrrFacilityDBEntry 10 }





    mplsFrrFacilityDBProtectingTunnelResvBw  OBJECT-TYPE
       SYNTAX            MplsBitRate
       UNITS             "kilobits per second"
       MAX-ACCESS        read-only
       STATUS            current
       DESCRIPTION
         "Specifies the amount of bandwidth in units
          of '1,000 bits per second', actually reserved by
          the protecting tunnel for facility backup purposes.
          This value is repeated here from the MPLS-TE-STD-MIB
          module because the tunnel entry will reveal the
          bandwidth reserved by the signaling protocol, which is
          typically 0 for backup tunnels so as to not over-book
          bandwidth.  However, internal reservations are
          typically made on the PLR; thus, this value should be
          revealed here, as it is often different from
          mplsTunnelResourceMeanRate found in the MPLS-TE-STD-MIB
          module."
       ::= { mplsFrrFacilityDBEntry 11 }

    -- Notifications
    mplsFrrFacilityInitialBackupTunnelInvoked  NOTIFICATION-TYPE
       OBJECTS { mplsFrrFacilityDBNumProtectingTunnelOnIf,
                 mplsFrrFacilityDBNumProtectedLspOnIf,
                 mplsFrrFacilityDBNumProtectedTunnels,
                 mplsFrrFacilityDBProtectingTunnelStatus,
                 mplsFrrFacilityDBProtectingTunnelResvBw
               }
       STATUS      current
       DESCRIPTION
         "This notification is generated when a tunnel running over an
          interface as specified in the mplsFrrConstraintsTable is
          initially protected by the backup tunnel also specified in the
          mplsFrrConstraintsTable.  In some implementations, there may
          be a difference between when the control plane triggers
          this notification and when the hardware is programmed to
          utilize the protection path.  Due to the urgency of this
          operation, it is acceptable for the control plane to
          issue this notification either before or after it programs
          the hardware.  In cases where it is the latter approach,
          the notification MUST be sent immediately after the
          data plane has been altered.

          This notification should not be generated for each subsequent
          tunnel that is backed up by the FRR feature on this LSR, as
          this may result in potential scaling issues with regard to
          LSR performance and network load.  Note also that
          notifications MUST be generated in accordance with the





          mplsFrrNotificationsMaxRate."

       ::= { mplsFrrFacilityNotifications 1 }

    mplsFrrFacilityFinalTunnelRestored NOTIFICATION-TYPE
       OBJECTS { mplsFrrFacilityDBNumProtectingTunnelOnIf,
                 mplsFrrFacilityDBNumProtectedLspOnIf,
                 mplsFrrFacilityDBNumProtectedTunnels,
                 mplsFrrFacilityDBProtectingTunnelStatus,
                 mplsFrrFacilityDBProtectingTunnelResvBw
               }
       STATUS      current
       DESCRIPTION
         "This notification is generated when the final tunnel that is
          being protected by a backup tunnel as specified in the
          mplsFrrConstraintsTable 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 load.  Note also that
          notifications MUST be generated in accordance with the
          mplsFrrNotificationsMaxRate."
       ::= { mplsFrrFacilityNotifications 2 }

    -- Module Conformance Statement

    mplsFrrFacilityCompliances
       OBJECT IDENTIFIER ::= {mplsFrrFacilityConformance 1 }

    mplsFrrFacilityGroups
       OBJECT IDENTIFIER ::= {mplsFrrFacilityConformance 2 }

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

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

       MODULE -- this module
           MANDATORY-GROUPS {
                             mplsFrrFacilityScalarGroup,
                             mplsFrrFacilityDBGroup,





                             mplsFrrFacilityNotificationsGroup
                            }

       ::= { mplsFrrFacilityCompliances 1 }

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

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

       MODULE -- this module
           MANDATORY-GROUPS {
                             mplsFrrFacilityScalarGroup,
                             mplsFrrFacilityDBGroup,
                             mplsFrrFacilityNotificationsGroup
                            }

       ::= { mplsFrrFacilityCompliances 2 }

    -- Units of conformance

    mplsFrrFacilityScalarGroup OBJECT-GROUP
       OBJECTS { mplsFrrConfiguredInterfaces,
                 mplsFrrActiveInterfaces,
                 mplsFrrConfiguredBypassTunnels,
                 mplsFrrActiveBypassTunnels,
                 mplsFrrFacilityNotificationsEnabled,
                 mplsFrrFacilityNotificationsMaxRate
         }
       STATUS        current
       DESCRIPTION
         "Objects that are required to represent the FRR
          Facility Route Database information."
       ::= { mplsFrrFacilityGroups 1 }

    mplsFrrFacilityDBGroup OBJECT-GROUP
       OBJECTS { mplsFrrFacilityDBNumProtectingTunnelOnIf,
                 mplsFrrFacilityDBNumProtectedLspOnIf,
                 mplsFrrFacilityDBNumProtectedTunnels,
                 mplsFrrFacilityDBProtectingTunnelStatus,





                 mplsFrrFacilityDBProtectingTunnelResvBw
         }
       STATUS        current
       DESCRIPTION
         "Objects that are required to represent the FRR
          Facility Route Database information."
       ::= { mplsFrrFacilityGroups 2 }

    mplsFrrFacilityNotificationsGroup NOTIFICATION-GROUP
       NOTIFICATIONS { mplsFrrFacilityInitialBackupTunnelInvoked,
                       mplsFrrFacilityFinalTunnelRestored
                     }
       STATUS        current
       DESCRIPTION
         "Objects that are required to represent FRR notifications."
       ::= { mplsFrrFacilityGroups 3 }

   END

   
