DECRU-CHASSIS-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, 
        OBJECT-TYPE, 
        Integer32             FROM SNMPv2-SMI
        OBJECT-GROUP, 
        MODULE-COMPLIANCE     FROM SNMPv2-CONF
	decruModules, 
        decruChassisGroups,
        decruCompliances, 
        dcrChassis            FROM DECRU-BASE-MIB;

    decruChassisMibModule MODULE-IDENTITY
	LAST-UPDATED "200702281619Z"
	ORGANIZATION "Decru Inc."
        CONTACT-INFO "Mohit Kumar, mohitk@decru.com"
	DESCRIPTION 
            "The Chassis mib module for Datafort"
        REVISION "200702281619Z"
	DESCRIPTION 
            "First revision, to transition to SMIv2"
	::= { decruModules 3 }

-- General Info
    dcrChassisInfo OBJECT IDENTIFIER ::= { dcrChassis 1 }

    dcrChsVerSEP OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "SEP version. (example: '3731')"
	::= { dcrChassisInfo 1 }
    
    dcrChsTypeSEP OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "SEP Type. (example: 'DCC', 'DCCN')"
	::= { dcrChassisInfo 2 }
    
    dcrChsVerFPGA OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "FPGA firmware version. (example: '28')"
	::= { dcrChassisInfo 3 }
    
    dcrChsVerUC OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Microcontroller firmware version. (example: 'CCUC22')"
	::= { dcrChassisInfo 4 }
    
    dcrChsVerBMC OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Motherboard BMC version. (example: '71')"
	::= { dcrChassisInfo 5 }
    
    dcrChsVerMB OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION  
	    "Motherboard version.
	     This MIB is not accessible to the customer."
	::= { dcrChassisInfo 6 }
    dcrChsBios OBJECT IDENTIFIER ::= { dcrChassisInfo 7 }

    dcrChsBiosVersion OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "BIOS version. 
             (example: 'SE7520JR22.86B.P.11.00.0089.041320061657')"
	::= { dcrChsBios 1 }
    
    dcrChsBiosVendor OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION  
	    "BIOS vendor.
	     This MIB is not accessible to the customer."
	::= { dcrChsBios 2 }
    
    dcrChsBiosMemSize OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Physical memory size recognized by BIOS in bytes."
	::= { dcrChsBios 3 }

    dcrChsLCDCapability OBJECT-TYPE
	SYNTAX INTEGER {
	  none(0),
	  graphic(1),
	  text(2) 
	}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "LCD capability as illustrated by the enumerations."
	::= { dcrChassisInfo 8 }

    dcrChsNumCards OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Number of chassis cards in system."
	::= { dcrChassisInfo 9 }

-- chassis card table
    
    DcrChsCardEntry ::=
      SEQUENCE {
        dcrChsCardIndex Integer32,
	dcrChsCardName OCTET STRING,
	dcrChsCardVerSEP OCTET STRING,
	dcrChsCardTypeSEP OCTET STRING,
	dcrChsCardVerFPGA OCTET STRING,
	dcrChsCardVerUC OCTET STRING
      }

    dcrChsCardTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrChsCardEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of chassis card entries."
	::= { dcrChassisInfo 10 }

    dcrChsCardEntry OBJECT-TYPE
	SYNTAX DcrChsCardEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry describing the chassis card."
	INDEX { dcrChsCardIndex }
	::= { dcrChsCardTable 1 }

    dcrChsCardIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique index for the chassis card."
	::= { dcrChsCardEntry 1 }
        
    dcrChsCardName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Card name. (example: '/dev/dcc0')"
	::= { dcrChsCardEntry 2 }
    
    dcrChsCardVerSEP OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "SEP version. (example: '3731')"
	::= { dcrChsCardEntry 3 }
    
    dcrChsCardTypeSEP OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "SEP Type. (example: 'DCC','DCCN')"
	::= { dcrChsCardEntry 4 }
    
    dcrChsCardVerFPGA OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "FPGA firmware version. (example: '28')"
	::= { dcrChsCardEntry 5 }
    
    dcrChsCardVerUC OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Microcontroller firmware version. (example: 'CCUC22')"
	::= { dcrChsCardEntry 6 }

-- Status group 
    dcrChassisStatus OBJECT IDENTIFIER ::= { dcrChassis 2 }

    dcrChsStatLCD OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "LCD controller status. It is 0, if no error found."
	::= { dcrChassisStatus 1 }
    
    dcrChsStatSDRAM OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "SDRAM controller status. It is 0, if no error found."
	::= { dcrChassisStatus 2 }
    
    dcrChsStatGPIOPins OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "GPIO pins position."
	::= { dcrChassisStatus 3 }
    
    dcrChsStatMicroController OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Microcontroller status. It is 0, if no error found."
	::= { dcrChassisStatus 4 }
    
    dcrChsStatBatCharger OBJECT-TYPE
	SYNTAX INTEGER {error(-1), stopped(0), working(1), charging(3)}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Battery charger status as illustrated by the enumerations."
	::= { dcrChassisStatus 5 }
    
    dcrChsStatBattery OBJECT-TYPE
	SYNTAX INTEGER {error(-1), ok(0), low(1), notFound(2)}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Battery status as illustrated by the enumerations."
	::= { dcrChassisStatus 6 }

-- fan table
    DcrFanEntry ::=
      SEQUENCE {
        dcrFanIndex Integer32,
	dcrFanName OCTET STRING,
	dcrFanSpeed Integer32
      }

    dcrFanTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrFanEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of fan entries."
	::= { dcrChassis 3 }	

    dcrFanEntry OBJECT-TYPE
	SYNTAX DcrFanEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about the fan."
	INDEX { dcrFanIndex }
	::= { dcrFanTable 1 }

    dcrFanIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique index for the fan."
	::= { dcrFanEntry 1 }
    
    dcrFanName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Conventional fan name. (example: 'Baseboard Fan 1')"
	::= { dcrFanEntry 2 }
    
    dcrFanSpeed OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Fan speed in RPM"
	::= { dcrFanEntry 3 }

-- temperature sensor table
    DcrTempSensorEntry ::=
      SEQUENCE {
        dcrTempSensorIndex Integer32,
	dcrTempSensorName OCTET STRING,
	dcrTempSensorValue Integer32
      }

    dcrTempSensorTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrTempSensorEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of thermometer entries."
	::= { dcrChassis 4 }	

    dcrTempSensorEntry OBJECT-TYPE
	SYNTAX DcrTempSensorEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry for a particular thermometer."
	INDEX { dcrTempSensorIndex }
	::= { dcrTempSensorTable 1 }

    dcrTempSensorIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current
        DESCRIPTION
            "A unique index for the thermometer." 
	::= { dcrTempSensorEntry 1 }
    
    dcrTempSensorName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Conventional thermometer name. 
             (example: 'Baseboard Temp','CPU 1 Temp')"
	::= { dcrTempSensorEntry 2 }
        
    dcrTempSensorValue OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Temperature value in fahrenheit."
	::= { dcrTempSensorEntry 3 }

-- voltage sensor table
    DcrVoltSensorEntry ::=
      SEQUENCE {
        dcrVoltSensorIndex Integer32,
	dcrVoltSensorName OCTET STRING,
	dcrVoltSensorValue Integer32
      }

    dcrVoltSensorTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrVoltSensorEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of voltage sensor entries."
	::= { dcrChassis 5 }	

    dcrVoltSensorEntry OBJECT-TYPE
	SYNTAX DcrVoltSensorEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about the voltage sensor."
	INDEX { dcrVoltSensorIndex }
	::= { dcrVoltSensorTable 1 }

    dcrVoltSensorIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique index for the voltage sensor."
	::= { dcrVoltSensorEntry 1 }
    
    dcrVoltSensorName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Conventional voltage sensor name. 
             (example: 'Memory Voltage', 'SEP Battery')"
	::= { dcrVoltSensorEntry 2 }
  
  dcrVoltSensorValue OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Voltage value in milivolts."
	::= { dcrVoltSensorEntry 3 }

-- power supply  table
    DcrPowerSupplyEntry ::=
      SEQUENCE {
        dcrPowerSupplyIndex Integer32,
	dcrPowerSupplyName OCTET STRING,
	dcrPowerSupplyStatus INTEGER
      }

    dcrPowerSupplyTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrPowerSupplyEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of power-supply entries."
	::= { dcrChassis 6 }	

    dcrPowerSupplyEntry OBJECT-TYPE
	SYNTAX DcrPowerSupplyEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about the power supply."
	INDEX { dcrPowerSupplyIndex }
	::= { dcrPowerSupplyTable 1 }

    dcrPowerSupplyIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current
        DESCRIPTION
            "A unique index for the power supply."
	::= { dcrPowerSupplyEntry 1 }
        
    dcrPowerSupplyName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Conventional power-supply name. (example: 'Power Supply 1')"
	::= { dcrPowerSupplyEntry 2 }
        
    dcrPowerSupplyStatus OBJECT-TYPE
	SYNTAX INTEGER {
	  ok(1),
	  noSensor(2),
	  notPresent(3),
	  errorFound(4),
	  acLost(8)
	}
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Power-supply status as illustrated by the enumerations."
	::= { dcrPowerSupplyEntry 3 }

-- HBA table
    DcrHBAEntry ::=
      SEQUENCE {
        dcrHBAIndex Integer32,
	dcrHBADescr OCTET STRING,
	dcrHBAOperStatus INTEGER
      }

    dcrHBATable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrHBAEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of HBA entries. This table exists
	     only for SAN products."
	::= { dcrChassis 7 }	

    dcrHBAEntry OBJECT-TYPE
	SYNTAX DcrHBAEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about the HBA."
	INDEX { dcrHBAIndex }
	::= { dcrHBATable 1 }

    dcrHBAIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION
            "A unique index for the HBA."
        ::= { dcrHBAEntry 1 }
        
    dcrHBADescr OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "HBA description. (example: 'Host','Storage')"
	::= { dcrHBAEntry 2 }

    dcrHBAOperStatus OBJECT-TYPE
	SYNTAX  INTEGER {up(1),down(2)}
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "HBA status as illustrated by the enumerations."
	::= { dcrHBAEntry 3 }

-- Compliance Statements
decruChassisCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The requirements for conformance to the chassis mib."
    MODULE -- this module

       MANDATORY-GROUPS { 
            decruChassisInfoGroup, decruChassisStatusGroup, decruFanGroup, 
            decruTemperatureSensorGroup, decruVoltSensorGroup, 
            decruPowerSupplyGroup 
       }
       GROUP  decruHBAGroup 
          DESCRIPTION
               " This group is implemented only for the SAN products."
::= { decruCompliances 2 }   

-- Object Groups
    decruChassisInfoGroup OBJECT-GROUP
        OBJECTS {
            dcrChsVerSEP, dcrChsTypeSEP, dcrChsVerFPGA, dcrChsVerUC,
            dcrChsVerBMC, dcrChsBiosVersion, dcrChsBiosMemSize, 
            dcrChsLCDCapability, dcrChsNumCards, dcrChsCardIndex, 
            dcrChsCardName, dcrChsCardVerSEP, dcrChsCardTypeSEP, 
            dcrChsCardVerFPGA, dcrChsCardVerUC 
        }
        STATUS current
        DESCRIPTION
            "The Chassis's Information Group."
        ::= { decruChassisGroups 1 }
    
    decruChassisStatusGroup OBJECT-GROUP
        OBJECTS {
            dcrChsStatLCD, dcrChsStatSDRAM, dcrChsStatGPIOPins,
            dcrChsStatMicroController, dcrChsStatBatCharger,
            dcrChsStatBattery
        }
        STATUS current
        DESCRIPTION
            "The Chassis's Status Group."
        ::= { decruChassisGroups 2 }

    decruFanGroup OBJECT-GROUP
        OBJECTS {
            dcrFanIndex, dcrFanName, dcrFanSpeed 
        }
        STATUS current
        DESCRIPTION
            "The Chassis's Fan Group."
        ::= { decruChassisGroups 3 }
    
    decruTemperatureSensorGroup OBJECT-GROUP
        OBJECTS {
            dcrTempSensorIndex, dcrTempSensorName, dcrTempSensorValue 
        }
        STATUS current
        DESCRIPTION
            "The Chassis's Temperature Sensor Group."
        ::= { decruChassisGroups 4 }
    
    decruVoltSensorGroup OBJECT-GROUP
        OBJECTS {
            dcrVoltSensorIndex, dcrVoltSensorName, dcrVoltSensorValue 
        }
        STATUS current
        DESCRIPTION
            "The Chassis's Voltage Sensor Group."
        ::= { decruChassisGroups 5 }
    
    decruPowerSupplyGroup OBJECT-GROUP
        OBJECTS {
            dcrPowerSupplyIndex, dcrPowerSupplyName, dcrPowerSupplyStatus 
        }
        STATUS current
        DESCRIPTION
            "The Power Supply Group."
        ::= { decruChassisGroups 6 }
    
    decruHBAGroup OBJECT-GROUP
        OBJECTS {
            dcrHBAIndex, dcrHBADescr, dcrHBAOperStatus 
        }
        STATUS current
        DESCRIPTION
            "The HBA Group."
        ::= { decruChassisGroups 7 }
END

