-- =================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- 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 h3cDHCPSrvMibObject,including h3cDHCPSrvGlobalPoolTable
--      h3cDHCPSrvGlobalPoolConfigTable,h3cDHCPSrvGlobalPoolParaTable
--      h3cDHCPSrvGlobalPoolOptionTable
--      2010-08-13 Modify by Cui Jing
--      Add h3cDHCPSrvGlobalPoolStatTable,
--      modify h3cDHCPServerReqTimes and h3cDHCPServerReqSuccessTimes.
-- V1.3 2011-08-10 Modify by zhangshuai06624
--      modify h3cDHCPSrvGlbPoolReqTimes and h3cDHCPSrvGlbPoolSuccessTimes.
--      Add h3cDHCPSrvGlbPoolDiscoverTimes, h3cDHCPSrvGlbPoolOfferTimes and
--      h3cDHCPSrvGlbPoolACKTimes
-- V1.4 2011-11-23 Modify by zhangshuai06624
--      Add h3cDHCPServerTrapObjects and h3cDHCPServerFirstTrapTime
-- V1.5 2012-08-10 Modify by xuyufei03122
--      modify h3cDHCPSrvGlbPoolOptHexString
-- V1.6 2013-08-28 Modify by ganchanghua06076
--      Add h3cDHCPSvrOptionGroupTable, h3cDHCPSvrOptionTable,
--      h3cDHCPSvrVerifyMacTable and h3cDHCPSvrPoolMacTable.
--      2013-10-17 Modify by xuyufei03122
--      Add h3cDHCPSrvGlbPoolTotalIpNum and h3cDHCPSrvGlbPoolInUsedIpNum
-- V1.7 2014-04-17 Modify by cuixiaohui03029
--      Add h3cDHCPSrvGlobalPoolAllocObject
--      Add h3cDHCPSrvGlbPoolLeaseTimeSec
--      Add h3cDHCPSrvGlbPoolCliGWIPAddr
-- =================================================================
H3C-DHCP-SERVER-MIB DEFINITIONS ::= BEGIN
IMPORTS
    h3cCommon
        FROM HUAWEI-3COM-OID-MIB
    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, IpAddress, Integer32,
    TimeTicks, Counter32
        FROM SNMPv2-SMI
    RowStatus, MacAddress
        FROM SNMPv2-TC;

h3cDHCPServer MODULE-IDENTITY
    LAST-UPDATED "200905060000Z"            -- May 06th, 2009 at 00:00 GMT
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION
        "The MIB module is used for DHCP server."
    REVISION    "200905060000Z"
    DESCRIPTION
        "Initial version"
    ::= { h3cCommon 101 }

--
-- Define the DHCP Server GLOBAL.
--
    h3cDHCPServerObjects OBJECT IDENTIFIER ::= { h3cDHCPServer 1 }

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

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

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

    h3cDHCPServerAvgIpUseThreshold 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."
        ::= { h3cDHCPServerObjects 4 }

    h3cDHCPServerMaxIpUseThreshold 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."
        ::= { h3cDHCPServerObjects 5 }

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

--
-- Define the DHCP Server Tables.
--
    h3cDHCPServerTables OBJECT IDENTIFIER ::= { h3cDHCPServer 2 }

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

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

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

    H3cDHCPSrvGlobalPoolEntry ::=
        SEQUENCE
            {
                h3cDHCPSrvGlobalPoolName         OCTET STRING,
                h3cDHCPSrvGlobalPoolRowStatus    RowStatus
            }

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

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

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

    h3cDHCPSrvGlobalPoolConfigEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSrvGlobalPoolConfigEntry
        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 { h3cDHCPSrvGlobalPoolName }
        ::= { h3cDHCPSrvGlobalPoolConfigTable 1 }

    H3cDHCPSrvGlobalPoolConfigEntry ::=
        SEQUENCE
            {
                h3cDHCPSrvGlobalPoolType              INTEGER,
                h3cDHCPSrvGlobalPoolNetwork           IpAddress,
                h3cDHCPSrvGlobalPoolNetworkMask       IpAddress,
                h3cDHCPSrvGlobalPoolHostIPAddr        IpAddress,
                h3cDHCPSrvGlobalPoolHostMask          IpAddress,
                h3cDHCPSrvGlobalPoolHostHAddr         MacAddress,
                h3cDHCPSrvGlobalPoolCfgUndoFlag       INTEGER,
                h3cDHCPSrvGlobalPoolStartAddr         IpAddress,
                h3cDHCPSrvGlobalPoolEndAddr           IpAddress,
                h3cDHCPSrvGlobalPoolAllocObject       INTEGER
            }

    h3cDHCPSrvGlobalPoolType 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 h3cDHCPSrvGlobalPoolNetwork, h3cDHCPSrvGlobalPoolHostIPAddr,
            or h3cDHCPSrvGlobalPoolHostHAddr.
            That means any operation of this object alone will
            be regarded as invalid operation."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 1 }

    h3cDHCPSrvGlobalPoolNetwork 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
            h3cDHCPSrvGlobalPoolCfgUndoFlag to 1."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 2 }

    h3cDHCPSrvGlobalPoolNetworkMask 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 h3cDHCPSrvGlobalPoolNetwork 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."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 3 }

    h3cDHCPSrvGlobalPoolHostIPAddr 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
            h3cDHCPSrvGlobalPoolCfgUndoFlag to 2."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 4 }

    h3cDHCPSrvGlobalPoolHostMask 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 h3cDHCPSrvGlobalPoolHostIPAddr 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."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 5 }

    h3cDHCPSrvGlobalPoolHostHAddr 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 h3cDHCPSrvGlobalPoolCfgUndoFlag to 3."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 6 }

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

    h3cDHCPSrvGlobalPoolStartAddr 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
            h3cDHCPSrvGlobalPoolStartAddr to 0.  It takes
            effect only when h3cDHCPSrvGlobalPoolNetwork is set."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 8 }

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

    h3cDHCPSrvGlobalPoolAllocObject 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."
        ::= { h3cDHCPSrvGlobalPoolConfigEntry 10 }
-- =================================================================
-- 3rd Table of h3cDHCPServerTables: h3cDHCPSrvGlobalPoolParaTable
-- =================================================================
    h3cDHCPSrvGlobalPoolParaTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF H3cDHCPSrvGlobalPoolParaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring parameters to DHCP global
            pools."
        ::= { h3cDHCPServerTables 4 }

    h3cDHCPSrvGlobalPoolParaEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSrvGlobalPoolParaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for the
            configurations of parameters of DHCP global pools."
        INDEX { h3cDHCPSrvGlobalPoolName }
        ::= { h3cDHCPSrvGlobalPoolParaTable 1 }

    H3cDHCPSrvGlobalPoolParaEntry ::=
        SEQUENCE
            {
                h3cDHCPSrvGlbPoolLeaseDay                 Integer32,
                h3cDHCPSrvGlbPoolLeaseHour                Integer32,
                h3cDHCPSrvGlbPoolLeaseMinute              Integer32,
                h3cDHCPSrvGlbPoolLeaseUnlimited           INTEGER,
                h3cDHCPSrvGlbPoolDomainName               OCTET STRING,
                h3cDHCPSrvGlbPoolCliGWIPStr               OCTET STRING,
                h3cDHCPSrvGlbPoolCliGWIPUndo              IpAddress,
                h3cDHCPSrvGlbPoolCliDNSIPStr              OCTET STRING,
                h3cDHCPSrvGlbPoolCliDNSIPUndo             IpAddress,
                h3cDHCPSrvGlbPoolCliNetbiosType           INTEGER,
                h3cDHCPSrvGlbPoolCliNbnsIPStr             OCTET STRING,
                h3cDHCPSrvGlbPoolCliNbnsIPUndo            IpAddress,
                h3cDHCPSrvGlbPoolParaUndoFlag             INTEGER,
                h3cDHCPSrvGlbPoolIPInUseReset             INTEGER,
                h3cDHCPSrvGlbPoolLeaseTime                TimeTicks,
                h3cDHCPSrvGlbPoolPrimaryDNSIP             IpAddress,
                h3cDHCPSrvGlbPoolSecondaryDNSIP           IpAddress,
                h3cDHCPSrvGlbPoolLeaseSecond              Integer32,
                h3cDHCPSrvGlbPoolLeaseTimeSec             Integer32,
                h3cDHCPSrvGlbPoolCliGWIPAddr              IpAddress
            }

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

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

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

    h3cDHCPSrvGlbPoolLeaseUnlimited 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 4 }

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

    h3cDHCPSrvGlbPoolCliGWIPStr 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 6 }

    h3cDHCPSrvGlbPoolCliGWIPUndo 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 7 }

    h3cDHCPSrvGlbPoolCliDNSIPStr 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 8 }

    h3cDHCPSrvGlbPoolCliDNSIPUndo 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 9 }

    h3cDHCPSrvGlbPoolCliNetbiosType 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 }
        ::= { h3cDHCPSrvGlobalPoolParaEntry 10 }

    h3cDHCPSrvGlbPoolCliNbnsIPStr 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 11 }

    h3cDHCPSrvGlbPoolCliNbnsIPUndo 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 12 }

    h3cDHCPSrvGlbPoolParaUndoFlag 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 h3cDHCPSrvGlobalPoolParaTable."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 13 }

    h3cDHCPSrvGlbPoolIPInUseReset 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."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 14 }

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

    h3cDHCPSrvGlbPoolPrimaryDNSIP 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 h3cDHCPSrvGlbPoolPrimaryDNSIP to 0.   It takes
            effect only when h3cDHCPSrvGlobalPoolNetwork is set."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 16 }

    h3cDHCPSrvGlbPoolSecondaryDNSIP 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 h3cDHCPSrvGlbPoolSecondaryDNSIP to 0.  It takes
            effect only when h3cDHCPSrvGlobalPoolNetwork is set."
        ::= { h3cDHCPSrvGlobalPoolParaEntry 17 }

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

    h3cDHCPSrvGlbPoolLeaseTimeSec 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"
        ::= { h3cDHCPSrvGlobalPoolParaEntry 19 }

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

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

    h3cDHCPSrvGlobalPoolOptionEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSrvGlobalPoolOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            options to DHCP global pools."
        INDEX { h3cDHCPSrvGlobalPoolName, h3cDHCPSrvGlbPoolOptCode }
        ::= { h3cDHCPSrvGlobalPoolOptionTable 1 }

    H3cDHCPSrvGlobalPoolOptionEntry ::=
        SEQUENCE
            {
                h3cDHCPSrvGlbPoolOptCode         Integer32,
                h3cDHCPSrvGlbPoolOptType         INTEGER,
                h3cDHCPSrvGlbPoolOptAscii        OCTET STRING,
                h3cDHCPSrvGlbPoolOptHexString    OCTET STRING,
                h3cDHCPSrvGlbPoolOptIPString     OCTET STRING,
                h3cDHCPSrvGlbPoolOptRowStatus    RowStatus
             }

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

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

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

    h3cDHCPSrvGlbPoolOptHexString 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'."
        ::= { h3cDHCPSrvGlobalPoolOptionEntry 4 }

    h3cDHCPSrvGlbPoolOptIPString 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."
        ::= { h3cDHCPSrvGlobalPoolOptionEntry 5 }

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

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

    h3cDHCPSrvGlobalPoolStatEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSrvGlobalPoolStatEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the statistics of each DHCP address pool."
        INDEX { h3cDHCPSrvGlobalPoolName }
        ::= { h3cDHCPSrvGlobalPoolStatTable 1 }

    H3cDHCPSrvGlobalPoolStatEntry ::=
        SEQUENCE
            {
                h3cDHCPSrvGlbPoolIPPoolUsage     Integer32,
                h3cDHCPSrvGlbPoolReqTimes        Counter32,
                h3cDHCPSrvGlbPoolSuccessTimes    Counter32,
                h3cDHCPSrvGlbPoolDiscoverTimes   Counter32,
                h3cDHCPSrvGlbPoolOfferTimes      Counter32,
                h3cDHCPSrvGlbPoolACKTimes        Counter32,
                h3cDHCPSrvGlbPoolTotalIpNum      Counter32,
                h3cDHCPSrvGlbPoolInUsedIpNum     Counter32
             }

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

    h3cDHCPSrvGlbPoolReqTimes 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."
        ::= { h3cDHCPSrvGlobalPoolStatEntry 2 }

    h3cDHCPSrvGlbPoolSuccessTimes 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."
        ::= { h3cDHCPSrvGlobalPoolStatEntry 3 }

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

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

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

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

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

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

    h3cDHCPSvrOptionGroupEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSvrOptionGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing objects for creating or
            deleting a global option group."
        INDEX { h3cDHCPSvrOptionGroupIndex }
        ::= { h3cDHCPSvrOptionGroupTable 1 }

    H3cDHCPSvrOptionGroupEntry ::=
        SEQUENCE
            {   h3cDHCPSvrOptionGroupIndex      Integer32,
                h3cDHCPSvrOptionGroupRowstatus  RowStatus
            }

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

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

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

    h3cDHCPSvrOptionEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSvrOptionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing objects for configuring
             an option in a global option group."
        INDEX {h3cDHCPSvrOptionGroupIndex , h3cDHCPSvrOptionCode }
        ::= { h3cDHCPSvrOptionTable 1 }

    H3cDHCPSvrOptionEntry ::=
        SEQUENCE
            {   h3cDHCPSvrOptionCode         Integer32,
                h3cDHCPSvrOptionType         INTEGER,
                h3cDHCPSvrOptionAsciiString  OCTET STRING,
                h3cDHCPSvrOptionHexString    OCTET STRING,
                h3cDHCPSvrOptionIPString     OCTET STRING,
                h3cDHCPSvrOptionRowstatus    RowStatus
            }


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

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

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

    h3cDHCPSvrOptionHexString 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 { "" }
        ::= { h3cDHCPSvrOptionEntry 4 }

    h3cDHCPSvrOptionIPString 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 { "" }
        ::= { h3cDHCPSvrOptionEntry 5 }

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

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

    h3cDHCPSvrVerifyMacEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSvrVerifyMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the switch status for a pool."
        INDEX { h3cDHCPSrvGlobalPoolName }
        ::= { h3cDHCPSvrVerifyMacTable 1 }

    H3cDHCPSvrVerifyMacEntry ::=
        SEQUENCE
            {
                h3cDHCPSvrVerifyMacSwitch    INTEGER
            }

    h3cDHCPSvrVerifyMacSwitch 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 }
        ::= { h3cDHCPSvrVerifyMacEntry 1 }

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

    h3cDHCPSvrPoolMacEntry OBJECT-TYPE
        SYNTAX      H3cDHCPSvrPoolMacEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing a MAC address and a mask."
        INDEX { h3cDHCPSrvGlobalPoolName, h3cDHCPSvrPoolMac, h3cDHCPSvrPoolMacMask }
        ::= { h3cDHCPSvrPoolMacTable 1 }

    H3cDHCPSvrPoolMacEntry ::=
        SEQUENCE
            {   h3cDHCPSvrPoolMac               MacAddress,
                h3cDHCPSvrPoolMacMask           MacAddress,
                h3cDHCPSvrPoolMacOptIndex       Integer32,
                h3cDHCPSvrPoolMacRowstatus      RowStatus
            }

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

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

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

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

--
-- Define the DHCP Server Traps.
--
    h3cDHCPServerTraps OBJECT IDENTIFIER ::= { h3cDHCPServer 3 }

    h3cDHCPServerTrapPrefix OBJECT IDENTIFIER ::= { h3cDHCPServerTraps 0 }

    h3cDHCPServerAddrExhaust NOTIFICATION-TYPE
        OBJECTS
        {
            h3cDHCPServerPoolName,
            h3cDHCPServerFirstTrapTime
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the device DHCP server address
            exhaust."
        ::= { h3cDHCPServerTrapPrefix 1 }

    h3cDHCPServerAddrExhaustRecover NOTIFICATION-TYPE
        OBJECTS
        {
            h3cDHCPServerPoolName,
            h3cDHCPServerFirstTrapTime
        }
        STATUS      current
        DESCRIPTION
            "This trap is generated when the device DHCP server address
            exhaust recover."
        ::= { h3cDHCPServerTrapPrefix 2 }

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

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

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

    h3cDHCPServerTrapObjects OBJECT IDENTIFIER ::= { h3cDHCPServerTraps 1 }

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

END
