-- 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-DRIVE-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, Integer32,
            Unsigned32, Counter64
                FROM SNMPv2-SMI

            OBJECT-GROUP
                FROM SNMPv2-CONF

            DisplayString
                FROM SNMPv2-TC

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

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

            chassis
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-MIB;


            multiFlexServerDrivesMibModule MODULE-IDENTITY
                LAST-UPDATED "200708161200Z"        -- August 16, 2007 at 12:00 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
                    "Shared Disks Module of the Multi-Flex Server"
                REVISION "200708161200Z"        -- August 16, 2007 at 12:00 GMT
                DESCRIPTION
                    "Fixed up minor errors causing some managers grief
                    (ommission or addition of commas in lists)

                    Corrected a few entries that were marked as read-write
                    when they should have been read-only"
                REVISION "200707201645Z"        -- July 20, 2007 at 16:45 GMT
                DESCRIPTION
                    "Minor edit to make MIB SMIv2 compliant

                    Dropped driveBackplaneBmcFirmwareVersion as there is no BMC for the drive backplane"
                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 "200705301700Z"        -- May 30, 2007 at 17:00 GMT
                DESCRIPTION
                    "Added enumeration for exceptions
                    
                    Added missing Presence column to sharedDriveTable"
                REVISION "200704181905Z"        -- April 18, 2007 at 19:00 GMT
                DESCRIPTION
                    "Moved the trees and chassis nodes around to accomodate
                    the unique power supply characteristics"
                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
                    
                    Relocated both tables after the driveBackplane tree"
                REVISION "200704091530Z"        -- April 09, 2007 at 15:30 GMT
                DESCRIPTION
                    "Dropped sDriveAlias"
                REVISION "200703271130Z"        -- March 27, 2007 at 11:30 GMT
                DESCRIPTION
                    "Renamed all references of Array to StoragePool"
                REVISION "200703141130Z"        -- March 14, 2007 at 11:30 GMT
                DESCRIPTION
                    "Renamed all references of Disk to Drive
                    Dropped redundant sDriveIndex (moved and replaced it
                    with sDriveSlotNumber)"
                REVISION "200703061030Z"        -- March 06, 2007 at 10:30 GMT
                DESCRIPTION
                    "Changed Mask representation from an Opaque to a
                    DisplayString at the request of the architects such
                    that it now is an ASCII representation of bit string
                    reflecting the presence with the left most 'bit' being
                    bit 1 and max* bits being represented."
                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 "200612281730Z"        -- December 28, 2006 at 17:30 GMT
                DESCRIPTION
                    "Corrected sharedDiskStatsTable INDEX to AUGMENTS."
                REVISION "200612051030Z"        -- December 05, 2006 at 10:30 GMT
                DESCRIPTION
                    "Updated several object types to reflect changes in the
                    OEM objects.

                    sDiskArrayID            Integer32       -> INTEGER
                    sDiskSequenceNumber     Integer32       -> INTEGER
                    sDiskDriveType          DisplayString   -> INTEGER

                    Cleaned up some illegal character usage to make it
                    SMIv2 compliant.

                    Renamed all of the *Transfered to *Transferred

                    Renumbered sharedDiskStatsTable to match OEM's."
                REVISION "200611271530Z"        -- November 27, 2006 at 15:30 GMT
                DESCRIPTION
                    "Removed nolonger supported SATA & SAS drive feature tables

                    Renumbered Stats from { sharedDisks 4 } to { sharedDisks 2 }"
                REVISION "200611201330Z"        -- November 20, 2006 at 13:30 GMT
                DESCRIPTION
                    "Replaced sharedDisksStats table index with sDiskIndex to be consistent with the
                    rest of the tables.

                    All tables are indexed by the drive ID"
                REVISION "200611071130Z"        -- November 07, 2006 at 11:30 GMT
                DESCRIPTION
                    "Consolodated use of Presence datatype and changed 'chassis' to 'chassis'"
                REVISION "200610021024Z"        -- October 02, 2006 at 10:24 GMT
                DESCRIPTION
                    "Partitioned off and created as it's own module"
                ::= { regModule 15 }


-- ----------------------------------------------------------------------------
--
-- Shared Drives group.
--
-- This group contains information about Shared Drives.
--
-- ----------------------------------------------------------------------------

--
-- Shared Drives relevant pieces stored in the chassis
--

        maxSharedDrives OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Maximum number of Shared Drives possible in this chassis"
            ::= { chassis 15 }


        numOfSharedDrives OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of Shared Drives in the system"
            ::= { chassis 25 }


        sDrivePresenceMask OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "ASCII representation of bit string reflecting the presence
                of the shared drives with the left most 'bit' being bit 1
                and maxSharedDrives bits being represented.

                Thus, '11001111111111' would express that all the shared
                drives (of fourteen shared drives) are present with
                exception of drives 3 & 4"
            ::= { chassis 35 }

--
-- shared Drive tree
--

        sharedDrives OBJECT-IDENTITY
            STATUS current
            DESCRIPTION
                "Container for Shared Drive specific information as well as all
                components logically contained within."
            ::= { chassis 205 }


        driveBackplane OBJECT-IDENTITY
            STATUS current
            DESCRIPTION 
                "IDROM information from the Drive Backplane"
            ::= { sharedDrives 1 }



--
-- Drive Backplane tree
-- (IDROM data)
--

        driveBackplaneVendor OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device manufacturer"
            ::= { driveBackplane 1 }
        
        driveBackplaneMfgDate OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Manufacture date/time"
            ::= { driveBackplane 2 }

        driveBackplaneDeviceName OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Name"
            ::= { driveBackplane 3 }
        
        driveBackplanePart OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Part Number"
            ::= { driveBackplane 4 }

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

        driveBackplaneMaximumPower 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"
            ::= { driveBackplane 6 }
        
        driveBackplaneNominalPower 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"
            ::= { driveBackplane 7 }
        
        driveBackplaneAssetTag OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Asset Tag # of device"
            ::= { driveBackplane 8 }

--
-- Shared Drives
--

        sharedDriveTable OBJECT-TYPE
            SYNTAX SEQUENCE OF SharedDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Each row describes a shared drive in the chassis"
            ::= { sharedDrives 2 }

        sharedDriveEntry OBJECT-TYPE
            SYNTAX SharedDriveEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The parameters of a physical drive."
            INDEX { sDriveSlotNumber }
            ::= { sharedDriveTable 1 }

        SharedDriveEntry ::=
            SEQUENCE {

                sDriveSlotNumber                    Index,
                sDrivePresence                      Presence,
                sDriveInterface                     DisplayString,
                sDriveModelNumber                   DisplayString,
                sDriveSerialNumber                  DisplayString,
                sDriveFirmwareVersion               DisplayString,
                sDriveProtocolVersion               DisplayString,
                sDriveOperationalStatus             DisplayString,
                sDriveCondition                     DisplayString,
                sDriveOperation                     DisplayString,
                sDriveConfiguration                 DisplayString,
                sDriveStoragePoolID                 INTEGER,
                sDriveSequenceNumber                INTEGER,
                sDriveEnclosureID                   INT32withException,
                sDriveBlockSize                     INT32withException,
                sDrivePhysicalCapacity              Counter64,
                sDriveConfigurableCapacity          Counter64,
                sDriveUsedCapacity                  Counter64,
                sDriveType                          INTEGER

             }

        sDriveSlotNumber OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The slot number on the enclosure where the drive is
                located (drive ID)"
            ::= { sharedDriveEntry 1 }

        sDrivePresence OBJECT-TYPE
            SYNTAX Presence
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "column used to flag the existence of a particular FRU"
            ::= { sharedDriveEntry 2 }

        sDriveInterface OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Drive Interface of the physical drive."
            ::= { sharedDriveEntry 3 }

        sDriveModelNumber OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Model Number of the physical drive."
            ::= { sharedDriveEntry 4 }

        sDriveSerialNumber OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Serial Number of the physical drive."
            ::= { sharedDriveEntry 5 }

        sDriveFirmwareVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Firmware Version of the physical drive."
            ::= { sharedDriveEntry 6 }

        sDriveProtocolVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Protocol Version of the physical drive."
            ::= { sharedDriveEntry 7 }

        sDriveOperationalStatus OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Operational Status of the physical drive."
            ::= { sharedDriveEntry 8 }

        sDriveCondition OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The condition of the physical drive, e.g. PFA."
            ::= { sharedDriveEntry 9 }

        sDriveOperation OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The current operation on the physical drive, e.g.
                mediapatrolling, migrating."
            ::= { sharedDriveEntry 10 }

        sDriveConfiguration OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The configuration on the physical drive, e.g. array %d
                seqno %d, or dedicated spare."
            ::= { sharedDriveEntry 11 }

        sDriveStoragePoolID OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-32),
                    unknown(-16),
                    unavailable(-1),
                    notavailable(256)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The drive array id, if the physical drive is part of a
                drive array; the spare id, if the drive is a spare."
            ::= { sharedDriveEntry 12 }

        sDriveSequenceNumber OBJECT-TYPE
            SYNTAX INTEGER { 
                    notApplicable(-32),
                    unknown(-16),
                    unavailable(-1) 
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The sequence number of the drive in the drive array.
                Valid only when the drive is part of a drive array."
            ::= { sharedDriveEntry 13 }

        sDriveEnclosureID OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The id of the enclosure to which the drive is inserted."
            ::= { sharedDriveEntry 14 }

        sDriveBlockSize OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                " The Block Size in bytes of the physical drive."
            ::= { sharedDriveEntry 15 }

        sDrivePhysicalCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                " The Physical Size in bytes of the physical drive."
            ::= { sharedDriveEntry 16 }

        sDriveConfigurableCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                " The Configurable Size in bytes of the physical drive."
            ::= { sharedDriveEntry 17 }

        sDriveUsedCapacity OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The Used Size in bytes of the physical drive."
            ::= { sharedDriveEntry 18 }

        sDriveType OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-32),
                    unknown(-16),
                    unavailable(-1),
                    sata(1),
                    sas(4)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The type of the physical drive. e.g. SATA or SAS"
            ::= { sharedDriveEntry 19 }

---

        sharedDriveStatsTable OBJECT-TYPE
            SYNTAX SEQUENCE OF SharedDriveStatsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of Physical Drive Statistics (augments
                sharedDriveTable)"
            ::= { sharedDrives 3 }

        sharedDriveStatsEntry OBJECT-TYPE
            SYNTAX SharedDriveStatsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The statistics of a physical drive since its last reset or
                statistics rest."
            AUGMENTS { sharedDriveEntry }
            ::= { sharedDriveStatsTable 1 }

        SharedDriveStatsEntry ::=
            SEQUENCE {

                sDriveStatsDataTransferred          Counter64,
                sDriveStatsReadDataTransferred      Counter64,
                sDriveStatsWriteDataTransferred     Counter64,
                sDriveStatsNumOfErrors              Integer32,
                sDriveStatsNumOfNonRWErrors         Integer32,
                sDriveStatsNumOfReadErrors          Integer32,
                sDriveStatsNumOfWriteErrors         Integer32,
                sDriveStatsNumOfIORequests          Counter64,
                sDriveStatsNumOfNonRWRequests       Counter64,
                sDriveStatsNumOfReadRequests        Counter64,
                sDriveStatsNumOfWriteRequests       Counter64,
                sDriveStatsStartTime                Counter64,
                sDriveStatsCollectionTime           Counter64

             }

        sDriveStatsDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transfered to and from
                the controller."
            ::= { sharedDriveStatsEntry 1 }

        sDriveStatsReadDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transfered from the
                controller."
            ::= { sharedDriveStatsEntry 2 }

        sDriveStatsWriteDataTransferred OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of bytes of data transfered to the
                controller."
            ::= { sharedDriveStatsEntry 3 }

        sDriveStatsNumOfErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of errors."
            ::= { sharedDriveStatsEntry 4 }

        sDriveStatsNumOfNonRWErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of non-RW errors."
            ::= { sharedDriveStatsEntry 5 }

        sDriveStatsNumOfReadErrors OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The total number of Read errors."
            ::= { sharedDriveStatsEntry 6 }

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

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

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

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

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

        sDriveStatsStartTime OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The time when the statistics date starts to accumulate
                since last statistics reset."
            ::= { sharedDriveStatsEntry 12 }

        sDriveStatsCollectionTime OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The time when the statistics data was collected or updated
                last time."
            ::= { sharedDriveStatsEntry 13 }


--
-- (Shared Drive) Group information
--

        sDriveGroup OBJECT-GROUP
            OBJECTS {

                maxSharedDrives,
                numOfSharedDrives,
                sDrivePresenceMask,

                driveBackplaneVendor, 
                driveBackplaneMfgDate, 
                driveBackplaneDeviceName, 
                driveBackplanePart, 
                driveBackplaneSerialNo, 
                driveBackplaneMaximumPower, 
                driveBackplaneNominalPower, 
                driveBackplaneAssetTag, 

                sDriveSlotNumber,
                sDrivePresence,
                sDriveInterface,
                sDriveModelNumber,
                sDriveSerialNumber,
                sDriveFirmwareVersion,
                sDriveProtocolVersion,
                sDriveOperationalStatus,
                sDriveCondition,
                sDriveOperation,
                sDriveConfiguration,
                sDriveStoragePoolID,
                sDriveSequenceNumber,
                sDriveEnclosureID,
                sDriveBlockSize,
                sDrivePhysicalCapacity,
                sDriveConfigurableCapacity,
                sDriveUsedCapacity,
                sDriveType,

                sDriveStatsDataTransferred,
                sDriveStatsReadDataTransferred,
                sDriveStatsWriteDataTransferred,
                sDriveStatsNumOfErrors,
                sDriveStatsNumOfNonRWErrors,
                sDriveStatsNumOfReadErrors,
                sDriveStatsNumOfWriteErrors,
                sDriveStatsNumOfIORequests,
                sDriveStatsNumOfNonRWRequests,
                sDriveStatsNumOfReadRequests,
                sDriveStatsNumOfWriteRequests,
                sDriveStatsStartTime,
                sDriveStatsCollectionTime

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


    END

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

