LEFTHAND-NETWORKS-NUS-COMMON-STORAGE-MIB DEFINITIONS ::= BEGIN

-- IMPORTS: Include definitions from other mibs here, which is always
-- the first item in a MIB file.
IMPORTS
	Counter64, MODULE-IDENTITY, OBJECT-TYPE, IpAddress    FROM SNMPv2-SMI
	RowStatus, TruthValue                      FROM SNMPv2-TC
	lhnModules                                 FROM LEFTHAND-NETWORKS-GLOBAL-REG
	lhnNusCommonStorage                        FROM LEFTHAND-NETWORKS-NUS-COMMON-MIB;

--
-- A brief description and update information about this mib.
--
lhnNusCommonStorageModule MODULE-IDENTITY
    LAST-UPDATED "0106010000Z"            
	 ORGANIZATION "LeftHand Networks, Inc."
    CONTACT-INFO "
                  Author:     Jose Faria
                              LeftHand Networks
                  postal:     1688 Conestoga St.
                              Boulder, CO 80301
                              USA
                  email:      jfaria@lefthandnetworks.com
                  phone:      +1 303 449-4100
                 "
    DESCRIPTION  "Storage items for NSM Devices"
    ::= { lhnModules 8 }

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

--
-- Device Table Definitions
--
storageDeviceCount OBJECT-TYPE
    SYNTAX        INTEGER
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION   "number of storage devices"
    ::= { lhnNusCommonStorage 1 }
    
storageDeviceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF StorageDeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "table of storage devices"
    ::= { lhnNusCommonStorage 2 }

storageDeviceEntry OBJECT-TYPE
    SYNTAX      StorageDeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of raid parameters for the NUS."
    INDEX { storageDeviceIndex }
    ::= { storageDeviceTable 1 }
    
StorageDeviceEntry ::= SEQUENCE
{
    storageDeviceIndex        INTEGER,
    storageDeviceModel        OCTET STRING,
    storageDeviceSerialNo     OCTET STRING,
    storageDeviceClass        OCTET STRING,
    storageDeviceCapacity     OCTET STRING,
    storageDeviceStatus       OCTET STRING,
    storageDeviceChain        OCTET STRING,
    storageDeviceBayStatus    OCTET STRING,
    storageDeviceTemperature  INTEGER
}

storageDeviceIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device index"
    ::= { storageDeviceEntry 1 }

storageDeviceModel OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device model"
    ::= { storageDeviceEntry 2 }

storageDeviceClass OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device class"
    ::= { storageDeviceEntry 3 }

storageDeviceCapacity OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "Blocks (512 bytes)"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device capacity in blocks"
    ::= { storageDeviceEntry 4 }

storageDeviceStatus OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device status"
    ::= { storageDeviceEntry 5 }

storageDeviceChain OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device chain"
    ::= { storageDeviceEntry 6 }

storageDeviceSerialNo OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device serial number"
    ::= { storageDeviceEntry 7 }

storageDeviceBayStatus OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device bay status"
    ::= { storageDeviceEntry 8 }

storageDeviceTemperature OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage device temperature"
    ::= { storageDeviceEntry 9 }

--
-- RAID Table Definitions
--
storageRaidCount OBJECT-TYPE
    SYNTAX        INTEGER
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION   "number of raid devices"
    ::= { lhnNusCommonStorage 3 }

storageRaidTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF StorageRaidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "table of raids"
    ::= { lhnNusCommonStorage 4 }

storageRaidEntry OBJECT-TYPE
    SYNTAX      StorageRaidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of raid parameters for the NUS."
    INDEX { storageRaidIndex }
    ::= { storageRaidTable 1 }

StorageRaidEntry ::= SEQUENCE
{
    storageRaidIndex          INTEGER,
    storageRaidDeviceName     OCTET STRING,
    storageRaidLevel          INTEGER,
    storageRaidDiskCount      INTEGER,
    storageRaidSpareDiskCount INTEGER,
    storageRaidSuperBlock     TruthValue,
    storageRaidChunkSize      INTEGER,
    storageRaidDisks          OCTET STRING
}

storageRaidIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device index"
    ::= { storageRaidEntry 1 }

storageRaidDeviceName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device name"
    ::= { storageRaidEntry 2 }

storageRaidLevel OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device RAID level"
    ::= { storageRaidEntry 3 }

storageRaidDiskCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device disk number"
    ::= { storageRaidEntry 4 }

storageRaidSpareDiskCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device number of spare disks"
    ::= { storageRaidEntry 5 }

storageRaidSuperBlock OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device spare super block status (true or false)"
    ::= { storageRaidEntry 6 }

storageRaidChunkSize OBJECT-TYPE
    SYNTAX         INTEGER
    UNITS          "Kbytes"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device chunk size"
    ::= { storageRaidEntry 7 }

storageRaidDisks OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid storage device disk list"
    ::= { storageRaidEntry 8 }

--
-- Raid Configuration and Status
--
storageRaidConfiguration OBJECT-TYPE
    SYNTAX         INTEGER { noRaid(1), stripe(2), mirror(3), mirrorAndStripe(4) }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "raid storage configuration"
    ::= { lhnNusCommonStorage 5 }

--    ::= { lhnNusCommonStorage 6 } OBSOLETE

storageRaidStatus OBJECT-TYPE
    SYNTAX         INTEGER { normal(1), rebuilding(2), degraded(3), notRebuilding(4), off(5) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "status of raid subsystem"
    ::= { lhnNusCommonStorage 7 }

storageRaidMinimumSpeed OBJECT-TYPE
    SYNTAX         INTEGER
    UNITS          "Kbytes / sec"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "raid minimum speed"
    ::= { lhnNusCommonStorage 8 }

storageRaidMaximumSpeed OBJECT-TYPE
    SYNTAX         INTEGER
    UNITS          "Kbytes / sec"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "raid maximum speed"
    ::= { lhnNusCommonStorage 9 }


END
