-- ********************************************************************* 
-- CISCO-FEATURE-CONTROL-MIB.my: Feature Control MIB
--
-- November 2003, Sanjeev C Joshi
--
-- Copyright (c) 2003, 2004 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *********************************************************************

CISCO-FEATURE-CONTROL-MIB DEFINITIONS ::= BEGIN

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

ciscoFeatureCtrlMIB MODULE-IDENTITY
        LAST-UPDATED        "200412280000Z"
        ORGANIZATION        "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service
                        
                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA
                        
                   Tel: +1 800 553-NETS
                   
                E-mail:  cs-san@cisco.com"
        DESCRIPTION
                "There are two types of features in the system:
                
                 - Regular features
                 - Optional features
                 
                 The Regular features may or may not need to support
                 the user triggerd control (enabling/disabling). In
                 case the regular features need to  support such 
                 control, they need to be instrumented in their 
                 respective MIBs.
                
                 The Optional features can be controlled (enabled/
                 disabled) by the user via CLI/SNMP. The optional
                 features are generally disabled by default. As part
                 of the enabling of such optional feature, the first
                 mandatory step is to explicitly enable the feature
                 using the CLI/SNMP. Following this mandatory step, 
                 a feature may require additional feature specific
                 enabling steps similar to the regular features.
                 In addition to the user triggered control, other 
                 system specific conditions like licensing may
                 influence the operating state of such optional 
                 feature. 
               
                 This MIB module is to facilitate the global level 
                 control (enabling/disabling) over the optional 
                 features in the system. The disabling of such 
                 optional feature using this MIB module would make
                 the feature disabled and the entire feature specific
                 mib objects also unavailable.
                 
                 Glossary of the terms used in this MIB:
                 
                 VSAN - Virtual Storage Area Network, similar to 
                        a VLAN.

                 WWN  - World Wide Name. Mechanism of identifying
                        devices in Fibre Channel Networks. It is
                        8 bytes long.
                        
                 AAA - Authentication, Authorization and Accounting
                        
                 FLOGI - Fibre Channel fabric login
                 
                 MDS -  Multilayer Director Switch
                 
                 "
                 
        REVISION  "200412280000Z"
        DESCRIPTION
                "Updated 'CiscoOptionalFeature' TC for
                 the 'extendedCredit' feature.
                "
                 
        REVISION  "200407060000Z"
        DESCRIPTION
                "Updated 'CiscoOptionalFeature' TC for the following 
                 new optional features:
                           - ike
                           - isns
                           - ipSec
                           - portTracker
                           - scheduler
                           - npiv
                           - sanExtTuner
                           - dpvm
                 "
                 
        REVISION  "200311220000Z"
        DESCRIPTION
                "Initial version of this MIB."
        ::= { ciscoMgmt 377 }

--
-- Feature Control MIB object definitions
--

ciscoFeatureCtrlMIBNotifs         OBJECT IDENTIFIER 
                                  ::= { ciscoFeatureCtrlMIB 0 }
ciscoFeatureCtrlMIBObjects        OBJECT IDENTIFIER     
                                  ::= { ciscoFeatureCtrlMIB 1 }
ciscoFeatureCtrlMIBConformance    OBJECT IDENTIFIER     
                                  ::= { ciscoFeatureCtrlMIB 2 }
cfcFeature                        OBJECT IDENTIFIER 
                                  ::= { ciscoFeatureCtrlMIBObjects 1 }
                                
--
-- Textual Conventions
--

CiscoOptionalFeature ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
           "The optional features in the sytem.
           
            ivr               - Inter VSAN Routing
            
            fcip              - Fibre Channel over IP Protocol
            
            fcsp              - Fibre Channel Security Protocol
            
            ficon             - Fibre Connectivity interface
            
            iscsi             - iSCSI (Internet Small Computer 
                                System Interface) protocol
                                
            tacacs            - Tacacs+ AAA protocol
            
            qosManager        - Quality Of Service
            
            portSecurity      - Port Security
            
            fabricBinding     - Fabric Binding
            
            iscsiInterfaceVsanMembership - iSCSI-Interface-VSAN
                                              membership
                                              
            ike               - Internet Key Exchange feature. This
                                is used to negotiate cryptographic
                                keys for IPsec traffic
                                
            isns              - iSNS (Internet Storage Name Service)
                                server. This provides name service,
                                access control and state change 
                                notifications for iSCSI devices
                                
            ipsec             - IPSec security services on the device
            
            portTracker       - Port Tracker. This allows ports to be
                                brought down and up based on changes
                                in the port states of certain 
                                configured (tracked) ports
                                
            scheduler         - Scheduler feature provides jobs to be 
                                scheduled at a specified time. A Job is
                                a collection of configuration commands
                                in the device.
                                
            npiv              - Nx_Port ID Virtualization. This is a 
                                mechanism by which a N_Port can get more
                                than one Nx_Port_Id from the fibre 
                                channel (FC) fabric
                                
            sanExtTuner       - SAN Extension Tuner. This is a tool 
                                used to generate and analyze SCSI 
                                workloads across the FCIP tunnels. 
                                This can be used to tune the FCIP
                                tunnels for desired throughput.
                                
            dpvm              - Dynamic Port Vsan Membership. This 
                                manages allocation of VSAN to a port 
                                based on the device WWN at the time of
                                device FLOGI
                                
           extenedCredit      - Extended Credit feature. This provides
                                a way to increase the receive buffer
                                to buffer credits on physical FC Ports
                                
            ."
        SYNTAX         INTEGER {
                            ivr(1),
                            fcip(2),
                            fcsp(3),
                            ficon(4), 
                            iscsi(5),
                            tacacs(6), 
                            qosManager(7),
                            portSecurity(8),
                            fabricBinding(9),
                            iscsiInterfaceVsanMembership(10),
                            ike(11),
                            isns(12),
                            ipSec(13),
                            portTracker(14),
                            scheduler(15),
                            npiv(16),
                            sanExtTuner(17),
                            dpvm(18),
                            extenedCredit(19)
                       }              

CiscoFeatureAction ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
           "Action trigger for the feature.

                 noOp(1)     - No operation           
                 enable(2)   - Enable the  feature
                 disable(3)  - Disable the feature
                 
            ."
        SYNTAX         INTEGER {
                            noOp(1),
                            enable(2),
                            disable(3)
                            
                       }              

CiscoFeatureStatus ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
           "Status of the feature.

                 unknown(1)  - Unknown status
                 enabled(2)  - Feature is operational and available
                 disabled(3) - Feature is disabled and not available
                 
            ."
        SYNTAX         INTEGER {
                            unknown(1),
                            enabled(2),
                            disabled(3)
                       }   

CiscoFeatureActionResult ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
           "Result of the feature enable/disable action.

            none(1)               - No action triggered           
            actionSuccess(2)      - Execution of the action triggered 
                                    is completed Successfully
            actionFailed(3)       - Execution of the action failed 
            actionInProgress(4)   - Execution of the action  triggered
                                    is in progress
            ."
        SYNTAX         INTEGER {
                            none(1),
                            actionSuccess(2),
                            actionFailed(3),
                            actionInProgress(4)
                       }                                     

--
--  Feature Control Table - cfcFeatureCtrlTable
--

cfcFeatureCtrlTable       OBJECT-TYPE
        SYNTAX         SEQUENCE OF FCFeatureCtrlEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
           "A table consisting of entries for all the features that can
            be optionally enabled/disabled in the system. This table 
            provides administrative control and current operating state
            information of the feature."
        ::= { cfcFeature 1 }

cfcFeatureCtrlEntry OBJECT-TYPE
        SYNTAX         FCFeatureCtrlEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
           "An entry (conceptual row) in the 'cfcFeatureCtrlTable'.
            Each row represents an optional feature in the system."
        INDEX          { cfcFeatureCtrlIndex }
        ::= { cfcFeatureCtrlTable 1}

FCFeatureCtrlEntry ::=
        SEQUENCE {
            cfcFeatureCtrlIndex               CiscoOptionalFeature,
            cfcFeatureCtrlName                SnmpAdminString,
            cfcFeatureCtrlAction              CiscoFeatureAction,
            cfcFeatureCtrlLastAction          CiscoFeatureAction,
            cfcFeatureCtrlLastActionResult    CiscoFeatureActionResult,
            cfcFeatureCtrlLastFailureReason   SnmpAdminString,
            cfcFeatureCtrlOpStatus            CiscoFeatureStatus,
            cfcFeatureCtrlOpStatusReason      SnmpAdminString
} 

cfcFeatureCtrlIndex OBJECT-TYPE
        SYNTAX         CiscoOptionalFeature
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
           "A unique index representing the feature in this entry."
	    ::= { cfcFeatureCtrlEntry 1 }   

cfcFeatureCtrlName OBJECT-TYPE
        SYNTAX         SnmpAdminString(SIZE(1..32))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "A human readable unique string representing the name of
            this feature."
	    ::= { cfcFeatureCtrlEntry 2 }   

cfcFeatureCtrlAction OBJECT-TYPE
        SYNTAX         CiscoFeatureAction
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
           "The action to be triggered for the feature. Setting the
            value of this object to  a value other than 'enable' or 
            'disable'  does not trigger any action for the feature
            and hence does not affect the value of corresponding
            instance of 'cfcFeatureCtrlLastAction'. Retrieving the
            value of this object via SNMP will always return 'noOp'."
	    ::= { cfcFeatureCtrlEntry 3 } 
        
cfcFeatureCtrlLastAction OBJECT-TYPE
        SYNTAX         CiscoFeatureAction
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "The last action triggered for the feature. If no action
            has been triggered for the feature since the last reboot
            of the sytem, then retrieving the value of this object 
            via SNMP will return 'noOp'."
	    ::= { cfcFeatureCtrlEntry 4 } 
        
cfcFeatureCtrlLastActionResult OBJECT-TYPE
        SYNTAX         CiscoFeatureActionResult
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "The result of execution of last action (represented by 
            value of 'cfcFeatureCtrlLastAction') for the feature. When 
            the value of this object is 'actionInProgress', the value
            of the corresponding instance of 'cfcFeatureCtrlAction' 
            can not be modified."
	    ::= { cfcFeatureCtrlEntry 5 }

cfcFeatureCtrlLastFailureReason  OBJECT-TYPE
        SYNTAX         SnmpAdminString
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "The failure reason description for the failed execution
            of last action triggered for the feature. 
            If the corresponding instance of 
            'cfcFeatureCtrlLastActionResult' 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."
	    ::= { cfcFeatureCtrlEntry 6 }            
        
cfcFeatureCtrlOpStatus OBJECT-TYPE
        SYNTAX         CiscoFeatureStatus
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "The current operating status of the feature."
	    ::= { cfcFeatureCtrlEntry 7 }                          

cfcFeatureCtrlOpStatusReason OBJECT-TYPE
        SYNTAX         SnmpAdminString
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
           "The reason description for the current operating status
            (represented by the  value of corresponding instance of
            'cfcFeatureCtrlOpStatus') of the feature.
            The reason for the current operating status of the feature
            could be other than explicit user triggered action on the 
            feature."
	    ::= { cfcFeatureCtrlEntry 8 }                    

--
-- Notifications
--

ciscoFeatureOpStatusChange NOTIFICATION-TYPE
        OBJECTS        {cfcFeatureCtrlOpStatus}
        STATUS         current
        DESCRIPTION
           "Notification to indicate that the operational state of
            this feature has changed. The 'cfcFeatureCtrlOpStatus'
            indicates the new state of the feature."
        ::= { ciscoFeatureCtrlMIBNotifs 1 }        
        
--
-- Conformance
--

ciscoFeatureCtrlMIBCompliances OBJECT IDENTIFIER
                               ::= { ciscoFeatureCtrlMIBConformance 1 }
ciscoFeatureCtrlMIBGroups      OBJECT IDENTIFIER
                               ::= { ciscoFeatureCtrlMIBConformance 2 }

ciscoFeatureCtrlMIBCompliance MODULE-COMPLIANCE
        STATUS         current
        DESCRIPTION
           "The compliance statement for entities which implement the 
            CISCO-FEATURE-CONTROL-MIB."
        MODULE 
           MANDATORY-GROUPS { cfcFeatureGroup,
                              cfcNotificationGroup}
        ::= { ciscoFeatureCtrlMIBCompliances 1 }
--
-- Units of Conformance
--

cfcFeatureGroup  OBJECT-GROUP
        OBJECTS        { cfcFeatureCtrlName,
                         cfcFeatureCtrlAction,
                         cfcFeatureCtrlLastAction,
                         cfcFeatureCtrlLastActionResult,
                         cfcFeatureCtrlLastFailureReason,
                         cfcFeatureCtrlOpStatus,
                         cfcFeatureCtrlOpStatusReason }
        STATUS         current
        DESCRIPTION
           "A collection of objects for controlling the features in 
            the system."
        ::= { ciscoFeatureCtrlMIBGroups 1 }
        
cfcNotificationGroup  NOTIFICATION-GROUP
        NOTIFICATIONS  {ciscoFeatureOpStatusChange}
        STATUS         current
        DESCRIPTION
           "A collection of notifications to monitor state of the
           features."
        ::= { ciscoFeatureCtrlMIBGroups 2 }        

END

