-- MIB file created 28-Feb-2014 12:06:58, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-PFR-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-PFR-MIB.my"
-- Compile options "4 7 F H N W 03 06 0B 0G 0N 0T"

IMPORTS
    StorageType, RowStatus, TimeStamp, DateAndTime, TruthValue, 
    TimeInterval
            FROM SNMPv2-TC-v1
    InetAddressType, InetAddress, InetPortNumber
            FROM INET-ADDRESS-MIB
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    DscpOrAny
            FROM DIFFSERV-DSCP-TC
    CounterBasedGauge64
            FROM HCNUM-TC
    CiscoPort, InterfaceIndexOrZero
            FROM CISCO-TC
    CiscoPdProtocolIndex
            FROM CISCO-NBAR-PROTOCOL-DISCOVERY-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Counter, Gauge, TimeTicks
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212
    TRAP-TYPE
            FROM RFC-1215;

ciscoPfrMIB OBJECT IDENTIFIER ::= { ciscoMgmt 772 }
-- MODULE-IDENTITY
--  LastUpdated
--    201211130000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--    Cisco Systems
--    Customer Service
--    
--    Postal: 170 W Tasman Drive
--    San Jose, CA  95134
--    USA
--    
--    Tel: +1 800 553-NETS
--    
--    E-mail: cs-pfr@cisco.com
--  Descr
--    This MIB module defines objects that describe Performance
--    Routing (PfR).  Standard routing protocols base routing
--    decisions on reachability and the number of hops between the
--    source and destination networks.  PfR collects and analyzes
--    other performance data, such as delay, loss, jitter, MOS, and
--    link utilization, which allows it to make routing decisions
--    based on policies defined by the network administrator.
--    
--    Glossary
--    ========
--    
--    PfR               Performance Routing.
--    MC                PfR Master Controller.
--    BR                PfR Border Router.
--    DRIP              Dynamic Router Interaction Protocol.
--    TC                PfR Traffic Class.
--    IPSLA             IP Service Level Agreement (active probing).
--    Exit              PfR external interface.
--    Link Group        PfR logical grouping of exits to narrow down
--                      potential exits for a TC to use.
--    Cost Minimization PfR feature that assigns costs to exits and
--                      minimizes the overall monetary cost for a TC
--    Rollup            Data collection for monetary cost calculation
--                      for all available exits.
--    DSCP              Diff-Serv Control Point.
--    PfR Policy        Global PfR policy defined under PfR master.
--                      TC policy defined under PfR map.
--    PfR Map           Container for a PfR policy.
--    MOS               Mean opinion score
--    PBR               Policy based routing. PBR uses route map to
--                      enforce the routing decision made by PfR.    
--    
--    
--    
--    PfR Elements
--    ============
--    
--    A PfR system consists of a Master Controller (MC) and one or
--    more Border Routers (BRs).  The MC is a hardware or software
--    entity that is not in the data path.  A BR is a software entity
--    in the data path, typically running on an edge router. 
--    
--    The MC and BRs communicate with each other over a socket
--    interface using the Dynamic Router Interaction Protocol (DRIP).
--    The MC sends commands to the BRs related to PfR Policies and
--    the monitoring of PfR traffic classes (TCs).  The BRs send
--    performance data gathered using either 'passive data' provided
--    by NetFlow, 'active data' provided by sending artificial probes
--    that are created using IPSLA APIs, or both, depending on the
--    PfR policies configured on the MC.
--    
--    This MIB module describes a MC object as a single row in the
--    cpfrMCTable and the BR object as a single row in the
--    cpfrBRTable.
--    
--    PfR Exits
--    =========
--    
--    A PfR system must have at least two interfaces (i.e., exits)
--    configured as 'external interfaces' over which a TC's
--    destination network is reachable in order for PfR to function.
--    These two exits can be on the same BR or on different BRs.
--    
--    
--            +======+      +======+      |====> Exit 1
--            |  MC  | ==== |  BR  | ==== |
--            +======+      +======+      |====> Exit 2
--    
--                               **** OR ****
--    
--                                 +======+
--                          | ==== |  BR  | ====> Exit 1
--            +======+      |      +======+
--            |  MC  | ==== |
--            +======+      |      +======+
--                          | ==== |  BR  | ====> Exit 2
--                                 +======+
--    
--    
--    PfR can assign these exits to different PfR Link Groups.  A PfR
--    exit can be in at most three Link Groups at one time. (See 'PfR
--    Policies' below).
--    
--    This MIB module describes a PfR exit as a single row in the
--    cpfrExitTable and a cost minimization policy of an exit as a
--    single row of the cpfrExitCostTierTable.
--    
--    PfR Traffic Classes
--    ===================
--    
--    A traffic class is a generic term for a set of traffic flows
--    coming into or going out of a network that have a common
--    characteristic, such as destination address, source address,
--    application, or DSCP value.
--    
--    The simplest form of a TC is 'all traffic going to the same
--    destination prefix'.  Additional parameters defines more
--    specific TCs.
--    
--    PfR monitors the TCs that are specified either by enabling PfR
--    learn mode or by direct configuration in a PfR map.  PfR
--    can learn TCs with the highest throughput, with the highest
--    delay, with a destination address inside the PfR network, or
--    TCs
--    that matches a configured PfR Learn List.  The BRs use iBGP to
--    obtain information about 'inside TCs'.  A PfR map specifies TCs
--    to which the policy applies by configuring match clause.
--    
--    This MIB module describes a PfR TC as a single row in the
--    cpfrTrafficClassTable and current status of a TC as a single
--    row of the cpfrTrafficClassStatusTable, and performance metrics
--    gathered for a specific TC as a single row of the
--    cpfrTrafficClassMetricsTable.
--    
--    PfR Policies
--    ============
--    
--    A PfR policy describes the performance metrics the router is to
--    gather, how to gather these metrics, how frequently it should
--    gather these metrics, and how these metrics influence routing
--    decisions.  Once enabled, PfR provides a global default PfR
--    policy.  
--    
--    A PfR policy can be configured to use one link group as a
--    'primary' and one as a 'fallback' link group.  If PfR
--    determines that a TC has gone 'Out of Policy' based on the
--    current PfR policy, it attempts to move the TC to an exit in
--    the same primary link group, and only moves it to an exit in
--    the fallback link group, if configured, if no exit in the
--    primary link group is 'In Policy'.
--    
--    This MIB module describes a PfR map policy in a single row of
--    the cpfrMapTable and a match clause configured for a specific
--    PfR map as a single row of the cpfrMatchTable.
--  RevDate
--    201211130000Z
--  RevDescr
--    Add the following mib groups:
--    cpfrMasterControllerGroupRev1,
--    cpfrBorderRouterGroupRev1
--    cpfrMCNotificationGroup; 
--    Add ciscoPfrMIBComplianceRev1;
--    Modify cpfrTCSLastOOPReason object to add 
--    rsvpOOPRecomputeExclude enum value; 
--    Modify cpfrBRConnFailureReason object to add 
--    authFailure(3), socketError(4), timerExpired(5) enum values; 
--    Modify cpfrTCSLastOOPReason object to add 
--    rsvpOOPRecomputeExclude;
--  RevDate
--    201104040000Z
--  RevDescr
--    The first version of PfR MIB module.

ciscoPfrMIBNotifs OBJECT IDENTIFIER ::= { ciscoPfrMIB 0 }
ciscoPfrMIBObjects OBJECT IDENTIFIER ::= { ciscoPfrMIB 1 }
ciscoPfrMIBConform OBJECT IDENTIFIER ::= { ciscoPfrMIB 2 }
ciscoPfrMIBCompliances OBJECT IDENTIFIER ::= { ciscoPfrMIBConform 1 }
ciscoPfrMIBGroups OBJECT IDENTIFIER ::= { ciscoPfrMIBConform 2 }

PfrMetricPolicyType ::= INTEGER {
        relative(1),
        threshold(2)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    'relative'
--    Relative percentage is used. 
--    
--    'threshold'
--    Maximum threshold is used.

PfrLastUncontrolReason ::= INTEGER {
        none(1),
        activatingUnsedFcdTgt(2),
        ifaceDown(3),
        newProbeTargetAssigned(4),
        newTargetAssigned(5),
        borderDown(6),
        uncontrolNonOptimizedPfx(7),
        recontrolNull0Pfx(8),
        recontrolSinkHolePfx(9),
        modeRouteChange(10),
        pfxEnabled(11),
        uncontrolModeMonitorChange(12),
        insideEnabled(13),
        forcedNextHop(14),
        forwardToNull0(15),
        clearOnePfx(16),
        clearOneTc(17),
        grantUpdated(18),
        tcInFastMode(19),
        pbrBRTopologyChange(20),
        pfrReqNotMet(21),
        probeFrequencyChange(22),
        fcdTgtAssRemMod(23),
        policyChangedAddedNewFcdProbeTgt(24),
        usingFcdTgtNow(25),
        firstTargetWithDscpAdded(26),
        usingLmNow(27),
        lastTargetWithDscpRemoved(28),
        couldntMonitor(29),
        couldntControl(30),
        applControlOnBrFailed(31),
        allProtoCouldNtControl(32),
        excludePfxFailed(33),
        ipflowRestFailed(34),
        couldntExclude(35),
        dontDowngradeAllEntrances(36),
        maxDownGrade(37),
        cantSelectEntrances(38),
        unhandledOopReasonInChooseExit(39),
        oopModeSelectExitGood(40),
        couldntFindBestExitInAllLinkGrps(41),
        couldntFindBestExit(42),
        failedToControlRoute(43),
        endOfProbing(44),
        retryForcedNextHop(45),
        noStatusInPfxTimeout(46),
        couldntChooseExitInPfxTimeout(47),
        inconsistentView(48),
        unableToSendControlMsg(49),
        nbarIdStateUpdated(50),
        controledExitIsNotCurrent(51),
        exitMisMatch(52),
        newExitWhileInpolicy(53),
        unknownExit(54),
        controlledExitIsNotCurrForUpd(55),
        couldntControlPasPfxInSpecMode(56),
        remoteStatsNotFound(57),
        nbarInternalIfAddedRemoved(58),
        noPassiveData(59),
        probeNumPktsChanged(60),
        last(61)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This textual convention denotes all types of uncontrol reasons
--    that causes PfR to uncontrol a TC.
--    
--    'none'
--       TC is uncontrolled due to unknown reasons.
--    
--    'activatingUnsedFcdTgt'
--       TC is uncontrolled due to activating an unused forced
--    target.
--    
--    'ifaceDown'
--       TC is uncontrolled due to an interface down.
--    
--    'newProbeTargetAssigned'        
--       TC is uncontrolled due to newly assigned probe targets.
--    
--    'newTargetAssigned'
--       TC is uncontrolled due to newly assigned targets.
--    
--    'borderDown'
--       TC is uncontrolled due to BR down.
--    
--    'uncontrolNonOptimizedPfx'
--       TC is uncontrolled due to uncontrolled non optimized
--    prefixes.
--    
--    'recontrolNull0Pfx'
--       TC is uncontrolled due to recontrolling a null0 prefix.
--    
--    'recontrolSinkHolePfx'
--       TC is uncontrolled due to recontrolling a sink hole prefix.
--    
--    'modeRouteChange'
--       TC is uncontrolled due to route mode change.
--    
--    'pfxEnabled'
--       TC is uncontrolled due to prefix enabled.
--    
--    'uncontrolModeMonitorChange'
--       TC is uncontrolled due to monitor mode change.
--    
--    'insideEnabled'
--       TC is uncontrolled due to inside prefix learn enabled.
--    
--    'forcedNextHop'
--       TC is uncontrolled due to forced next hop configured.
--    
--    'forwardToNull0'
--       TC is uncontrolled since TCs are forwarded to null0
--    interfaces.
--    
--    'clearOnePfx'
--       TC is uncontrolled due to clearing one prefix.
--    
--    'clearOneTc'
--       TC is uncontrolled due to clearing one TC.
--    
--    'grantUpdated'
--       TC is uncontrolled due to granted update.
--    
--    'tcInFastMode'
--       TC is uncontrolled due to TC in fast mode.
--    
--    'pbrBRTopologyChange'
--       TC is uncontrolled due to BR topology change when PBR is
--    met.
--    
--    'pfrReqNotMet'
--       TC is uncontrolled since PfR requests are not met.
--    
--    'probeFrequencyChange'
--       TC is uncontrolled due to probe frequency change.
--    
--    'fcdTgtAssRemMod'
--        TC is uncontrolled due to assigned force target removed.
--    
--    'policyChangedAddedNewFcdProbeTgt'
--        TC is uncontrolled due to newly added forced probe target.
--    
--    'usingFcdTgtNow'
--        TC is uncontrolled due to starting using forced target.
--    
--    'firstTargetWithDscpAdded'
--        TC is uncontrolled due to newly added target with DSCP.
--    
--    'lastTargetWithDscpRemoved'
--        TC is uncontrolled due to last target with DSCP removed.
--    
--    'couldntMonitor'
--        TC is uncontrolled since PfR could not monitor it.
--    
--    'couldntControl'
--        TC is uncontrolled since PfR could not control it.
--    
--    'applControlOnBrFailed'
--        TC is uncontrolled since PfR could not control an 
--        application.
--    
--    'allProtoCouldNtControl'
--        TC is uncontrolled since control attempts by all protocols
--    fail.
--    
--    'excludePfxFailed'
--        TC is uncontrolled due to failing excluding a prefix.
--    
--    'ipflowRestFailed'
--        TC is uncontrolled due to ip flow reset failure.
--    
--    'couldntExclude'
--        TC is uncontrolled due to failing excluding prefixes.
--    
--     'dontDowngradeAllEntrances'
--        TC is uncontrolled due to no downgrade all entrance.
--    
--    'maxDownGrade'
--        TC is uncontrolled due to maximizing downgrade.
--    
--    'cantSelectEntrances'
--        TC is uncontrolled since PfR cannot select entrances.
--    
--    'unhandledOopReasonInChooseExit'
--        TC is uncontrolled due to unhandled out of policy reason
--    when choosing exit.
--    
--    'oopModeSelectExitGood'
--        TC is uncontrolled due to out of policy when selecting good
--    exit.
--    
--    'couldntFindBestExitInAllLinkGrps'
--       TC is uncontrolled since PfR could not find best exit in all
--    linkgroups.
--    
--    'couldntFindBestExit'
--       TC is uncontrolled since PfR could not find best exit.
--    
--    'failedToControlRoute'
--       TC is uncontrolled due to route control failure.
--    
--    'endOfProbing'
--       TC is uncontrolled due to the end of active probing.
--    
--    'retryForcedNextHop'
--       TC is uncontrolled due to retrying forced next hop.
--    
--    'noStatusInPfxTimeout'
--       TC is uncontrolled due to missing status before the time is
--    out for controlling a prefix.
--    
--    'couldntChooseExitInPfxTimeout'
--       TC is uncontrolled since PfR could not choose exit before
--    the
--    time is out for controlling a prefix.
--    
--    'unableToSendControlMsg'
--       TC is uncontrolled since control messages could not be sent
--    out.
--    
--    'nbarIdStateUpdated'
--       TC is uncontrolled due to nbar state update failure.
--    
--    'exitMisMatch'
--       TC is uncontrolled due to exit mismatch.
--    
--    'unknownExit'
--       TC is uncontrolled due to unknown exits.
--    
--    'newExitWhileInpolicy'
--       TC is uncontrolled due to new exit appearance.
--    
--    'couldntControlPasPfxInSpecMode'
--       TC is uncontrolled since PfR could not control passive
--    prefixes in specific mode.
--    
--    'remoteStatsNotFound'
--       TC is uncontrolled due to unclear remote statistic data.
--    
--    'nbarInternalIfAddedRemoved'
--       TC is uncontrolled since NBAR internal interface is added or
--    removed.
--    
--    'noPassiveData'
--       TC is uncontrolled due to lack of passive data.
--    
--    'probeNumPktsChanged'
--       TC is uncontrolled due to the number of probing packets
--    changed.

PfRMasterControllerIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies a MC instance.

PfrBorderRouterIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies a BR instance.

PfrExitIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies an Exit instance.

PfrMapIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies a PfR map instance.

PfrMapPolicyIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies a PfR policy instance of a PfR map.

PfrMapIndexOrZero ::= Gauge(0..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention is an extension of the PfrMapIndex
--    convention.  This extension permits the additional value of
--    zero.  The value zero is object-specific and must therefore be
--    defined as part of the description of any object which uses
--    this
--    syntax.

PfrLearnListIndex ::= Gauge(1..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention denotes an arbitrary integer-value that
--    uniquely identifies a learn list instance.

PfrLearnListIndexOrZero ::= Gauge(0..4294967295)
-- TEXTUAL-CONVENTION
--  DspHint
--    d
--  Status
--    mandatory
--  Descr
--    This textual convention is an extension of the
--    PfrLearnListIndex convention.  This extension permits the
--    additional value of zero.  The value zero is object-specific and
--    must therefore be defined as part of the description of any
--    object which uses this syntax.

PfrResolvePolicyType ::= INTEGER {
        --?? enum value of zero may cause problems
--        none(0),
        cost(1),
        delay(2),
        jitter(3),
        loss(4),
        mos(5),
        range(6),
        utilization(7)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This textual convention denotes the type of resolver policies
--    supported by PfR.
--    
--    'cost'
--    The resolver policy is based on routing cost.
--    
--    'delay'
--    The resolver policy is based on routing delay.
--    
--    'jitter'
--    The resolver policy is based on jitter.
--    
--    'loss'
--    The resolver policy is based on packet loss.
--    
--    'mos' 
--    The resolver policy is based on MOS.

cpfrMCTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrMCEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the MC instances created by the system."
    ::= { ciscoPfrMIBObjects 1 }

cpfrMCEntry OBJECT-TYPE
    SYNTAX CpfrMCEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the configuration and status of one PfR
        MC.
        
        A simple device may only support a single MC, where a more
        sophisticate device may support more than one MC.
        
        A peer SNMP entity may create a MC by setting an instance of
        cpfrMCRowStatus to 'createAndWait' or 'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create
        a MC.  In these cases, the system must automatically create a
        row in the cpfrMCTable.
        
        A peer SNMP entity may destroy a MC by setting the
        corresponding instance of cpfrMCRowStatus to 'destroy'.  Observe
        that an implementation that does not support this option must
        specify this limitation in an agent capability statement.
        
        Other management entities may destroy a MC.  In these cases,
        the system must automatically destroy the corresponding row in
        the
        cpfrMCTable."
    INDEX { cpfrMCIndex }
    ::= { cpfrMCTable 1 }

CpfrMCEntry ::= SEQUENCE {
    cpfrMCIndex PfRMasterControllerIndex,
    cpfrMCStorageType StorageType,
    cpfrMCRowStatus RowStatus,
    cpfrMCMapIndex PfrMapIndexOrZero,
    cpfrMCKeepAliveTimer Gauge,
    cpfrMCMaxPrefixTotal Gauge,
    cpfrMCMaxPrefixLearn Gauge,
    cpfrMCEntranceLinksMaxUtil Gauge,
    cpfrMCExitLinksMaxUtil Gauge,
    cpfrMCPortNumber InetPortNumber,
    cpfrMCTracerouteProbeDelay Gauge,
    cpfrMCRsvpPostDialDelay Gauge,
    cpfrMCRsvpSignalingRetries Gauge,
    cpfrMCNetflowExporter SnmpAdminString,
    cpfrMCAdminStatus INTEGER,
    cpfrMCOperStatus INTEGER,
    cpfrMCConnStatus INTEGER,
    cpfrMCNumofBorderRouters Gauge,
    cpfrMCNumofExits Gauge,
    cpfrMCLearnState INTEGER,
    cpfrMCLearnStateTimeRemain Gauge,
    cpfrMCPrefixCount Counter,
    cpfrMCPrefixLearned Counter,
    cpfrMCPrefixConfigured Counter,
    cpfrMCPbrMet TruthValue,
    cpfrMCLoggingAdminStatus INTEGER,
    cpfrMCControlMode INTEGER,
    cpfrMCClear INTEGER,
    cpfrMCLastClearTime TimeStamp,
    cpfrMCNotifisControl INTEGER,
    cpfrMCChangeConfigType INTEGER,
    cpfrMCChangeConfigValue INTEGER
    }

cpfrMCIndex OBJECT-TYPE
    SYNTAX PfRMasterControllerIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a PfR MC."
    ::= { cpfrMCEntry 1 }

cpfrMCStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable when the
        storageType of this entry is permanent(4):
        cpfrMCMapIndex, cpfrMCKeepAliveTimer, cpfrMCMaxPrefixTotal,    
        
        cpfrMCMaxPrefixLearn, cpfrMCMaxRangeReceivePercent,  
        cpfrMCMaxRangeUtilPercentMax, cpfrMCPortNumber,        
        cpfrMCTracerouteProbeDelay, cpfrMCRsvpPostDialDelay,        
        cpfrMCRsvpSignalingRetries, cpfrMCNetflowExporter,       
        cpfrMCAdminStatus."
    DEFVAL { nonVolatile }
    ::= { cpfrMCEntry 2 }

cpfrMCRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the MC table.  The
        following columnar objects must be valid in order to transition
        the row to the active state: 
        None.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrMCEntry 3 }

cpfrMCMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates a set of PfR policy map entries in
        cpfrMapTable associated with the MC.  A value of zero indicates
        that there is no policy map associated with the MC and that the
        values in the default policy should be used for all TCs.  The
        peer SNMP entity can retrieve this value and retrieve the
        cpfrMapEntry rows indexed by this value to understand the PfR
        policies.  Alternatively the peer SNMP entity can assign the
        value of pfrMapIndex to this object to associate a set of
        policies to MC."
    DEFVAL { 0 }
    ::= { cpfrMCEntry 4 }

cpfrMCKeepAliveTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the value of the PfR keepalive timer.
        The MC sends keepalive packets to BRs to maintain connectivity
        between the MC and the BR.  If the MC does not receive keepalive
        packets from a BR before the keepalive timer expires and this
        situation happens three times in a row,  then the MC will not
        maintain the connection."
    DEFVAL { 5 }
    ::= { cpfrMCEntry 5 }

cpfrMCMaxPrefixTotal OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    prefixes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum number of prefixes that a PfR
        MC will monitor.  Limiting the number of prefixes a MC will
        monitor and learn reduces memory and system resource
        consumption."
    DEFVAL { 5000 }
    ::= { cpfrMCEntry 6 }

cpfrMCMaxPrefixLearn OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    prefixes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum number of prefixes that a PfR
        MC will learn."
    DEFVAL { 2500 }
    ::= { cpfrMCEntry 7 }

cpfrMCEntranceLinksMaxUtil OBJECT-TYPE
    SYNTAX Gauge(1..100)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization threshold of
        incoming traffic that can be transmitted over a PfR-managed
        entrance link interface."
    DEFVAL { 20 }
    ::= { cpfrMCEntry 8 }

cpfrMCExitLinksMaxUtil OBJECT-TYPE
    SYNTAX Gauge(1..100)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization of outbound
        traffic that can be transmitted over a PfR-managed exit
        interface."
    DEFVAL { 20 }
    ::= { cpfrMCEntry 9 }

cpfrMCPortNumber OBJECT-TYPE
    SYNTAX InetPortNumber
--    Rsyntax Gauge(0..65535)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a dynamic port number for communication
        between a PfR MC and a PfR BR."
    DEFVAL { 3949 }
    ::= { cpfrMCEntry 10 }

cpfrMCTracerouteProbeDelay OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the time interval between traceroute
        probe cycles."
    DEFVAL { 10000 }
    ::= { cpfrMCEntry 11 }

cpfrMCRsvpPostDialDelay OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the delay before PfR returns the default
        routing path to RSVP."
    DEFVAL { 0 }
    ::= { cpfrMCEntry 12 }

cpfrMCRsvpSignalingRetries OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    retries
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the number of retries that RSVP will
        query PfR for the alternate path."
    DEFVAL { 1 }
    ::= { cpfrMCEntry 13 }

cpfrMCNetflowExporter OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of PfR Netflow exporter."
    DEFVAL { "" }
    ::= { cpfrMCEntry 14 }

cpfrMCAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        enable(1),
        disable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object can be used to enable or disable PfR operation in
        the system.
        
        'enable'
           Enable MC on the router.
        
        'disable'
           Disable MC on the router."
    DEFVAL { disable }
    ::= { cpfrMCEntry 15 }

cpfrMCOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        inactive(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the operational status of PfR MC.
        
        'active'
           MC is active.
        
        'inactive'
           MC is not active."
    ::= { cpfrMCEntry 16 }

cpfrMCConnStatus OBJECT-TYPE
    SYNTAX INTEGER {
        success(1),
        closed(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the state of the connection between MC
        and BRs. 
        
        'success'
           MC is successfully connected to at least one BR.
        
        'closed'
           MC is not connected to any BR."
    ::= { cpfrMCEntry 17 }

cpfrMCNumofBorderRouters OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    border routers
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of BRs that peer with the
        MC."
    ::= { cpfrMCEntry 18 }

cpfrMCNumofExits OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    exits
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the total number of PfR external
        interfaces configured on a MC."
    ::= { cpfrMCEntry 19 }

cpfrMCLearnState OBJECT-TYPE
    SYNTAX INTEGER {
        disabled(1),
        started(2),
        writing(3),
        sleep(4),
        retry(5)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the status of PfR learning operation.
        
        'disable'
           PfR learning mode is not enabled.
        
        'started'
           PfR is learning TCs.
        
        'writing'
           PfR is storing the learned data of TCs.
        
        'sleep'
           PfR is waiting for entering into another learning period.
        
        'retry'
           PfR is retrying to learn the TCs."
    ::= { cpfrMCEntry 20 }

cpfrMCLearnStateTimeRemain OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates time remaining in the current prefix
        learning period measured in seconds."
    ::= { cpfrMCEntry 21 }

cpfrMCPrefixCount OBJECT-TYPE
    SYNTAX Counter
--  Units
--    prefixes
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the total number of prefixes PfR is
        monitoring."
    ::= { cpfrMCEntry 22 }

cpfrMCPrefixLearned OBJECT-TYPE
    SYNTAX Counter
--  Units
--    prefixes
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of prefixes PfR has learned."
    ::= { cpfrMCEntry 23 }

cpfrMCPrefixConfigured OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of configured prefixes PfR is
        monitoring."
    ::= { cpfrMCEntry 24 }

cpfrMCPbrMet OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the PBR requirements have been
        met.  If PBR requirements are not met, the BRs cannot
        communicate with each other over the internal interfaces and
        cannot redirect traffic to each other using PBR route maps."
    ::= { cpfrMCEntry 25 }

cpfrMCLoggingAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        enable(1),
        disable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether logging is enabled or not on PfR
        MC.
        
        'enable'
           logging is enabled.
        
        'disable'
           logging is disabled."
    ::= { cpfrMCEntry 26 }

cpfrMCControlMode OBJECT-TYPE
    SYNTAX INTEGER {
        observe(1),
        control(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies PfR MC control-mode.
        
        'observe'
        PfR doesn't control traffic classes, but observes them.
        
        'control'
        PfR controls traffic classes."
    ::= { cpfrMCEntry 27 }

cpfrMCClear OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        clearAll(2),
        clearAllPrefixes(3),
        clearAllBorders(4)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the clear operation that an MC should
        perform.  A read on this object will return the last successful
        clear operation performed by the master controller.
        
        'none'
           No clear operation was executed by MC since the time it
           became operational. This is read-only.
        
        'clearAll'
           Specifies the MC to clear all prefixes in PfR master
           database, connections to all border routers, and restart
           the PfR master process.
        
        'clearAllPrefixes'
           Specifies the MC to clear all prefixes in PfR master
           database.
        
        'clearAllBorders'
           Specifies the MC to clear connections to all border
           routers."
    ::= { cpfrMCEntry 28 }

cpfrMCLastClearTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the value of sysUpTime the last time the
        MC successfully performed a clear operation."
    ::= { cpfrMCEntry 29 }

cpfrMCNotifisControl OBJECT-TYPE
    SYNTAX INTEGER {
        enable(1),
        disable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether PfR notifications is enabled or
        not
        from PfR MC.
        
        'enable'
           notification is enabled.
        
        'disable'
           notification is disabled."
    ::= { cpfrMCEntry 30 }

cpfrMCChangeConfigType OBJECT-TYPE
    SYNTAX INTEGER {
        cpfrMCLoggingAdminStatus(1),
        cpfrMCAdminStatus(2),
        cpfrMCControlMode(3),
        cpfrMCClear(4)
        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates which of the following configuration is
        changed.
        
        'cpfrMCLoggingAdminStatus'
           cpfrMCLoggingAdminStatus is changed.
        
        'cpfrMCAdminStatus'
           cpfrMCAdminStatus is changed.
        
        'cpfrMCControlMode'
           cpfrMCControlMode is changed.
        
        'cpfrMCClear'
           cpfrMCClear is changed."
    ::= { cpfrMCEntry 31 }

cpfrMCChangeConfigValue OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the value to which the type of
        configuration specified in cpfrMCChangeConfigType, is changed."
    ::= { cpfrMCEntry 32 }

cpfrMapTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrMapEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the PfR map instances created by the system.
        
        This table has a sparse expansion dependent relationship on
        cpfrMCTable, containing one or more rows for each cpfrMCEntry."
    ::= { ciscoPfrMIBObjects 2 }

cpfrMapEntry OBJECT-TYPE
    SYNTAX CpfrMapEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the configuration of one PfR map.
        
        A device creates a row in a cpfrMapTable when it specifies a
        PfR map.  Likewise, such a device destroys a row in the 
        cpfrBRTable when removing a PfR map.
        
        A peer SNMP entity may create a PfR map by setting an 
        instance of cpfrMapRowStatus to 'createAndWait' or 
        'createAndGo'.  Observe that an implementation that does not 
        support these option must specify these limitations in an 
        agent capability statement.
        
        Other management entities (e.g., the local console) may create
        a PfR Map.  In these cases, the system must automatically 
        create a row in the cpfrMapTable.
        
        A peer SNMP entity may destroy a PfR map by setting the
        corresponding instance of cpfrMapRowStatus to 'destroy'. 
        Observe that an implementation that does not support this option
        must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy a Map.  In these cases,
        the system must automatically destroy the corresponding row in
        the
        cpfrMapTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrMCEntry."
    INDEX { cpfrMapIndex, cpfrMapPolicyIndex }
    ::= { cpfrMapTable 1 }

CpfrMapEntry ::= SEQUENCE {
    cpfrMapIndex PfrMapIndex,
    cpfrMapPolicyIndex PfrMapPolicyIndex,
    cpfrMapStorageType StorageType,
    cpfrMapRowStatus RowStatus,
    cpfrMapName SnmpAdminString,
    cpfrMapBackoffMinTimer Gauge,
    cpfrMapBackoffMaxTimer Gauge,
    cpfrMapBackoffStepTimer Gauge,
    cpfrMapDelayType PfrMetricPolicyType,
    cpfrMapDelayRelativePercent Gauge,
    cpfrMapDelayThresholdMax Gauge,
    cpfrMapHolddownTimer Gauge,
    cpfrMapPrefixForwardInterface InterfaceIndexOrZero,
    cpfrMapJitterThresholdMax Gauge,
    cpfrMapLinkGroupName SnmpAdminString,
    cpfrMapFallbackLinkGroupName SnmpAdminString,
    cpfrMapLossType PfrMetricPolicyType,
    cpfrMapLossRelativeAvg Gauge,
    cpfrMapLossThresholdMax Gauge,
    cpfrMapModeMonitor INTEGER,
    cpfrMapModeRouteOpts INTEGER,
    cpfrMapRouteMetricBgpLocalPref Gauge,
    cpfrMapRouteMetricEigrpTagCommunity Gauge,
    cpfrMapRouteMetricStaticTag Gauge,
    cpfrMapModeSelectExitType INTEGER,
    cpfrMapMOSThresholdMin Gauge,
    cpfrMapMOSPercentage Gauge,
    cpfrMapNextHopAddressType InetAddressType,
    cpfrMapNextHopAddress InetAddress,
    cpfrMapPeriodicTimer Gauge,
    cpfrMapActiveProbeFrequency Gauge,
    cpfrMapActiveProbePackets Gauge,
    cpfrMapTracerouteReporting OCTET STRING,
    cpfrMapUnreachableType PfrMetricPolicyType,
    cpfrMapUnreachableRelativeAvg Gauge,
    cpfrMapUnreachableThresholdMax Gauge,
    cpfrMapRoundRobinResolver INTEGER,
    cpfrMapEventNotifCtrlType PfrMetricPolicyType,
    cpfrMapEventNotifCtrlThreshold Gauge,
    cpfrMapEventTCCount Gauge
    }

cpfrMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a set of PfR policy maps."
    ::= { cpfrMapEntry 1 }

cpfrMapPolicyIndex OBJECT-TYPE
    SYNTAX PfrMapPolicyIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that, in
        combination with cpfrMapIndex, uniquely identifies a PfR policy
        map."
    ::= { cpfrMapEntry 2 }

cpfrMapStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable when the
        storageType of this entry is permanent(4):
        cpfrMapIndex, cpfrMapPolicyIndex, cpfrMapStorageType,
        cpfrMapRowStatus, cpfrMapName, cpfrMapBackoffMinTimer,
        cpfrMapBackoffMaxTimer, cpfrMapBackoffStepTimer,
        cpfrMapDelayType, cpfrMapDelayRelativePercent,
        cpfrMapDelayThresholdMax, cpfrMapHolddownTimer,
        cpfrMapPrefixForwardInterface, cpfrMapJitterThresholdMax,
        cpfrMapLinkGroupName, cpfrMapFallbackLinkGroupName,
        cpfrMapLossType, cpfrMapLossRelativeAvg,
        cpfrMapLossThresholdMax,    cpfrMapModeMonitor,
        cpfrMapModeRouteOpts,cpfrMapRouteMetricBgpLocalPref,
        cpfrMapRouteMetricEigrpTagCommunity,
        cpfrMapRouteMetricStaticTag,         
        cpfrMapModeSelectExitType, cpfrMapMossThresholdMin,        
        cpfrMapMossPercentage, cpfrMapNextHopAddressType,
        cpfrMapNextHopAddress, cpfrMapPeriodicTimer,       
        cpfrMapActiveProbeFrequency, cpfrMapActiveProbePackets,     
        cpfrMapTracerouteReporting, cpfrMapUnreachableType,     
        cpfrMapUnreachableRelativeAvg, cpfrMapUnreachableThresholdMax,
        cpfrMapRoundRobinResolver."
    DEFVAL { nonVolatile }
    ::= { cpfrMapEntry 3 }

cpfrMapRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the PfR map table.
        The following columnar objects must be valid in order to 
        transition the row to the active state:
        cpfrMapName.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrMapEntry 4 }

cpfrMapName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of a PfR map."
    ::= { cpfrMapEntry 5 }

cpfrMapBackoffMinTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the minimum value for the backoff timer.
        The backoff timer is used to configure a PfR map to set the
        transition period for which the MC holds an out-of-policy 
        prefix."
    DEFVAL { 300 }
    ::= { cpfrMapEntry 6 }

cpfrMapBackoffMaxTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum value for the backoff timer.
        If the maximum timer expires and all PfR-managed exits are
        out-of-policy, PfR will install the best available exit and 
        reset the minimum timer."
    DEFVAL { 3000 }
    ::= { cpfrMapEntry 7 }

cpfrMapBackoffStepTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the time period value for the step timer.
        PfR users the step timer to add time to the out-of-policy
        waiting period each time the backoff timer expires and PfR is
        unable to find an in-policy exit.  The backoff timer is 
        initialized to the minimum timer and incremented by the step 
        timer until it reaches the maximum timer."
    DEFVAL { 300 }
    ::= { cpfrMapEntry 8 }

cpfrMapDelayType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the delay type of a PfR map.  It is used
        to set the delay threshold as a relative percentage or as an
        absolute value for match criteria."
    ::= { cpfrMapEntry 9 }

cpfrMapDelayRelativePercent OBJECT-TYPE
    SYNTAX Gauge(1..1000)
--  Units
--    tenths of percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a relative delay threshold based on a
        comparison of short-term and long-term delay percentages.  The
        value of this object is valid if the corresponding value of
        cpfrMapDelayType is set to 'relative'."
    DEFVAL { 500 }
    ::= { cpfrMapEntry 10 }

cpfrMapDelayThresholdMax OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the absolute maximum delay time.  The
        value of this object is valid if the corresponding value of
        cpfrMapDelayType is set to 'threshold'."
    DEFVAL { 5000 }
    ::= { cpfrMapEntry 11 }

cpfrMapHolddownTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the route dampening time period.
        It is used to configure the prefix route dampening timer for
        the minimum period of time in which a new exit must be used
        before an alternate exit can be selected."
    DEFVAL { 300 }
    ::= { cpfrMapEntry 12 }

cpfrMapPrefixForwardInterface OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
--    Rsyntax INTEGER(0..2147483647)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether or not a null forwarding
        interface has been configured.  This interface is always 
        up and can never forward or receive traffic; encapsulation 
        always fails.  Null interfaces are used as a low-overhead 
        method of discarding unnecessary network traffic."
    DEFVAL { 0 }
    ::= { cpfrMapEntry 13 }

cpfrMapJitterThresholdMax OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    milliseconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum tolerable jitter value
        permitted on an exit link."
    DEFVAL { 30 }
    ::= { cpfrMapEntry 14 }

cpfrMapLinkGroupName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the primary link group to be used by PfR
        to select an exit.  It allows a group of exit links to be 
        defined as a preferred set of links for PfR to use when 
        optimizing TCs specified in a PfR policy."
    DEFVAL { "" }
    ::= { cpfrMapEntry 15 }

cpfrMapFallbackLinkGroupName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a fallback link group to be used if all
        the exits in the primary link group are out-of-policy (OOP)."
    DEFVAL { "" }
    ::= { cpfrMapEntry 16 }

cpfrMapLossType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the loss type configuration used by PfR.
        It specifies the relative percentage or maximum number of 
        packets that PfR will permit to be lost during transmission 
        on an exit link."
    ::= { cpfrMapEntry 17 }

cpfrMapLossRelativeAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    tenths of percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a relative percentage of packet loss
        based on a comparison of short-term and long-term packet loss
        percentages.  The value of this object is valid if the
        corresponding value of cpfrMapLossType is set to 'relative'."
    DEFVAL { 100 }
    ::= { cpfrMapEntry 18 }

cpfrMapLossThresholdMax OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    packets-per-million
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies absolute packet loss based on packets per
        million (PPM).  The value of this object is valid if the
        corresponding value of cpfrMapLossType is set to 'threshold'."
    ::= { cpfrMapEntry 19 }

cpfrMapModeMonitor OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        activeThroughput(2),
        both(3),
        fast(4),
        passive(5)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how a PfR MC using this PfR map should
        monitor the TCs.
        
        'active' 
           Enable active monitoring.
        
        'activethrougput'
           Enable active monitoring with throughput data from passive
        monitoring.
        
        'both'
           Enable both active and passive monitoring.  
        
        'fast'
           Enable continuous active and passive monitoring.
        
        'passive'
           Enable passive monitoring."
    DEFVAL { both }
    ::= { cpfrMapEntry 20 }

cpfrMapModeRouteOpts OBJECT-TYPE
    SYNTAX INTEGER {
        control(1),
        observe(2),
        metric(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how a PfR MC using this PfR map should
        control the TCs.
        
        'control'
           Monitor and report performance data and use the data to
           make route changes that will optimize performance.
        
        'observe'
           Monitor and report performance data without making any
           route changes.
        
        'metric'
           Enable route control based on BGP Local preference, EIGRP
           community tag, or a specific static route tag."
    DEFVAL { observe }
    ::= { cpfrMapEntry 21 }

cpfrMapRouteMetricBgpLocalPref OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the BGP local preference for PfR
        controlled routes.  The value of this object is valid if the
        corresponding value of cpfrMapModeRouteOpts is set to 'metric'.
        The value 0 is not a valid BGP local preference.  Configuring
         0 disables route control based on BGP local preference."
    ::= { cpfrMapEntry 22 }

cpfrMapRouteMetricEigrpTagCommunity OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the community value to an EIGRP route
        under PfR control.  The value of this object is valid if the
        corresponding value of cpfrMapModeRouteOpts is set to 'metric'. 
        The value 0 is not a valid EIGRP Community tag.  Configuring 0
        disables route control based on EIGRP."
    DEFVAL { 0 }
    ::= { cpfrMapEntry 23 }

cpfrMapRouteMetricStaticTag OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the tag to a static route under PfR
        control.  The value of this object is valid if the
        corresponding value of cpfrMapModeRouteOpts is set to 'metric'. 
        The value 0 is not a valid Static tag.  Configuring 0 disables
        route control based on static tag."
    DEFVAL { 0 }
    ::= { cpfrMapEntry 24 }

cpfrMapModeSelectExitType OBJECT-TYPE
    SYNTAX INTEGER {
        best(1),
        good(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how a PfR MC using this PfR map should
        select an exit based on performance or policy.
        
        'best' 
          Select the best exit based on performance or policy.
        
        'good'
           Select the first exit that is in policy."
    DEFVAL { good }
    ::= { cpfrMapEntry 25 }

cpfrMapMOSThresholdMin OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a threshold MOS value that represents a
        minimum voice quality for exit link utilization."
    DEFVAL { 360 }
    ::= { cpfrMapEntry 26 }

cpfrMapMOSPercentage OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a percentage value that is compared
        with the percentage of MOS samples that are below the MOS 
        threshold.  The number of MOS samples over a period of time that
        are below the threshold MOS value are calculated.  If the 
        percentage of MOS samples below the threshold is greater than 
        the configured percentage, PfR determines that the exit link 
        is out-of-policy and searches for an alternate exit link."
    ::= { cpfrMapEntry 27 }

cpfrMapNextHopAddressType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the address type of the address specified
        as the next hop when PfR is used for sinkhole filtering."
    ::= { cpfrMapEntry 28 }

cpfrMapNextHopAddress OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the next hop address to which PfR
        forwards packets for matching prefixes.  The prefixes that are
        forwarded to the next hop address are specified by an access
        list configured in a match clause on the PfR map"
    ::= { cpfrMapEntry 29 }

cpfrMapPeriodicTimer OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the periodic timer that PfR uses to
        select the best exit for the matched TCs.  When this timer
        expires, PfR automatically selects the best exit,
        irrespective of whether the current exit is in-policy or
        out-of-policy.  The periodic timer is reset when the new exit
        is selected."
    ::= { cpfrMapEntry 30 }

cpfrMapActiveProbeFrequency OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the frequency of active probes configured
        under a PfR map."
    DEFVAL { 60 }
    ::= { cpfrMapEntry 31 }

cpfrMapActiveProbePackets OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    packets
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the number of probe packets generated
        for each active probe cycle."
    DEFVAL { 100 }
    ::= { cpfrMapEntry 32 }

cpfrMapTracerouteReporting OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   none(0)
        --   delay(1)
        --   loss(2)
        --   unreachable(3)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object enables continuous and policy-based traceroute
        probing.  Traceroute probing allows prefix performance to be
        measured on a hop-by-hop basis.  Delay, loss, and
        reachability measurements are gathered for each hop from the
        probe source to the target prefix.
        
        'none'
           Traceroute probing is disabled.
        
        'delay'
           Delay policy based traceroute probing is enabled.
        
        'loss'
           Loss policy based traceroute probing is enabled.
        
        'reachability'
           Reachability policy based traceroute probing is enabled."
    ::= { cpfrMapEntry 33 }

cpfrMapUnreachableType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the unreachable type configuration used
        by PfR.  It is used to set the relative percentage or the 
        absolute maximum number of unreachable hosts, based on flows 
        per million (fpm), that PfR will permit from a PfR-managed 
        exit link."
    DEFVAL { relative }
    ::= { cpfrMapEntry 34 }

cpfrMapUnreachableRelativeAvg OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    tenths of percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a relative percentage of unreachable
        hosts.  The relative unreachable host percentage is based on a
        comparison of short-term and long-term measurements.  The
        short-term measurement reflects the percentage of hosts that
        are unreachable within a 5-minute period.  The long-term
        measurement reflects the percentage of unreachable hosts within
        a 60-minute period.  The following formula is used to calculate
        this value:
        
        Relative percentage of unreachable hosts equals to the
        difference between short-term percentage and long-term
        percentage divided by long-term percentage.
        
        The master controller measures the difference between these two
        values as a percentage.  If the percentage exceeds the
        user-defined or default value, the exit link is determined to
        be out-of-policy.
        
        The value of this object is valid if the corresponding value of
        cpfrMapUnreachableType is set to 'relative'."
    DEFVAL { 50 }
    ::= { cpfrMapEntry 35 }

cpfrMapUnreachableThresholdMax OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    flows per million
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the absolute maximum number of
        unreachable hosts based on flows per million.  
        The value of this object is valid if the corresponding 
        value of cpfrMapUnreachableType is set to 'threshold'."
    ::= { cpfrMapEntry 36 }

cpfrMapRoundRobinResolver OBJECT-TYPE
    SYNTAX INTEGER {
        enable(1),
        disable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether the round robin resolver is
        enabled or disabled.
        
        'enable'
           Round robin resolver is enabled.
        
        'disable'
           Round robin resolver is disabled."
    DEFVAL { disable }
    ::= { cpfrMapEntry 37 }

cpfrMapEventNotifCtrlType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the event notification control type
        configuration used by PfR.  It is used to set the relative
        percentage or the absolute threshold value for
        cpfrMapEventNotifCtrlThreshold object."
    DEFVAL { relative }
    ::= { cpfrMapEntry 38 }

cpfrMapEventNotifCtrlThreshold OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object specifies the absolute event counter threshold or
        relative percentage threshold used by PfR to throttle the
        generation of cpfrTCInpolicyThresholdBelowNotify and
        cpfrTCPrimaryThresholdBelowNotify.
        
        If the value is relative percentage threshold, then the
        notification is generated if cpfrMapEventTCCount over total TC
        count is more than the value of this percentage.
        -
        If the value is absolute event counter threshold, then the
        notification is generated if cpfrEventTrapTCCount is more than
        this value."
    ::= { cpfrMapEntry 39 }

cpfrMapEventTCCount OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the current absolute number of traffic
        classes, whose state are 'default' or 'oopolicy' specified by
        cpfrTCStatus."
    ::= { cpfrMapEntry 40 }

cpfrMatchTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrMatchEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the match clause instances created by the
        system. 
        
        This table has an expansion dependent relationship on
        cpfrMapTable, containing zero or more rows for each
        cpfrMapEntry."
    ::= { ciscoPfrMIBObjects 3 }

cpfrMatchEntry OBJECT-TYPE
    SYNTAX CpfrMatchEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing a match clause PfR uses.
        
        A peer SNMP entity may create a match criterion by setting an
        instance of cpfrMatchStatus to 'createAndWait' or 'createAndGo'.
         Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create a
        match criterion.  In these cases, the system must automatically
        create a row in the cpfrMatchTable. 
        
        A peer SNMP entity may destroy a match criterion by setting the 
               corresponding instance of cpfrMatchStatus to 'destroy'. 
        Observe that an implementation that does not support this 
        option must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy a match criterion.  In    
          these cases, the system must automatically destroy the
        corresponding row in the cpfrMatchTable.
        
        The system automatically destroys a row when the system or
        EMS/NMS destroys the corresponding entries in the cpfrMapTable."
    INDEX { cpfrMapIndex, cpfrMapPolicyIndex }
    ::= { cpfrMatchTable 1 }

CpfrMatchEntry ::= SEQUENCE {
    cpfrMatchValid OCTET STRING,
    cpfrMatchAddrAccessList SnmpAdminString,
    cpfrMatchAddrPrefixList SnmpAdminString,
    cpfrMatchAddrPrefixInside TruthValue,
    cpfrMatchLearnMode INTEGER,
    cpfrMatchLearnListName SnmpAdminString,
    cpfrMatchTCNbarListName SnmpAdminString,
    cpfrMatchTCNbarApplPfxList SnmpAdminString,
    cpfrMatchTCPfxInside TruthValue
    }

cpfrMatchValid OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   accessList(0)
        --   prefixList(1)
        --   learn(2)
        --   trafficClassACL(3)
        --   nbarApplicationList(4)
        --   trafficClassPfx(5)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies which of those objects are valid.  When
        a user is configuring a match clause, the corresponding bit
        should also be set to true in this object.  The following list
        shows different types of match clauses, the bit to be set and
        the
        corresponding objects.
        
        'access-list'
           If this bit is set to '1' then corresponding instance of
        cpfrMatchAccessList is valid.
        
        'prefix-list'
           If this bit is set to '1' then corresponding instance of
        cpfrMatchPrefixList is valid.
        
        'inside'
           If this bit is set to '1' then corresponding instance of
        cpfrMatchInside is valid.
        
        'learn'
           If this bit is set to '1' then corresponding instances of
        cpfrMatchLearnMode and cpfrMatchLearnListName are valid.
        
        'nbarApplicationList'
           If this bit is set to '1' then corresponding instance of
        cpfrMatchTCNbarListName is valid."
    ::= { cpfrMatchEntry 1 }

cpfrMatchAddrAccessList OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the access list used to manually
        configure a traffic class that matches destination prefixes
        in an access list used in a PfR map."
    DEFVAL { "" }
    ::= { cpfrMatchEntry 2 }

cpfrMatchAddrPrefixList OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the prefix list used to manually
        configure a traffic class that matches destination prefixes
        in a prefix list."
    DEFVAL { "" }
    ::= { cpfrMatchEntry 3 }

cpfrMatchAddrPrefixInside OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether or not the prefixes learned by
        PfR are within the internal network."
    DEFVAL { false }
    ::= { cpfrMatchEntry 4 }

cpfrMatchLearnMode OBJECT-TYPE
    SYNTAX INTEGER {
        delay(1),
        inside(2),
        throughput(3),
        list(4)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the mode by which PfR should learn
        prefixes.  
        
        'Delay' 
           PfR learns prefixes based on the highest delay.
        
        'Inside' 
           PfR learns the prefixes inside the network.
        
        'Throughput' 
           PfR learns prefixes based on the highest throughput.
        
        'list'
           PfR learns prefixes based on a learn list."
    DEFVAL { throughput }
    ::= { cpfrMatchEntry 5 }

cpfrMatchLearnListName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the learn list name used by PfR for
        learning prefixes.  This object is valid when the corresponding
        cpfrMatchLearnMode object is set to 'list'."
    DEFVAL { "" }
    ::= { cpfrMatchEntry 6 }

cpfrMatchTCNbarListName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies that PfR is to profile traffic
        destined for prefixes defined in an IP prefix list that match
        one or more NBAR applications.  The applications are predefined
        with a protocol identifier.  This object identifies
        a set of protocols in cpfrNbarApplListTable."
    DEFVAL { "" }
    ::= { cpfrMatchEntry 7 }

cpfrMatchTCNbarApplPfxList OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the prefix list to be used by PfR to
        filter traffic that is learned based on NBAR applications."
    DEFVAL { "" }
    ::= { cpfrMatchEntry 8 }

cpfrMatchTCPfxInside OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether or not the prefixes filtered by
        the prefix list is inside the internal network."
    DEFVAL { false }
    ::= { cpfrMatchEntry 9 }

cpfrResolveTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrResolveEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the resolver instances created by the
        system.
        
        This table has an expansion dependent relationship on
        cpfrMapTable, containing zero or more rows for each
        cpfrMapEntry."
    ::= { ciscoPfrMIBObjects 4 }

cpfrResolveEntry OBJECT-TYPE
    SYNTAX CpfrResolveEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrResolveTable describes a policy metric
        and its priority relative to other metrics if multiple metrics
        are configured for the default policy or under a PfR map.
        
        A peer SNMP entity may create a resolver by setting an instance
        of cpfrResolveRowStatus to 'createAndWait' or 'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create a
        resolver.  In these cases, the system must automatically create
        a row in the cpfrResolveTable.
        
        A peer SNMP entity may destroy a resolver by setting the
        corresponding instance of cpfrResolveRowStatus to 'destroy'. 
        Observe that an mplementation that does not support this option
        must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy a resolver.  In these
        cases, the system must automatically destroy the corresponding
        row in the cpfrResolveTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrMapTable."
    INDEX { cpfrResolveIndex }
    ::= { cpfrResolveTable 1 }

CpfrResolveEntry ::= SEQUENCE {
    cpfrResolveIndex Gauge,
    cpfrResolveStorageType StorageType,
    cpfrResolveRowStatus RowStatus,
    cpfrResolvePriority Gauge,
    cpfrResolvePolicyType PfrResolvePolicyType,
    cpfrResolveVariance Gauge,
    cpfrResolveMapIndex PfrMapIndexOrZero,
    cpfrResolveMapPolicyIndex PfrMapPolicyIndex
    }

cpfrResolveIndex OBJECT-TYPE
    SYNTAX Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a PfR resolver."
    ::= { cpfrResolveEntry 1 }

cpfrResolveStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable when the
        storageType of this entry is permanent(4):
        cpfrResolvePolicyType, cpfrResolveVariance,      
        cpfrResolveMapIndex, cpfrResolveMapIndex."
    DEFVAL { nonVolatile }
    ::= { cpfrResolveEntry 2 }

cpfrResolveRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the resolver
        table.  The following columnar objects must be valid in order to
        
        transition the row to the active state: 
        cpfrMCResolvePriority, cpfrResolvePolicyType,
        cpfrResolveMapIndex, cpfrResolveMapPolicyIndex
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrResolveEntry 3 }

cpfrResolvePriority OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the priority of the resolver."
    DEFVAL { 0 }
    ::= { cpfrResolveEntry 4 }

cpfrResolvePolicyType OBJECT-TYPE
    SYNTAX PfrResolvePolicyType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        none(0),
--        cost(1),
--        delay(2),
--        jitter(3),
--        loss(4),
--        mos(5),
--        range(6),
--        utilization(7)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the type of this resolver policy."
    DEFVAL { none }
    ::= { cpfrResolveEntry 5 }

cpfrResolveVariance OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the allowable variance for the policy,
        as a percentage."
    DEFVAL { 0 }
    ::= { cpfrResolveEntry 6 }

cpfrResolveMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object refers to the map Index of PfR map under which
        this resolver was configured."
    DEFVAL { 0 }
    ::= { cpfrResolveEntry 7 }

cpfrResolveMapPolicyIndex OBJECT-TYPE
    SYNTAX PfrMapPolicyIndex
--    Rsyntax Gauge(1..4294967295)
--  Units
--    0
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object refers to PfR map policy index of PfR map under
        which this resolver was configured."
    ::= { cpfrResolveEntry 8 }

cpfrLearnTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrLearnEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the PfR learn instances created by the system.
        
        This table has a one-to-one relationship with cpfrMCTable,
        containing zero or more rows for each cpfrMCEntry."
    ::= { ciscoPfrMIBObjects 5 }

cpfrLearnEntry OBJECT-TYPE
    SYNTAX CpfrLearnEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrLearnTable describes the configuration
        and status of a PfR learning policy.
        
        A device creates a row in a cpfrLearnTable when PfR learn is
        enabled.  Likewise, such a device destroys a row in the
        cpfrLearnTable when PfR learn is disabled."
    INDEX { cpfrMCIndex }
    ::= { cpfrLearnTable 1 }

CpfrLearnEntry ::= SEQUENCE {
    cpfrLearnAggregationType INTEGER,
    cpfrLearnAggregationPrefixLen Gauge,
    cpfrLearnMethod OCTET STRING,
    cpfrLearnExpireType INTEGER,
    cpfrLearnExpireSessionNum Gauge,
    cpfrLearnExpireTime Gauge,
    cpfrLearnMonitorPeriod Gauge,
    cpfrLearnPeriodInterval Gauge,
    cpfrLearnPrefixesNumber Gauge,
    cpfrLearnAggAccesslistName SnmpAdminString,
    cpfrLearnFilterAccessListName SnmpAdminString
    }

cpfrLearnAggregationType OBJECT-TYPE
    SYNTAX INTEGER {
        bgp(1),
        nonBgp(2),
        prefixLength(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how a MC aggregates learned
        prefixes based on traffic type.
        
        'bgp'
           The bgp keyword configures aggregation based on entries in
           the BGP routing table.
        
        'nonBgp'
           The non-bgp keyword configures aggregation based on 
           static routes.
        
        'prefixLength'
           The prefix-length keyword configures aggregation based on the
           specified prefix length. The range of values that can be 
           configured for this argument is a prefix mask from 1 to 32.
        
         If this command is not specified, the default aggregation 
         is performed based on a /24 prefix length"
    DEFVAL { prefixLength }
    ::= { cpfrLearnEntry 1 }

cpfrLearnAggregationPrefixLen OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    bits
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object configures aggregation based on the specified
        prefix length."
    DEFVAL { 24 }
    ::= { cpfrLearnEntry 2 }

cpfrLearnMethod OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   delay(0)
        --   throughput(1)
        --   insideBgp(2)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the method by which PfR learns prefixes.
        
        'delay'
           Learn prefixes with the highest round trip delay.
        
        'throughput'
           Learn prefixes with the highest throughput.
        
        'insideBgp'
           Learn prefixes inside the network."
    ::= { cpfrLearnEntry 3 }

cpfrLearnExpireType OBJECT-TYPE
    SYNTAX INTEGER {
        session(1),
        time(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the length of time that the learned
        prefixes are kept in the central policy database.
        
        'session'
           Configures a session-based expiration timer. 
        
        'time'
           Configures a time-based expiration timer."
    DEFVAL { time }
    ::= { cpfrLearnEntry 4 }

cpfrLearnExpireSessionNum OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    monitoring periods
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object configures a session-based expiration timer. A
        number from 1 to 65535 can be entered. Each increment
        represents one monitoring period.  The object is valid when
        cpfrLearnExpireType is configured with session."
    ::= { cpfrLearnEntry 5 }

cpfrLearnExpireTime OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object configures a time-based expiration timer."
    DEFVAL { 720 }
    ::= { cpfrLearnEntry 6 }

cpfrLearnMonitorPeriod OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the time period over which a PfR MC
        learns traffic flows."
    DEFVAL { 5 }
    ::= { cpfrLearnEntry 7 }

cpfrLearnPeriodInterval OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the time interval between prefix
        monitoring periods."
    DEFVAL { 120 }
    ::= { cpfrLearnEntry 8 }

cpfrLearnPrefixesNumber OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    prefixes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum number of prefixes PfR
        can learn."
    DEFVAL { 1000 }
    ::= { cpfrLearnEntry 9 }

cpfrLearnAggAccesslistName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a PfR access list to define criteria
        which PfR uses to aggregate TCs."
    DEFVAL { "" }
    ::= { cpfrLearnEntry 10 }

cpfrLearnFilterAccessListName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies an access list used to filter TCs
        learned by PfR."
    DEFVAL { "" }
    ::= { cpfrLearnEntry 11 }

cpfrLearnListTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrLearnListEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the learn lists created by the system.
        
        This table has an expansion dependent relationship on
        cpfrLearnTable, containing zero or more rows for each
        cpfrLearnEntry."
    ::= { ciscoPfrMIBObjects 6 }

cpfrLearnListEntry OBJECT-TYPE
    SYNTAX CpfrLearnListEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrLearnListTable describes the configuration
        and status of a PfR learn list.
        
        A peer SNMP entity may create a learn list by setting an
        instance of cpfrLearnListRowStatus to 'createAndWait' or
        'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create a
        learn list.  In these cases, the system must automatically
        create a row in the cpfrLearnListTable.
        
        A peer SNMP entity may destroy a learn list by setting the
        corresponding instance of cpfrLearnListRowStatus to 'destroy'. 
        Observe that an mplementation that does not support this option
        must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy a learn list.  In these
        cases, the system must automatically destroy the corresponding
        row in the cpfrLearnListTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrLearnTable."
    INDEX { cpfrMCIndex, cpfrLearnListIndex }
    ::= { cpfrLearnListTable 1 }

CpfrLearnListEntry ::= SEQUENCE {
    cpfrLearnListIndex PfrLearnListIndex,
    cpfrLearnListStorageType StorageType,
    cpfrLearnListRowStatus RowStatus,
    cpfrLearnListReferenceName SnmpAdminString,
    cpfrLearnListSequenceNum Gauge,
    cpfrLearnListMethod OCTET STRING,
    cpfrLearnListAclName SnmpAdminString,
    cpfrLearnListPfxName SnmpAdminString,
    cpfrLearnListPfxInside TruthValue,
    cpfrLearnListNbarAppl SnmpAdminString,
    cpfrLearnListFilterPfxName SnmpAdminString
    }

cpfrLearnListIndex OBJECT-TYPE
    SYNTAX PfrLearnListIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a PfR learn list."
    ::= { cpfrLearnListEntry 1 }

cpfrLearnListStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable when the
        storageType of this entry is permanent(4):
        cpfrLearnListReferenceName, cpfrLearnListSequenceNum,
        cpfrLearnListMethod, cpfrLearnListDelayType,       
        cpfrLearnListDelayRelativePercentage,    
        cpfrLearnListDelayThresholdMax, cpfrLearnListAclName,       
        cpfrLearnListFilterPfxName, cpfrLearnListPfxName,      
        cpfrLearnListPfxInside, cpfrLearnListNbarAppl."
    DEFVAL { nonVolatile }
    ::= { cpfrLearnListEntry 2 }

cpfrLearnListRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the learn list
        table. The following columnar objects must be valid in order to
        transition the row to the active state: 
        cpfrLearnListReferenceName, cpfrLearnListSequenceNum.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrLearnListEntry 3 }

cpfrLearnListReferenceName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the reference name of a learn list."
    DEFVAL { "" }
    ::= { cpfrLearnListEntry 4 }

cpfrLearnListSequenceNum OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the sequence number representing a
        sequence that is used to determine the order in which PfR
        applies learn list criteria."
    DEFVAL { 0 }
    ::= { cpfrLearnListEntry 5 }

cpfrLearnListMethod OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   delay(0)
        --   throughput(1)
        --   rsvp(2)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how PfR learns prefixes.
        
        'delay'
           Learn prefixes with the highest round trip delay.
        
        'througput'
           Learn prefixes with the highest throughput.
        
        'rsvp'
           Learn prefixes on the basis of RSVP."
    ::= { cpfrLearnListEntry 6 }

cpfrLearnListAclName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of the access list to be used
        by the PfR learn list."
    DEFVAL { "" }
    ::= { cpfrLearnListEntry 7 }

cpfrLearnListPfxName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of the prefix list to be used
        by the PfR learn list."
    DEFVAL { "" }
    ::= { cpfrLearnListEntry 8 }

cpfrLearnListPfxInside OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether PfR should learn prefixes that
        are inside the network."
    DEFVAL { false }
    ::= { cpfrLearnListEntry 9 }

cpfrLearnListNbarAppl OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a set of protocols in the
        cpfrNbarApplListTable that will be used by PfR to learn TCs."
    DEFVAL { "" }
    ::= { cpfrLearnListEntry 10 }

cpfrLearnListFilterPfxName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of the prefix list to be used
        as a filter for traffic classes to be learned by this 
        learn list."
    DEFVAL { "" }
    ::= { cpfrLearnListEntry 11 }

cpfrActiveProbeTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrActiveProbeEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the active probe instances created by the
        system.
        
        This table has an expansion dependent relationship on
        cpfrMapTable, containing zero or more rows for each
        cpfrMapEntry."
    ::= { ciscoPfrMIBObjects 7 }

cpfrActiveProbeEntry OBJECT-TYPE
    SYNTAX CpfrActiveProbeEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrActiveProbeTable describes the
        configuration and status that directs how PfR active-probes 
        targets.
        
        A peer SNMP entity may create an active probe by setting an
        instance of cpfrActiveProbeRowStatus to 'createAndWait' or
        'createAndGo'.  Observe that an implementation that does not
        support these option must specify these limitations in an agent
        capability statement.
        
        Other management entities (e.g., the local console) may create
        an active probe.  In these cases, the system must automatically
        create a row in the cpfrActiveProbeTable.
        
        A peer SNMP entity may destroy an active probe by setting the
        corresponding instance of cpfrActiveProbeRowStatus to 'destroy'.
         Observe that an mplementation that does not support this option
        must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy an active probe.  In these
        cases, the system must automatically destroy the corresponding
        row in the cpfrActiveProbeTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrMapTable."
    INDEX { cpfrActiveProbeIndex }
    ::= { cpfrActiveProbeTable 1 }

CpfrActiveProbeEntry ::= SEQUENCE {
    cpfrActiveProbeIndex Gauge,
    cpfrActiveProbeStorageType StorageType,
    cpfrActiveProbeRowStatus RowStatus,
    cpfrActiveProbeType INTEGER,
    cpfrActiveProbeTargetAddressType InetAddressType,
    cpfrActiveProbeTargetAddress InetAddress,
    cpfrActiveProbeTargetPortNumber CiscoPort,
    cpfrActiveProbePfrMapIndex PfrMapIndexOrZero,
    cpfrActiveProbeDscpValue Gauge,
    cpfrActiveProbeCodecName INTEGER,
    cpfrActiveProbeMapIndex PfrMapIndexOrZero,
    cpfrActiveProbeMapPolicyIndex PfrMapIndexOrZero,
    cpfrActiveProbeAdminStatus INTEGER,
    cpfrActiveProbeOperStatus INTEGER,
    cpfrActiveProbeAssignedPfxAddressType InetAddressType,
    cpfrActiveProbeAssignedPfxAddress InetAddress,
    cpfrActiveProbeAssignedPfxLen Gauge,
    cpfrActiveProbeMethod INTEGER
    }

cpfrActiveProbeIndex OBJECT-TYPE
    SYNTAX Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies an active probe entity in a PfR policy map."
    ::= { cpfrActiveProbeEntry 1 }

cpfrActiveProbeStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable when the
        storageType of this entry is permanent(4):
        pfrActiveProbeType, cpfrActiveProbeTargetAddressType,       
        cpfrActiveProbeTargetAddress, cpfrActiveProbeTargetPortNumber, 
        
           cpfrActiveProbePfrMapIndex, cpfrActiveProbeDscpValue,      
        cpfrActiveProbeCodecName, cpfrActiveProbeMapIndex,        
        cpfrActiveProbeMapPolicyIndex, cpfrActiveProbeAdminStatus."
    DEFVAL { nonVolatile }
    ::= { cpfrActiveProbeEntry 2 }

cpfrActiveProbeRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of row in the active probe
        table.  The following columnar objects must be valid in order to
        
        transition the row to the active state: 
        cpfrActiveProbeType,
        cpfrActiveProbeTargetAddressType, cpfrActiveProbeTargetAddress,
        cpfrActiveProbeTargetPortNumber, cpfrActiveProbeMapIndex,
        cpfrActiveProbeMapPolicyIndex.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrActiveProbeEntry 3 }

cpfrActiveProbeType OBJECT-TYPE
    SYNTAX INTEGER {
        echo(1),
        jitter(2),
        tcpConn(3),
        udpEcho(4)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the Type of probe.
        
        'echo'
        Use Internet Control Message Protocol (ICMP) echo messages
        (ping) for active probe.
        
        'jitter'
        Use jitter messages for active probe.
        
        'tcp-conn'
        Use TCP connection messages for active probe.
        
        'udp-echo'
        Use User Datagram Protocol (UDP) echo messages for active
        probe."
    ::= { cpfrActiveProbeEntry 4 }

cpfrActiveProbeTargetAddressType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the type of a target IP address of a
        prefix to be monitored using the specified type of probe."
    ::= { cpfrActiveProbeEntry 5 }

cpfrActiveProbeTargetAddress OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies target IP address of a prefix to be
        monitored using the specified type of probe."
    ::= { cpfrActiveProbeEntry 6 }

cpfrActiveProbeTargetPortNumber OBJECT-TYPE
    SYNTAX CiscoPort
--    Rsyntax INTEGER(0..65535)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the destination port number for the
        active probe."
    ::= { cpfrActiveProbeEntry 7 }

cpfrActiveProbePfrMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the index of the PfR policy map on
        which the active probe clause is configured."
    ::= { cpfrActiveProbeEntry 8 }

cpfrActiveProbeDscpValue OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the Differentiated Services Code Point
        (DSCP) value."
    ::= { cpfrActiveProbeEntry 9 }

cpfrActiveProbeCodecName OBJECT-TYPE
    SYNTAX INTEGER {
        g711alaw(1),
        g711ulaw(2),
        g729a(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the codec value used for Mean Opinion
        Score (MOS) calculation and only used with the jitter probe
        type.  The codec values must be one of the following,
        
        'g711alaw'
           G.711 A Law 64000 bps.
        
        'g711ulaw'
           G.711 U Law 64000 bps.
        
        'g729a'
           G.729 8000 bps."
    ::= { cpfrActiveProbeEntry 10 }

cpfrActiveProbeMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the index of a PfR map under which this
        active probe was configured."
    ::= { cpfrActiveProbeEntry 11 }

cpfrActiveProbeMapPolicyIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the index of a PfR map policy under
        which this active probe was configured."
    ::= { cpfrActiveProbeEntry 12 }

cpfrActiveProbeAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        assigned(1),
        unassigned(2),
        forced(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether the probe is assigned to
        a prefix or not, or is a forced probe configured on a PfR map.
        
        'assigned'
           Active probe is assigned.
        
        'unassigned'
           Active probe is unassigned.
        
        'forced'
           Active probe is sent to forced targets configured in PfR
           map."
    ::= { cpfrActiveProbeEntry 13 }

cpfrActiveProbeOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        running(1),
        notRunning(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the current status of an active probe.
        
        'running'
           Active probe is running.
        
        'notrunning'
           Active probe is not running."
    ::= { cpfrActiveProbeEntry 14 }

cpfrActiveProbeAssignedPfxAddressType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the type of assigned prefix address."
    ::= { cpfrActiveProbeEntry 15 }

cpfrActiveProbeAssignedPfxAddress OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the assigned prefix address."
    ::= { cpfrActiveProbeEntry 16 }

cpfrActiveProbeAssignedPfxLen OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the length of the assigned prefix
        address."
    ::= { cpfrActiveProbeEntry 17 }

cpfrActiveProbeMethod OBJECT-TYPE
    SYNTAX INTEGER {
        learned(1),
        configured(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates how an active probe is entered into
        the PfR system.
        
        'learned'
           Active probe is triggered when PfR learns TCs.
        
        'configured'
           Active probe is forced by CLI command."
    ::= { cpfrActiveProbeEntry 18 }

cpfrBRTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrBREntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the border router (BR) instances created by
        the system.
        
        This table has an expansion dependent relationship on the  
        cpfrMCTable, containing zero or more rows for each cpfrMCEntry."
    ::= { ciscoPfrMIBObjects 8 }

cpfrBREntry OBJECT-TYPE
    SYNTAX CpfrBREntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrBRTable describes the configuration and
        status of one PfR BR.
        
        A peer SNMP entity may create a BR by setting an instance of
        cpfrBRRowStatus to 'createAndWait' or 'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create
        an exit.  In these cases, the system must automatically create
        a
        row in the cpfrBRTable.
        
        A peer SNMP entity may destroy a BR by setting the
        corresponding
        instance of cpfrBRRowStatus to 'destroy'.  Observe that
        an implementation that does not support this option must specify
        this limitation in an agent capability statement.
        
        Other management entities may destroy a BR.  In these cases,
        the
        system must automatically destroy the corresponding row in the
        cpfrBRTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrMCEntry."
    INDEX { cpfrMCIndex, cpfrBRIndex }
    ::= { cpfrBRTable 1 }

CpfrBREntry ::= SEQUENCE {
    cpfrBRIndex PfrBorderRouterIndex,
    cpfrBRStorageType StorageType,
    cpfrBRRowStatus RowStatus,
    cpfrBRAddressType InetAddressType,
    cpfrBRAddress InetAddress,
    cpfrBRKeyName SnmpAdminString,
    cpfrBROperStatus INTEGER,
    cpfrBRConnStatus INTEGER,
    cpfrBRUpTime TimeTicks,
    cpfrBRConnFailureReason INTEGER,
    cpfrBRAuthFailCount Counter
    }

cpfrBRIndex OBJECT-TYPE
    SYNTAX PfrBorderRouterIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a PfR BR."
    ::= { cpfrBREntry 1 }

cpfrBRStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable 
        when the storageType of this entry is permanent(4):
        cpfrBRAddressType, cpfrBRAddress, cpfrBRKeyName."
    DEFVAL { nonVolatile }
    ::= { cpfrBREntry 2 }

cpfrBRRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the BR table.  The
        following columnar objects must be valid in order to transition
        the row to the active state: 
        None.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrBREntry 3 }

cpfrBRAddressType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the IP address type of a PfR BR."
    ::= { cpfrBREntry 4 }

cpfrBRAddress OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the IP address of a PfR BR"
    ::= { cpfrBREntry 5 }

cpfrBRKeyName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the key used to authenticate
        communication between the BR and the MC.  The authentication 
        key must be specified during the initial configuration to 
        establish communication, but is not required to enter PfR 
        managed BR configuration mode."
    DEFVAL { "" }
    ::= { cpfrBREntry 6 }

cpfrBROperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        inactive(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the operational status of PfR BR.
        
        'active'
           BR is active.
        
        'inactive'
           BR is inactive."
    ::= { cpfrBREntry 7 }

cpfrBRConnStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the connection status between BR and MC.
        
        'up'
           BR is successfully connected to the MC.
        
        'down'
           BR is not connected to the MC."
    ::= { cpfrBREntry 8 }

cpfrBRUpTime OBJECT-TYPE
    SYNTAX TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the length of time that the connection
        with the MC has been up."
    ::= { cpfrBREntry 9 }

cpfrBRConnFailureReason OBJECT-TYPE
    SYNTAX INTEGER {
        versionMismatch(1),
        none(2),
        authFailure(3),
        socketError(4),
        timerExpired(5)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the reason why the connection status
        between the BR and MC fails.
        
        'versionmismatch'
           The software version between MC and BR does not match.
        
        'none'
           No failure reason.
        
        'authFailure'
           authentication failed.
        
        'socketError'
           socket was closed with an error.
        
        'timerExpired'
           connection was closed with keepalive timer expiration."
    ::= { cpfrBREntry 10 }

cpfrBRAuthFailCount OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of authentication failures
        between the MC and the BR."
    ::= { cpfrBREntry 11 }

cpfrExitTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrExitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the PfR exit instances created by the system.
        
        This table has an expansion dependent relationship on the  
        cpfrBRTable, containing zero or more rows for each
        cpfrBREntry."
    ::= { ciscoPfrMIBObjects 9 }

cpfrExitEntry OBJECT-TYPE
    SYNTAX CpfrExitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cpfrExitTable describes the configuration and
        status of one PfR monitored/controlled exit.
        
        A peer SNMP entity may create an exit for PfR BR by setting an
        instance of cpfrLinkGroupRowStatus to 'createAndWait' or
        'createAndGo'.  Observe that an implementation that does not
        support these option must specify these limitations in an agent
        capability statement.
        
        Other management entities (e.g., the local console) may create
        an exit for a PfR BR.  In these cases, the system must
        automatically create a row in the cpfrExitTable.
        
        A peer SNMP entity may destroy an exit from a PfR BR by setting
        the corresponding instance of cpfrExitRowStatus to 'destroy'. 
        Observe that an implementation that does not support this option
        must specify this limitation in an agent capability
        statement.
        
        Other management entities may destroy an exit from a
        PfR BR.  In these cases, the system must automatically destroy
        the corresponding row in the cpfrExitTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrBREntry."
    INDEX { cpfrMCIndex, cpfrBRIndex, cpfrExitIndex }
    ::= { cpfrExitTable 1 }

CpfrExitEntry ::= SEQUENCE {
    cpfrExitIndex PfrExitIndex,
    cpfrExitStorageType StorageType,
    cpfrExitRowStatus RowStatus,
    cpfrExitName SnmpAdminString,
    cpfrExitType INTEGER,
    cpfrDowngradeBgpCommunity Gauge,
    cpfrExitMaxUtilRxType PfrMetricPolicyType,
    cpfrExitMaxUtilRxAbsolute Gauge,
    cpfrExitMaxUtilRxPercentage Gauge,
    cpfrExitMaxUtilTxType PfrMetricPolicyType,
    cpfrExitMaxUtilTxAbsolute Gauge,
    cpfrExitMaxUtilTxPercentage Gauge,
    cpfrExitCostCalcMethod INTEGER,
    cpfrExitCostDiscard INTEGER,
    cpfrExitCostDiscardType INTEGER,
    cpfrExitCostDiscardAbsolute Gauge,
    cpfrExitCostDiscardPercent Gauge,
    cpfrExitCostEndDayOfMonth Gauge,
    cpfrExitCostEndOffsetType INTEGER,
    cpfrExitCostEndOffset TimeInterval,
    cpfrExitCostFixedFeeCost Gauge,
    cpfrExitCostNickName SnmpAdminString,
    cpfrExitCostSamplingPeriod Gauge,
    cpfrExitCostRollupPeriod Gauge,
    cpfrExitCostSummerTimeStart DateAndTime,
    cpfrExitCostSummerTimeOffset Gauge,
    cpfrExitCostSummerTimeEnd DateAndTime,
    cpfrExitCapacity CounterBasedGauge64,
    cpfrExitRxBandwidth CounterBasedGauge64,
    cpfrExitTxBandwidth CounterBasedGauge64,
    cpfrExitTxLoad Gauge,
    cpfrExitRxLoad Gauge,
    cpfrExitNickName SnmpAdminString,
    cpfrExitCost1 Gauge,
    cpfrExitSustainedUtil1 Gauge,
    cpfrExitCost2 Gauge,
    cpfrExitSustainedUtil2 Gauge,
    cpfrExitCost3 Gauge,
    cpfrExitSustainedUtil3 Gauge,
    cpfrExitRollupTotal Gauge,
    cpfrExitRollupDiscard Gauge,
    cpfrExitRollupLeft Gauge,
    cpfrExitRollupCollected Gauge,
    cpfrExitRollupMomTgtUtil Gauge,
    cpfrExitRollupStartingTgtUtil Gauge,
    cpfrExitRollupCurrentTgtUtil Gauge,
    cpfrExitRollupCumRxBytes Counter,
    cpfrExitRollupCumTxBytes Counter,
    cpfrExitRollupTimeRemain TimeInterval,
    cpfrExitOperStatus INTEGER,
    cpfrExitRsvpBandwidthPool CounterBasedGauge64
    }

cpfrExitIndex OBJECT-TYPE
    SYNTAX PfrExitIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a PfR monitored/controlled exit."
    ::= { cpfrExitEntry 1 }

cpfrExitStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.  The
        following columnar objects are allowed to be writable 
        when the storageType of this entry is permanent(4):
        cpfrExitName, cpfrExitType, cpfrDowngradeBgpCommunity,       
        cpfrExitMaxUtilRxType, cpfrExitMURxAbsolute,
        cpfrExitMURxPercentage     , cpfrExitMaxUtilTxType,
        cpfrExitMUTxAbsolute, cpfrExitMUTxPercentage,
        cpfrExitCostCalcMethod,        cpfrExitCostDiscard,
        cpfrExitCostDiscardType, cpfrExitCostDiscardAbsolute,
        cpfrExitCostDiscardPercent, cpfrExitCostEndDayOfMonth,
        cpfrExitCostEndOffset, cpfrExitCostFixedFeeCost,
        cpfrExitCostNickName, cpfrExitCostSamplingPeriod,
        cpfrExitCostRollupPeriod, cpfrExitCostSummerTimeStart,
        cpfrExitCostSummerTimeOffset, cpfrExitCostSummerTimeEnd."
    DEFVAL { nonVolatile }
    ::= { cpfrExitEntry 2 }

cpfrExitRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the exit table.
        The following columnar objects must be valid in order to
        transition the row to the active state: 
        cpfrExitName, cpfrExitType.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrExitEntry 3 }

cpfrExitName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the name of a PfR controlled interface
        on a BR."
    DEFVAL { "" }
    ::= { cpfrExitEntry 4 }

cpfrExitType OBJECT-TYPE
    SYNTAX INTEGER {
        internal(1),
        external(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the exit type.
        
        'internal'
        The interface is an internal interface. Internal interfaces
        are used for communication between BRs.
        
        'external'
        The interface is an external interface. External interfaces
        are used for active and passive monitoring and traffic
        forwarding."
    DEFVAL { external }
    ::= { cpfrExitEntry 5 }

cpfrDowngradeBgpCommunity OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a BGP prepend community number attached
        to an inside prefix BGP advertisement from the network to
        another autonomous system.  The BGP prepend community will
        increase the number of autonomous system hops in the
        advertisement of the inside prefix to other autonomous 
        systems."
    ::= { cpfrExitEntry 6 }

cpfrExitMaxUtilRxType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization configuration
        type for incoming traffic over a single PfR exit."
    DEFVAL { relative }
    ::= { cpfrExitEntry 7 }

cpfrExitMaxUtilRxAbsolute OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization on a PfR managed
        entrance link to an absolute value."
    DEFVAL { 0 }
    ::= { cpfrExitEntry 8 }

cpfrExitMaxUtilRxPercentage OBJECT-TYPE
    SYNTAX Gauge(1..100)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization on a PfR managed
        entrance link to a bandwidth percentage."
    DEFVAL { 75 }
    ::= { cpfrExitEntry 9 }

cpfrExitMaxUtilTxType OBJECT-TYPE
    SYNTAX PfrMetricPolicyType
--    Rsyntax INTEGER {
--        relative(1),
--        threshold(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization configuration
        type for traffic over a single PfR managed exit."
    DEFVAL { relative }
    ::= { cpfrExitEntry 10 }

cpfrExitMaxUtilTxAbsolute OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the maximum utilization on a PfR managed
        exit link to an absolute value."
    DEFVAL { 0 }
    ::= { cpfrExitEntry 11 }

cpfrExitMaxUtilTxPercentage OBJECT-TYPE
    SYNTAX Gauge(1..100)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum utilization on a PfR
        managed exit link to a bandwidth percentage."
    DEFVAL { 75 }
    ::= { cpfrExitEntry 12 }

cpfrExitCostCalcMethod OBJECT-TYPE
    SYNTAX INTEGER {
        combined(1),
        separate(2),
        sum(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates how the fee for a particular exit is
        calculated.
        
        'combined'
           Specifies billing based on combined egress and ingress
           rollup samples.
        
        'separate'
           Specifies billing based on separate egress and ingress
           rollup samples.
        
        'sum'
           Specifies billing based on egress and ingress rollup samples
           that are added and then combined."
    DEFVAL { combined }
    ::= { cpfrExitEntry 13 }

cpfrExitCostDiscard OBJECT-TYPE
    SYNTAX INTEGER {
        daily(1),
        monthly(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies how often rollup samples are discarded.
        
        'daily'
        Rollup samples are discarded every day.
        
        'monthly'
        Rollup samples are discarded every month."
    DEFVAL { monthly }
    ::= { cpfrExitEntry 14 }

cpfrExitCostDiscardType OBJECT-TYPE
    SYNTAX INTEGER {
        absolute(1),
        percent(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the threshold value types for cost
        discard. 
        
        'absolute' 
           Absolute value configured in cpfrExitCostDiscardAbsolute
        object will be used. 
        
        'percent' 
           Percent value configured in cpfrExitCostDiscardPercent
        object will be used."
    DEFVAL { absolute }
    ::= { cpfrExitEntry 15 }

cpfrExitCostDiscardAbsolute OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    samples
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies an absolute number of rollup samples
        to be discarded."
    DEFVAL { 0 }
    ::= { cpfrExitEntry 16 }

cpfrExitCostDiscardPercent OBJECT-TYPE
    SYNTAX Gauge(1..99)
--  Units
--    percent
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies what percentage of the rollup samples
        should be discarded when calculating the exit cost."
    ::= { cpfrExitEntry 17 }

cpfrExitCostEndDayOfMonth OBJECT-TYPE
    SYNTAX Gauge(1..31)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the end billing date."
    DEFVAL { 1 }
    ::= { cpfrExitEntry 18 }

cpfrExitCostEndOffsetType OBJECT-TYPE
    SYNTAX INTEGER {
        positive(1),
        negative(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the cpfrExitCostEndOffset is before or
        after cpfrExitCostEndDayOfMonth.
        
        'positive'
           time After cpfrExitCostEndDayOfMonth.
        
        'negative'
           time before cpfrExitCostEndDayOfMonth."
    DEFVAL { positive }
    ::= { cpfrExitEntry 19 }

cpfrExitCostEndOffset OBJECT-TYPE
    SYNTAX TimeInterval
--    Rsyntax INTEGER(0..2147483647)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates an offset in hours and minutes, allowing
        you to compensate for time zone differences."
    ::= { cpfrExitEntry 20 }

cpfrExitCostFixedFeeCost OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    dollars
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a non-usage based fixed fee."
    ::= { cpfrExitEntry 21 }

cpfrExitCostNickName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies a nickname for the cost structure."
    DEFVAL { "" }
    ::= { cpfrExitEntry 22 }

cpfrExitCostSamplingPeriod OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the sampling period."
    DEFVAL { 0 }
    ::= { cpfrExitEntry 23 }

cpfrExitCostRollupPeriod OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies that samples are rolled up at the
        interval specified for the minutes argument. This value must be
        greater than or equal to the corresponding instance of
        cpfrExitCostSamplingPeriod."
    DEFVAL { 0 }
    ::= { cpfrExitEntry 24 }

cpfrExitCostSummerTimeStart OBJECT-TYPE
    SYNTAX DateAndTime
--    Rsyntax OCTET STRING(SIZE(8|11))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the date and time when the daylight
        savings time starts."
    ::= { cpfrExitEntry 25 }

cpfrExitCostSummerTimeOffset OBJECT-TYPE
    SYNTAX Gauge(1..120)
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the offset added in the spring and
        subtracted in the fall."
    ::= { cpfrExitEntry 26 }

cpfrExitCostSummerTimeEnd OBJECT-TYPE
    SYNTAX DateAndTime
--    Rsyntax OCTET STRING(SIZE(8|11))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the date and time when daylight saving
        time comes to an end."
    ::= { cpfrExitEntry 27 }

cpfrExitCapacity OBJECT-TYPE
    SYNTAX --?? syntax is not convertable to SMIv1
           CounterBasedGauge64
--    Rsyntax Counter64
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the capacity of the interface."
    ::= { cpfrExitEntry 28 }

cpfrExitRxBandwidth OBJECT-TYPE
    SYNTAX --?? syntax is not convertable to SMIv1
           CounterBasedGauge64
--    Rsyntax Counter64
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the receive bandwidth as configured on
        the interface."
    ::= { cpfrExitEntry 29 }

cpfrExitTxBandwidth OBJECT-TYPE
    SYNTAX --?? syntax is not convertable to SMIv1
           CounterBasedGauge64
--    Rsyntax Counter64
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the transmit bandwidth as configured on
        the interface."
    ::= { cpfrExitEntry 30 }

cpfrExitTxLoad OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    percent
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the transmit load of the exit."
    ::= { cpfrExitEntry 31 }

cpfrExitRxLoad OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the receive traffic load of the exit."
    ::= { cpfrExitEntry 32 }

cpfrExitNickName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The object indicates the exit nickname assigned to an external
        PfR interface."
    ::= { cpfrExitEntry 33 }

cpfrExitCost1 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    dollars
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the exit link cost for the current
        month."
    ::= { cpfrExitEntry 34 }

cpfrExitSustainedUtil1 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sustained utilization of the exit
        link in the current month."
    ::= { cpfrExitEntry 35 }

cpfrExitCost2 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    dollars
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the exit link cost of the previous
        month."
    ::= { cpfrExitEntry 36 }

cpfrExitSustainedUtil2 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sustained utilization of the exit
        link for the month prior to the previous month."
    ::= { cpfrExitEntry 37 }

cpfrExitCost3 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    dollars
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the exit link cost for the month prior to
        the previous month."
    ::= { cpfrExitEntry 38 }

cpfrExitSustainedUtil3 OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sustained utilization of the exit
        link the month prior to the previous month."
    ::= { cpfrExitEntry 39 }

cpfrExitRollupTotal OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    minutes
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the total rollups."
    ::= { cpfrExitEntry 40 }

cpfrExitRollupDiscard OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the total discarded rollups."
    ::= { cpfrExitEntry 41 }

cpfrExitRollupLeft OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the left over rollups."
    ::= { cpfrExitEntry 42 }

cpfrExitRollupCollected OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the rollups that are being collected."
    ::= { cpfrExitEntry 43 }

cpfrExitRollupMomTgtUtil OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the momentary utilization of the
        targets."
    ::= { cpfrExitEntry 44 }

cpfrExitRollupStartingTgtUtil OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the target when the rollup starts."
    ::= { cpfrExitEntry 45 }

cpfrExitRollupCurrentTgtUtil OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    kbps
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates current rollup target."
    ::= { cpfrExitEntry 46 }

cpfrExitRollupCumRxBytes OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the cumulative receive bytes in a
        rollup."
    ::= { cpfrExitEntry 47 }

cpfrExitRollupCumTxBytes OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the cumulative transmit bytes in a
        rollup."
    ::= { cpfrExitEntry 48 }

cpfrExitRollupTimeRemain OBJECT-TYPE
    SYNTAX TimeInterval
--    Rsyntax INTEGER(0..2147483647)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the remaining time before a new rollup is
        started."
    ::= { cpfrExitEntry 49 }

cpfrExitOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the current status of an exit.
        
        'up'
           The exit is up.
        
        'down'
           The exit is down."
    ::= { cpfrExitEntry 50 }

cpfrExitRsvpBandwidthPool OBJECT-TYPE
    SYNTAX --?? syntax is not convertable to SMIv1
           CounterBasedGauge64
--    Rsyntax Counter64
--  Units
--    bytes
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the bandwidth pool for RSVP in PfR."
    ::= { cpfrExitEntry 51 }

cpfrExitCostTierTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrExitCostTierEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the cost tier instances created by the
        system.
        
        This table has an expansion dependent relationship on the  
        cpfrExitTable, containing zero or more rows for each
        cpfrExitEntry."
    ::= { ciscoPfrMIBObjects 10 }

cpfrExitCostTierEntry OBJECT-TYPE
    SYNTAX CpfrExitCostTierEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the configuration of a cost tier of a PfR
        monitored or Controlled exit.
        
        A peer SNMP entity may create a cost tier for a PfR monitored
        or controlled exit by setting an instance of
        cpfrExitCostTierRowStatus to 'createAndWait' or 'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create a
        cost tier for a PfR monitored or controlled external exit.  In
        these cases, the system must automatically create a row in the
        cpfrExitCostTierTable.
        
        A peer SNMP entity may destroy a cost tier from a PfR monitored
        or controlled external exit by setting the corresponding
        instance of cpfrLinkGroupRowStatus to 'destroy'.  Observe that
        an implementation that does not support this option must specify
        this limitation in an agent capability statement.
        
        Other management entities may destroy a cost tier from a
        PfR monitored or controlled external exit.  In these cases, the
        system must automatically destroy the corresponding row in the
        cpfrExitCostTierTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrExitEntry."
    INDEX { cpfrMCIndex, cpfrBRIndex, cpfrExitIndex, cpfrExitCostTierIndex }
    ::= { cpfrExitCostTierTable 1 }

CpfrExitCostTierEntry ::= SEQUENCE {
    cpfrExitCostTierIndex Gauge,
    cpfrExitCostTierStorageType StorageType,
    cpfrExitCostTierRowStatus RowStatus,
    cpfrExitCostTierFee Gauge
    }

cpfrExitCostTierIndex OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies the cost tier of a PfR monitored/controlled exit."
    ::= { cpfrExitCostTierEntry 1 }

cpfrExitCostTierStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.
        The following columnar objects are allowed to be writable 
        when the storageType of this entry is permanent(4):
        cpfrExitCostTierFee."
    DEFVAL { nonVolatile }
    ::= { cpfrExitCostTierEntry 2 }

cpfrExitCostTierRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a row in the exit cost tier
        table.  The following columnar objects must be valid in 
        order to transition the row to the active state: 
        cpfrExitCostTierFee.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrExitCostTierEntry 3 }

cpfrExitCostTierFee OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the cost value of a cost tier."
    DEFVAL { 0 }
    ::= { cpfrExitCostTierEntry 4 }

cpfrTrafficClassTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrTrafficClassEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the TC instances created by the system."
    ::= { ciscoPfrMIBObjects 11 }

cpfrTrafficClassEntry OBJECT-TYPE
    SYNTAX CpfrTrafficClassEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the metrics that identify a PfR monitored
        or controlled TC.
        
        A device supporting PfR creates a row in a
        cpfrTrafficClassTable when it recognizes the addition of a new
        TC monitored by PfR. Likewise, such a device destroys a row 
        in the cpfrTrafficClassTable when a TC has been purged from the
        system."
    INDEX { cpfrMCIndex, cpfrTrafficClassIndex }
    ::= { cpfrTrafficClassTable 1 }

CpfrTrafficClassEntry ::= SEQUENCE {
    cpfrTrafficClassIndex Gauge,
    cpfrTCBRIndex PfrBorderRouterIndex,
    cpfrTCBRExitIndex PfrExitIndex,
    cpfrTCMapIndex PfrMapIndexOrZero,
    cpfrTCMapPolicyIndex PfrMapPolicyIndex,
    cpfrTrafficClassValid OCTET STRING,
    cpfrTCSrcPrefixType InetAddressType,
    cpfrTCSrcPrefix InetAddress,
    cpfrTCSrcPrefixLen Gauge,
    cpfrTCSrcMinPort CiscoPort,
    cpfrTCSrcMaxPort CiscoPort,
    cpfrTCDstPrefixType InetAddressType,
    cpfrTCDstPrefix InetAddress,
    cpfrTCDstPrefixLen Gauge,
    cpfrTCDstMinPort CiscoPort,
    cpfrTCDstMaxPort CiscoPort,
    cpfrTCDscpValue DscpOrAny,
    cpfrTCProtocol INTEGER,
    cpfrTCNbarApplication CiscoPdProtocolIndex
    }

cpfrTrafficClassIndex OBJECT-TYPE
    SYNTAX Gauge(1..4294967295)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a TC monitored/controlled by PfR."
    ::= { cpfrTrafficClassEntry 1 }

cpfrTCBRIndex OBJECT-TYPE
    SYNTAX PfrBorderRouterIndex(1..4294967295)
--    Rsyntax Gauge(1..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the index of the BR on which PfR is
        controlling the TC."
    ::= { cpfrTrafficClassEntry 2 }

cpfrTCBRExitIndex OBJECT-TYPE
    SYNTAX PfrExitIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the index of the exit on which PfR is
        controlling the TC."
    ::= { cpfrTrafficClassEntry 3 }

cpfrTCMapIndex OBJECT-TYPE
    SYNTAX PfrMapIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the map index of the PfR map defining the
        policy for the TC."
    ::= { cpfrTrafficClassEntry 4 }

cpfrTCMapPolicyIndex OBJECT-TYPE
    SYNTAX PfrMapPolicyIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the map policy index of the PfR map
        defining the policy for the TC."
    ::= { cpfrTrafficClassEntry 5 }

cpfrTrafficClassValid OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   source(0)
        --   destination(1)
        --   sourcePort(2)
        --   destinationPort(3)
        --   dscp(4)
        --   protocol(5)
        --   nbar(6)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates which objects in the traffic class table
        are valid. If an attribute of a TC is configured, the 
        corresponding bit in this object should be set.
        
        'source'
           Source address is valid.
        
        'destination'
           Destination address is valid.
        
        'sourcePort'
           Source port object in the entry is valid.
        
        'destinationPort'
           Destination port object in the entry is valid.
        
        'dscp'
           DSCP object in the entry is valid.
        
        'protocol'
           Protocol object in the entry is valid.
        
        'nbar'
           NBAR object in the entry is valid."
    ::= { cpfrTrafficClassEntry 6 }

cpfrTCSrcPrefixType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the type of IP address indicated by the
        corresponding instance of cpfrTCSrcPrefix."
    ::= { cpfrTrafficClassEntry 7 }

cpfrTCSrcPrefix OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the source IP prefix of the corresponding
        TC."
    ::= { cpfrTrafficClassEntry 8 }

cpfrTCSrcPrefixLen OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the prefix length of source IP address
        for the TC."
    ::= { cpfrTrafficClassEntry 9 }

cpfrTCSrcMinPort OBJECT-TYPE
    SYNTAX CiscoPort
--    Rsyntax INTEGER(0..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the minimum source port number for a
        TC."
    ::= { cpfrTrafficClassEntry 10 }

cpfrTCSrcMaxPort OBJECT-TYPE
    SYNTAX CiscoPort
--    Rsyntax INTEGER(0..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the maximum source port number for a TC"
    ::= { cpfrTrafficClassEntry 11 }

cpfrTCDstPrefixType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the type of IP address indicated by the
        corresponding instances of cpfrTCDstPrefix."
    ::= { cpfrTrafficClassEntry 12 }

cpfrTCDstPrefix OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the destination IP prefix of the
        corresponding TC."
    ::= { cpfrTrafficClassEntry 13 }

cpfrTCDstPrefixLen OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the prefix length of destination IP
        address for the TC."
    ::= { cpfrTrafficClassEntry 14 }

cpfrTCDstMinPort OBJECT-TYPE
    SYNTAX CiscoPort
--    Rsyntax INTEGER(0..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the minimum destination port of a TC."
    ::= { cpfrTrafficClassEntry 15 }

cpfrTCDstMaxPort OBJECT-TYPE
    SYNTAX CiscoPort
--    Rsyntax INTEGER(0..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the maximum destination port of a TC"
    ::= { cpfrTrafficClassEntry 16 }

cpfrTCDscpValue OBJECT-TYPE
    SYNTAX DscpOrAny(-1|0..63)
--    Rsyntax INTEGER(-1|0..63)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the Differentiated Services Code Point
        (DSCP) value of a TC."
    ::= { cpfrTrafficClassEntry 17 }

cpfrTCProtocol OBJECT-TYPE
    SYNTAX INTEGER {
        static(1),
        eigrp(2),
        ribpbr(3),
        bgp(4),
        pbr(5),
        cce(6),
        unknown(7)
        }
--  Units
--    bgp
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the routing protocol by a TC."
    ::= { cpfrTrafficClassEntry 18 }

cpfrTCNbarApplication OBJECT-TYPE
    SYNTAX CiscoPdProtocolIndex
--    Rsyntax Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the application or protocol recognized by
        NBAR. The value of this object points to an entry in
        cnpdSupportedProtocolsTable, which describes the recognized
        protocol, and is defined in CISCO-NBAR-PROTOCOL-DISCOVERY-MIB."
    ::= { cpfrTrafficClassEntry 19 }

cpfrTrafficClassStatusTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrTrafficClassStatusEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the TC status instances created by the
        system.  
        
        This table has an one-to-one relationship with
        cpfrTrafficClassTable,  containing a row for each entry in
        cpfrTrafficClassTable."
    ::= { ciscoPfrMIBObjects 12 }

cpfrTrafficClassStatusEntry OBJECT-TYPE
    SYNTAX CpfrTrafficClassStatusEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the status of a PfR monitored or controlled
        TC.
        
        A device supporting PfR creates a row in a
        cpfrTrafficClassStatusTable when it recognizes the addition of
        a new TC.  Likewise, such a device destroys a row in the
        cpfrTrafficClassStatusTable when a TC has been purged from the
        system."
    INDEX { cpfrMCIndex, cpfrTrafficClassIndex }
    ::= { cpfrTrafficClassStatusTable 1 }

CpfrTrafficClassStatusEntry ::= SEQUENCE {
    cpfrTCStatus INTEGER,
    cpfrTCSType INTEGER,
    cpfrTCSLearnListIndex PfrLearnListIndexOrZero,
    cpfrTCSTimeOnCurrExit Gauge,
    cpfrTCSControlState INTEGER,
    cpfrTCSControlBy INTEGER,
    cpfrTCSTimeRemainCurrState Gauge,
    cpfrTCSLastOOPEventTime TimeStamp,
    cpfrTCSLastOOPReason INTEGER,
    cpfrTCSLastRouteChangeEvent TimeStamp,
    cpfrTCSLastRouteChangeReason PfrLastUncontrolReason
    }

cpfrTCStatus OBJECT-TYPE
    SYNTAX INTEGER {
        default(1),
        choose(2),
        holddown(3),
        inpolicy(4),
        oopolicy(5)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the current state of a TC.
        
        'default'
        The state means that the parent IP routes control the exit
        for this destination prefix. This would be the same behavior as
        if PfR were not configured or was shutdown.
        
        'choose'
        The state indicates PfR is choosing the exit for the prefix.
        
        'holddown'
        The state is seen when a TC is initially controlled by PfR.
        This holddown concept is applied to prevent churning or erratic
        behavior of PfR managed routes from being injected and
        withdrawn
        from the IP routing table (and subsequently being redistributed
        by some IGP) or BGP tables.
        
        'inpolicy'
        This state means that the prefix meets the policy associated
        with this prefix or application. 
        
        'oopolicy'
        The prefix or application has been identified as failing to
        meet its respective policy."
    ::= { cpfrTrafficClassStatusEntry 1 }

cpfrTCSType OBJECT-TYPE
    SYNTAX INTEGER {
        learned(1),
        configured(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether a TC was learned or configured.
        
        'learned'
           The TC is learned by PfR.
        
        'configured'
           The TC is configured via CLI command."
    ::= { cpfrTrafficClassStatusEntry 2 }

cpfrTCSLearnListIndex OBJECT-TYPE
    SYNTAX PfrLearnListIndexOrZero
--    Rsyntax Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the index of the learn list
        responsible for PfR learning this TC."
    ::= { cpfrTrafficClassStatusEntry 3 }

cpfrTCSTimeOnCurrExit OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the length of time the TC has been
        controlled on the current exit."
    ::= { cpfrTrafficClassStatusEntry 4 }

cpfrTCSControlState OBJECT-TYPE
    SYNTAX INTEGER {
        controlled(1),
        uncontrolled(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The object indicates the control state of a TC.
        
        'controlled'
           PfR is controlling this TC.
        
        'uncontrolled'
           PfR is not controlling this TC."
    ::= { cpfrTrafficClassStatusEntry 5 }

cpfrTCSControlBy OBJECT-TYPE
    SYNTAX INTEGER {
        static(1),
        eigrp(2),
        ribpbr(3),
        bgp(4),
        pbr(5),
        cce(6),
        unknown(7)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates which routing protocol a TC is
        being controlled by.
        
        'static'
           TC is controlled by static routing protocol.
        
        'eigrp'
           TC is controlled by EIGRP.
        
        'ribpbr'
           TC is controlled by RIB.
        
        'bgp'
           TC is controlled by BGP
        
        'pbr'
           TC is controlled by PBR.
        
        'cce'
           TC is controlled by CCE.
        
        'unknown'
           TC os controlled by unknown protocols"
    ::= { cpfrTrafficClassStatusEntry 6 }

cpfrTCSTimeRemainCurrState OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the time remaining before the prefix
        timer expires."
    ::= { cpfrTrafficClassStatusEntry 7 }

cpfrTCSLastOOPEventTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the time when the last out-of-policy
        event was observed."
    ::= { cpfrTrafficClassStatusEntry 8 }

cpfrTCSLastOOPReason OBJECT-TYPE
    SYNTAX INTEGER {
        delayOOPPassiveMode(1),
        lossOOPPassiveMode(2),
        unreachableOOPPassiveMode(3),
        delayOOPActiveMode(4),
        lossOOPActiveMode(5),
        unreachableOOPActiveMode(6),
        jitterOOPActiveMode(7),
        mosOOPActiveMode(8),
        none(9),
        rsvpOOPRecomputeExclude(10)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the last out-of-policy reason.
        
        This object indicates the reason that causes an out-of-policy
        event.
        
        'delayOOPassiveMode'
        The Delay is out of policy in passive mode.
        
        'lossOOPassiveMode'
        The loss is out of policy in passive mode.
        
        'unreachableOOPassiveMode'
        The unreachability rate is out of policy in passive mode.
        
        'delayOOPActiveMode'
        The Delay is out of policy in active mode.
        
        'lossOOPActiveMode'
        The loss is out of policy in active mode.
        
        'unreachableOOPActiveMode'
        The unreachability rate is out of policy in active mode.
        
        'jitterOOPActiveMode'
        The jitter is out of policy in active mode.
        
        'mosOOPActiveMode'
        The mos is out of policy in active mode.
        
        'none'
        no reason.
        
        'rsvpRecomputeExclude'
        The TC was excluded by recomputing RSVP bandwidth."
    ::= { cpfrTrafficClassStatusEntry 9 }

cpfrTCSLastRouteChangeEvent OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the value of sysUpTime when the last
        route change occurred for this TC."
    ::= { cpfrTrafficClassStatusEntry 10 }

cpfrTCSLastRouteChangeReason OBJECT-TYPE
    SYNTAX PfrLastUncontrolReason
--    Rsyntax INTEGER {
--        none(1),
--        activatingUnsedFcdTgt(2),
--        ifaceDown(3),
--        newProbeTargetAssigned(4),
--        newTargetAssigned(5),
--        borderDown(6),
--        uncontrolNonOptimizedPfx(7),
--        recontrolNull0Pfx(8),
--        recontrolSinkHolePfx(9),
--        modeRouteChange(10),
--        pfxEnabled(11),
--        uncontrolModeMonitorChange(12),
--        insideEnabled(13),
--        forcedNextHop(14),
--        forwardToNull0(15),
--        clearOnePfx(16),
--        clearOneTc(17),
--        grantUpdated(18),
--        tcInFastMode(19),
--        pbrBRTopologyChange(20),
--        pfrReqNotMet(21),
--        probeFrequencyChange(22),
--        fcdTgtAssRemMod(23),
--        policyChangedAddedNewFcdProbeTgt(24),
--        usingFcdTgtNow(25),
--        firstTargetWithDscpAdded(26),
--        usingLmNow(27),
--        lastTargetWithDscpRemoved(28),
--        couldntMonitor(29),
--        couldntControl(30),
--        applControlOnBrFailed(31),
--        allProtoCouldNtControl(32),
--        excludePfxFailed(33),
--        ipflowRestFailed(34),
--        couldntExclude(35),
--        dontDowngradeAllEntrances(36),
--        maxDownGrade(37),
--        cantSelectEntrances(38),
--        unhandledOopReasonInChooseExit(39),
--        oopModeSelectExitGood(40),
--        couldntFindBestExitInAllLinkGrps(41),
--        couldntFindBestExit(42),
--        failedToControlRoute(43),
--        endOfProbing(44),
--        retryForcedNextHop(45),
--        noStatusInPfxTimeout(46),
--        couldntChooseExitInPfxTimeout(47),
--        inconsistentView(48),
--        unableToSendControlMsg(49),
--        nbarIdStateUpdated(50),
--        controledExitIsNotCurrent(51),
--        exitMisMatch(52),
--        newExitWhileInpolicy(53),
--        unknownExit(54),
--        controlledExitIsNotCurrForUpd(55),
--        couldntControlPasPfxInSpecMode(56),
--        remoteStatsNotFound(57),
--        nbarInternalIfAddedRemoved(58),
--        noPassiveData(59),
--        probeNumPktsChanged(60),
--        last(61)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the reason the last route change
        occurred."
    ::= { cpfrTrafficClassStatusEntry 11 }

cpfrTrafficClassMetricTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrTrafficClassMetricEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the TC's metrics instances created by the
        system.  
        
        This table has an one-to-one relationship with
        cpfrTrafficClassTable,  containing a row for each entry in
        cpfrTrafficClassTable."
    ::= { ciscoPfrMIBObjects 13 }

cpfrTrafficClassMetricEntry OBJECT-TYPE
    SYNTAX CpfrTrafficClassMetricEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing the metric for a PfR monitored or
        controlled TC.
        
        A device supporting PfR creates a row in a
        cpfrTrafficClassMetricTable when it recognizes the addition of
        a new TC.  Likewise, such a device destroys a row in the
        cpfrTrafficClassMetricTable when a TC has been purged from the
        system."
    INDEX { cpfrMCIndex, cpfrTrafficClassIndex }
    ::= { cpfrTrafficClassMetricTable 1 }

CpfrTrafficClassMetricEntry ::= SEQUENCE {
    cpfrTCMLastUpdateTime TimeStamp,
    cpfrTCMAge Gauge,
    cpfrTCMetricsValid OCTET STRING,
    cpfrTCMActiveSTJitterAvg Gauge,
    cpfrTCMMOSPercentage Gauge,
    cpfrTCMAttempts Gauge,
    cpfrTCMPackets Gauge,
    cpfrTCMPassiveSTUnreachableAvg Gauge,
    cpfrTCMPassiveSTDelayAvg Gauge,
    cpfrTCMPassiveSTLossAvg Gauge,
    cpfrTCMActiveSTUnreachableAvg Gauge,
    cpfrTCMActiveSTDelayAvg Gauge,
    cpfrTCMPassiveLTUnreachableAvg Gauge,
    cpfrTCMPassiveLTDelayAvg Gauge,
    cpfrTCMPassiveLTLossAvg Gauge,
    cpfrTCMActiveLTUnreachableAvg Gauge,
    cpfrTCMActiveLTDelayAvg Gauge
    }

cpfrTCMLastUpdateTime OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the value of sysUpTime when the metrics
        were last updated."
    ::= { cpfrTrafficClassMetricEntry 1 }

cpfrTCMAge OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the age of a metric."
    ::= { cpfrTrafficClassMetricEntry 2 }

cpfrTCMetricsValid OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   activeSTJitterAvg(0)
        --   mosPercentage(1)
        --   attempts(2)
        --   packets(3)
        --   passiveSTUnreachableAvg(4)
        --   passiveSTdelayAvg(5)
        --   passiveSTLossAvg(6)
        --   activeSTUnreachableAvg(7)
        --   activeSTDelayAvg(8)
        --   passiveLTUnreachableAvg(9)
        --   passiveLTDelayAvg(10)
        --   passiveLTLossAvg(11)
        --   activeLTUnreachableAvg(12)
        --   activeLTDelayAvg(13)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates if an object in the entry is valid.
        
        'relativeDelay'
           Relative delay is a valid value.
        
        'relativeJitter'
           Relative jitter is a valid value.
        
        'relativeDelayLoss'
           Relative loss is a valid value.
        
        'relativeDelayUnreachable'
           Relative unreachability rate is a valid value.
        
        'activeDelay'
           Absolute delay is a valid value.
        
        'activeJitter'
           Absolute jitter is a valid value.
        
        'activeLoss'
           Absolute loss is a valid value.
        
        'activeUnreachable'
           Absolute unreachable rate is a valid value.
        
        'mosPercentage'
           Most percentage is a valid value.
        
        'attempts'
           The number of attempts is a valid value.
        
        'packets'
           Probe packet is a valid value.
        
        'passiveSTUnreachableAvg'
           Short time unreachability rate in passive mode is a valid
        value.
        
        'passiveSTDelayAvg'
           Short time delay in passive mode is a valid value.
        
        'passiveSTLossAvg'
           Short time loss in passive mode is a valid value.
        
        'activeSTUnreachableAvg'
           Short time unreachability rate in active mode is a valid
        value.
        
        'activeSTDelayAvg'
           Short time delay in active mode is a valid value.
        
        'passiveLTUnreachableAvg'
           Long time unreachability rate in passive mode is a valid
        value. 
        
        'passiveLTDelayAvg'
           Long time delay in passive mode is a valid value.
        
        'passiveLTLossAvg'
           Long time loss in passive mode is a valid value.
        
        'activeLTUnreachableAvg'
           Long time unreachability rate in active mode is a valid
        value.
        
        'activeLTDelayAvg'
           Long time delay in active mode is a valid value."
    ::= { cpfrTrafficClassMetricEntry 3 }

cpfrTCMActiveSTJitterAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    percent
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates average jitter of a TC in active
        mode."
    ::= { cpfrTrafficClassMetricEntry 4 }

cpfrTCMMOSPercentage OBJECT-TYPE
    SYNTAX Gauge(0..100)
--  Units
--    percent
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of Mean Opinion Score (MOS)
        packets with a percentage below threshold in active mode."
    ::= { cpfrTrafficClassMetricEntry 5 }

cpfrTCMAttempts OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    attempts
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of attempts to send an
        active probe to a target for this TC."
    ::= { cpfrTrafficClassMetricEntry 6 }

cpfrTCMPackets OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    Packets/probe
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number packets per jitter probe."
    ::= { cpfrTrafficClassMetricEntry 7 }

cpfrTCMPassiveSTUnreachableAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    flows-per-million
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of the average short term
        unreachable targets in passive mode."
    ::= { cpfrTrafficClassMetricEntry 8 }

cpfrTCMPassiveSTDelayAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the short term delay as measured by
        Netflow. The short term interval is 5 minutes."
    ::= { cpfrTrafficClassMetricEntry 9 }

cpfrTCMPassiveSTLossAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of short term packets lost
        in passive mode."
    ::= { cpfrTrafficClassMetricEntry 10 }

cpfrTCMActiveSTUnreachableAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
--  Units
--    flows-per-million
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of short term unreachable
        packets in active mode."
    ::= { cpfrTrafficClassMetricEntry 11 }

cpfrTCMActiveSTDelayAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the short term delay in
        milliseconds in active mode."
    ::= { cpfrTrafficClassMetricEntry 12 }

cpfrTCMPassiveLTUnreachableAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of long term unreachable
        packets in flows-per-million in passive mode."
    ::= { cpfrTrafficClassMetricEntry 13 }

cpfrTCMPassiveLTDelayAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the long term delay in milliseconds
        in passive mode."
    ::= { cpfrTrafficClassMetricEntry 14 }

cpfrTCMPassiveLTLossAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of packets lost over the
        long term in packets-per-million in passive mode."
    ::= { cpfrTrafficClassMetricEntry 15 }

cpfrTCMActiveLTUnreachableAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of long term unreachable
        packets in flows-per-million in active mode."
    ::= { cpfrTrafficClassMetricEntry 16 }

cpfrTCMActiveLTDelayAvg OBJECT-TYPE
    SYNTAX Gauge(0..4294967295)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the long term delay in milliseconds
        in active mode."
    ::= { cpfrTrafficClassMetricEntry 17 }

cpfrLinkGroupExitTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrLinkGroupExitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the link group instances created by the
        system. 
        
        It has an expansion dependent relationship on cpfrExitTable, 
        containing zero or more rows for each cpfrExitEntry."
    ::= { ciscoPfrMIBObjects 14 }

cpfrLinkGroupExitEntry OBJECT-TYPE
    SYNTAX CpfrLinkGroupExitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing a link group configured for a PfR monitored
        or controlled external exit.
        
        A peer SNMP entity may create a link group for a PfR monitored
        or controlled exit by setting an instance of
        cpfrLinkGroupRowStatus to 'createAndWait' or 'createAndGo'. 
        Observe that an implementation that does not support these
        option must specify these limitations in an agent capability
        statement.
        
        Other management entities (e.g., the local console) may create a
        link group for a PfR monitored or controlled external exit.  In
        these cases, the system must automatically create a row in the
        cpfrLinkGroupExitTable.
        
        A peer SNMP entity may destroy a link group from a PfR monitored
        or controlled external exit by setting the corresponding
        instance of cpfrLinkGroupRowStatus to 'destroy'.  Observe that
        an implementation that does not support this option must specify
        this limitation in an agent capability statement.
        
        Other management entities may destroy a link group from a
        PfR monitored or controlled external exit.  In these cases, the
        system must automatically destroy the corresponding row in the
        cpfrLinkGroupExitTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrExitEntry."
    INDEX { cpfrMCIndex, cpfrLinkGroupName, cpfrLinkGroupIndex }
    ::= { cpfrLinkGroupExitTable 1 }

CpfrLinkGroupExitEntry ::= SEQUENCE {
    cpfrLinkGroupName SnmpAdminString,
    cpfrLinkGroupIndex Gauge,
    cpfrLinkGroupStorageType StorageType,
    cpfrLinkGroupRowStatus RowStatus,
    cpfrLinkGroupBRIndex PfrBorderRouterIndex,
    cpfrLinkGroupExitIndex PfrExitIndex,
    cpfrLinkGroupType INTEGER
    }

cpfrLinkGroupName OBJECT-TYPE
    SYNTAX SnmpAdminString(SIZE(1..64))
--    Rsyntax OCTET STRING(SIZE(1..64))
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the name of a link-group."
    ::= { cpfrLinkGroupExitEntry 1 }

cpfrLinkGroupIndex OBJECT-TYPE
    SYNTAX Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates a unique arbitrary number identifying a
        specific instance in a link-group with the identical name."
    ::= { cpfrLinkGroupExitEntry 2 }

cpfrLinkGroupStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.
        The following columnar objects are allowed to be writable 
        when the storageType of this entry is permanent(4):
        cpfrLinkGroupBRIndex, cpfrLinkGroupExitIndex."
    DEFVAL { nonVolatile }
    ::= { cpfrLinkGroupExitEntry 3 }

cpfrLinkGroupRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a NBAR application list.
        The following columnar objects must be valid in order to
        transition the row to the active state: 
        None.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrLinkGroupExitEntry 4 }

cpfrLinkGroupBRIndex OBJECT-TYPE
    SYNTAX PfrBorderRouterIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the PfR BR on which the exit related to
        this link group is configured."
    ::= { cpfrLinkGroupExitEntry 5 }

cpfrLinkGroupExitIndex OBJECT-TYPE
    SYNTAX PfrExitIndex
--    Rsyntax Gauge(1..4294967295)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the exit, identified by this index, in
        combination with cpfrLinkGroupBRIndex, in cpfrExitTable."
    ::= { cpfrLinkGroupExitEntry 6 }

cpfrLinkGroupType OBJECT-TYPE
    SYNTAX INTEGER {
        primaryLinkGroup(1),
        fallbackLinkGroup(2),
        none(3)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates PfR Link-Group type.
        
        'primaryLinkGroup'
            primary link-group
        
        'fallbackLinkGroup'
            fallback link-group
        
        'none'
            There is no link-group."
    ::= { cpfrLinkGroupExitEntry 7 }

cpfrNbarApplListTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CpfrNbarApplListEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table lists the NBAR list instances created by the
        system.  
        
        This table has an expansion dependent relationship on
        cpfrMatchTable and cpfrLearnListTable, containing zero or more
        rows for each cpfrMatchEntry and cpfrLearnListEntry."
    ::= { ciscoPfrMIBObjects 15 }

cpfrNbarApplListEntry OBJECT-TYPE
    SYNTAX CpfrNbarApplListEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry describing a NBAR application configured in PfR.
        
        A peer SNMP entity may create an NBAR application entry by
        setting an instance of cpfrNbarApplListRowStatus to
        'createAndWait' or
        'createAndGo'.  Observe that an implementation that does not
        support these option must specify these limitations in an agent
        capability statement.
        
        Other management entities (e.g., the local console) may create a
        NBAR application.  In these cases, the system must
        automatically create a row in the cpfrNbarApplListTable.
        
        A peer SNMP entity may destroy a NBAR application by setting the
        corresponding instance of cpfrNbarApplListRow Status to
        'destroy'.  Observe that an implementation that does not support
        this option must specify this limitation in an agent
        capability statement.
        
        Other management entities may destroy an NBAR application.  In
        these cases, the system must automatically destroy the
        corresponding row in the cpfrNbarApplListTable.
        
        The system automatically destroys rows when the system or
        EMS/NMS destroys the corresponding entry in cpfrMatchEntry and
        cpfrLearnListEntry."
    INDEX { cpfrNbarApplListName, cpfrNbarApplIndex }
    ::= { cpfrNbarApplListTable 1 }

CpfrNbarApplListEntry ::= SEQUENCE {
    cpfrNbarApplListName SnmpAdminString,
    cpfrNbarApplIndex Gauge,
    cpfrNbarApplListStorageType StorageType,
    cpfrNbarApplListRowStatus RowStatus,
    cpfrNbarApplPdIndex CiscoPdProtocolIndex
    }

cpfrNbarApplListName OBJECT-TYPE
    SYNTAX SnmpAdminString(SIZE(1..64))
--    Rsyntax OCTET STRING(SIZE(1..64))
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the name of a NBAR application list."
    ::= { cpfrNbarApplListEntry 1 }

cpfrNbarApplIndex OBJECT-TYPE
    SYNTAX Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates a unique arbitrary number identifying a
        specific protocol in a PfR NBAR Application List."
    ::= { cpfrNbarApplListEntry 2 }

cpfrNbarApplListStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the memory realization of the row.
        The following columnar objects are allowed to be writable 
        when the storageType of this conceptual row is permanent(4):
        cpfrNbarApplPdIndex."
    DEFVAL { nonVolatile }
    ::= { cpfrNbarApplListEntry 3 }

cpfrNbarApplListRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the status of a NBAR application list.
        The following columnar objects must be valid in order to
        transition the row to the active state: 
        None.
        
        The following columnar objects can be modified when the row is
        in the active state:
        None"
    ::= { cpfrNbarApplListEntry 4 }

cpfrNbarApplPdIndex OBJECT-TYPE
    SYNTAX CiscoPdProtocolIndex
--    Rsyntax Gauge
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the application or protocol recognized by
        NBAR. The value of this object points to an entry in    
        cnpdSupportedProtocolsTable, which describes the recognized
        protocol and is defined in CISCO-NBAR-PROTOCOL-DISCOVERY-MIB."
    ::= { cpfrNbarApplListEntry 5 }

cpfrMCStatusChangeNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrMCChangeConfigType, cpfrMCChangeConfigValue }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification when one of
        cpfrMCLoggingAdminStatus, cpfrMCAdminStatus, cpfrMCControlMode,
        cpfrMCClear, on PfR master controller is changed."
    ::= 1

cpfrBRStatusChangeNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrBRAddressType, cpfrBRAddress, cpfrBROperStatus, 
        cpfrBRConnStatus, cpfrBRConnFailureReason }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification when the master
        controller detects a status change with a border router."
    ::= 2

cpfrExitStatusChangeNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrExitName, cpfrExitType, cpfrExitOperStatus, 
        cpfrBRAddressType, cpfrBRAddress }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification when the master
        controller detects a status change with an exit link."
    ::= 3

cpfrTrafficClassEventNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrTCStatus, cpfrTCSLastOOPReason, cpfrBRAddressType, 
        cpfrBRAddress, cpfrExitName, cpfrLinkGroupType }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification when the master
        controller detects a traffic class status event."
    ::= 4

cpfrTCInpolicyThresholdBelowNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrMapEventNotifCtrlType, cpfrMapEventNotifCtrlThreshold, 
        cpfrMapEventTCCount }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification, when the master
        controller detects number of in-policy traffic class falls
        below the configured threshold."
    ::= 5

cpfrTCPrimaryThresholdBelowNotify TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoPfrMIB
    VARIABLES {
        cpfrMapEventNotifCtrlType, cpfrMapEventNotifCtrlThreshold, 
        cpfrMapEventTCCount }
--  Status
--    mandatory
    DESCRIPTION
        "The device generates this notification, when the master
        controller detects number of in-policy traffic classes at
        primary link group falls below the configured threshold."
    ::= 6

cpfrMasterControllerGroup OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains objects describing PfR MCs
--    and policy maps.
--  objects
--    cpfrMCStorageType, cpfrMCRowStatus, cpfrMCKeepAliveTimer, 
--    cpfrMCMaxPrefixTotal, cpfrMCMaxPrefixLearn, 
--    cpfrMCEntranceLinksMaxUtil, cpfrMCExitLinksMaxUtil, 
--    cpfrMCPortNumber, cpfrMCTracerouteProbeDelay, 
--    cpfrMCRsvpPostDialDelay, cpfrMCRsvpSignalingRetries, 
--    cpfrMCNetflowExporter, cpfrMCAdminStatus, cpfrMCOperStatus, 
--    cpfrMCConnStatus, cpfrMCNumofBorderRouters, cpfrMCNumofExits, 
--    cpfrMCLearnState, cpfrMCLearnStateTimeRemain, 
--    cpfrMCPrefixCount, cpfrMCPrefixLearned, 
--    cpfrMCPrefixConfigured, cpfrMCPbrMet, cpfrMapStorageType, 
--    cpfrMapRowStatus, cpfrMapName, cpfrMapBackoffMinTimer, 
--    cpfrMapBackoffMaxTimer, cpfrMapBackoffStepTimer, 
--    cpfrMapDelayType, cpfrMapDelayRelativePercent, 
--    cpfrMapDelayThresholdMax, cpfrMapHolddownTimer, 
--    cpfrMapPrefixForwardInterface, cpfrMapJitterThresholdMax, 
--    cpfrMapLinkGroupName, cpfrMapFallbackLinkGroupName, 
--    cpfrMapLossType, cpfrMapLossRelativeAvg, 
--    cpfrMapLossThresholdMax, cpfrMapModeMonitor, 
--    cpfrMapModeRouteOpts, cpfrMapRouteMetricBgpLocalPref, 
--    cpfrMapRouteMetricEigrpTagCommunity, 
--    cpfrMapRouteMetricStaticTag, cpfrMapModeSelectExitType, 
--    cpfrMapMOSThresholdMin, cpfrMapMOSPercentage, 
--    cpfrMapNextHopAddressType, cpfrMapNextHopAddress, 
--    cpfrMapPeriodicTimer, cpfrMapActiveProbeFrequency, 
--    cpfrMapActiveProbePackets, cpfrMapTracerouteReporting, 
--    cpfrMapUnreachableType, cpfrMapUnreachableRelativeAvg, 
--    cpfrMapUnreachableThresholdMax, cpfrMapRoundRobinResolver, 
--    cpfrMatchValid, cpfrMatchAddrAccessList, 
--    cpfrMatchAddrPrefixList, cpfrMatchAddrPrefixInside, 
--    cpfrMatchLearnMode, cpfrMatchLearnListName, 
--    cpfrMatchTCNbarListName, cpfrMatchTCNbarApplPfxList, 
--    cpfrMatchTCPfxInside, cpfrLearnListStorageType, 
--    cpfrLearnListRowStatus, cpfrLearnListReferenceName, 
--    cpfrLearnListSequenceNum, cpfrLearnListMethod, 
--    cpfrLearnListAclName, cpfrLearnListPfxName, 
--    cpfrLearnListPfxInside, cpfrLearnListNbarAppl, 
--    cpfrLearnListFilterPfxName, cpfrActiveProbeStorageType, 
--    cpfrActiveProbeRowStatus, cpfrActiveProbeType, 
--    cpfrActiveProbeTargetAddressType, 
--    cpfrActiveProbeTargetAddress, cpfrActiveProbeTargetPortNumber, 
--    cpfrActiveProbePfrMapIndex, cpfrActiveProbeDscpValue, 
--    cpfrActiveProbeCodecName, cpfrActiveProbeMapIndex, 
--    cpfrActiveProbeMapPolicyIndex, cpfrActiveProbeAdminStatus, 
--    cpfrActiveProbeOperStatus, 
--    cpfrActiveProbeAssignedPfxAddressType, 
--    cpfrActiveProbeAssignedPfxAddress, 
--    cpfrActiveProbeAssignedPfxLen, cpfrActiveProbeMethod, 
--    cpfrResolveStorageType, cpfrResolveRowStatus, 
--    cpfrResolvePolicyType, cpfrResolveVariance, 
--    cpfrResolveMapIndex, cpfrResolveMapPolicyIndex, 
--    cpfrLearnAggregationType, cpfrLearnAggregationPrefixLen, 
--    cpfrLearnMethod, cpfrLearnExpireType, 
--    cpfrLearnExpireSessionNum, cpfrLearnExpireTime, 
--    cpfrLearnMonitorPeriod, cpfrLearnPeriodInterval, 
--    cpfrLearnPrefixesNumber, cpfrLearnAggAccesslistName, 
--    cpfrLearnFilterAccessListName, cpfrNbarApplListStorageType, 
--    cpfrNbarApplListRowStatus, cpfrNbarApplPdIndex, 
--    cpfrResolvePriority, cpfrMCMapIndex

cpfrBorderRouterGroup OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains objects describing PfR Border Router and
--    Exits.
--  objects
--    cpfrBRStorageType, cpfrBRRowStatus, cpfrBRAddressType, 
--    cpfrBRAddress, cpfrBRKeyName, cpfrBROperStatus, 
--    cpfrBRConnStatus, cpfrBRUpTime, cpfrBRConnFailureReason, 
--    cpfrBRAuthFailCount, cpfrExitStorageType, cpfrExitRowStatus, 
--    cpfrExitName, cpfrExitType, cpfrDowngradeBgpCommunity, 
--    cpfrExitMaxUtilRxType, cpfrExitMaxUtilRxAbsolute, 
--    cpfrExitMaxUtilRxPercentage, cpfrExitMaxUtilTxType, 
--    cpfrExitMaxUtilTxAbsolute, cpfrExitMaxUtilTxPercentage, 
--    cpfrExitCostCalcMethod, cpfrExitCostDiscard, 
--    cpfrExitCostDiscardType, cpfrExitCostDiscardAbsolute, 
--    cpfrExitCostDiscardPercent, cpfrExitCostEndDayOfMonth, 
--    cpfrExitCostEndOffsetType, cpfrExitCostEndOffset, 
--    cpfrExitCostFixedFeeCost, cpfrExitCostNickName, 
--    cpfrExitCostSamplingPeriod, cpfrExitCostRollupPeriod, 
--    cpfrExitCostSummerTimeStart, cpfrExitCostSummerTimeOffset, 
--    cpfrExitCostSummerTimeEnd, cpfrExitCapacity, 
--    cpfrExitRxBandwidth, cpfrExitTxBandwidth, cpfrExitTxLoad, 
--    cpfrExitNickName, cpfrExitCost1, cpfrExitSustainedUtil1, 
--    cpfrExitCost2, cpfrExitSustainedUtil2, cpfrExitCost3, 
--    cpfrExitSustainedUtil3, cpfrExitRollupTotal, 
--    cpfrExitRollupDiscard, cpfrExitRollupLeft, 
--    cpfrExitRollupCollected, cpfrExitRollupMomTgtUtil, 
--    cpfrExitRollupStartingTgtUtil, cpfrExitRollupCurrentTgtUtil, 
--    cpfrExitRollupCumRxBytes, cpfrExitRollupCumTxBytes, 
--    cpfrExitRollupTimeRemain, cpfrExitOperStatus, 
--    cpfrExitRsvpBandwidthPool, cpfrExitCostTierStorageType, 
--    cpfrExitCostTierRowStatus, cpfrExitCostTierFee, 
--    cpfrLinkGroupStorageType, cpfrLinkGroupRowStatus, 
--    cpfrLinkGroupBRIndex, cpfrLinkGroupExitIndex, cpfrExitRxLoad

cpfrTrafficClassGroup OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains objects describing PfR TCs.
--  objects
--    cpfrTrafficClassValid, cpfrTCSrcPrefixType, cpfrTCSrcPrefix, 
--    cpfrTCSrcPrefixLen, cpfrTCSrcMinPort, cpfrTCDstPrefixType, 
--    cpfrTCDstPrefix, cpfrTCDstPrefixLen, cpfrTCDstMinPort, 
--    cpfrTCDscpValue, cpfrTCProtocol, cpfrTCNbarApplication, 
--    cpfrTCBRIndex, cpfrTCBRExitIndex, cpfrTCMapIndex, 
--    cpfrTCMapPolicyIndex, cpfrTCStatus, cpfrTCSType, 
--    cpfrTCSLearnListIndex, cpfrTCSTimeOnCurrExit, 
--    cpfrTCSControlState, cpfrTCSControlBy, 
--    cpfrTCSTimeRemainCurrState, cpfrTCSLastOOPEventTime, 
--    cpfrTCSLastOOPReason, cpfrTCSLastRouteChangeEvent, 
--    cpfrTCSLastRouteChangeReason, cpfrTCMLastUpdateTime, 
--    cpfrTCMAge, cpfrTCMetricsValid, cpfrTCMActiveSTJitterAvg, 
--    cpfrTCMMOSPercentage, cpfrTCMAttempts, cpfrTCMPackets, 
--    cpfrTCMPassiveSTUnreachableAvg, cpfrTCMPassiveSTDelayAvg, 
--    cpfrTCMPassiveSTLossAvg, cpfrTCMActiveSTUnreachableAvg, 
--    cpfrTCMActiveSTDelayAvg, cpfrTCMPassiveLTUnreachableAvg, 
--    cpfrTCMPassiveLTDelayAvg, cpfrTCMPassiveLTLossAvg, 
--    cpfrTCMActiveLTUnreachableAvg, cpfrTCMActiveLTDelayAvg, 
--    cpfrTCSrcMaxPort, cpfrTCDstMaxPort

cpfrMasterControllerGroupRev1 OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 4 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains new objects describing PfR MCs
--    and policy maps.
--  objects
--    cpfrMCLoggingAdminStatus, cpfrMCControlMode, cpfrMCClear, 
--    cpfrMapEventNotifCtrlType, cpfrMapEventNotifCtrlThreshold, 
--    cpfrMapEventTCCount, cpfrMCLastClearTime, 
--    cpfrMCNotifisControl, cpfrMCChangeConfigType, 
--    cpfrMCChangeConfigValue

cpfrBorderRouterGroupRev1 OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 5 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    This group contains objects describing PfR Border Router and
--    Exits.
--  objects
--    cpfrLinkGroupType

cpfrMCNotificationGroup OBJECT IDENTIFIER ::= { ciscoPfrMIBGroups 6 }
-- NOTIFICATION-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of PfR MC notifications.
--  notifications
--    cpfrBRStatusChangeNotify, cpfrExitStatusChangeNotify, 
--    cpfrTrafficClassEventNotify, 
--    cpfrTCInpolicyThresholdBelowNotify, 
--    cpfrTCPrimaryThresholdBelowNotify, cpfrMCStatusChangeNotify

ciscoPfrMIBCompliance OBJECT IDENTIFIER ::= { ciscoPfrMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    This compliance statement specifies the minimal  requirements
--    an implementation must meet in order to claim full compliance
--    with the definition of the CISCO-PFR-MIB.
--  Module
--    >>current<<
--   MandGroup
--    cpfrMasterControllerGroup
--   MandGroup
--    cpfrBorderRouterGroup
--   MandGroup
--    cpfrTrafficClassGroup

ciscoPfrMIBComplianceRev1 OBJECT IDENTIFIER ::= { ciscoPfrMIBCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    This compliance statement specifies the new minimal
--    requirements an implementation must meet in order to claim full
--    compliance with the definition of the CISCO-PFR-MIB.
--  Module
--    >>current<<
--   MandGroup
--    cpfrMasterControllerGroup
--   MandGroup
--    cpfrBorderRouterGroup
--   MandGroup
--    cpfrTrafficClassGroup
--   MandGroup
--    cpfrMasterControllerGroupRev1
--   MandGroup
--    cpfrBorderRouterGroupRev1
--   MandGroup
--    cpfrMCNotificationGroup
--   ObjVar
--    cpfrMCStorageType
--   ObjVar
--    cpfrMCRowStatus
--   ObjVar
--    cpfrMCKeepAliveTimer
--   ObjVar
--    cpfrMCMaxPrefixTotal
--   ObjVar
--    cpfrMCMaxPrefixLearn
--   ObjVar
--    cpfrMCEntranceLinksMaxUtil
--   ObjVar
--    cpfrMCExitLinksMaxUtil
--   ObjVar
--    cpfrMCPortNumber
--   ObjVar
--    cpfrMCTracerouteProbeDelay
--   ObjVar
--    cpfrMCRsvpPostDialDelay
--   ObjVar
--    cpfrMCRsvpSignalingRetries
--   ObjVar
--    cpfrMCNetflowExporter
--   ObjVar
--    cpfrMCAdminStatus
--   ObjVar
--    cpfrMapStorageType
--   ObjVar
--    cpfrMapRowStatus
--   ObjVar
--    cpfrMapName
--   ObjVar
--    cpfrMapBackoffMinTimer
--   ObjVar
--    cpfrMapBackoffMaxTimer
--   ObjVar
--    cpfrMapBackoffStepTimer
--   ObjVar
--    cpfrMapDelayType
--   ObjVar
--    cpfrMapDelayRelativePercent
--   ObjVar
--    cpfrMapDelayThresholdMax
--   ObjVar
--    cpfrMapHolddownTimer
--   ObjVar
--    cpfrMapPrefixForwardInterface
--   ObjVar
--    cpfrMapJitterThresholdMax
--   ObjVar
--    cpfrMapLinkGroupName
--   ObjVar
--    cpfrMapFallbackLinkGroupName
--   ObjVar
--    cpfrMapLossType
--   ObjVar
--    cpfrMapLossRelativeAvg
--   ObjVar
--    cpfrMapLossThresholdMax
--   ObjVar
--    cpfrMapModeMonitor
--   ObjVar
--    cpfrMapModeRouteOpts
--   ObjVar
--    cpfrMapRouteMetricBgpLocalPref
--   ObjVar
--    cpfrMapRouteMetricEigrpTagCommunity
--   ObjVar
--    cpfrMapRouteMetricStaticTag
--   ObjVar
--    cpfrMapModeSelectExitType
--   ObjVar
--    cpfrMapMOSThresholdMin
--   ObjVar
--    cpfrMapMOSPercentage
--   ObjVar
--    cpfrMapNextHopAddressType
--   ObjVar
--    cpfrMapNextHopAddress
--   ObjVar
--    cpfrMapPeriodicTimer
--   ObjVar
--    cpfrMapActiveProbeFrequency
--   ObjVar
--    cpfrMapActiveProbePackets
--   ObjVar
--    cpfrMapTracerouteReporting
--   ObjVar
--    cpfrMapUnreachableType
--   ObjVar
--    cpfrMapUnreachableRelativeAvg
--   ObjVar
--    cpfrMapUnreachableThresholdMax
--   ObjVar
--    cpfrMapRoundRobinResolver
--   ObjVar
--    cpfrMatchValid
--   ObjVar
--    cpfrMatchAddrAccessList
--   ObjVar
--    cpfrMatchAddrPrefixList
--   ObjVar
--    cpfrMatchAddrPrefixInside
--   ObjVar
--    cpfrMatchLearnMode
--   ObjVar
--    cpfrMatchLearnListName
--   ObjVar
--    cpfrMatchTCNbarListName
--   ObjVar
--    cpfrMatchTCNbarApplPfxList
--   ObjVar
--    cpfrMatchTCPfxInside
--   ObjVar
--    cpfrLearnListStorageType
--   ObjVar
--    cpfrLearnListRowStatus
--   ObjVar
--    cpfrLearnListReferenceName
--   ObjVar
--    cpfrLearnListSequenceNum
--   ObjVar
--    cpfrLearnListMethod
--   ObjVar
--    cpfrLearnListAclName
--   ObjVar
--    cpfrLearnListPfxName
--   ObjVar
--    cpfrLearnListPfxInside
--   ObjVar
--    cpfrLearnListNbarAppl
--   ObjVar
--    cpfrLearnListFilterPfxName
--   ObjVar
--    cpfrActiveProbeStorageType
--   ObjVar
--    cpfrActiveProbeRowStatus
--   ObjVar
--    cpfrActiveProbeType
--   ObjVar
--    cpfrActiveProbeTargetAddressType
--   ObjVar
--    cpfrActiveProbeTargetAddress
--   ObjVar
--    cpfrActiveProbeTargetPortNumber
--   ObjVar
--    cpfrActiveProbePfrMapIndex
--   ObjVar
--    cpfrActiveProbeDscpValue
--   ObjVar
--    cpfrActiveProbeCodecName
--   ObjVar
--    cpfrActiveProbeMapIndex
--   ObjVar
--    cpfrActiveProbeMapPolicyIndex
--   ObjVar
--    cpfrActiveProbeAdminStatus
--   ObjVar
--    cpfrResolveStorageType
--   ObjVar
--    cpfrResolveRowStatus
--   ObjVar
--    cpfrResolvePolicyType
--   ObjVar
--    cpfrResolveVariance
--   ObjVar
--    cpfrResolveMapIndex
--   ObjVar
--    cpfrResolveMapPolicyIndex
--   ObjVar
--    cpfrLearnAggregationType
--   ObjVar
--    cpfrLearnAggregationPrefixLen
--   ObjVar
--    cpfrLearnMethod
--   ObjVar
--    cpfrLearnExpireType
--   ObjVar
--    cpfrLearnExpireSessionNum
--   ObjVar
--    cpfrLearnExpireTime
--   ObjVar
--    cpfrLearnMonitorPeriod
--   ObjVar
--    cpfrLearnPeriodInterval
--   ObjVar
--    cpfrLearnPrefixesNumber
--   ObjVar
--    cpfrLearnAggAccesslistName
--   ObjVar
--    cpfrLearnFilterAccessListName
--   ObjVar
--    cpfrNbarApplListStorageType
--   ObjVar
--    cpfrNbarApplListRowStatus
--   ObjVar
--    cpfrNbarApplPdIndex
--   ObjVar
--    cpfrResolvePriority
--   ObjVar
--    cpfrMCMapIndex
--   ObjVar
--    cpfrBRStorageType
--   ObjVar
--    cpfrBRRowStatus
--   ObjVar
--    cpfrBRAddressType
--   ObjVar
--    cpfrBRAddress
--   ObjVar
--    cpfrBRKeyName
--   ObjVar
--    cpfrBROperStatus
--   ObjVar
--    cpfrExitStorageType
--   ObjVar
--    cpfrExitRowStatus
--   ObjVar
--    cpfrExitName
--   ObjVar
--    cpfrExitType
--   ObjVar
--    cpfrDowngradeBgpCommunity
--   ObjVar
--    cpfrExitMaxUtilRxType
--   ObjVar
--    cpfrExitMaxUtilRxAbsolute
--   ObjVar
--    cpfrExitMaxUtilRxPercentage
--   ObjVar
--    cpfrExitMaxUtilTxType
--   ObjVar
--    cpfrExitMaxUtilTxAbsolute
--   ObjVar
--    cpfrExitMaxUtilTxPercentage
--   ObjVar
--    cpfrExitCostCalcMethod
--   ObjVar
--    cpfrExitCostDiscard
--   ObjVar
--    cpfrExitCostDiscardType
--   ObjVar
--    cpfrExitCostDiscardAbsolute
--   ObjVar
--    cpfrExitCostDiscardPercent
--   ObjVar
--    cpfrExitCostEndDayOfMonth
--   ObjVar
--    cpfrExitCostEndOffsetType
--   ObjVar
--    cpfrExitCostEndOffset
--   ObjVar
--    cpfrExitCostFixedFeeCost
--   ObjVar
--    cpfrExitCostNickName
--   ObjVar
--    cpfrExitCostSamplingPeriod
--   ObjVar
--    cpfrExitCostRollupPeriod
--   ObjVar
--    cpfrExitCostSummerTimeStart
--   ObjVar
--    cpfrExitCostSummerTimeOffset
--   ObjVar
--    cpfrExitCostSummerTimeEnd
--   ObjVar
--    cpfrExitCostTierStorageType
--   ObjVar
--    cpfrExitCostTierRowStatus
--   ObjVar
--    cpfrExitCostTierFee
--   ObjVar
--    cpfrLinkGroupStorageType
--   ObjVar
--    cpfrLinkGroupRowStatus
--   ObjVar
--    cpfrLinkGroupBRIndex
--   ObjVar
--    cpfrLinkGroupExitIndex
--   ObjVar
--    cpfrMCLoggingAdminStatus
--   ObjVar
--    cpfrMCControlMode
--   ObjVar
--    cpfrMCClear
--   ObjVar
--    cpfrMapEventNotifCtrlType
--   ObjVar
--    cpfrMapEventTCCount


END

