-- =================================================================
-- Copyright (c) 2004-2011 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  DHCP Server MIB
-- Reference:
-- Version:     V1.4
-- 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
-- =================================================================
A3COM-HUAWEI-DHCP-SERVER-MIB DEFINITIONS ::= BEGIN
IMPORTS
    h3cCommon
        FROM A3COM-HUAWEI-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 useage 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 useage 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
            }

    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 }
-- =================================================================
-- 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
            }

    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 }

-- =================================================================
-- 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..143))
        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
             }

    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 }

--
-- 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 maximun 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
