-- INTEL CONFIDENTIAL 
-- Copyright 2006, 2007
-- Intel Corporation All Rights Reserved. 
-- 
-- The source code contained or described herein and all documents related to
-- the source code ("Material") are owned by Intel Corporation or its
-- suppliers and licensors. Title to the Material remains with Intel
-- Corporation or its suppliers and licensors. The Material contains trade 
-- secrets and proprietary and confidential information of Intel or its 
-- suppliers and licensors. The Material is protected by worldwide copyright
-- and trade secret laws and treaty provisions. No part of the Material may be
-- used, copied, reproduced, modified, published, uploaded, posted,
-- transmitted, distributed, or disclosed in any way without Intel's prior
-- express written permission.
-- 
-- Unless otherwise expressly permitted by Intel in a separate license
-- agreement, use of the Material is subject to the copyright notices,
-- trademarks, warranty, use, and disclosure restrictions reflected on the
-- outside of the media, in the documents themselves, and in the "About" or 
-- "Read Me" or similar file contained within this source code. Unless
-- otherwise expressly agreed by Intel in writing, you may not remove
-- or alter such notices in any way.
-- 

    INTELCORPORATION-MULTI-FLEX-SERVER-STORAGE-MIB DEFINITIONS ::= BEGIN
 
        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, Counter64,
            Integer32, Unsigned32
                FROM SNMPv2-SMI            

            OBJECT-GROUP            
                FROM SNMPv2-CONF

            DisplayString, TruthValue
                FROM SNMPv2-TC

            regModule, groups
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-REG            

            Index, PowerLedStates, FaultLedStates, PresenceLedStates,
            Power, IdromBinary16 
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-TC

            chassis
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-MIB

            bladeSlotId
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-BLADES-MIB;

    
            multiFlexServerStorageMibModule MODULE-IDENTITY 
                LAST-UPDATED "200709121110Z"        -- September 12, 2007 at 11:10 GMT
                ORGANIZATION 
                    "Intel Corporation"
                CONTACT-INFO 
                    "Brian Kurle
                    Intel Corporation
                    JF5-2-C3
                    Tel: 503-712-5032
                    E-Mail: brianx.j.kurle@intel.com"
                DESCRIPTION 
                    "Storage Module of the Multi-Flex Server"
                REVISION "200709121110Z"        -- September 12, 2007 at 11:10 GMT
                DESCRIPTION
                    "Changed case of virtDriveStoragePoolID to
                    virtDriveStoragePoolId to be consistent with other Id
                    columns.

                    Changed name of virtDriveIndex to virtDriveId to
                    accurately describe column.

                    Added dependency on
                    INTELCORPORATION-MULTI-FLEX-SERVER-BLADES-MIB so as to
                    be able to reference bladeSlotId for LUN mapping
                    tables.

                    Added vdb2lTable and bl2vdTable for mappings between
                    virtual drives and blades."
                REVISION "200708161330Z"        -- August 16, 2007 at 13:30 GMT
                DESCRIPTION
                    "Reordered Revision to reverse chronological as some
                    browsers choke, cleaned up some other simple nit-picky
                    errors"
                REVISION "200707201630Z"        -- July 20, 2007 at 16:30 GMT
                DESCRIPTION
                    "Dropped interposerBmcFirmwareVersion as there is no
                    BMC on the interposer"
                REVISION "200707091200Z"        -- July 09, 2007 at 12:00 GMT
                DESCRIPTION
                    "Backed out blade2VirtualDrivesTable &
                    virtualDrive2BladesTable tables to meet feature
                    complete deadline as underlying implementation was not
                    yet acceptable."
                REVISION "200706072030Z"        -- June 07, 2007 at 20:30 GMT
                DESCRIPTION
                    "Added the IdromBinary16 to represent the asset tag,
                    part number, and serial number fields within the IDROM
                    fields."
                REVISION "200706071330Z"        -- June 07, 2007 at 13:30 GMT
                DESCRIPTION
                    "Corrected maximum/nominal IDROM parameters and comments"
                REVISION "200704181905Z"        -- April 23, 2007 at 11:00 GMT
                DESCRIPTION
                    "With new drop from OEM: added spareDriveWWN to
                    spareDriveTable, poolWWN to storagePoolTable"
                REVISION "200704181905Z"        -- April 18, 2007 at 19:00 GMT
                DESCRIPTION
                    "Moved the trees and chassis nodes around to accomodate
                    the unique power supply characteristics.  Added the
                    missing numOfPwrUnknowns & pwrSupplyUnknownPresenceMask"
                REVISION "200704091545Z"        -- April 09, 2007 at 15:45 GMT
                DESCRIPTION
                    "Moved driveBackplane IDROM data to sharedDrives tree
                    from storage tree where it makes more logical sense"
                REVISION "200704091030Z"        -- April 09, 2007 at 10:30 GMT
                DESCRIPTION
                    "Added interposer/driveBackplaneBmcFirmwareVersion to
                    be consistent with other subsystems"
                REVISION "200703151830Z"        -- March 15, 2007 at 18:30 GMT
                DESCRIPTION 
                    "Added blade2VirtualDrivesTable & virtualDrive2BladesTable
                    
                    Added sub trees to contain IDROM information for the
                    Interposer and for the Drive Backplane"
                REVISION "200703101600Z"        -- March 10, 2007 at 16:00 GMT
                DESCRIPTION 
                    "All 'Logical' references have been changed to 'Virtual'
                    All 'Array' references have been changed to 'Pool'
                    All 'Disk' references have been changed to 'Drive'
                    All 'Phy' references have been changed to 'Physical'
                    All 'Drv' references have been changed to 'Drive' (or
                    'Drives' as appropriate)"
                REVISION "200702221700Z"        -- February 22, 2007 at 17:00 GMT
                DESCRIPTION 
                    "Renamed MIB file and updated internal relevance to
                    formal product name Multi-Flex Server"
                REVISION "200701080950Z"        -- January 08, 2007 at 09:50 GMT
                DESCRIPTION 
                    "Reverted Indexing of Array table to Index type
                    convention (from Integer32) to be SMIv2 compliant."
                REVISION "200612281730Z"        -- December 28, 2006 at 17:30 GMT
                DESCRIPTION 
                    "Corrected logDiskStatsTable INDEX to AUGMENTS."
                REVISION "200612051030Z"        -- December 05, 2006 at 10:30 GMT
                DESCRIPTION 
                    "Updated several object types to reflect changes in OEM
                    objects.

                    spareDiskTable:
                        Removed spareCondition, spareOperation, &
                        spareInUsed.
                        Reindexed table to match.

                    Renamed all of the *Transfered to *Transferred"
                REVISION "200612041630Z"        -- December 04, 2006 at 16:30 GMT
                DESCRIPTION 
                    "Updated several object types to reflect changes in OEM
                    objects.

                    logDiskTable:  
                        Removed logDiskStripeSize, logDiskWritePolicy,
                        logDiskReadPolicy, logDiskParityPace,
                        logDiskCodecScheme, &
                        logDiskMaxFailedDriveSpindlesTolerable.
                        Added logDiskPreferredCtrlId

                    logDiskStatsTable:
                        Removed logDiskStatsIndex.
                        Reindexed table to match."
                REVISION "200611070701Z"        -- November 07, 2006 at 07:01 GMT
                DESCRIPTION 
                    "Consolodated use of Presence datatype and changed
                    'chassis' to 'chassis'"
                REVISION "200610020629Z"        -- October 02, 2006 at 06:29 GMT
                DESCRIPTION 
                    "Partitioned off and created as it's own module"
                ::= { regModule 18 }


        
-- ----------------------------------------------------------------------------
-- 
-- Storage group.
-- 
-- This group contains information about Storage.
-- 
-- ----------------------------------------------------------------------------

--
-- storage tree
--

        storage OBJECT-IDENTITY
            STATUS current
            DESCRIPTION 
                "Container for Storage specific information as well as all
                components logically contained within."
            ::= { chassis 208 }

        interposer OBJECT-IDENTITY
            STATUS current
            DESCRIPTION 
                "IDROM information from the Interposer"
            ::= { storage 1 }

        storageWWN OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0 | 8 | 16))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The World Wide Name of the subsystem (hexadecimal ID in 0,
                8, or 16 bytes)"
            ::= { storage 3 }

        storageInterConnectionType OBJECT-TYPE
            SYNTAX INTEGER {
                    unsupported(0),
                    sas(1)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Inter-Connection Type for the subystem"
            ::= { storage 4 }

--
-- interposer tree
-- (IDROM data)
--

        interposerVendor OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device manufacturer"
            ::= { interposer 1 }

        interposerMfgDate OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Manufacture date/time"
            ::= { interposer 2 }

        interposerDeviceName OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Name"
            ::= { interposer 3 }

        interposerPart OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Part Number"
            ::= { interposer 4 }

        interposerSerialNo OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Serial Number"
            ::= { interposer 5 }

        interposerMaximumPower OBJECT-TYPE
            SYNTAX Power
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Static maximum power generation / consumption (in watts):
                
                <0      - Negative numbers indicate device consumes power (in watts)
                >0      - Positive numbers indicate device generates power (in watts)
                0       - Device is passive (does not not consume or generate power)
                -1      - Maximum power generation/consumption not known or specified"
            ::= { interposer 6 }

        interposerNominalPower OBJECT-TYPE
            SYNTAX Power
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Static Nominal power generation / consumption (in watts):
                
                <0      - Negative numbers indicate device consumes power (in watts)
                >0      - Positive numbers indicate device generates power (in watts)
                0       - Device is passive (does not not consume or generate power)
                -1      - Nominal power generation/consumption not known or specified"
            ::= { interposer 7 }

        interposerAssetTag OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Asset Tag # of device"
            ::= { interposer 8 }

--
-- Storage Pools
--

        storagePoolTable OBJECT-TYPE
            SYNTAX SEQUENCE OF StoragePoolEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Information about the storage pools"
            ::= { storage 5 }

        storagePoolEntry OBJECT-TYPE
            SYNTAX StoragePoolEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a Storage Pool."
            INDEX { poolIndex }
            ::= { storagePoolTable 1 }
        
        StoragePoolEntry ::=
            SEQUENCE { 

                poolIndex                           Index,
                poolAlias                           DisplayString,
                poolOperationalStatus               DisplayString,
                poolCondition                       DisplayString,
                poolOperation                       DisplayString,
                poolPhysicalCapacity                Counter64,
                poolConfigurableCapacity            Counter64,
                poolFreeCapacity                    Counter64,
                poolMaxContiguousCapacity           Counter64,
                poolMediaPatrolEnabled              TruthValue,
                poolPDMEnabled                      TruthValue,
                poolNumOfPhysicalDrives             Integer32,
                poolNumOfVirtualDrives              Integer32,
                poolNumOfDedicatedSpares            Integer32,
                poolPhysicalDriveIDs                DisplayString,
                poolVirtualDriveIDs                 DisplayString,
                poolDedicatedSpareIDs               DisplayString,
                poolWWN                             DisplayString

             }

        poolIndex OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Index of the Storage Pool."
            ::= { storagePoolEntry 1 }
        
        poolAlias OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..32))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Alias of the Storage Pool."
            ::= { storagePoolEntry 2 }
        
        poolOperationalStatus OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Operational Status of the Storage Pool."
            ::= { storagePoolEntry 3 }
        
        poolCondition OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The condition of the Storage Pool. Currently not
                supported"
            ::= { storagePoolEntry 4 }
        
        poolOperation OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The current active operation running on the storage pool,
                e.g. rebuilding, migrating"
            ::= { storagePoolEntry 5 }
        
        poolPhysicalCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The physical capacity in bytes of the Storage Pool. It is
                the sum of physical capacity of all the physical drives in
                the storage pool"
            ::= { storagePoolEntry 6 }
        
        poolConfigurableCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The configurable capacity in bytes of the Storage Pool.  It
                is the minimum configurable capacity of the physical drives
                in the storage pool mulitplies by the number of physical
                drives in the storage pool."
            ::= { storagePoolEntry 7 }
        
        poolFreeCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Free (available) capacity in bytes of the Storage Pool."
            ::= { storagePoolEntry 8 }

        poolMaxContiguousCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The maximum contiguous Size in bytes of the Storage Pool."
            ::= { storagePoolEntry 9 }
        
        poolMediaPatrolEnabled OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "It indicates whether Media Patrol is enabled or disabled
                on the Storage Pool."
            ::= { storagePoolEntry 10 }
        
        poolPDMEnabled OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "It indicates whether PDM is enabled or disabled on the
                Storage Pool."
            ::= { storagePoolEntry 11 }

        poolNumOfPhysicalDrives OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of Physical Drives of the Storage Pool."
            ::= { storagePoolEntry 12 }

        poolNumOfVirtualDrives OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of Virtual Drives of the Storage Pool."
            ::= { storagePoolEntry 13 }
        
        poolNumOfDedicatedSpares OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of dedicated spares of the Storage Pool."
            ::= { storagePoolEntry 14 }

        poolPhysicalDriveIDs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The list of the ids of the physical drives in the storage
                pool"
            ::= { storagePoolEntry 15 }

        poolVirtualDriveIDs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The list of the ids of the virtual drives on the storage
                pool"
            ::= { storagePoolEntry 16 }
        
        poolDedicatedSpareIDs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The list of the ids of the dedicated spares of the storage
                pool"
            ::= { storagePoolEntry 17 }

        poolWWN    OBJECT-TYPE    
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION        
                "The WWN of the disk array in the 16 characters HEX format,
                e.g. 0000000000000000."
            ::=  {  storagePoolEntry  18  }

--
-- Virtual Drives
--

        virtualDriveTable OBJECT-TYPE
            SYNTAX SEQUENCE OF VirtualDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of VirtualDriveEntry."
            ::= { storage 6 }
        
        virtualDriveEntry OBJECT-TYPE
            SYNTAX VirtualDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a virtual drive."
            INDEX { virtDriveId }
            ::= { virtualDriveTable 1 }
        
        VirtualDriveEntry ::=
            SEQUENCE { 

                virtDriveId                      Index,
                virtDriveAlias                      DisplayString,
                virtDriveSerialNo                   DisplayString,
                virtDriveWWN                        DisplayString,
                virtDriveOperationalStatus          DisplayString,
                virtDriveCondition                  DisplayString,
                virtDriveOperation                  DisplayString,
                virtDriveSynchronized               TruthValue,
                virtDriveRAIDLevel                  INTEGER,
                virtDriveCapacity                   Counter64,
                virtDrivePhysicalCapacity           Counter64,
                virtDriveStoragePoolId              Integer32,
                virtDriveNumOfAxels                 Integer32,
                virtDriveNumOfUsedPD                Integer32,
                virtDriveSectorSize                 Integer32,
                virtDrivePreferredScmId             INTEGER

             }

        virtDriveId OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The virtual drive id, the index of the virtual drive table."
            ::= { virtualDriveEntry 1 }
        
        virtDriveAlias OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..32))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Alias of the virtual drive."
            ::= { virtualDriveEntry 2 }
        
        virtDriveSerialNo OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Serial Nubmer of the virtual drive."
            ::= { virtualDriveEntry 3 }
        
        virtDriveWWN OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0 | 8 | 16))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The WWN of the virtual drive."
            ::= { virtualDriveEntry 4 }
        
        virtDriveOperationalStatus OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The operational Status of the virtual drive."
            ::= { virtualDriveEntry 5 }
        
        virtDriveCondition OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The condition of the virtual drive, e.g. PFA."
            ::= { virtualDriveEntry 6 }
        
        virtDriveOperation OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The current operation runngin on the virtual drive, e.g.
                initialing, synchronizing, etc."
            ::= { virtualDriveEntry 7 }
        
        virtDriveSynchronized OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "It indicates whether or not the data on the virtual drive
                has been sychronized."
            ::= { virtualDriveEntry 8 }
        
        virtDriveRAIDLevel OBJECT-TYPE
            SYNTAX INTEGER {
                    unknown(-1),
                    raid0(0),
                    raid1(1),
                    raid3(3),
                    raid5(5),
                    raid6(6),
                    jbod(10),
                    raid10(16),
                    raid50(80),
                    raid51(81),
                    raid55(85),
                    raid1e(95),
                    raid60(96)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The RAID Level of the virtual drive."
            ::= { virtualDriveEntry 9 }
        
        virtDriveCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The capacity in bytes of the virtual drive."
            ::= { virtualDriveEntry 10 }
        
        virtDrivePhysicalCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The physical (raw) capacity in bytes of the virtual drive."
            ::= { virtualDriveEntry 11 }
        
        virtDriveStoragePoolId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The id of the Storage Pool that the virtual drive belongs
                to."
            ::= { virtualDriveEntry 12 }
        
        virtDriveNumOfAxels OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of Axels of the virtual drive."
            ::= { virtualDriveEntry 13 }
        
        virtDriveNumOfUsedPD OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of Physical Drives used by the virtual drive."
            ::= { virtualDriveEntry 14 }
        
        virtDriveSectorSize OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The sector sizes in bytes of the virtual drive."
            ::= { virtualDriveEntry 15 }
        
        virtDrivePreferredScmId OBJECT-TYPE
            SYNTAX INTEGER { unavailable(-1) }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The preferred controller id of the virtual drive."
            ::= { virtualDriveEntry 16 }
        
        virtualDriveStatsTable OBJECT-TYPE
            SYNTAX SEQUENCE OF VirtualDriveStatsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of Virtual Drive Statistics."
            ::= { storage 7 }
        
        virtualDriveStatsEntry OBJECT-TYPE
            SYNTAX VirtualDriveStatsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The statistics of a virtual drive since its last reset or
                statistics rest."
            AUGMENTS { virtualDriveEntry }
            ::= { virtualDriveStatsTable 1 }
        
        VirtualDriveStatsEntry ::=
            SEQUENCE { 

                virtDriveStatsDataTransferred       Counter64,
                virtDriveStatsReadDataTransferred   Counter64,
                virtDriveStatsWriteDataTransferred  Counter64,
                virtDriveStatsNumOfErrors           Integer32,
                virtDriveStatsNumOfNonRWErrors      Integer32,
                virtDriveStatsNumOfReadErrors       Integer32,
                virtDriveStatsNumOfWriteErrors      Integer32,
                virtDriveStatsNumOfIORequests       Counter64,
                virtDriveStatsNumOfNonRWRequests    Counter64,
                virtDriveStatsNumOfReadRequests     Counter64,
                virtDriveStatsNumOfWriteRequests    Counter64,
                virtDriveStatsStartTime             Counter64,
                virtDriveStatsCollectionTime        Counter64

             }

        virtDriveStatsDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transferred to and from
                the controller."
            ::= { virtualDriveStatsEntry 1 }
        
        virtDriveStatsReadDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transferred from the
                controller."
            ::= { virtualDriveStatsEntry 2 }
        
        virtDriveStatsWriteDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transferred to the
                controller."
            ::= { virtualDriveStatsEntry 3 }
        
        virtDriveStatsNumOfErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of errors."
            ::= { virtualDriveStatsEntry 4 }
        
        virtDriveStatsNumOfNonRWErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of non-RW errors."
            ::= { virtualDriveStatsEntry 5 }
        
        virtDriveStatsNumOfReadErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of Read errors."
            ::= { virtualDriveStatsEntry 6 }

        virtDriveStatsNumOfWriteErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of Write errors."
            ::= { virtualDriveStatsEntry 7 }

        virtDriveStatsNumOfIORequests OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of IO requests."
            ::= { virtualDriveStatsEntry 8 }

        virtDriveStatsNumOfNonRWRequests OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of non-RW requests."
            ::= { virtualDriveStatsEntry 9 }

        virtDriveStatsNumOfReadRequests OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of read requests."
            ::= { virtualDriveStatsEntry 10 }

        virtDriveStatsNumOfWriteRequests OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of write requests."
            ::= { virtualDriveStatsEntry 11 }

        virtDriveStatsStartTime OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The time when the statistics date starts to accumulate
                since last statistics reset."
            ::= { virtualDriveStatsEntry 12 }
        
        virtDriveStatsCollectionTime OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The time when the statistics data was collected or updated
                last time."
            ::= { virtualDriveStatsEntry 13 }


--
-- Spare Drives
--

        spareDriveTable OBJECT-TYPE
            SYNTAX SEQUENCE OF SpareDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of SpareDriveEntry."
            ::= { storage 8 }

        spareDriveEntry OBJECT-TYPE
            SYNTAX SpareDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a spare drive."
            INDEX { spareIndex }
            ::= { spareDriveTable 1 }

        SpareDriveEntry ::=
            SEQUENCE { 

                spareIndex                          Index,
                spareOperationalStatus              DisplayString,
                sparePhysicalDriveId                Integer32,
                sparePhysicalCapacity               Counter64,
                spareConfigurableCapacity           Counter64,
                spareRevertible                     TruthValue,
                spareType                           INTEGER,
                spareNumOfAssociatedStoragePools    Integer32,
                spareAssociatedStoragePoolIDs       DisplayString,
                spareDriveWWN                       DisplayString

             }

        spareIndex OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The id of the spare drive, the Index of the spare drive
                table."
            ::= { spareDriveEntry 1 }
        
        spareOperationalStatus OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The operational status of the spare."
            ::= { spareDriveEntry 2 }
        
        sparePhysicalDriveId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The current operation running on the spare, e.g.
                sparechecking."
            ::= { spareDriveEntry 3 }
        
        sparePhysicalCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The physical capacity of the spare drive."
            ::= { spareDriveEntry 4 }
        
        spareConfigurableCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The configurable capacity of the spare drive."
            ::= { spareDriveEntry 5 }
        
        spareRevertible OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "It indicates whether or not the spare is a revertible
                spare or not."
            ::= { spareDriveEntry 6 }
        
        spareType OBJECT-TYPE
            SYNTAX INTEGER {
                    unknown(0),
                    dedicated(2),
                    global(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The type of the spare drive."
            ::= { spareDriveEntry 7 }
        
        spareNumOfAssociatedStoragePools OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of storage pools to which the spare is
                dedicated to"
            ::= { spareDriveEntry 8 }
        
        spareAssociatedStoragePoolIDs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The list of the ids of the storage pools to which the
                spare is dedicated to."
            ::= { spareDriveEntry 9 }

        spareDriveWWN    OBJECT-TYPE    
            SYNTAX            DisplayString
            MAX-ACCESS        read-only
            STATUS            current
            DESCRIPTION        
                "The WWN of the spare in 16 characters HEX format, e.g.
                0000000000000000."
            ::=  {  spareDriveEntry  10  }

--
-- virtual drive / blade / LUN mapping tables
--

        vdb2lTable OBJECT-TYPE
            SYNTAX SEQUENCE OF VdB2lEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Virtual Drive to Blade/LUN mapping table.   The table is
                doubly indexed given a instance of a virtual drive id and a
                blade slot, a specific LUN mapping for the virtual drive for
                that blade is provided."
            ::= { storage 9 }

        vdb2lEntry OBJECT-TYPE
            SYNTAX VdB2lEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a vdb2l drive."
            INDEX { virtDriveId, bladeSlotId  }
            ::= { vdb2lTable 1 }

        VdB2lEntry ::=
            SEQUENCE { 

                vdb2Lun                             Unsigned32

             }

        vdb2Lun OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The LUN on the given blade for the given virtual drive"
            ::= { vdb2lEntry 1 }


        bl2vdTable OBJECT-TYPE
            SYNTAX SEQUENCE OF Bl2vdEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Blade/LUN to virtual drive mapping table.  The table is
                doubly indexed given a blade slot and a LUN on that blade,
                it maps to an instance of a virtual drive id"
            ::= { storage 10 }

        bl2vdEntry OBJECT-TYPE
            SYNTAX Bl2vdEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a bl2vd drive."
            INDEX { bladeSlotId, vdb2Lun  }
            ::= { bl2vdTable 1 }

        Bl2vdEntry ::=
            SEQUENCE { 

                bl2vdVirtualDriveId                      Index

             }

        bl2vdVirtualDriveId OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Same as virtDriveId, but named differently so as not to
                cause namespace query conflicts.   This is the associated
                virtual drive id given a blade slot and lun for the
                specified blade slot"
            ::= { bl2vdEntry 1 }


--
-- (Storage) Group information
--

        storageGroup OBJECT-GROUP
            OBJECTS { 

                interposerVendor, 
                interposerMfgDate, 
                interposerDeviceName, 
                interposerPart, 
                interposerSerialNo, 
                interposerMaximumPower, 
                interposerNominalPower, 
                interposerAssetTag, 

                storageWWN, 
                storageInterConnectionType, 

                poolIndex, 
                poolAlias, 
                poolOperationalStatus, 
                poolCondition, 
                poolOperation, 
                poolPhysicalCapacity, 
                poolConfigurableCapacity, 
                poolFreeCapacity, 
                poolMaxContiguousCapacity, 
                poolMediaPatrolEnabled, 
                poolPDMEnabled, 
                poolNumOfPhysicalDrives, 
                poolNumOfVirtualDrives, 
                poolNumOfDedicatedSpares, 
                poolPhysicalDriveIDs, 
                poolVirtualDriveIDs, 
                poolDedicatedSpareIDs, 
                poolWWN,

                virtDriveAlias, 
                virtDriveSerialNo, 
                virtDriveWWN, 
                virtDriveOperationalStatus, 
                virtDriveCondition, 
                virtDriveOperation, 
                virtDriveSynchronized, 
                virtDriveRAIDLevel, 
                virtDriveCapacity, 
                virtDrivePhysicalCapacity, 
                virtDriveStoragePoolId, 
                virtDriveNumOfAxels, 
                virtDriveNumOfUsedPD, 
                virtDriveSectorSize, 
                virtDrivePreferredScmId, 
                virtDriveId, 

                virtDriveStatsDataTransferred, 
                virtDriveStatsReadDataTransferred, 
                virtDriveStatsWriteDataTransferred, 
                virtDriveStatsNumOfErrors, 
                virtDriveStatsNumOfNonRWErrors, 
                virtDriveStatsNumOfReadErrors, 
                virtDriveStatsNumOfWriteErrors, 
                virtDriveStatsNumOfIORequests, 
                virtDriveStatsNumOfNonRWRequests, 
                virtDriveStatsNumOfReadRequests, 
                virtDriveStatsNumOfWriteRequests, 
                virtDriveStatsStartTime, 
                virtDriveStatsCollectionTime, 

                spareIndex, 
                spareOperationalStatus, 
                sparePhysicalDriveId, 
                sparePhysicalCapacity, 
                spareConfigurableCapacity, 
                spareRevertible, 
                spareType, 
                spareNumOfAssociatedStoragePools, 
                spareAssociatedStoragePoolIDs, 
                spareDriveWWN,

                vdb2Lun,

                bl2vdVirtualDriveId

            }
            STATUS current
            DESCRIPTION 
                "Description."
            ::= { groups 18 }

    END

--  vim:ts=4:ai:nohls:nowrap:expandtab
