-- *********************************************************************
-- CISCO-CFS-MIB.my: Cisco Fabric Service MIB
--
-- September 2004, John Fan, Sanjeev C Joshi, H K Vivek, 
--
-- Copyright (c) 2004, 2005, 2006 by cisco Systems, Inc.
-- All rights reserved.
--
-- *********************************************************************

CISCO-CFS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE
       FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP,
    OBJECT-GROUP
       FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    TimeStamp
       FROM SNMPv2-TC
    SnmpAdminString
       FROM SNMP-FRAMEWORK-MIB
    InetAddressType,
    InetAddress
       FROM INET-ADDRESS-MIB
    ciscoMgmt
       FROM CISCO-SMI;

ciscoCFSMIB MODULE-IDENTITY
    LAST-UPDATED        "200606130000Z"
    ORGANIZATION        "Cisco Systems, Inc."
    CONTACT-INFO
        "       Cisco Systems
                Network Management Technology Group

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

                Tel: +1 800 553-NETS

                E-mail:  cs-san@cisco.com"
    DESCRIPTION
        "This MIB applies to one or more of a set of devices
         which have connectivity through some kind of 'fabric'.
         Many features which run in such an environment require
         the exchange of information between the peer devices
         which participate in providing the feature. An example
         of the type of information exchanged is configuration
         information. It would be advantageous to have the ability
         to have configuration for a feature done on one device
         and propagated to all other devices in the fabric.
         Cisco Fabric Service (CFS) is a general mechanism for
         data distribution within the fabric that could be used
         by most features.

         A feature supported in a device may or may not be CFS 
         capable. In case a feature is CFS capable, the control
         of the CFS operations are instrumented through this MIB.

         A CFS capable feature can be enabled for data
         distribution within the fabric by the user via SNMP.
         When a CFS capable feature is enabled for data
         distribution, CFS operations can then be performed for
         that particular feature.

         As part of the CFS configuration the first mandatory step
         is to explicitly enable the feature for data distribution.
         This enabling of distribution for a feature needs to be 
         done for those devices in the fabric where the distribution
         is intended. Following this mandatory step, feature specific
         configurations can be instrumented in the respective MIBs.
         
         Once a feature is enabled for data distribution, first
         subsequent feature specific configuration SET operation
         results in a snapshot of current 'Running Configuration'
         of the feature, on the local device. This snapshot is used
         for subsequent modifications by feature specific SET 
         operations. Such modified configuration is referred to as
         'Pending Configuration'. There can only be one 'Pending
         Configuration' in the fabric. Additionally, such 'Pending
         Configuration' can be maintained within the context of
         additional scope, specific to the respective features.
         The user who initiates the creation of the 'Pending
         Configuration' is its owner. When a 'Pending Configuration'
         for a feature exists in one of the devices of the fabric,
         an attempt to create a 'Pending Configuration' for the same
         feature and on a different device by way of feature specific
         SET operation results in an error. This means feature 
         specific SET operations intended for distribution can only
         be performed on the device that has the 'Pending 
         Configuration' with it. This ensures data consistency for
         distribution.

         Once the configuration of a feature is ready to be
         distributed to all devices connected to the fabric, a
         'commit' action performed on the local device overwrites
         the local 'Running Configuration' and then distributes the
         new  local 'Running Configuration' to all other devices in
         the fabric. The successful 'commit' action also results into
         destroying of the 'Pending Configuration' and makes the
         feature available for new distribution. Any attempt to
         perform 'commit' without any modification results in to an
         error. The 'commit' action can only be performed by the
         owner of the 'Pending Configuration'.
         
         The 'Pending Configuration' can optionally be destroyed
         without any distribution. This can be done by using either
         'abort' or 'clear' action. The 'abort' action needs to
         performed only on that device where the 'Pending
         Configuration' exists and can only be performed by the owner
         of the 'Pending Configuration'. The 'clear' action can be
         initiated through any of the devices in the fabric. The
         successful 'abort' or 'clear' operation makes the feature
         available for new distribution.

         The CFS, in addition to providing the basic distribution 
         infrastructure to the CFS capable features in a stable
         fabric, also provides infrastructure to handle data 
         distribution when two stable fabrics merge.

         This MIB module is to facilitate the global level control
         (enabling/disabling) and actions (commit/abort/clear) over
         the CFS capable features in the system.
         
         Glossary of the terms used in this MIB:
         --------------------------------------
         
         VSAN                     - Virtual Storage Area Network, 
                                    similar to a VLAN.
                                    
         CFS feature Scope        - The scope of distribution.
                                    The scope provides the context 
                                    within which the CFS actions 
                                    are performed on a CFS capable 
                                    feature.
                                    
         CFS Fabric Merge         - The merging of two stable fabrics.
                                    The CFS provides infrastructure
                                    to handle data distribution for 
                                    CFS distribution enabled features
                                    when the two stable fabrics merge.
         
         CFS control and actions : 
         
         CFS Distribution Enable  - This is to enable data distribution
                                    for CFS capable feature.
                                    
         CFS Distribution Disable - This is to disable data 
                                    distribution for CFS capable 
                                    feature.
                                    
         CFS Commit               - This is to commit the 'Pending 
                                    Configuration' on the local device.
                                    This action triggers the 
                                    distribution of the 'Pending 
                                    Configuration' to all the devices
                                    in the fabric.
                                    
         CFS Abort                - This is to Destroy the 'Pending 
                                    Configuration' on the local device
                                    without any distribution. Once 
                                    local 'Pending Configuration' is
                                    destroyed, creation of 'Pending
                                    Configuration' in the local or any
                                    other device connected to the 
                                    fabric is allowed. 
                                    
         CFS Clear                - This is to Destroy the 'Pending 
                                    Configuration' that exists in any
                                    of the device in the fabric. Once
                                    'Pending Configuration' that exists
                                    with one of the devices in the
                                    fabric is destroyed, creation of
                                    'Pending Configuration' in the 
                                    local or any other device connected
                                    to the fabric is allowed.
         
         "

    REVISION  "200606130000Z"
    DESCRIPTION
        "Added cfsFeatureOpExtLastActionTime object to cfsFeatureOpExtTable
         Added cfsFeatureOpExtGroupRev1
         Added ciscoCFSMIBComplianceRev3
         "

    REVISION  "200511300000Z"
    DESCRIPTION
        "Added the following: 
          - cfsDistCtrlTable table
          - cfsFeatureOpAttribs object to cfsFeatureOpTable
         "

    REVISION  "200504270000Z"
    DESCRIPTION
        "Added an enumeration value of 'partialSuccess' 
         to the 'CiscoCFSFeatureActionResult' TC.
         "
         
    REVISION  "200412240000Z"
    DESCRIPTION
        "Added the cfsDistCtrl object to control 
         the CFS distribution capability.
         "
         
    REVISION  "200412030000Z"
    DESCRIPTION
        "Added the following tables:
          - cfsMergeMembersTable
          - cfsPeersTable
          - cfsFeaturePeersTable
          - cfsFeatureOpExtTable

         Added the following scalar objects:
          - cfsStartPeersDiscovery
          - cfsPeersDiscoveryResult
          - cfsPeersDiscoveryFailureReason

         Added additional enumerations for:
          - cfsMergeStatusValue
          
         Added notification:
          - ciscoCFSDiscoveryCompleteNotif
         "

    REVISION  "200409150000Z"
    DESCRIPTION
        "Initial version of this MIB.
         "
    ::= { ciscoMgmt 433 }

--
--  Objects, Notifications & Conformances
--

ciscoCFSMIBNotifs         OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIB 0 }
ciscoCFSMIBObjects        OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIB 1 }
ciscoCFSMIBConformance    OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIB 2 }
cfsFeature                OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIBObjects 1 }
cfsNotifObjects           OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIBObjects 2 }
cfsDiscoveryObjects       OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIBObjects 3 }
cfsDistCtrlObjects        OBJECT IDENTIFIER
                                  ::= { ciscoCFSMIBObjects 4 }

--
-- Textual Conventions
--

CiscoCFSAction ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION
        "Actions available for the CFS.
        
            'noop'      - No operation            

            'enable'    - CFS Distribution Enable
            
            'disable'   - CFS Distribution Disable
            
            'commit'    - CFS Commit 
            
            'abort'     - CFS Abort
            
            'clear'     - CFS Clear. This can be initiated by any
                          user who has write access to the object
                          of 'CiscoCFSAction' type.
         "
    SYNTAX         INTEGER {
        noop(1),
        enable(2),
        disable(3),
        commit(4),
        abort(5),
        clear(6)
    }

CiscoCFSFeatureStatus ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION
        "Status of the CFS capable feature.
        
            'unknown'  - Unknown status
            
            'enabled'  - Feature is enabled for CFS operations
            
            'disabled' - Feature is disabled for any CFS operations
         "
    SYNTAX         INTEGER {
        unknown(1),
        enabled(2),
        disabled(3)
    }

CiscoCFSFeatureActionResult ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION
        "Result of the action performed on a CFS capable feature.

            'none'           - No previous action was performed

            'success'        - Execution of the action triggered
                               is completed Successfully

            'failed'         - Execution of the action has failed

            'inProgress'     - Execution of the action triggered
                               is in progress
                             
            'partialSuccess' - Execution of the action triggered has
                               succeeded partially in the fabric
         "
    SYNTAX         INTEGER {
        none(1),
        success(2),
        failed(3),
        inProgress(4),
        partialSuccess(5)
    }

CiscoCFSScopeType ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION
        "A generic value that represents the type of CFS
         feature scope.

            'none'         - No scope

            'vsanID'       - VSAN scope
         "
    SYNTAX         INTEGER {
        none(1),
        vsanID(2)
    }

CiscoCFSScopeValue ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION
        "Denotes a CFS  feature scope value to be used with
         CiscoCFSScopeType. A CiscoCFSScopeValue is always
         interpreted within the context of an CiscoCFSScopeType
         value. Every usage of the CiscoCFSScopeValue textual
         convention is required to specify the CiscoCFSScopeType
         object which provides the context.

         The encoding of the CiscoCFSScopeValue object for a
         specific scope type is as below:

         ScopeType    Octets   Contents             Encoding
         ---------    ------   --------             --------
         vsanID       1-4      VSAN ID of the VSAN  network-byte order

         "
    SYNTAX         OCTET STRING (SIZE (0..255))

cfsFeatureOpTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsFeatureOpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table lists all the CFS capable features in the local
         device.

         The table provides control, actions, current operating
         state information and last action result information for
         CFS capable features.

         Each entry in this table represents a CFS capable feature.
         An entry in the table is created by the agent when CFS
         capable feature registers with CFS infrastructure. The
         agent removes the entry from the table when the CFS
         capable de-registers with CFS infrastructure. Management
         application can not create new entry in this table.
         "
    ::= { cfsFeature 1 }

cfsFeatureOpEntry    OBJECT-TYPE
    SYNTAX         CfsFeatureOpEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the cfsFeatureOpTable. Each row
         represents a CFS capable feature in the system.
         "
    INDEX          { cfsFeatureOpName }
    ::= { cfsFeatureOpTable 1}

CfsFeatureOpEntry ::=
    SEQUENCE {
        cfsFeatureOpName                SnmpAdminString,
        cfsFeatureOpAction              CiscoCFSAction,
        cfsFeatureOpScopeType           CiscoCFSScopeType,
        cfsFeatureOpScopeVal            CiscoCFSScopeValue,
        cfsFeatureOpLastAction          CiscoCFSAction,
        cfsFeatureOpLastScopeType       CiscoCFSScopeType,
        cfsFeatureOpLastScopeVal        CiscoCFSScopeValue,
        cfsFeatureOpLastActionResult    CiscoCFSFeatureActionResult,
        cfsFeatureOpLastFailureReason   SnmpAdminString,
        cfsFeatureOpShowCfgOption       INTEGER,
        cfsFeatureOpStatus              CiscoCFSFeatureStatus,
        cfsFeatureOpAttribs             BITS
}

cfsFeatureOpName     OBJECT-TYPE
    SYNTAX        SnmpAdminString (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A human readable string value uniquely identifying the
         name of this feature.
         "
    ::= { cfsFeatureOpEntry 1 }

cfsFeatureOpAction   OBJECT-TYPE
    SYNTAX        CiscoCFSAction
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The CFS action to be triggered for the feature. An operator
         should successfully enable CFS distribution of a feature
         by issuing an 'enable' action before performing a
         'commit' or 'abort' operation.

         The value of this object and the values of corresponding
         instance of cfsFeatureOpScopeType and cfsFeatureOpScopeVal
         are interpreted and applied together as single CFS action
         trigger on the feature. The scope type and values provide
         the context/scope within which the this action is applied.

         Setting of this object will fail with 'inconsistentValue',
         if the value of the corresponding instance of
         cfsFeatureOpLastActionResult is 'inProgress'. However, the
         value of this object can be set to 'clear' regardless of
         the value of the corresponding instance of 
         cfsFeatureOpLastActionResult.

         Retrieving the value of this object via SNMP will always
         return 'noop'.
         "
    ::= { cfsFeatureOpEntry 2 }

cfsFeatureOpScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The value of this object  specifies the type of the value
         of the corresponding instance of cfsFeatureOpScopeVal.

         The agent is not required to retain the modified value of
         this object across the agent restart.
         "
    DEFVAL        { none }
    ::= { cfsFeatureOpEntry 3 }

cfsFeatureOpScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The CFS feature scope value to be used with
         cfsFeatureOpScopeType.

         The value of this object may not be relevant when the value
         of the corresponding instance of cfsFeatureOpAction is SET
         to 'enable' or 'disable'.

         The agent is not required to retain the modified value of
         this  object across the agent restart.
         "
    DEFVAL        { ''H }
    ::= { cfsFeatureOpEntry 4 }

cfsFeatureOpLastAction OBJECT-TYPE
    SYNTAX         CiscoCFSAction
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The last action performed on this feature. If no action
         has been triggered for the feature since the last reboot
         of the system, then retrieving the value of this object
         will return 'noop'.
         "
    ::= { cfsFeatureOpEntry 5 }

cfsFeatureOpLastScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The last CFS feature scope type used for
         cfsFeatureOpLastAction. If no action has been triggered
         for the feature since the last reboot of the system, then
         retrieving the value of this object will return 'none'.
         "
    ::= { cfsFeatureOpEntry 6 }

cfsFeatureOpLastScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The last CFS feature scope value used for
         cfsFeatureOpLastScopeType. If no action has been triggered
         for the feature since the last reboot of the system, then
         retrieving the value of this object will return zero-length
         string.
         "
    ::= { cfsFeatureOpEntry 7 }

cfsFeatureOpLastActionResult  OBJECT-TYPE
    SYNTAX         CiscoCFSFeatureActionResult
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The result of the execution of the last action (represented
         by the value of cfsFeatureOpLastAction) for the feature.
         When the value of this object is 'actionInProgress', the
         value of the corresponding instance of cfsFeatureOpAction
         can not be modified.
         "
    ::= { cfsFeatureOpEntry 8 }

cfsFeatureOpLastFailureReason  OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The failure reason description for the failed execution
         of last action performed on this feature.

         If the corresponding instance of
         cfsFeatureOpLastActionResult has the value
         'actionFailed', then this object contains the reason
         as to why it failed.  Otherwise, the value of this
         object is the zero-length string.
         "
    ::= { cfsFeatureOpEntry 9 }

cfsFeatureOpShowCfgOption  OBJECT-TYPE
    SYNTAX         INTEGER {
         runningConfig(1),
         pendingConfig(2)
    }
    MAX-ACCESS     read-write
    STATUS         deprecated
    DESCRIPTION
        "This object provides a means for management
         applications to either view the contents of 'Running
         Configuration' or 'Pending Configuration'.

         When the value of this object is 'runningConfig', all the
         subsequent configuration retrieval for this feature will be
         from 'Running Configuration' on the local device.

         When the value of this object is 'pendingConfig', all the
         subsequent configuration retrieval for this feature will be
         from 'Pending Configuration' on the local device.

         The value of this object is meaningful only when the value
         of the corresponding instance of 'cfsFeatureOpStatus' is
         'enabled'.

         The agent is not required to retain the modified value of
         this  object across the agent restart.
         "
    DEFVAL { runningConfig }
    ::= { cfsFeatureOpEntry 10 }

cfsFeatureOpStatus OBJECT-TYPE
    SYNTAX        CiscoCFSFeatureStatus
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The current operating status of the feature.
         "
    ::= { cfsFeatureOpEntry 11 }
    
cfsFeatureOpAttribs OBJECT-TYPE
    SYNTAX         BITS {
         fcFabric(0),
         ipNetwork(1),
         vsanScope(2)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of this object represents the attributes of 
         a CFS capable feature as registered with the CFS 
         infrastructure.
         
         'fcFabric'           - indicates that the CFS based 
                                distribution for a feature spans the
                                entire FC (Fibre Channel) fabric
         
         'ipNetwork'          - indicates that the CFS based 
                                distribution for a feature spans the
                                entire IP network

         'vsanScope'          - indicates that the CFS based 
                                distribution for a feature is done 
                                on per VSAN basis and restricted to a
                                specific VSAN in a FC (Fibre Channel) 
                                fabric
         "
    ::= { cfsFeatureOpEntry 12 }        
 
cfsPendingConfOwnerTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsPendingConfOwnerEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table contains per-feature 'Pending Configuration'
         owner information. This table will have entries only
         for those features for which 'Pending Configuration'
         exists in one of the devices in the fabric. This table
         provides the 'Pending Configuration' owner (type and name)
         information and Device address where the 'Pending
         Configuration' exists in the fabric.

         The 'Pending Configuration' owner details are per CFS
         capable feature within a specific scope.
         "
    ::= { cfsFeature 2 }

cfsPendingConfOwnerEntry    OBJECT-TYPE
    SYNTAX         CfsPendingConfOwnerEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the 'cfsPendingConfOwnerTable'.
         Each row represents a CFS capable feature within the
         context of the combination of scope type and scope value
         in the system.
         "
    INDEX          { cfsFeatureOpName,
                     cfsPendingConfOwnerScopeType,
                     cfsPendingConfOwnerScopeVal }
    ::= { cfsPendingConfOwnerTable 1}

CfsPendingConfOwnerEntry ::=
    SEQUENCE {
        cfsPendingConfOwnerScopeType           CiscoCFSScopeType,
        cfsPendingConfOwnerScopeVal            CiscoCFSScopeValue,
        cfsPendingConfOwnerAddrType            InetAddressType,
        cfsPendingConfOwnerAddr                InetAddress,
        cfsPendingConfOwnerIDType              BITS,
        cfsPendingConfOwnerID                  SnmpAdminString
}

cfsPendingConfOwnerScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This indicates the type of the cfsPendingConfOwnerScopeVal.
         "
    ::= { cfsPendingConfOwnerEntry 1 }

cfsPendingConfOwnerScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The CFS scope value used with cfsPendingConfOwnerScopeType.
         This indicates the scope of the feature within which
         the 'Pending Configuration' for the feature exists.
         "
    ::= { cfsPendingConfOwnerEntry 2 }

cfsPendingConfOwnerAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The type of address of the device in the fabric where the 
         'Pending Configuration' exists for the feature within this 
         scope.
         "
    ::= { cfsPendingConfOwnerEntry 3 }

cfsPendingConfOwnerAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The address of the device in the fabric where the 'Pending
         Configuration' exists for the feature within this scope.
         
         The type of address of an instance of this object is 
         determined by the value of the corresponding instance of
         cfsPendingConfOwnerAddrType.
         "
    ::= { cfsPendingConfOwnerEntry 4 }

cfsPendingConfOwnerIDType OBJECT-TYPE
    SYNTAX         BITS {
         other(0),
         snmpCommunityName(1),
         snmpv3SecurityName(2),
         cliLoginName(3)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of this object indicates the type of the value
         of the corresponding instance of 'cfsPendingConfOwnerID':

         'other'              - indicates that the value of
                                'cfsPendingConfOwnerID' is
                                other than any of the enumerations
                                defined

         'snmpCommunityName'  - indicates that the value of
                                'cfsPendingConfOwnerID' is
                                'snmpCommunityName' of SNMPv1/
                                SNMPv2c

         'snmpv3SecurityName' - indicate that the value of
                                'cfsPendingConfOwnerID' is
                                'securityName' of SNMPv3 user
                                
         'cliLoginName'       - indicates that the value of 
                                'cfsPendingConfOwnerID' is 
                                CLI 'User Login Name' of CLI user
         "
    REFERENCE
        " - 'securityName' is defined in RFC 3411, section 3.2.2
          - 'snmpCommunityName' as defined in RFC3584
         "
    ::= { cfsPendingConfOwnerEntry 5 }    

cfsPendingConfOwnerID     OBJECT-TYPE
    SYNTAX        SnmpAdminString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A human readable string representing the identity of the
         owner of the 'Pending Configuration' that exists in the
         device represented by the values of corresponding instance
         of cfsPendingConfOwnerAddrType and cfsPendingConfOwnerAddr.
         The value of the corresponding instance of 
         cfsPendingConfOwnerIDType indicates the type of the value 
         of this object.
         "
    ::= { cfsPendingConfOwnerEntry 6 }    
    
cfsMergeStatusTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsMergeStatusEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    
        "This table provides status of the 'Fabric Merge' on
         the CFS capable features within the context of a
         scope.

         This table will have entries only for those features
         for which CFS fabric distribution is enabled and
         'Fabric Merge' is supported.
         "
    ::= { cfsFeature 3 }
    
cfsMergeStatusEntry    OBJECT-TYPE
    SYNTAX         CfsMergeStatusEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION    
        "A conceptual row in the cfsMergeStatusTable.
         Each row represents a CFS capable feature within the
         context of the combination of scope type and scope value
         in the system.
         "
    INDEX          { cfsFeatureOpName,
                     cfsMergeStatusScopeType,
                     cfsMergeStatusScopeVal }
    ::= { cfsMergeStatusTable 1}

CfsMergeStatusEntry ::=
    SEQUENCE {
        cfsMergeStatusScopeType           CiscoCFSScopeType,
        cfsMergeStatusScopeVal            CiscoCFSScopeValue,
        cfsMergeStatusValue               INTEGER
    }

cfsMergeStatusScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   
        "This indicates the type of the cfsMergeStatusScopeVal.
         "
    ::= { cfsMergeStatusEntry 1 }
    
cfsMergeStatusScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   
        "The CFS scope value used with cfsMergeStatusScopeType.
         This indicates the scope of the feature within which
         the 'Fabric Merge' for the feature has occurred.
         "
    ::= { cfsMergeStatusEntry 2 }

cfsMergeStatusValue OBJECT-TYPE
    SYNTAX        INTEGER {
         success(1),
         inProgress(2),
         failure(3),
         waiting(4),
         other(5)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The result of the last 'Fabric Merge' for the feature
         within the context of the combination of
         'cfsMergeStatusScopeType' and 'cfsMergeStatusScopeVal'
         in the system:
         
         'success'              - Fabric Merge successfully 
                                  completed
                                  
         'inProgress'           - Fabric Merge in progress
         
         'failure'              - Fabric Merge failed
         
         'waiting'              - Waiting for existing Merge
                                  conflict to be cleared
             
         'other'                - None of the other values of
                                  this enumeration

         The value of this object is 'inProgress' when the local
         device is part of a fabric that is in the process of
         merging with another fabric.

         The value of this object is 'waiting' when this local
         device is waiting for any existing 'Fabric Merge
         Conflict' to be resolved before it initiates the new
         instance of 'Fabric Merge'.
         "
    ::= { cfsMergeStatusEntry 3 }

cfsMergeMembersTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsMergeMembersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table provides a list of devices in the local/
         remote fabric after 'Fabric Merge' on a per CFS capable
         feature basis within the context of a scope.

         This table will have entries only for those features
         for which CFS fabric distribution is enabled and
         'Fabric Merge' is supported.
         "
    ::= { cfsFeature 4 }

cfsMergeMembersEntry    OBJECT-TYPE
    SYNTAX         CfsMergeMembersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the 'cfsMergeMembersTable'.
         Each row represents a device in the local/remote
         fabric supporting CFS capable feature within the
         context of a scope in the system.
         "
    INDEX          { cfsFeatureOpName,
                     cfsMergeStatusScopeType,
                     cfsMergeStatusScopeVal,
                     cfsMergeMemberAddrType,
                     cfsMergeMemberAddr }
    ::= { cfsMergeMembersTable 1}

CfsMergeMembersEntry ::=
    SEQUENCE {
        cfsMergeMemberAddrType            InetAddressType,
        cfsMergeMemberAddr                InetAddress,
        cfsMergeMemberFabricType          INTEGER,
        cfsMergeMemberRole                INTEGER
}

cfsMergeMemberAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The type of the address of the device in the fabric
         which has participated in the 'Fabric Merge' within
         the context of a CFS feature and scope.
         "
    ::= { cfsMergeMembersEntry 1 }

cfsMergeMemberAddr OBJECT-TYPE
    SYNTAX        InetAddress (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The address of the device in the fabric which has
         participated in the 'Fabric Merge' within the context
         of a CFS feature and scope.
         
         The type of address of an instance of this object is 
         determined by the value of the corresponding instance 
         of cfsMergeMemberAddrType.
         "
    ::= { cfsMergeMembersEntry 2 }

cfsMergeMemberFabricType OBJECT-TYPE
    SYNTAX        INTEGER {
                     unknown(1),
                     local(2),
                     remote(3)
                  }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The type of the fabric to which the device belongs to,
         during/after the 'Fabric Merge'.
         
         The fabric to which the local device is attached to is 
         referred to as 'local fabric'. The fabric which attempted
         to merge with the local fabric is referred to as 'remote
         fabric'.

         When the value of the corresponding instance of
         cfsMergeStatusValue is 'successful' or 'waiting', all
         the devices will be in a single 'CFS fabric' and belong
         to the 'local' fabric.

         When the value of the corresponding instance of
         cfsMergeStatusValue is 'failure' or 'inProgress', the
         devices in the other fabric which attempted 'Fabric Merge'
         are marked as 'remote'.
         "
    ::= { cfsMergeMembersEntry 3 }

cfsMergeMemberRole OBJECT-TYPE
    SYNTAX        INTEGER {
                     unknown(1),
                     master(2),
                     peer(3)
                  }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The role of the device during the 'Fabric Merge'.
         In case of a successful fabric merge/stable fabric
         only one device can be a 'master'. In case of a
         fabric merge failure, there can be multiple 'master'
         devices, corresponding to each of the fabric fragments.
         All other devices which are not 'master' assume the role
         of a 'peer'.

         The algorithm for the selection of the 'Merge Master'
         device within a stable fabric is platform specific.
         "
    ::= { cfsMergeMembersEntry 4 }

cfsStartPeersDiscovery  OBJECT-TYPE
    SYNTAX        INTEGER {
                     startDiscovery(1),
                     noOp(2)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object specifies whether a discovery cycle
         should be started by the CFS to discover all the
         'peers' in the fabric.

         When the value of this object is set to 'startDiscovery',
         the discovery of the CFS capable devices in the fabric
         is started by the CFS. On successful completion of the
         discovery, the entries in the 'cfsPeersTable' will be
         populated.

         When the value of cfsPeersDiscoveryResult is
         'inProgress', setting the value of this object to
         'startDiscovery' results in an error.

         No action is taken if this object is set to 'noOp'.
         The value of this object when read is always 'noOp'.
         "
        ::= { cfsDiscoveryObjects 1 }

cfsPeersDiscoveryResult  OBJECT-TYPE
    SYNTAX        INTEGER {
                     notInitiated(1),
                     inProgress(2),
                     successful(3),
                     failed(4)
                  }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object represents the result of the last discovery
         command issued by way of setting the value of
         cfsStartPeersDiscovery to 'startDiscovery'.
         
         When the CFS discovery was never initiated using the 
         cfsStartPeersDiscovery, the value of this object is 
         'notInitiated'. 
         
         When the value of this object is 'notInitiated', the 
         management station needs initiate the discovery cycle by 
         setting the value of cfsStartPeersDiscovery to 
         'startDiscovery'.
         
         If the value of this object is 'successful', then the 
         cfsPeersTable is appropriately populated.
         "
        ::= { cfsDiscoveryObjects 2 }
        
cfsPeersDiscoveryFailureReason  OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The failure reason description for the last failed CFS
         peers discovery. 

         If the value of cfsPeersDiscoveryResult object has the
         value 'failed', then the value of this object contains
         the reason as to why it failed. Otherwise, the value
         of this object is a zero-length string.
         "
    ::= { cfsDiscoveryObjects 3 }        

cfsPeersTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsPeersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table provides list of devices in a stable fabric. 
         This table is populated with the entries only when the
         CFS discovery cycle is successfully completed.
         "
    ::= { cfsFeature 5 }

cfsPeersEntry    OBJECT-TYPE
    SYNTAX         CfsPeersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the 'cfsPeersTable'. Each row
         represents a device in a stable fabric supporting
         CFS capability.
         "
    INDEX          { cfsPeerAddrType,
                     cfsPeerAddr }
    ::= { cfsPeersTable 1}

CfsPeersEntry ::=
    SEQUENCE {
        cfsPeerAddrType                   InetAddressType,
        cfsPeerAddr                       InetAddress
}

cfsPeerAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The type of the address of the CFS capable device
         in the fabric.
         "
    ::= { cfsPeersEntry 1 }

cfsPeerAddr OBJECT-TYPE
    SYNTAX        InetAddress (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The address of a CFS capable device in the fabric.
          
         The type of address of an instance of this object is 
         determined by the value of the corresponding instance of
         cfsPeerAddrType.
         "
    ::= { cfsPeersEntry 2 }

cfsFeaturePeersTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsFeaturePeersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table provides list of devices in a stable
         fabric on per CFS capable feature basis.
         "
    ::= { cfsFeature 6 }

cfsFeaturePeersEntry    OBJECT-TYPE
    SYNTAX         CfsFeaturePeersEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the 'cfsMergeMembersTable'.
         Each row represents a device in a stable fabric
         supporting CFS capable feature within the context
         of a scope in the system.
         "
    INDEX          { cfsFeatureOpName,
                     cfsFeaturePeersScopeType,
                     cfsFeaturePeersScopeVal,
                     cfsFeaturePeersAddrType,
                     cfsFeaturePeersAddr }
    ::= { cfsFeaturePeersTable 1}

CfsFeaturePeersEntry ::=
    SEQUENCE {
        cfsFeaturePeersScopeType           CiscoCFSScopeType,
        cfsFeaturePeersScopeVal            CiscoCFSScopeValue,
        cfsFeaturePeersAddrType            InetAddressType,
        cfsFeaturePeersAddr                InetAddress
}

cfsFeaturePeersScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This indicates the type of the cfsFeaturePeersScopeVal.
         "
    ::= { cfsFeaturePeersEntry 1 }

cfsFeaturePeersScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The CFS scope value used with cfsFeaturePeersScopeType.
         This indicates the scope of the feature within which
         the device exists in the fabric.
         "
    ::= { cfsFeaturePeersEntry 2 }

cfsFeaturePeersAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The type of the address of a peer device in the
         fabric for a CFS capable feature within the context
         of a scope.
         "
    ::= { cfsFeaturePeersEntry 3 }

cfsFeaturePeersAddr OBJECT-TYPE
    SYNTAX        InetAddress (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The address of a peer device in the fabric for a CFS
         capable feature within the context of a scope.
         
         The type of address of an instance of this object is 
         determined by the value of the corresponding instance of
         cfsFeaturePeersAddrType.      
         "
    ::= { cfsFeaturePeersEntry 4 }

cfsFeatureOpExtTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsFeatureOpExtEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "This table lists all the CFS capable features in the local
         device and provides:

          - the information of the result of the last CFS action
            triggered on the CFS capable feature within the context
            of a scope

          - control flag to specify the source of 'configuration
            view', within the context of a scope of the CFS capable
            feature

         The last action corresponds to the action triggered on a
         CFS capable feature using the cfsFeatureOpAction of the
         cfsFeatureOpTable.
         "
    ::= { cfsFeature 7 }

cfsFeatureOpExtEntry    OBJECT-TYPE
    SYNTAX         CfsFeatureOpExtEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "A conceptual row in the cfsFeatureOpExtTable. Each row
         represents a CFS capable feature within the context of
         the combination of scope type and scope value in the
         system.

         The combination of cfsFeatureOpExtScopeType and
         cfsFeatureOpExtScopeVal forms a scope context within
         which a CFS operation was performed on CFS capable
         feature using the cfsFeatureOpScopeType and
         cfsFeatureOpScopeVal of cfsFeatureOpTable.
         "
    INDEX          { cfsFeatureOpName,
                     cfsFeatureOpExtScopeType,
                     cfsFeatureOpExtScopeVal }
    ::= { cfsFeatureOpExtTable 1}

CfsFeatureOpExtEntry ::=
    SEQUENCE {
        cfsFeatureOpExtScopeType         CiscoCFSScopeType,
        cfsFeatureOpExtScopeVal          CiscoCFSScopeValue,
        cfsFeatureOpExtLastAction        CiscoCFSAction,
        cfsFeatureOpExtLastActionResult  CiscoCFSFeatureActionResult,
        cfsFeatureOpExtLastFailureReason SnmpAdminString,
        cfsFeatureOpExtShowCfgOption     INTEGER,
        cfsFeatureOpExtLastActionTime    TimeStamp
}

cfsFeatureOpExtScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This indicates the type of the cfsFeatureOpExtScopeVal.
         "
    ::= { cfsFeatureOpExtEntry 1 }

cfsFeatureOpExtScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The CFS feature scope value to be used with
         cfsFeatureOpExtScopeType.
         "
    ::= { cfsFeatureOpExtEntry 2 }

cfsFeatureOpExtLastAction OBJECT-TYPE
    SYNTAX         CiscoCFSAction
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The last action performed on this feature within the
         context of a scope. If no action has been triggered
         for the feature since the last reboot of the system,
         then retrieving the value of this object will return
         'noop'.
         "
    ::= { cfsFeatureOpExtEntry 3 }

cfsFeatureOpExtLastActionResult  OBJECT-TYPE
    SYNTAX         CiscoCFSFeatureActionResult
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The result of the execution of the last action (represented
         by the value of cfsFeatureOpExtLastAction) for the feature.
         "
    ::= { cfsFeatureOpExtEntry 4 }

cfsFeatureOpExtLastFailureReason  OBJECT-TYPE
    SYNTAX         SnmpAdminString
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The failure reason description for the failed execution
         of last action performed on this feature.

         If the corresponding instance of
         cfsFeatureOpExtLastActionResult has the value
         'actionFailed', then this object contains the reason
         as to why it failed.  Otherwise, the value of this
         object is a zero-length string.
         "
    ::= { cfsFeatureOpExtEntry 5 }

cfsFeatureOpExtShowCfgOption  OBJECT-TYPE
    SYNTAX         INTEGER {
         runningConfig(1),
         pendingConfig(2)
    }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "This object provides a means for management
         applications to either view the contents of 'Running
         Configuration' or 'Pending Configuration'.

         When the value of this object is 'runningConfig', all the
         subsequent configuration retrieval for this feature within
         the specified context of the scope will be from 'Running
         Configuration' on the local device.

         When the value of this object is 'pendingConfig', all the
         subsequent configuration retrieval for this feature within
         the specified context of the scope will be from 'Pending
         Configuration' on the local device.

         The value of this object is meaningful only when the value
         of the corresponding instance of 'cfsFeatureOpStatus' is
         'enabled'.

         The agent is not required to retain the modified value of
         this  object across the agent restart.
         "
    DEFVAL { runningConfig }
    ::= { cfsFeatureOpExtEntry 6 }
 
cfsFeatureOpExtLastActionTime OBJECT-TYPE
    SYNTAX         TimeStamp
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Time stamp of the last action performed. If no action
         has been triggered for the feature (i.e cfsFeatureOpExtLastAction
         equal to one '1')  since the last reboot of the system, the value
         zero will be returned.
        "
    ::= { cfsFeatureOpExtEntry 7 }
   
cfsDistCtrl OBJECT-TYPE
    SYNTAX         INTEGER {
         enable(1),
         disable(2)
    }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The object to control CFS for distribution. 
        
         On setting the value of this object to 'enable', CFS will
         be ready for distribution of the data across the fabric.
         
         On setting the value of this object to 'disable', CFS will
         disable its capability to distribute the data across the 
         fabric. The CFS continues to honour distribution requests
         from the CFS capable features of the local device, with the
         scope of the distribution limited only to the local device
         and not fabric wide.
         
         The value of the object when read, reflects the current 
         operating state of the CFS.
         "
    ::= { cfsDistCtrlObjects 1 }     

cfsDistCtrlTable    OBJECT-TYPE
    SYNTAX         SEQUENCE OF CfsDistCtrlEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "The table to control CFS for distribution over IP.
        "
    ::= { cfsDistCtrlObjects 2 }

cfsDistCtrlEntry    OBJECT-TYPE
    SYNTAX         CfsDistCtrlEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "An entry (conceptual row) in the cfsDistCtrlTable. Each row 
        represents a configuration set required to control CFS for 
        distribution over IP on each of the address families.
        "
    INDEX          { cfsDistCtrlAddrType }
    ::= { cfsDistCtrlTable 1 }

CfsDistCtrlEntry ::=
    SEQUENCE { 
        cfsDistCtrlAddrType         InetAddressType, 
        cfsDistCtrlAddr             InetAddress, 
        cfsDistCtrlAction           INTEGER
}

cfsDistCtrlAddrType  OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The type of multicast address to which the CFS distribution
         is restricted. Only the entries corresponding to the 'ipv4'
         and 'ipv6' internet address types exist in this table.
        "
    ::= { cfsDistCtrlEntry  1 }

cfsDistCtrlAddr   OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION 
        "The multicast address domain to which the CFS distribution
        is restricted.

        The type of this address is determined by the instance 
        identifier value of the cfsDistCtrlAddrType.

        There is a default multicast address for both IPv4 and IPv6
        through which the Keep-alive messages are sent and received
        to discover the CFS capable switches over IP. All switches
        with similar multicast address form one CFS-over-IP fabric.

        The default multicast address for IPv4 is 239.255.70.83 and
        range supported is [239.255.0.0 - 239.255.255.255]

        The default multicast address for IPv6 is ff13::7743:4653 and
        the supported range is [ff13::0000:0000 - ff13::ffff:ffff]

        The value of this object can only be modified when the 
        value of the corresponding instance of cfsDistCtrlAction is
        'disable'.
        "
    ::= { cfsDistCtrlEntry  2 }

cfsDistCtrlAction OBJECT-TYPE
    SYNTAX         INTEGER { enable(1), disable(2) }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION 
        "This object specifies the current operating 
         mode employed in CFS for distribution over the
         corresponding type of Internet address.

         By setting the value of this object to 'enable', CFS will
         enable its capability to distribute the application data 
         across the fabric over the corresponding type of Internet 
         address.
         
         By setting the value of this object to 'disable', CFS will
         disable its capability to distribute the data across the 
         fabric over the corresponding type of Internet address. 
         
         Only one instance of this object can have the value of
         'enable' among all the conceptual rows.
         "
    DEFVAL { disable }
    ::= { cfsDistCtrlEntry  3 }

--
-- Objects for Notification only
--

cfsMergeFailFeatureName     OBJECT-TYPE
    SYNTAX        SnmpAdminString (SIZE(0..32))
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "A human readable string value uniquely identifying the
         name of this feature for which the 'Merge Failure' occurred.
         "
    ::= { cfsNotifObjects 1 }

cfsMergeFailScopeType OBJECT-TYPE
    SYNTAX        CiscoCFSScopeType
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The value of this object indicates the type of the value
         of 'cfsMergeFailScopeVal'.
         "
    ::= { cfsNotifObjects 2 }

cfsMergeFailScopeVal OBJECT-TYPE
    SYNTAX        CiscoCFSScopeValue (SIZE(0..32))
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The value of this object indicates the scope of the
         feature ('cfsMergeFailFeatureName') within which the
         'Merge Failure' occurred.
         "
    ::= { cfsNotifObjects 3 }

cfsMergeFailReasonDescription  OBJECT-TYPE
    SYNTAX        SnmpAdminString
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The failure reason description for the 'Merge Failure'"
    ::= { cfsNotifObjects 4 }

--
-- Notifications
--
  
ciscoCFSFeatureActionNotif NOTIFICATION-TYPE
        OBJECTS        { cfsFeatureOpLastAction,
                         cfsFeatureOpLastScopeType,
                         cfsFeatureOpLastScopeVal,
                         cfsFeatureOpLastActionResult }
        STATUS         current
        DESCRIPTION
           "Notification to covey the information of the action
            performed on a CFS capable feature.
            
            This notification gets generated when :
            
             - a CFS operation action is triggered on CFS capable
               feature
               
             - the result of last action performed on the CFS
               capable feature changes.
               
            The 'cfsFeatureOpLastActionResult' indicates the new
            value of the last action result performed on the feature.
            "
        ::= { ciscoCFSMIBNotifs 1 }   
        
ciscoCFSMergeFailNotif NOTIFICATION-TYPE
        OBJECTS        { cfsMergeFailFeatureName,
                         cfsMergeFailScopeType,
                         cfsMergeFailScopeVal,
                         cfsMergeFailReasonDescription }
        STATUS         current
        DESCRIPTION
           "Notification to convey the information of the 'Merge
            Failure' occurred in the fabric. This notification gets
            generated when the merge of the two fabrics fail for a
            CFS capable feature.
            "
        ::= { ciscoCFSMIBNotifs 2 }

ciscoCFSDiscoveryCompleteNotif NOTIFICATION-TYPE
        OBJECTS        { cfsPeersDiscoveryResult,
                         cfsPeersDiscoveryFailureReason }
        STATUS         current
        DESCRIPTION
           "Notification to indicate that the CFS has completed
            discovering the CFS capable devices in the fabric.
            
            If the value of cfsPeersDiscoveryResult is 'successful',
            then the cfsPeersTable is appropriately populated.
            "
        ::= { ciscoCFSMIBNotifs 3 }

--
-- Conformance
--

ciscoCFSMIBCompliances    OBJECT IDENTIFIER
                                ::= { ciscoCFSMIBConformance 1 }
ciscoCFSMIBGroups         OBJECT IDENTIFIER
                                ::= { ciscoCFSMIBConformance 2 }

ciscoCFSMIBCompliance     MODULE-COMPLIANCE
    STATUS         deprecated  -- superseded by
                               -- ciscoCFSMIBComplianceRev1
    DESCRIPTION
        "The compliance statement for entities which implement the
         CISCO-CFS-MIB.
         "
    MODULE
       MANDATORY-GROUPS {
           cfsFeatureOpGroup,
           cfsPendingConfOwnerGroup,
           cfsFeatureActionNotifGroup
       }
    GROUP          cfsFeatureNotifObjectsGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports notifications as defined in the
         'cfsMergeFailNotifGroup'.
         "
    GROUP          cfsMergeFailNotifGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports fabric merge.
         "

    ::= { ciscoCFSMIBCompliances 1 }

ciscoCFSMIBComplianceRev1     MODULE-COMPLIANCE
    STATUS         deprecated --Superseded by ciscoCFSMIBComplianceRev2
    DESCRIPTION
        "The compliance statement for entities which implement the
         CISCO-CFS-MIB.
         "
    MODULE
       MANDATORY-GROUPS {
           cfsFeatureOpGroupRev1,
           cfsPendingConfOwnerGroup,
           cfsFeatureActionNotifGroup,
           cfsMembersGroup,
           cfsPeerDiscoveryNotifGroup,
           cfsFeatureOpExtGroup
       }
    GROUP          cfsFeatureNotifObjectsGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports notifications as defined in the
         'cfsMergeFailNotifGroup'.
         "
         
    GROUP          cfsMergeFailNotifGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports fabric merge.
         "
         
    GROUP          cfsDistCtrlGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports CFS distribution control.
         "         

    ::= { ciscoCFSMIBCompliances 2 }

ciscoCFSMIBComplianceRev2     MODULE-COMPLIANCE
    STATUS         deprecated --Superseded by ciscoCFSMIBComplianceRev3
    DESCRIPTION
        "The compliance statement for entities which implement the
         CISCO-CFS-MIB.
         "
    MODULE
       MANDATORY-GROUPS {
           cfsFeatureOpGroupRev2,
           cfsPendingConfOwnerGroup,
           cfsFeatureActionNotifGroup,
           cfsMembersGroup,
           cfsPeerDiscoveryNotifGroup,
           cfsFeatureOpExtGroup
       }
    GROUP          cfsFeatureNotifObjectsGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports notifications as defined in the
         'cfsMergeFailNotifGroup'.
         "
         
    GROUP          cfsMergeFailNotifGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports fabric merge.
         "
         
    GROUP          cfsDistCtrlGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports CFS distribution control.
         "         

    GROUP          cfsDistCtrlInetGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports per Internet address type CFS distribution
         control.
         "         
    ::= { ciscoCFSMIBCompliances 3 }

ciscoCFSMIBComplianceRev3     MODULE-COMPLIANCE
    STATUS         current
    DESCRIPTION
        "The compliance statement for entities which implement the
         CISCO-CFS-MIB.
         "
    MODULE
       MANDATORY-GROUPS {
           cfsFeatureOpGroupRev2,
           cfsPendingConfOwnerGroup,
           cfsFeatureActionNotifGroup,
           cfsMembersGroup,
           cfsPeerDiscoveryNotifGroup,
           cfsFeatureOpExtGroupRev1
       }
    GROUP          cfsFeatureNotifObjectsGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports notifications as defined in the
         'cfsMergeFailNotifGroup'.
         "
         
    GROUP          cfsMergeFailNotifGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports fabric merge.
         "
         
    GROUP          cfsDistCtrlGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports CFS distribution control.
         "         

    GROUP          cfsDistCtrlInetGroup
    DESCRIPTION
        "This group is conditionally mandatory and must be
         implemented by the agent of the managed entity only
         if the CFS implementation on the managed entity
         supports per Internet address type CFS distribution
         control.
         "         
    ::= { ciscoCFSMIBCompliances 4 }

--
-- Units of Conformance
--

cfsFeatureOpGroup  OBJECT-GROUP
    OBJECTS {
        cfsFeatureOpAction,
        cfsFeatureOpScopeType,
        cfsFeatureOpScopeVal,
        cfsFeatureOpLastAction,
        cfsFeatureOpLastScopeType,
        cfsFeatureOpLastScopeVal,
        cfsFeatureOpLastActionResult,
        cfsFeatureOpLastFailureReason,
        cfsFeatureOpShowCfgOption,
        cfsFeatureOpStatus,
        cfsMergeStatusValue
    }
    STATUS         deprecated  -- superseded by cfsFeatureOpGroupRev1
    DESCRIPTION
        "A collection of objects for configurations of the CFS capable
         features.
        "
    ::= { ciscoCFSMIBGroups 1 }

cfsPendingConfOwnerGroup  OBJECT-GROUP
    OBJECTS {
        cfsPendingConfOwnerAddrType,
        cfsPendingConfOwnerAddr,
        cfsPendingConfOwnerIDType,
        cfsPendingConfOwnerID  
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects for the 'Pending Configuration' 
         owner details of the CFS capable features.
        "
    ::= { ciscoCFSMIBGroups 2 }    
    
cfsFeatureNotifObjectsGroup  OBJECT-GROUP
    OBJECTS {
        cfsMergeFailFeatureName,
        cfsMergeFailScopeType,
        cfsMergeFailScopeVal,
        cfsMergeFailReasonDescription  
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects required for CFS notifications."
    ::= { ciscoCFSMIBGroups 3 }

cfsFeatureActionNotifGroup  NOTIFICATION-GROUP
    NOTIFICATIONS  {ciscoCFSFeatureActionNotif}
    STATUS         current
    DESCRIPTION
        "A collection of notifications for the CFS actions on the
         CFS capable features.
         "
    ::= { ciscoCFSMIBGroups 4 }

cfsMergeFailNotifGroup  NOTIFICATION-GROUP
    NOTIFICATIONS  { ciscoCFSMergeFailNotif }
    STATUS         current
    DESCRIPTION
        "A collection of notifications for CFS fabric merge
         failures.
         "
    ::= { ciscoCFSMIBGroups 5 }

cfsMembersGroup  OBJECT-GROUP
    OBJECTS {
        cfsMergeMemberFabricType,
        cfsMergeMemberRole,
        cfsStartPeersDiscovery,
        cfsPeersDiscoveryResult,
        cfsPeersDiscoveryFailureReason,
        cfsPeerAddr,
        cfsFeaturePeersAddr
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects for discovering list of devices in
         the fabric.
        "
    ::= { ciscoCFSMIBGroups 6 }

cfsFeatureOpExtGroup  OBJECT-GROUP
    OBJECTS {
        cfsFeatureOpExtLastAction,
        cfsFeatureOpExtLastActionResult,
        cfsFeatureOpExtLastFailureReason,
        cfsFeatureOpExtShowCfgOption
    }
    STATUS          deprecated  -- superseded by cfsFeatureOpExtGroupRev1
    DESCRIPTION
        "A collection of objects for CFS action results.
        "
    ::= { ciscoCFSMIBGroups 7 }

cfsPeerDiscoveryNotifGroup  NOTIFICATION-GROUP
    NOTIFICATIONS  { ciscoCFSDiscoveryCompleteNotif }
    STATUS         current
    DESCRIPTION
        "A collection of notifications for CFS peer discovery.
         "
    ::= { ciscoCFSMIBGroups 8 }

cfsFeatureOpGroupRev1  OBJECT-GROUP
    OBJECTS {
        cfsFeatureOpAction,
        cfsFeatureOpScopeType,
        cfsFeatureOpScopeVal,
        cfsFeatureOpLastAction,
        cfsFeatureOpLastScopeType,
        cfsFeatureOpLastScopeVal,
        cfsFeatureOpLastActionResult,
        cfsFeatureOpLastFailureReason,
        cfsFeatureOpStatus,
        cfsMergeStatusValue
    }
    STATUS         deprecated  -- superseded by cfsFeatureOpGroupRev2
    DESCRIPTION
        "A collection of objects for configurations of the CFS capable
         features.
        "
    ::= { ciscoCFSMIBGroups 9 }
    
cfsDistCtrlGroup  OBJECT-GROUP
    OBJECTS { cfsDistCtrl }
    STATUS         current
    DESCRIPTION
        "A collection of objects for controlling the distribution
         capabilities of CFS.
        "
    ::= { ciscoCFSMIBGroups 10 }    

cfsDistCtrlInetGroup  OBJECT-GROUP
    OBJECTS { 
        cfsDistCtrlAddr,
        cfsDistCtrlAction
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects for controlling the per Internet
         address type distribution capabilities of CFS.
        "
    ::= { ciscoCFSMIBGroups 11 }   
    
cfsFeatureOpGroupRev2  OBJECT-GROUP
    OBJECTS {
        cfsFeatureOpAction,
        cfsFeatureOpScopeType,
        cfsFeatureOpScopeVal,
        cfsFeatureOpLastAction,
        cfsFeatureOpLastScopeType,
        cfsFeatureOpLastScopeVal,
        cfsFeatureOpLastActionResult,
        cfsFeatureOpLastFailureReason,
        cfsFeatureOpStatus,
        cfsMergeStatusValue,
        cfsFeatureOpAttribs
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects for configurations of the CFS capable
         features.
        "
    ::= { ciscoCFSMIBGroups 12 }    
 
cfsFeatureOpExtGroupRev1  OBJECT-GROUP
    OBJECTS {
        cfsFeatureOpExtLastAction,
        cfsFeatureOpExtLastActionTime,
        cfsFeatureOpExtLastActionResult,
        cfsFeatureOpExtLastFailureReason,
        cfsFeatureOpExtShowCfgOption
    }
    STATUS         current
    DESCRIPTION
        "A collection of objects for CFS action results.
        "
    ::= { ciscoCFSMIBGroups 13 }
   
END

