-- ****************************************************************************
-- LEFTHAND-NETWORKS-NSM-STORAGE-MIB
-- Management Information Base for SNMP Network Management
--
-- This MIB provides storage (disk, RAID) information for a storage node.

-- This MIB must be loaded after:
--                                LEFTHAND-NETWORKS-GLOBAL-REG-MIB.mib
--                                LEFTHAND-NETWORKS-NSM-MIB.mib
--
-- The LeftHand Networks Enterprise number is 9804.
-- The ASN.1 prefix to, and including the LeftHand Networks Enterprise is:
--     1.3.6.1.4.1.9804
-- ****************************************************************************
-- Copyright 2009,2010 Hewlett-Packard Development Company, L.P.
-- Copyright 2008,2009 LeftHand Networks, Inc.
-- All Rights Reserved.
--
-- Hewlett-Packard Company shall not be liable for technical or
-- editorial errors or omissions contained herein. The information in
-- this document is provided "as is" without warranty of any kind and
-- is subject to change without notice. The warranties for HP products
-- are set forth in the express limited warranty statements
-- accompanying such products. Nothing herein should be construed as
-- constituting an additional warranty.
--
-- Confidential computer software. Valid license from HP required for
-- possession, use or copying. Consistent with FAR 12.211 and 12.212,
-- Commercial Computer Software, Computer Software Documentation, and
-- Technical Data for Commercial Items are licensed to the U.S.
-- Government under vendor's standard commercial license.
-- ****************************************************************************

-- ****************************************************************************
-- The HP Insight Manager (Compaq) MIBs contain more information.
--
-- CPQHOST-MIB: .1.3.6.1.4.1.232
-- ****************************************************************************

LEFTHAND-NETWORKS-NSM-STORAGE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Gauge32, Counter64
		FROM SNMPv2-SMI
	OBJECT-GROUP, MODULE-COMPLIANCE
		FROM SNMPv2-CONF
	TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue
		FROM SNMPv2-TC
	CounterBasedGauge64
		FROM HCNUM-TC
	lhnModules, lhnNsm
		FROM LEFTHAND-NETWORKS-GLOBAL-REG-MIB
	lhnNsmStorage
		FROM LEFTHAND-NETWORKS-NSM-MIB;

-- lhnNsm is imported but never used, this will create a smilint warning
-- however, it's necessary for some MIB compilers

--
-- Module definition and a brief description about this mib.
--
lhnNsmStorageModule MODULE-IDENTITY
    LAST-UPDATED        "201311210000Z"
    ORGANIZATION        "Hewlett Packard Company, StorageWorks Division"
    CONTACT-INFO        "Product Support
                         Product URL: www.hp.com/go/p4000
                         Support URL: www.itrc.hp.com
                         Product Phone: www.hp.com/go/contact
                                        1-800-786-7967 (US only)
                         Support Phone: www.hp.com/go/contact
                                        1-800-334-5144 (US only)"
    DESCRIPTION         "HP StorageWorks P4000 Storage Information"

    REVISION            "201311210000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5, SAN/iQ 9.0, SAN/iQ 9.5, SAN/iQ 10.0, SAN/iQ 10.5, SAN/iQ 11.0, SAN/iQ 11.5"

    REVISION            "201306250000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5, SAN/iQ 9.0, SAN/iQ 9.5, SAN/iQ 10.0, SAN/iQ 10.5, SAN/iQ 11.0"

    REVISION            "201209040000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5, SAN/iQ 9.0, SAN/iQ 9.5, SAN/iQ 10.0"

    REVISION            "201106210000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5, SAN/iQ 9.0, SAN/iQ 9.5"

    REVISION            "201009070000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5, SAN/iQ 9.0"

    REVISION            "201007190000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5 with patch 10076
						Added:
							storageDeviceModel
							storageDeviceClass
							storageDeviceMode
							storageDeviceSerialNumber
							storageDeviceTemperature
							storageDeviceTemperatureCritical
							storageDeviceTemperatureLimit
							storageDeviceTemperatureStatus
							storageDeviceLabel
							storageDeviceName
							storageDeviceRaidDevice
							storageDeviceFirmwareVersion
							storageDeviceSmartHealth
							storageDeviceSmartHealthStatus
							storageDeviceCapacity
							storageDeviceHotRemovable
							storageDeviceState
							storageDeviceStatus
							storageRaidCount
							storageRaidDisks
							storageRaidDevice
							storageRaidDeviceCapacity
							storageRaidDeviceParityInitState
							storageRaidRebuildPercent
							storageOsRaidCount
							storageOsRaidName
							storageOsRaidDevice
							storageOsRaidSize
							storageOsRaidState
						Obsoleted:
							storageDeviceBayStatus
							storageDeviceChain
							storageDeviceRowStatus
							storageRaidSpareDiskCount
							storageRaidSuperBlock
							storageRaidChunkSize
							storageRaidParityInitState
							storageRaidDeviceRowStatus
							storageOsRaidMode
							storageOsRaidRowStatus
						Renamed some objects to have a consistent use of 'Status' and 'State'.
						Changed all objects that used the 'OCTET STRING' syntax to use the 'DisplayString' syntax for increased client compatability."

    REVISION            "200911200000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1, SAN/iQ 8.5"

    REVISION            "200903100000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0, SAN/iQ 8.1"

    REVISION            "200801240000Z"
    DESCRIPTION         "SAN/iQ 7.0, SAN/iQ 8.0
						Added:
							storageRaidParityInit
							storageRaidStatsIOsRead
							storageRaidStatsIOsWrite
							storageRaidStatsKbytesRead
							storageRaidStatsKbytesWrite
							storageRaidStatsQDepthTotal
							storageRaidStatsIoLatencyRead
							storageRaidStatsIoLatencyWrite
                        Updated object names to use current product branding.
                        Added conformance and compliance objects.
                        Updated the MIB for increased client compatability."

	::= { lhnModules 5 }

--******************************************************************************
--
-- Conformance
--
--******************************************************************************

lhnNsmStorageModuleConformance OBJECT IDENTIFIER
	::= { lhnNsmStorageModule 1 }

lhnNsmStorageModuleCompliances OBJECT IDENTIFIER
	::= { lhnNsmStorageModuleConformance 1 }

lhnNsmStorageModuleGroups OBJECT IDENTIFIER
	::= { lhnNsmStorageModuleConformance 2 }

lefthandNetworksNsmStorageMibCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION "The compliance statement."
	MODULE
	MANDATORY-GROUPS {
			lefthandNetworksNsmStorageGroup
		}
	::= { lhnNsmStorageModuleCompliances 1 }

lefthandNetworksNsmStorageGroup OBJECT-GROUP
	OBJECTS {           
					storageDeviceCount,
					storageDeviceModel,
					storageDeviceClass,
					storageDeviceMode,
					storageDeviceSerialNumber,
					storageDeviceTemperature,
					storageDeviceTemperatureCritical,
					storageDeviceTemperatureLimit,
					storageDeviceTemperatureStatus,
					storageDeviceLabel,
					storageDeviceName,
					storageDeviceRaidDevice,
					storageDeviceFirmwareVersion,
					storageDeviceSmartHealth,
					storageDeviceSmartHealthStatus,
					storageDeviceCapacity,
					storageDeviceHotRemovable,
					storageDeviceState,
					storageDeviceStatus,
					storageRaidCount,
					storageRaidDeviceName,
					storageRaidLevel,
					storageRaidDiskCount,
					storageRaidDisks,
					storageRaidDevice,
					storageRaidDeviceCapacity,
					storageRaidDeviceParityInitState,
					storageRaidRebuildPercent,
					storageRaidRebuildTime,
					storageRaidDeviceState,
					storageRaidDeviceStatus,
					storageRaidDescription,
					storageRaidMode,
					storageRaidCapacity,
					storageRaidStatus,
					storageRaidState,
					storageRaidMinimumSpeed,
					storageRaidMaximumSpeed,
					storageRaidStatsIOsRead,
					storageRaidStatsIOsWrite,
					storageRaidStatsKbytesRead,
					storageRaidStatsKbytesWrite,
					storageRaidStatsQDepthTotal,
					storageRaidStatsIoLatencyRead,
					storageRaidStatsIoLatencyWrite,
					storageOsRaidCount,
					storageOsRaidName,
					storageOsRaidDevice,
					storageOsRaidSize,
					storageOsRaidState
			}
	STATUS              current
	DESCRIPTION         "The default group for all NSM Storage objects."
	::= { lhnNsmStorageModuleGroups 1 }

lefthandNetworksNsmStorageGroupObsolete OBJECT-GROUP
	OBJECTS {           
					storageDeviceCapacityInBytes,
					storageDeviceChain,
					storageDeviceRowStatus,
					storageRaidSpareDiskCount,
					storageRaidSuperBlock,
					storageRaidChunkSize,
					storageRaidParityInitState,
					storageRaidDeviceRowStatus,
					storageOsRaidMode,
					storageOsRaidRowStatus
			}
	STATUS              obsolete
	DESCRIPTION         "The group for all obsolete NSM Storage objects."
	::= { lhnNsmStorageModuleGroups 2 }

--******************************************************************************
--
-- Storage Module Objects
--
--******************************************************************************

--
-- Device Table Definitions
--

storageDeviceCount OBJECT-TYPE
	SYNTAX              Integer32
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of storage devices."
	::= { lhnNsmStorage 1 }

storageDeviceTable OBJECT-TYPE
	SYNTAX              SEQUENCE OF StorageDeviceEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A table of storage devices for the NSM. The
						number of devices is given by storageDeviceCount."
	::= { lhnNsmStorage 2 }

storageDeviceEntry OBJECT-TYPE
	SYNTAX              StorageDeviceEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A row of storage device information."
	INDEX               {
							storageDeviceIndex
						}
	::= { storageDeviceTable 1 }

	StorageDeviceEntry ::= SEQUENCE {
		storageDeviceIndex					Unsigned32,
		storageDeviceModel					DisplayString,
		storageDeviceClass					DisplayString,
		storageDeviceCapacityInBytes		CounterBasedGauge64,
		storageDeviceMode					DisplayString,
		storageDeviceChain					DisplayString,
		storageDeviceSerialNumber			DisplayString,
		storageDeviceTemperature			Gauge32,
		storageDeviceTemperatureCritical	Integer32,
		storageDeviceTemperatureLimit		Integer32,
		storageDeviceTemperatureStatus		INTEGER,
		storageDeviceLabel					DisplayString,
		storageDeviceName					DisplayString,
		storageDeviceRaidDevice				DisplayString,
		storageDeviceFirmwareVersion		DisplayString,
		storageDeviceSmartHealth			DisplayString,
		storageDeviceSmartHealthStatus		INTEGER,
		storageDeviceCapacity				Integer32,
		storageDeviceHotRemovable			TruthValue,
		storageDeviceState					DisplayString,
		storageDeviceStatus					INTEGER,
		storageDeviceRowStatus				RowStatus
	}

	storageDeviceIndex OBJECT-TYPE
		SYNTAX              Unsigned32
		MAX-ACCESS          not-accessible
		STATUS              current
		DESCRIPTION         "The index for the storageDeviceTable table."
		::= { storageDeviceEntry 1 }

	storageDeviceModel OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device model."
		::= { storageDeviceEntry 2 }

	storageDeviceClass OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device class describes the interface type and speed."
		::= { storageDeviceEntry 3 }

	storageDeviceCapacityInBytes OBJECT-TYPE
		SYNTAX              CounterBasedGauge64
		UNITS               "Blocks (512 bytes)"
		MAX-ACCESS          read-only
		STATUS              obsolete
		DESCRIPTION         "The capacity of the device. Obsolete in SAN/iQ 8.5. Use 'storageDeviceCapacity'."
		::= { storageDeviceEntry 4 }

	storageDeviceMode OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device mode. Possible modes are: active, inactive, hot spare, rebuilding, uninitialized, foreign"
		::= { storageDeviceEntry 5 }

    storageDeviceChain OBJECT-TYPE
        SYNTAX              DisplayString
        MAX-ACCESS          read-only
        STATUS              obsolete
        DESCRIPTION         "The storage device chain. Obsolete in SAN/iQ 8.5."
        ::= { storageDeviceEntry 6 }

	storageDeviceSerialNumber OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device serial number."
		::= { storageDeviceEntry 7 }

	storageDeviceTemperature OBJECT-TYPE
		SYNTAX              Gauge32
		UNITS               "Celsius"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device temperature."
		::= { storageDeviceEntry 9 }

	storageDeviceTemperatureCritical OBJECT-TYPE
		SYNTAX              Integer32
		UNITS               "Celsius"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The value where the temperature becomes critical."
		::= { storageDeviceEntry 10 }

	storageDeviceTemperatureLimit OBJECT-TYPE
		SYNTAX              Integer32
		UNITS               "Celsius"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The maximum temperature that can be tolerated."
		::= { storageDeviceEntry 11 }

	storageDeviceTemperatureStatus OBJECT-TYPE
		SYNTAX              INTEGER { pass(1), fail(2) }
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device temperature status."
		::= { storageDeviceEntry 12 }

	storageDeviceLabel OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The the device bay/slot label."
		::= { storageDeviceEntry 13 }

	storageDeviceName OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device name."
		::= { storageDeviceEntry 14 }

	storageDeviceRaidDevice OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device LUN for the storage device."
		::= { storageDeviceEntry 15 }

	storageDeviceFirmwareVersion OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device firmware version."
		::= { storageDeviceEntry 16 }

	storageDeviceSmartHealth OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device SMART health status. Possible values are: normal, marginal, faulty"
		::= { storageDeviceEntry 17 }

	storageDeviceSmartHealthStatus OBJECT-TYPE
		SYNTAX              INTEGER { pass(1), fail(2) }
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device SMART health status."
		::= { storageDeviceEntry 18 }

	storageDeviceCapacity OBJECT-TYPE
		SYNTAX              Integer32
		UNITS               "MB"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The capacity of the device."
		::= { storageDeviceEntry 19 }

	storageDeviceHotRemovable OBJECT-TYPE
		SYNTAX              TruthValue
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The hot removable status of the device."
		::= { storageDeviceEntry 20 }

	storageDeviceState OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device (presence) state. Possible values are: on_and_secured, off_and_secured, off_or_removed"
		::= { storageDeviceEntry 90 }

	storageDeviceStatus OBJECT-TYPE
		SYNTAX              INTEGER { pass(1), fail(2) }
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The device status."
		::= { storageDeviceEntry 91 }

	storageDeviceRowStatus OBJECT-TYPE
		SYNTAX         RowStatus
		MAX-ACCESS     read-only
		STATUS         obsolete
		DESCRIPTION    "The table row status. Obsolete in SAN/iQ 8.5."
		::= { storageDeviceEntry 99 }

--
-- RAID Table Definitions
--

storageRaidCount OBJECT-TYPE
	SYNTAX              Integer32
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of RAID devices (controllers)."
	::= { lhnNsmStorage 3 }

storageRaidTable OBJECT-TYPE
	SYNTAX              SEQUENCE OF StorageRaidEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A table of RAID devices (controllers) for the NSM. The
						number of devices is given by storageRaidCount."
	::= { lhnNsmStorage 4 }

storageRaidEntry OBJECT-TYPE
	SYNTAX              StorageRaidEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A row of RAID device (controller) information."
	INDEX               {
							storageRaidIndex
						}
	::= { storageRaidTable 1 }

	StorageRaidEntry ::= SEQUENCE {
		storageRaidIndex					Unsigned32,
		storageRaidDeviceName				DisplayString,
		storageRaidLevel					DisplayString,
		storageRaidDiskCount				Integer32,
		storageRaidSpareDiskCount			Integer32,
		storageRaidSuperBlock				TruthValue,
		storageRaidChunkSize				Integer32,
		storageRaidDisks					DisplayString,
		storageRaidDevice					DisplayString,
		storageRaidDeviceCapacity			Integer32,
		storageRaidDeviceParityInitState	DisplayString,
		storageRaidRebuildPercent			Gauge32,
		storageRaidRebuildTime				Gauge32,
		storageRaidDeviceState				DisplayString,
		storageRaidDeviceStatus				INTEGER,
		storageRaidDeviceRowStatus			RowStatus
	}

	storageRaidIndex OBJECT-TYPE
		SYNTAX              Unsigned32
		MAX-ACCESS          not-accessible
		STATUS              current
		DESCRIPTION         "The index for the storageRAIDTable table."
		::= { storageRaidEntry 1 }

	storageRaidDeviceName OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) name."
		::= { storageRaidEntry 2 }

	storageRaidLevel OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID level."
		::= { storageRaidEntry 3 }

	storageRaidDiskCount OBJECT-TYPE
		SYNTAX              Integer32
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The number of storage devices this RAID device (controller) has."
		::= { storageRaidEntry 4 }

	storageRaidSpareDiskCount OBJECT-TYPE
		SYNTAX              Integer32
		MAX-ACCESS          read-only
		STATUS              obsolete
		DESCRIPTION         "The number of spare disks the RAID (controller) has."
		::= { storageRaidEntry 5 }

    storageRaidSuperBlock OBJECT-TYPE
        SYNTAX              TruthValue
        MAX-ACCESS          read-only
        STATUS              obsolete
        DESCRIPTION         "The RAID device (controller) spare super block status. Obsolete in SAN/iQ 8.5."
        ::= { storageRaidEntry 6 }

    storageRaidChunkSize OBJECT-TYPE
        SYNTAX              Integer32
        UNITS               "Kbytes"
        MAX-ACCESS          read-only
        STATUS              obsolete
        DESCRIPTION         "The RAID device (controller) chunk size. Obsolete in SAN/iQ 8.5."
        ::= { storageRaidEntry 7 }

	storageRaidDisks OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) disk list."
		::= { storageRaidEntry 8 }

	storageRaidDevice OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The LUN for the RAID device (controller)."
		::= { storageRaidEntry 9 }

	storageRaidDeviceCapacity OBJECT-TYPE
		SYNTAX              Integer32
		UNITS				"MB"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The capacity of the RAID device (controller.)"
		::= { storageRaidEntry 10 }

	storageRaidDeviceParityInitState OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) parity initialization status. Possible values: normal, parityinit, unconfigured"
		::= { storageRaidEntry 11 }

	storageRaidRebuildPercent OBJECT-TYPE
		SYNTAX              Gauge32
		UNITS				"%"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) rebuild percent complete."
		::= { storageRaidEntry 12 }

	storageRaidRebuildTime OBJECT-TYPE
		SYNTAX              Gauge32
		UNITS				"minutes"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) rebuild time remaining."
		::= { storageRaidEntry 13 }

	storageRaidDeviceState OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (controller) state.  Possible values are: normal, rebuilding, degraded"
		::= { storageRaidEntry 90 }

	storageRaidDeviceStatus OBJECT-TYPE
		SYNTAX              INTEGER { pass(1), fail(2) }
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The RAID device (Controller) status."
		::= { storageRaidEntry 91 }

	storageRaidDeviceRowStatus OBJECT-TYPE
		SYNTAX         RowStatus
		MAX-ACCESS     read-only
		STATUS         obsolete
		DESCRIPTION    "The table row status. Obsolete in SAN/iQ 8.5."
		::= { storageRaidEntry 99 }

--
-- Raid Configuration and Status
--

storageRaidDescription OBJECT-TYPE
	SYNTAX              DisplayString
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "A description of the RAID configuration."
	::= { lhnNsmStorage 5 }

storageRaidMode OBJECT-TYPE
	SYNTAX              DisplayString
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The RAID mode."
	::= { lhnNsmStorage 7 }

storageRaidCapacity OBJECT-TYPE
	SYNTAX              Integer32
	UNITS				"MB"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The capacity available for SAN storage."
	::= { lhnNsmStorage 8 }

storageRaidStatus OBJECT-TYPE
	SYNTAX              INTEGER { pass(1), fail(2) }
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The RAID status."
	::= { lhnNsmStorage 11 }

storageRaidState OBJECT-TYPE
	SYNTAX              DisplayString
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The system RAID state. Possible values are: normal, rebuilding, degraded"
	::= { lhnNsmStorage 12 }

storageRaidMinimumSpeed OBJECT-TYPE
	SYNTAX              DisplayString
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The minimum RAID rebuild speed."
	::= { lhnNsmStorage 13 }

storageRaidMaximumSpeed OBJECT-TYPE
	SYNTAX              DisplayString
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The maximum RAID rebuild speed."
	::= { lhnNsmStorage 14 }

storageRaidParityInitState OBJECT-TYPE
	SYNTAX              INTEGER { complete(1), inProgress(2), notApplicable(3) }
	MAX-ACCESS          read-only
	STATUS              obsolete
	DESCRIPTION         "The RAID parity initialization status. Obsolete in SAN/iQ 8.5. Replaced with storageRaidDeviceParityInitState."
	::= { lhnNsmStorage 15 }

storageRaidStatsIOsRead OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "operations"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "A counter of IO read operations on the NSM."
	::= { lhnNsmStorage 16 }

storageRaidStatsIOsWrite OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "operations"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "A counter of IO write operations on the NSM."
	::= { lhnNsmStorage 17 }

storageRaidStatsKbytesRead OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "kB"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of kB read from the NSM."
	::= { lhnNsmStorage 19 }

storageRaidStatsKbytesWrite OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "kB"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of kB written to the NSM."
	::= { lhnNsmStorage 20 }

storageRaidStatsQDepthTotal OBJECT-TYPE
	SYNTAX              Gauge32
	UNITS               "operations"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of pending read and write operations on the NSM."
	::= { lhnNsmStorage 22 }

storageRaidStatsIoLatencyRead OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "ms"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The total time spent waiting for read operations to complete on the NSM."
	::= { lhnNsmStorage 23 }

storageRaidStatsIoLatencyWrite OBJECT-TYPE
	SYNTAX              Counter64
	UNITS               "ms"
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The total time spent waiting for write operations to complete on the NSM."
	::= { lhnNsmStorage 24 }

--
-- OS Raid Configuration and Status
--

storageOsRaidCount OBJECT-TYPE
	SYNTAX              Integer32
	MAX-ACCESS          read-only
	STATUS              current
	DESCRIPTION         "The number of OS RAID devices."
	::= { lhnNsmStorage 50 }

storageOsRaidTable OBJECT-TYPE
	SYNTAX              SEQUENCE OF StorageOsRaidEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A table of OS RAID devices in the system. The number of entries
						is given by storageOsRaidCount."
	::= { lhnNsmStorage 51 }

storageOsRaidEntry OBJECT-TYPE
	SYNTAX              StorageOsRaidEntry
	MAX-ACCESS          not-accessible
	STATUS              current
	DESCRIPTION         "A row of OS RAID device information."
	INDEX               {
							storageOsRaidIndex
						}
	::= { storageOsRaidTable 1 }

	StorageOsRaidEntry ::= SEQUENCE {
		storageOsRaidIndex		Unsigned32,
		storageOsRaidName		DisplayString,
		storageOsRaidDevice		DisplayString,
		storageOsRaidMode		DisplayString,
		storageOsRaidSize		Integer32,
		storageOsRaidState		DisplayString,
		storageOsRaidRowStatus	RowStatus
	}

	storageOsRaidIndex OBJECT-TYPE
		SYNTAX              Unsigned32
		MAX-ACCESS          not-accessible
		STATUS              current
		DESCRIPTION         "The index for the storageOsRaidTable table."
		::= { storageOsRaidEntry 1 }

	storageOsRaidName OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The OS RAID name."
		::= { storageOsRaidEntry 2 }

	storageOsRaidDevice OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The LUN for the OS RAID."
		::= { storageOsRaidEntry 3 }

	storageOsRaidMode OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              obsolete
		DESCRIPTION         "The OS RAID mode. Obsolete in SAN/iQ 8.5."
		::= { storageOsRaidEntry 4 }

	storageOsRaidSize OBJECT-TYPE
		SYNTAX              Integer32
		UNITS				"MB"
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The OS RAID size."
		::= { storageOsRaidEntry 5 }

	storageOsRaidState OBJECT-TYPE
		SYNTAX              DisplayString
		MAX-ACCESS          read-only
		STATUS              current
		DESCRIPTION         "The OS RAID state."
		::= { storageOsRaidEntry 90 }

	storageOsRaidRowStatus OBJECT-TYPE
		SYNTAX              RowStatus
		MAX-ACCESS          read-only
		STATUS              obsolete
		DESCRIPTION         "The table row status. Obsolete in SAN/iQ 8.5."
		::= { storageOsRaidEntry 99 }

END

-- END: some MIB compilers require a CR/LF after the END statement --
