-- =================================================================
-- Copyright (c) 2004-2010 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:configuration management mib
-- Reference:
-- Version: V2.2
-- History:
--     Initial version 2002-12-20
--     V1.1 24th Feb 2004
--     module imported from HUAWEI-3COM-OID-MIB which is the root MIB MODULE.
--     V1.2 14th May 2004
--     convert MIB object name from hwXXX to h3c, etc.
--     V1.3 18th Aug 2004
--     modified DESCRIPTION of 'h3cCfgLogFile' by jinyi.
--     V1.4 16th Sept 2004
--     modified DESCRIPTION of 'h3cCfgLogTerminalType' and 'h3cCfgLogTerminalNum' by wangyingxia
--     V1.5 9th Oct 2004
--     modified DESCRIPTION of 'h3cCfgRunModifiedLast' and 'h3cCfgManEventlog' by wangrui
--     V1.6 30th Nov 2004
--     modified DESCRIPTION of 'h3cCfgOperateCompletion' by wangrui
--     V1.7 11th Jan 2005
--     Updated by gaolong and weixinzhe for updating description
--     V1.8 26th Apr 2005
--     Updated by wangrui for added h3cCfgExecuteOperate and added ConfigOperationStateType
--     modified DESCRIPTION of 'h3cCfgLogSrcData', 'h3cCfgLogDesData' and 'h3cCfgLogTerminalType' by fuzhenyu
--     V1.9 6th Jun 2005
--     Add enum value in SYNTAX of h3cCfgOperateProtocol by jinyongfeng.
--     V2.0 27th sept 2005
--     modified DESCRIPTION of 'h3cCfgLogSrcCmd', 'h3cCfgRunModifiedLast' and 'h3cCfgLogDesData' by lisongfeng and wangrui
--     V2.1 2009-05-05 Add h3cCfgOperateServerPort, h3cCfgInvalidConfigFile by jinyi
--     V2.2 2009-12-20 Add h3cCfgOperFailReason, h3cCfgReset by shuaixiaojuan
-- =================================================================
H3C-CONFIG-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    h3cCommon
        FROM HUAWEI-3COM-OID-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TimeTicks, IpAddress, Integer32, Counter32,
    OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    DisplayString, TruthValue, RowStatus, TEXTUAL-CONVENTION
        FROM SNMPv2-TC;


h3cConfig MODULE-IDENTITY
    LAST-UPDATED "200905051936Z"            -- May 5, 2009 at 19:36 GMT
    ORGANIZATION
        "Hangzhou H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "This MIB contains objects to manage the system configuration. It contains the
        model used to represent configuration data that exists elsewhere in the system and in peripheral devices.
        There are no constraints on this MIB."
    REVISION "200905051938Z"                -- May 5, 2009 at 19:38 GMT
    DESCRIPTION
        "Add new objects."
    REVISION "200212191938Z"                -- December 19, 2002 at 19:38 GMT
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { h3cCommon 4 }


--
-- Textual conventions
--

ConfigOperationType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Specify operation types on configuration.
        Currently, following types of operation are provided:

        running2Startup(1):
            Update the saved configuration (startup) file used currently
            with the current configuration running in the system. This
            operation is equivalent to the [save] command from command line.
            If current startup configuration file does not exist, then the default
            startup configuration file is created to save the data and this
            becomes the current startup configuration file.

        startup2Running(2):
            Update the current configuration running in the system
            with the saved configuration (startup) file used currently.  The
            commands in the file are executed as if they had been entered via
            the command line.  If the current startup configuration file does not
            exist, the operation will fail with the error opFileOpenError(13).

        running2Net(3):
            Send the current configuration running in the system to the network
            using the specified file transfer protocol.

        net2Running(4):
            Update the current configuration running in the system with a remote
            file from the network using the specified file transfer protocol.
            The commands in the file are executed as if they had been entered via
            the command line.

        net2Startup(5):
            Download a remote file to the local system using the specified file
            transfer protocol and replace the saved configuration (startup) file
            used currently.  If current startup configurationfile does not exist,
            the default startup configuration file is created to save the data and
            this becomes the current startup configuration file.

        startup2Net(6):
            Send the saved configuration (startup) file used currently to the network using
            the specified file transfer protocol. If the current startup configuration
            file does not exist, the operation will fail with the error opFileOpenError(13).
        "
    SYNTAX INTEGER
        {
            running2Startup(1),
            startup2Running(2),
            running2Net(3),
            net2Running(4),
            net2Startup(5),
            startup2Net(6)
        }

ConfigOperationStateType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The status of the specified operation.

        opInProgress :
                specified operation is active

        opOperationSuccess :
                specified operation is supported and
                completed successfully

        opInvalidOperation :
                command invalid or command/protocol/device
                combination unsupported

        opInvalidProtocol :
                invalid protocol specified

        opInvalidSourceName :
                invalid source file name specified.


        opInvalidDestName :
                invalid target name  specified.


        opInvalidServerAddress :
                invalid server address specified

        opDeviceBusy :
                specified device is in use and locked by
                another process

        opDeviceOpenError :
                invalid device name

        opDeviceError :
                device read, write or erase error

        opDeviceNotProgrammable :
                device is read-only but a write or erase
                operation was specified

        opDeviceFull :
                device is filled to capacity

        opFileOpenError :
                invalid file name; file not found in partition

        opFileTransferError :
                file transfer was unsuccessful; network failure

        opFileChecksumError :
                file checksum in Flash failed

        opNoMemory :
                system running low on memory

        opAuthFail:
                invalid user name or password

        opTimeOut :
                file transfer was timeout

        opUnknownFailure :
                failure unknown

        opInvalidConfigFile:
                invalid configration file"
    SYNTAX INTEGER
        {
            opInProgress(1),
            opSuccess(2),
            opInvalidOperation(3),
            opInvalidProtocol(4),
            opInvalidSourceName(5),
            opInvalidDestName(6),
            opInvalidServerAddress(7),
            opDeviceBusy(8),
            opDeviceOpenError(9),
            opDeviceError(10),
            opDeviceNotProgrammable(11),
            opDeviceFull(12),
            opFileOpenError(13),
            opFileTransferError(14),
            opFileChecksumError(15),
            opNoMemory(16),
            opAuthFail(17),
            opTimeOut(18),
            opUnknownFailure(19),
            opInvalidConfigFile(20)
        }

--
-- Node definitions
--

h3cConfigManObjects OBJECT IDENTIFIER ::= { h3cConfig 1 }


h3cCfgLog OBJECT IDENTIFIER ::= { h3cConfigManObjects 1 }


h3cCfgRunModifiedLast OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The object records the value of sysUpTime when the current configuration
         running in the system was last modified.

         The value will be changed immediately after system detects the current
         configuration has been changed."
    ::= { h3cCfgLog 1 }


h3cCfgRunSavedLast OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The object records the value of sysUpTime when the current configuration
         running in the system was last saved.

         If the value of the object is smaller than
         h3cCfgRunModifiedLast, the current configuration has been
         modified but not saved."
    ::= { h3cCfgLog 2 }


h3cCfgStartModifiedLast OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The object records the value of sysUpTime when the saved configuration
         used currently was last modified.  It may have been modified by a save of the
         current configuration running in the system or other methods such as copy."
    ::= { h3cCfgLog 3 }


h3cCfgLogLimitedEntries OBJECT-TYPE
    SYNTAX Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The object shows the maximum number of rows in
        h3cCfgLogTable. The value supported by the system is 10.
        "
    ::= { h3cCfgLog 4 }


h3cCfgLogDeletedEntries OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total number of rows deleted from h3cCfgLogTable."
    ::= { h3cCfgLog 5 }


h3cCfgLogWantBackup OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Decide whether to backup the value of objects about h3cCfgLog."
    DEFVAL { true }
    ::= { h3cCfgLog 6 }

-- If the value is true, the data of configuration log on the master will send to
-- slave. Otherwise the data of log will be lost when master switches to
-- slave.


h3cCfgLogTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cCfgLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table for logging configuration operation in device."
    ::= { h3cCfgLog 7 }


h3cCfgLogEntry OBJECT-TYPE
    SYNTAX H3cCfgLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Information of the entry."
    INDEX { h3cCfgLogIndex }
    ::= { h3cCfgLogTable 1 }


H3cCfgLogEntry ::=
    SEQUENCE
        {
            h3cCfgLogIndex                  Integer32,
            h3cCfgLogTime                   TimeTicks,
            h3cCfgLogSrcCmd                 INTEGER,
            h3cCfgLogSrcData                INTEGER,
            h3cCfgLogDesData                INTEGER,
            h3cCfgLogTerminalType           INTEGER,
            h3cCfgLogTerminalUser           DisplayString,
            h3cCfgLogTerminalNum            Integer32,
            h3cCfgLogTerminalLocation       DisplayString,
            h3cCfgLogCmdSrcAddress          IpAddress,
            h3cCfgLogVirHost                DisplayString,
            h3cCfgLogUserName               DisplayString,
            h3cCfgLogServerAddress          IpAddress,
            h3cCfgLogFile                   DisplayString
        }

h3cCfgLogIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index of the table beginning from 1."
    ::= { h3cCfgLogEntry 1 }


h3cCfgLogTime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Specify the sysUpTime when the config log was generated."
    ::= { h3cCfgLogEntry 2 }


h3cCfgLogSrcCmd OBJECT-TYPE
    SYNTAX INTEGER
        {
            cmdLine(1),
            snmp(2),
            other(3)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Specify the source command which brought the log.
        Currently we provide the types of source:
        1.cmdLine(1):configure log instigated by command line.
        2.snmp(2):configure log instigated by snmp.
        3.other(3):configure log instigated by other source unknown."
    ::= { h3cCfgLogEntry 3 }


h3cCfgLogSrcData OBJECT-TYPE
    SYNTAX INTEGER
        {
            erase(1),
            runningData(2),
            commandSource(3),
            startupData(4),
            local(5),
            netFtp(6),
            hotPlugging(7)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The source of the configuration data event.
        erase           erasing destination
        runningData     operational data alive
        commandSource   the command source itself
        startupData     what the system will use next reboot
        local           local NVRAM or flash
        netFtp          FTP network transfer
        hotPlugging     board is inserted or pulled out on line
        "
    ::= { h3cCfgLogEntry 4 }


h3cCfgLogDesData OBJECT-TYPE
    SYNTAX INTEGER
        {
            unknown(1),
            runningData(2),
            commandSource(3),
            startupData(4),
            local(5),
            netFtp(6),
            hotPlugging(7)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The destination for the configuration data event.
        unknown          unknown
        runningData     operational data alive
        commandSource   the command source itself
        startupData     what the system will use next reboot
        local           local NVRAM or flash
        netFtp          FTP network transfer
        hotPlugging     board is inserted or pulled out on line"
    ::= { h3cCfgLogEntry 5 }


h3cCfgLogTerminalType OBJECT-TYPE
    SYNTAX INTEGER
        {
            notApplicable(1),
            unknown(2),
            console(3),
            terminal(4),
            virtual(5),
            auxiliary(6)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Specifies the terminal type.
        If h3cCfgLogSrcCmd is not 'cmdLine', use 'notApplicable'.

        The value list:
        notApplicable(1): no meaning at this time.
        unknown(2): unknown terminal type.
        console(3): console interface.
        terminal(4): generic terminal.
        virtual(5): virtual terminal such as telnet.
        auxiliary(6): auxiliary interface."
    ::= { h3cCfgLogEntry 6 }


h3cCfgLogTerminalUser OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of logging user which is available when h3cCfgLogSrcCmd
        is 'cmdLine'.
        Other, a zero length string."
    ::= { h3cCfgLogEntry 7 }


h3cCfgLogTerminalNum OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Specifies the terminal number.
        If h3cCfgLogSrcCmd is not 'cmdLine', use '-1'"
    ::= { h3cCfgLogEntry 8 }


h3cCfgLogTerminalLocation OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The location of logging user which is available when h3cCfgLogSrcCmd
        is 'cmdLine'.
        Other, a zero length string."
    ::= { h3cCfgLogEntry 9 }


h3cCfgLogCmdSrcAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The address from which a request comes when the value of h3cCfgLogSrcCmd is 'snmp(2)'.

        The ip address of the remote system connected when the value of h3cCfgLogTerminalType
        is 'virtual'.

        Other, the value of 0.0.0.0."
    ::= { h3cCfgLogEntry 10 }


h3cCfgLogVirHost OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The host name of remote system connected if
        h3cCfgLogTerminalType has the value of 'virtual'.
        Other, a zero length string."
    ::= { h3cCfgLogEntry 11 }


h3cCfgLogUserName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The user name used when h3cCfgLogSrcData or h3cCfgLogDesData has
        the value of 'netFtp'.
        Other, a zero length string."
    ::= { h3cCfgLogEntry 12 }


h3cCfgLogServerAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remote server address when h3cCfgLogSrcData or h3cCfgLogDesData
        has the value of 'netFtp'.
        Other, a value of 0.0.0.0."
    ::= { h3cCfgLogEntry 13 }


h3cCfgLogFile OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The current configuration file name when h3cCfgLogSrcData has
         the value of 'netFtp',and h3cCfgLogDesData has the value of 'startupData'.
         Other, a zero length string."
    ::= { h3cCfgLogEntry 14 }


h3cCfgOperate OBJECT IDENTIFIER ::= { h3cConfigManObjects 2 }


h3cCfgOperateGlobalEntryLimit OBJECT-TYPE
    SYNTAX Integer32 (1..10)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of copy entries that may be held
        in h3cCfgOperateTable.  A particular setting does not guarantee
        that much data can be held."
    DEFVAL { 5 }
    ::= { h3cCfgOperate 1 }


h3cCfgOperateEntryAgeOutTime OBJECT-TYPE
    SYNTAX Integer32 (1..60)
    UNITS "minute"
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The number of minutes an unactive h3cCfgOperateEntry SHOULD be kept in the
        h3cCfgOperateTable before it is active. The object is a fator taken account
        of when it needs delete some rows make room in h3cCfgOperateTable. "
    DEFVAL { 5 }
    ::= { h3cCfgOperate 2 }

h3cCfgOperateResultGlobalEntryLimit OBJECT-TYPE
    SYNTAX Integer32(1..50)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The maximum number of copy entries that may be held
        in h3cCfgOperateResultTable.  A particular setting does not guarantee
        that much data can be held."
    DEFVAL { 5 }
    ::= { h3cCfgOperate 3 }


h3cCfgOperateTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cCfgOperateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of config-operation requests."
    ::= { h3cCfgOperate 4 }


h3cCfgOperateEntry OBJECT-TYPE
    SYNTAX H3cCfgOperateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An operate request entry."
    INDEX { h3cCfgOperateIndex }
    ::= { h3cCfgOperateTable 1 }


H3cCfgOperateEntry ::=
    SEQUENCE
        {
            h3cCfgOperateIndex                      Integer32,
            h3cCfgOperateType                       ConfigOperationType,
            h3cCfgOperateProtocol                   INTEGER,
            h3cCfgOperateFileName                   DisplayString,
            h3cCfgOperateServerAddress              IpAddress,
            h3cCfgOperateUserName                   DisplayString,
            h3cCfgOperateUserPassword               DisplayString,
            h3cCfgOperateEndNotificationSwitch      TruthValue,
            h3cCfgOperateRowStatus                  RowStatus,
            h3cCfgOperateServerPort                 Integer32
        }

h3cCfgOperateIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The unique index value of a row in this table."
    ::= { h3cCfgOperateEntry 1 }


h3cCfgOperateType OBJECT-TYPE
    SYNTAX ConfigOperationType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Specify the type of operation on configuration."
    ::= { h3cCfgOperateEntry 2 }


h3cCfgOperateProtocol OBJECT-TYPE
    SYNTAX INTEGER
        {
            ftp(1),
            tftp(2),
            clusterftp(3),
            clustertftp(4)
        }
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "If the value of h3cCfgOperateType is running2Net,net2Running,net2Startup
         or startup2net,  this node specify the protocol to be
        used for file transfer .
        The default protocol is ftp if no protocol is specified.
        And for other value of h3cCfgOperateType , this object may
        be ignored by the implementation.

        when clusterftp or clustertftp is selected,
        the h3cCfgOperateServerAddress needn't be set,
        the server address can be acquired automatically, the value of h3cCfgOperateServerAddress
        is uncertain during operation.
        both member switch and commander switch can use them if they support HGMP v2.
        "
    ::= { h3cCfgOperateEntry 3 }


h3cCfgOperateFileName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (1..128))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the object of h3cCfgOperateType has the value of net2Startup, net2running or
        running2Net,the value must be specified. The file name may include the path if
        applicable.
        If the value of h3cCfgOperateType is net2Startup or net2running, this node specify the
        source file name of transfers.If the value of h3cCfgOperateType is running2Net ,
        this node specify the destination file name of transfers.
        When h3cCfgOperateType has the value of startup2net,the object may not be
        created instead of using the file name of startup configuration file."
    ::= { h3cCfgOperateEntry 4 }


h3cCfgOperateServerAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the operation type is running2Net,net2Running,net2Startup
         or startup2net , the ip address of the ftp/ftfp server from/to
        which to download/upload must be specified.
        Values of 0.0.0.0 or FF.FF.FF.FF are not permitted."
    ::= { h3cCfgOperateEntry 5 }


h3cCfgOperateUserName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..40))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the operation type is running2Net,net2Running,net2Startup
         or startup2net , the user
        name for the ftp server from/to which to download/upload
        should be specified. The object must be created if h3cCfgOperateProtocol
        has the value of ftp. "
    ::= { h3cCfgOperateEntry 6 }


h3cCfgOperateUserPassword OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..40))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the operation type is running2Net,net2Running,net2Startup
         or startup2net , the user
        password for the ftp server from/to which to download/upload
        should be specified. The object must be created if h3cCfgOperateProtocol
        has the value of ftp. "
    ::= { h3cCfgOperateEntry 7 }


h3cCfgOperateEndNotificationSwitch OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Specifies whether or not a notification should be
        issued on the completion of the operation."
    DEFVAL { false }
    ::= { h3cCfgOperateEntry 8 }


h3cCfgOperateRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The status of this table entry.
        When the status is active all the
        object's value in the entry is not
        allowed to modified."
    ::= { h3cCfgOperateEntry 9 }

h3cCfgOperateServerPort OBJECT-TYPE
    SYNTAX Integer32 (0..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the operation type is running2Net, net2Running, net2Startup or startup2Net,
         this node is used for specifying the remote port number. If the value is 0 or not
         specified, the known port number will be used."
    ::= { h3cCfgOperateEntry 10 }

h3cCfgOperateResultTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cCfgOperateResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of config-operation requests result."
    ::= { h3cCfgOperate 5 }


h3cCfgOperateResultEntry OBJECT-TYPE
    SYNTAX H3cCfgOperateResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The result entries of configuration operation requests."
    INDEX { h3cCfgOperateResultIndex }
    ::= { h3cCfgOperateResultTable 1 }


H3cCfgOperateResultEntry ::=
    SEQUENCE
        {
            h3cCfgOperateResultIndex            Integer32,
            h3cCfgOperateResultOptIndex         Integer32,
            h3cCfgOperateResultOpType           ConfigOperationType,
            h3cCfgOperateState                  ConfigOperationStateType,
            h3cCfgOperateTime                   TimeTicks,
            h3cCfgOperateEndTime                TimeTicks,
            h3cCfgOperFailReason                DisplayString
        }

h3cCfgOperateResultIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index of Table, which is an incremental integer.
        The maximum value of the node is 2147483647. The agent should wrap the
        value to 1 and flush all the existing entries when the maximum value
        is reached."
    ::= { h3cCfgOperateResultEntry 1 }


h3cCfgOperateResultOptIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The operation index in the h3cCfgOperateTable."
    ::= { h3cCfgOperateResultEntry 2 }

h3cCfgOperateResultOpType OBJECT-TYPE
    SYNTAX ConfigOperationType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The operation type in the h3cCfgOperateTable."
    ::= { h3cCfgOperateResultEntry 3 }


h3cCfgOperateState OBJECT-TYPE
    SYNTAX ConfigOperationStateType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The operation state type in the h3cCfgOperateTable."
    ::= { h3cCfgOperateResultEntry 4 }


h3cCfgOperateTime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Record the time taken for the operation. This object will
        be like a stopwatch, starting when the operation
        starts, and stopping when the operation completes."
    ::= { h3cCfgOperateResultEntry 5 }

h3cCfgOperateEndTime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime when the configuration operation is finished."
    ::= { h3cCfgOperateResultEntry 6 }

h3cCfgOperFailReason OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The failure reasons of configuration operation."
    ::= { h3cCfgOperateResultEntry 7 }

h3cCfgExecuteOperate OBJECT IDENTIFIER ::= { h3cCfgOperate 6 }

h3cCfgExecuteOperateResultEntryLimit OBJECT-TYPE
    SYNTAX Integer32(5..20)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The maximum number of ConfigOperationType entries that may be held
        in h3cCfgExecuteResultTable. A particular setting does not guarantee
        that much data can be held."
    DEFVAL { 5 }
    ::= { h3cCfgExecuteOperate 1 }

h3cCfgExecuteResultTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cCfgExecuteResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of configuration execute result."
    ::= { h3cCfgExecuteOperate 2 }


h3cCfgExecuteResultEntry OBJECT-TYPE
    SYNTAX H3cCfgExecuteResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The result entries of configuration execute operation."
    INDEX { h3cCfgExecuteResultIndex }
    ::= { h3cCfgExecuteResultTable 1 }

H3cCfgExecuteResultEntry ::=
    SEQUENCE
        {
            h3cCfgExecuteResultIndex            Integer32,
            h3cCfgExecuteResultOptIndex         Integer32,
            h3cCfgExecuteResultOpType           ConfigOperationType,
            h3cCfgExecuteState                  ConfigOperationStateType,
            h3cCfgExecuteTime                   TimeTicks,
            h3cCfgExecuteEndTime                TimeTicks
        }

h3cCfgExecuteResultIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index of Table, which is an incremental integer.
        The maximum value of the node is 2147483647. The agent should wrap the
        value to 1 and flush all the existing entries when the maximum value
        is reached."
    ::= { h3cCfgExecuteResultEntry 1 }


h3cCfgExecuteResultOptIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The configuration execute operation index in the h3cCfgExecuteResultTable."
    ::= { h3cCfgExecuteResultEntry 2 }

h3cCfgExecuteResultOpType OBJECT-TYPE
    SYNTAX ConfigOperationType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The operation type in the h3cCfgExecuteResultTable."
    ::= { h3cCfgExecuteResultEntry 3 }


h3cCfgExecuteState OBJECT-TYPE
    SYNTAX ConfigOperationStateType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Record the status of the specified operation."
    ::= { h3cCfgExecuteResultEntry 4 }


h3cCfgExecuteTime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Record the time of the execution starts."
    ::= { h3cCfgExecuteResultEntry 5 }

h3cCfgExecuteEndTime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Record the time of the execution is finished."
    ::= { h3cCfgExecuteResultEntry 6 }

h3cCfgReset OBJECT-TYPE
    SYNTAX INTEGER
        {
            normal(1),
            reset(2)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Reboot device as default configuration."
    ::= { h3cCfgOperate 7 }

h3cConfigManNotifications OBJECT IDENTIFIER ::= { h3cConfig 2 }


h3cCfgManEventlog NOTIFICATION-TYPE
    OBJECTS { h3cCfgLogSrcCmd, h3cCfgLogSrcData, h3cCfgLogDesData }
    STATUS current
    DESCRIPTION
        "The object calculates the checksum on the current config per 10 minutes and
        even if it is different from the saved config but if a trap has been sent
        with the same checksum then don't send again until the checksum is different."
    ::= { h3cConfigManNotifications 1 }


h3cCfgOperateCompletion NOTIFICATION-TYPE
    OBJECTS { h3cCfgOperateType, h3cCfgOperateTime, h3cCfgOperateState, h3cCfgOperateEndTime, h3cCfgOperFailReason }
    STATUS current
    DESCRIPTION
        "When create h3cCfgOperateTable successfully, a
        notification may be generated."
    ::= { h3cConfigManNotifications 2 }

h3cCfgInvalidConfigFile NOTIFICATION-TYPE
    OBJECTS
        {
            h3cCfgOperateType,
            h3cCfgOperateFileName
        }
    STATUS current
    DESCRIPTION
        "When the configuration file is invalid, this
         notification will be generated."
    ::= { h3cConfigManNotifications 3 }

h3cConfigManConformance OBJECT IDENTIFIER ::= { h3cConfig 3 }


h3cConfigManCompliances OBJECT IDENTIFIER ::= { h3cConfigManConformance 1 }


h3cConfigManCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The statement of compliance for those implementing
        the Huawei 3Com ConfigMan MIB."
    MODULE -- this module
    MANDATORY-GROUPS { h3cCfgManLogGroup, h3cCfgOperateGroup, h3cCfgManNotificationGroup }
    OBJECT h3cCfgOperateType
    SYNTAX ConfigOperationType
    WRITE-SYNTAX INTEGER
        {
            running2Startup(1),
            startup2Running(2),
            running2Net(3),
            net2Running(4),
            net2Startup(5),
            startup2Net(6)
        }
    DESCRIPTION
        " "
    ::= { h3cConfigManCompliances 1 }


h3cConfigManGroups OBJECT IDENTIFIER ::= { h3cConfigManConformance 2 }


h3cCfgManLogGroup OBJECT-GROUP
    OBJECTS
        { h3cCfgRunModifiedLast, h3cCfgRunSavedLast, h3cCfgStartModifiedLast, h3cCfgLogLimitedEntries, h3cCfgLogDeletedEntries,
        h3cCfgLogTime, h3cCfgLogSrcCmd, h3cCfgLogTerminalType, h3cCfgLogTerminalNum, h3cCfgLogTerminalUser,
        h3cCfgLogTerminalLocation, h3cCfgLogCmdSrcAddress, h3cCfgLogVirHost, h3cCfgLogServerAddress, h3cCfgLogFile,
        h3cCfgLogUserName, h3cCfgLogWantBackup, h3cCfgLogSrcData, h3cCfgLogDesData }
    STATUS current
    DESCRIPTION
        "A collection of objects configuration log group."
    ::= { h3cConfigManGroups 1 }


h3cCfgOperateGroup OBJECT-GROUP
    OBJECTS
        { h3cCfgOperateGlobalEntryLimit, h3cCfgOperateEntryAgeOutTime, h3cCfgOperateType, h3cCfgOperateProtocol, h3cCfgOperateFileName,
        h3cCfgOperateServerAddress, h3cCfgOperateUserName, h3cCfgOperateUserPassword, h3cCfgOperateTime,  h3cCfgOperateEndNotificationSwitch,
        h3cCfgOperateResultGlobalEntryLimit, h3cCfgOperateState, h3cCfgOperateRowStatus, h3cCfgOperateResultOptIndex,
        h3cCfgOperateResultOpType, h3cCfgOperateEndTime, h3cCfgOperFailReason, h3cCfgOperateServerPort }
    STATUS current
    DESCRIPTION
        "A group of configuration operation."
    ::= { h3cConfigManGroups 2 }


h3cCfgManNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { h3cCfgManEventlog, h3cCfgOperateCompletion, h3cCfgInvalidConfigFile }
    STATUS current
    DESCRIPTION
        "Collection of notification objects."
    ::= { h3cConfigManGroups 3 }

END
