--
-- READYDATAOS-MIB.txt
--

-- Copyright (c) 2001-2012 Netgear Inc.,
-- Module Name: READYDATAOS.mib
-- Abstract:
-- 	Defines the ReadyDATAOS MIBs .
-- Authors: Justin Maggard, David Y. Yang
-- 


	READYDATAOS-MIB DEFINITIONS ::= BEGIN

		IMPORTS 
			OBJECT-TYPE			
				FROM RFC-1212			
			TRAP-TYPE			
				FROM RFC-1215			
			enterprises			
				FROM RFC1155-SMI			
			DisplayString			
				FROM RFC1213-MIB;
	
	
	
--
-- Node definitions
--

--		iso             OBJECT IDENTIFIER ::= { 1 }
--		org             OBJECT IDENTIFIER ::= { iso 3 }
--		dod             OBJECT IDENTIFIER ::= { org 6 }
--		internet        OBJECT IDENTIFIER ::= { dod 1 }
--		private         OBJECT IDENTIFIER ::= { internet 4 }
--		enterprises     OBJECT IDENTIFIER ::= { private 1 }
		netgear		OBJECT IDENTIFIER ::= { enterprises 4526 }
                productID       OBJECT IDENTIFIER ::= { netgear 100 }
--		Stackswitch     OBJECT IDENTIFIER ::= { productID 1 }
--		L2switch        OBJECT IDENTIFIER ::= { productID 2 }
--		L3switch        OBJECT IDENTIFIER ::= { productID 3 }
--		Smartswitch     OBJECT IDENTIFIER ::= { productID 4 }
--		Router          OBJECT IDENTIFIER ::= { productID 5 }
--		Firewall        OBJECT IDENTIFIER ::= { productID 6 }
--		Accesspoint     OBJECT IDENTIFIER ::= { productID 7 }
--		WirelessLAN     OBJECT IDENTIFIER ::= { productID 8 }
--		Chassisswitch   OBJECT IDENTIFIER ::= { productID 9 }
--		ReadyNAS	OBJECT IDENTIFIER ::= { productID 12 }
--		Wlanmanagement	OBJECT IDENTIFIER ::= { productID 13 }
--		Security	OBJECT IDENTIFIER ::= { productID 14 }
		ReadyDATAOS	OBJECT IDENTIFIER ::= { productID 15 }
--		ReadyNASOS	OBJECT IDENTIFIER ::= { productID 16 }

		ngNasManager    OBJECT IDENTIFIER ::= { netgear 22 }

                
		nasMgrSoftwareVersion OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..32))
			ACCESS read-only
			STATUS current 
			DESCRIPTION
				"Version information for the ReadyDATAOS
				 ngNasManager software."
			::= { ngNasManager 1 }
		
		
		diskTable OBJECT-TYPE
			SYNTAX SEQUENCE OF DiskEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"A table of physical disks attached to the storage device."
			::= { ngNasManager 3 }
		
		diskEntry OBJECT-TYPE
			SYNTAX DiskEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"An entry in the physical disk table."
			INDEX { diskNumber }
			::= { diskTable 1 }
		
		DiskEntry ::=
			SEQUENCE { 
                                diskNumber
                                        INTEGER,
				diskID  
					DisplayString,
				diskSlotName
					DisplayString,
                                diskSerial
                                        DisplayString,
				diskModel
					DisplayString,
                                ataError
                                        INTEGER,
                                diskCapacity
                                        DisplayString,
                                diskInterface
                                        DisplayString,
				diskState
					DisplayString,
                                diskTemperature
                                        INTEGER
			 }

                diskNumber OBJECT-TYPE
                        SYNTAX INTEGER
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "Instance number of the disk entry."
                        ::= { diskEntry 1 }


		diskID OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Disk ID."
			::= { diskEntry 2 }
		
                diskSlotName OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The slot location of the disk."
			::= { diskEntry 3 }
		diskSerial OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Disk Serial number."
			::= { diskEntry 4 }

		diskModel OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The disk drive's model name."
			::= { diskEntry 5 }
		
		ataError OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"ATA error number for this disk from S.M.A.R.T read."
			::= { diskEntry 6 }
		
		diskCapacity OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The capacity of the disk in bytes."
			::= { diskEntry 7 }

		diskInterface OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The disk connect interface, such as SATA, USB etc."
			::= { diskEntry 8 }
		
		diskState OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The current state of the Disk.
				Possible states:
				 0: Online
				 1: Offline"
			::= { diskEntry 9 }
		
	        diskTemperature OBJECT-TYPE
                        SYNTAX INTEGER
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "temperature of this disk(in Fahrenheit unit)."
                        ::= { diskEntry 10 }
	
		fanTable OBJECT-TYPE
			SYNTAX SEQUENCE OF FanEntry
			ACCESS not-accessible
			STATUS current
			::= { ngNasManager 4 }
		
		fanEntry OBJECT-TYPE
			SYNTAX FanEntry
			ACCESS not-accessible
			STATUS current
			INDEX { fanNumber }
			::= { fanTable 1 }
		
		FanEntry ::=
			SEQUENCE { 
				fanNumber
					INTEGER,
				fanRPM
					INTEGER,
                                fanStatus
                                        DisplayString,
                                fanType
                                        DisplayString
			 }

		fanNumber OBJECT-TYPE
			SYNTAX INTEGER (1..10000000)
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Instance number of this fan entry."
			::= { fanEntry 1 }
		
		
		fanRPM OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The current speed of the fan."
			::= { fanEntry 2 }
		
		fanStatus OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The status of Fan"
			::= { fanEntry 3 }

		fanType OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"What fan is used for:
				 SYS: for system board
				 CPU: for CPU
                                 CASE: for system case"
			::= { fanEntry 4 }		

		temperatureTable OBJECT-TYPE
			SYNTAX SEQUENCE OF TemperatureEntry
			ACCESS not-accessible
			STATUS mandatory
			::= { ngNasManager 5 }
		
		temperatureEntry OBJECT-TYPE
			SYNTAX TemperatureEntry
			ACCESS not-accessible
			STATUS mandatory
			INDEX { temperatureNumber }
			::= { temperatureTable 1 }
		
		TemperatureEntry ::=
			SEQUENCE { 
				temperatureNumber
					INTEGER,
				temperatureValue
					INTEGER,
                                temperatureType
                                        DisplayString,
                                temperatureMin
                                        INTEGER,
                                temperatureMax
                                        INTEGER
			 }

		temperatureNumber OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Instance number of this temperature probe entry."
			::= { temperatureEntry 1 }
		
		temperatureValue OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The current temperature of this probe (in Fahrenheit unit)."
			::= { temperatureEntry 2 }
	
                temperatureTyoe OBJECT-TYPE
                        SYNTAX DisplayString
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "The current temperature refer to"
          
                        ::= { temperatureEntry 3 }

		temperatureMin OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The min temperature of this probe (in Fahrenheit unit)."
			::= { temperatureEntry 4 }

		temperatureMax OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The max temperature of this probe (in Fahrenheit unit)."
			::= { temperatureEntry 5 }

		volumeTable OBJECT-TYPE
			SYNTAX SEQUENCE OF VolumeEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"A table of active volumes on the storage device."
			::= { ngNasManager 7 }
		
		volumeEntry OBJECT-TYPE
			SYNTAX VolumeEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"An entry in the volume table."
			INDEX { volumeNumber }
			::= { volumeTable 1 }
		
		VolumeEntry ::=
			SEQUENCE { 
				volumeNumber
					INTEGER,
				volumeName
					DisplayString,
				volumeRAIDLevel
				        DisplayString,
				volumeStatus
					DisplayString,
				volumeSize
					INTEGER,
				volumeFreeSpace
					INTEGER
			 }

		volumeNumber OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Instance number of the volume entry."
			::= { volumeEntry 1 }
		
		volumeName OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The name of the volume."
			::= { volumeEntry 2 }
		
		volumeRAIDLevel OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The RAID level of the volume."
			::= { volumeEntry 3 }
		
		volumeStatus OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The severity of the volume.
				Possible values:
                                1: ONLINE
                                2: OFFLINE
                                3: DEGRADED
                                4: FAULTED
                                5: REMOVED
                                6: UNAVAILABLE
                                7: UNKNOWN"
			::= { volumeEntry 4 }
		
		volumeSize OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The size of the volume in megabytes."
			::= { volumeEntry 5 }
		
		volumeFreeSpace OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Free space on the volume in megabytes."
			::= { volumeEntry 6 }
		
		psuTable OBJECT-TYPE
			SYNTAX SEQUENCE OF PSUEntry
			ACCESS not-accessible
			STATUS mandatory
			::= { ngNasManager 8 }
		
		psuEntry OBJECT-TYPE
			SYNTAX PSUEntry
			ACCESS read-only
			STATUS mandatory
			INDEX { psuNumber }
			::= { psuTable 1 }
		
		PSUEntry ::=
			SEQUENCE { 
				psuNumber
					INTEGER,
				psuStatus
                                        DisplayString,
                                psuDesc
                                        DisplayString
			 }

		psuNumber OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Instance number of this power supply unit."
			::= { psuEntry 1 }
		
		psuDesc OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The description of this PSU."
			::= { psuEntry 2 }
	
                psuStatus OBJECT-TYPE
                        SYNTAX DisplayString
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "The current PSU status."
                        ::= { psuEntry 3 }

		
		aryMgrEvts OBJECT IDENTIFIER ::= { ngNasManager 200 }
		
		controllerNameEv OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..64))
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Controller Name for which trap is generated."
			::= { aryMgrEvts 201 }
		
		channelNumberEv OBJECT-TYPE
			SYNTAX INTEGER (0..3)
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Channel Number for which trap is generated."
			::= { aryMgrEvts 202 }
		
		targetIDEv OBJECT-TYPE
			SYNTAX INTEGER (0..15)
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"SCSI ID of the device for which trap is generated."
			::= { aryMgrEvts 203 }
		
		virtualDiskNameEv OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..64))
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Virtual Disk for which trap is generated."
			::= { aryMgrEvts 204 }
		
		arrayDiskNameEv OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..64))
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Array Disk for which trap is generated."
			::= { aryMgrEvts 205 }
		
		oldVDConfigEv OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..128))
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Current Virtual Disk configuration for which trap is generated"
			::= { aryMgrEvts 206 }
		
		newVDConfigEv OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..128))
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"New Virtual Disk configuration for which trap is generated."
			::= { aryMgrEvts 207 }
		
		enclosureNumberEv OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Enclosure Number for which trap is generated."
			::= { aryMgrEvts 208 }
		
		unitNumberEv OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Unit Number for which trap is generated.
				(Fan, Power Supply, Temperature Probe)"
			::= { aryMgrEvts 209 }
		
		enclosureNameEv OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Enclosure Name for which trap is generated."
			::= { aryMgrEvts 210 }
		
		unitNameEv OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Unit Number for which trap is generated.
				(Fan, Power Supply, Temperature Probe)"
			::= { aryMgrEvts 211 }
		
		timeEv OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Amount of time specified in the trap message."
			::= { aryMgrEvts 212 }
		
		volumeNameEv OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Volume Drive Letter for which trap is generated."
			::= { aryMgrEvts 213 }
		
	
                fanFailureMesg OBJECT-TYPE
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Failure message for Fan"
                         ::= { ngNasManager 400 }		

                tempFailureMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Failure message for system temperature"
                         ::= { ngNasManager 401 }		
                         
                powerVoltageMesg OBJECT-TYPE	

                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Failure message for system power"
                         ::= { ngNasManager 402 }		

                raidEventNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "RAID hotplug event message"
                         ::= { ngNasManager 403 }
		
                snapshotEventNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Snapshot messages"
                         ::= { ngNasManager 404 }
		
                upsEventNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "UPS status message"
                         ::= { ngNasManager 405 }
		
                hotplugDiskNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Disk hotplug event messages"
                         ::= { ngNasManager 406 }		
                volumeNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Disk usage warning"
                         ::= { ngNasManager 407 }		
                diskTempWarningMesg OBJECT-TYPE
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION 
                                 "Disk temperature warning messages"
                         ::= { ngNasManager 408 }
                backupNoticeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Backup job status messages"
                         ::= { ngNasManager 409 }
                diskSmartWarningMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Disk SMART messages"
                         ::= { ngNasManager 410 }
                psuWarningMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "PSU status messages"
                         ::= { ngNasManager 411 }

--
-- Trap definitions
--
		nasTraps OBJECT IDENTIFIER ::= { ngNasManager 300 }
	
		fanFailure TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { fanFailureMesg }
			DESCRIPTION
				"Fan failure, fan speed is %s."
			::=  10
--                fanFailure NOTIFICATION-TYPE
--                        SATAUS current
--                        OBJECTS { fanFailureMesg }
--                        DESCRIPTION "Fan failure"
--                        ::= { nasTraps 10}
--              #SEVERITY  ERROR
--              #STATE     FAILED
--              #STATUS    Mandatory
--              ******************************************************
		tempFailure  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { tempFailureMesg }
			DESCRIPTION
				"Temperature sensor reports out of normal range. "
			::=  20
--              ******************************************************
		powerVoltage  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { powerVoltageMesg }
			DESCRIPTION
				"System power is out of spec, please check system status! "
			::=  30
--              ******************************************************
	        raidEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { raidEventNoticeMesg  }
			DESCRIPTION
				"RAID event detected! "
			::=  40
--              ******************************************************
	        snapshotEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { snapshotEventNoticeMesg  }
			DESCRIPTION
				"Snapshot event detected! "
			::=  50
--              ******************************************************
	        hotplugDiskNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { hotplugDiskNoticeMesg }
			DESCRIPTION
				" Hotplug disk event detected! "
			::=  60

--              ******************************************************
	        upsEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { upsEventNoticeMesg  }
			DESCRIPTION
				"UPS status. "
			::=  70
--              ******************************************************
	        volumeNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { volumeNoticeMesg  }
			DESCRIPTION
				"Volume is approaching capacity. "
			::=  80
			
--              ******************************************************
	        diskTempWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { diskTempWarningMesg  }
			DESCRIPTION
				"Disk temperature warning. "
			::=  90
			
--              ******************************************************
	        backupNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { backupNoticeMesg  }
			DESCRIPTION
				"Backup job status. "
			::=  100
			
--              ******************************************************
	        diskSmartWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { diskSmartWarningMesg  }
			DESCRIPTION
				"Disk SMART warning. "
			::=  110
			
--              ******************************************************
	        psuWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { psuWarningMesg  }
			DESCRIPTION
				"Power supply unit warning. "
			::=  120
			
--              ******************************************************
			
--              ******************************************************
			
	
	END

--
-- READYDATAOS-MIB.txt
--
