
NAS-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      enterprises, Counter, TimeTicks
         FROM RFC1155-SMI
      Integer32, Counter32, IpAddress, Unsigned32, Counter64, OBJECT-TYPE
         FROM SNMPv2-SMI
      TRAP-TYPE
         FROM RFC-1215;

      -- From RFC-1213 (MIB-II)
      DisplayString ::= OCTET STRING

    storage     OBJECT IDENTIFIER ::= { enterprises 24681 }
    storageSystem        OBJECT IDENTIFIER ::= { storage 1 }

 -- Frame Relay Multiplexer MIB groups
 -- system Event
   systemEventMsg        OBJECT IDENTIFIER ::= { storageSystem 1 }

 -- system event
   eventInformMsg OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "Information event of NAS system."
     ::= { systemEventMsg 101 }

   eventWarningMsg OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "Warning event of NAS system."
      ::= { systemEventMsg 102 }

   eventErrorMsg OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "Error event of NAS system."
      ::= { systemEventMsg 103 }

	systemTraps OBJECT IDENTIFIER ::= { storageSystem  10 }
	
	eventInform TRAP-TYPE
		ENTERPRISE systemTraps    
		VARIABLES { eventInformMsg }
		DESCRIPTION
			"Info: %s"
		::=  1

	eventWarning TRAP-TYPE
		ENTERPRISE systemTraps    
		VARIABLES { eventWarningMsg }
		DESCRIPTION 
			"Warn: %s"
		::=  2

	eventError TRAP-TYPE
		ENTERPRISE systemTraps
		VARIABLES { eventErrorMsg }
		DESCRIPTION 
			"Error: %s"
		::=  4

 -- system inform
	systemInfo        OBJECT IDENTIFIER ::= { storageSystem 2 }

	systemCPU-Usage OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System CPU usage"
		::= { systemInfo 1 }
	systemTotalMem OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System total memory"
		::= { systemInfo 2 }
	systemFreeMem OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System free memory"
		::= { systemInfo 3 }
	systemUptime OBJECT-TYPE
    	SYNTAX     TimeTicks
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
        	"The amount of time since this host was last
	        initialized.  Note that this is different from
    	    sysUpTime in the SNMPv2-MIB [RFC1907] because
        	sysUpTime is the uptime of the network management
	        portion of the system."
    	::= { systemInfo 4 }
	cpu-Temperature OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"CPU temperature"
		::= { systemInfo 5 }
	systemTemperature OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System temperature"
		::= { systemInfo 6 }

ifNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of network interfaces (regardless of
            their current state) present on this system."
    ::= { systemInfo 8 }
systemIfTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF IfEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of IfNumber."
    ::= { systemInfo 9 }
ifEntry OBJECT-TYPE
    SYNTAX  IfEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An interface entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { ifIndex }
    ::= { systemIfTable 1 }
IfEntryDef ::=
    SEQUENCE {
        ifIndex
            INTEGER,
        ifDescr
            DisplayString,
		ifPacketsReceived
            Counter,
		ifPacketsSent
            Counter,
		ifErrorPackets
            Counter
	}
ifIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each interface.  Its value
            ranges between 1 and the value of IfNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { ifEntry 1 }
ifDescr OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { ifEntry 2 }
ifPacketsReceived OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System packets received."
    ::= { ifEntry 3 }
ifPacketsSent OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System packets sent."
    ::= { ifEntry 4 }
ifErrorPackets OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System error packets."
    ::= { ifEntry 5 }

hdNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of hard drive slots."
    ::= { systemInfo 10 }
systemHdTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF HdEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of HdNumber."
    ::= { systemInfo 11 }
hdEntry OBJECT-TYPE
    SYNTAX  HdEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An interface entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { hdIndex }
    ::= { systemHdTable 1 }
HdEntryDef ::=
    SEQUENCE {
        hdIndex
            INTEGER,
        hdDescr
            DisplayString,
        hdTemperature
            DisplayString,
        hdStatus
            INTEGER,
	hdModel DisplayString,
	hdCapacity DisplayString,
	hdSmartInfo DisplayString
	}
hdIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each hard disk.  Its value
            ranges between 1 and the value of IfNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { hdEntry 1 }
hdDescr OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { hdEntry 2 }
hdTemperature OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "Hard disk temperature."
    ::= { hdEntry 3 }
hdStatus OBJECT-TYPE
    SYNTAX     INTEGER {
	ready(0),
	noDisk(-5),
	invalid(-6),
	rwError(-9),
	unknown(-4)
	}
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "HDD status. 0:not availible, 1:availible."
    ::= { hdEntry 4 }
hdModel OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk model."
    ::= { hdEntry 5 }
hdCapacity OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk capacity."
    ::= { hdEntry 6 }
hdSmartInfo OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk SMART information."
    ::= { hdEntry 7 }

	modelName OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"Model name"
		::= { systemInfo 12 }
	hostName OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"Model name"
		::= { systemInfo 13 }

sysFanNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of system fan (regardless of
            their current state) present on this system."
    ::= { systemInfo 14 }
systemFanTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF SysFanEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of SysFanNumber."
    ::= { systemInfo 15 }
sysFanEntry OBJECT-TYPE
    SYNTAX  SysFanEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system fan entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { sysFanIndex }
    ::= { systemFanTable 1 }
SysFanEntryDef ::=
    SEQUENCE {
        sysFanIndex
            INTEGER,
        sysFanDescr
            DisplayString,
		sysFanSpeed
            DisplayString
	}
sysFanIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each system fan. Its value
            ranges between 1 and the value of SysFanNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { sysFanEntry 1 }
sysFanDescr OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { sysFanEntry 2 }
sysFanSpeed OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System fan speed."
    ::= { sysFanEntry 3 }

sysVolumeNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of system volumes (regardless of
            their current state) present on this system."
    ::= { systemInfo 16 }
systemVolumeTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF SysVolumeEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of volume entries.  The number of
            entries is given by the value of SysVolumeNumber."
    ::= { systemInfo 17 }
sysVolumeEntry OBJECT-TYPE
    SYNTAX  SysVolumeEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system volume entry"
    INDEX   { sysVolumeIndex }
    ::= { systemVolumeTable 1 }
SysVolumeEntryDef ::=
    SEQUENCE {
        sysVolumeIndex	INTEGER,
        sysVolumeDescr	DisplayString,
	sysVolumeFS	DisplayString,
	sysVolumeTotalSize	DisplayString,
	sysVolumeFreeSize	DisplayString,
	sysVolumeStatus	DisplayString
	}
sysVolumeIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each system volume. Its value
            ranges between 1 and the value of SysVolumeNumber.  The
            value for each volume must remain constant at
            least from one re-initialization of the entity's
            volume system to the next re-initialization."
    ::= { sysVolumeEntry 1 }
sysVolumeDescr OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"A textual string containing information about the volume."
    ::= { sysVolumeEntry 2 }
sysVolumeFS OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..15))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume file system."
    ::= { sysVolumeEntry 3 }
sysVolumeTotalSize OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..15))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume total size."
    ::= { sysVolumeEntry 4 }
sysVolumeFreeSize OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..15))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume free size."
    ::= { sysVolumeEntry 5 }
sysVolumeStatus OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume status."
    ::= { sysVolumeEntry 6 }


    
 -- system inform Ex
	systemInfoEx        OBJECT IDENTIFIER ::= { storageSystem 3 }

	systemCPU-UsageEX OBJECT-TYPE
		SYNTAX Integer32
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"system CPU usage"
		::= { systemInfoEx 1 }
	systemTotalMemEX OBJECT-TYPE
		SYNTAX Counter64
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System total memory in byte"
		::= { systemInfoEx 2 }
	systemFreeMemEX OBJECT-TYPE
		SYNTAX Counter64
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System free memory in byte"
		::= { systemInfoEx 3 }
	systemUptimeEX OBJECT-TYPE
    	SYNTAX     TimeTicks
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
        	"The amount of time since this host was last
	        initialized.  Note that this is different from
    	    sysUpTime in the SNMPv2-MIB [RFC1907] because
        	sysUpTime is the uptime of the network management
	        portion of the system."
    	::= { systemInfoEx 4 }
	cpu-TemperatureEX OBJECT-TYPE
		SYNTAX Integer32
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"CPU temperature in centigrade"
		::= { systemInfoEx 5 }
	systemTemperatureEX OBJECT-TYPE
		SYNTAX Integer32
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"System temperature in centigrade"
		::= { systemInfoEx 6 }

ifNumberEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of network interfaces (regardless of
            their current state) present on this system."
    ::= { systemInfoEx 8 }
systemIfTableEx OBJECT-TYPE
    SYNTAX  SEQUENCE OF IfEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of IfNumber."
    ::= { systemInfoEx 9 }
ifEntryEx OBJECT-TYPE
    SYNTAX  IfEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An interface entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { ifIndexEX }
    ::= { systemIfTableEx 1 }
IfEntryExDef ::=
    SEQUENCE {
        ifIndexEX
            INTEGER,
        ifDescrEX
            DisplayString,
		ifPacketsReceivedEX
            Counter,
		ifPacketsSentEX
            Counter,
		ifErrorPacketsEX
            Counter
	}
ifIndexEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each interface.  Its value
            ranges between 1 and the value of IfNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { ifEntryEx 1 }
ifDescrEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { ifEntryEx 2 }
ifPacketsReceivedEX OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System packets received."
    ::= { ifEntryEx 3 }
ifPacketsSentEX OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System packets sent."
    ::= { ifEntryEx 4 }
ifErrorPacketsEX OBJECT-TYPE
    SYNTAX  Counter
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System error packets."
    ::= { ifEntryEx 5 }

hdNumberEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of hard drive slots."
    ::= { systemInfoEx 10 }
systemHdTableEX OBJECT-TYPE
    SYNTAX  SEQUENCE OF HdEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of HdNumber."
    ::= { systemInfoEx 11 }
hdEntryEx OBJECT-TYPE
    SYNTAX  HdEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An interface entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { hdIndex }
    ::= { systemHdTableEX 1 }
HdEntryExDef ::=
    SEQUENCE {
        hdIndexEX
            INTEGER,
        hdDescrEX
            DisplayString,
        hdTemperatureEX
            Integer32,
        hdStatusEX
            INTEGER,
	hdModelEX DisplayString,
	hdCapacityEX Counter64,
	hdSmartInfoEX DisplayString
	}
hdIndexEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each hard disk.  Its value
            ranges between 1 and the value of IfNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { hdEntryEx 1 }
hdDescrEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { hdEntryEx 2 }
hdTemperatureEX OBJECT-TYPE
    SYNTAX  Integer32
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "Hard disk temperature in centigrade."
    ::= { hdEntryEx 3 }
hdStatusEX OBJECT-TYPE
    SYNTAX     INTEGER {
	ready(0),
	noDisk(-5),
	invalid(-6),
	rwError(-9),
	unknown(-4)
	}
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "HDD status. 0:not availible, 1:availible."
    ::= { hdEntryEx 4 }
hdModelEX OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk model."
    ::= { hdEntryEx 5 }
hdCapacityEX OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk capacity in byte."
    ::= { hdEntryEx 6 }
hdSmartInfoEX OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION "Hard disk SMART information."
    ::= { hdEntryEx 7 }

	modelNameEX OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"Model name"
		::= { systemInfoEx 12 }
	hostNameEX OBJECT-TYPE
		SYNTAX DisplayString
    	MAX-ACCESS read-only
	    STATUS     current
    	DESCRIPTION
			"Model name"
		::= { systemInfoEx 13 }

sysFanNumberEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of system fan (regardless of
            their current state) present on this system."
    ::= { systemInfoEx 14 }
systemFanTableEx OBJECT-TYPE
    SYNTAX  SEQUENCE OF SysFanEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of SysFanNumber."
    ::= { systemInfoEx 15 }
sysFanEntryEx OBJECT-TYPE
    SYNTAX  SysFanEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system fan entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { sysFanIndexEX }
    ::= { systemFanTableEx 1 }
SysFanEntryExDef ::=
    SEQUENCE {
        sysFanIndexEX
            INTEGER,
        sysFanDescrEX
            DisplayString,
		sysFanSpeedEX
            Integer32
	}
sysFanIndexEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each system fan. Its value
            ranges between 1 and the value of SysFanNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
    ::= { sysFanEntryEx 1 }
sysFanDescrEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
    ::= { sysFanEntryEx 2 }
sysFanSpeedEX OBJECT-TYPE
    SYNTAX  Integer32
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "System fan speed (RPM)."
    ::= { sysFanEntryEx 3 }

sysVolumeNumberEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The number of system volumes (regardless of
            their current state) present on this system."
    ::= { systemInfoEx 16 }
systemVolumeTableEx OBJECT-TYPE
    SYNTAX  SEQUENCE OF SysVolumeEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of volume entries.  The number of
            entries is given by the value of SysVolumeNumber."
    ::= { systemInfoEx 17 }
sysVolumeEntryEx OBJECT-TYPE
    SYNTAX  SysVolumeEntryExDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system volume entry"
    INDEX   { sysVolumeIndexEX }
    ::= { systemVolumeTableEx 1 }
SysVolumeEntryExDef ::=
    SEQUENCE {
        sysVolumeIndexEX	INTEGER,
        sysVolumeDescrEX	DisplayString,
	sysVolumeFSEX	DisplayString,
	sysVolumeTotalSizeEX	Counter64,
	sysVolumeFreeSizeEX	Counter64,
	sysVolumeStatusEX	DisplayString
	}
sysVolumeIndexEX OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique value for each system volume. Its value
            ranges between 1 and the value of SysVolumeNumber.  The
            value for each volume must remain constant at
            least from one re-initialization of the entity's
            volume system to the next re-initialization."
    ::= { sysVolumeEntryEx 1 }
sysVolumeDescrEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"A textual string containing information about the volume."
    ::= { sysVolumeEntryEx 2 }
sysVolumeFSEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..15))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume file system."
    ::= { sysVolumeEntryEx 3 }
sysVolumeTotalSizeEX OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume total size in byte."
    ::= { sysVolumeEntryEx 4 }
sysVolumeFreeSizeEX OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume free size in byte."
    ::= { sysVolumeEntryEx 5 }
sysVolumeStatusEX OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"System Volume status."
    ::= { sysVolumeEntryEx 6 }

 -- storageSystemEx inform
	storageSystemEx        OBJECT IDENTIFIER ::= { storageSystem 4 }      
	systemSettings        OBJECT IDENTIFIER ::= { storageSystemEx 1 } 
	storageManager        OBJECT IDENTIFIER ::= { systemSettings 1 }
	systemStatus          OBJECT IDENTIFIER ::= { systemSettings 11 }    
	nasStorage        OBJECT IDENTIFIER ::= { storageManager 1 }     
	components        OBJECT IDENTIFIER ::= { nasStorage 1 }       
	enclosure         OBJECT IDENTIFIER ::= { components 1 } 
    systemFan         OBJECT IDENTIFIER ::= { components 2 } 
    systemPower       OBJECT IDENTIFIER ::= { components 3 }     
    cpu               OBJECT IDENTIFIER ::= { components 4 } 
	disk              OBJECT IDENTIFIER ::= { components 5 }
	msataDisk              OBJECT IDENTIFIER ::= { components 6 }
	
	storageSpace        OBJECT IDENTIFIER ::= { nasStorage 2 }
	raid        OBJECT IDENTIFIER ::= { storageSpace 1 }      
	pool        OBJECT IDENTIFIER ::= { storageSpace 2 }  
	volume        OBJECT IDENTIFIER ::= { storageSpace 3 }  

	cacheAcceleration   OBJECT IDENTIFIER ::= { nasStorage 3 }
    
	iSCSI        OBJECT IDENTIFIER ::= { storageManager 2 }   
	iSCSIStorage        OBJECT IDENTIFIER ::= { iSCSI 1 }   
	lun                 OBJECT IDENTIFIER ::= { iSCSIStorage 10 }
	target              OBJECT IDENTIFIER ::= { iSCSIStorage 11 }   
    
    resourceMonitor        OBJECT IDENTIFIER ::= { systemStatus 5 }
    diskPerformance        OBJECT IDENTIFIER ::= { resourceMonitor 6 }    

iSCSIService OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"iSCSI Service."
    ::= { iSCSIStorage 1 }  

iSCSIServicePort OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"iSCSI ServicePort."
    ::= { iSCSIStorage 2 }  
    
iSNSService OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"iSNS Service."
    ::= { iSCSIStorage 3 }  
    
iSNSIP OBJECT-TYPE
    SYNTAX  IpAddress
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"iSNS IP."
    ::= { iSCSIStorage 4 }   


    
-- LUNTable
lunNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of LUNs (regardless of
            their current state) present on this system."
    ::= { lun 1 }

lunTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF LUNTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of LUN entries. The number of
            entries is given by the value of LUNNumber."
    ::= { lun 2 }
lunTableEntry OBJECT-TYPE
    SYNTAX  LUNTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An LUN entry."
    INDEX   { lunIndex }
    ::= { lunTable 1 }
LUNTableEntryDef ::=
    SEQUENCE {
        lunIndex
            INTEGER,
        lunID
            INTEGER,
		lunCapacity
            Counter64,
        lunUsedPercent
            INTEGER,
        lunStatus
            DisplayString,
        lunName
            DisplayString,
        lunBackupStatus
            INTEGER,            
        lunIsMap
            INTEGER
	}  
lunIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUNIndex."
    ::= { lunTableEntry 1 }  
    
lunID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUNID."
    ::= { lunTableEntry 2 }  
  
lunCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN capacity in byte."
    ::= { lunTableEntry 3 }    

lunUsedPercent OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN used percent."
    ::= { lunTableEntry 4 }
    
lunStatus OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN status."
    ::= { lunTableEntry 5 }    

lunName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN name."
    ::= { lunTableEntry 6 }  
 
 
lunBackupStatus OBJECT-TYPE
    SYNTAX  INTEGER{
                   none(0),       
                   backup(1),
                   restore(2),       
                   snapshot(3)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN backup status."
    ::= { lunTableEntry 7 } 
    
lunIsMap OBJECT-TYPE
    SYNTAX  INTEGER{
                   unmapped(0),       
                   mapped(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"LUN is Mapped."
    ::= { lunTableEntry 8 }
    
    
-- targeTable
targetNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of Targets (regardless of
            their current state) present on this system."
    ::= { target 1 }
targeTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of Target entries.  The number of
            entries is given by the value of TargetNumber."
    ::= { target 2 }
targeTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A target entry."
    INDEX   { targetIndex }
    ::= { targeTable 1 }
TargeTableEntryDef ::=
    SEQUENCE {
        targetIndex
            INTEGER,
        targetID
            INTEGER,
        targetName
            DisplayString,
		targetIQN
            DisplayString,
		targetStatus
            INTEGER
	}  

targetIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"TargetIndex."
    ::= { targeTableEntry 1 }  
    
targetID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"TargetID."
    ::= { targeTableEntry 2 }  

targetName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Target name."
    ::= { targeTableEntry 3 }  
    
targetIQN OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"TargetIQN."
    ::= { targeTableEntry 4 }    

targetStatus OBJECT-TYPE
    SYNTAX  INTEGER{
                   offline(-1),
                   ready(0),       
                   connected(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Target status."
    ::= { targeTableEntry 5 }     

-- volumeTable
volumeNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of volumes (regardless of
            their current state) present on this system."
    ::= { volume 1 }
volumeTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF VolumeTableEntryDef
    ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A list of volume entries.  The number of
            entries is given by the value of VolumeNumber."
    ::= { volume 2 }
volumeTableEntry OBJECT-TYPE
    SYNTAX  VolumeTableEntryDef
    ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "An volume entry."
    INDEX   { volumeIndex }
    ::= { volumeTable 1 }
VolumeTableEntryDef ::=
    SEQUENCE {
        volumeIndex
            INTEGER,
        volumeID
            INTEGER,
        volumeCapacity
            Counter64,  
        volumeFreeSize
            Counter64,
        volumeStatus
            DisplayString,
--        VolumeThreshold
--            INTEGER,
        volumeSSDCache
            INTEGER,  
        volumeThin
            INTEGER,
        volumeName
            DisplayString
	}   
volumeIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"VolumeIndex."
    ::= { volumeTableEntry 1 }    

volumeID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"VolumeID."
    ::= { volumeTableEntry 2 }   

volumeCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"Volume capacity in byte."
    ::= { volumeTableEntry 3 }      
    
volumeFreeSize OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"Volume freesize in byte."
    ::= { volumeTableEntry 4 }        
 
volumeStatus OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"Volume status"
    ::= { volumeTableEntry 5 }   

-- VolumeThreshold OBJECT-TYPE
--     SYNTAX  INTEGER
--     ACCESS  read-only
--     STATUS  current
--     DESCRIPTION	"Volume threshold."
--     ::= { PoolTableEntry 6 } 
    
volumeSSDCache OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"If volume enable SSDCache acceleration."
    ::= { volumeTableEntry 6 } 

volumeThin OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"If volume is thin type."
    ::= { volumeTableEntry 7 }   

volumeName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"Volume alias name."
    ::= { volumeTableEntry 8 }    
    
-- poolTable
poolNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of pools (regardless of
            their current state) present on this system."
    ::= { pool 1 }

poolTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF PoolTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of pool entries. The number of entries is given by the value of PoolNumber."
    ::= { pool 2 }
poolTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An pool entry."
    INDEX   { poolIndex }
    ::= { poolTable 1 }
PoolTableEntryDef ::=
    SEQUENCE {
        poolIndex
            INTEGER,
        poolID
            INTEGER,
        poolCapacity
            Counter64,  
        poolFreeSize
            Counter64,
        poolStatus
--            INTEGER, 
--        PoolThreshold
--            INTEGER,
--        PoolAllocated
--            INTEGER,    
--        PoolRAIDList
--            INTEGER,  
--        PoolVolumeList
            INTEGER  
	} 
poolIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"PoolIndex."
    ::= { poolTableEntry 1 }      
    
poolID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"PoolID."
    ::= { poolTableEntry 2 }  

poolCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Pool capacity in byte."
    ::= { poolTableEntry 3 }      
  
poolFreeSize OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Pool freesize in byte."
    ::= { poolTableEntry 4 }       

poolStatus OBJECT-TYPE
    SYNTAX  INTEGER{
                   ready(0),       
                   warning(-1),
                   notReady(-2),
                   error(-3)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Pool status."
    ::= { poolTableEntry 5 }    
    
--PoolThreshold OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"PoolThreshold."
--    ::= { PoolTableEntry 6 }  
    
--PoolAllocated OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"PoolAllocated."
--    ::= { PoolTableEntry 7 }      

--PoolRAIDList OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"PoolRAIDList."
--    ::= { PoolTableEntry 8 }      
    
--PoolVolumeList OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"PoolVolumeList."
--    ::= { PoolTableEntry 9 }   
 
-- raidGroupTable
raidNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of RAIDs (regardless of
            their current state) present on this system."
    ::= { raid 1 }
    
raidGroupTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF RAIDGroupTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
             "A list of RAID entries. The number of 
             entries is given by the value of RAIDNumber." 
    ::= { raid 2 }
raidGroupTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An RAID entry."
    INDEX   { raidIndex }
    ::= { raidGroupTable 1 }
RAIDGroupTableEntryDef ::=
    SEQUENCE {
        raidIndex
            INTEGER,    
        raidID
            INTEGER,
        raidCapacity
            Counter64,
        raidFreeSize
            Counter64,
        raidStatus
            DisplayString,
        raidBitmap
            INTEGER,
        raidLevel
            DisplayString
--        RAIDDiskList
--            INTEGER,
--        RAIDSpareList
--            INTEGER

	}  
raidIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAIDIndex."
    ::= { raidGroupTableEntry 1 }
    
raidID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAIDID."
    ::= { raidGroupTableEntry 2 }

raidCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAID capacity  in byte."
    ::= { raidGroupTableEntry 3 }
 
raidFreeSize OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAID freesize in byte."
    ::= { raidGroupTableEntry 4 }

raidStatus OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAID status."
    ::= { raidGroupTableEntry 5 }
    
raidBitmap OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAID bitmap."
    ::= { raidGroupTableEntry 6 }

raidLevel OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"RAID level."
    ::= { raidGroupTableEntry 7 }

--RAIDDiskList OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"RAIDDiskList."
--    ::= { RAIDGroupTableEntry 8 }
--
--RAIDSpareList OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"RAIDSpareList."
--    ::= { RAIDGroupTableEntry 9 }
 
--cacheAcceleration 
service OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "If service of cache is enabled."
    ::= { cacheAcceleration 1 } 
    
availablePercent OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Available percent of cache."
    ::= { cacheAcceleration 2 } 

readHitRate OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Read hit rate percent of cache."
    ::= { cacheAcceleration 3 } 
 
writeHitRate OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Write hit rate percent of cache."
    ::= { cacheAcceleration 4 } 
 
status OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Status of cache."
    ::= { cacheAcceleration 5 } 
 
-- diskTable
diskNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of disks (regardless of
            their current state) present on this system."
    ::= { disk 1 }
    
diskTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF DiskTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of disks.  The number of
            entries is given by the value of DiskNumber."
    ::= { disk 2 }
diskTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A disk entry."
    INDEX   { diskIndex }
    ::= { diskTable 1 }
DiskTableEntryDef ::=
    SEQUENCE {
        diskIndex
            INTEGER,    
        diskID
            INTEGER,
        diskEnclosureID
            INTEGER,
        diskSummary
            DisplayString,
        diskSmartInfo
            INTEGER, 
        diskTemperture
            INTEGER, 
        diskGlobalSpare
            INTEGER,             
        diskModel
            DisplayString, 
        diskCapacity
            Counter64       
	} 
diskIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskIndex."
    ::= { diskTableEntry 1 } 
    
diskID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskID."
    ::= { diskTableEntry 2 } 
 
diskEnclosureID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"disk EnclosureID."
    ::= { diskTableEntry 3 }     

diskSummary OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskSummary. 'Good',''Warning','Abnormal'"
    ::= { diskTableEntry 4 } 
    
diskSmartInfo OBJECT-TYPE
    SYNTAX  INTEGER{
                   abnormal(2),
                   warning(1),
                   good(0),
                   error(-1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskSmartInfo."
    ::= { diskTableEntry 5 } 

diskTemperture OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskTemperture."
    ::= { diskTableEntry 6 } 
    
diskGlobalSpare OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskGlobalSpare."
    ::= { diskTableEntry 7 } 
    
diskModel OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskModel."
    ::= { diskTableEntry 8 }  
    
diskCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskCapacity."
    ::= { diskTableEntry 9 }    

-- msataDiskTable
msataDiskNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of msatadisks (regardless of
            their current state) present on this system."
    ::= { msataDisk 1 }
    
msataDiskTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF MsataDiskTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of msatadisks.  The number of
            entries is given by the value of msataDiskNumber."
    ::= { msataDisk 2 }
msataDiskTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A disk entry."
    INDEX   { msataDiskIndex }
    ::= { msataDiskTable 1 }
MsataDiskTableEntryDef ::=
    SEQUENCE {
        msataDiskIndex
            INTEGER,    
        msataDiskID
            INTEGER,
        msataDiskEnclosureID
            INTEGER,
        msataDiskSummary
            DisplayString,
        msataDiskSmartInfo
            INTEGER, 
        msataDiskTemperture
            INTEGER, 
        msataDiskGlobalSpare
            INTEGER,             
        msataDiskModel
            DisplayString, 
        msataDiskCapacity
            Counter64       
	} 
msataDiskIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskIndex."
    ::= { msataDiskTableEntry 1 } 
    
msataDiskID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskID."
    ::= { msataDiskTableEntry 2 } 
 
msataDiskEnclosureID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"disk EnclosureID."
    ::= { msataDiskTableEntry 3 }     

msataDiskSummary OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskSummary. 'Good',''Warning','Abnormal'"
    ::= { msataDiskTableEntry 4 } 
    
msataDiskSmartInfo OBJECT-TYPE
    SYNTAX  INTEGER{
                   abnormal(2),
                   warning(1),
                   good(0),
                   error(-1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskSmartInfo."
    ::= { msataDiskTableEntry 5 } 

msataDiskTemperture OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskTemperture."
    ::= { msataDiskTableEntry 6 } 
    
msataDiskGlobalSpare OBJECT-TYPE
    SYNTAX  INTEGER{
                   no(0),       
                   yes(1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskGlobalSpare."
    ::= { msataDiskTableEntry 7 } 
    
msataDiskModel OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskModel."
    ::= { msataDiskTableEntry 8 }  
    
msataDiskCapacity OBJECT-TYPE
    SYNTAX  Counter64
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskCapacity."
    ::= { msataDiskTableEntry 9 }     
 
-- enclosureTable

enclosurelNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of Enclosures (regardless of
            their current state) present on this system."
    ::= { enclosure 1 }
    
enclosureTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF EnclosureTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of enclosures.  The number of
            entries is given by the value of EnclosureNumber."
    ::= { enclosure 2 }
enclosureTableEntry OBJECT-TYPE
    SYNTAX  TargeTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An enclosure entry."
    INDEX   { enclosureIndex }
    ::= { enclosureTable 1 }
EnclosureTableEntryDef ::=
    SEQUENCE {
        enclosureIndex
            INTEGER,
        enclosureID
            INTEGER,
        enclosureModel
            DisplayString,
        enclosureSerialNum
            DisplayString,
        enclosureSlot
            INTEGER,
        enclosureName
            DisplayString,
        enclosureSystemTemp
            INTEGER
--        EnclosureDiskList
--            INTEGER           
	}

enclosureIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"EnclosureIndex."
    ::= { enclosureTableEntry 1 }
    
enclosureID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"enclosureID."
    ::= { enclosureTableEntry 2 }
    
enclosureModel OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"EnclosureModel."
    ::= { enclosureTableEntry 3 }
    
enclosureSerialNum OBJECT-TYPE
    SYNTAX  DisplayString  (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"EnclosureSerialNum."
    ::= { enclosureTableEntry 4 }
    
enclosureSlot OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"EnclosureSlot."
    ::= { enclosureTableEntry 5 }
    
enclosureName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Enclosure Name."
    ::= { enclosureTableEntry 6 }
    
enclosureSystemTemp OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Enclosure System temperature in centigrade."
    ::= { enclosureTableEntry 7 }   

--EnclosureDiskList OBJECT-TYPE
--    SYNTAX  INTEGER
--    ACCESS  read-only
--    STATUS  mandatory
--    DESCRIPTION	"EnclosureDiskList."
--    ::= { EnclosureTableEntry 8 } 

-- systemFan2Table
systemFanNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of systemfans (regardless of
            their current state) present on this system."
    ::= { systemFan 1 }
    
systemFan2Table OBJECT-TYPE
    SYNTAX  SEQUENCE OF SystemFanTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of systemfans.  The number of
            entries is given by the value of SystemFanNumber."
    ::= { systemFan 2 }
systemFan2TableEntry OBJECT-TYPE
    SYNTAX  SystemFanTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system fan entry."
    INDEX   { systemFanIndex }
    ::= { systemFan2Table 1 }
SystemFanTableEntryDef ::=
    SEQUENCE {
        systemFanIndex
            INTEGER,
        systemFanID
            INTEGER,
        systemFanEnclosureID
            INTEGER,            
        systemFanStatus
            INTEGER,
        systemFanSpeed
            INTEGER
	}

systemFanIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemFanIndex."
    ::= { systemFan2TableEntry 1 }
    
systemFanID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemFanID."
    ::= { systemFan2TableEntry 2 }    

systemFanEnclosureID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemFanEnclosureID."
    ::= { systemFan2TableEntry 3 }
    
systemFanStatus OBJECT-TYPE
    SYNTAX  INTEGER{
                   ok(0),       
                   fail(-1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Systemfan status."
    ::= { systemFan2TableEntry 4 }
    
systemFanSpeed OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Systemfan speed."
    ::= { systemFan2TableEntry 5 }
    

-- systemPowerTable
systemPowerNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of systemfans (regardless of
            their current state) present on this system."
    ::= { systemPower 1 }
    
systemPowerTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF SystemPowerTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of systemfans.  The number of
            entries is given by the value of SystemPowerNumber."
    ::= { systemPower 2 }
systemPowerTableEntry OBJECT-TYPE
    SYNTAX  SystemPowerTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system fan entry."
    INDEX   { systemPowerIndex }
    ::= { systemPowerTable 1 }
SystemPowerTableEntryDef ::=
    SEQUENCE {
        systemPowerIndex
            INTEGER,
        systemPowerID
            INTEGER,
        systemPowerEnclosureID
            INTEGER,            
        systemPowerStatus
            INTEGER,
        systemPowerFanSpeed
            INTEGER,
        systemPowerTemp
            INTEGER            
	}

systemPowerIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemPowerIndex."
    ::= { systemPowerTableEntry 1 }
    
systemPowerID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemPowerID."
    ::= { systemPowerTableEntry 2 }    

systemPowerEnclosureID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemPowerEnclosureID."
    ::= { systemPowerTableEntry 3 }
    
systemPowerStatus OBJECT-TYPE
    SYNTAX  INTEGER{
                   ok(0),       
                   fail(-1)
                   }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Systemfan status."
    ::= { systemPowerTableEntry 4 }

systemPowerFanSpeed OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemPower speed."
    ::= { systemPowerTableEntry 5 }    

systemPowerTemp OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"SystemPower temperature in centigrade."
    ::= { systemPowerTableEntry 6 } 
    
-- cpuTable
cpuNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of CPUs (regardless of
            their current state) present on this system."
    ::= { cpu 1 }

cpuTemp OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION	"CPU temperature in centigrade."
    ::= { cpu 2 }
    
cpuTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CPUTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of CPUs.  The number of
            entries is given by the value of CPUNumber."
    ::= { cpu 3 }
cpuTableEntry OBJECT-TYPE
    SYNTAX  CPUTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A CPU entry."
    INDEX   { cpuIndex }
    ::= { cpuTable 1 }
CPUTableEntryDef ::=
    SEQUENCE {
        cpuIndex
            INTEGER,
        cpuID
            INTEGER, 
        cpuUsage
            INTEGER
  
	}

cpuIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"CPUIndex."
    ::= { cpuTableEntry 1 }

cpuID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"CPUID."
    ::= { cpuTableEntry 2 }  
    
cpuUsage OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"CPUUsage."
    ::= { cpuTableEntry 3 }

    
-- diskPerformanceTable
diskPerformanceNumber OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of Devices (regardless of
            their current state) for monitor perfrmance present on this system."
    ::= { diskPerformance 1 }
    
diskPerformanceTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF DiskPerformanceTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A list of interface entries.  The number of
            entries is given by the value of VolumeNumber."
    ::= { diskPerformance 2 }
diskPerformanceTableEntry OBJECT-TYPE
    SYNTAX  DiskPerformanceTableEntryDef
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An system fan entry containing objects at the
            subnetwork layer and below for a particular
            interface."
    INDEX   { diskPerformanceIndex }
    ::= { diskPerformanceTable 1 }
DiskPerformanceTableEntryDef ::=
    SEQUENCE {
        diskPerformanceIndex
            INTEGER,
         blvID
             INTEGER,
        iops
            INTEGER,
        latency
            INTEGER             
	}

diskPerformanceIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"DiskPerformanceIndex."
    ::= { diskPerformanceTableEntry 1 }
    
blvID OBJECT-TYPE
     SYNTAX  INTEGER
     ACCESS  read-only
     STATUS  mandatory
     DESCRIPTION	"BLVID."
     ::= { diskPerformanceTableEntry 2 }

iops OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"IOPS."
    ::= { diskPerformanceTableEntry 3 }
    
latency OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION	"Latency."
    ::= { diskPerformanceTableEntry 4 }
END


