-- ===========================================================
-- Copyright (C) 2007 by H3C TECHNOLOGIES. All rights reserved.
-- Description: The MIB is designed to manage the storage system.
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 2007-09-04 created by lizhicheng
-- =================================================================
H3C-STORAGE-MIB DEFINITIONS ::= BEGIN
IMPORTS
        Counter32, Integer32,
        OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        TEXTUAL-CONVENTION
    FROM SNMPv2-TC
        InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB
        entPhysicalIndex
    FROM ENTITY-MIB
        H3cStorageCapableState, H3cStorageEnableState, H3cStorageActionType,
        H3cStorageLedStateType, H3cWwpnListType, h3cStorageRef
    FROM H3C-STORAGE-REF-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 }

END
