-- *****************************************************************
-- CISCO-FLOW-CLONE-MIB
--   
-- Feb 2010, Sunil Gogikari
--   
-- Copyright (c) 2009-2010 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-FLOW-CLONE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Counter64,
    Gauge32,
    Integer32,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    RowStatus,
    StorageType,
    TimeStamp,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    InterfaceIndexOrZero
        FROM IF-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoFlowCloneMIB MODULE-IDENTITY
    LAST-UPDATED    "201010190000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service

            Postal: 170 West Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This MIB module defines objects that manages flow cloning
        feature. A flow cloning can be described as a hardware or 
        software entity, that is responsible to clone (or duplicate)
        flows to the specified destination port in the device. These
        cloned packets will be sent to an external device for a more
        fine-grained analysis of the flows. A typical application of
        this MIB module will facilitate cloning media flows. However,
        by no means does the definition of this MIB module prevents 
        other applications from using it.

        CLONE PROFILE:
        ==============                 
        At the top level, this MIB module describes the notion of flow
        cloning. Further descriptive texts in this MIB will use clone
        profile to describe flow cloning. We can think of clone profile
        as a container for the traffic flows for which it will clone
        packets and send out on the specified egress interface. Because
        a device can support more than one clone profile, this MIB
        defines cfcCloneProfileTable.

        TRAFFIC FLOW:
        =============
        At the next level, this MIB module describes the notion of a
        traffic flow associated with the clone profile. A traffic flow
        is a unidirectional stream of packets conforming to a
        classifier.For example, packets having a particular source
        IP address, destination IP address, protocol type, source port
        number, and destination port number.

        CLONE TARGET:
        =============
        A clone target may represent an entity that the system
        provisions with a clone profile.

        Clone targets include, but are not necessarily limited to, the
        system, nodes (i.e., an instance of an operating system),
        interfaces, VRF instances, and bridge domains.

        IMPLEMENTATION GUIDANCE
        =======================
        It might seem that the concepts presented by this MIB module
        lend themselves to a profile-based approach. However, this 
        approach provides the most general abstraction and lends itself
        to implementations that can fall under two categories: global 
        and per-interface.

        A global level clone profile will clone the specified flows
        that are monitored in the whole device. Per interface clone
        profile will clone the specified flows that are monitored on
        the specified interface.

        This MIB module can represent the global level clone profile
        using the following procedure:

        o Create a row in the cfcCloneProfileTable having the following
          attributes. Allocate a value for cfcCloneProfileId and a name
          for cfcCloneProfileName. For sake of discussion, let's say 
          the value is <X> and the name is 'XYZ'.

          cfcCloneProfileId       = <X>
          cfcCloneProfileName     = <XYZ>
          .
          .
          cfcCloneTargetType      = 'system'

        o Similarly per interface level clone profile implementation
          can be represented as follows. 

          Create a row in the cfcCloneProfileTable having the following
          attributes. Allocate a value for cfcCloneProfileId and a name
          for cfcCloneProfileName. For sake of discussion, let's say
          the value is <Y> and the name is 'ABC'.  

          cfcCloneProfileId         = <Y>
          cfcCloneProfileName       = <ABC>
          .
          .
          cfcCloneTargetType        = 'interface'
          cfcCloneTargetIfIndex     = <ifindex>

        While this example illustrates how an implementation may
        represent global and per-interface configuration data, it is
        understood that an implementation may have other requirements.
        In these cases, use this example as a guide in satisfying these
        requirements."
    REVISION        "201007080000Z"
    DESCRIPTION
        "Added: The initial version of the MIB module"
    ::= { ciscoMgmt 765 }


-- *********************************************************************
-- * Top-Level Trees                                                   *
-- *********************************************************************

ciscoFlowCloneMIBNotifications  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIB 0 }

ciscoFlowCloneMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIB 1 }

ciscoFlowCloneMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIB 2 }


-- *********************************************************************
-- * Textual Conventions                                               *
-- *********************************************************************

CloneProfileIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "This textual convention denotes an arbitrary integer-value
        that uniquely identifies a clone profile."
    SYNTAX          Unsigned32 (1..4294967295)

CloneFlowIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "This textual convention denotes an arbitrary integer-value
        that uniquely identifies a traffic flow which is associated to
        a corresponding clone profile."
    SYNTAX          Unsigned32 (1..4294967295)

CloneProfilePointType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention represents a point at which a clone
        profile sends out the cloned flows: 

            'other'
                The implementation of the MIB module using this textual
                convention does not recognize the profile point.

            'unknown'
                The device is unable to ascertain the point at which
                the clone profile is sending the cloned traffic flow 
                out.

            'none'
                There is no point at which the clone profile can send 
                cloned flows out.

             'interface'
                The profile point is an interface represented by a row
                in the ifTable (defined by the IF-MIB [RFC2863].

        With the exception of the values 'unknown' and 'none', each
        definition of a concrete CloneProfilePointType value MUST have 
        a corresponding textual convention for use with the particular
        type of profile point.

        To support future extensions, a MIB module SHOULD NOT sub-type
        the CloneProfilePointType textual convention in an object type
        definition. However, a compliance statement MAY sub-type it in
        order to require only a subset of the profile point types for a
        compliant implementation.

        Implementations must ensure that CloneProfilePointType objects
        and any dependent objects (e.g., CloneProfilePointIdentifier 
        objects) are consistent. For example, an implementation must 
        respond with an 'inconsistentValue' error if an attempt is made
        to modify a CloneProfilePointType object without changing the 
        corresponding CloneProfilePointIdentifier object."

    REFERENCE
        "K. McCloghrie and F. Kastenholz, 'The Interfaces Group
        MIB',
        RFC-2863, June 2000."
    SYNTAX          INTEGER  {
                        other(1),
                        unknown(2),
                        none(3),
                        interface(4)
                    }

CloneProfilePointIdentifier ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention specifies an ifindex value that
        identifies a point at which a clone profile sends out the 
        cloned flows.

        Implementations must ensure that a CloneProfilePointIdentifier
        object remains consistent with the CloneProfilePointType object
        providing the context.  For example, an implementation must 
        respond with an 'inconsistentValue' error if an attempt is made
        to modify a CloneProfilePointIdentifier object without changing
        the corresponding CloneProfilePointType object.

        The value of a CloneProfilePointIdentifier object MUST BE 0, 
        if the value of CloneProfilePointType object providing the
        context is 'unknown' or 'none'."
    SYNTAX          InterfaceIndexOrZero
-- *********************************************************************
-- * Objects                                                           *
-- *********************************************************************

cfcCloneProfiles  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIBObjects 1 }


cfcCloneProfileIdNext OBJECT-TYPE
    SYNTAX          CloneProfileIdentifier
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies a value which is used as an index
        value for a new clone profile entry in cfcCloneProfileTable.
        Whenever read, the agent will get the next available
        non-conflicting value. This is to reduce the probability of
        errors during creation of new clone profile table entries" 
    ::= { cfcCloneProfiles 1 }

cfcCloneProfileTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CfcCloneProfileEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table lists the clone profiles contained by the device."
    ::= { cfcCloneProfiles 2 }

cfcCloneProfileEntry OBJECT-TYPE
    SYNTAX          CfcCloneProfileEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A peer SNMP entity may create a clone profile by setting an
        instance of cfcCloneProfileId to the value that is read from 
        cfcCloneProfileIdNext, cfcCloneProfileName to the entry name 
        and an instance of cfcCloneProfileStatus to 'createAndWait' 
        or 'createAndGo'. Observe that an implementation that does 
        not support these options must specify these limitations in
        an agent capabilities statement.

        Other management entities (e.g., the local console) may create
        a clone profile. In these cases, the system must automatically
        create a row in the cfcCloneProfileTable.

        A peer SNMP entity may destroy a clone profile by setting the
        corresponding instance of cfcCloneProfileStatus to 'destroy'.  
        Observe that an implementation that does not support this 
        option must specify this limitation in an agent capabilities 
        statement.

        Other management entities may destroy a clone profile. In these
        cases, the system must automatically destroy the corresponding 
        row in the cfcCloneProfileTable."
    INDEX           { cfcCloneProfileId } 
    ::= { cfcCloneProfileTable 1 }

CfcCloneProfileEntry ::= SEQUENCE {
        cfcCloneProfileId           CloneProfileIdentifier,
        cfcCloneProfileStatus       RowStatus,
        cfcCloneProfileStorageType  StorageType,
        cfcCloneProfileName         SnmpAdminString,
        cfcCloneProfileDescription  SnmpAdminString,
        cfcCloneProfileCreateTime   TimeStamp,
        cfcCloneProfileFlowCount    Gauge32,
        cfcCloneProfileFlowType     INTEGER,
        cfcCloneTargetType          INTEGER,
        cfcCloneTargetIfIndex       Integer32,
        cfcCloneProfileEgressIfType CloneProfilePointType,
        cfcCloneProfileEgressIf     CloneProfilePointIdentifier
}

cfcCloneProfileId OBJECT-TYPE
    SYNTAX          CloneProfileIdentifier
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a clone profile. An application using this MIB
        is responsible for making sure these are unique, although the
        SNMP RowStatus row creation process will help by not allowing
        it to create conflicting entries. Before creating a new entry,
        a value for this variable may be obtained by reading
        cfcCloneProfileIdNext to reduce the probability of a value
        collision. Observe that the value assigned to a clone profile
        does not necessarily persist across restarts." 
    ::= { cfcCloneProfileEntry 1 }

cfcCloneProfileStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The status of this conceptual row. This object manages
        creation, modification, and deletion of rows in this table.

        The following columns must be valid before activating a row:

            - cfcCloneProfileName
            - cfcCloneProfileStorageType 
            - cfcCloneTargetType
            - cfcCloneTargetIfIndex

        cfcCloneTargetIfIndex is mandatory ONLY if cfcCloneTargetType
        is specified as 'interface'. Other writable objects in this
        table may be modified at any time, even while the row is 
        'active'.

        The entry may be deleted by setting the value to 'destroy',
        and if there are any associated traffic flow entries in the
        corresponding flow tables (cfcFlowIpTable in case of IP flows)
        they will also be deleted with this operation." 
    ::= { cfcCloneProfileEntry 2 }

cfcCloneProfileStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the memory realization of the row."
    DEFVAL          { volatile } 
    ::= { cfcCloneProfileEntry 3 }

cfcCloneProfileName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies an arbitrary name that uniquely
        identifies the clone profile." 
    ::= { cfcCloneProfileEntry 4 }

cfcCloneProfileDescription OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies a human-readable description configured
        to the clone profile. This object is optional while creating a
        row in this table and specifies a null string if no description
        is configured." 
    ::= { cfcCloneProfileEntry 5 }

cfcCloneProfileCreateTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the value of sysUpTime when the row was
        created." 
    ::= { cfcCloneProfileEntry 6 }

cfcCloneProfileFlowCount OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "traffic flows"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the number of traffic flows currently
        associated with the clone profile." 
    ::= { cfcCloneProfileEntry 7 }

cfcCloneProfileFlowType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        ip(1)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "Identifies the type of flows associated with the clone
        profile. Based on type the corresponding flow table will
        represent the traffic flows associated with the clone profile.
        Note that a clone profile can clone only one type of traffic
        flows. For example, if the cfcCloneProfileFlowType is set to
        'ip' than all the IP flows ONLY can be associated
        (using cfcFlowIpTable) and cloned by this clone profile. New
        flow types can be added to this based on the requirement and
        hardware or software capability. For each new
        cfcCloneProfileFlowType defined in cfcCloneProfileTable a
        separate table can be added to this MIB to hold the
        corresponding flow entries. The following types of flows are
        supported:
              'ip'             IP flows are associated with this clone 
                               profile." 
    ::= { cfcCloneProfileEntry 8 }

cfcCloneTargetType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        system(2),
                        interface(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the clone profile target. Following
        targets are supported today
             'other'
                 The implementation of the MIB module using this textual
                 convention does not recognize the clone profile target.

             'system'
                 The clone profile target is global or the entire
                 system.

             'interface'
                 The clone profile target is an interface represented
                 by a row in the ifTable defined by the IF-MIB 
                 [RFC2863]." 
    ::= { cfcCloneProfileEntry 9 }

cfcCloneTargetIfIndex OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the ifindex of an interface over which
        traffic flow to be cloned is received or transmitted. The 
        interface may be physical or virtual. 

        The value of a cfcCloneTargetIfIndex object MUST BE 0 if the
        value of the cfcCloneTargetType object providing the context
        is 'system' or 'other'." 
    ::= { cfcCloneProfileEntry 10 }

cfcCloneProfileEgressIfType OBJECT-TYPE
    SYNTAX          CloneProfilePointType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of port/interface configured
        to the clone profile." 
    ::= { cfcCloneProfileEntry 11 }

cfcCloneProfileEgressIf OBJECT-TYPE
    SYNTAX          CloneProfilePointIdentifier
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the ifindex of an interface that is
        configured to the corresponding clone profile. All the flows
        configured within this profile set will be cloned to this
        interface." 
    ::= { cfcCloneProfileEntry 12 }
 


cfcCloneProfileTableChanged OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the value of sysUpTime the last time the
        device created or destroyed a row in cfcCloneProfileTable." 
    ::= { cfcCloneProfiles 3 }
cfcFlows  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIBObjects 2 }


cfcFlowIpTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CfcFlowIpEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table lists the IP traffic flows that are cloned by
        corresponding clone profile supported by the device.

        This table has an expansion dependent relationship on the
        cfcCloneProfileTable, containing zero or more rows for each
        clone profile. Below is an example, where multiple IP flows 
        are associated with the single clone profile. 


                                       +----------------------------+
                                       | cfcFlowIpTable             |
                                       |                            |
        +----------------------+     +--------------------------------+
        | cfcCloneProfileId = 3----->|   +-------------------------+  |
        +----------------------+     |   | cfcCloneProfileId = 3   |  |
                                     |   | cfcFlowIndex = 3        |  |
                                     |   +-------------------------+  |
                                     |   +-------------------------+  |
                                     |   | cfcCloneProfileId = 3   |  |
                                     |   | cfcFlowIndex = 5        |  |
                                     |   +-------------------------+  |
                                     |       :                        |
                                     |       :                        |
                                     |   +-------------------------+  |
                                     |   | cfcCloneProfileId = 3   |  |
                                     |   | cfcFlowIndex = 10       |  |
                                     |   +-------------------------+  |
                                     +--------------------------------+
                                       |                            |
        +----------------------+     +--------------------------------+
        | cfcCloneProfileId = 4----->|   +-------------------------+  |
        +----------------------+     |   | cfcCloneProfileId = 4   |  |
                                     |   | cfcFlowIndex = 2        |  |
                                     |   +-------------------------+  |
                                     |   +-------------------------+  |
                                     |   | cfcCloneProfileId = 4   |  |
                                     |   | cfcFlowIndex = 6        |  |
                                     |   +-------------------------+  |
                                     |       :                        |
                                     |       :                        |
                                     |   +-------------------------+  |
                                     |   | cfcCloneProfileId = 4   |  |
                                     |   | cfcFlowIndex = 7        |  |
                                     |   +-------------------------+  |
                                     +--------------------------------+"
    ::= { cfcFlows 1 }

cfcFlowIpEntry OBJECT-TYPE
    SYNTAX          CfcFlowIpEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry describes a IP traffic flow that are cloned by the
        corresponding clone profile.

        The device creates a row in the cfcFlowIpTable when a IP flow 
        is associated with a clone profile to clone the monitored flows
        and send it to the configured egress interface. Likewise, the 
        device destroys a row in the cfcFlowIpTable when a traffic flow
        disassociated with a clone profile.

        Note that the corresponding clone profile must make sure 
        cfcCloneProfileFlowType is set to 'IP' before creating an entry
        in this table else the creation will fail."
    INDEX           {
                        cfcCloneProfileId,
                        cfcFlowIndex
                    } 
    ::= { cfcFlowIpTable 1 }

CfcFlowIpEntry ::= SEQUENCE {
        cfcFlowIndex         CloneFlowIdentifier,
        cfcFlowIpStatus      RowStatus,
        cfcFlowIpStorageType StorageType,
        cfcFlowIpAddrSrcType InetAddressType,
        cfcFlowIpAddrSrc     InetAddress,
        cfcFlowIpAddrDstType InetAddressType,
        cfcFlowIpAddrDst     InetAddress,
        cfcFlowIpCreateTime  TimeStamp
}

cfcFlowIndex OBJECT-TYPE
    SYNTAX          CloneFlowIdentifier
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates an arbitrary integer-value that uniquely
        identifies a configured traffic flow within a clone profile.  
        While adding an entry in this table, application is responsible
        for making sure these are unique, although the SNMP RowStatus 
        row creation process will help by not allowing it to create 
        conflicting entries. Observe that the value assigned to a 
        traffic flow does not necessarily persist across restarts or
        the removal-insertion of a physical entity supporting clone
        profile(s)." 
    ::= { cfcFlowIpEntry 1 }

cfcFlowIpStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The status of this conceptual row. This object manages
        creation, and deletion of rows in this table.

        The following columns must be valid before activating a row:

            -  cfcFlowIpStorageType 
            -  cfcFlowIpAddrSrcType 
            -  cfcFlowIpAddrSrc     
            -  cfcFlowIpAddrDstType 
            -  cfcFlowIpAddrDst     

        Once the row is active, object in this table can not be modified
        at any time.

        The entry may be deleted by setting the value to 'destroy'." 
    ::= { cfcFlowIpEntry 2 }

cfcFlowIpStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the memory realization of the row."
    DEFVAL          { volatile } 
    ::= { cfcFlowIpEntry 3 }

cfcFlowIpAddrSrcType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of IP address indicated by the
        corresponding instances of cfcFlowIpAddrSrc." 
    ::= { cfcFlowIpEntry 4 }

cfcFlowIpAddrSrc OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the source IP address of the
        corresponding traffic flow. This address will be of the type
        specified in cfcFlowIpAddrSrcType." 
    ::= { cfcFlowIpEntry 5 }

cfcFlowIpAddrDstType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the type of IP address indicated by the
        corresponding instances of cfcFlowIpAddrDst." 
    ::= { cfcFlowIpEntry 6 }

cfcFlowIpAddrDst OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object specifies the destination IP address of the
        corresponding traffic flow. This address will be of the type
        specified in cfcFlowIpAddrDstType." 
    ::= { cfcFlowIpEntry 7 }

cfcFlowIpCreateTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the value of sysUpTime when the row was
        created." 
    ::= { cfcFlowIpEntry 8 }
 

cfcFlowStats  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIBObjects 3 }


cfcFlowStatsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CfcFlowStatsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains data relating to the collection of
        statistics for the flows cloned by the corresponding clone
        profiles supported by the device.

        This table has a sparse dependent relationship on the flow
        tables, containing a row for each row in the flow table 
        (cfcFlowIpTable in case of IP flows) for which the device is
        actively cloning the packets."
    ::= { cfcFlowStats 1 }

cfcFlowStatsEntry OBJECT-TYPE
    SYNTAX          CfcFlowStatsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry contains collection of statistics for a corresponding
        traffic flow.

        The device creates a row in the cfcFlowStatsTable when a
        clone profile is configured with a traffic flow and actively
        cloning the packets of that flow to the specified egress
        interface. Likewise, the device destroys a row in the
        cfcFlowStatsTable when the corresponding flow is removed
        from the clone profile."
    INDEX           {
                        cfcCloneProfileId,
                        cfcFlowIndex
                    } 
    ::= { cfcFlowStatsTable 1 }

CfcFlowStatsEntry ::= SEQUENCE {
        cfcFlowPkts   Counter64,
        cfcFlowOctets Counter64
}

cfcFlowPkts OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the total number of packets that are
        cloned for a traffic flow by the corresponding clone profile." 
    ::= { cfcFlowStatsEntry 1 }

cfcFlowOctets OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "octets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides the total number of octets contained by
        the packets that are cloned for a traffic flow by the 
        corresponding clone profile." 
    ::= { cfcFlowStatsEntry 2 }
 

-- **********************************************************************
-- * Conformance                                                        *
-- **********************************************************************

ciscoFlowCloneMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIBConformance 1 }

ciscoFlowCloneMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoFlowCloneMIBConformance 2 }


ciscoCloneFlowCompliance01 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "This compliance statement specifies the minimal requirements
        an implementation must meet in order to claim full compliance
        with the definition of the CISCO-FLOW-CLONE-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cfcCloneProfileGroup,
                        cfcFlowGroup,
                        cfcFlowStatsGroup
                    }
    ::= { ciscoFlowCloneMIBCompliances 1 }

-- **********************************************************************
-- * Units of Conformance                                               *
-- **********************************************************************

cfcCloneProfileGroup OBJECT-GROUP
    OBJECTS         {
                        cfcCloneProfileIdNext,
                        cfcCloneProfileStatus,
                        cfcCloneProfileStorageType,
                        cfcCloneProfileName,
                        cfcCloneProfileDescription,
                        cfcCloneProfileCreateTime,
                        cfcCloneProfileFlowCount,
                        cfcCloneProfileFlowType,
                        cfcCloneTargetType,
                        cfcCloneTargetIfIndex,
                        cfcCloneProfileEgressIfType,
                        cfcCloneProfileEgressIf,
                        cfcCloneProfileTableChanged
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing clone profiles."
    ::= { ciscoFlowCloneMIBGroups 1 }

cfcFlowGroup OBJECT-GROUP
    OBJECTS         {
                        cfcFlowIpStatus,
                        cfcFlowIpStorageType,
                        cfcFlowIpAddrSrcType,
                        cfcFlowIpAddrSrc,
                        cfcFlowIpAddrDstType,
                        cfcFlowIpAddrDst,
                        cfcFlowIpCreateTime
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing traffic flows."
    ::= { ciscoFlowCloneMIBGroups 2 }

cfcFlowStatsGroup OBJECT-GROUP
    OBJECTS         {
                        cfcFlowPkts,
                        cfcFlowOctets
                    }
    STATUS          current
    DESCRIPTION
        "This group contains objects describing traffic flow metrics."
    ::= { ciscoFlowCloneMIBGroups 3 }

END
























































































































































