-- *****************************************************************
-- CISCO-ENTITY-EXT-MIB.my
--
-- Cisco Extension to ENTITY-MIB(RFC2737)
--
--  April 2001, A S Kiran Koushik
--  May  2004, Arul Mozhi 
--
-- Copyright (c) 2001, 2002, 2003 & 2004  by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
--

CISCO-ENTITY-EXT-MIB DEFINITIONS ::= BEGIN

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


ciscoEntityExtMIB MODULE-IDENTITY
        LAST-UPDATED  "200407060000Z"
        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
		"This MIB is an extension of the ENTITY-MIB
		 specified in RFC2737.

		 This MIB module contains  Cisco-defined  extensions 
		 to the  entityPhysicalTable to represent information
		 related to entities of class module(entPhysicalClass
		 = 'module') which have a Processor.

                 A processor module is defined as a physical entity
                 that has a CPU, RAM and NVRAM  so that
                 it can independently
                    - load a bootable image
                    - save configuration.
		 This module is the entry point for external
		 applications like SNMP Manager, CLI, FTP etc.

		 Line card is an interface card	 with at least a 
		 Processor and RAM. This might be referred to as 
		 Service Module in some cisco products.
		
		 A configuration register is  a 16 bit 
		 software register.
		 The configuration register is mainly used to 
		 check for instructions on where to find the Cisco 
		 Operating System software.
		 Some other functions of configuration register are:
		  - To select a boot source and default boot filename.
		  - To enable or disable the Break function.
		  - To control broadcast addresses.
		  - To set the console terminal baud rate.
		  - To load operating software from Flash memory.
		  - To allow us to manually boot the system using the 
		    boot command at the bootstrap program prompt.
		 
		 Booting is the process of initializing the
		 hardware and starting the Operating System."
    REVISION     "200407060000Z"
    DESCRIPTION
	    "Added a new table object 'ceExtEntPhysicalTable' ." 
    REVISION     "200403030000Z"
    DESCRIPTION
	    "Importing Unsigned32 from SNMPv2-SMI, instead of CISCO-TC. " 
    REVISION     "200401260000Z"
    DESCRIPTION
	    "Added new enum to ceExtEntityLEDType. " 
    REVISION     "200308240000Z"
	DESCRIPTION
	    "Added ceExtEntityLEDTable.  Added ceExtKickstartImageList to
	     ceExtConfigRegTable.
         Added new group ciscoEntityExtLEDGroup.
         Added group ceExtSysBootImageListGroupRev1." 
	REVISION     "200105170000Z"
	DESCRIPTION
		"Corrected the description for the TC 
		 ConfigRegisterValue."
	REVISION     "200104050000Z"
	DESCRIPTION
                "Initial version of this MIB module."
::= { ciscoMgmt 195 }


ciscoEntityExtMIBObjects  
	OBJECT IDENTIFIER ::= { ciscoEntityExtMIB 1 }

--
-- textual conventions
--

ConfigRegisterValue ::= TEXTUAL-CONVENTION
	DISPLAY-HINT "2x"
	STATUS       current
	DESCRIPTION
		"An Integer containing the value of config register.
		 
		 The definition of individual bits from right to left 
		 when set are as follows:
		
		 00 to	
		 03		Boot Fields(Refer below for
				explanation).

		 04 to 
		 05		Not Used.
		
		 06		Causes system software to ignore the 
				contents of NVRAM.

		 07		Enable the original equipment 
				manufacturer (OEM) bit.

		 08		The Break function is disabled.

		 09		Not used.

		 10		Broadcast based on 0.0.0.0 IP address.

		 11 to 
		 12		Defines the console baud rate as below:
				Bits 11 & 12 unset: 9600 baud(default),
				Bit 11 set & 12 unset: 4800 baud,
				Bit 11 unset & 12 set: 1200 baud,
				Bit 11 set & 12 set: 2400 baud

		 13		Boots default Flash software if 
				network boot fails.

		 14	        IP broadcasts do not have network 
                                numbers.

		 15		Enables diagnostic messages and ignores 
				the contents of NVRAM.
      

		Meanings for different values of Boot Fields
		(Bits 00 to 03) are explained below:

		Value(in hex)	Description
		------------    -----------
		 00		On powerup or reload, the system
				remains at the ROM monitor prompt 
				(rommon>), awaiting a user command 
				to boot the system manually by means 
				of the rommon boot command.

		 01		On powerup or reload, the system loads
				the system image found in onboard 
				Flash memory.
	
		 02 to		On powerup or reload, the system loads
		 0F		the system image specified by 
				ceExtSysBootImageList.
				It tries to boot the
				image in the order in which 
				the image names are entered in 
				ceExtSysBootImageList. If 
				it cannot boot any image in the
				ceExtSysBootImageList, it 
				stays in ROM monitor mode."


       SYNTAX       OCTET STRING (SIZE (2))


BootImageList ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "This contains a list of  boot images, 
	     each separated by the ';' (semi-colon) character.  
	     The following provides a syntax for parsing a single
	     boot image list item.

             <device>:[filename] | <URL>

	     <device> can be (but not limited to):
		flash, bootflash, slot0, rom, C
	     The transfer protocol used in the <URL>
	     can be (but not limited to):
		 tftp, ftp, rcp, mop.

	     The following is en example containing two boot image
	     names:  
		disk0:c7100-ik2s-mz;tftp://dirt/c7100-ik2s-mz
     				
	     If the filename is not  specified, then the
	     first file on the <device> will be used.

   	     If the last two characters in the returned value
	     are ';+' this indicates that additional boot image
	     items are configured on the device but can not
	     be returned because the maximum string size limitation
	     would be exceeded.

	     For example:
		disk0:image1;disk0:image2;+
	     "
	
    SYNTAX      OCTET STRING (SIZE (0..255))



--
-- ceExtPhysicalProcessorTable
--

ceExtPhysicalProcessorTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CeExtPhysicalProcessorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
	    "The ceExtPhysicalProcessorTable extends
	     the ENTITY-MIB entPhysicalTable for modules
	     (Non FRUs(Field Replacable Units) or FRUs)."
    REFERENCE
	    "RFC2737: Section 2.12.1"
    ::= { ciscoEntityExtMIBObjects 1 }

ceExtPhysicalProcessorEntry OBJECT-TYPE
    SYNTAX  CeExtPhysicalProcessorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
	    "A ceExtPhysicalProcessorTable entry extends 
	     a corresponding entPhysicalTable entry of class
	     module(entPhysicalClass = 'module').
	
	     A processor module or line card which 
	     has a processor will have an entry in
	     this table.

	     A processor module or line card having
	     multiple processors and is a SMP(Symmetric
	     multi processor) system will have only 
	     one entry corresponding to all the processors 
	     since the resources defined below are shared.

	     A processor module or line card having
	     multiple processors and is not an SMP system
	     would register the processors as separate entities.

             Entries are created by the agent at the system power-up
	     or module insertion.
	
	     Entries are removed when the module is reset or removed."
    INDEX   { entPhysicalIndex }
    ::= { ceExtPhysicalProcessorTable 1 }

CeExtPhysicalProcessorEntry  ::= SEQUENCE {
    ceExtProcessorRam			Unsigned32,
    ceExtNVRAMSize			Unsigned32,
    ceExtNVRAMUsed			Unsigned32
}

ceExtProcessorRam OBJECT-TYPE
	SYNTAX  Unsigned32
	UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Total number of bytes of RAM available on the
		 Processor."
        ::= { ceExtPhysicalProcessorEntry 1 }

ceExtNVRAMSize OBJECT-TYPE
	SYNTAX  Unsigned32
	UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Total number of bytes of NVRAM in the entity.
			
		 A value of 0 for this object means the entity
		 does not support NVRAM or NVRAM information 
		 is not available."
        ::= { ceExtPhysicalProcessorEntry 2 }

ceExtNVRAMUsed OBJECT-TYPE
	SYNTAX  Unsigned32
	UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"Number of bytes of NVRAM in use. This object
		 is irrelevant if ceExtNVRAMSize is 0."
        ::= { ceExtPhysicalProcessorEntry 3 }


ceExtConfigRegTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CeExtConfigRegEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
	    "The ceExtConfigRegTable extends
	     the ENTITY-MIB entPhysicalTable."
    REFERENCE
	    "RFC2737: Section 2.12.1"		
    ::= { ciscoEntityExtMIBObjects 2 }

ceExtConfigRegEntry OBJECT-TYPE
    SYNTAX  CeExtConfigRegEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
	    "A ceExtConfigRegTable entry extends 
	     a corresponding entPhysicalTable entry of class
	     module which has a configuration register.

             Entries are created by the agent at the system power-up
	     or module insertion.
	
	     Entries are removed when the module is reset or 
	     removed."

    INDEX   { entPhysicalIndex }
    ::= { ceExtConfigRegTable 1 }

CeExtConfigRegEntry  ::= SEQUENCE {
    ceExtConfigRegister			ConfigRegisterValue,          
    ceExtConfigRegNext			ConfigRegisterValue,
    ceExtSysBootImageList		BootImageList,
    ceExtKickstartImageList     BootImageList
}

ceExtConfigRegister OBJECT-TYPE
	SYNTAX  ConfigRegisterValue
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The value of configuration register with which 
		 the processor module booted."
        ::= { ceExtConfigRegEntry 1 }

ceExtConfigRegNext OBJECT-TYPE
	SYNTAX  ConfigRegisterValue
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"The value of configuration register in the 
		 processor module at next reboot. Just after 
		 the reboot this has the same value as 
		 ceExtConfigRegister."
        ::= { ceExtConfigRegEntry 2 }

ceExtSysBootImageList OBJECT-TYPE
        SYNTAX        BootImageList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
		"The list of system boot images which
		 can be used for booting."
        DEFVAL { "" }
	::= { ceExtConfigRegEntry 3 }
	
ceExtKickstartImageList OBJECT-TYPE
        SYNTAX        BootImageList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "The list of system kickstart images which
                 can be used for booting."
        DEFVAL { "" }
        ::= { ceExtConfigRegEntry 4 }

--
-- ceExtEntityLEDTable
--
ceExtEntityLEDTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF CeExtEntityLEDEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
         "A table containing information of LED on an entity. "
    ::= { ciscoEntityExtMIBObjects 3 }

ceExtEntityLEDEntry OBJECT-TYPE
    SYNTAX     CeExtEntityLEDEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the ceExtEntityLEDTable, 
        containing information about an LED on an entity, identified by 
        entPhysicalIndex. "
    INDEX { entPhysicalIndex, ceExtEntityLEDType } 
    ::= { ceExtEntityLEDTable 1 }

CeExtEntityLEDEntry ::= SEQUENCE {
        ceExtEntityLEDType     INTEGER,
        ceExtEntityLEDColor    INTEGER
}

ceExtEntityLEDType OBJECT-TYPE
    SYNTAX      INTEGER {
                          status(1),
                          system(2),
                          active(3),
                          power(4),
                          battery(5)
                        }                            
    MAX-ACCESS  not-accessible 
    STATUS      current
    DESCRIPTION
        "The type of LED on this entity. 
        'status' - indicates the entity status.
        'system' - indicates the overall system status. 
        'active' - the redundancy status of a module, for e.g.
                   supervisor module. 
        'power'  - indicates sufficient power availability for all 
                   modules.
        'battery'- indicates the battery status. "
    REFERENCE
        "Cisco MDS 9500 Series Hardware Installation Guide,
        Product Overview." 
    ::= { ceExtEntityLEDEntry 1 }

ceExtEntityLEDColor OBJECT-TYPE
    SYNTAX      INTEGER {
                          off(1),
                          green(2),
                          amber(3),
                          red(4)
                        }
    MAX-ACCESS  read-only 
    STATUS      current             
    DESCRIPTION
        "The color of the LED."
    REFERENCE
        "Cisco MDS 9500 Series Multilayer Switches, Product
        Overview."        
    ::= { ceExtEntityLEDEntry 2 }


--
-- ceExtEntityPhysicalTable
--

ceExtEntPhysicalTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF CeExtEntPhysicalEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains additional information about 
        a particular physical entity.
	This table augments the 'entPhysicalTable'  of
        the ENTITY-MIB." 
    REFERENCE
	"RFC2737: Section 2.12.1"
    ::= { ciscoEntityExtMIBObjects 4 }

ceExtEntPhysicalEntry OBJECT-TYPE
    SYNTAX     CeExtEntPhysicalEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the 'ceExtEntPhysicalTable',
        containing additional information about a physical entity, 
        identified by 'entPhysicalIndex'."
    AUGMENTS { entPhysicalEntry }
    ::= { ceExtEntPhysicalTable 1 }

CeExtEntPhysicalEntry ::= SEQUENCE {
        ceEntPhysicalSecondSerialNum SnmpAdminString 
        }

ceEntPhysicalSecondSerialNum  OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current DESCRIPTION 
        "This object represents the vendor-specific second 
        serial number string for the physical entity. 
        The first serial number string of the physical
        entity is represented in the value of corresponding 
        instance of the 'entPhysicalSerialNum' object.

        On the first instantiation of an physical entity, the value
        of this object is the correct vendor-assigned second 
        serial number, if this information is available to the agent. 

        If the second serial number is unknown or non-existent, then 
        the value of this object will be a zero-length string instead.

        Note that implementations which can correctly identify the
        second serial numbers of all installed physical entities do 
        not need to provide write access to this object. 
        Agents which cannot provide non-volatile storage for the 
        second serial number strings are not required to implement 
        write access for this object.

        Not every physical component will have a serial number, or
        even need one.  Physical entities for which the associated
        value of the entPhysicalIsFRU object is equal to 'false(2)'
        (e.g., the repeater ports within a repeater module), do not
        need their own unique serial number. An agent does not have
        to provide write access for such entities, and may return a
        zero-length string.

        If write access is implemented for an instance of
        'ceEntPhysicalSecondSerialNum', and a value is written into 
        the instance, the agent must retain the supplied value in the
        'ceEntPhysicalSecondSerialNum' instance associated with the 
        same physical entity for as long as that entity remains
        instantiated. This includes instantiations across all re-
        initializations/reboots of the network management system,
        including those which result in a change of the physical
        entity's entPhysicalIndex value." 
    DEFVAL {""}
    ::= { ceExtEntPhysicalEntry 1 }


--Notifications
ceExtMIBNotificationPrefix 
	OBJECT IDENTIFIER ::= {ciscoEntityExtMIB 2 }
ciscoEntityExtMIBNotifications 
	OBJECT IDENTIFIER ::= {ceExtMIBNotificationPrefix 0 }

--
-- conformance information
--
ciscoEntityExtMIBConformance
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIB 3 }

ciscoEntityExtMIBCompliances
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIBConformance 1 }

ciscoEntityExtMIBGroups
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIBConformance 2 }

--
-- compliance statements
--

ciscoEntityExtMIBCompliance MODULE-COMPLIANCE
    STATUS  deprecated -- superseded by 
                       -- ciscoEntityExtMIBComplianceRev1
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
	     with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
		ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
	    "The ciscoEntityExtConfigRegGroup is an optional group
	     containing objects providing information about
	     configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides information about the system boot images."

    ::= { ciscoEntityExtMIBCompliances 1 }

ciscoEntityExtMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS deprecated 
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
	     with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
		ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
	    "The ciscoEntityExtConfigRegGroup is an optional group
	     containing objects providing information about
	     configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides information about the system boot images."
    GROUP ciscoEntityExtLEDGroup
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides LED information."
	GROUP ceExtSysBootImageListGroupRev1
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides information about the system boot images."   
    ::= { ciscoEntityExtMIBCompliances 2 }


ciscoEntityExtMIBComplianceRev2 MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
	     with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
		ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
	    "The ciscoEntityExtConfigRegGroup is an optional group
	     containing objects providing information about
	     configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides information about the system boot images."
    GROUP ciscoEntityExtLEDGroup
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides LED information."
    GROUP ceExtSysBootImageListGroupRev1
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides information about the system boot images."   
    
    GROUP ciscoExtEntityPhysicalGroup 
    DESCRIPTION
	    "This group is an optional group containing an object
	     which provides additional information about the 
             physical entity."   
    ::= { ciscoEntityExtMIBCompliances 3 }

--
-- units of conformance
--

ceExtPhysicalProcessorGroup OBJECT-GROUP
    OBJECTS {
	ceExtProcessorRam,
	ceExtNVRAMSize,
	ceExtNVRAMUsed
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects which give information about
	     the Processor RAM and NVRAM."
    ::= { ciscoEntityExtMIBGroups 1 }

ciscoEntityExtConfigRegGroup OBJECT-GROUP
    OBJECTS {
	ceExtConfigRegister,
	ceExtConfigRegNext
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects which give information about
	     configuration register.
		
	     Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 2 }

ceExtSysBootImageListGroup OBJECT-GROUP
    OBJECTS {
	ceExtSysBootImageList
    }
    STATUS  current
    DESCRIPTION
            "A group containing an object providing information 
	     about the system boot images.

	     Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 3 }

ciscoEntityExtLEDGroup OBJECT-GROUP
        OBJECTS { ceExtEntityLEDColor }
        STATUS   current   
        DESCRIPTION
                "A collection of objects for giving led information."
        ::= { ciscoEntityExtMIBGroups 4}
        
ceExtSysBootImageListGroupRev1 OBJECT-GROUP
    OBJECTS {
	ceExtKickstartImageList
    }
    STATUS  current
    DESCRIPTION
            "A group containing an object providing information 
	     about the system boot images.

	     Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 5 }

   
ciscoExtEntityPhysicalGroup OBJECT-GROUP
    OBJECTS {
	ceEntPhysicalSecondSerialNum
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects for providing additional 
            information about the physical entity.

	    Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 6 }
END




