-- =================================================================
-- Copyright (c) 2010-2014 Hewlett-Packard Development Company, L.P.
--
-- Description:  DHCP Server MIB
-- Reference:
-- Version: V1.7
-- History:
-- V1.0 Initial version Created by y04444
-- V1.1 2009-09-07 Modify by xuyufei
--      Add DHCP Server trap
-- V1.2 2010-05-30 Modify by liuxiaoming06874
--      Add hpnicfDHCPSrvMibObject,including hpnicfDHCPSrvGlobalPoolTable
--      hpnicfDHCPSrvGlobalPoolConfigTable,hpnicfDHCPSrvGlobalPoolParaTable
--      hpnicfDHCPSrvGlobalPoolOptionTable
--      2010-08-13 Modify by Cui Jing
--      Add hpnicfDHCPSrvGlobalPoolStatTable,
--      modify hpnicfDHCPServerReqTimes and hpnicfDHCPServerReqSuccessTimes.
-- V1.3 2011-08-10 Modify by zhangshuai06624
--      modify hpnicfDHCPSrvGlbPoolReqTimes and hpnicfDHCPSrvGlbPoolSuccessTimes.
--      Add hpnicfDHCPSrvGlbPoolDiscoverTimes, hpnicfDHCPSrvGlbPoolOfferTimes and
--      hpnicfDHCPSrvGlbPoolACKTimes
-- V1.4 2011-11-23 Modify by zhangshuai06624
--      Add hpnicfDHCPServerTrapObjects and hpnicfDHCPServerFirstTrapTime
-- V1.5 2012-08-10 Modify by xuyufei03122
--      modify hpnicfDHCPSrvGlbPoolOptHexString
-- V1.6 2013-08-28 Modify by ganchanghua06076
--      Add hpnicfDHCPSvrOptionGroupTable, hpnicfDHCPSvrOptionTable,
--      hpnicfDHCPSvrVerifyMacTable and hpnicfDHCPSvrPoolMacTable.
--      2013-10-17 Modify by xuyufei03122
--      Add hpnicfDHCPSrvGlbPoolTotalIpNum and hpnicfDHCPSrvGlbPoolInUsedIpNum
-- V1.7 2014-04-17 Modify by cuixiaohui03029
--      Add hpnicfDHCPSrvGlobalPoolAllocObject
--      Add hpnicfDHCPSrvGlbPoolLeaseTimeSec
--      Add hpnicfDHCPSrvGlbPoolCliGWIPAddr
-- =================================================================
HPN-ICF-DHCP-SERVER-MIB DEFINITIONS ::= BEGIN
IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, IpAddress, Integer32,
    TimeTicks, Counter32
        FROM SNMPv2-SMI
    RowStatus, MacAddress
        FROM SNMPv2-TC;

hpnicfDHCPServer MODULE-IDENTITY
    LAST-UPDATED "200905060000Z"            -- May 06th, 2009 at 00:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "The MIB module is used for DHCP server."
    REVISION    "200905060000Z"
    DESCRIPTION
        "Initial version"
    ::= { hpnicfCommon 101 }

--
-- Define the DHCP Server GLOBAL.
--
    hpnicfDHCPServerObjects OBJECT IDENTIFIER ::= { hpnicfDHCPServer 1 }

    hpnicfDHCPServerIPPoolUsage OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Usage factor of DHCP server ip pool."
        ::= { hpnicfDHCPServerObjects 1 }

    hpnicfDHCPServerReqTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of requests received by the DHCP server."
        ::= { hpnicfDHCPServerObjects 2 }

    hpnicfDHCPServerReqSuccessTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of requests success responses sent by the DHCP server."
        ::= { hpnicfDHCPServerObjects 3 }

    hpnicfDHCPServerAvgIpUseThreshold OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Threshold of average IP usage of a DHCP server pool in 5 minutes."
        ::= { hpnicfDHCPServerObjects 4 }

    hpnicfDHCPServerMaxIpUseThreshold OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Threshold of maximum IP usage of a DHCP server pool in 5 minutes."
        ::= { hpnicfDHCPServerObjects 5 }

    hpnicfDHCPServerAllocateThreshold OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Threshold of DHCP server allocated IP address in 5 minutes."
        ::= { hpnicfDHCPServerObjects 6 }

--
-- Define the DHCP Server Tables.
--
    hpnicfDHCPServerTables OBJECT IDENTIFIER ::= { hpnicfDHCPServer 2 }

    hpnicfDHCPServerPoolName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..255))
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "DHCP server pool name."
        ::= { hpnicfDHCPServerTables 1 }

-- =================================================================
-- 1st Table of hpnicfDHCPServerTables: hpnicfDHCPSrvGlobalPoolTable
-- =================================================================
    hpnicfDHCPSrvGlobalPoolTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSrvGlobalPoolEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for creating DHCP server global pools."
        ::= { hpnicfDHCPServerTables 2 }

    hpnicfDHCPSrvGlobalPoolEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSrvGlobalPoolEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing objects for creating or
            deleting a global pool for the DHCP server."
        INDEX { hpnicfDHCPSrvGlobalPoolName }
        ::= { hpnicfDHCPSrvGlobalPoolTable 1 }

    HpnicfDHCPSrvGlobalPoolEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSrvGlobalPoolName         OCTET STRING,
                hpnicfDHCPSrvGlobalPoolRowStatus    RowStatus
            }

    hpnicfDHCPSrvGlobalPoolName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "DHCP server global pool name."
        ::= { hpnicfDHCPSrvGlobalPoolEntry 1 }

    hpnicfDHCPSrvGlobalPoolRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus.  Three actions are used: active,
            createAndGo, destroy."
        ::= { hpnicfDHCPSrvGlobalPoolEntry 2 }

-- =================================================================
-- 2nd Table of hpnicfDHCPServerTables: hpnicfDHCPSrvGlobalPoolConfigTable
-- =================================================================
    hpnicfDHCPSrvGlobalPoolConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSrvGlobalPoolConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the configurations of dhcp
            server global pools."
        ::= { hpnicfDHCPServerTables 3 }

    hpnicfDHCPSrvGlobalPoolConfigEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSrvGlobalPoolConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            the network ip or host ip etc. to global pools for
            DHCP server."
        INDEX { hpnicfDHCPSrvGlobalPoolName }
        ::= { hpnicfDHCPSrvGlobalPoolConfigTable 1 }

    HpnicfDHCPSrvGlobalPoolConfigEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSrvGlobalPoolType              INTEGER,
                hpnicfDHCPSrvGlobalPoolNetwork           IpAddress,
                hpnicfDHCPSrvGlobalPoolNetworkMask       IpAddress,
                hpnicfDHCPSrvGlobalPoolHostIPAddr        IpAddress,
                hpnicfDHCPSrvGlobalPoolHostMask          IpAddress,
                hpnicfDHCPSrvGlobalPoolHostHAddr         MacAddress,
                hpnicfDHCPSrvGlobalPoolCfgUndoFlag       INTEGER,
                hpnicfDHCPSrvGlobalPoolStartAddr         IpAddress,
                hpnicfDHCPSrvGlobalPoolEndAddr           IpAddress,
                hpnicfDHCPSrvGlobalPoolAllocObject       INTEGER
            }

    hpnicfDHCPSrvGlobalPoolType OBJECT-TYPE
        SYNTAX      INTEGER
            {
                null(0),
                host(1),
                network(2)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Type of a DHCP global pool.  Any operations of
            this object will be bound with the operations
            of hpnicfDHCPSrvGlobalPoolNetwork, hpnicfDHCPSrvGlobalPoolHostIPAddr,
            or hpnicfDHCPSrvGlobalPoolHostHAddr.
            That means any operation of this object alone will
            be regarded as invalid operation."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 1 }

    hpnicfDHCPSrvGlobalPoolNetwork OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Network ip of a DHCP global pool.
            To delete a configured network ip, please set
            hpnicfDHCPSrvGlobalPoolCfgUndoFlag to 1."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 2 }

    hpnicfDHCPSrvGlobalPoolNetworkMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Net mask of a DHCP global pool(network).
            The SET operation to this object ought to be with
            the SET of hpnicfDHCPSrvGlobalPoolNetwork together, and
            any SET operation alone to this object will be
            regarded as an invalid operation.
            When a network ip of a DHCP global pool was
            deleted, the net mask would also be deleted
            automatically, and no further operation needed."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 3 }

    hpnicfDHCPSrvGlobalPoolHostIPAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Host ip of a DHCP global pool.
            To delete a configured network ip, please set
            hpnicfDHCPSrvGlobalPoolCfgUndoFlag to 2."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 4 }

    hpnicfDHCPSrvGlobalPoolHostMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Net mask of a DHCP global pool(host)
            The SET operation to this object ought to be with
            the SET of hpnicfDHCPSrvGlobalPoolHostIPAddr together,
            and any SET operation alone to this object will be
            regarded as an invalid operation.
            When a host ip of a DHCP global pool was
            deleted, the net mask would also be deleted
            automatically, and no further operation needed."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 5 }

    hpnicfDHCPSrvGlobalPoolHostHAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Hardware address of a DHCP global pool(host).
            To delete a configured hardware address, please
            set hpnicfDHCPSrvGlobalPoolCfgUndoFlag to 3."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 6 }

    hpnicfDHCPSrvGlobalPoolCfgUndoFlag OBJECT-TYPE
        SYNTAX      INTEGER
            {
                undonetworkip(1),
                undohostip(2),
                undohosthaddr(3)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Flag of undo operation for hpnicfDHCPSrvGlobalPoolConfigTable."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 7 }

    hpnicfDHCPSrvGlobalPoolStartAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Start IP of a DHCP global pool.
            To delete a configured start IP, please set
            hpnicfDHCPSrvGlobalPoolStartAddr to 0.  It takes
            effect only when hpnicfDHCPSrvGlobalPoolNetwork is set."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 8 }

    hpnicfDHCPSrvGlobalPoolEndAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "End ip of a DHCP global pool."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 9 }

    hpnicfDHCPSrvGlobalPoolAllocObject OBJECT-TYPE
        SYNTAX      INTEGER
            {
                user(0),
                admin(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "A DHCP global pool type for object allocated address.
            User: the DHCP global pool allocates address for user.
            Admin: the DHCP global pool allocates address for route
            or switch.  The default value is 0."
        ::= { hpnicfDHCPSrvGlobalPoolConfigEntry 10 }
-- =================================================================
-- 3rd Table of hpnicfDHCPServerTables: hpnicfDHCPSrvGlobalPoolParaTable
-- =================================================================
    hpnicfDHCPSrvGlobalPoolParaTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSrvGlobalPoolParaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring parameters to DHCP global
            pools."
        ::= { hpnicfDHCPServerTables 4 }

    hpnicfDHCPSrvGlobalPoolParaEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSrvGlobalPoolParaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for the
            configurations of parameters of DHCP global pools."
        INDEX { hpnicfDHCPSrvGlobalPoolName }
        ::= { hpnicfDHCPSrvGlobalPoolParaTable 1 }

    HpnicfDHCPSrvGlobalPoolParaEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSrvGlbPoolLeaseDay                 Integer32,
                hpnicfDHCPSrvGlbPoolLeaseHour                Integer32,
                hpnicfDHCPSrvGlbPoolLeaseMinute              Integer32,
                hpnicfDHCPSrvGlbPoolLeaseUnlimited           INTEGER,
                hpnicfDHCPSrvGlbPoolDomainName               OCTET STRING,
                hpnicfDHCPSrvGlbPoolCliGWIPStr               OCTET STRING,
                hpnicfDHCPSrvGlbPoolCliGWIPUndo              IpAddress,
                hpnicfDHCPSrvGlbPoolCliDNSIPStr              OCTET STRING,
                hpnicfDHCPSrvGlbPoolCliDNSIPUndo             IpAddress,
                hpnicfDHCPSrvGlbPoolCliNetbiosType           INTEGER,
                hpnicfDHCPSrvGlbPoolCliNbnsIPStr             OCTET STRING,
                hpnicfDHCPSrvGlbPoolCliNbnsIPUndo            IpAddress,
                hpnicfDHCPSrvGlbPoolParaUndoFlag             INTEGER,
                hpnicfDHCPSrvGlbPoolIPInUseReset             INTEGER,
                hpnicfDHCPSrvGlbPoolLeaseTime                TimeTicks,
                hpnicfDHCPSrvGlbPoolPrimaryDNSIP             IpAddress,
                hpnicfDHCPSrvGlbPoolSecondaryDNSIP           IpAddress,
                hpnicfDHCPSrvGlbPoolLeaseSecond              Integer32,
                hpnicfDHCPSrvGlbPoolLeaseTimeSec             Integer32,
                hpnicfDHCPSrvGlbPoolCliGWIPAddr              IpAddress
            }

    hpnicfDHCPSrvGlbPoolLeaseDay OBJECT-TYPE
        SYNTAX      Integer32(0..365)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of days of the lease."
        DEFVAL { 1 }
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 1 }

    hpnicfDHCPSrvGlbPoolLeaseHour OBJECT-TYPE
        SYNTAX      Integer32(0..23)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of hours of the lease."
        DEFVAL { 0 }
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 2 }

    hpnicfDHCPSrvGlbPoolLeaseMinute OBJECT-TYPE
        SYNTAX      Integer32(0..59)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of minutes of the lease."
        DEFVAL { 0 }
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 3 }

    hpnicfDHCPSrvGlbPoolLeaseUnlimited OBJECT-TYPE
        SYNTAX      INTEGER
            {
                invalid(0),
                unlimited(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "A flag denoting if the lease of a pool is
            unlimited."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 4 }

    hpnicfDHCPSrvGlbPoolDomainName OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Domain name for DHCP clients."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 5 }

    hpnicfDHCPSrvGlbPoolCliGWIPStr OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..129))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "String of gateway ip addresses for DHCP clients.
            Since mostly 8 ip can be configured for a pool
            totally, a string is defined to get or configure 8 ip
            ip at a time."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 6 }

    hpnicfDHCPSrvGlbPoolCliGWIPUndo OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "A gateway ip address to delete.  This object is
            only for deleting a given ip of gateway router."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 7 }

    hpnicfDHCPSrvGlbPoolCliDNSIPStr OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..129))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "String of DNS server ip addresses for DHCP clients.
            Since mostly 8 ip can be configured for a pool
            totally, a string is defined to get or configure 8
            ip at a time."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 8 }

    hpnicfDHCPSrvGlbPoolCliDNSIPUndo OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "A DNS server ip address to delete.  This object
            is only for deleting a given ip of DNS server."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 9 }

    hpnicfDHCPSrvGlbPoolCliNetbiosType OBJECT-TYPE
        SYNTAX      INTEGER
            {
                null(0),
                bnode(1),
                pnode(2),
                mnode(4),
                hnode(8)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "NetBios node type for DHCP clients."
        DEFVAL { 0 }
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 10 }

    hpnicfDHCPSrvGlbPoolCliNbnsIPStr OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..129))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "String of NetBios server ip addresses for DHCP
            clients.  Since mostly 8 ip can be configured for
            a pool totally, so a string is defined to get or
            configure 8 ip at a time."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 11 }

    hpnicfDHCPSrvGlbPoolCliNbnsIPUndo OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "A NetBios server ip address to delete.  This
            object is only for deleting a given ip of NetBios
            server."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 12 }

    hpnicfDHCPSrvGlbPoolParaUndoFlag OBJECT-TYPE
        SYNTAX      INTEGER
            {
                undoDomain(1),
                undoLease(2),
                undoGateway(3),
                undoDns(4),
                undoNbns(5),
                undoNbType(6)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Flag of undo-operation for hpnicfDHCPSrvGlobalPoolParaTable."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 13 }

    hpnicfDHCPSrvGlbPoolIPInUseReset OBJECT-TYPE
        SYNTAX      INTEGER
            {
                reset(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Reset the auto binding ip of the given global
            pool for DHCP server."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 14 }

    hpnicfDHCPSrvGlbPoolLeaseTime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of timeticks of the lease."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 15 }

    hpnicfDHCPSrvGlbPoolPrimaryDNSIP OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The Primary DNS server IP address to be assigned to the
            client.  To delete a configured Primary DNS server IP, please
            set hpnicfDHCPSrvGlbPoolPrimaryDNSIP to 0.   It takes
            effect only when hpnicfDHCPSrvGlobalPoolNetwork is set."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 16 }

    hpnicfDHCPSrvGlbPoolSecondaryDNSIP OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The Secondary DNS server IP address to be assigned to the
            client.  To delete a configured Secondary DNS server IP, please
            set hpnicfDHCPSrvGlbPoolSecondaryDNSIP to 0.  It takes
            effect only when hpnicfDHCPSrvGlobalPoolNetwork is set."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 17 }

    hpnicfDHCPSrvGlbPoolLeaseSecond OBJECT-TYPE
        SYNTAX      Integer32(0..59)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of seconds of the lease."
        DEFVAL { 0 }
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 18 }

    hpnicfDHCPSrvGlbPoolLeaseTimeSec OBJECT-TYPE
        SYNTAX      Integer32 (5..31622399)
        UNITS      "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of seconds of the lease.  The default
             value is 86400"
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 19 }

    hpnicfDHCPSrvGlbPoolCliGWIPAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Ip addresses of gateway for DHCP clients."
        ::= { hpnicfDHCPSrvGlobalPoolParaEntry 20 }

-- =================================================================
-- 4th Table of hpnicfDHCPServerTables: hpnicfDHCPSrvGlobalPoolOptionTable
-- =================================================================
    hpnicfDHCPSrvGlobalPoolOptionTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSrvGlobalPoolOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring options to DHCP global pools."
        ::= { hpnicfDHCPServerTables 5 }

    hpnicfDHCPSrvGlobalPoolOptionEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSrvGlobalPoolOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            options to DHCP global pools."
        INDEX { hpnicfDHCPSrvGlobalPoolName, hpnicfDHCPSrvGlbPoolOptCode }
        ::= { hpnicfDHCPSrvGlobalPoolOptionTable 1 }

    HpnicfDHCPSrvGlobalPoolOptionEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSrvGlbPoolOptCode         Integer32,
                hpnicfDHCPSrvGlbPoolOptType         INTEGER,
                hpnicfDHCPSrvGlbPoolOptAscii        OCTET STRING,
                hpnicfDHCPSrvGlbPoolOptHexString    OCTET STRING,
                hpnicfDHCPSrvGlbPoolOptIPString     OCTET STRING,
                hpnicfDHCPSrvGlbPoolOptRowStatus    RowStatus
             }

    hpnicfDHCPSrvGlbPoolOptCode OBJECT-TYPE
        SYNTAX      Integer32 (1..254)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Option code."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 1 }

    hpnicfDHCPSrvGlbPoolOptType OBJECT-TYPE
        SYNTAX      INTEGER
            {
                ascii(1),
                hex(2),
                ip(3)
            }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Option type."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 2 }

    hpnicfDHCPSrvGlbPoolOptAscii OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..63))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Ascii string of an option."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 3 }

    hpnicfDHCPSrvGlbPoolOptHexString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..573))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Hex string of an option.  1st to 16th hex strings,
            which are 2 bytes, 4 bytes, 6 bytes or 8 bytes,
            can be configured at most simultaneously.
            That means the format of each string
            must be '12', '1234', '123456' or '12345678'."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 4 }

    hpnicfDHCPSrvGlbPoolOptIPString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..129))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "IP string of an option.  1 to 8 ip addresses  can
            be configured at most simultaneously."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 5 }

    hpnicfDHCPSrvGlbPoolOptRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus.  Three actions are used: active,
            createAndGo, destroy."
        ::= { hpnicfDHCPSrvGlobalPoolOptionEntry 6 }

-- =================================================================
-- 5th Table of hpnicfDHCPServerTables: hpnicfDHCPSrvGlobalPoolStatTable
-- =================================================================
    hpnicfDHCPSrvGlobalPoolStatTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSrvGlobalPoolStatEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The statistics of each DHCP address pool."
        ::= { hpnicfDHCPServerTables 6 }

    hpnicfDHCPSrvGlobalPoolStatEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSrvGlobalPoolStatEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the statistics of each DHCP address pool."
        INDEX { hpnicfDHCPSrvGlobalPoolName }
        ::= { hpnicfDHCPSrvGlobalPoolStatTable 1 }

    HpnicfDHCPSrvGlobalPoolStatEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSrvGlbPoolIPPoolUsage     Integer32,
                hpnicfDHCPSrvGlbPoolReqTimes        Counter32,
                hpnicfDHCPSrvGlbPoolSuccessTimes    Counter32,
                hpnicfDHCPSrvGlbPoolDiscoverTimes   Counter32,
                hpnicfDHCPSrvGlbPoolOfferTimes      Counter32,
                hpnicfDHCPSrvGlbPoolACKTimes        Counter32,
                hpnicfDHCPSrvGlbPoolTotalIpNum      Counter32,
                hpnicfDHCPSrvGlbPoolInUsedIpNum     Counter32
             }

    hpnicfDHCPSrvGlbPoolIPPoolUsage OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Utilization rate of IP addresses in each DHCP address pool, in percentage."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 1 }

    hpnicfDHCPSrvGlbPoolReqTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of request packets received by each DHCP address pool,
            including the request packets for an extension of the lease."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 2 }

    hpnicfDHCPSrvGlbPoolSuccessTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of positive responses sent by each DHCP address pool,
            including responses to the request for an extension of the lease."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 3 }

    hpnicfDHCPSrvGlbPoolDiscoverTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of discover packets received by each DHCP address pool."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 4 }

    hpnicfDHCPSrvGlbPoolOfferTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of offer packets sent by each DHCP address pool."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 5 }

    hpnicfDHCPSrvGlbPoolACKTimes OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of ACK packets sent by each DHCP address pool."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 6 }

    hpnicfDHCPSrvGlbPoolTotalIpNum OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of IP addresses in each DHCP address pool."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 7 }

    hpnicfDHCPSrvGlbPoolInUsedIpNum OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Number of allocated IP addresses in each DHCP address pool."
        ::= { hpnicfDHCPSrvGlobalPoolStatEntry 8 }

-- =================================================================
-- 6th Table of hpnicfDHCPServerTables: hpnicfDHCPSvrOptionGroupTable
-- =================================================================
    hpnicfDHCPSvrOptionGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSvrOptionGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for creating DHCP server global option groups."
        ::= { hpnicfDHCPServerTables 7 }

    hpnicfDHCPSvrOptionGroupEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSvrOptionGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing objects for creating or
            deleting a global option group."
        INDEX { hpnicfDHCPSvrOptionGroupIndex }
        ::= { hpnicfDHCPSvrOptionGroupTable 1 }

    HpnicfDHCPSvrOptionGroupEntry ::=
        SEQUENCE
            {   hpnicfDHCPSvrOptionGroupIndex      Integer32,
                hpnicfDHCPSvrOptionGroupRowstatus  RowStatus
            }

    hpnicfDHCPSvrOptionGroupIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The global option group index."
        ::= { hpnicfDHCPSvrOptionGroupEntry 1 }

    hpnicfDHCPSvrOptionGroupRowstatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus.  Three actions are used: active,
            createAndGo, destroy."
        ::= { hpnicfDHCPSvrOptionGroupEntry 2 }

-- =================================================================
-- 7th Table of hpnicfDHCPServerTables: hpnicfDHCPSvrOptionTable
-- =================================================================
    hpnicfDHCPSvrOptionTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSvrOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring options in a global option group."
        ::= { hpnicfDHCPServerTables 8 }

    hpnicfDHCPSvrOptionEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSvrOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing objects for configuring
             an option in a global option group."
        INDEX {hpnicfDHCPSvrOptionGroupIndex , hpnicfDHCPSvrOptionCode }
        ::= { hpnicfDHCPSvrOptionTable 1 }

    HpnicfDHCPSvrOptionEntry ::=
        SEQUENCE
            {   hpnicfDHCPSvrOptionCode         Integer32,
                hpnicfDHCPSvrOptionType         INTEGER,
                hpnicfDHCPSvrOptionAsciiString  OCTET STRING,
                hpnicfDHCPSvrOptionHexString    OCTET STRING,
                hpnicfDHCPSvrOptionIPString     OCTET STRING,
                hpnicfDHCPSvrOptionRowstatus    RowStatus
            }


    hpnicfDHCPSvrOptionCode OBJECT-TYPE
        SYNTAX      Integer32 (1..254)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Option code."
        ::= { hpnicfDHCPSvrOptionEntry 1 }

    hpnicfDHCPSvrOptionType OBJECT-TYPE
        SYNTAX      INTEGER
            {
                ascii(1),
                hex(2),
                ip(3)
            }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Option type."
        ::= { hpnicfDHCPSvrOptionEntry 2 }

    hpnicfDHCPSvrOptionAsciiString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..255))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Ascii string of an option."
        DEFVAL { "" }
        ::= { hpnicfDHCPSvrOptionEntry 3 }

    hpnicfDHCPSvrOptionHexString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..573))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Hex string of an option.  1 to 16 hex strings,
            which are 2 bytes, 4 bytes, 6 bytes or 8 bytes,
            can be configured at most simultaneously.
            That means the format of each string
            must be '12', '1234', '123456' or '12345678'."
        DEFVAL { "" }
        ::= { hpnicfDHCPSvrOptionEntry 4 }

    hpnicfDHCPSvrOptionIPString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..129))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Ip string of an option.  1 to 8 ip addresses can
            be configured at most simultaneously."
        DEFVAL { "" }
        ::= { hpnicfDHCPSvrOptionEntry 5 }

    hpnicfDHCPSvrOptionRowstatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus.  Three actions are used: active,
            createAndGo, destroy."
        ::= { hpnicfDHCPSvrOptionEntry 6 }

-- =================================================================
-- 8th Table of hpnicfDHCPServerTables: hpnicfDHCPSvrVerifyMacTable
-- =================================================================
    hpnicfDHCPSvrVerifyMacTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSvrVerifyMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the verifying switches status for pools."
        ::= { hpnicfDHCPServerTables 9 }

    hpnicfDHCPSvrVerifyMacEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSvrVerifyMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the switch status for a pool."
        INDEX { hpnicfDHCPSrvGlobalPoolName }
        ::= { hpnicfDHCPSvrVerifyMacTable 1 }

    HpnicfDHCPSvrVerifyMacEntry ::=
        SEQUENCE
            {
                hpnicfDHCPSvrVerifyMacSwitch    INTEGER
            }

    hpnicfDHCPSvrVerifyMacSwitch OBJECT-TYPE
        SYNTAX  INTEGER
            {
                enabled(1),
                disabled(2)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The switch status for this pool.
             It has two defined values: enabled and disabled.
             If the value is enabled, the DHCP server only allocates IP address
             to host in the MAC list.  The default value is disabled."
        DEFVAL { disabled }
        ::= { hpnicfDHCPSvrVerifyMacEntry 1 }

-- =================================================================
-- 9th Table of hpnicfDHCPServerTables: hpnicfDHCPSvrPoolMacTable
-- =================================================================
    hpnicfDHCPSvrPoolMacTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfDHCPSvrPoolMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the MAC addresses list for pools."
        ::= { hpnicfDHCPServerTables 10 }

    hpnicfDHCPSvrPoolMacEntry OBJECT-TYPE
        SYNTAX      HpnicfDHCPSvrPoolMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing a MAC address and a mask."
        INDEX { hpnicfDHCPSrvGlobalPoolName, hpnicfDHCPSvrPoolMac, hpnicfDHCPSvrPoolMacMask }
        ::= { hpnicfDHCPSvrPoolMacTable 1 }

    HpnicfDHCPSvrPoolMacEntry ::=
        SEQUENCE
            {   hpnicfDHCPSvrPoolMac               MacAddress,
                hpnicfDHCPSvrPoolMacMask           MacAddress,
                hpnicfDHCPSvrPoolMacOptIndex       Integer32,
                hpnicfDHCPSvrPoolMacRowstatus      RowStatus
            }

    hpnicfDHCPSvrPoolMac OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "MAC address."
        ::= { hpnicfDHCPSvrPoolMacEntry 1 }

    hpnicfDHCPSvrPoolMacMask OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Mask for MAC address."
        ::= { hpnicfDHCPSvrPoolMacEntry 2 }

    hpnicfDHCPSvrPoolMacOptIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Option group index binding for the MAC address."
        DEFVAL { 0 }
        ::= { hpnicfDHCPSvrPoolMacEntry 3 }

    hpnicfDHCPSvrPoolMacRowstatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus.  Three actions are used: active,
            createAndGo, destroy."
        ::= { hpnicfDHCPSvrPoolMacEntry 4 }

--
-- Define the DHCP Server Traps.
--
    hpnicfDHCPServerTraps OBJECT IDENTIFIER ::= { hpnicfDHCPServer 3 }

    hpnicfDHCPServerTrapPrefix OBJECT IDENTIFIER ::= { hpnicfDHCPServerTraps 0 }

    hpnicfDHCPServerAddrExhaust NOTIFICATION-TYPE
        OBJECTS
        {
            hpnicfDHCPServerPoolName,
            hpnicfDHCPServerFirstTrapTime
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the device DHCP server address
            exhaust."
        ::= { hpnicfDHCPServerTrapPrefix 1 }

    hpnicfDHCPServerAddrExhaustRecover NOTIFICATION-TYPE
        OBJECTS
        {
            hpnicfDHCPServerPoolName,
            hpnicfDHCPServerFirstTrapTime
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the device DHCP server address
            exhaust recover."
        ::= { hpnicfDHCPServerTrapPrefix 2 }

    hpnicfDHCPServerAvgIpUsageOverflow NOTIFICATION-TYPE
        OBJECTS
        {
            hpnicfDHCPServerPoolName
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the average IP address usage
            of DHCP server pool in 5 minutes overflows."
        ::= { hpnicfDHCPServerTrapPrefix 3 }

    hpnicfDHCPServerMaxIpUsageOverflow NOTIFICATION-TYPE
        OBJECTS
        {
            hpnicfDHCPServerPoolName
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the maximum IP address usage
            of DHCP server pool in 5 minutes overflows."
        ::= { hpnicfDHCPServerTrapPrefix 4 }

    hpnicfDHCPServerAllocateOverflow NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
            "This trap is generated when the number of DHCP server
            allocated IP address in 5 minutes overflows."
        ::= { hpnicfDHCPServerTrapPrefix 5 }

    hpnicfDHCPServerTrapObjects OBJECT IDENTIFIER ::= { hpnicfDHCPServerTraps 1 }

    hpnicfDHCPServerFirstTrapTime  OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "Represents the first trap time."
        ::= { hpnicfDHCPServerTrapObjects 1 }

END
