-- ===========================================================
-- Copyright (C) 2004 by H3C Technologies. All rights reserved.
-- Description: The MIB is designed to manage the disk.
-- Reference:
-- Version: V1.1
-- History:
--   V1.0 2007-09-04 created by lizhicheng
--   V1.1 2010-02-05
--        Add h3cDiskPowerOffReason to h3cDiskEntry
-- =================================================================
H3C-DISK-MIB DEFINITIONS ::= BEGIN
IMPORTS
        Integer32, OBJECT-TYPE, MODULE-IDENTITY
    FROM SNMPv2-SMI
        h3cStorageRef, H3cStorageEnableState, H3cStorageActionType
    FROM H3C-STORAGE-REF-MIB;

h3cDisk MODULE-IDENTITY
    LAST-UPDATED "200709041452Z"
    ORGANIZATION
        "H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         Http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "This MIB describes the general information of disk device, include
        the running status, disk interface, and chche management."
    ::= { h3cStorageRef 3 }

h3cDiskMibObjects OBJECT IDENTIFIER ::= { h3cDisk 1 }


-- Disk Entity Extend Table
-- This table described some entity extend information about the disk.
h3cDiskTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDiskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity extend information of the disk."
    ::= { h3cDiskMibObjects 1 }

h3cDiskEntry OBJECT-TYPE
    SYNTAX      H3cDiskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable to the disk."
    INDEX
        {
            h3cDiskIndex
        }

    ::= { h3cDiskTable 1 }

H3cDiskEntry ::= SEQUENCE
    {
        h3cDiskIndex               Integer32,
        h3cDiskPortType            INTEGER,
        h3cDiskPortSpeed           Integer32,
        h3cDiskSize                Integer32,
        h3cDiskFreeSpace           Integer32,
        h3cDiskLocationState       H3cStorageEnableState,
        h3cDiskRunLedState         INTEGER,
        h3cDiskFaultLedState       INTEGER,
        h3cDiskInitialize          H3cStorageActionType,
        h3cDiskGlobalSpare         INTEGER,
        h3cDiskLocalSpare          INTEGER,
        h3cDiskReadCache           H3cStorageEnableState,
        h3cDiskWriteCache          H3cStorageEnableState,
        h3cDiskPowerOffReason      INTEGER
    }

h3cDiskIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the entity index of disk. The object
        identified by this index is the same object as identified by the
        same value of entPhysicalIndex."
    ::= { h3cDiskEntry 1 }

h3cDiskPortType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            sata(1),
            pata(2),
            sas(3),
            scsi(4),
            ieee1394(5),
            fcal(6)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the interface type of disk.
        The value 'sata' means serial advanced technology attachment.
        The value 'pata' means parallel advanced technology attachment.
        The value 'sas' means serial attached SCSI.
        The value 'scsi' means small computer system interface.
        The value 'ieee1394' means a type of bus standard.
        The value 'fcal' means fiber channel arbitrated loop."
    ::= { h3cDiskEntry 2 }

h3cDiskPortSpeed OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB/second"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the speed of disk interface.
        The units is million bytes per second."
    ::= { h3cDiskEntry 3 }

h3cDiskSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the size of disk's total space. The units
        is million bytes."
    ::= { h3cDiskEntry 4 }


h3cDiskFreeSpace OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the size of spare space of the disk. The
        units is million bytes."
    ::= { h3cDiskEntry 5 }

h3cDiskLocationState OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the led used to confirm the
        position of disk is enable."
    DEFVAL { enable }
    ::= { h3cDiskEntry 6 }

h3cDiskRunLedState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            on(1),
            blink(2),
            fastblink(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the runing state of the disk.
        The value of 'on' means the blue led is on, and the disk works well.
        The value of 'blink' means the blue led is blinking, and the disk
        is being readed or writed.
        The value of 'fastblink' means the blue led is blinking very fast,
        and the disk is being located.
        This object can not be 'fastblink' when the value of associated
        h3cDiskLocationState object is equal to 'disable'."
    ::= { h3cDiskEntry 7 }

h3cDiskFaultLedState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            off(1),
            on(2),
            blink(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the fault state of the disk.
        The value of 'off' means the yellow led is go out, and the disk
        works well.
        The value of 'on' means the yellow led is on, and the disk break
        down.
        The value of 'blink' means the yellow led is blinking, and a group
        of raid disk is being synchronized."
    ::= { h3cDiskEntry 8 }

h3cDiskInitialize OBJECT-TYPE
    SYNTAX      H3cStorageActionType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The operation of initialize the disk. When the value of this object
        is set to 'action', the operation of disk initialize are touched off."
    ::= { h3cDiskEntry 9 }

h3cDiskGlobalSpare OBJECT-TYPE
    SYNTAX      INTEGER
        {
            globalSpare(1),
            nonglobalSpare(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the disk is a global hot spare disk.
        The value 'globalSpare' means it is a global spare disk, and
        the value 'nonglobalSpare' means not."
    ::= { h3cDiskEntry 10 }

h3cDiskLocalSpare OBJECT-TYPE
    SYNTAX      INTEGER
        {
            localSpare(1),
            nonlocalSpare(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the disk is a specific hot spare disk.
        The value 'localSpare' means it is a local spare disk, and
        'nonlocalSpare' means not."
    ::= { h3cDiskEntry 11 }

h3cDiskReadCache OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the state of read cache."
    DEFVAL { enable }
    ::= { h3cDiskEntry 12 }


h3cDiskWriteCache OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the state of write cache."
    DEFVAL { enable }
    ::= { h3cDiskEntry 13 }

h3cDiskPowerOffReason OBJECT-TYPE
    SYNTAX      INTEGER
        {
            environmentUnstable(1),
            mediumError(2),
            smartCheckError(3),
            generalError(4)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the reason of disk poweroff.
        The value 'environmentUnstable' means disk poweroff and may poweron again.
        The value 'mediumError' means disk poweroff and never poweron.
        The value 'smartCheckError' means disk's SMART check failed and poweroff.
        The value 'generalError' means disk poweroff because of general error."
    ::= { h3cDiskEntry 14 }

END
