-- ===========================================================
-- Copyright (C) 2007 by H3C TECHNOLOGIES. All rights reserved.
-- Description: The MIB is designed to manage the snap of storage device.
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 2007-09-14 created by yangqi
-- =================================================================
H3C-STORAGE-SNAP-MIB DEFINITIONS ::= BEGIN
IMPORTS
        Counter32, Integer32,
        OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, TruthValue, DateAndTime, RowStatus
    FROM SNMPv2-TC
        InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB
        entPhysicalIndex
    FROM ENTITY-MIB
        H3cStorageOnlineState, H3cStorageEnableState, H3cStorageActionType,
        H3cLvIDType, H3cRaidIDType, H3cExtendSelectPolicy, h3cStorageRef
    FROM H3C-STORAGE-REF-MIB;

h3cStorageSnap MODULE-IDENTITY
    LAST-UPDATED "200709141452Z"
    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 about snap of storage device."
    ::= { h3cStorageRef 2 }

h3cSnapMibObjects OBJECT IDENTIFIER ::= { h3cStorageSnap 1 }

h3cGlobalSnapSettingsObject  OBJECT IDENTIFIER ::= { h3cSnapMibObjects 1 }
h3cAddtionalSpaceMaxSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "TB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the maximal size of snapshot resource, safecache, 
        and Continued replication Resource ."
    ::= { h3cGlobalSnapSettingsObject 1 }

-- Snap Resource Config Table
-- This table described how to config a snap on a special logic volume.
h3cSnapConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cSnapConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config the snapshot resources for special logic
        volumes."
    ::= { h3cSnapMibObjects 2 }

h3cSnapConfigEntry OBJECT-TYPE
    SYNTAX      H3cSnapConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing configuration about the snapshot resource."
    INDEX
        {
            h3cSnapLvIndex
        }

    ::= { h3cSnapConfigTable 1 }

H3cSnapConfigEntry ::= SEQUENCE
    {
        h3cSnapLvIndex             H3cLvIDType,
        h3cSnapAreaId              H3cLvIDType,
        h3cSnapAreaAutoExpand      H3cStorageEnableState,
        h3cSnapAreaThreshold       Integer32,
        h3cSnapAreaIncSize         Integer32,
        h3cSnapAreaMaxSize         Integer32,
        h3cSnapAreaFullDeleteTM    INTEGER,
        h3cSnapAreaNotify          H3cStorageEnableState,
        h3cSnapAreaStatus          H3cStorageOnlineState,
        h3cSnapRaidUuid            H3cRaidIDType,
        h3cSnapRaidSize            Integer32,
        h3cSnapRaidSelectPolicy    H3cExtendSelectPolicy,
        h3cSnapAreaTotalSize       Integer32,
        h3cSnapAreaFreeSize        Integer32,
        h3cSnapExtendTimes         Integer32,
        h3cSnapRowStatus           RowStatus
    }

h3cSnapLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the index of h3cSnapConfigTable. The object
        identified by this index is the same object as identified by the
        same value of h3cLvIndex."
    ::= { h3cSnapConfigEntry 1 }

h3cSnapAreaId OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the snapshot resource of the logic volume."
    ::= { h3cSnapConfigEntry 2 }

h3cSnapAreaAutoExpand OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes if the space of snapshot resource can be expanded
        automatically."
    DEFVAL { disable }
    ::= { h3cSnapConfigEntry 3 }

h3cSnapAreaThreshold OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If h3cSnapAreaAutoExpand is selected, the 'h3cSnapAreaThreshold' means 
        the threshold of the snapshot resource."
    ::= { h3cSnapConfigEntry 4 }

h3cSnapAreaIncSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If h3cSnapAreaAutoExpand is selected, the 'h3cSnapAreaIncSize' means 
        the amount of space to be allocated for each expansion."
    ::= { h3cSnapConfigEntry 5 }


h3cSnapAreaMaxSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If h3cSnapAreaAutoExpand is selected, the 'h3cSnapAreaIncSize' means the
        max size of snapshot resource."
    ::= { h3cSnapConfigEntry 6 }

h3cSnapAreaFullDeleteTM OBJECT-TYPE
    SYNTAX      INTEGER
        {
            rotative(1),
            none(2)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies if the snapshot resource is out of space and expand 
        failed, if the system delete the old timemark until enough space or not."        
    DEFVAL { none }
    ::= { h3cSnapConfigEntry 7 }

h3cSnapAreaNotify OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes if a snapshot notification should be send to the client when the
        system create a timemark."
    ::= { h3cSnapConfigEntry 8 }

h3cSnapAreaStatus OBJECT-TYPE
    SYNTAX      H3cStorageOnlineState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the state of the snapshot resource."
    ::= { h3cSnapConfigEntry 9 }

h3cSnapRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the raid where the snapshot resource is created."
    ::= { h3cSnapConfigEntry 10 }



h3cSnapRaidSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the size designated when the snapshot resource
        is created."
    ::= { h3cSnapConfigEntry 11 }


h3cSnapRaidSelectPolicy OBJECT-TYPE
    SYNTAX      H3cExtendSelectPolicy
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the policy when the snapshot resource is created
        automatically.             
        Note that the value can not be 'none' when the value of associated
        h3cSnapRaidUuid object is equal to null."
    DEFVAL { none }
    ::= { h3cSnapConfigEntry 12 }


h3cSnapAreaTotalSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the current total size of the snapshot resource."
    ::= { h3cSnapConfigEntry 13 }

h3cSnapAreaFreeSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the free size of the snapshot resource."
    ::= { h3cSnapConfigEntry 14 }


h3cSnapExtendTimes OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the times the snapshot resource extended."
    ::= { h3cSnapConfigEntry 15 }
    
h3cSnapRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action of snapshot resource.
        Note that the assocai snapshot resource can not be delete when a snapshot copy is
        processing or the TimeMark is enabled, or the replication is enabled."
    ::= { h3cSnapConfigEntry 16 }


-- Snap Resource Expand Table
-- This table described how to expand a snapshot resource.
h3cSnapExpandTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cSnapExpandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to expand a snapshot resource."
    ::= { h3cSnapMibObjects 3 }

h3cSnapExpandEntry OBJECT-TYPE
    SYNTAX      H3cSnapExpandEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing expand information applicable to the snapshot resource."
    INDEX
        {
            h3cSnapLvIndex,
            h3cSAExpRaidUuid
        }

    ::= { h3cSnapExpandTable 1 }

H3cSnapExpandEntry ::= SEQUENCE
    {
        h3cSAExpRaidUuid        H3cRaidIDType,
        h3cSAExpSize            Integer32,
        h3cSAExpRaidSize        Integer32,
        h3cSnapAreaExpRowStatus RowStatus
    }

h3cSAExpRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cRaidUuid in H3C-RAID-MIB."
    ::= { h3cSnapExpandEntry 1 }

h3cSAExpSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the increased size for snapshot resource when
        expanded. The units is million bytes. The value is always equal to
        zero when read."
    ::= { h3cSnapExpandEntry 2 }


h3cSAExpRaidSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object describes the size for snapshot resource on the raid.
        The units is million bytes. The value is always equal to
        zero when read."
    ::= { h3cSnapExpandEntry 3 }

h3cSnapAreaExpRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the actions to expand the size for snap."
    ::= { h3cSnapExpandEntry 4 }


-- Snap Resource Copy Table
-- This table described how to take a snapshot copy.
h3cSnapCopyTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cSnapCopyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity about snapshot copy."
    ::= { h3cSnapMibObjects 4 }

h3cSnapCopyEntry OBJECT-TYPE
    SYNTAX      H3cSnapCopyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing snapshot copy information applicable."
    INDEX
        {
            h3cSnapLvIndex
        }

    ::= { h3cSnapCopyTable 1 }

H3cSnapCopyEntry ::= SEQUENCE
    {
        h3cSnapCopyLvIndex       H3cLvIDType,
        h3cSnapCopyPercentage    Integer32,
        h3cSnapCopyStartTime     DateAndTime,
        h3cSnapCopySwitch        INTEGER
    }

h3cSnapCopyLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the index of destination logic volume for
        snapshot copy."
    ::= { h3cSnapCopyEntry 1 }

h3cSnapCopyPercentage OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the percentage of snapshot copy. The value
        is equal to zero if the snapshot copy has not started. When finished,
        the value is always equal to '100'."
    ::= { h3cSnapCopyEntry 2 }

h3cSnapCopyStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the time to start the snapshot copy."
    ::= { h3cSnapCopyEntry 3 }

h3cSnapCopySwitch OBJECT-TYPE
    SYNTAX      INTEGER
        {
            start(1),
            stop(2),
            none(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes the actions to start or stop the snapshot copy.
        When read, the value of 'none' will be get.
        Note that if the snapshot resource of source logic volume has not been
        created, the action of snapshot copy will be refused by agent."
    ::= { h3cSnapCopyEntry 4 }


-- TimeMark Resource Config Table
-- This table described how to config a TimeMark resource on a special logic
-- volume.
h3cTimeMarkConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cTimeMarkConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config a TimeMark on a special logic
        volume."
    ::= { h3cSnapMibObjects 5 }

h3cTimeMarkConfigEntry OBJECT-TYPE
    SYNTAX      H3cTimeMarkConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing config information applicable to the TimeMark."
    INDEX
        {
            h3cSnapLvIndex
        }

    ::= { h3cTimeMarkConfigTable 1 }

H3cTimeMarkConfigEntry ::= SEQUENCE
    {
        h3cTimeMarkCounts            Integer32,
        h3cTimeMarkInitializeTime    DateAndTime,
        h3cTimeMarkInterval          Integer32,
        h3cTimeMarkLastTime          DateAndTime,
        h3cTimeMarkTotal             Integer32,
        h3cTimeMarkSwitch            H3cStorageEnableState
    }


h3cTimeMarkCounts OBJECT-TYPE
    SYNTAX      Integer32(1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the max num of TimeMark which can be configed."
    ::= { h3cTimeMarkConfigEntry 1 }

h3cTimeMarkInitializeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the date and time when the first TimeMark
        is created on the logic volume."
    ::= { h3cTimeMarkConfigEntry 2 }

h3cTimeMarkInterval OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the interval when the TimeMark is created
        automatically if the value of this object is not equal to zero.
        The units is second. the min value is 10 seconds."
    ::= { h3cTimeMarkConfigEntry 3 }

h3cTimeMarkLastTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object identifies the date and time when the latest TimeMark
        is created on the logic volume."
    ::= { h3cTimeMarkConfigEntry 4 }

h3cTimeMarkTotal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the current num of TimeMark."
    ::= { h3cTimeMarkConfigEntry 5 }

h3cTimeMarkSwitch OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes enable or disable TimeMark."
    ::= { h3cTimeMarkConfigEntry 6 }


-- TimeMark Resource Create Table
-- This table described how to create a TimeMark on a special logic
-- volume.
h3cTimeMarkCreateTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cTimeMarkCreateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to create a TimeMark on a special logic
        volume."
    ::= { h3cSnapMibObjects 6 }

h3cTimeMarkCreateEntry OBJECT-TYPE
    SYNTAX      H3cTimeMarkCreateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing create information applicable to the TimeMark."
    INDEX
        {
            h3cSnapLvIndex,
            h3cTimeMarkStamp
        }

    ::= { h3cTimeMarkCreateTable 1 }

H3cTimeMarkCreateEntry ::= SEQUENCE
    {
        h3cTimeMarkStamp        DateAndTime,
        h3cTimeMarkComment      OCTET STRING,
        h3cTimeMarkSize         Integer32,
        h3cTimeMarkRowStatus    RowStatus
    }

h3cTimeMarkStamp OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the date and time the TimeMark is created."
    ::= { h3cTimeMarkCreateEntry 1 }

h3cTimeMarkComment OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the comment of the TimeMark."
    ::= { h3cTimeMarkCreateEntry 2 }

h3cTimeMarkSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "KB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the current size of the TimeMark."
    ::= { h3cTimeMarkCreateEntry 3 }

h3cTimeMarkRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create or delete the TimeMark.
        Note that the TimeMark can not be deleted if it is using."
    ::= { h3cTimeMarkCreateEntry 4 }


-- TimeMark Copy Table
-- This table described how to do a TimeMark copy.
h3cTimeMarkCopyTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cTimeMarkCopyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity about a TimeMark copy."
    ::= { h3cSnapMibObjects 7 }

h3cTimeMarkCopyEntry OBJECT-TYPE
    SYNTAX      H3cTimeMarkCopyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing config information applicable to the TimeMark copy."
    INDEX
        {
            h3cSnapLvIndex,
            h3cTimeMarkStamp
        }

    ::= { h3cTimeMarkCopyTable 1 }

H3cTimeMarkCopyEntry ::= SEQUENCE
    {
        h3cTMCopyDestLvId      H3cLvIDType,
        h3cTMCopyPercentage    Integer32,
        h3cTMCopyStartTime     DateAndTime,
        h3cTMCopySwitch        INTEGER
    }


h3cTMCopyDestLvId OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the index of destination logic volume for
        TimeMark copy."
    ::= { h3cTimeMarkCopyEntry 1 }

h3cTMCopyPercentage OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the percentage of TimeMark copy. The value
        is equal to zero if the TimeMark copy has not started. When finished,
        the value is always equal to '100'."
    ::= { h3cTimeMarkCopyEntry 2 }


h3cTMCopyStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the time to start the TimeMark copy."
    ::= { h3cTimeMarkCopyEntry 3 }

h3cTMCopySwitch OBJECT-TYPE
    SYNTAX      INTEGER
        {
            start(1),
            stop(2),
            none(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes the actions to start or stop the TimeMark copy.
        When read, the value of 'none' will be get."
    ::= { h3cTimeMarkCopyEntry 4 }


-- TimeMark Rollback Table
-- This table described how to use a TimeMark to rollback the logic volume.
h3cTimeMarkRollbackTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cTimeMarkRollbackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to use a TimeMark to rollback the logic volume."
    ::= { h3cSnapMibObjects 8 }

h3cTimeMarkRollbackEntry OBJECT-TYPE
    SYNTAX      H3cTimeMarkRollbackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing config information applicable to use a TimeMark to rollback the logic volume."
    INDEX
        {
            h3cSnapLvIndex,
            h3cTimeMarkStamp
        }

    ::= { h3cTimeMarkRollbackTable 1 }

H3cTimeMarkRollbackEntry ::= SEQUENCE
    {
        h3cTMRollbackPercentage    Integer32,
        h3cTMRollbackStartTime     DateAndTime,
        h3cTMRollbackSwitch        H3cStorageActionType
    }

h3cTMRollbackPercentage OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the percentage of rollback."
    ::= { h3cTimeMarkRollbackEntry 1 }

h3cTMRollbackStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the time to start the rollback."
    ::= { h3cTimeMarkRollbackEntry 2 }

h3cTMRollbackSwitch OBJECT-TYPE
    SYNTAX      H3cStorageActionType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes the actions to use a TimeMark to rollback the logic volume.
        Note that once you roll back, you cannot roll forward, all the later TimeMark behind it
        will be deleted."
    ::= { h3cTimeMarkRollbackEntry 3 }


-- Time View Table
-- This table described how to config TimeView on a special TimeMark
-- mark.
h3cTimeViewTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cTimeViewEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config a TimeView on a special
        TimeMark."
    ::= { h3cSnapMibObjects 9 }

h3cTimeViewEntry OBJECT-TYPE
    SYNTAX      H3cTimeViewEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing config information applicable to the TimeView."
    INDEX
        {
            h3cSnapLvIndex,
            h3cTimeViewStamp
        }

    ::= { h3cTimeViewTable 1 }

H3cTimeViewEntry ::= SEQUENCE
    {
        h3cTimeViewStamp     DateAndTime,
        h3cTimeViewID        H3cLvIDType,
        h3cTimeViewName      OCTET STRING,
        h3cTimeViewRowStatus RowStatus
    }
    
h3cTimeViewStamp OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the TimeView. The object identified by this
        index is the same object as identified by the same value of 
        h3cTimeMarkStamp."
    ::= { h3cTimeViewEntry 1 }
    
h3cTimeViewID OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the TimeView. "
    ::= { h3cTimeViewEntry 2 }

h3cTimeViewName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the name of the TimeView."
    ::= { h3cTimeViewEntry 3 }

h3cTimeViewRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the actions to create or delete the TimeView."
    ::= { h3cTimeViewEntry 4 }


-- Logic Volume Replica Config Table
-- This table described how to config logic volume replica.
h3cReplicaConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cReplicaConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config replication for a logic volume."
    ::= { h3cSnapMibObjects 10 }

h3cReplicaConfigEntry OBJECT-TYPE
    SYNTAX      H3cReplicaConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing config information applicable to the replication for a logic volume."
    INDEX
        {
            h3cRepLocalLvIndex
        }

    ::= { h3cReplicaConfigTable 1 }

H3cReplicaConfigEntry ::= SEQUENCE
    {
        h3cRepLocalLvIndex  	    	H3cLvIDType,
        h3cLvRepLocalWay            	INTEGER,
        h3cRepLocalServerIP          	InetAddress,
        h3cRepLocalServerIPType      	InetAddressType,
        h3cRepLocalServerName        	OCTET STRING,
        h3cRepLocalServerUsername    	OCTET STRING,
        h3cRepLocalServerPassword    	OCTET STRING,
        h3cRepRemoteServerIP          	InetAddress,
        h3cRepRemoteServerIPType      	InetAddressType,
        h3cRepRemoteServerName        	OCTET STRING,
        h3cRepRemoteServerUsername    	OCTET STRING,
        h3cRepRemoteServerPassword    	OCTET STRING,
        h3cRepRemoteLvIndex         	H3cLvIDType,
        h3cReplicaMode              	INTEGER,
        h3cReplicaWatermark         	Integer32,
        h3cReplicaWatermarkRetry    	Integer32,
        h3cReplicaInitializeTime    	DateAndTime,
        h3cReplicaInterval          	Integer32,
        h3cReplicaEncrypt           	H3cStorageEnableState,
        h3cReplicaCompress          	H3cStorageEnableState,
        h3cReplicaUseExistTM        	H3cStorageEnableState,
        h3cReplicaProtocol          	INTEGER,
        h3cReplicaScanDiff          	TruthValue,
        h3cReplicaStatSwitch        	INTEGER,
        h3cReplicaRowStatus         	RowStatus
    }


h3cRepLocalLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the local logic volume that is related with 
        replication. The object identified by this index is the same object 
        as identified by the same value of h3cSnapLvIndex."
    ::= { h3cReplicaConfigEntry 1 }

h3cLvRepLocalWay OBJECT-TYPE
    SYNTAX      INTEGER
        {
            outgoing(1),
            incoming(2)            
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of 'outgoing' means the h3cRepLocalLvIndex is the primary logic 
        volume of replication, and the h3cRepRemoteLvIndex is the replica logic volume.
        The value of 'incoming' means the h3cRepLocalLvIndex is the replica logic 
        volume of replication. , and the h3cRepRemoteLvIndex is the primary logic volume."
    ::= { h3cReplicaConfigEntry 2 }

h3cRepLocalServerIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the ip address of local server."
    ::= { h3cReplicaConfigEntry 3 }

h3cRepLocalServerIPType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the ip address type of local server."
    ::= { h3cReplicaConfigEntry 4 }

h3cRepLocalServerName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the name of local server."
    ::= { h3cReplicaConfigEntry 5 }

h3cRepLocalServerUsername OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the username of local server."
    ::= { h3cReplicaConfigEntry 6 }

h3cRepLocalServerPassword OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the password of local server."
    ::= { h3cReplicaConfigEntry 7 }

h3cRepRemoteServerIP OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the ip address of remote server."
    ::= { h3cReplicaConfigEntry 8 }

h3cRepRemoteServerIPType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the ip address type of remote server."
    ::= { h3cReplicaConfigEntry 9 }

h3cRepRemoteServerName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the name of remote server."
    ::= { h3cReplicaConfigEntry 10 }

h3cRepRemoteServerUsername OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the username of remote server."
    ::= { h3cReplicaConfigEntry 11 }

h3cRepRemoteServerPassword OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the password of remote server."
    ::= { h3cReplicaConfigEntry 12 }

h3cRepRemoteLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the logic volume of remote server."
    ::= { h3cReplicaConfigEntry 13 }

h3cReplicaMode OBJECT-TYPE
    SYNTAX      INTEGER
        {
            adaptive(1),
            remote(2),
            none(3)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the replication mode:
        The value of 'adaptive' means that data from the primary resource is 
        continuously replicated to a replica resource unless the system determines 
        it is not practical or possible.
        The value of 'remote' means that a snapshot is taken of the primary resource at 
        prescribed intervals based on the criteria you set (schedule and/or watermark 
        value).
        Note that the associated Continuous Replication Resource can not be created
        if the value of this boject is not equal to 'adaptive'."
    ::= { h3cReplicaConfigEntry 14 }

h3cReplicaWatermark OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the size of watermark which means a replication is scheduled."
    ::= { h3cReplicaConfigEntry 15 }

h3cReplicaWatermarkRetry OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If the 'h3cReplicaWatermark' is set, This object identifies the interval time to 
        retry if the last replication is failed. 
        The units is minute."
    ::= { h3cReplicaConfigEntry 16 }

h3cReplicaInitializeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the time to start an initial replication."
    ::= { h3cReplicaConfigEntry 17 }

h3cReplicaInterval OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies how often the replication should be repeated after initial 
        replication. The units is minute."
    ::= { h3cReplicaConfigEntry 18 }

h3cReplicaEncrypt OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the encrypt option is enable or diable."
    DEFVAL { disable }
    ::= { h3cReplicaConfigEntry 19 }

h3cReplicaCompress OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the compress option is enable or diable."
    DEFVAL { disable }
    ::= { h3cReplicaConfigEntry 20 }

h3cReplicaUseExistTM OBJECT-TYPE
    SYNTAX      H3cStorageEnableState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies if using the exist TimeMark to replicate or not."
    DEFVAL { disable }
    ::= { h3cReplicaConfigEntry 21 }

h3cReplicaProtocol OBJECT-TYPE
    SYNTAX      INTEGER
        {
            tcp(1),
            rudp(2)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the protocol about replication. The value 'tcp' means
        Transmission Control Protocol, and 'rudp' means Reliable User Datagram Protocol."
    ::= { h3cReplicaConfigEntry 22 }

h3cReplicaScanDiff OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the system to scan both the primary and replica resource 
        to determine how much data needs to be synchronized."
    ::= { h3cReplicaConfigEntry 23 }

h3cReplicaStatSwitch OBJECT-TYPE
    SYNTAX      INTEGER
        {
            promte(1),
            sync(2),
            scan(3),
            reversal(4),
            stop(5),
            suspend(6),
            resume(7),
            none(8)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action how to operate the replica.
        When read , a value of 'none' will be get.
        The value of 'promte' means remove the replication relation and promote 
        the remote copy on the target server.
        The value of 'sync' means synchronize mannually (force a replication that 
        is not scheduled.)        
        The value of 'scan' means scan the delta data between primary resource and 
        replica resource.
        The value of 'reversal' means switch the roles of the primary resource and 
        replica resource. The replication configuration is maintained. The primary 
        and replica must be synchronized in order to reverse a replica. 
        The value of 'stop' means stop a replication that is currently in progress.
        The value of 'suspend' means suspend future replications from automatically 
        being triggered by replication policies (watermark, interval, time). This will 
        not stop a replication that is currently in progress.
        The value of 'resume' means resume the replication status from suspended to 
        normal.
        Note that if the action of 'upgrade' is executed successfully, this replica
        resource will become a normal logic volume, and this entry will be deleted
        automatically.
        Note that if the action of 'reversal' is executed successfully, Clients will 
        be disconnected from the former primary resource."
    ::= { h3cReplicaConfigEntry 24 }

h3cReplicaRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to enable or disable the replication."
    ::= { h3cReplicaConfigEntry 25 }

-- Logic Volume Replication State Table
-- This table described the replication state.
h3cReplicaStateTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cReplicaStateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to show replication state."
    ::= { h3cSnapMibObjects 11 }

h3cReplicaStateEntry OBJECT-TYPE
    SYNTAX      H3cReplicaStateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing show information applicable to the replication state."
    INDEX
        {
            h3cRepLocalLvIndex
        }

    ::= { h3cReplicaStateTable 1 }

H3cReplicaStateEntry ::= SEQUENCE
    {
        h3cReplicaDelta              Integer32,
        h3cReplicaLastSyncTime       DateAndTime,
        h3cReplicaNextSyncTime       DateAndTime,
        h3cReplicaSyncTotalSize      Integer32,
        h3cReplicaSyncCurPercentage  Integer32,
        h3cReplicaSyncPerformance    Integer32,
        h3cReplicaRunStatus          INTEGER
    }

h3cReplicaDelta OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the size of delta data after last sync."
    ::= { h3cReplicaStateEntry 1 }

h3cReplicaLastSyncTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the date and time when last sync is taken."
    ::= { h3cReplicaStateEntry 2 }

h3cReplicaNextSyncTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the date and time when next sync will be
        taken."
    ::= { h3cReplicaStateEntry 3 }

h3cReplicaSyncTotalSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies how much data need to be synchronized to 
        the replica resource for current replication."
    ::= { h3cReplicaStateEntry 4 }

h3cReplicaSyncCurPercentage OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies how much data has been synchronized to the 
        replica resource for current replication."
    ::= { h3cReplicaStateEntry 5 }

h3cReplicaSyncPerformance OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the performance of the synchronize. The unit is MB/s."
    ::= { h3cReplicaStateEntry 6 }

h3cReplicaRunStatus OBJECT-TYPE
    SYNTAX      INTEGER
        {
            suspend(1),
            idle(2),
            stop(3),
            sync(4),
            scan(5)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of the replica."
    ::= { h3cReplicaStateEntry 7 }



-- Continued replication Resource Config Table
-- This table described how to config Continuous Replication Resource for a adaptive replication.
h3cCDRConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cCDRConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config Continuous Replication Resource."
    ::= { h3cSnapMibObjects 12 }

h3cCDRConfigEntry OBJECT-TYPE
    SYNTAX      H3cCDRConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to Continuous Replication 
        Resource of the logic volume."
    INDEX
        {
            h3cCDRLvIndex
        }

    ::= { h3cCDRConfigTable 1 }

H3cCDRConfigEntry ::= SEQUENCE
    {
        h3cCDRLvIndex         H3cLvIDType,
        h3cCDRID              Integer32,
        h3cCDRStatus          H3cStorageOnlineState,
        h3cCDRTotalSize       Integer32,
        h3cCDRFreeSize        Integer32,
        h3cCDRSelectPolicy    H3cExtendSelectPolicy,
        h3cCDRRowStatus       RowStatus
    }

h3cCDRLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the source logic volume of the Continuous Replication 
        Resource. The object identified by this index is the same object as identified 
        by the same value of h3cRepLocalLvIndex.
        Note that an entry of h3cCDRConfigTable can be created only when the associated 
        h3cCDRDistributeTable's objects is ready or the associated select policy is not 
        equal to 'none'.
        If an entry is deleted, the associated h3cCDRDistributeTable objects should be 
        deleted automatically."
    ::= { h3cCDRConfigEntry 1 }

h3cCDRID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the Continuous Replication Resource."
    ::= { h3cCDRConfigEntry 2 }

h3cCDRStatus OBJECT-TYPE
    SYNTAX      H3cStorageOnlineState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of the Continuous Replication Resource."
    ::= { h3cCDRConfigEntry 3 }

h3cCDRTotalSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the total size of the Continuous Replication Resource."
    ::= { h3cCDRConfigEntry 4 }

h3cCDRFreeSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the free size of the Continuous Replication Resource."
    ::= { h3cCDRConfigEntry 5 }

h3cCDRSelectPolicy OBJECT-TYPE
    SYNTAX      H3cExtendSelectPolicy
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the policy about allocating the space for Continuous 
        Replication Resource."
    DEFVAL { none }
    ::= { h3cCDRConfigEntry 6 }

h3cCDRRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create or delete the Continuous Replication 
        Resource."
    ::= { h3cCDRConfigEntry 7 }


-- Continuous Replication Resource Distributing Table
-- This table described how to config the distribution of Continuous Replication Resource.
h3cCDRDistributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cCDRDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config the distribution of Continuous Replication 
        Resource."
    ::= { h3cSnapMibObjects 13 }

h3cCDRDistributeEntry OBJECT-TYPE
    SYNTAX      H3cCDRDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to the distribution of Continuous 
        Replication Resource."
    INDEX
        {
            h3cCDRDistLvIndex,
            h3cCDRRaidUuid
        }

    ::= { h3cCDRDistributeTable 1 }

H3cCDRDistributeEntry ::= SEQUENCE
    {
        h3cCDRDistLvIndex     H3cLvIDType,
        h3cCDRRaidUuid        H3cRaidIDType,
        h3cCDRRaidSize        Integer32,
        h3cCDRExtRowStatus    RowStatus
    }

h3cCDRDistLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cLvIndex in H3C-LOGIC-VOLUME-MIB."
    ::= { h3cCDRDistributeEntry 1 }

h3cCDRRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cRaidUuid in H3C-RAID-MIB."
    ::= { h3cCDRDistributeEntry 2 }

h3cCDRRaidSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the size on the special raid distributed
        for the Continuous Replication Resource."
    ::= { h3cCDRDistributeEntry 3 }

h3cCDRExtRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create the distribution
        for the Continuous Replication Resource."
    ::= { h3cCDRDistributeEntry 4 }


-- SafeCache Config Table
-- This table described how to config SafeCache of logic volume.
h3cSafeCacheConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cSafeCacheConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config SafeCache."
    ::= { h3cSnapMibObjects 14 }

h3cSafeCacheConfigEntry OBJECT-TYPE
    SYNTAX      H3cSafeCacheConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to SafeCache of
        the logic volume."
    INDEX
        {
            h3cSafeCacheLvIndex
        }

    ::= { h3cSafeCacheConfigTable 1 }

H3cSafeCacheConfigEntry ::= SEQUENCE
    {
        h3cSafeCacheLvIndex         H3cLvIDType,
        h3cSafeCacheID              Integer32,
        h3cSafeCacheStatus          H3cStorageOnlineState,
        h3cSafeCacheTotalSize       Integer32,
        h3cSafeCacheFreeSize        Integer32,
        h3cSafeCacheSelectPolicy    H3cExtendSelectPolicy,
        h3cSafeCacheThreshold       Integer32,
        h3cSafeCacheFlushTime       Integer32,
        h3cSafeCacheFlushCommand    Integer32,
        h3cSafeCacheSkipDupWrite    INTEGER,
        h3cSafeCacheRunStatus       INTEGER,
        h3cSafeCacheSwitch          INTEGER,
        h3cSafeCacheRowStatus       RowStatus
    }

h3cSafeCacheLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the source logic volume of the SafeCache.
        The object identified by this index is the same object as identified
        by the same value of h3cLvindex.
        Note that an entry of h3cSafeCacheConfigTable can be created only when
        the associated h3cSafeCacheDistributeTable's objects is ready or the associated
        select policy is not equal to 'none'.
        If an entry is deleted, the associated h3cSafeCacheDistributeTable
        objects should be deleted automatically."
    ::= { h3cSafeCacheConfigEntry 1 }

h3cSafeCacheID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies a SafeCache."
    ::= { h3cSafeCacheConfigEntry 2 }


h3cSafeCacheStatus OBJECT-TYPE
    SYNTAX      H3cStorageOnlineState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of the SafeCache."
    ::= { h3cSafeCacheConfigEntry 3 }

h3cSafeCacheTotalSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the total size of the SafeCache.
        The units is million bytes."
    ::= { h3cSafeCacheConfigEntry 4 }

h3cSafeCacheFreeSize OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the free size of the SafeCache.
        The units is million bytes."
    ::= { h3cSafeCacheConfigEntry 5 }

h3cSafeCacheSelectPolicy OBJECT-TYPE
    SYNTAX      H3cExtendSelectPolicy
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the policy about allocating the space for SafeCache."
    DEFVAL { none }
    ::= { h3cSafeCacheConfigEntry 6 }

h3cSafeCacheThreshold OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the maximal percentage of date changed
        before data flushing."
    ::= { h3cSafeCacheConfigEntry 7 }


h3cSafeCacheFlushTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the period during which the date can stay
        in cache before data flushing.
        The units is second."
    ::= { h3cSafeCacheConfigEntry 8 }


h3cSafeCacheFlushCommand OBJECT-TYPE
    SYNTAX      Integer32(1..64)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the number of commands when data flushing."
    ::= { h3cSafeCacheConfigEntry 9 }

h3cSafeCacheSkipDupWrite OBJECT-TYPE
    SYNTAX      INTEGER
	{
            enable(1),
            disable(2)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies skip duplicate write commands or not."
    ::= { h3cSafeCacheConfigEntry 10 }

h3cSafeCacheRunStatus OBJECT-TYPE
    SYNTAX      INTEGER
        {
            run(1),
            suspend(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the run state of the SafeCache."
    ::= { h3cSafeCacheConfigEntry 11 }

h3cSafeCacheSwitch OBJECT-TYPE
    SYNTAX      INTEGER
        {
            suspend(1),
            resume(2),
            none(3)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action of the SafeCache.
        The value 'suspend' means suspend the SafeCache.
        The value 'resume' means resume the SafeCache."
    ::= { h3cSafeCacheConfigEntry 12 }

h3cSafeCacheRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create or delete the SafeCache."
    ::= { h3cSafeCacheConfigEntry 13 }


-- SafeCache Resource Distributing Table
-- This table described how to config SafeCache resource of logic volume.
h3cSafeCacheDistributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cSafeCacheDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config the SafeCache resource."
    ::= { h3cSnapMibObjects 15 }

h3cSafeCacheDistributeEntry OBJECT-TYPE
    SYNTAX      H3cSafeCacheDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to SafeCache
        resource of the logic volume."
    INDEX
        {
            h3cSafeCacheDistLvIndex,
            h3cSafeCacheRaidUuid
        }

    ::= { h3cSafeCacheDistributeTable 1 }

H3cSafeCacheDistributeEntry ::= SEQUENCE
    {
        h3cSafeCacheDistLvIndex     H3cLvIDType,
        h3cSafeCacheRaidUuid        H3cRaidIDType,
        h3cSafeCacheRaidSize        Integer32,
        h3cSafeCacheExtRowStatus    RowStatus
    }


h3cSafeCacheDistLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cLvIndex in H3C-LOGIC-VOLUME-MIB."
    ::= { h3cSafeCacheDistributeEntry 1 }

h3cSafeCacheRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cRaidUuid in H3C-RAID-MIB."
    ::= { h3cSafeCacheDistributeEntry 2 }


h3cSafeCacheRaidSize OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the size on the special raid distributed
        for the SafeCache resource."
    ::= { h3cSafeCacheDistributeEntry 3 }

h3cSafeCacheExtRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create the distribution
        for the SafeCache resource."
    ::= { h3cSafeCacheDistributeEntry 4 }




-- Logic Volume Mirror Config Table
-- This table described how to config mirror for a logic volume.
h3cMirrorConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cMirrorConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config mirror."
    ::= { h3cSnapMibObjects 16 }

h3cMirrorConfigEntry OBJECT-TYPE
    SYNTAX      H3cMirrorConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to mirror for
        the logic volume."
    INDEX
        {
            h3cMirrorLvIndex
        }

    ::= { h3cMirrorConfigTable 1 }

H3cMirrorConfigEntry ::= SEQUENCE
    {
        h3cMirrorLvIndex            H3cLvIDType,
        h3cMirrorType               INTEGER,
        h3cMirrorStatus             H3cStorageOnlineState,
        h3cMirrorName               OCTET STRING,
        h3cMirrorSyncPercentage     Integer32,
        h3cMirrorSyncPerformance    Integer32,
        h3cMirrorDelta              Integer32,
        h3cMirrorRaidType           INTEGER,
        h3cMirrorSelectPolicy       H3cExtendSelectPolicy,
        h3cMirrorSwitch             INTEGER,
        h3cMirrorExtendRaidUuid     H3cRaidIDType,
        h3cMirrorRowStatus          RowStatus
    }

h3cMirrorLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies the source logic volume of the mirror.
        The object identified by this index is the same object as identified
        by the same value of h3cLvindex.
        Note that an entry of h3cMirrorConfigTable can be created only when
        the associated h3cMirrorDistributeTable's objects is ready or the associated
        select policy is not equal to 'none'.
        If an entry is deleted, the associated h3cMirrorDistributeTable
        objects should be deleted automatically."
    ::= { h3cMirrorConfigEntry 1 }

h3cMirrorType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            sync(1),
            async(2),
            none(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the type of the mirror."
    ::= { h3cMirrorConfigEntry 2 }

h3cMirrorStatus OBJECT-TYPE
    SYNTAX      H3cStorageOnlineState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the state of the mirror resource."
    ::= { h3cMirrorConfigEntry 3 }

h3cMirrorName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the name of the mirror resource. it is used when 
        promote mirror resource."
    ::= { h3cMirrorConfigEntry 4 }

h3cMirrorSyncPercentage OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the percentage of the mirror sync."
    ::= { h3cMirrorConfigEntry 5 }

h3cMirrorSyncPerformance OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the performance of the mirror sync. The unit is MB/S"
    ::= { h3cMirrorConfigEntry 6 }


h3cMirrorDelta OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "MB"    
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies size of delta data after the last
        mirror sync."
    ::= { h3cMirrorConfigEntry 7 }


h3cMirrorRaidType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            virtual(1),
            serviceEnable(2),
            none(3)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the raid type of the mirror resource."
    ::= { h3cMirrorConfigEntry 8 }


h3cMirrorSelectPolicy OBJECT-TYPE
    SYNTAX      H3cExtendSelectPolicy
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object describes the policy about allocating the space 
        for mirror resource."
    DEFVAL { none }
    ::= { h3cMirrorConfigEntry 9 }

h3cMirrorSwitch OBJECT-TYPE
    SYNTAX      INTEGER
        {
            sync(1),
            swap(2),
            promote(3),
            none(4)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the state of the mirror.
        The value of 'sync' means synchronize mannually.        
        The value of 'swap' means switch the roles of the primary resource and 
        mirror resource. 
        The value of 'promte' means break the mirrored pair and convert the mirror 
        resource into an independent logic volume. The new logic volume will have 
        all of the properties of a regular logic volume.
        Note that if the action of 'promte' is executed successfully, this mirror
        resource will become a primary logic volume, and this entry will be deleted
        automatically."
    ::= { h3cMirrorConfigEntry 10 }
    
h3cMirrorExtendRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the raid of the mirror resource when the primary
        logic volume resource is extended."
    ::= { h3cMirrorConfigEntry 11 }

h3cMirrorRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create or delete the mirror resource."
    ::= { h3cMirrorConfigEntry 12 }


-- Logic Volume Mirror Resource Distributing Table
-- This table described how to config mirror resource for logic volume.
h3cMirrorDistributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cMirrorDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains some entity to config the mirror resource."
    ::= { h3cSnapMibObjects 17 }

h3cMirrorDistributeEntry OBJECT-TYPE
    SYNTAX      H3cMirrorDistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing some information applicable to mirror
        resource for the logic volume."
    INDEX
        {
            h3cMirrorDistLvIndex,
            h3cMirrorRaidUuid
        }

    ::= { h3cMirrorDistributeTable 1 }

H3cMirrorDistributeEntry ::= SEQUENCE
    {
        h3cMirrorDistLvIndex     H3cLvIDType,
        h3cMirrorRaidUuid        H3cRaidIDType,
        h3cMirrorRaidSize        Integer32,
        h3cMirrorExtRowStatus    RowStatus
    }


h3cMirrorDistLvIndex OBJECT-TYPE
    SYNTAX      H3cLvIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cLvIndex in H3C-LOGIC-VOLUME-MIB."
    ::= { h3cMirrorDistributeEntry 1 }

h3cMirrorRaidUuid OBJECT-TYPE
    SYNTAX      H3cRaidIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This index is identical to h3cRaidUuid in H3C-RAID-MIB."
    ::= { h3cMirrorDistributeEntry 2 }

h3cMirrorRaidSize OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the size on the special raid distributed
        for the mirror resource."
    ::= { h3cMirrorDistributeEntry 3 }

h3cMirrorExtRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object identifies the action to create or delete the distribution
        for the mirror resource."
    ::= { h3cMirrorDistributeEntry 4 }
END
