-- =================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description:configuration management mib
-- Reference:
-- Version: V2.5
-- History:
--     Initial version 2002-12-20
--     V1.1 24th Feb 2004
--     Imported module from HPN-ICF-OID-MIB,the root MIB.
--     V1.2 14th May 2004
--     Changed MIB object name from hpnicfXXX to hpnicf, etc.
--     V1.3 18th Aug 2004
--     Modified DESCRIPTION of 'hpnicfCfgLogFile' by jinyi.
--     V1.4 16th Sept 2004
--     Modified DESCRIPTION of 'hpnicfCfgLogTerminalType' and 'hpnicfCfgLogTerminalNum' by wangyingxia
--     V1.5 9th Oct 2004
--     Modified DESCRIPTION of 'hpnicfCfgRunModifiedLast' and 'hpnicfCfgManEventlog' by wangrui
--     V1.6 30th Nov 2004
--     Modified DESCRIPTION of 'hpnicfCfgOperateCompletion' by wangrui
--     V1.7 11th Jan 2005
--     Modified DESCRIPTION by gaolong and weixinzhe
--     V1.8 26th Apr 2005
--     Added hpnicfCfgExecuteOperate and added ConfigOperationStateType by wangrui
--     Modified DESCRIPTION of 'hpnicfCfgLogSrcData', 'hpnicfCfgLogDesData' and 'hpnicfCfgLogTerminalType' by fuzhenyu
--     V1.9 6th Jun 2005
--     Added enum value in SYNTAX of hpnicfCfgOperateProtocol by jinyongfeng.
--     V2.0 27th sept 2005
--     Modified DESCRIPTION of 'hpnicfCfgLogSrcCmd', 'hpnicfCfgRunModifiedLast' and 'hpnicfCfgLogDesData' by lisongfeng and wangrui
--     V2.1 2009-05-05 Added hpnicfCfgOperateServerPort, hpnicfCfgInvalidConfigFile by jinyi
--     V2.2 2009-12-20 Added hpnicfCfgOperFailReason, hpnicfCfgReset by shuaixiaojuan
--     V2.3 2010-10-30 Deprecated hpnicfCfgOperateServerAddress, hpnicfCfgLogCmdSrcAddress
--                     and hpnicfCfgLogServerAddress,
--                     added enum in ConfigOperationStateType,
--                     added hpnicfCfgOperateSrvAddrType, hpnicfCfgOperateSrvAddrRev and
--                     hpnicfCfgOperateSrvVPNName, hpnicfCfgLogCmdSrcAddrType,
--                     hpnicfCfgLogCmdSrcAddrRev, hpnicfCfgLogCmdSrcAddrVPNName,
--                     hpnicfCfgLogServerAddrType,hpnicfCfgLogServerAddrRev, hpnicfCfgLogServerAddrVPNName by songhao.
--     V2.4 2011-11-26 Added hpnicfCfgFirstTrapTime by duyanbing 04404.
--     V2.5 2013-09-13 Added hpnicfCfgReset2 by duyanbing 04404.
--          2014-01-17 Modified description of hpnicfCfgLogCmdSrcAddress, hpnicfCfgLogServerAddress
--                     and hpnicfCfgOperateServerAddress.
-- =================================================================
HPN-ICF-CONFIG-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TimeTicks, IpAddress, Integer32, Counter32,
    OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    DisplayString, TruthValue, RowStatus, TEXTUAL-CONVENTION
        FROM SNMPv2-TC;


hpnicfConfig MODULE-IDENTITY
    LAST-UPDATED "201111260000Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB contains objects for managing 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 "201111260000Z"
    DESCRIPTION
        "Initial revision of this MIB module."
    ::= { hpnicfCommon 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.
        opSlaveFull : Operation is fail for the slave don't have enough space.
        opCopyToSlaveFailure : Operation is fail when copy file to the slave.
        "
    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),
            opSlaveFull(21),
            opCopyToSlaveFailure(22)
        }

--
-- Node definitions
--

hpnicfConfigManObjects OBJECT IDENTIFIER ::= { hpnicfConfig 1 }


hpnicfCfgLog OBJECT IDENTIFIER ::= { hpnicfConfigManObjects 1 }


hpnicfCfgRunModifiedLast 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."
    ::= { hpnicfCfgLog 1 }


hpnicfCfgRunSavedLast 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
         hpnicfCfgRunModifiedLast, the current configuration has been
         modified but not saved."
    ::= { hpnicfCfgLog 2 }


hpnicfCfgStartModifiedLast 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."
    ::= { hpnicfCfgLog 3 }


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


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


hpnicfCfgLogWantBackup OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Decide whether to backup the value of objects about hpnicfCfgLog."
    DEFVAL { true }
    ::= { hpnicfCfgLog 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.


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

hpnicfCfgLogEntry OBJECT-TYPE
    SYNTAX HpnicfCfgLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Information of the entry."
    INDEX { hpnicfCfgLogIndex }
    ::= { hpnicfCfgLogTable 1 }

HpnicfCfgLogEntry ::=
    SEQUENCE
        {
            hpnicfCfgLogIndex                  Integer32,
            hpnicfCfgLogTime                   TimeTicks,
            hpnicfCfgLogSrcCmd                 INTEGER,
            hpnicfCfgLogSrcData                INTEGER,
            hpnicfCfgLogDesData                INTEGER,
            hpnicfCfgLogTerminalType           INTEGER,
            hpnicfCfgLogTerminalUser           DisplayString,
            hpnicfCfgLogTerminalNum            Integer32,
            hpnicfCfgLogTerminalLocation       DisplayString,
            hpnicfCfgLogCmdSrcAddress          IpAddress,
            hpnicfCfgLogVirHost                DisplayString,
            hpnicfCfgLogUserName               DisplayString,
            hpnicfCfgLogServerAddress          IpAddress,
            hpnicfCfgLogFile                   DisplayString,
            hpnicfCfgLogCmdSrcAddrType         InetAddressType,
            hpnicfCfgLogCmdSrcAddrRev          InetAddress,
            hpnicfCfgLogCmdSrcAddrVPNName      DisplayString,
            hpnicfCfgLogServerAddrType         InetAddressType,
            hpnicfCfgLogServerAddrRev          InetAddress,
            hpnicfCfgLogServerAddrVPNName      DisplayString
        }

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

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

hpnicfCfgLogSrcCmd 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."
    ::= { hpnicfCfgLogEntry 3 }

hpnicfCfgLogSrcData 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
        "
    ::= { hpnicfCfgLogEntry 4 }

hpnicfCfgLogDesData 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"
    ::= { hpnicfCfgLogEntry 5 }

hpnicfCfgLogTerminalType 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 hpnicfCfgLogSrcCmd 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."
    ::= { hpnicfCfgLogEntry 6 }

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

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

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

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

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

        Other, the value of 0.0.0.0.

        This object is replaced by hpnicfCfgLogCmdSrcAddrRev for it only support IPv4."
    ::= { hpnicfCfgLogEntry 10 }

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

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

hpnicfCfgLogServerAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The remote server address when hpnicfCfgLogSrcData or hpnicfCfgLogDesData
        has the value of 'netFtp'.
        Other, a value of 0.0.0.0.

        This object is replaced by hpnicfCfgLogServerAddrRev for it only support IPv4."
    ::= { hpnicfCfgLogEntry 13 }

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

hpnicfCfgLogCmdSrcAddrType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of IP address for the hpnicfCfgLogCmdSrcAddrRev."
    ::= { hpnicfCfgLogEntry 15 }

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

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

        Other, the value of 0.0.0.0."
    ::= { hpnicfCfgLogEntry 16 }

hpnicfCfgLogCmdSrcAddrVPNName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The VPN instance of this operation uses."
    ::= { hpnicfCfgLogEntry 17 }

hpnicfCfgLogServerAddrType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of IP address for the hpnicfCfgLogServerAddrRev."
    ::= { hpnicfCfgLogEntry 18 }

hpnicfCfgLogServerAddrRev OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remote server address when hpnicfCfgLogSrcData or hpnicfCfgLogDesData
        has the value of 'netFtp'.
        Other, a value of 0.0.0.0."
    ::= { hpnicfCfgLogEntry 19 }

hpnicfCfgLogServerAddrVPNName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The VPN instance of this operation uses."
    ::= { hpnicfCfgLogEntry 20 }

hpnicfCfgFirstTrapTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Time when the first trap is sent."
    ::= { hpnicfCfgLog 8 }

hpnicfCfgOperate OBJECT IDENTIFIER ::= { hpnicfConfigManObjects 2 }


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


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

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


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


hpnicfCfgOperateEntry OBJECT-TYPE
    SYNTAX HpnicfCfgOperateEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An operate request entry."
    INDEX { hpnicfCfgOperateIndex }
    ::= { hpnicfCfgOperateTable 1 }


HpnicfCfgOperateEntry ::=
    SEQUENCE
        {
            hpnicfCfgOperateIndex                      Integer32,
            hpnicfCfgOperateType                       ConfigOperationType,
            hpnicfCfgOperateProtocol                   INTEGER,
            hpnicfCfgOperateFileName                   DisplayString,
            hpnicfCfgOperateServerAddress              IpAddress,
            hpnicfCfgOperateUserName                   DisplayString,
            hpnicfCfgOperateUserPassword               DisplayString,
            hpnicfCfgOperateEndNotificationSwitch      TruthValue,
            hpnicfCfgOperateRowStatus                  RowStatus,
            hpnicfCfgOperateServerPort                 Integer32,
            hpnicfCfgOperateSrvAddrType                InetAddressType,
            hpnicfCfgOperateSrvAddrRev                 InetAddress,
            hpnicfCfgOperateSrvVPNName                 DisplayString
        }

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

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

hpnicfCfgOperateProtocol OBJECT-TYPE
    SYNTAX INTEGER
        {
            ftp(1),
            tftp(2),
            clusterftp(3),
            clustertftp(4)
        }
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "If the value of hpnicfCfgOperateType 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 hpnicfCfgOperateType , this object may
        be ignored by the implementation.

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

hpnicfCfgOperateFileName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (1..128))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the object of hpnicfCfgOperateType 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 hpnicfCfgOperateType is net2Startup or net2running, this node specify the
        source file name of transfers.If the value of hpnicfCfgOperateType is running2Net ,
        this node specify the destination file name of transfers.
        When hpnicfCfgOperateType has the value of startup2net,the object may not be
        created instead of using the file name of startup configuration file."
    ::= { hpnicfCfgOperateEntry 4 }

hpnicfCfgOperateServerAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-create
    STATUS deprecated
    DESCRIPTION
        "When the operation type is running2Net,net2Running,net2Startup
         or startup2net , the ip address of the ftp/tftp server from/to
        which to download/upload must be specified.
        Values of 0.0.0.0 or FF.FF.FF.FF are not permitted.

        This object is replaced by hpnicfCfgOperateSrvAddrRev for it only support IPv4."
    ::= { hpnicfCfgOperateEntry 5 }

hpnicfCfgOperateUserName 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 hpnicfCfgOperateProtocol
        has the value of ftp. "
    ::= { hpnicfCfgOperateEntry 6 }

hpnicfCfgOperateUserPassword 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 hpnicfCfgOperateProtocol
        has the value of ftp. "
    ::= { hpnicfCfgOperateEntry 7 }

hpnicfCfgOperateEndNotificationSwitch 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 }
    ::= { hpnicfCfgOperateEntry 8 }

hpnicfCfgOperateRowStatus 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."
    ::= { hpnicfCfgOperateEntry 9 }

hpnicfCfgOperateServerPort 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."
    ::= { hpnicfCfgOperateEntry 10 }

hpnicfCfgOperateSrvAddrType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The type of IP address for hpnicfCfgOperateSrvAddrRev."
    ::= { hpnicfCfgOperateEntry 11 }

hpnicfCfgOperateSrvAddrRev OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "When the operation type is running2Net,net2Running,net2Startup
        or startup2net , the ip address of the ftp/tftp server from/to
        which to download/upload must be specified."
    ::= { hpnicfCfgOperateEntry 12 }

hpnicfCfgOperateSrvVPNName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The VPN instance of this operation uses."
    ::= { hpnicfCfgOperateEntry 13 }

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

hpnicfCfgOperateResultEntry OBJECT-TYPE
    SYNTAX HpnicfCfgOperateResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The result entries of configuration operation requests."
    INDEX { hpnicfCfgOperateResultIndex }
    ::= { hpnicfCfgOperateResultTable 1 }


HpnicfCfgOperateResultEntry ::=
    SEQUENCE
        {
            hpnicfCfgOperateResultIndex            Integer32,
            hpnicfCfgOperateResultOptIndex         Integer32,
            hpnicfCfgOperateResultOpType           ConfigOperationType,
            hpnicfCfgOperateState                  ConfigOperationStateType,
            hpnicfCfgOperateTime                   TimeTicks,
            hpnicfCfgOperateEndTime                TimeTicks,
            hpnicfCfgOperFailReason                DisplayString
        }

hpnicfCfgOperateResultIndex 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."
    ::= { hpnicfCfgOperateResultEntry 1 }


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

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

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

hpnicfCfgOperateTime 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."
    ::= { hpnicfCfgOperateResultEntry 5 }

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

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

hpnicfCfgExecuteOperate OBJECT IDENTIFIER ::= { hpnicfCfgOperate 6 }

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

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


hpnicfCfgExecuteResultEntry OBJECT-TYPE
    SYNTAX HpnicfCfgExecuteResultEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The result entries of configuration execute operation."
    INDEX { hpnicfCfgExecuteResultIndex }
    ::= { hpnicfCfgExecuteResultTable 1 }

HpnicfCfgExecuteResultEntry ::=
    SEQUENCE
        {
            hpnicfCfgExecuteResultIndex            Integer32,
            hpnicfCfgExecuteResultOptIndex         Integer32,
            hpnicfCfgExecuteResultOpType           ConfigOperationType,
            hpnicfCfgExecuteState                  ConfigOperationStateType,
            hpnicfCfgExecuteTime                   TimeTicks,
            hpnicfCfgExecuteEndTime                TimeTicks
        }

hpnicfCfgExecuteResultIndex 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."
    ::= { hpnicfCfgExecuteResultEntry 1 }


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

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


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


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

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

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

hpnicfCfgReset2 OBJECT-TYPE
    SYNTAX INTEGER
        {
            normal(0),
            reset(1)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "normal:do nothing.
        reset  :reboot the device with the default configuration.
        'normal' will be returned when getting.
        This node differs from hpnicfCfgReset in value."
    ::= { hpnicfCfgOperate 8 }

hpnicfConfigManNotifications OBJECT IDENTIFIER ::= { hpnicfConfig 2 }


hpnicfCfgManEventlog NOTIFICATION-TYPE
    OBJECTS { hpnicfCfgLogSrcCmd, hpnicfCfgLogSrcData, hpnicfCfgLogDesData }
    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."
    ::= { hpnicfConfigManNotifications 1 }


hpnicfCfgOperateCompletion NOTIFICATION-TYPE
    OBJECTS { hpnicfCfgOperateType, hpnicfCfgOperateTime, hpnicfCfgOperateState, hpnicfCfgOperateEndTime, hpnicfCfgOperFailReason }
    STATUS current
    DESCRIPTION
        "When create hpnicfCfgOperateTable successfully, a
        notification may be generated."
    ::= { hpnicfConfigManNotifications 2 }

hpnicfCfgInvalidConfigFile NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfCfgOperateType,
            hpnicfCfgOperateFileName,
            hpnicfCfgFirstTrapTime
        }
    STATUS current
    DESCRIPTION
        "When the configuration file is invalid, this
         notification will be generated."
    ::= { hpnicfConfigManNotifications 3 }

hpnicfConfigManConformance OBJECT IDENTIFIER ::= { hpnicfConfig 3 }


hpnicfConfigManCompliances OBJECT IDENTIFIER ::= { hpnicfConfigManConformance 1 }


hpnicfConfigManCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The statement of compliance for those implementing
        the configuration management MIB."
    MODULE -- this module
    MANDATORY-GROUPS { hpnicfCfgManLogGroup, hpnicfCfgOperateGroup, hpnicfCfgManNotificationGroup }
    OBJECT hpnicfCfgOperateType
    SYNTAX ConfigOperationType
    WRITE-SYNTAX INTEGER
        {
            running2Startup(1),
            startup2Running(2),
            running2Net(3),
            net2Running(4),
            net2Startup(5),
            startup2Net(6)
        }
    DESCRIPTION
        " "
    ::= { hpnicfConfigManCompliances 1 }


hpnicfConfigManGroups OBJECT IDENTIFIER ::= { hpnicfConfigManConformance 2 }


hpnicfCfgManLogGroup OBJECT-GROUP
    OBJECTS
        { hpnicfCfgRunModifiedLast, hpnicfCfgRunSavedLast, hpnicfCfgStartModifiedLast, hpnicfCfgLogLimitedEntries, hpnicfCfgLogDeletedEntries,
        hpnicfCfgLogTime, hpnicfCfgLogSrcCmd, hpnicfCfgLogTerminalType, hpnicfCfgLogTerminalNum, hpnicfCfgLogTerminalUser,
        hpnicfCfgLogTerminalLocation, hpnicfCfgLogCmdSrcAddress, hpnicfCfgLogVirHost, hpnicfCfgLogServerAddress, hpnicfCfgLogFile,
        hpnicfCfgLogUserName, hpnicfCfgLogWantBackup, hpnicfCfgLogSrcData, hpnicfCfgLogDesData }
    STATUS current
    DESCRIPTION
        "A collection of objects configuration log group."
    ::= { hpnicfConfigManGroups 1 }


hpnicfCfgOperateGroup OBJECT-GROUP
    OBJECTS
        { hpnicfCfgOperateGlobalEntryLimit, hpnicfCfgOperateEntryAgeOutTime, hpnicfCfgOperateType, hpnicfCfgOperateProtocol, hpnicfCfgOperateFileName,
        hpnicfCfgOperateServerAddress, hpnicfCfgOperateUserName, hpnicfCfgOperateUserPassword, hpnicfCfgOperateTime,  hpnicfCfgOperateEndNotificationSwitch,
        hpnicfCfgOperateResultGlobalEntryLimit, hpnicfCfgOperateState, hpnicfCfgOperateRowStatus, hpnicfCfgOperateResultOptIndex,
        hpnicfCfgOperateResultOpType, hpnicfCfgOperateEndTime, hpnicfCfgOperFailReason, hpnicfCfgOperateServerPort }
    STATUS current
    DESCRIPTION
        "A group of configuration operation."
    ::= { hpnicfConfigManGroups 2 }


hpnicfCfgManNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { hpnicfCfgManEventlog, hpnicfCfgOperateCompletion, hpnicfCfgInvalidConfigFile }
    STATUS current
    DESCRIPTION
        "Collection of notification objects."
    ::= { hpnicfConfigManGroups 3 }

END
