-- ===========================================================
-- Copyright (C) 2007 by H3C TECHNOLOGIES. All rights reserved.
-- Description: The MIB is designed to manage the storage system.
-- Reference:
-- Version: V1.1
-- History:
--   V1.0 2007-09-04 created by lizhicheng
--   V1.1 2010-01-20 modified by zhanglei
--        In IMPORTS, add entPhysicalName, entPhysicalDescr, PhysicalIndex,
--        h3cSoftwareInfoString, SnmpAdminString, h3cEntityExtOperStatus,
--        h3cEntityExtPhysicalIndex, h3cEntityExtTemperature,
--        h3cEntityExtCriticalLowerTemperatureThreshold, h3cRaidUuid,
--        h3cRaidName, h3cRaidHideState, h3cRaidRunState
--        Add h3cExtVoltageTable to h3cStoragePhysicalInfo
--        Add h3cStorageTraps to h3cStorageMibObjects
--        Add h3cStorageTrapsPrefix and h3cStorageTrapsObjects to h3cStorageTraps
--        Add h3cSoftwareInfoString to h3cStorageTrapsObjects
--        Add notification objects:
--            h3cStorCriticalLowerTemperatureThresholdNotification
--            h3cStorTemperatureTooLow
--            h3cExtVoltageLowThresholdNotification
--            h3cExtVoltageHighThresholdNotification
--            h3cExtCriticalVoltageLowThresholdNotification
--            h3cExtCriticalVoltageHighThresholdNotification
--            h3cExtVoltageTooLow
--            h3cExtVoltageTooHigh
--            h3cExtBatteryStateNotification
--            h3cDiskIOErrorNotification
--            h3cRaidCreateNotification
--            h3cRaidDeleteNotification
--            h3cRaidHideStateNotification
--            h3cRaidRunStateNotification
--            h3cRaidImportNotification
--            h3cRaidRebuildStartNotification
--            h3cRaidRebuildFinishNotification
--            h3cRaidRebuildPauseNotification
--            h3cRaidRebuildInterruptNotification
--            h3cSoftwareModuleFailNotification
--            h3cRaidBatteryExpiredNotification
--            h3cRaidBatteryWillExpireNotification
--            h3cLvOnlineFailNotification
--            h3cLvOfflineFailNotification
--            h3cRaidRunNotification
--            h3cExtVoltageNormal
--            h3cDiskPowerOnNotification
--            h3cDiskPowerOffNotification
-- =================================================================
H3C-STORAGE-MIB DEFINITIONS ::= BEGIN
IMPORTS
        Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB
        entPhysicalIndex, entPhysicalName, entPhysicalDescr, PhysicalIndex
    FROM ENTITY-MIB
        H3cStorageCapableState, H3cStorageEnableState, H3cStorageActionType,
        H3cStorageLedStateType, H3cWwpnListType, h3cStorageRef, H3cSoftwareInfoString
    FROM H3C-STORAGE-REF-MIB
        SnmpAdminString
    FROM SNMP-FRAMEWORK-MIB
        h3cEntityExtOperStatus, h3cEntityExtPhysicalIndex, h3cEntityExtTemperature,
        h3cEntityExtCriticalLowerTemperatureThreshold, h3cEntityExtShutdownLowerTemperatureThreshold
    FROM H3C-ENTITY-EXT-MIB
        h3cRaidUuid, h3cRaidName, h3cRaidHideState, h3cRaidRunState
    FROM H3C-RAID-MIB
        h3cDiskPowerOffReason
    FROM H3C-DISK-MIB;

h3cStorageMIB 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 storage device,
        such as the property, configuration and management."
    ::= { h3cStorageRef 1 }

h3cStorageMibObjects OBJECT IDENTIFIER ::= { h3cStorageMIB 1 }

h3cStorageServerInfo    OBJECT IDENTIFIER ::= { h3cStorageMibObjects 1 }

h3cStoragePhysicalInfo  OBJECT IDENTIFIER ::= { h3cStorageMibObjects 2 }

-- The storage server's information are described here.
h3cStorageServerCapability  OBJECT IDENTIFIER ::= { h3cStorageServerInfo 1 }


h3cRaidCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support raid management."
    ::={ h3cStorageServerCapability 1 }

h3cFcCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support FC(fiber channel) management."
    ::={ h3cStorageServerCapability 2 }

h3cNasCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support NAS(Network Attached Storage)."
    ::={ h3cStorageServerCapability 3 }

h3cAdaptiveRepCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support adaptive replication.
        With adaptive replication option, data from the primary resource is continuously
        replicated to a replication resource unless the system determines it is not practical
        or possible, such as when there is insufficient bandwidth.
        For continuous replication to occur, a continuous replication resource is used to
        stage the data being replicated from the primary resource.
        Similar to a cache, as soon as data comes into the continuous replication resource,
        it is written to the replication resource."
    ::={ h3cStorageServerCapability 4 }

h3cRemoteRepCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support remote replication."
    ::={ h3cStorageServerCapability 5 }

h3cSafeCacheCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support safe cache."
    ::={ h3cStorageServerCapability 6 }

h3cSyncMirrorCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support synchronized mirror."
    ::={ h3cStorageServerCapability 7 }

h3cAsyncMirrorCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support asynchronous mirror."
    ::={ h3cStorageServerCapability 8 }

h3cTimeMarkCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support time mark."
    ::={ h3cStorageServerCapability 9 }

h3cSseCapability OBJECT-TYPE
    SYNTAX      H3cStorageCapableState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support SSE(Storage Service Enable)."
    ::={ h3cStorageServerCapability 10 }


-- The storage server's target config information are described here.
h3cStorageTargetConfig  OBJECT IDENTIFIER ::= { h3cStorageServerInfo 2 }

h3ciSCSITargetEnable OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support iSCSI target."
    DEFVAL { disable }
    ::={ h3cStorageTargetConfig 1 }

h3cFcTargetEnable OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the agent support FC target."
    ::={ h3cStorageTargetConfig 2 }


-- The server's physical information are described.
h3cStorageServerPhysInfo  OBJECT IDENTIFIER ::= { h3cStorageServerInfo 3 }

h3cServerLocationLedState OBJECT-TYPE
    SYNTAX      H3cStorageLedStateType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the state of storage device's location led."
    ::={ h3cStorageServerPhysInfo 1 }

h3cServerResetButtonState OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the reset button is enable."
    DEFVAL { enable }
    ::={ h3cStorageServerPhysInfo 2 }

h3cServerPowerButtonState OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the power button is enable."
    DEFVAL { enable }
    ::={ h3cStorageServerPhysInfo 3 }

h3cServerPowerState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            online(1),
            onlinebypass(2),
            onbattery(3),
            unknown(4)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of power supply in the server,
        and is valid when UPS has been configured successful.
        The value 'online' means power supply is well-balanced.
        The value 'onlinebypass' means supply power without ups.
        The value 'onbattery' means supply power with battery.
        The value 'unknown' means the power supply state is unknown."
    ::={ h3cStorageServerPhysInfo 4 }


-- DEU Entity Extend Table
-- This table described some information about the DEU.
h3cDeuTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDeuEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some information of a particular DEU(Disk Enclosure
        Unit)."
    ::= { h3cStoragePhysicalInfo 1 }

h3cDeuEntry OBJECT-TYPE
    SYNTAX      H3cDeuEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable
        to a particular DEU."
    INDEX
        {
            h3cDeuIndex
        }

    ::= { h3cDeuTable 1 }

H3cDeuEntry ::= SEQUENCE
    {
        h3cDeuIndex         Integer32,
        h3cDeuIDLed         H3cStorageLedStateType,
        h3cDeuDiskScan      H3cStorageActionType
    }

h3cDeuIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the index of h3cDeuTable. The DEU identified
        by a particular value of this index is the same object as identified
        by the same value of entPhysicalIndex."
    ::= { h3cDeuEntry 1 }

h3cDeuIDLed OBJECT-TYPE
    SYNTAX      H3cStorageLedStateType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the state of storage DEU's led."
    DEFVAL { off }
    ::= { h3cDeuEntry 2 }

h3cDeuDiskScan OBJECT-TYPE
    SYNTAX      H3cStorageActionType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The operation of scanning the table. When the value of this object
        is set to 'action', the operation of disk scanning is touched off."
    ::= { h3cDeuEntry 3 }

-- Storage Server Network Interface Table
-- This table described the interface information of the network.
h3cStorageInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cStorageInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table describes the interface information of the network."
    ::= { h3cStoragePhysicalInfo 2 }

h3cStorageInterfaceEntry OBJECT-TYPE
    SYNTAX      H3cStorageInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable
        to a particular interface."
    INDEX
        {
            h3cStorageInterfaceIndex
        }

    ::= { h3cStorageInterfaceTable 1 }

H3cStorageInterfaceEntry ::= SEQUENCE
    {
        h3cStorageInterfaceIndex          Integer32,
        h3cStorageInterfaceGateway        InetAddress,
        h3cStorageInterfaceGatewayType    InetAddressType,
        h3cStorageInterfaceMTU            INTEGER
    }

h3cStorageInterfaceIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the index of H3cStorageInterfaceEntry. The
        interface identified by this index is the same interface as identified
        by the same value of ifIndex."
    ::= { h3cStorageInterfaceEntry 1 }


h3cStorageInterfaceGateway OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the gateway address of interface."
    ::= { h3cStorageInterfaceEntry 2 }

h3cStorageInterfaceGatewayType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the gateway address type of interface."
    ::= { h3cStorageInterfaceEntry 3 }

h3cStorageInterfaceMTU OBJECT-TYPE
    SYNTAX      INTEGER
        {
            mtu1(1500),
            mtu2(9000)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the MTU of interface."
    ::= { h3cStorageInterfaceEntry 4 }


-- Storage Server Bonding Interface Table
-- This table described the information of the bonding interface.
h3cBondingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cBondingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table describes the information of the Bonding interface."
    ::= { h3cStoragePhysicalInfo 3 }

h3cBondingEntry OBJECT-TYPE
    SYNTAX      H3cBondingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable to a particular
        Bonding interface."
    INDEX
        {
            h3cBondingIndex
        }

    ::= { h3cBondingTable 1 }

H3cBondingEntry ::= SEQUENCE
    {
        h3cBondingIndex       Integer32,
        h3cBondingPortList    OCTET STRING
    }

h3cBondingIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the index of h3cBondingEntry. The interface
        identified by this index is the same interface as identified by the
        same value of ifIndex."
    ::= { h3cBondingEntry 1 }

h3cBondingPortList OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "An entry contains management information applicable to a particular bonding interface.
         Every two bytes describe the ifIndex of an interface, and an interface belongs
         to one bonding group only. An interface should be deleted from the portlist
         of the bonding group it belongs to before it is added to another bonding group."
    ::= { h3cBondingEntry 2 }

-- SCSI Adapter Table
-- This table described some information of the SCSI adapter.
h3cScsiAdapterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cScsiAdapterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table containing some information of the SCSI(Small Computer
        System interface) adapter."
    ::= { h3cStoragePhysicalInfo 4 }

h3cScsiAdapterEntry OBJECT-TYPE
    SYNTAX      H3cScsiAdapterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable
        to a particular SCSI adapter."
    INDEX
        {
            entPhysicalIndex,
            h3cAdapterNumber
        }
    ::= { h3cScsiAdapterTable 1 }

H3cScsiAdapterEntry ::= SEQUENCE
    {
        h3cAdapterNumber              Integer32,
        h3cAdapterDesc                OCTET STRING,
        h3cAdapterType                INTEGER,
        h3cFcAdapterMode              INTEGER,
        h3cFcAdapterInitiatorWwpnName H3cWwpnListType,
        h3cFcAdapterTargetWwpnName    H3cWwpnListType,
        h3cFcAdapterPortState         INTEGER,
        h3cFcAdapterModeSwitch        H3cStorageEnableState
    }

h3cAdapterNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the index of the adapter ."
    ::= { h3cScsiAdapterEntry 1 }

h3cAdapterDesc OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes some information of the adapter."
    ::= { h3cScsiAdapterEntry 2 }

h3cAdapterType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            scsi(1),
            fc(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the type of adapter. If the value of this
        object is not equal to 'fc', the associated object(such as h3cFcAdapterMode,
        h3cFcAdapterIWWPNs,h3cFcAdapterTWWPNs,h3cFcAdapterPortState,h3cFcAdapterModeSwitch)
        will be invalid."
    ::= { h3cScsiAdapterEntry 3 }

h3cFcAdapterMode OBJECT-TYPE
    SYNTAX      INTEGER
        {
            initiator(1),
            target(2),
            dual(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the mode type of adapter."
    ::= { h3cScsiAdapterEntry 4 }

h3cFcAdapterInitiatorWwpnName OBJECT-TYPE
    SYNTAX      H3cWwpnListType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the FC's adapter WWPN(World Wide Port
        Name) numbers."
    ::= { h3cScsiAdapterEntry 5 }

h3cFcAdapterTargetWwpnName OBJECT-TYPE
    SYNTAX      H3cWwpnListType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the FC's target WWPN numbers."
    ::= { h3cScsiAdapterEntry 6 }

h3cFcAdapterPortState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            linkup(1),
            linkdown(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of adapter's interface."
    ::= { h3cScsiAdapterEntry 7 }

h3cFcAdapterModeSwitch OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies if the adapter work on a target mode."
    DEFVAL { disable }
    ::= { h3cScsiAdapterEntry 8 }

-- Voltage Entity Extend Table
-- This table described some entity extend information about the Voltage.
h3cExtVoltageTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cExtVoltageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity extend information of the voltage."
    ::= { h3cStoragePhysicalInfo 5 }

h3cExtVoltageEntry OBJECT-TYPE
    SYNTAX      H3cExtVoltageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing management information applicable to the voltage."
    INDEX
        {
            h3cExtVoltagePhysicalIndex
        }
    ::= { h3cExtVoltageTable 1 }

H3cExtVoltageEntry ::= SEQUENCE
    {
        h3cExtVoltagePhysicalIndex          PhysicalIndex,
        h3cExtVoltagePhysicalName           SnmpAdminString,
        h3cExtVoltage                       Integer32,
        h3cExtVoltageLowThreshold           Integer32,
        h3cExtVoltageHighThreshold          Integer32,
        h3cExtCriticalVoltageLowThreshold   Integer32,
        h3cExtCriticalVoltageHighThreshold  Integer32,
        h3cExtShutdownVoltageLowThreshold   Integer32,
        h3cExtShutdownVoltageHighThreshold  Integer32
    }

h3cExtVoltagePhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "This object identifies the entity index of voltage."
    ::= { h3cExtVoltageEntry 1 }

h3cExtVoltagePhysicalName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the entity name of voltage."
    ::= { h3cExtVoltageEntry 2 }

h3cExtVoltage OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The voltage for the entity."
    ::= { h3cExtVoltageEntry 3 }

h3cExtVoltageLowThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The low-threshold for the voltage.
            When voltage is lower than low-threshold, a notification will be
            sent."
    ::= { h3cExtVoltageEntry 4 }

h3cExtVoltageHighThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The high-threshold for the voltage.
            When voltage is higher than high-threshold, a notification will be
            sent."
    ::= { h3cExtVoltageEntry 5 }

h3cExtCriticalVoltageLowThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The critical low threshold for voltage.
            If the voltage is lower too much than the entity needs,
            the entity will halt."
    ::= { h3cExtVoltageEntry 6 }

h3cExtCriticalVoltageHighThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The critical high threshold for voltage.
            If the voltage is higher too much than the entity needs,
            the entity will halt."
    ::= { h3cExtVoltageEntry 7 }

h3cExtShutdownVoltageLowThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The voltage is lower than the critical low threshold.
            If the voltage is lower too much than the entity needs,
            the entity halts now."
    ::= { h3cExtVoltageEntry 8 }

h3cExtShutdownVoltageHighThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The voltage is higher than the critical high threshold.
            If the voltage is higher too much than the entity needs,
            the entity halts now."
    ::= { h3cExtVoltageEntry 9 }

h3cStorageTraps OBJECT IDENTIFIER ::= { h3cStorageMibObjects 3 }

h3cStorageTrapsPrefix OBJECT IDENTIFIER ::= { h3cStorageTraps 0 }

h3cStorageTrapsObjects OBJECT IDENTIFIER ::= { h3cStorageTraps 1 }

h3cSoftwareInfoString OBJECT-TYPE
    SYNTAX      H3cSoftwareInfoString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies if the software's information."
    ::= { h3cStorageTrapsObjects 1 }

h3cStorCriticalLowerTemperatureThresholdNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cEntityExtPhysicalIndex,
        entPhysicalName,
        h3cEntityExtTemperature,
        h3cEntityExtCriticalLowerTemperatureThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cStorCriticalLowerTemperatureThresholdNotification indicates
        the temperature is lower than the threshold.

        If the temperature is lower too much than the entity needs,
        the entity will halt."
    ::= { h3cStorageTrapsPrefix 1 }

h3cStorTemperatureTooLow NOTIFICATION-TYPE
    OBJECTS {
        h3cEntityExtPhysicalIndex,
        entPhysicalName,
        h3cEntityExtTemperature,
        h3cEntityExtShutdownLowerTemperatureThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cStorTemperatureTooLow indicates the temperature is
        lower than the threshold.

        If the temperature is lower too much than the entity needs,
        the entity halts now."
    ::= { h3cStorageTrapsPrefix 2 }

h3cExtVoltageLowThresholdNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtVoltageLowThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtVoltageLowThresholdNotification indicates
        the Voltage is lower than the low-threshold."
    ::= { h3cStorageTrapsPrefix 3 }

h3cExtVoltageHighThresholdNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtVoltageHighThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtVoltageHighThresholdNotification indicates
        the Voltage is lower than the high-threshold."
    ::= { h3cStorageTrapsPrefix 4 }

h3cExtCriticalVoltageLowThresholdNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtCriticalVoltageLowThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtCriticalVoltageLowThresholdNotification indicates
        the Voltage is lower than the critical low threshold."
    ::= { h3cStorageTrapsPrefix 5 }

h3cExtCriticalVoltageHighThresholdNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtCriticalVoltageHighThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtCriticalVoltageHighThresholdNotification indicates
        the Voltage is higher than the critical high threshold."
    ::= { h3cStorageTrapsPrefix 6 }

h3cExtVoltageTooLow NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtShutdownVoltageLowThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtVoltageTooLowNotification indicates
        the Voltage is lower than the critical low threshold,
        and the entity halt now!"
    ::= { h3cStorageTrapsPrefix 7 }

h3cExtVoltageTooHigh NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtShutdownVoltageHighThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cExtVoltageTooHighNotification indicates
        the Voltage is higher than the critical high threshold,
        and the entity halt now!"
    ::= { h3cStorageTrapsPrefix 8 }

h3cExtBatteryStateNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cEntityExtPhysicalIndex,
        entPhysicalName,
        h3cEntityExtOperStatus
        }
    STATUS current
    DESCRIPTION
        "The h3cExtBatteryStateNotification indicates
        the raid battery entity's state changes."
    ::= { h3cStorageTrapsPrefix 9 }

h3cDiskIOErrorNotification NOTIFICATION-TYPE
    OBJECTS { entPhysicalDescr }
    STATUS current
    DESCRIPTION
        "The h3cDiskIOErrorNotification indicates that a disk occurred I/O error."
    ::= { h3cStorageTrapsPrefix 10 }

h3cRaidCreateNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidCreateNotification indicates that a array is created."
    ::= { h3cStorageTrapsPrefix 11 }

h3cRaidDeleteNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidDeleteStateNotification indicates that a array is deleted."
    ::= { h3cStorageTrapsPrefix 12 }

h3cRaidHideStateNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName,
        h3cRaidHideState
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidFailedNotification indicates that a array hide or unhide."
    ::= { h3cStorageTrapsPrefix 13 }

h3cRaidRunStateNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName,
        h3cRaidRunState
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidDegradeNotification indicates that a array state change."
    ::= { h3cStorageTrapsPrefix 14 }

h3cRaidImportNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidFailedNotification indicates that a thrid array is imported."
    ::= { h3cStorageTrapsPrefix 15 }

h3cRaidRebuildStartNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidRebuildStartNotification indicates that
        a array start to rebuild."
    ::= { h3cStorageTrapsPrefix 16 }

h3cRaidRebuildFinishNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidRebuildStartNotification indicates that
        a array fininsh rebuild."
    ::= { h3cStorageTrapsPrefix 17 }

h3cRaidRebuildPauseNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidRebuildPauseNotification indicates that
        pause a array rebuilding."
    ::= { h3cStorageTrapsPrefix 18 }

h3cRaidRebuildInterruptNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidRebuildInterruptNotification indicates that
        interrupt a array rebuilding."
    ::= { h3cStorageTrapsPrefix 19 }

h3cSoftwareModuleFailNotification NOTIFICATION-TYPE
    OBJECTS {  h3cSoftwareInfoString }
    STATUS current
    DESCRIPTION
        "The h3cSoftwareModuleFailNotification indicates that software module(s) fail."
    ::= { h3cStorageTrapsPrefix 20 }

h3cRaidBatteryExpiredNotification NOTIFICATION-TYPE
    STATUS current
    DESCRIPTION
        "The h3cRaidBatteryExpiredNotification indicates
        RAID Battery lifetime had expired."
    ::= { h3cStorageTrapsPrefix 21 }

h3cRaidBatteryWillExpireNotification NOTIFICATION-TYPE
    STATUS current
    DESCRIPTION
        "The h3cRaidBatteryWillExpireNotification indicates
        RAID Battery lifetime will expire."
    ::= { h3cStorageTrapsPrefix 22 }

h3cLvOnlineFailNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cLvOnlineFailNotification indicates lv(s) on vd fail to online."
    ::= { h3cStorageTrapsPrefix 23 }

h3cLvOfflineFailNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cLvOfflineFailNotification indicates lv(s) on vd fail to offline."
    ::= { h3cStorageTrapsPrefix 24 }

h3cRaidRunNotification NOTIFICATION-TYPE
    OBJECTS {
        h3cRaidUuid,
        h3cRaidName
        }
    STATUS current
    DESCRIPTION
        "The h3cRaidRunNotification indicates that a array is running."
    ::= { h3cStorageTrapsPrefix 25 }

h3cExtVoltageNormal NOTIFICATION-TYPE
    OBJECTS {
        h3cExtVoltagePhysicalIndex,
        h3cExtVoltagePhysicalName,
        h3cExtVoltage,
        h3cExtVoltageLowThreshold,
        h3cExtVoltageHighThreshold
        }
    STATUS current
    DESCRIPTION
        "The h3cStorVoltageRecoveryNotification indicates
        the Voltage has recovered in reference."
    ::= { h3cStorageTrapsPrefix 26 }

h3cDiskPowerOnNotification NOTIFICATION-TYPE
    OBJECTS { entPhysicalDescr }
    STATUS current
    DESCRIPTION
        "The h3cDiskPowerOnNotification indicates that
         a disk is power on."
    ::= { h3cStorageTrapsPrefix 27 }

h3cDiskPowerOffNotification NOTIFICATION-TYPE
    OBJECTS {
        entPhysicalDescr,
        h3cDiskPowerOffReason
        }
    STATUS current
    DESCRIPTION
        "The h3cDiskPowerOffNotification indicates that
         a disk is power off."
    ::= { h3cStorageTrapsPrefix 28 }

END
