   SRM-MIB DEFINITIONS ::= BEGIN

   IMPORTS
                  mgmt, NetworkAddress, IpAddress, Counter, Gauge,
                         TimeTicks
                      FROM RFC1155-SMI     
                  
                  OBJECT-TYPE
                        FROM RFC-1212;   

          --mgmt             OBJECT IDENTIFIER ::= { iso org(3) dod(6) internet(1) mgmt(2) }
          --directory        OBJECT IDENTIFIER ::= { internet 1 }
          --experimental     OBJECT IDENTIFIER ::= { internet 3 }
          --private          OBJECT IDENTIFIER ::= { internet 4 }
          --enterprises      OBJECT IDENTIFIER ::= { private 1 }  
	  

	  inventec           OBJECT IDENTIFIER ::= { enterprises 6569 }
	  software           OBJECT IDENTIFIER ::= { inventec 1 }
	  serverManagement   OBJECT IDENTIFIER ::= { software 1 }
	  sysInfo            OBJECT IDENTIFIER ::= { serverManagement 1 }
	  system             OBJECT IDENTIFIER ::= { sysInfo 1 }
	  sysBoard           OBJECT IDENTIFIER ::= { sysInfo 2 }
          hardware           OBJECT IDENTIFIER ::= { sysInfo 3 }
	
          cpu                OBJECT IDENTIFIER ::= { hardware 1 }
	  memory             OBJECT IDENTIFIER ::= { hardware 2 }
	  port		     OBJECT IDENTIFIER ::= { hardware 3 }
	  device	     OBJECT IDENTIFIER ::= { hardware 4 }
	  storage	     OBJECT IDENTIFIER ::= { hardware 5 }	
	  powerSupply	     OBJECT IDENTIFIER ::= { hardware 6 }		
	  ups	             OBJECT IDENTIFIER ::= { hardware 7 }
          fan	             OBJECT IDENTIFIER ::= { hardware 8 }
          voltage	     OBJECT IDENTIFIER ::= { hardware 9 }
	  temperature	     OBJECT IDENTIFIER ::= { hardware 10 }

--  Invectec.Software.ServerManagement.SysInfo.System
 
 sysProductName OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The product name of the system."
         ::= { system 1 }

 sysShutdown OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
	    "This value indicates whether the agent will attempt to gracefully
             shutdown the operating system.
	     Value 1 means  the agent will preform a shutdown."
         ::= { system 2 }

 sysReboot OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "This value indicates whether the agent will attempt to gracefully
             reboot the operating system.
	     Value 1 means  the agent will preform a reboot."
         ::= { system 3 }

 sysPollingTime OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Keep in reserve for use when needed."
         ::= { system 4 }

sysType OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "System Type(server, printer...). Keep in reserve for use when needed."
         ::= { system 5 }

sysOsType OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Current Operating system type in INTEGER.
	    Value 11 means Linux Redhatas21,
	    value 12 means Linux United10,
	    value 13 means Linux Suse82,
	    value 40 means WINNT Workstation,
	    value 41 means WINNT Server,
	    value 42 means WINNT Server Enteprise,
	    value 44 means WIN2003,
	    value 45 means WIN2003 Enteprise,
	    value 46 means WIN2003 Server,
	    value 47 means WIN2003 Web,
	    value 48 means WIN2003 Datacenter"
         ::= { system 6 }

sysOsVersion OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The version of the current OS.
	     Suc as 5.00.2195, 2.4.9-9, etc."
         ::= { system 7 }


sysFlashBiosInfo OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "This value represents information about flashing system BIOS. Keep in reserve for use when needed."
         ::= { system 8 }

sysFlashBmcInfo OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "This value represents information about flashing system BMC. Keep in reserve for use when needed."
         ::= { system 9 }

sysUpdateAgent OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "This value represents information about updating the agent. Keep in reserve for use when needed."
         ::= { system 10 }

sysManufacturer OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Manufacturer name for the terminal."
         ::= { system 11 }

sysVersion  OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Version for the terminal."
         ::= { system 12 }

sysAgentID OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "An agent ID that uniquely specifies each terminal. Keep in reserve for use when needed."
         ::= { system 13 }

sysWatchdogTime OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "The system symbol's setting interval.(10-999)seconds."
         ::= { system 14 }

sysWatchDogAction OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Corresponding action aims at sysWatchdogTime.
	     Value 0 means no Action,
             1 means Hard Reset,
             2 means Power Down,
             3 means Power Cycle."

         ::= { system 15 }

--  Invectec.Software.ServerManagement.SysInfo.SysBoard

 productName OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The product name for this sysBoard."
         ::= { sysBoard 1 }

 romVersion OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "BIOS version for sysBoard."
         ::= { sysBoard 2 }
 
 romRelDate OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The current board revision configuration date in MM/DD/YY format."
         ::= { sysBoard 3 }
 
 romVendor OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "Manufacturer name or ID of the sysBoard BIOS."
         ::= { sysBoard 4 }

 serialNumber OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The product serial number for this sysBoard."
         ::= { sysBoard 5 }

 assetTag OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "This is the customer changeable sysBoard identifier at the time of manufacture."
         ::= { sysBoard 6 }

 manufactory OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The sysBoard's manufacturer name."
         ::= { sysBoard 7 }

 boardRevisionLevel OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The revision level for the sysBoard."
            
         ::= { sysBoard 8 }

--  Invectec.Software.ServerManagement.SysInfo.Hardware


--  Invectec.Software.ServerManagement.SysInfo.Harware.CpuTable
--  CpuTable is composed of  Sequence of  CpuEntry, such  as 
--  Family, Model, Stepping, etc.

 cpuNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The number of processors in using."
      ::={ cpu 1 }

cpuUsageThreshold OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the processors's usage threshold as an acceptable level. When the percentage of CPU Cycle used has exceeded the value,
	 the agent will send trap(CPU_EXCEED_THRESHOLD) and if the percentage of CPU Cycle used has returned to an acceptable level, the
	 the management can receive the trap(CPU_LEVLE_OK). The value is between -1 and 100.-1 means customers have no permission to set
	 cpu usage threshold."
      ::={ cpu 2 }

cpuInterval OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "The interval to achieve Processor average usage in second."
      ::={ cpu 3 }

cpuTable OBJECT-TYPE
      SYNTAX SEQUENCE OF CpuEntry
      ACCESS not-accessible
      STATUS mandatory
       DESCRIPTION
          "A table of processor descriptions."
      ::={ cpu 4 }
      
cpuEntry OBJECT-TYPE
      SYNTAX CpuEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of processor descriptions."

      INDEX {cpuEntIntex}	
      ::={cpuTable 1 }

CpuEntry ::=
      SEQUENCE{
		 	cpuEntIntex INTEGER,
			cpuEntFamily DisplayString (SIZE (0..255)),
			cpuEntStepping DisplayString (SIZE (0..255)),
			cpuEntSpeed DisplayString (SIZE (0..255)),
			cpuEntUsed INTEGER,
			cpuEntCacheSizeL1 DisplayString (SIZE (0..255)),
			cpuEntCacheSizeL2 DisplayString (SIZE (0..255)),
			cpuEntCacheSizeL3 DisplayString (SIZE (0..255)),
			cpuEntCacheSpeedL1 DisplayString (SIZE (0..255)),
			cpuEntCacheSpeedL2 DisplayString (SIZE (0..255)),
			cpuEntCacheSpeedL3 DisplayString (SIZE (0..255)),
		        cpuEntIsDisable INTEGER,
			cpuEntIsUHT INTEGER
				 
      }


cpuEntIntex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the cpuEntry."
      ::={ cpuEntry 1 }


   cpuEntFamily OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The family of the processor."
      ::={ cpuEntry 2 }

   cpuEntStepping OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The stepping of the processor."
      ::={ cpuEntry 3 }

   cpuEntSpeed OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The frequency of the processor."
      ::={ cpuEntry 4 }

  cpuEntUsed OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The usage of the processor."
      ::={ cpuEntry 5 }
      
   cpuEntCacheSizeL1 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The capacity of L1 cache."
      ::={ cpuEntry 6 }	

   cpuEntCacheSizeL2 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The capacity of L2 cache."
      ::={ cpuEntry 7 }	

   cpuEntCacheSizeL3 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The capacity of L3 cache."
      ::={ cpuEntry 8 }	
	

   cpuEntCacheSpeedL1 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The speed of L1 cache"
      ::={ cpuEntry 9 }

  cpuEntCacheSpeedL2 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The speed of L2 cache."
      ::={ cpuEntry 10 }

   cpuEntCacheSpeedL3 OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The speed of L3 cache."
      ::={ cpuEntry 11 }
	

cpuEntIsDisable OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "We use the node as a symbol for identifying whether processor is disabled.
	Value 1 means processor is disabled,on the contrary, 0 means processor is enabled."
      ::={ cpuEntry 12 }

      
cpuEntIsUHT OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "symbol for idenfify whether processor support hyper thread.
	Value 1 support, value 0 not support."
      ::={ cpuEntry 13 }
  

 
-- ****************************************************************************
--   Invectec System Information Memory Module Table
--  ===========================================================================


dimmNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of memory banks installed."
      ::={ memory 1 }

memCapacity OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The total capacity of memory."
      ::={ memory 2 }

memUsage OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The usage of the memory."
      ::={ memory 3 }

memThreshold OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
         "This is the memory usage threshold as an acceptable level. When the percentage of memory in use has exceeded the value,
	 the agent will send trap(MEM_EXCEED_THRESHOLD) and if the percentage of memory in use has returned to an acceptable level, the
	 management can receive the trap(MEM_LEVLE_OK). The value is between -1 and 100.-1 means customers have no permission to set
	 memory usage threshold."
      ::={ memory 4 }


dimmTable OBJECT-TYPE
      SYNTAX SEQUENCE OF DimmEntry
      ACCESS not-accessible
      STATUS mandatory
       DESCRIPTION
       "A table of memory bank descriptions."
      ::={ memory 5 }
      
dimmEntry OBJECT-TYPE
      SYNTAX DimmEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of memory bank descriptions."

      INDEX {dimmEntIndex}	
      ::={dimmTable 1 }

DimmEntry ::=
      SEQUENCE{
		dimmEntIndex INTEGER,
		dimmEntSize DisplayString (SIZE (0..255)),
		dimmEntType DisplayString (SIZE (0..255)),
		dimmEntNo INTEGER,
		dimmEntSpeed DisplayString (SIZE (0..255)),
		dimmManufactory DisplayString (SIZE (0..255)),
		dimmEntTypeDetail DisplayString (SIZE (0..255))
		 
      }
      
dimmEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the dimmEntry."
      ::={ dimmEntry 1 }

dimmEntSize OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The memory bank size in megabytes."
      ::={ dimmEntry 2 }

dimmEntType OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The type of memory bank.Such as SDR/DDR."
      ::={ dimmEntry 3 }

dimmEntNo OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The slot number in which the memory bank is installed. Keep in reserve for use when needed."
      ::={ dimmEntry 4 }

dimmEntSpeed OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "Memory bank speed in nanoseconds."
      ::={ dimmEntry 5 }

dimmManufactory OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The manufacturer name for the memory bank."
      ::={ dimmEntry 6 }

dimmEntTypeDetail OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The detail information about memory bank type."
      ::={ dimmEntry 7 }

--  Invectec.Software.ServerManagement.SysInfo.Hardware.GeneralTable
--  GeneralTable is composed of  Sequence of  GeneralEntry, such  as 
--  GenEntIndex, GenEntType, etc. 


portNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of the IO ports."
      ::={ port 1 }

portTable OBJECT-TYPE
      SYNTAX SEQUENCE OF PortEntry
      ACCESS not-accessible
      STATUS mandatory
       DESCRIPTION
           "A table of IO port descriptions."
      ::={ port 2 }
      
portEntry OBJECT-TYPE
      SYNTAX PortEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of IO port descriptions."
      INDEX {portEntIndex}	
      ::={portTable 1 }

PortEntry ::=
      SEQUENCE{
		portEntIndex INTEGER,
		portEntType DisplayString (SIZE (0..255)),
		portEntDescr DisplayString (SIZE (0..255))
		
		 
      }

portEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the portEntry."
      ::={ portEntry 1 }

portEntType OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The type of the IO port.Such as USB,MIDI Port,Audio Port, etc."
      ::={ portEntry 2 }

portEntDescr OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A description of the IO port.Such as PS/2 Keyboard,PS/2 Mouse, etc."
      ::={ portEntry 3 }


--  Invectec.Software.ServerManagement.SysInfo.Hardware.Device
--  DeviceTable is composed of  Sequence of  DeviceEntry, such  as 
--  DeviceEntIndex, DeviceEntDescr, etc. 

deviceNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of the devices."
      ::={ device 1 }

deviceTable OBJECT-TYPE
      SYNTAX SEQUENCE OF DeviceEntry
      ACCESS not-accessible
      STATUS mandatory
       DESCRIPTION
           "A table of device descriptions."
      ::={ device 2 }
      
deviceEntry OBJECT-TYPE
      SYNTAX DeviceEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of device descriptions."

      INDEX {deviceEntIndex}	
      ::={deviceTable 1 }

DeviceEntry ::=
      SEQUENCE{
		deviceEntIndex INTEGER,
		deviceEntDescr DisplayString (SIZE (0..255)),
		deviceEntType DisplayString (SIZE (0..255)),
		deviceEntIRQ INTEGER,
		deviceEntMemoryBase DisplayString (SIZE (0..255)),
		deviceEntIOBase DisplayString (SIZE (0..255)),
		deviceEntDMAChannel DisplayString (SIZE (0..255)),
		deviceEntDuplex DisplayString (SIZE (0..255)),
		deviceEntStatus DisplayString (SIZE (0..255)),
		deviceEntRevision INTEGER,
		deviceEntFWModel DisplayString (SIZE (0..255))

		 
      }

deviceEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the deviceEntry."
      ::={ deviceEntry 1 }

deviceEntDescr OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " A description for the device."
      ::={ deviceEntry 2 }

deviceEntType OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The type for the device."
      ::={ deviceEntry 3 }

deviceEntIRQ OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The number of the IRQ (interrupt) used for this device."
      ::={ deviceEntry 4 }

deviceEntMemoryBase OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The base memory address used for this device."
      ::={ deviceEntry 5 }

deviceEntIOBase OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The base I/O address of the device."
      ::={ deviceEntry 6 }

deviceEntDMAChannel OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of the DMA channel used for this device."
      ::={ deviceEntry 7 }

deviceEntDuplex OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This value describes the configured duplex state of the device."
      ::={ deviceEntry 8 }

deviceEntStatus OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The condition of this device."
      ::={ deviceEntry 9 }

deviceEntRevision OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The current device revision number."
      ::={ deviceEntry 10 }

deviceEntFWModel OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the device firmware model. "
      ::={ deviceEntry 11 }


--  Invectec.Software.ServerManagement.SysInfo.Hardware.Storage
--  StoragetTable is composed of  Sequence of  StorageEntry, such  as 
--  StorageEntIndex, StorageEntType, etc. 

storageNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of the disk(only support IDE excluding SCSI, RAID at present)."
      ::={ storage 1 }

storageTable OBJECT-TYPE
      SYNTAX SEQUENCE OF StorageEntry
      ACCESS not-accessible
      STATUS mandatory
       DESCRIPTION
         "A table of disk descriptions."
      ::={ storage 2 }
      
storageEntry OBJECT-TYPE
      SYNTAX StorageEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of disk descriptions."

      INDEX {storageEntIndex}	
      ::={storageTable 1 }

StorageEntry ::=
      SEQUENCE{
		storageEntIndex INTEGER,
		storageEntType DisplayString (SIZE (0..255)),
		storageEntSize DisplayString (SIZE (0..255)),
		storageEntModel DisplayString (SIZE (0..255)),
		storageEntSerialNo DisplayString (SIZE (0..255)),
		storageEntCRLType DisplayString (SIZE (0..255)),
		storageEntCRLNo DisplayString (SIZE (0..255)),
		storageEntCRLFWVer  DisplayString (SIZE (0..255))

		 
      }

storageEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the storageEntry."
      ::={ storageEntry 1 }

storageEntType OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A description for the disk."
      ::={ storageEntry 2 }

storageEntSize OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the capacity of the disk in kilobytes."
      ::={ storageEntry 3 }

storageEntModel OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The is the disk model name(only support IDE excluding SCSI,RAID at present)."
      ::={ storageEntry 4 }

storageEntSerialNo OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The is the disk serial number."
      ::={ storageEntry 5 }


storageEntCRLType OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The type of the controller."
      ::={ storageEntry 6 }

storageEntCRLNo OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "An index that uniquely identifies each controller.(Primary/Slave)"
      ::={ storageEntry 7 }

storageEntCRLFWVer OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The is the IDE controller firmware revision."
      ::={ storageEntry 8 }

--  PartitionTable is composed of  Sequence of  PartitionEntry, such  as 
--  PartitionEntIndex, PartitionEntLabel, etc

partitionNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The number of the disk partitions(only for windows)."
      ::={ storage 3 }

partitionTable OBJECT-TYPE
      SYNTAX SEQUENCE OF StorageEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
            "A table of partition descriptions(only for windows)."
      ::={ storage 4 }
      
partitionEntry OBJECT-TYPE
      SYNTAX PartitionEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of partition descriptions(only for windows)."
      INDEX {partitionEntIndex}	
      ::={partitionTable 1 }

PartitionEntry ::=
      SEQUENCE{
		partitionEntIndex INTEGER,
		partitionEntPath DisplayString (SIZE (0..255)),
		partitionEntLabel DisplayString (SIZE (0..255)),
		partitionEntSize DisplayString (SIZE (0..255)),
		partitionEntUsed DisplayString (SIZE (0..255)),
		partitionEntRAID DisplayString (SIZE (0..255)),
		partitionEntFileSys DisplayString (SIZE (0..255)),
		partitionEntIsSystem INTEGER
		

		 
      }

partitionEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the partitionEntry."
      ::={ partitionEntry 1 }

partitionEntPath OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The path for the partition. For example(C:\,\dev\hda1)."
      ::={ partitionEntry 2 }


partitionEntLabel OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The label that identifies this partition(only for windows)."
      ::={ partitionEntry 3 }

partitionEntSize OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The capaticy of the partition in kilobytes."
      ::={ partitionEntry 4 }

partitionEntUsed OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The kilobytes of this partition space currently in use.(Linux can't be supported at present)"
      ::={ partitionEntry 5 }

partitionEntRAID OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The partition RAID Level(only for windows)."
      ::={ partitionEntry 6 }

partitionEntFileSys OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The file system type for the partition(NTFS/FAT32/FAT16)."
      ::={ partitionEntry 7 }

partitionEntIsSystem OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This value will make clear if this partition is system partition.
	Value 1 means it is system partition, value 0 means it is non system partition(only for windows)."
      ::={ partitionEntry 8 }

--  StorageBadSecMax, PartitionSysThreshold, PartitionNonSysThreshold defination

storageBadSecMax OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "Threshold for the bad sectors. Keep it in reserve when needed."
      ::={ storage 5 }

partitionSysThreshold OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
         "This is the system partition usage threshold as an acceptable level.When the file system usage  has exceeded the value,
	 The agent will send trap(DISK_SYSPART_EXCEED_THRESHOLD)and if the the file system usage  has returned to an acceptable level. The
	 the management can receive the trap(DISK_SYSPART_BELOW_THRESHOLD).The value is between -1 and 100.-1 means customers have no permission to set
	 system partition usage threshold."
      ::={ storage 6 }

partitionNonSysThreshold OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the non system partition usage threshold as an acceptable level.When the file system usage  has exceeded the value,
	 The agent will send trap(DISK_NONSYSPART_EXCEED_THRESHOLD)and if the the file system usage  has returned to an acceptable level. The
	 the management can receive the trap(DISK_NONSYSPART_BELOW_THRESHOLD).The value is between -1 and 100.-1 means customers have no permission to set
	 system partition usage threshold."
      ::={ storage 7}

--  Invectec.Software.ServerManagement.SysInfo.Harware.PSTable
--  PSTable is composed of  Sequence of  PSEntry, such  as 
--  PSEntIndex, PSEntManufactory etc.

 psTotalNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The number of the power supplies. Keep in reserve for use when needed."
      ::={ powerSupply 1 }

psRedundantNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The quantity if the power supply is in a redundant configuration.Keep in reserve for use when needed."
      ::={ powerSupply 2 }

psTable OBJECT-TYPE
      SYNTAX SEQUENCE OF PSEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "A table of power supply descriptions.Keep in reserve for use when needed."
      ::={ powerSupply 3 }
      
psEntry OBJECT-TYPE
      SYNTAX PSEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "A entry of power supply descriptions.Keep in reserve for use when needed."

      INDEX {psEntIndex}	
      ::={psTable 1 }

PSEntry ::=
      SEQUENCE{
		psEntIndex INTEGER,
		psEntType INTEGER,
		psEntManufactory DisplayString (SIZE (0..255)),
		psEntProductName DisplayString (SIZE (0..255)),
		psEntModelName DisplayString (SIZE (0..255)),
		psEntFHVer DisplayString (SIZE (0..255)),
		psEntSerialNo DisplayString (SIZE (0..255)),
		psEntStatus DisplayString (SIZE (0..255)),
		psEntEnable DisplayString (SIZE (0..255))
		
		
		
		

		 
      }

psEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the power supply.Keep in reserve for use when needed."
      ::={ psEntry 1 }

psEntType OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The type for the power supply.Keep in reserve for use when needed."
      ::={ psEntry 2 }

psEntManufactory OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The manufactory name for the power supply. Keep in reserve for use when needed."
      ::={ psEntry 3 }

psEntProductName OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The product name for the power supply. Keep in reserve for use when needed."
      ::={ psEntry 4 }

psEntModelName OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The power supply model name.Keep in reserve for use when needed."
      ::={ psEntry 5 }

psEntFHVer OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The power supply firmware revision. This field will be left
         blank if the firmware revision is unknown.Keep in reserve for use when needed."
      ::={ psEntry 6 }

psEntSerialNo OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The power supply serial number.Keep in reserve for use when needed."
      ::={ psEntry 7 }

psEntStatus OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The status of the power supply.Keep in reserve for use when needed."
      ::={ psEntry 8 }

psEntEnable OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The enable status of the power supply. Keep in reserve for use when needed."
      ::={ psEntry 9 }


--  Invectec.Software.ServerManagement.SysInfo.Harware.UPSTable
--  UPSTable is composed of  Sequence of  UPSEntry, such  as 
--  UPSEntIndex, UPSEntName etc.
 upsNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The number of the ups.Keep in reserve for use when needed."
      ::={ ups 1 }


upsTable OBJECT-TYPE
      SYNTAX SEQUENCE OF UPSEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
          "A table of the ups descriptions.Keep in reserve for use when needed."
      ::={ ups 2 }
      
upsEntry OBJECT-TYPE
      SYNTAX UPSEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of the ups descriptions.Keep in reserve for use when needed."
      INDEX {upsEntIndex}	
      ::={upsTable 1 }

UPSEntry ::=
      SEQUENCE{
		upsEntIndex INTEGER,
		upsEntName DisplayString (SIZE (0..255)),
		upsEntSerialNo DisplayString (SIZE (0..255)),
		upsEntProductName DisplayString (SIZE (0..255)),
		upsEntStatus INTEGER,
		upsEntRemain DisplayString (SIZE (0..255)),
		upsEntCurrent DisplayString (SIZE (0..255))

      }

upsEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the ups.Keep in reserve for use when needed."
      ::={ upsEntry 1 }

upsEntName OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The ups name (type).Keep in reserve for use when needed."
      ::={ upsEntry 2 }

upsEntSerialNo OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The is the ups serial number and can be used for identification purposes.Keep in reserve for use when needed."
      ::={ upsEntry 3 }

upsEntProductName OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        " The ups product name.Keep in reserve for use when needed."
      ::={ upsEntry 4 }

upsEntStatus OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The object represents the overall status of the ups system represented by this MIB.Keep in reserve for use when needed."
      ::={ upsEntry 5 }

upsEntRemain OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The remaining electric capacity for the ups. Keep in reserve for use when needed."
      ::={ upsEntry 6 }

upsEntCurrent  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The electric current type for the ups.Such as DC,AC.Keep in reserve for use when needed."
      ::={ upsEntry 7 }

--  PSLowPower defination
upsLowPower  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
         "ups battery low value threshold.Keep in reserve for use when needed."
      ::={ ups 3 }


--  Invectec.Software.ServerManagement.SysInfo.Harware.FanTable
--  FanTable is composed of  Sequence of  FanEntry, such  as 
--  FanEntIndex, FanEntStatus etc.

 fanNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The number of the fans."
      ::={ fan 1 }

fanTable OBJECT-TYPE
      SYNTAX SEQUENCE OF FanEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
         "A table of fan descriptions."
      ::={ fan 2 }
      
fanEntry OBJECT-TYPE
      SYNTAX FanEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of fan descriptions."

      INDEX {fanEntIndex}	
      ::={fanTable 1 }

FanEntry ::=
      SEQUENCE{
		fanEntIndex INTEGER,
		fanEntType INTEGER,
		fanEntDeviceID INTEGER,
		fanEntStatus INTEGER,
		fanEntSpeed DisplayString (SIZE (0..255)),
		fanEntDescr DisplayString (SIZE (0..255)),
		fanEntMax DisplayString (SIZE (0..255)),
		fanEntMin DisplayString (SIZE (0..255)),
		fanEntSensorNum INTEGER,
		fanSetUpperWarnnig INTEGER,
		fanSetUpperCritical INTEGER,
		fanSetLowerWarning INTEGER,
		fanSetLowerCritical INTEGER,
		fanWarningAction INTEGER,
		fanCriticalAction INTEGER,
		fanIpmiUpperWarning INTEGER,
		fanIpmiUpperCritical INTEGER,
		fanIpmiLowerWarning INTEGER,
		fanIpmiLowerCritical INTEGER

      }

fanEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the fanEntry."
      ::={ fanEntry 1 }

fanEntType OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the sensor type in INTEGER.
	Value 4 represents fan."
      ::={ fanEntry 2 }

fanEntDeviceID OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The value specifies the type of device.Such as processor etc."
      ::={ fanEntry 3 }


fanEntStatus  OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The status of the fan."
      ::={ fanEntry 4 }

fanEntSpeed  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the speed of the fan in persentage.
	if the fan's status is OffDuty, the value is unknown."
      ::={ fanEntry 5 }

fanEntDescr  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A description for the fan.
		Value (OffDuty) represents the fan has stopped running, Keep it in reserve when needed.
		value (Running) represents the fan is running. Keep it in reserve when needed."
      ::={ fanEntry 6 }

fanEntMax  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The maximal speed attained by the fan.Keep in reserve for use when needed."
      ::={ fanEntry 7 }

fanEntMin  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The minimal speed attained by the fan.Keep in reserve for use when needed."
      ::={ fanEntry 8 }

fanEntSensorNum OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "A sequence number that uniquely specifies each sensor."
      ::={ fanEntry 9 }

fanSetUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable value.When fan's current speed has exceeded the value,
	the trap(FAN_EXCEED_UPPERWARRING) will be generated.The value is between -1 and 100.
	-1 means customers have no permission to set fan upper warning threshold.Please pay 
	attention that the value must be between fanIpmiUpperWarning value and fanIpmiLowerWarning
	value.At the same time it must be above fanSetLowerWarning value."
      ::={ fanEntry 10  }

fanSetUpperCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable oid. When fan's current speed has exceeded the value,
	the trap(FAN_EXCEED_UPPERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set fan upper critical threshold.Please pay 
	attention that the value must be between fanIpmiUpperCritical value and fanIpmiUpperWarning
	value."
      ::={ fanEntry 11 }

fanSetLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
	"This is the customer changeable oid. When fan's current speed is below the value,
	the trap(FAN_BELOW_LOWERWARRING) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set fan lower warning threshold. Please pay 
	attention that the value must be between fanIpmiUpperWarning value and fanIpmiLowerWarning
	value. At the same time it must be below fanSetUpperWarning value."
        
      ::={ fanEntry 12 }

fanSetLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
	"This is the customer changeable oid. When fan's current speed is below the value,
	the trap(FAN_BELOW_LOWERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set fan lower critical threshold. Please pay 
	attention that the value must be between fanIpmiLowerWarning value and fanIpmiLowerCritical
	value."
        
      ::={ fanEntry 13 }

fanWarningAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the fan's speed arrive at the warning threshold."
      ::={ fanEntry 14 }

fanCriticalAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the fan's speed arrive at the critical threshold."
      ::={ fanEntry 15 }

fanIpmiUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the fan default upper warning threshold ."
      ::={ fanEntry 16 }

fanIpmiUpperCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the fan default upper critical threshold ."
      ::={ fanEntry 17 }

fanIpmiLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the fan default lower warning threshold ."
      ::={ fanEntry 18 }

fanIpmiLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the fan default lower critical threshold ."
      ::={ fanEntry 19 }

--  Invectec.Software.ServerManagement.SysInfo.Harware.VoltageTable
--  VoltageTable is composed of  Sequence of  VoltageEntry, such  as 
--  VoltageEntIndex, VoltageEntDescr etc.

voltageNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The number of the voltage sensors."
      ::={ voltage 1 }

voltageTable OBJECT-TYPE
      SYNTAX SEQUENCE OF VoltageEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
          "A table of voltage sensor descriptions."
      ::={ voltage 2 }
      
voltageEntry OBJECT-TYPE
      SYNTAX VoltageEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of voltage sensor descriptions."

      INDEX {voltageEntIndex}	
      ::={voltageTable 1 }

VoltageEntry ::=
      SEQUENCE{
		voltageEntIndex INTEGER,
		voltageEntType INTEGER,
		voltageEntDeviceID INTEGER,
		voltageEntDescr DisplayString (SIZE (0..255)),
		voltageEntStatus INTEGER,
		voltageEntCurrent DisplayString (SIZE (0..255)),
		voltageEntMax DisplayString (SIZE (0..255)),
		voltageEntMin DisplayString (SIZE (0..255)),
		voltageEntSensorNum INTEGER,
		voltageSetUpperWarning INTEGER,
		voltageSetUpperCritical INTEGER,
		voltageSetLowerWarning INTEGER,
		voltageSetLowerCritical INTEGER,
		voltageWarningAction INTEGER,
		voltageCriticalAction INTEGER,
		voltageIpmiUpperWarning INTEGER,
		voltageIpmiUpperCritical INTEGER,
		voltageIpmiLowerWarning INTEGER,
		voltageIpmiLowerCritical INTEGER
		
      }

voltageEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the voltage sensor."
      ::={ voltageEntry 1 }

voltageEntType OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the sensor type in INTEGER.
	Value 2 represents voltage sensor."
      ::={ voltageEntry 2 }

voltageEntDeviceID OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the type of voltage sensor. Such as processor etc."
      ::={ voltageEntry 3 }


voltageEntDescr  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A description for the voltage sensor."
      ::={ voltageEntry 4 }

voltageEntStatus  OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The status for the voltage sensor."
      ::={ voltageEntry 5 }

voltageEntCurrent  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The current reading for the voltage sensor."
      ::={ voltageEntry 6 }

voltageEntMax  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The maximal reading attained by the voltage sensor.Keep in reserve for use when needed."
      ::={ voltageEntry 7 }


voltageEntMin  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The minimal reading attained by the voltage sensor. Keep in reserve for use when needed."
      ::={ voltageEntry 8 }


voltageEntSensorNum OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "A sequence number that uniquely specifies each sensor."
      ::={ voltageEntry 9 }




voltageSetUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable value. When voltage's current reading has exceeded the value,
	the trap(VOLTAGE_EXCEED_UPPERWARRING) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set voltage upper warning threshold. Please pay 
	attention that the value must be between voltageIpmiUpperWarning value and voltageIpmiLowerWarning
	value. At the same time it must be above voltageSetLowerWarning value."
      ::={ voltageEntry 10 }

voltageSetUpperCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable oid. When voltage's current reading has exceeded the value,
	the trap(VOLTAGE_EXCEED_UPPERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set voltage upper critical threshold. Please pay 
	attention that the value must be between voltageIpmiUpperCritical value and voltageIpmiUpperWarning
	value."
      ::={ voltageEntry 11 }

voltageSetLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable oid. When voltage's current reading is below the value,
	the trap(VOLTAGE_BELOW_LOWERWARRING) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set voltage lower warning threshold. Please pay 
	attention that the value must be between voltageIpmiUpperWarning value and voltageIpmiLowerWarning
	value. At the same time it must be below voltageSetUpperWarning value."
      ::={ voltageEntry 12 }

voltageSetLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable oid. When voltage's current reading is below the value,
	the trap(VOLTAGE_BELOW_LOWERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set voltage lower critical threshold. Please pay 
	attention that the value must be between voltageIpmiLowerWarning and voltageIpmiLowerCritical."
      ::={ voltageEntry 13 }

voltageWarningAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the voltage's reading arrives at the warning threshold."
      ::={ voltageEntry 14 }

voltageCriticalAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the voltage's reading arrives at the critical threshold."
      ::={ voltageEntry 15 }

voltageIpmiUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the volatage default upper warning threshold."
      ::={ voltageEntry 16 }

voltageIpmiUpperCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the volatage default upper critical threshold."
      ::={ voltageEntry 17 }

voltageIpmiLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the volatage default lower warning threshold."
      ::={ voltageEntry 18 }

voltageIpmiLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the volatage default lower critical threshold ."
      ::={ voltageEntry 19 }

--  Invectec.Software.ServerManagement.SysInfo.Harware.sensorTable
--  snsorTable is composed of  Sequence of  sensorEntry, such  as 
--  SensorEntIndex, SensorEntDescr etc.
  
sensorNumber OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
         "The numeber of the temperature sensors."
      ::={ temperature 1 }
      
sensorTable OBJECT-TYPE
      SYNTAX SEQUENCE OF SensorEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
           "A table of temperature sensor descriptions."
      ::={ temperature 2 }
      
sensorEntry OBJECT-TYPE
      SYNTAX SensorEntry
      ACCESS not-accessible
      STATUS mandatory
      DESCRIPTION
        "An entry of temperature sensor descriptions."
      INDEX {sensorEntIndex}	
      ::={sensorTable 1 }

SensorEntry ::=
      SEQUENCE{
		sensorEntIndex INTEGER,
		sensorEntType INTEGER,
		sensorEntDeviceID INTEGER,
		sensorEntDescr DisplayString (SIZE (0..255)),
		sensorEntStatus INTEGER,
		sensorEntCurrent DisplayString (SIZE (0..255)),
		sensorEntMax DisplayString (SIZE (0..255)),
		sensorEntMin DisplayString (SIZE (0..255)),
		sensorEntNum INTEGER,
		sensorSetUpperWarning INTEGER,
		sensorSetUpperCritical INTEGER,
		sensorSetLowerWarning INTEGER,
		sensorSetLowerCritical INTEGER,
		sensorWarningAction INTEGER,
		sensorCriticalAction INTEGER,
		sensorIpmiUpperWarning INTEGER,
		sensorIpmiUpperCritical INTEGER,
		sensorIpmiLowerWarning INTEGER,
		sensorIpmiLowerCritical INTEGER
		

      }

sensorEntIndex OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The sequence number of the temperature sensor."
      ::={ sensorEntry 1 }

sensorEntType OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the sensor type in INTEGER.
	Value 1 represents temperature sensor."
      ::={ sensorEntry 2 }

sensorEntDeviceID OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This specifies the type of temperature sensor. Such as processor etc."
      ::={ sensorEntry 3 }

sensorEntDescr  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A description for the temperature sensor."
      ::={ sensorEntry 4 }

sensorEntStatus  OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The status for the temperature sensor."
      ::={ sensorEntry 5 }

sensorEntCurrent  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The current reading of the temperature sensor."
      ::={ sensorEntry 6 }

sensorEntMax  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The maximal reading attained by the temperature sensor. Keep in reserve for use when needed."
      ::={ sensorEntry 7 }

sensorEntMin  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "The minimal reading attained by the temperature sensor. Keep in reserve for use when needed."
      ::={ sensorEntry 8 }

sensorEntNum  OBJECT-TYPE
      SYNTAX DisplayString (SIZE (0..255))
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "A sequence number that uniquely specifies each sensor."
      ::={ sensorEntry 9 }

sensorSetUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable value. When temperature's current reading has exceeded the value,
	the trap(TEMP_EXCEED_UPPERWARRING) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set temperature upper warning threshold. Please pay 
	attention that the value must be between sensorIpmiUpperWarning value and sensorIpmiLowerWarning
	value. At the same time it must be above sensorSetLowerWarning value."
      ::={ sensorEntry 10 }

sensorSetUpperCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
         "This is the customer changeable oid. When temperature's current reading has exceeded the value,
	the trap(TEMP_EXCEED_UPPERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set temperature upper critical threshold. Please pay 
	attention that the value must be between sensorIpmiUpperCritical value and sensorIpmiUpperWarning
	value."
      ::={ sensorEntry 11 }

sensorSetLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This is the customer changeable oid. When temperature's current reading is below the value,
	the trap(TEMP_BELOW_LOWERWARRING) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set temparature lower warning threshold. Please pay 
	attention that the value must be between sensorIpmiUpperWarning value and sensorIpmiLowerWarning
	value. At the same time it must be below sensorSetUpperWarning value."
      ::={ sensorEntry 12 }

sensorSetLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
       	"This is the customer changeable oid. When temperature's current reading is below the value,
	the trap(TEMP_BELOW_LOWERCRITICAL) will be generated. The value is between -1 and 100.
	-1 means customers have no permission to set temperature lower critical threshold. Please pay 
	attention that the value must be between sensorIpmiLowerWarning and sensorIpmiLowerCritical."

      ::={ sensorEntry 13 }

sensorWarningAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the temperature's reading arrives at the warning threshold."
      ::={ sensorEntry 14 }

sensorCriticalAction OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-write
      STATUS mandatory
      DESCRIPTION
        "This value represents the corresponding reaction when the temperature's reading arrives at the critical threshold."
      ::={ sensorEntry 15 }

sensorIpmiUpperWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the temperature default upper warning threshold ."
      ::={ sensorEntry 16 }

sensorIpmiUpperCritical OBJECT-TYPE 
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the temperature default upper critical threshold ."
      ::={ sensorEntry 17 }

sensorIpmiLowerWarning OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the temperature default lower warning threshold ."
      ::={ sensorEntry 18 }

sensorIpmiLowerCritical OBJECT-TYPE
      SYNTAX INTEGER
      ACCESS read-only
      STATUS mandatory
      DESCRIPTION
        "This is the temperature default lower critical threshold ."
      ::={ sensorEntry 19 }

END
