--
-- ReadyNAS.mib
--

-- Copyright (c) 2001-2007 Netgear Inc.,
-- Module Name: ReadyNAS.mib
-- Abstract:
-- 	Defines the ReadyNAS NAS box MIBs .
-- Authors: Justin Maggard, David Y. Yang
-- 


	READYNAS-MIB DEFINITIONS ::= BEGIN

		IMPORTS 
			OBJECT-TYPE			
				FROM RFC-1212			
			TRAP-TYPE			
				FROM RFC-1215			
			enterprises			
				FROM RFC1155-SMI			
			DisplayString			
				FROM RFC1213-MIB;
	
	
	
--
-- Node definitions
--
	
		netgear  OBJECT IDENTIFIER ::= { enterprises 4526 }
                productID  OBJECT IDENTIFIER ::= { netgear 100 }
	        readyNAS  OBJECT IDENTIFIER ::= { productID 12}	
		nasManager OBJECT IDENTIFIER ::= { netgear 18 }

                
		nasMgrSoftwareVersion OBJECT-TYPE
			SYNTAX DisplayString (SIZE (1..32))
			ACCESS read-only
			STATUS current 
			DESCRIPTION
				"Version information for the ReadyNAS NAS
				 Manager software."
			::= { nasManager 1 }
		
		
		diskTable OBJECT-TYPE
			SYNTAX SEQUENCE OF DiskEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"A table of physical disks attached to the NAS device."
			::= { nasManager 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,
				diskChannel
					INTEGER,
				diskModel
					DisplayString,
				diskState
					DisplayString,
                                diskTemperature
                                        INTEGER
			 }

		diskNumber OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Instance number of the disk entry."
			::= { diskEntry 1 }
		
		diskChannel OBJECT-TYPE
			SYNTAX INTEGER
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"Channel number that the disk is connected to."
			::= { diskEntry 2 }
		
		diskModel OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The disk drive's model name."
			::= { diskEntry 3 }
		
		diskState OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"The current state of the Disk.
				Possible states:
				 0: Online
				 1: Offline"
			::= { diskEntry 4 }
		
	        diskTemperature OBJECT-TYPE
                        SYNTAX INTEGER
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "temperature of this disk."
                        ::= { diskEntry 5 }
	
		fanTable OBJECT-TYPE
			SYNTAX SEQUENCE OF FanEntry
			ACCESS not-accessible
			STATUS current
			::= { nasManager 4 }
		
		fanEntry OBJECT-TYPE
			SYNTAX FanEntry
			ACCESS not-accessible
			STATUS current
			INDEX { fanNumber }
			::= { fanTable 1 }
		
		FanEntry ::=
			SEQUENCE { 
				fanNumber
					INTEGER,
				fanRPM
					INTEGER,
                                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 }
		
		fanType OBJECT-TYPE
			SYNTAX DisplayString
			ACCESS read-only
			STATUS mandatory
			DESCRIPTION
				"What fan is used for:
				 SYS: for system board
				 CPU: for CPU
                                 CAS: for system case"
			::= { fanEntry 3 }		

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

		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."
			::= { temperatureEntry 2 }
	
                temperatureStatus OBJECT-TYPE
                        SYNTAX DisplayString
                        ACCESS read-only
                        STATUS mandatory
                        DESCRIPTION
                                "The current temperature status."
                        ::= { temperatureEntry 3 }



		volumeTable OBJECT-TYPE
			SYNTAX SEQUENCE OF VolumeEntry
			ACCESS not-accessible
			STATUS mandatory
			DESCRIPTION
				"A table of active volumes on the NAS device."
			::= { nasManager 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: Clean
				2: Error
			       16: Initialized (Normal)"
			::= { 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
			::= { nasManager 8 }
		
		psuEntry OBJECT-TYPE
			SYNTAX PSUEntry
			ACCESS not-accessible
			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 ::= { nasManager 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"
                         ::= { nasManager 400 }		

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

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

                raidMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "RAID hotplug event message"
                         ::= { nasManager 403 }
		
                snapshotMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Snapshot messages"
                         ::= { nasManager 404 }
		
                upsMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "UPS status message"
                         ::= { nasManager 405 }
		
                sataMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "SATA hotplug event messages"
                         ::= { nasManager 406 }		
                volumeMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Disk usage warning"
                         ::= { nasManager 407 }		
                diskTempWarningMesg OBJECT-TYPE
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION 
                                 "Disk temperature warning messages"
                         ::= { nasManager 408 }
                backupMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Backup job status messages"
                         ::= { nasManager 409 }
                smartMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "Disk SMART messages"
                         ::= { nasManager 410 }
                psuMesg OBJECT-TYPE	
                         SYNTAX DisplayString
                         ACCESS read-only
                         STATUS current
                         DESCRIPTION
                                 "PSU status messages"
                         ::= { nasManager 411 }

--
-- Trap definitions
--
		nasTraps OBJECT IDENTIFIER ::= { nasManager  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 { powerFailureMesg }
			DESCRIPTION
				"System power is out of spec, please check
system status! "
			::=  30
--              ******************************************************
	        raidEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { raidMesg  }
			DESCRIPTION
				"RAID event detected! "
			::=  40
--              ******************************************************
	        snapshotEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { snapshotMesg  }
			DESCRIPTION
				"Snapshot event detected! "
			::=  50
--              ******************************************************
	        hotplugDiskNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { sataMesg }
			DESCRIPTION
				" Hotplug disk event detected! "
			::=  60

--              ******************************************************
	        upsEventNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { upsMesg  }
			DESCRIPTION
				"UPS status. "
			::=  70
--              ******************************************************
	        volumeNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { volumeMesg  }
			DESCRIPTION
				"Volume is approaching capacity. "
			::=  80
			
--              ******************************************************
	        diskTempWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { volumeMesg  }
			DESCRIPTION
				"Disk temperature warning. "
			::=  90
			
--              ******************************************************
	        backupNotice  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { backupMesg  }
			DESCRIPTION
				"Backup job status. "
			::=  100
			
--              ******************************************************
	        diskSmartWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { smartMesg  }
			DESCRIPTION
				"Disk SMART warning. "
			::=  110
			
--              ******************************************************
	        psuWarning  TRAP-TYPE
			ENTERPRISE nasTraps    
			VARIABLES { psuMesg  }
			DESCRIPTION
				"Power supply unit warning. "
			::=  120
			
--              ******************************************************
			
--              ******************************************************
			
	
	END

--
-- ReadyNAS.mib
--
