-- *****************************************************************
-- CISCO-IMAGE-CHECK-MIB.my:  Cisco Image Check MIB file
--
-- May 2003, Charuhas Ghatge
--
-- Copyright (c) 2003 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-IMAGE-CHECK-MIB DEFINITIONS ::= BEGIN

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

ciscoImageCheckMIB  MODULE-IDENTITY
	LAST-UPDATED    "200305150000Z"
	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-snmp@cisco.com"
	DESCRIPTION
		"Initial version of Image Check MIB."
	::= { ciscoMgmt 99990 }


ciscoImageCheckMIBObjects  OBJECT IDENTIFIER 
                             ::= { ciscoImageCheckMIB 1 }

ciscoImageCheck   OBJECT IDENTIFIER 
                    ::= { ciscoImageCheckMIBObjects 1 }

--
--   When a switch runs different versions of software on the active
--   and the standby supervisor, the behaviour of the two versions
--   of the software can be different. 
--   The objective of this MIB is to perform a HA compatibility check
--   of the two versions of the software and list the incompatibilities
--
--   To achieve this goal, there are 2 tables defined in this MIB.
--
--   ciscoImageCheckOpTable, is an 'operations' table, in that this
--   table is used to invoke a command to perform a check on the 
--   images.
--
--   ciscoImgChkResultsTable, is a read-only table where the results of
--   previous operation are read. It is this table that lists the
--   incompatibilities.
--  
--   Terminology -
--
--     HA         - High Availability
-- 
--     Feature    - A software service like zoning, routing etc.
--
--     Capability - A configuration attribute mapping to some
--                  hardware-dependent configuration. A 
--                  capability is described by this infrastructure if
--                  it can be programmed in one version of the software
--                  but it can't be programmed in some earlier version.
--
--     Strict and Loose incompatibility - An incompatibility exists 
--                  between the configuration of the software running
--                  on the active supervisor and the configuration 
--                  supported by the standby supervisor when a specific
--                  capability is enabled, but software on the standby
--                  supervisor does not support it. The incompatibility
--                  is said to be 'Strict', when a switchover to the 
--                  older version software release would cause some
--                  unpredictable behaviour as long as the capability 
--                  is enabled. The incompatibility is said to be
--                  'Loose' when a switchover to the older release
--                  would not cause an unpredictable behaviour or 
--                  instability in the system.
--
--
 


ciscoImageCheckOpTable  OBJECT-TYPE
	SYNTAX	        SEQUENCE OF CiscoImageCheckOpEntry
	MAX-ACCESS	not-accessible
	STATUS	        current
	DESCRIPTION  
		"A table of Image check operation entries. Each
		entry represents an Image check operation that 
		has been initiated.
		"
	::= { ciscoImageCheck 1 }

ciscoImageCheckOpEntry  OBJECT-TYPE
	SYNTAX	        CiscoImageCheckOpEntry
	MAX-ACCESS	not-accessible
	STATUS	        current
	DESCRIPTION
		"An Image check operation entry. Each entry consists 
		of an image name, current status of the check
                operation and a row status.

		A management station wishing to create an entry should
		first generate a pseudo-random serial number to be used
		as the index to this sparse table.  The station should
		then create the associated instance of the row status
		object. It must also, create the associated instance
		of the image name. This image is checked for 
                compatibility with the image already running on the
                active supervisor.

		Once the appropriate instances of all the mandatory
		objects have been created, either by an explicit SNMP
		set request or by default, the row status should be set
		to active to initiate the operation. Note that this entire
		procedure may be initiated via a single set request which
		specifies a row status	of createAndGo.

		Once an operation has been activated, it cannot be
		stopped. 

		Once the operation completes, the management station should
		retrieve the value of the status object and delete the
		entry.  In order to prevent old entries from clogging the
		table, entries will be aged out, but an entry will never
		be deleted within 5 minutes of completing.
		"

	INDEX	{ ciscoImageCheckSerialNum }
	::= { ciscoImageCheckOpTable 1 }


CiscoImageCheckOpEntry ::=
	SEQUENCE {
        ciscoImageCheckSerialNum    Integer32,
        ciscoImageCheckImageName    SnmpAdminString,
        ciscoImageCheckStatus       INTEGER,
        ciscoImageCheckEntryStatus  RowStatus
	}

ciscoImageCheckSerialNum OBJECT-TYPE
	SYNTAX	         Integer32 (1..2147483647)
	MAX-ACCESS	 not-accessible
	STATUS	         current
	DESCRIPTION
		"Object which specifies a unique entry in the 
		table. A management station wishing to initiate a 
		check operation should use a pseudo-random value for
		this object when creating or modifying an instance of
		a ciscoImageCheckOpEntry.
		"
	::=   { ciscoImageCheckOpEntry 1 }


ciscoImageCheckImageName OBJECT-TYPE
	SYNTAX	         SnmpAdminString (SIZE (1..255))
	MAX-ACCESS	 read-create
	STATUS	         current
	DESCRIPTION
		"Image file name that needs the verification.
  
                 If the Image name is NULL then it is assumed that
                 the image check is to be done with the image on 
                 standby supervisor.
		"
	::= { ciscoImageCheckOpEntry 2 }


ciscoImageCheckStatus OBJECT-TYPE
	SYNTAX	      INTEGER {
		                       none(1), 
		                       inProgress(2), 
		                       inCompatLoose(3),  
		                       inCompatStrict(4),  
		                       compatible(5),
		                       noStandby(6),
		                       pssErr(7),
		                       extractFail(8),
		                       fileParseErr(9),
		                       getIncompatErr(10)
		       }
	MAX-ACCESS     read-only
	STATUS	       current
	DESCRIPTION
		"The current status of the image check operation.
                
                 If the status is inCompatLoose(3) or 
                 inCompatStrict(4), one can look at the detail
                 reasons of incompatibilities by looking at 
                 ciscoImgChkResultsTable described below.

                 If the status is compatible, then there is no
                 need to look at the ciscoImgChkResultsTable.

                 If the status is noStandby(6), pssErr(7),
                 extractFail(8), fileParseErr(9) or 
                 getIncompatErr(10), there is some internal error
                 in even starting the check compatibility process,
                 and hence the ciscoImgChkResultsTable should not
                 be read for any details.

                 inProgress(2)      - Image check is in progress
                 inCompatLoose(3)   - Loose incompatibility
                 inCompatStrict(4)  - Strict incompatibility
                 compatible(5)      - images are compatible
                 noStandby(6)       - standby supervisor is absent
                 pssErr(7)          - internal error
                 extractFail(8)     - Could not extract image
                 fileParseErr(9)    - Could not parse image
                 getIncompatErr(10) - internal error in determining
                                      incompatibilities. 

                "
	::= { ciscoImageCheckOpEntry 3 }
	

ciscoImageCheckEntryStatus OBJECT-TYPE
	SYNTAX	           RowStatus
	MAX-ACCESS	   read-create
	STATUS	           current
	DESCRIPTION
		"The status of this table entry."
	::= { ciscoImageCheckOpEntry 4 }


-- Image Check results Table


ciscoImgChkResultsTable OBJECT-TYPE
    SYNTAX	        SEQUENCE OF CiscoImgChkResultsEntry
    MAX-ACCESS	        not-accessible
    STATUS	        current
    DESCRIPTION
		"This table lists the features and capabilities
                 that are incompatible for the request that was
                 made corresponding to the instance of 
                 ciscoImgChkFeatureIndex in the ciscoImageCheckOpTable."
	::= { ciscoImageCheck 2 }
 

ciscoImgChkResultsEntry OBJECT-TYPE
	SYNTAX	        CiscoImgChkResultsEntry
	MAX-ACCESS      not-accessible
	STATUS	        current
	DESCRIPTION
		"An entry of ciscoImgChkResultsTable. "
	INDEX {
		   ciscoImageCheckSerialNum,
		   ciscoImgChkFeatureIndex,
		   ciscoImgChkCapabIndex
		  }
	::= { ciscoImgChkResultsTable 1 }


CiscoImgChkResultsEntry ::=
	SEQUENCE {
		ciscoImgChkFeatureIndex	 	Integer32,
		ciscoImgChkCapabIndex 		Integer32,
		ciscoImgChkFeatureName 		SnmpAdminString,
		ciscoImgChkCapabilityName       SnmpAdminString,
                ciscoImgChkCapabilityReq        INTEGER,
		ciscoImgChkInCompDescr          SnmpAdminString
	}

ciscoImgChkFeatureIndex OBJECT-TYPE
	SYNTAX	        Integer32 (1..65535)
	MAX-ACCESS	not-accessible
	STATUS	        current
	DESCRIPTION
		"The index of the incompatible feature."
	::= { ciscoImgChkResultsEntry 1 }


ciscoImgChkCapabIndex OBJECT-TYPE
	SYNTAX	      Integer32 (1..65535)
	MAX-ACCESS    not-accessible
	STATUS	      current
	DESCRIPTION
		"The index of the incompatible capability."
	::= { ciscoImgChkResultsEntry 2 }


ciscoImgChkFeatureName OBJECT-TYPE
	SYNTAX	       SnmpAdminString (SIZE (1..32))
	MAX-ACCESS     read-only
	STATUS	       current
	DESCRIPTION
		"The name of the incompatible feature.
                 The list of features is subject to 
                 implementation in a given software
                 release. The current list of features is
                 as follows -
        
                 fspf       - FSPF Routing Protocol Application
                 fcmpls     - Multi-Protocol Label Switching
                 fib        - FIB Manager
                 flogi      - F Port Server
                 rscn       - RSCN Module
                 fcns       - Name Server
                 fcdomain   - Domain Manager
                 fc-tunnel  - FC MPLS tunnel
                 ipfc       - Ipfc Manager
                 ipconf     - IP Configuration Manager
                 ips        - IPS Manager
                 port       - Port Manager
                 port-channel - Port Channel Manager
                 span       - Switch Port Analyzer
                 sysmgr-ver - System Manager version controller
                 vrrp-cfg   - VRRP Configuration
                 vsan       - VSAN manager
                 zone       - Zone Server
                
                "
	::= { ciscoImgChkResultsEntry 3 }


ciscoImgChkCapabilityName OBJECT-TYPE
	SYNTAX	          SnmpAdminString (SIZE (1..64))
	MAX-ACCESS	  read-only
	STATUS	          current
	DESCRIPTION
		"The name of the incompatible capability. 

                 The list of capabilities is subject to
                 implementation in a given software
                 release. The current list of capabilities 
                 is as follows -

                 CAP_FEATURE_SPAN_FCFWD_STBY_POP_ENABLED
                 CAP_FEATURE_SPAN_IF_VSAN_SRC_MIX_NOT_ALLOWED
                 CAP_FEATURE_SPAN_IF_SRC_VSAN_FILTER_NOT_ALLOWED
                 CAP_FEATURE_SPAN_FC_TUNNEL_CFG
                 CAP_FEATURE_SPAN_ST_PORT_CFG
                 CAP_FEATURE_SPAN_FCIP_SRC_CFG
                 CAP_FEATURE_SPAN_ISCSI_SRC_CFG
                 CAP_FEATURE_ZS_READ_ONLY_ZONING
                 CAP_FEATURE_ZS_LUN_ZONING
                 CAP_FEATURE_PORT_MODE_ST_CFG
                 CAP_FEATURE_FC_TUNNEL_CFG
                 CAP_FEATURE_PORT_PERFORMANCE_BUF
                "
	::= { ciscoImgChkResultsEntry 4 }


ciscoImgChkCapabilityReq OBJECT-TYPE
	SYNTAX	         INTEGER {
		                  strict(1),
		                  loose(2) 
		         }
	MAX-ACCESS	 read-only
	STATUS	         current
	DESCRIPTION
		"Whether capability check is strict or loose. "
	::= { ciscoImgChkResultsEntry 5 }


ciscoImgChkInCompDescr OBJECT-TYPE
	SYNTAX	      SnmpAdminString (SIZE (1..255))
	MAX-ACCESS    read-only
	STATUS	      current
	DESCRIPTION
		"Description of the incompatibilty. 
    
                 For example, if the name of the 
                 incompatibilty (the instance of 
                 ciscoImgChkCapabilityName) is 
                 CAP_FEATURE_ZS_READ_ONLY_ZONING, then the
                 description will be -

                 'Zone Server - Read-only zoning configured'.

                 For each incompatibility name that appears in
                 ciscoImgChkCapabilityName, there will be a
                 corresponding description described by the
                 instance of this object.
                "
	::= { ciscoImgChkResultsEntry 6 }



-- Conformance information

ciscoImageCheckMIBConformance
       OBJECT IDENTIFIER ::= { ciscoImageCheckMIB 2 }

ciscoImageCheckMIBCompliances
       OBJECT IDENTIFIER ::= { ciscoImageCheckMIBConformance 1 }

ciscoImageCheckMIBGroups
       OBJECT IDENTIFIER ::= { ciscoImageCheckMIBConformance 2 }

ciscoImageCheckMIBCompliance MODULE-COMPLIANCE
        STATUS   current
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-IMAGE-CHECK-MIB."
        MODULE MANDATORY-GROUPS {
                 ciscoImageCheckOpGroup,
                 ciscoImgChkResultsGroup
        }

        OBJECT     ciscoImageCheckEntryStatus
        SYNTAX     INTEGER {
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        DESCRIPTION
                "Only 'createAndGo', 'destroy' and 'active' need to
                 be supported."
        ::= { ciscoImageCheckMIBCompliances 1 }


-- Units of Conformance

ciscoImageCheckOpGroup  OBJECT-GROUP
        OBJECTS   {
                    ciscoImageCheckImageName,
                    ciscoImageCheckStatus,
                    ciscoImageCheckEntryStatus
                  }
        STATUS   current
        DESCRIPTION
                "A collection of objects for Image Check
                 Operations group."
        ::= { ciscoImageCheckMIBGroups 1 }


ciscoImgChkResultsGroup OBJECT-GROUP
        OBJECTS   {
                   ciscoImgChkFeatureName,
                   ciscoImgChkCapabilityName,
                   ciscoImgChkCapabilityReq,
                   ciscoImgChkInCompDescr
                  }
        STATUS   current
        DESCRIPTION
                "A collection of objects for Image check results
                 group."
        ::= { ciscoImageCheckMIBGroups 2 }


END
