-- =============================================================================
-- Copyright (c) 2004-2021 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  DHCPv4 mib for server and relay
-- Reference:
-- Version:      V1.7
-- History:
-- V1.0 The initial version, created by lilin, 2012.5.24
-- V1.1 Modified the mib description by lilin, 2013.4.24
-- V1.2 Added hh3cDhcpServer2PoolVerifyClass hh3cDhcpServer2DefOptGrpTable
--      hh3cDhcpServer2ValidClassTableby hh3cDhcpServer2RuleHwAddrTable
--      hh3cDhcpServer2OptionGroupTable hh3cDhcpServer2OptionTable
--      by yuguoqing, 2014.3.20
-- V1.3 Add hh3cDhcpServer2AllocThreshold, hh3cDhcpServer2ReqCnt,
--      hh3cDhcpServer2ReqSuccCnt, hh3cDhcpServer2PoolThreshold,
--      hh3cDhcpServer2PoolUsage, hh3cDhcpServer2PoolReqCnt,
--      hh3cDhcpServer2PoolReqSuccCnt, hh3cDhcpServer2PoolDiscoverCnt,
--      hh3cDhcpServer2PoolOfferCnt, hh3cDhcpServer2PoolAckCnt,
--      hh3cDhcpServer2AddrExhaust, hh3cDhcpServer2AddrExhaustRecov,
--      hh3cDhcpServer2IpUsageOverflow, hh3cDhcpServer2AllocOverflow
--      by zhangrenqiang, 2015.8.5
-- V1.4 Modified hh3cDhcpServer2RuleNumber by heminhong, 2017.01.13
-- V1.5 Add hh3cDhcpServer2IPTotalNum, hh3cDhcpServer2IPUsedNum,
--      hh3cDhcpServer2IPIdleNum, hh3cDhcpServer2IPExcludeTotalNum,
--      hh3cDhcpServer2PoolIPTotalNum, hh3cDhcpServer2PoolIPUsedNum,
--      hh3cDhcpServer2PoolIPIdleNum,hh3cDhcpServer2PoolIPExcludeNum,
--      hh3cDhcpServer2PoolConflictNum,hh3cDhcpServer2PoolAutoBindNum,
--      hh3cDhcpServer2PoolManualBindNum,hh3cDhcpServer2PoolExpiredBindNum,
--      hh3cDhcpServer2IpUsageOverflowRecov, hh3cDhcpServer2PoolNameInfo
--      Modified hh3cDhcpServer2AddrExhaust, hh3cDhcpServer2AddrExhaustRecov,
--      hh3cDhcpServer2IpUsageOverflow
--      by limeng, 2017.6.3
-- V1.6 Add hh3cDhcpServer2IPInUseSecondVlanId
--      by lvlei, 2019.2.18
-- V1.7 Add hh3cDhcpServer2PoolGroupTable, hh3cDhcpServer2PoolGroupExtTable,
--      hh3cDhcpServer2PoolGroupStatTable
--      Add hh3cDhcpServer2PoolReserveIpNum, hh3cDhcpServer2PoolGpReserveIpNum,
--      hh3cDhcpServer2NetUsageOverflow,hh3cDhcpServer2NetUsageOverflowRecov,
--      hh3cDhcpServer2NetExhaust,hh3cDhcpServer2NetExhaustRecov,
--      by jiangzhijie, 2021.02.08
-- =============================================================================
HH3C-DHCP4-MIB DEFINITIONS ::= BEGIN

-- =============================================================================
-- Imported variables and types
-- =============================================================================
IMPORTS
    TruthValue, RowStatus, MacAddress
        FROM SNMPv2-TC
    OBJECT-TYPE, MODULE-IDENTITY, Integer32,
    TimeTicks, Counter64, Unsigned32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    ifIndex, InterfaceIndexOrZero
        FROM IF-MIB
    InetAddressIPv4
        FROM INET-ADDRESS-MIB
    hh3cCommon
        FROM HH3C-OID-MIB;


-- =============================================================================
-- Module identity
-- =============================================================================
hh3cDhcp4 MODULE-IDENTITY
    LAST-UPDATED "202102080000Z"
    ORGANIZATION
        "New H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team New H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION "DHCPv4 MIB"
    REVISION
        "202102080000Z"
    DESCRIPTION
        "Modified to add new nodes."
    REVISION
        "201902180000Z"
    DESCRIPTION
        "Modified to add new nodes."
    REVISION
        "201706030000Z"
    DESCRIPTION
        "Modified to add new nodes."
    REVISION
        "201701130000Z"
    DESCRIPTION
        "Modified 'hh3cDhcpServer2RuleNumber' range."
    REVISION
        "201508050000Z"
    DESCRIPTION
        "Modified to add new nodes and a new table."
    REVISION
        "201304240000Z"
    DESCRIPTION
        "The private MIB file includes the DHCPv4 server and relay profile."
    ::= { hh3cCommon 122 }

-- =============================================================================
-- DHCP server scalar objects definition.
-- =============================================================================
    hh3cDhcpServer2ScalarObjects OBJECT IDENTIFIER ::= { hh3cDhcp4 1 }

-- =============================================================================
-- hh3cDhcpServer2ScalarObjects: hh3cDhcpServer2ConfigGroup
-- =============================================================================
hh3cDhcpServer2ConfigGroup OBJECT IDENTIFIER ::= { hh3cDhcpServer2ScalarObjects 1 }

hh3cDhcpServer2Enabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the value of this object is 'true', the DHCP service is enabled."
    DEFVAL { false }
    ::= { hh3cDhcpServer2ConfigGroup 1 }

hh3cDhcpServer2AlwaysBroadcast OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the value of this object is set to 'true',
         the DHCP server always uses broadcast to reply the client."
    DEFVAL { false }
    ::= { hh3cDhcpServer2ConfigGroup 2 }

hh3cDhcpServer2IgnoreBootp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the value of this object is set to 'true',
         the DHCP server ignores BOOTP requests."
    DEFVAL { false }
    ::= { hh3cDhcpServer2ConfigGroup 3 }

hh3cDhcpServer2BootpReplyRfc1048 OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the value of this object is set to 'true',
         the DHCP server use RFC 1048 format to reply to
         BOOTP requests."
    DEFVAL { false }
    ::= { hh3cDhcpServer2ConfigGroup 4 }

hh3cDhcpServer2Opt82Enabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When the value of this object is set to 'true',
         the DHCP server handles DHCP option 82."
    DEFVAL { true }
    ::= { hh3cDhcpServer2ConfigGroup 5 }

hh3cDhcpServer2PingNumber OBJECT-TYPE
    SYNTAX      Unsigned32(0..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of ping packets sent out."
    DEFVAL { 1 }
    ::= { hh3cDhcpServer2ConfigGroup 6 }

hh3cDhcpServer2PingTimeout OBJECT-TYPE
    SYNTAX      Unsigned32(0..10000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The delay for the reply of a ping packet in
         milliseconds."
    DEFVAL { 500 }
    ::= { hh3cDhcpServer2ConfigGroup 7 }

hh3cDhcpServer2AllocThreshold OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Threshold of success rate of DHCP server IP address allocation
         in 5 minutes."
    DEFVAL { 0 }
    ::= { hh3cDhcpServer2ConfigGroup 8 }

-- =============================================================================
-- hh3cDhcpServer2ScalarObjects: hh3cDhcpServer2StatGroup
-- =============================================================================
hh3cDhcpServer2StatGroup     OBJECT IDENTIFIER ::= { hh3cDhcpServer2ScalarObjects 2 }

hh3cDhcpServer2BadNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the bad packets received."
    ::= { hh3cDhcpServer2StatGroup 1 }

hh3cDhcpServer2BootpRequestNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the BOOTREQUEST packets received."
    ::= { hh3cDhcpServer2StatGroup 2 }

hh3cDhcpServer2DiscoverNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPDISCOVER packets
         received from the DHCP clients."
    ::= { hh3cDhcpServer2StatGroup 3 }

hh3cDhcpServer2RequestNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPREQUEST packets
         received from the DHCP clients."
    ::= { hh3cDhcpServer2StatGroup 4 }

hh3cDhcpServer2DeclineNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPDECLINE packets
         received from the DHCP clients."
    ::= { hh3cDhcpServer2StatGroup 5 }

hh3cDhcpServer2ReleaseNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPRELEASE packets
         received from the DHCP clients."
    ::= { hh3cDhcpServer2StatGroup 6 }

hh3cDhcpServer2InformNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPINFORM packets
         received from the DHCP clients."
    ::= { hh3cDhcpServer2StatGroup 7 }

hh3cDhcpServer2BootpReplyNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the BOOTREPLY packets
         sent by the DHCP server."
    ::= { hh3cDhcpServer2StatGroup 8 }

hh3cDhcpServer2OfferNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPOFFER packets
         sent by the DHCP server."
    ::= { hh3cDhcpServer2StatGroup 9 }

hh3cDhcpServer2AckNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPACK packets
         sent by the DHCP server."
    ::= { hh3cDhcpServer2StatGroup 10 }

hh3cDhcpServer2NakNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPNAK packets
         sent by the DHCP server."
    ::= { hh3cDhcpServer2StatGroup 11 }

hh3cDhcpServer2TotalPoolUsage OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The percentage of IP addresses in use
         of all DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 12 }

hh3cDhcpServer2PoolNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 13 }

hh3cDhcpServer2ConflictNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of conflict IP in all
         DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 14 }

hh3cDhcpServer2AutoBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of auto binding IP in
         DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 15 }

hh3cDhcpServer2ManualBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of manual binding IP in
         DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 16 }

hh3cDhcpServer2ExpiredBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of expired binding IP in
         DHCP server pools."
    ::= { hh3cDhcpServer2StatGroup 17 }

hh3cDhcpServer2ReqCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of address allocation
         requests received by the DHCP server."
    ::= { hh3cDhcpServer2StatGroup 18 }

hh3cDhcpServer2ReqSuccCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of address allocation
         requests success responses sent by the
         DHCP server."
    ::= { hh3cDhcpServer2StatGroup 19 }

hh3cDhcpServer2IPTotalNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of addresses."
    ::= { hh3cDhcpServer2StatGroup 20 }

hh3cDhcpServer2IPUsedNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of used addresses."
    ::= { hh3cDhcpServer2StatGroup 21 }

hh3cDhcpServer2IPIdleNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of idle addresses."
    ::= { hh3cDhcpServer2StatGroup 22 }

hh3cDhcpServer2IPExcludeTotalNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of exclude addresses."
    ::= { hh3cDhcpServer2StatGroup 23 }

-- =============================================================================
-- DHCP server table definition.
-- =============================================================================
    hh3cDhcpServer2Tables OBJECT IDENTIFIER ::= { hh3cDhcp4 2 }

-- =============================================================================
-- 1st Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolTable
-- =============================================================================
hh3cDhcpServer2PoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing DHCP server pool configurations."
    ::= { hh3cDhcpServer2Tables 1 }

hh3cDhcpServer2PoolEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing DHCP server pool configurations."
    INDEX { hh3cDhcpServer2PoolIndex }
    ::= { hh3cDhcpServer2PoolTable 1 }

Hh3cDhcpServer2PoolEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolIndex                    Unsigned32,
            hh3cDhcpServer2PoolName                     OCTET STRING,
            hh3cDhcpServer2PoolVpnName                  OCTET STRING,
            hh3cDhcpServer2PoolNetwork                  InetAddressIPv4,
            hh3cDhcpServer2PoolNetworkMask              InetAddressIPv4,
            hh3cDhcpServer2PoolStartAddr                InetAddressIPv4,
            hh3cDhcpServer2PoolEndAddr                  InetAddressIPv4,
            hh3cDhcpServer2PoolLeaseDay                 Integer32,
            hh3cDhcpServer2PoolLeaseHour                Integer32,
            hh3cDhcpServer2PoolLeaseMinute              Integer32,
            hh3cDhcpServer2PoolLeaseSecond              Integer32,
            hh3cDhcpServer2PoolLeaseUnlimit             TruthValue,
            hh3cDhcpServer2PoolLeaseTime                TimeTicks,
            hh3cDhcpServer2PoolDomainName               OCTET STRING,
            hh3cDhcpServer2PoolGatewayIP                OCTET STRING,
            hh3cDhcpServer2PoolDNSIP                    OCTET STRING,
            hh3cDhcpServer2PoolPrimaryDNSIP             InetAddressIPv4,
            hh3cDhcpServer2PoolSecondDNSIP              InetAddressIPv4,
            hh3cDhcpServer2PoolNetbiosType              INTEGER,
            hh3cDhcpServer2PoolNbnsIP                   OCTET STRING,
            hh3cDhcpServer2PoolBootFileName             OCTET STRING,
            hh3cDhcpServer2PoolBimsIP                   InetAddressIPv4,
            hh3cDhcpServer2PoolBimsPort                 Unsigned32,
            hh3cDhcpServer2PoolBimsKeyStr               OCTET STRING,
            hh3cDhcpServer2PoolNextServer               InetAddressIPv4,
            hh3cDhcpServer2PoolTftpDomName              OCTET STRING,
            hh3cDhcpServer2PoolTftpIP                   InetAddressIPv4,
            hh3cDhcpServer2PoolVoiceAsIP                InetAddressIPv4,
            hh3cDhcpServer2PoolVoiceFailIP              InetAddressIPv4,
            hh3cDhcpServer2PoolVoiceFailStr             OCTET STRING,
            hh3cDhcpServer2PoolVoiceNCPIP               InetAddressIPv4,
            hh3cDhcpServer2PoolVoiceVlanId              Unsigned32,
            hh3cDhcpServer2PoolVoiceVlanEnbl            TruthValue,
            hh3cDhcpServer2PoolRowStatus                RowStatus,
            hh3cDhcpServer2PoolVerifyClass              TruthValue,
            hh3cDhcpServer2PoolThreshold                Unsigned32
        }

hh3cDhcpServer2PoolIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "DHCP server pool index."
    ::= { hh3cDhcpServer2PoolEntry 1 }

hh3cDhcpServer2PoolName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "DHCP server pool name.

         Once this object is created, the value of this object cannot
         be modified."
    ::= { hh3cDhcpServer2PoolEntry 2 }

hh3cDhcpServer2PoolVpnName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..31))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Name of the VPN instance that the DHCP pool binds to.

         The value of a zero-length string means the public network.

         Once this object is created, the value of this object cannot
         be modified."
    ::= { hh3cDhcpServer2PoolEntry 3 }

hh3cDhcpServer2PoolNetwork OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Network address of the primary subnet in a DHCP pool.

         If the value of this object is set to 0.0.0.0,
         hh3cDhcpServer2PoolNetworkMask is set with 0.0.0.0
         automatically."
    ::= { hh3cDhcpServer2PoolEntry 4 }

hh3cDhcpServer2PoolNetworkMask OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Network mask of the primary subnet in a DHCP pool.

         The SET operation to this object ought to be with
         the SET of hh3cDhcpServer2PoolNetwork together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolEntry 5 }

hh3cDhcpServer2PoolStartAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Start IP of an address range of the DHCP pool.

         If the value of this object is set to 0.0.0.0,
         hh3cDhcpServer2PoolEndAddr is set with 0.0.0.0 automatically.
         Otherwise hh3cDhcpServer2PoolEndAddr must be set with
         an IP address NOT smaller than the value of this object."
    ::= { hh3cDhcpServer2PoolEntry 6 }

hh3cDhcpServer2PoolEndAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "End IP of an address range of the DHCP pool,

         The SET operation to this object ought to be with
         the SET of hh3cDhcpServer2PoolStartAddr together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolEntry 7 }

hh3cDhcpServer2PoolLeaseDay OBJECT-TYPE
    SYNTAX      Integer32(0..365)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Number of days of the lease.

         The SET operation to this object ought to be with
         the SET of hh3cDhcpServer2PoolLeaseHour,
         hh3cDhcpServer2PoolLeaseMinute,
         hh3cDhcpServer2PoolLeaseSecond together,
         and any SET operation alone to any of these objects
         will be regarded as an invalid operation.

         These objects cannot be set with 0 simultaneously."
    DEFVAL { 1 }
    ::= { hh3cDhcpServer2PoolEntry 8 }

hh3cDhcpServer2PoolLeaseHour OBJECT-TYPE
    SYNTAX      Integer32(0..23)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Number of hours of the lease."
    DEFVAL { 0 }
    ::= { hh3cDhcpServer2PoolEntry 9 }

hh3cDhcpServer2PoolLeaseMinute OBJECT-TYPE
    SYNTAX      Integer32(0..59)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Number of minutes of the lease."
    DEFVAL { 0 }
    ::= { hh3cDhcpServer2PoolEntry 10 }

hh3cDhcpServer2PoolLeaseSecond OBJECT-TYPE
    SYNTAX      Integer32(0..59)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Number of seconds of the lease."
    DEFVAL { 0 }
    ::= { hh3cDhcpServer2PoolEntry 11 }

hh3cDhcpServer2PoolLeaseUnlimit OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A flag denoting whether the lease time of
         a DHCP pool is unlimited."
    DEFVAL { false }
    ::= { hh3cDhcpServer2PoolEntry 12 }

hh3cDhcpServer2PoolLeaseTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The lease time of a DHCP pool in number of timeticks.

         The value of this object cannot be set to 0
         and must be set to 4294967295 or a multiple of 100.

         If the object is set with 4294967295, the lease
         time of a DHCP pool is unlimited."
    ::= { hh3cDhcpServer2PoolEntry 13 }

hh3cDhcpServer2PoolDomainName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..50))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Domain name for DHCP clients.

         If the object is set with a zero-length string, the
         configuration of the domain name is removed."
    ::= { hh3cDhcpServer2PoolEntry 14 }

hh3cDhcpServer2PoolGatewayIP OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Gateway IP addresses for DHCP clients.

         IP addresses are space separated and the leading
         or trailing space will be trimmed.

         Since at most 8 gateway addresses can be configured
         for a pool, a string is defined to get or configure
         8 IP at a time.

         If the object is set with a zero-length string, the
         configuration of the gateway address is removed."
    ::= { hh3cDhcpServer2PoolEntry 15 }

hh3cDhcpServer2PoolDNSIP OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "DNS server IP addresses for DHCP clients.

         IP addresses are space separated and the leading
         or trailing space will be trimmed.

         Since at most 8 DNS server addresses can be configured
         for a pool, a string is defined to get or configure 8
         IP at a time.

         If the object is set with a zero-length string, the
         configuration of the DNS address is removed."
    ::= { hh3cDhcpServer2PoolEntry 16 }

hh3cDhcpServer2PoolPrimaryDNSIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The primary DNS server IP address to be assigned to
         the client."
    ::= { hh3cDhcpServer2PoolEntry 17 }

hh3cDhcpServer2PoolSecondDNSIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The secondary DNS server IP address to be assigned to
         the client."
    ::= { hh3cDhcpServer2PoolEntry 18 }

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

hh3cDhcpServer2PoolNbnsIP OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "NetBios server IP addresses for DHCP clients.

         IP addresses are space separated and the leading
         or trailing space will be trimmed.

         Since at most 8 NetBios server addresses can be
         configured for a pool, a string is defined to get
         or configure 8 IP at a time.

         If the object is set with a zero-length string, the
         configuration of the NBNS address is removed."
    ::= { hh3cDhcpServer2PoolEntry 20 }

hh3cDhcpServer2PoolBootFileName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..63))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Boot file name for DHCP clients.

         If the object is set with a zero-length string, the
         configuration of the boot file name is removed."
    ::= { hh3cDhcpServer2PoolEntry 21 }

hh3cDhcpServer2PoolBimsIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "BIMS server IP address.

         If the object is set with 0.0.0.0, hh3cDhcpServer2PoolBimsPort
         is set with 0 and hh3cDhcpServer2PoolBimsKeyStr is set with
         a zero-length string automatically.
         Otherwise hh3cDhcpServer2PoolBimsPort and hh3cDhcpServer2PoolBimsKeyStr
         must be set at the same time while hh3cDhcpServer2PoolBimsKeyStr
         must be set with a non-zero length string."
    ::= { hh3cDhcpServer2PoolEntry 22 }

hh3cDhcpServer2PoolBimsPort OBJECT-TYPE
    SYNTAX      Unsigned32(0..65534)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "BIMS server port number.

         The SET operation to this object ought to be with
         the SET operation of hh3cDhcpServer2PoolBimsIP and
         hh3cDhcpServer2PoolBimsKeyStr together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolEntry 23 }

hh3cDhcpServer2PoolBimsKeyStr  OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "BIMS server key string.

         The SET operation to this object ought to be with
         the SET of hh3cDhcpServer2PoolBimsIP and
         hh3cDhcpServer2PoolBimsPort together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolEntry 24 }

hh3cDhcpServer2PoolNextServer OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Next DHCP server IP address for DHCP clients.

         If the object is set with 0.0.0.0, the configuration
         of the next server address is removed."
    ::= { hh3cDhcpServer2PoolEntry 25 }

hh3cDhcpServer2PoolTftpDomName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..63))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "TFTP server domain name for DHCP clients.

         If the object is set with a zero-length string, the
         configuration of the TFTP domain name is removed."
    ::= { hh3cDhcpServer2PoolEntry 26 }

hh3cDhcpServer2PoolTftpIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "TFTP server IP address for DHCP clients.

         If the object is set with 0.0.0.0, the configuration
         of the TFTP server address is removed."
    ::= { hh3cDhcpServer2PoolEntry 27 }

hh3cDhcpServer2PoolVoiceAsIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Voice backup server IP address for DHCP clients.

         If the object is set with 0.0.0.0, the configuration
         of voice backup server IP address is removed."
    ::= { hh3cDhcpServer2PoolEntry 28 }

hh3cDhcpServer2PoolVoiceFailIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Voice failover IP address for DHCP clients.

         If the object is set with 0.0.0.0,
         hh3cDhcpServer2PoolVoiceFailStr is set with a
         zero-length string automatically.
         Otherwise hh3cDhcpServer2PoolVoiceFailStr must be set
         with a non-zero length string at the same time."
    ::= { hh3cDhcpServer2PoolEntry 29 }

hh3cDhcpServer2PoolVoiceFailStr OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..39))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Voice failover dialer string for DHCP clients.

         The characters in the string must be '0' ~ '9',or '*'.
         The SET operation to this object ought to be with
         the SET operation of hh3cDhcpServer2PoolVoiceFailIP together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolEntry 30 }

hh3cDhcpServer2PoolVoiceNCPIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Voice network calling processing IP address for DHCP clients.

         If the object is set with 0.0.0.0, the configuration of
         voice network calling processing IP address is removed."
    ::= { hh3cDhcpServer2PoolEntry 31 }

hh3cDhcpServer2PoolVoiceVlanId OBJECT-TYPE
    SYNTAX      Unsigned32(2..4094 | 65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Voice VLAN ID for DHCP clients.

         If the value of this object is set to 65535,
         hh3cDhcpServer2PoolVoiceVlanEnbl is set with 'false' automatically.
         Otherwise hh3cDhcpServer2PoolVoiceVlanEnbl must also be set."
    ::= { hh3cDhcpServer2PoolEntry 32 }

hh3cDhcpServer2PoolVoiceVlanEnbl OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Enable status of the specified voice VLAN for DHCP clients.

         The SET operation to this object ought to be with
         the SET operation of hh3cDhcpServer2PoolVoiceVlanId together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    DEFVAL { false }
    ::= { hh3cDhcpServer2PoolEntry 33 }

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

hh3cDhcpServer2PoolVerifyClass OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Enable the user class verification.

         When the value of this object is set to 'true', the DHCP server
         processes packets from DHCP clients in the defined user classes.
         The user class verification does not apply to packets from DHCP
         clients with static bindings."
    DEFVAL { false }
    ::= { hh3cDhcpServer2PoolEntry 35 }

hh3cDhcpServer2PoolThreshold OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Threshold of IP usage of the DHCP server pool."
    DEFVAL { 100 }
    ::= { hh3cDhcpServer2PoolEntry 36 }

-- =============================================================================
-- 2nd Table of hh3cDhcpServer2Tables: hh3cDhcpServer2IfApplyPoolTable
-- =============================================================================
hh3cDhcpServer2IfApplyPoolTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2IfApplyPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for applying a DHCP pool on interfaces."
    ::= { hh3cDhcpServer2Tables 2 }

hh3cDhcpServer2IfApplyPoolEntry  OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2IfApplyPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for applying a DHCP pool on the interface."
    INDEX { ifIndex }
    ::= { hh3cDhcpServer2IfApplyPoolTable 1 }

Hh3cDhcpServer2IfApplyPoolEntry ::=
    SEQUENCE
    {
        hh3cDhcpServer2IfApplyPoolName OCTET STRING
    }

hh3cDhcpServer2IfApplyPoolName    OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..63))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The name of the DHCP pool that apply to the interface.
         If the object is set with a zero-length string, the configuration
         will be deleted."
    ::= { hh3cDhcpServer2IfApplyPoolEntry 1 }

-- =============================================================================
-- 3rd Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolSecNwTable
-- =============================================================================
hh3cDhcpServer2PoolSecNwTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolSecNwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing the secondary network configuration of
         DHCP pools."
    ::= { hh3cDhcpServer2Tables 3 }

hh3cDhcpServer2PoolSecNwEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolSecNwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring
         the secondary network for DHCP pools."
    INDEX
        {
            hh3cDhcpServer2PoolIndex,
            hh3cDhcpServer2PoolSecNw,
            hh3cDhcpServer2PoolSecNwMask
        }
    ::= { hh3cDhcpServer2PoolSecNwTable 1 }

Hh3cDhcpServer2PoolSecNwEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolSecNw                InetAddressIPv4,
            hh3cDhcpServer2PoolSecNwMask            InetAddressIPv4,
            hh3cDhcpServer2PoolSecNwGwIP            OCTET STRING,
            hh3cDhcpServer2PoolSecNwStatus          RowStatus
        }

hh3cDhcpServer2PoolSecNw OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Network address of the secondary subnets in a DHCP pool."
    ::= { hh3cDhcpServer2PoolSecNwEntry 1 }

hh3cDhcpServer2PoolSecNwMask OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Network mask of the secondary subnets in a DHCP pool."
    ::= { hh3cDhcpServer2PoolSecNwEntry 2 }

hh3cDhcpServer2PoolSecNwGwIP OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Gateway IP addresses of the secondary subnets in a DHCP pool.

         IP addresses are space separated and the leading
         or trailing space will be trimmed.

         Since at most 8 gateway addresses can be configured
         for a secondary network, a string is defined to get
         or configure 8 IP at a time.

         If the object is set with a zero-length string,
         the configuration of the gateway address is removed."
    ::= { hh3cDhcpServer2PoolSecNwEntry 3 }

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

-- =============================================================================
-- 4th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolClassTable
-- =============================================================================
hh3cDhcpServer2PoolClassTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing address range of the DHCP
         server pool for user classes."
    ::= { hh3cDhcpServer2Tables 4 }

hh3cDhcpServer2PoolClassEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing address range of DHCP pools
         for user classes."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2PoolClassName }
    ::= { hh3cDhcpServer2PoolClassTable 1 }

Hh3cDhcpServer2PoolClassEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolClassName            OCTET STRING,
            hh3cDhcpServer2PoolClassStart           InetAddressIPv4,
            hh3cDhcpServer2PoolClassEnd             InetAddressIPv4,
            hh3cDhcpServer2PoolClassStatus          RowStatus
        }

hh3cDhcpServer2PoolClassName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "User class name."
    ::= { hh3cDhcpServer2PoolClassEntry 1 }

hh3cDhcpServer2PoolClassStart OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Start address of an address range for a DHCP user class.

         The SET operation to this object ought to be with
         the SET operation of hh3cDhcpServer2PoolClassEnd together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { hh3cDhcpServer2PoolClassEntry 2 }

hh3cDhcpServer2PoolClassEnd OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "End address of an address range for a DHCP user class.

         The SET operation to this object ought to be with
         the SET of hh3cDhcpServer2PoolClassStart together,
         and any SET operation alone to this object will be
         regarded as an invalid operation.

         This object must be set with an IP address NOT smaller
         than the value of hh3cDhcpServer2PoolClassStart."
    ::= { hh3cDhcpServer2PoolClassEntry 3 }

hh3cDhcpServer2PoolClassStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active,
         createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2PoolClassStart and hh3cDhcpServer2PoolClassEnd
         must also be set."
    ::= { hh3cDhcpServer2PoolClassEntry 4 }

-- =============================================================================
-- 5th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolStaticTable
-- =============================================================================
hh3cDhcpServer2PoolStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing the static binding configurations
         in DHCP pools."
    ::= { hh3cDhcpServer2Tables 5 }

hh3cDhcpServer2PoolStaticEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring
         the static binding in DHCP pools."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2PoolStaticIP}
    ::= { hh3cDhcpServer2PoolStaticTable 1 }

Hh3cDhcpServer2PoolStaticEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolStaticIP          InetAddressIPv4,
            hh3cDhcpServer2PoolStaticMask        InetAddressIPv4,
            hh3cDhcpServer2PoolStaticCID         OCTET STRING,
            hh3cDhcpServer2PoolStaticHAddr       OCTET STRING,
            hh3cDhcpServer2PoolStaticHType       INTEGER,
            hh3cDhcpServer2PoolStaticStatus      RowStatus
        }

hh3cDhcpServer2PoolStaticIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Ip address of a static binding in a DHCP pool."
    ::= { hh3cDhcpServer2PoolStaticEntry 1 }

hh3cDhcpServer2PoolStaticMask OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Network mask of a static binding in a DHCP pool."
    ::= { hh3cDhcpServer2PoolStaticEntry 2 }

hh3cDhcpServer2PoolStaticCID OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0|4..254))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Client identifier of a DHCP client that the IP
         address binds to.

         The structure of the OCTET STRING is
         H-H-H... while H indicates 4 hexadecimal characters
         except that the last H indicates 2 or 4 hexadecimal
         characters."
    ::= { hh3cDhcpServer2PoolStaticEntry 3 }

hh3cDhcpServer2PoolStaticHAddr OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0|4..39))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hardware address of a DHCP client that the IP
         address binds to.

         The structure of the OCTET STRING is
         H-H-H... while H indicates 4 hexadecimal characters
         except that the last H indicates 2 or 4 hexadecimal
         characters."
    ::= { hh3cDhcpServer2PoolStaticEntry 4 }

hh3cDhcpServer2PoolStaticHType OBJECT-TYPE
    SYNTAX     INTEGER
        {
            default(1),
            ethernet(2),
            tokenRing(3)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hardware type of a DHCP client that the IP address binds to.

         The SET operation to this object ought to be with
         the SET operation of hh3cDhcpServer2PoolStaticHAddr,
         and any SET operation alone to this object will be
         regarded as an invalid operation.

         'default' indicates that the hardware type is unknown.
         If the value of hh3cDhcpServer2PoolStaticCID is set to a non-zero
         length string, the object is set with 'default' automatically.
         Otherwise it cannot be set with 'default'.

         'ethernet' indicates that the hardware type is ethernet.
         If the value of hh3cDhcpServer2PoolStaticHAddr is set with
         a non-zero length string, the default value of this object
         is 'ethernet'.

         'tokenRing' indicates that the hardware type is token-ring."
    ::= { hh3cDhcpServer2PoolStaticEntry 5 }

hh3cDhcpServer2PoolStaticStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active,
         createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2PoolStaticCID or (hh3cDhcpServer2PoolStaticHardAddr
         and hh3cDhcpServer2PoolStaticHardType) must also be set."
    ::= { hh3cDhcpServer2PoolStaticEntry 6 }

-- =============================================================================
-- 6th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolOptionTable
-- =============================================================================
hh3cDhcpServer2PoolOptionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolOptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring user-defined options for DHCP pools."
    ::= { hh3cDhcpServer2Tables 6 }

hh3cDhcpServer2PoolOptionEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolOptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring user-defined
         options for DHCP pools."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2PoolOptCode }
    ::= { hh3cDhcpServer2PoolOptionTable 1 }

Hh3cDhcpServer2PoolOptionEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolOptCode         Integer32,
            hh3cDhcpServer2PoolOptType         INTEGER,
            hh3cDhcpServer2PoolOptAscii        OCTET STRING,
            hh3cDhcpServer2PoolOptHexStr       OCTET STRING,
            hh3cDhcpServer2PoolOptIPStr        OCTET STRING,
            hh3cDhcpServer2PoolOptRowStatus    RowStatus
        }

hh3cDhcpServer2PoolOptCode OBJECT-TYPE
    SYNTAX      Integer32(2..254)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Option code."
    ::= { hh3cDhcpServer2PoolOptionEntry 1 }

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

         'ascii' means using the ascii string that is defined
         by hh3cDhcpServer2PoolOptAscii to fill in the option.

         'hex' means using the hex string that is defined by
         hh3cDhcpServer2PoolOptHexStr to fill in the option.

         'ip' means using the IP string that is defined by
         hh3cDhcpServer2PoolOptIPStr to fill in the option."
    ::= { hh3cDhcpServer2PoolOptionEntry 2 }

hh3cDhcpServer2PoolOptAscii OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ascii string of an option.

         If hh3cDhcpServer2PoolOptType is set with 'ascii',
         this object must be set with a non-zero length
         string."
    ::= { hh3cDhcpServer2PoolOptionEntry 3 }

hh3cDhcpServer2PoolOptHexStr OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..510))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hex string of an option.

         The length of the string must be even.
         If hh3cDhcpServer2PoolOptType is set with 'hex',
         this object must be set with a non-zero length
         string."
    ::= { hh3cDhcpServer2PoolOptionEntry 4 }

hh3cDhcpServer2PoolOptIPStr OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "IP string of an option.

         IP addresses are space separated and the leading
         or trailing space will be trimmed.

         1 to 8 IP addresses can be configured simultaneously.

         If hh3cDhcpServer2PoolOptType is set with 'ip',
         this object must be set with a non-zero length string
         that must contain at least one IP address."
    ::= { hh3cDhcpServer2PoolOptionEntry 5 }

hh3cDhcpServer2PoolOptRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active, createAndGo,
         destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2PoolOptType must also be set."
    ::= { hh3cDhcpServer2PoolOptionEntry 6 }

-- =============================================================================
-- 7th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolForbidTable
-- =============================================================================
hh3cDhcpServer2PoolForbidTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2PoolForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring forbidden IP for a DHCP server pool."
    ::= { hh3cDhcpServer2Tables 7 }

hh3cDhcpServer2PoolForbidEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring forbidden IP for a DHCP server pool."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2PoolForbidIP }
    ::= { hh3cDhcpServer2PoolForbidTable 1 }

Hh3cDhcpServer2PoolForbidEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolForbidIP             InetAddressIPv4,
            hh3cDhcpServer2PoolForbidStatus         RowStatus
        }

hh3cDhcpServer2PoolForbidIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Forbidden IP of the DHCP pool."
    ::= { hh3cDhcpServer2PoolForbidEntry 1 }

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

-- =============================================================================
-- 8th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2ClassTable
-- =============================================================================
hh3cDhcpServer2ClassTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2ClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring user class to DHCP server."
    ::= { hh3cDhcpServer2Tables 8 }

hh3cDhcpServer2ClassEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2ClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring user class to DHCP server."
    INDEX { hh3cDhcpServer2ClassName }
    ::= { hh3cDhcpServer2ClassTable 1 }

Hh3cDhcpServer2ClassEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2ClassName           OCTET STRING,
            hh3cDhcpServer2ClassRowStatus      RowStatus
        }

hh3cDhcpServer2ClassName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "DHCP user class name."
    ::= { hh3cDhcpServer2ClassEntry 1 }

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

-- =============================================================================
-- 9th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2RuleTable
-- =============================================================================
hh3cDhcpServer2RuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2RuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring option rules used to match DHCP users."
    ::= { hh3cDhcpServer2Tables 9 }

hh3cDhcpServer2RuleEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2RuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring option rules used to match DHCP users."
    INDEX
        {
            hh3cDhcpServer2ClassName,
            hh3cDhcpServer2RuleNumber
        }
    ::= { hh3cDhcpServer2RuleTable 1 }

Hh3cDhcpServer2RuleEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2RuleNumber           Integer32,
            hh3cDhcpServer2RuleOptCode          Integer32,
            hh3cDhcpServer2RuleOptHexStr        OCTET STRING,
            hh3cDhcpServer2RuleOptMask          OCTET STRING,
            hh3cDhcpServer2RuleOptOffset        Integer32,
            hh3cDhcpServer2RuleOptLength        Integer32,
            hh3cDhcpServer2RuleRowStatus        RowStatus
        }

hh3cDhcpServer2RuleNumber OBJECT-TYPE
    SYNTAX      Integer32(1..128)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Rule number."
    ::= { hh3cDhcpServer2RuleEntry 1 }

hh3cDhcpServer2RuleOptCode OBJECT-TYPE
    SYNTAX      Integer32(1..254)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Option code."
    ::= { hh3cDhcpServer2RuleEntry 2 }

hh3cDhcpServer2RuleOptHexStr OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..510))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hex string of an option.

         The length of the string must be even."
    ::= { hh3cDhcpServer2RuleEntry 3 }

hh3cDhcpServer2RuleOptMask OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..510))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The mask used to match options.

         The length of this object must be same with that of
         hh3cDhcpServer2RuleOptHexStr.

         The SET operation of this object must be with
         the SET operation of hh3cDhcpServer2RuleOptHexStr."
    ::= { hh3cDhcpServer2RuleEntry 4 }

hh3cDhcpServer2RuleOptOffset OBJECT-TYPE
    SYNTAX      Integer32(0..254)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The option offset used to match users.

         The SET operation of this object must be with
         the SET operation of hh3cDhcpServer2RuleOptHexStr,
         hh3cDhcpServer2RuleOptLength."
    ::= { hh3cDhcpServer2RuleEntry 5 }

hh3cDhcpServer2RuleOptLength OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The option length used to match user options.

         The SET operation of this object must be with
         the SET operation of hh3cDhcpServer2RuleOptOffset."
    ::= { hh3cDhcpServer2RuleEntry 6 }

hh3cDhcpServer2RuleRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active,
         createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2RuleOptCode must also be set."
    ::= { hh3cDhcpServer2RuleEntry 7 }

-- =============================================================================
-- 10th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2ForbidTable
-- =============================================================================
hh3cDhcpServer2ForbidTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2ForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring forbidden IP range to DHCP server."
    ::= { hh3cDhcpServer2Tables 10 }

hh3cDhcpServer2ForbidEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2ForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring forbidden IP range to DHCP server."
    INDEX
        {
            hh3cDhcpServer2ForbidVpnName,
            hh3cDhcpServer2ForbidStart,
            hh3cDhcpServer2ForbidEnd
        }
    ::= { hh3cDhcpServer2ForbidTable 1 }

Hh3cDhcpServer2ForbidEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2ForbidVpnName      OCTET STRING,
            hh3cDhcpServer2ForbidStart        InetAddressIPv4,
            hh3cDhcpServer2ForbidEnd          InetAddressIPv4,
            hh3cDhcpServer2ForbidRowStatus    RowStatus
        }

hh3cDhcpServer2ForbidVpnName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..31))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Name of the VPN instance that the forbidden IP range
         binds to.

         If the value of this object is 0x1, the network that
         the forbidden IP range belongs to is the public network."
    ::= { hh3cDhcpServer2ForbidEntry 1 }

hh3cDhcpServer2ForbidStart OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Start IP of forbidden IP range."
    ::= { hh3cDhcpServer2ForbidEntry 2 }

hh3cDhcpServer2ForbidEnd OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "End IP of forbidden IP range."
    ::= { hh3cDhcpServer2ForbidEntry 3 }

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

-- =============================================================================
-- 11th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2FreeTable
-- =============================================================================
hh3cDhcpServer2FreeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2FreeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for displaying free IP range for DHCP server."
    ::= { hh3cDhcpServer2Tables 11 }

hh3cDhcpServer2FreeEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2FreeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for displaying free IP range for DHCP server."
    INDEX
        {
            hh3cDhcpServer2PoolIndex,
            hh3cDhcpServer2FreeStart
        }
    ::= { hh3cDhcpServer2FreeTable 1 }

Hh3cDhcpServer2FreeEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2FreeStart             InetAddressIPv4,
            hh3cDhcpServer2FreeEnd               InetAddressIPv4
        }

hh3cDhcpServer2FreeStart OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Start IP of free IP range."
    ::= { hh3cDhcpServer2FreeEntry 1 }

hh3cDhcpServer2FreeEnd OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "End IP of free IP range."
    ::= { hh3cDhcpServer2FreeEntry 2 }

-- =============================================================================
-- 12th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2ConflictTable
-- =============================================================================
hh3cDhcpServer2ConflictTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2ConflictEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for displaying the information of conflict
         IP for DHCP server."
    ::= { hh3cDhcpServer2Tables 12 }

hh3cDhcpServer2ConflictEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2ConflictEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for displaying the information of
         conflict IP for DHCP server."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2ConflictIP }
    ::= { hh3cDhcpServer2ConflictTable 1 }

Hh3cDhcpServer2ConflictEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2ConflictIP            InetAddressIPv4,
            hh3cDhcpServer2ConflictType          INTEGER,
            hh3cDhcpServer2ConflictTime          OCTET STRING,
            hh3cDhcpServer2ConflictRowStatus     RowStatus
        }

hh3cDhcpServer2ConflictIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Conflict IP."
    ::= { hh3cDhcpServer2ConflictEntry 1 }

hh3cDhcpServer2ConflictType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            detectByServer(1),
            detectByClient(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Type of the detection of conflict IP.
         'detectByServer' denotes that the conflict is detected
         by DHCP server.
         'detectByClient' denotes that the conflict is detected
         by DHCP client."
    ::= { hh3cDhcpServer2ConflictEntry 2 }

hh3cDhcpServer2ConflictTime OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..19))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time when the conflict is detected.
         The structure of the OCTET STRING is
         month/day/year hour:munite:second
         (MM/DD/YYYY hh:mm:ss)."
    ::= { hh3cDhcpServer2ConflictEntry 3 }

hh3cDhcpServer2ConflictRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Only destroy action is allow to use."
    ::= { hh3cDhcpServer2ConflictEntry 4 }

-- =============================================================================
-- 13th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2ExpiredTable
-- =============================================================================
hh3cDhcpServer2ExpiredTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2ExpiredEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table for displaying the information of expired IP
         for DHCP Server pools. "
    ::= { hh3cDhcpServer2Tables 13 }

hh3cDhcpServer2ExpiredEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2ExpiredEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying information
         of expired IP for DHCP server pools."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2ExpiredIP }
    ::= { hh3cDhcpServer2ExpiredTable 1 }

Hh3cDhcpServer2ExpiredEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2ExpiredIP                  InetAddressIPv4,
            hh3cDhcpServer2ExpiredClientId            OCTET STRING,
            hh3cDhcpServer2ExpiredTime                OCTET STRING,
            hh3cDhcpServer2ExpiredRowStatus           RowStatus
        }

hh3cDhcpServer2ExpiredIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Expired IP address."
    ::= { hh3cDhcpServer2ExpiredEntry 1 }

hh3cDhcpServer2ExpiredClientId OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(4..254))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Client identifier or hardware address."
    ::= { hh3cDhcpServer2ExpiredEntry 2 }

hh3cDhcpServer2ExpiredTime OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..19))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Expired time.
         The structure of the OCTET STRING is
         month/day/year hour:munite:second
         (MM/DD/YYYY hh:mm:ss)."
    ::= { hh3cDhcpServer2ExpiredEntry 3 }

hh3cDhcpServer2ExpiredRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Only destroy action is allow to use."
    ::= { hh3cDhcpServer2ExpiredEntry 4 }

-- =============================================================================
-- 14th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2IPInUseTable
-- =============================================================================
hh3cDhcpServer2IPInUseTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2IPInUseEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table for displaying the information of IP in use
         for DHCP Server pools. "
    ::= { hh3cDhcpServer2Tables 14 }

hh3cDhcpServer2IPInUseEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2IPInUseEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying information
         of IP in use for DHCP server pools."
    INDEX { hh3cDhcpServer2PoolIndex, hh3cDhcpServer2IPInUseIP }
    ::= { hh3cDhcpServer2IPInUseTable 1 }

Hh3cDhcpServer2IPInUseEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2IPInUseIP                  InetAddressIPv4,
            hh3cDhcpServer2IPInUseClientId            OCTET STRING,
            hh3cDhcpServer2IPInUseHardAddr            OCTET STRING,
            hh3cDhcpServer2IPInUseHardType            INTEGER,
            hh3cDhcpServer2IPInUseVlanId              Unsigned32,
            hh3cDhcpServer2IPInUseEndLease            OCTET STRING,
            hh3cDhcpServer2IPInUseType                INTEGER,
            hh3cDhcpServer2IPInUseIfIndex             InterfaceIndexOrZero,
            hh3cDhcpServer2IPInUseRowStatus           RowStatus,
            hh3cDhcpServer2IPInUseSecondVlanId        Unsigned32
        }

hh3cDhcpServer2IPInUseIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Ip address in use."
    ::= { hh3cDhcpServer2IPInUseEntry 1 }

hh3cDhcpServer2IPInUseClientId OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0|4..254))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Client identifier."
    ::= { hh3cDhcpServer2IPInUseEntry 2 }

hh3cDhcpServer2IPInUseHardAddr OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0|4..39))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Hardware address."
    ::= { hh3cDhcpServer2IPInUseEntry 3 }

hh3cDhcpServer2IPInUseHardType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            default(1),
            ethernet(2),
            tokenRing(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Hardware address type."
    ::= { hh3cDhcpServer2IPInUseEntry 4 }

hh3cDhcpServer2IPInUseVlanId OBJECT-TYPE
    SYNTAX      Unsigned32(1..4094|65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "User's VLAN ID.

         65535 means that a client doesn't have VLAN ID or have an
         invalid VLAN ID."
    ::= { hh3cDhcpServer2IPInUseEntry 5 }

hh3cDhcpServer2IPInUseEndLease OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..19))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "End time of lease.
         The structure of the OCTET STRING is
         month/day/year hour:munite:second
         (MM/DD/YYYY hh:mm:ss)."
    ::= { hh3cDhcpServer2IPInUseEntry 6 }

hh3cDhcpServer2IPInUseType OBJECT-TYPE
    SYNTAX      INTEGER
        {
            staticUnallocated(1),
            staticOffered(2),
            staticCommitted(3),
            autoOffered(4),
            autoCommitted(5)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Type of binding."
    ::= { hh3cDhcpServer2IPInUseEntry 7 }

hh3cDhcpServer2IPInUseIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Interface index information.
         If the value of this object is zero,
         the interface is unknown."
    ::= { hh3cDhcpServer2IPInUseEntry 8 }

hh3cDhcpServer2IPInUseRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Only destroy action is allow to use."
    ::= { hh3cDhcpServer2IPInUseEntry 9 }

hh3cDhcpServer2IPInUseSecondVlanId OBJECT-TYPE
    SYNTAX      Unsigned32(1..4094|65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "User's second VLAN ID.

         65535 means that a client doesn't have second VLAN ID or has an
         invalid second VLAN ID."
    ::= { hh3cDhcpServer2IPInUseEntry 10 }

-- =============================================================================
-- 15th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2DefOptGrpTable
-- =============================================================================
hh3cDhcpServer2DefOptGrpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2DefOptGrpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing option group of the DHCP server pool for user
         classes."
    ::= { hh3cDhcpServer2Tables 15 }

hh3cDhcpServer2DefOptGrpEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2DefOptGrpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing option group of DHCP pools for user classes."
    INDEX {
            hh3cDhcpServer2PoolIndex,
            hh3cDhcpServer2DefOptGrpClass
          }
    ::= { hh3cDhcpServer2DefOptGrpTable 1 }

Hh3cDhcpServer2DefOptGrpEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2DefOptGrpClass        OCTET STRING,
            hh3cDhcpServer2DefOptGrpId           Integer32,
            hh3cDhcpServer2DefOptGrpStatus       RowStatus
        }

hh3cDhcpServer2DefOptGrpClass OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "User class name."
    ::= { hh3cDhcpServer2DefOptGrpEntry 1 }

hh3cDhcpServer2DefOptGrpId OBJECT-TYPE
    SYNTAX      Integer32 (1..32768)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The option group ID."
    ::= { hh3cDhcpServer2DefOptGrpEntry 2 }

hh3cDhcpServer2DefOptGrpStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active, createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2DefOptGrpId must also be set."
    ::= { hh3cDhcpServer2DefOptGrpEntry 3 }

-- =============================================================================
-- 16th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2ValidClassTable
-- =============================================================================
hh3cDhcpServer2ValidClassTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2ValidClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing valid user classes for DHCP server pool."
    ::= { hh3cDhcpServer2Tables 16 }

hh3cDhcpServer2ValidClassEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2ValidClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing valid user classes for DHCP server pool."
    INDEX {
      hh3cDhcpServer2PoolIndex,
      hh3cDhcpServer2ValidClassName
    }
    ::= { hh3cDhcpServer2ValidClassTable 1 }

Hh3cDhcpServer2ValidClassEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2ValidClassName            OCTET STRING,
            hh3cDhcpServer2ValidClassStatus          RowStatus
        }

hh3cDhcpServer2ValidClassName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "User class name."
    ::= { hh3cDhcpServer2ValidClassEntry 1 }

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

-- =============================================================================
-- 17th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2RuleHwAddrTable
-- =============================================================================
hh3cDhcpServer2RuleHwAddrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2RuleHwAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring hardware address rules used to match DHCP
         users."
    ::= { hh3cDhcpServer2Tables 17 }

hh3cDhcpServer2RuleHwAddrEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2RuleHwAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring hardware address rules used to match DHCP
         users."
    INDEX
        {
          hh3cDhcpServer2ClassName,
          hh3cDhcpServer2RuleHwAddrNumber
        }
    ::= { hh3cDhcpServer2RuleHwAddrTable 1 }

Hh3cDhcpServer2RuleHwAddrEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2RuleHwAddrNumber           Integer32,
            hh3cDhcpServer2RuleHwAddress              OCTET STRING,
            hh3cDhcpServer2RuleHwAddrMask             OCTET STRING,
            hh3cDhcpServer2RuleHwAddrType             Integer32,
            hh3cDhcpServer2RuleHwAddrStatus           RowStatus
        }

hh3cDhcpServer2RuleHwAddrNumber OBJECT-TYPE
    SYNTAX      Integer32(1..16)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Rule number."
    ::= { hh3cDhcpServer2RuleHwAddrEntry 1 }

hh3cDhcpServer2RuleHwAddress OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(4..39))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hardware address for a rule.

         The structure of the OCTET STRING is H-H-H... while H indicates 4
         hexadecimal characters except that the last H indicates 2 or 4
         hexadecimal characters.

         The SET operation to this object ought to be with the SET operation
         of hh3cDhcpServer2RuleHwAddrMask together, and any SET operation
         alone to this object will be regarded as an invalid operation."
    ::= { hh3cDhcpServer2RuleHwAddrEntry 2 }

hh3cDhcpServer2RuleHwAddrMask OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(4..39))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Mask of hardware address for a rule.

         The structure of the OCTET STRING is the same with
         hh3cDhcpServer2RuleHwAddress.

         The SET operation to this object ought to be with the SET operation
         of hh3cDhcpServer2RuleHwAddress together, and any SET operation
         alone to this object will be regarded as an invalid operation."
    ::= { hh3cDhcpServer2RuleHwAddrEntry 3 }

hh3cDhcpServer2RuleHwAddrType OBJECT-TYPE
    SYNTAX      Integer32(1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hardware type for a rule.

         The codes of all hardware types see ARP section in RFC 1700.

         The SET operation alone to this object will be regarded as an
         invalid operation."
    DEFVAL { 1 }
    ::= { hh3cDhcpServer2RuleHwAddrEntry 4 }

hh3cDhcpServer2RuleHwAddrStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active, createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2RuleHwAddrAddress and hh3cDhcpServer2RuleHwAddrMask
         must also be set."
    ::= { hh3cDhcpServer2RuleHwAddrEntry 5 }

-- =============================================================================
-- 18th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2OptionGroupTable
-- =============================================================================
hh3cDhcpServer2OptionGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2OptionGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for creating DHCP server option groups."
    ::= { hh3cDhcpServer2Tables 18 }

hh3cDhcpServer2OptionGroupEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2OptionGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing objects for creating or deleting an option
         group."
    INDEX { hh3cDhcpServer2OptionGroupId }
    ::= { hh3cDhcpServer2OptionGroupTable 1 }

Hh3cDhcpServer2OptionGroupEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2OptionGroupId         Integer32,
            hh3cDhcpServer2OptionGroupStatus     RowStatus
        }

hh3cDhcpServer2OptionGroupId OBJECT-TYPE
    SYNTAX      Integer32 (1..32768)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The option group ID."
    ::= { hh3cDhcpServer2OptionGroupEntry 1 }

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

-- =============================================================================
-- 19th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2OptionTable
-- =============================================================================
hh3cDhcpServer2OptionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpServer2OptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring options in an option group."
    ::= { hh3cDhcpServer2Tables 19 }

hh3cDhcpServer2OptionEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2OptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing objects for configuring an option in an option
         group."
    INDEX
        {
          hh3cDhcpServer2OptionGroupId,
          hh3cDhcpServer2OptionCode
        }
    ::= { hh3cDhcpServer2OptionTable 1 }

Hh3cDhcpServer2OptionEntry ::=
    SEQUENCE
        {   hh3cDhcpServer2OptionCode         Integer32,
            hh3cDhcpServer2OptionType         INTEGER,
            hh3cDhcpServer2OptionAscii        OCTET STRING,
            hh3cDhcpServer2OptionHexStr       OCTET STRING,
            hh3cDhcpServer2OptionIPStr        OCTET STRING,
            hh3cDhcpServer2OptionRowStatus    RowStatus
        }

hh3cDhcpServer2OptionCode OBJECT-TYPE
    SYNTAX      Integer32 (2..254)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Option code."
    ::= { hh3cDhcpServer2OptionEntry 1 }

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

         'ascii' means using the ascii string that is defined by
         hh3cDhcpServer2OptionAscii to fill in the option.

         'hex' means using the hex string that is defined by
         hh3cDhcpServer2OptionHexStr to fill in the option.

         'ip' means using the IP string that is defined by
         hh3cDhcpServer2OptionIPStr to fill in the option."
    ::= { hh3cDhcpServer2OptionEntry 2 }

hh3cDhcpServer2OptionAscii    OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ascii string of an option.

         If hh3cDhcpServer2OptionType is set with 'ascii', this object must
         be set with a non-zero length string."
    ::= { hh3cDhcpServer2OptionEntry 3 }

hh3cDhcpServer2OptionHexStr    OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..510))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Hex string of an option.

         The length of the string must be even.  If
         hh3cDhcpServer2OptionType is set with 'hex', this object must be
         set with a non-zero length string."
    ::= { hh3cDhcpServer2OptionEntry 4 }

hh3cDhcpServer2OptionIPStr    OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "IP string of an option.

         IP addresses are space separated and the leading or trailing space
         will be trimmed.

         1 to 8 IP addresses can be configured simultaneously.

         If hh3cDhcpServer2OptionType is set with 'ip', this object must be
         set with a non-zero length string that must contain at least one IP
         address."
    ::= { hh3cDhcpServer2OptionEntry 5 }

hh3cDhcpServer2OptionRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus.  Three actions are used: active, createAndGo, destroy.

         If the value of this object is set to 'createAndGo',
         hh3cDhcpServer2OptionType must also be set."
    ::= { hh3cDhcpServer2OptionEntry 6 }

-- =============================================================================
-- 20th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolStatTable
-- =============================================================================
hh3cDhcpServer2PoolStatTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2PoolStatEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table for displaying the statistics of
         a DHCP Server pool."
    ::= { hh3cDhcpServer2Tables 20 }

hh3cDhcpServer2PoolStatEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying the statistics of
         a DHCP Server pool."
    INDEX { hh3cDhcpServer2PoolIndex }
    ::= { hh3cDhcpServer2PoolStatTable 1 }

Hh3cDhcpServer2PoolStatEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolUsage                  Unsigned32,
            hh3cDhcpServer2PoolReqCnt                 Counter64,
            hh3cDhcpServer2PoolReqSuccCnt             Counter64,
            hh3cDhcpServer2PoolDiscoverCnt            Counter64,
            hh3cDhcpServer2PoolOfferCnt               Counter64,
            hh3cDhcpServer2PoolAckCnt                 Counter64,
            hh3cDhcpServer2PoolIPTotalNum             Unsigned32,
            hh3cDhcpServer2PoolIPUsedNum              Unsigned32,
            hh3cDhcpServer2PoolIPIdleNum              Unsigned32,
            hh3cDhcpServer2PoolIPExcludeNum           Unsigned32,
            hh3cDhcpServer2PoolConflictNum            Unsigned32,
            hh3cDhcpServer2PoolAutoBindNum            Unsigned32,
            hh3cDhcpServer2PoolManualBindNum          Unsigned32,
            hh3cDhcpServer2PoolExpiredBindNum         Unsigned32,
            hh3cDhcpServer2PoolNameInfo               OCTET STRING,
            hh3cDhcpServer2PoolReserveIpNum           Unsigned32
        }

hh3cDhcpServer2PoolUsage OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The percentage of IP addresses in use
         of the DHCP server pool."
    ::= { hh3cDhcpServer2PoolStatEntry 1 }

hh3cDhcpServer2PoolReqCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of address allocation
         requests which matched the DHCP pool and
         were received by the DHCP server."
    ::= { hh3cDhcpServer2PoolStatEntry 2 }

hh3cDhcpServer2PoolReqSuccCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of address allocation
         requests success responses which matched
         the DHCP pool and were sent by the DHCP server."
    ::= { hh3cDhcpServer2PoolStatEntry 3 }

hh3cDhcpServer2PoolDiscoverCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of DISCOVER packets which
         matched the DHCP pool and were received by the
         DHCP server."
    ::= { hh3cDhcpServer2PoolStatEntry 4 }

hh3cDhcpServer2PoolOfferCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of OFFER packets which
         matched the DHCP pool and were sent by the
         DHCP server."
    ::= { hh3cDhcpServer2PoolStatEntry 5 }

hh3cDhcpServer2PoolAckCnt OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of ACK packets which
         matched the DHCP pool and were sent by the
         DHCP server."
    ::= { hh3cDhcpServer2PoolStatEntry 6 }

hh3cDhcpServer2PoolIPTotalNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of addresses in the
         DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 7 }

hh3cDhcpServer2PoolIPUsedNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of used addresses in the
         DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 8 }

hh3cDhcpServer2PoolIPIdleNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of idle addresses in the
         DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 9 }

hh3cDhcpServer2PoolIPExcludeNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of addresses excluded from address
         allocation in the DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 10 }

hh3cDhcpServer2PoolConflictNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of conflicting addresses in the
         DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 11 }

hh3cDhcpServer2PoolAutoBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of auto binding addresses in the
         DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 12 }

hh3cDhcpServer2PoolManualBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of manual binding addresses in
         the DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 13 }

hh3cDhcpServer2PoolExpiredBindNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of expired addresses in
         the DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 14 }

hh3cDhcpServer2PoolNameInfo OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "DHCP server pool name."
    ::= { hh3cDhcpServer2PoolStatEntry 15 }

hh3cDhcpServer2PoolReserveIpNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of reserved addresses in
         the DHCP pool."
    ::= { hh3cDhcpServer2PoolStatEntry 16 }

-- =============================================================================
-- 21th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolGpTable
-- =============================================================================
hh3cDhcpServer2PoolGpTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2PoolGpEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table containing DHCP server pool group configurations."
    ::= { hh3cDhcpServer2Tables 21 }

hh3cDhcpServer2PoolGpEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolGpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing DHCP server pool group configurations."
    INDEX { hh3cDhcpServer2PoolGpName }
    ::= { hh3cDhcpServer2PoolGpTable 1 }

Hh3cDhcpServer2PoolGpEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolGpName              OCTET STRING,
            hh3cDhcpServer2PoolGpVpnName           OCTET STRING,
            hh3cDhcpServer2PoolGpIncUndo           TruthValue,
            hh3cDhcpServer2PoolGpRowSta            RowStatus
        }

hh3cDhcpServer2PoolGpName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "DHCP server pool group name."
    ::= { hh3cDhcpServer2PoolGpEntry 1 }

hh3cDhcpServer2PoolGpVpnName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..31))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Name of the VPN instance  to which the pool group belongs."
    ::= { hh3cDhcpServer2PoolGpEntry 2 }

hh3cDhcpServer2PoolGpIncUndo OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set this object to 'true' to remove all pools from the pool group."
    DEFVAL { false }
    ::= { hh3cDhcpServer2PoolGpEntry 3 }

hh3cDhcpServer2PoolGpRowSta OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.  Two actions are used: createAndGo 
        and destroy."
    ::= { hh3cDhcpServer2PoolGpEntry 4 }

-- =============================================================================
-- 22th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolGpExtTable
-- =============================================================================
hh3cDhcpServer2PoolGpExtTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2PoolGpExtEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
         "A table containing the names of the pools in each DHCP server pool group."
    ::= { hh3cDhcpServer2Tables 22 }

hh3cDhcpServer2PoolGpExtEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolGpExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the names of the pools in
         a DHCP Server pool group."
    INDEX
        {
            hh3cDhcpServer2PoolGpName,
            hh3cDhcpServer2PoolIndex
        }
    ::= { hh3cDhcpServer2PoolGpExtTable 1 }

Hh3cDhcpServer2PoolGpExtEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolGpIncPoolNm                       OCTET STRING,
            hh3cDhcpServer2PoolGpExtRowSta                       RowStatus
        }

hh3cDhcpServer2PoolGpIncPoolNm OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..63))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Name of a DHCP server pool in the DHCP server pool group."
    ::= { hh3cDhcpServer2PoolGpExtEntry 1 }

hh3cDhcpServer2PoolGpExtRowSta OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.  Two actions are used: createAndGo and destroy."
    ::= { hh3cDhcpServer2PoolGpExtEntry 2 }

-- =============================================================================
-- 23th Table of hh3cDhcpServer2Tables: hh3cDhcpServer2PoolGpStatTable
-- =============================================================================
hh3cDhcpServer2PoolGpStatTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cDhcpServer2PoolGpStatEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table containing DHCP server pool group statistics."
    ::= { hh3cDhcpServer2Tables 23 }

hh3cDhcpServer2PoolGpStatEntry OBJECT-TYPE
    SYNTAX      Hh3cDhcpServer2PoolGpStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing statistics for a DHCP server pool group."
    INDEX { hh3cDhcpServer2PoolGpName }
    ::= { hh3cDhcpServer2PoolGpStatTable 1 }

Hh3cDhcpServer2PoolGpStatEntry ::=
    SEQUENCE
        {
            hh3cDhcpServer2PoolGpPoolNum                    Unsigned32,
            hh3cDhcpServer2PoolGpBndDomNum                  Unsigned32,
            hh3cDhcpServer2PoolGpUsage                      Unsigned32,
            hh3cDhcpServer2PoolGpIPTotalNum                 Unsigned32,
            hh3cDhcpServer2PoolGpIPUsedNum                  Unsigned32,
            hh3cDhcpServer2PoolGpIPIdleNum                  Unsigned32,
            hh3cDhcpServer2PoolGpIPExcNum                   Unsigned32,
            hh3cDhcpServer2PoolGpConfNum                    Unsigned32,
            hh3cDhcpServer2PoolGpAutoBndNum                 Unsigned32,
            hh3cDhcpServer2PoolGpManuBndNum                 Unsigned32,
            hh3cDhcpServer2PoolGpExpiBndNum                 Unsigned32,
            hh3cDhcpServer2PoolGpReserverIpNum              Unsigned32
        }

hh3cDhcpServer2PoolGpPoolNum OBJECT-TYPE
    SYNTAX      Unsigned32(0..1024)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of pools in the DHCP server pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 1 }

hh3cDhcpServer2PoolGpBndDomNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of domain names bound to the DHCP server pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 2 }

hh3cDhcpServer2PoolGpUsage OBJECT-TYPE
    SYNTAX      Unsigned32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The percentage of IP addresses in use
         in the DHCP server pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 3 }

hh3cDhcpServer2PoolGpIPTotalNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 4 }

hh3cDhcpServer2PoolGpIPUsedNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of assigned addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 5 }

hh3cDhcpServer2PoolGpIPIdleNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of idle addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 6 }

hh3cDhcpServer2PoolGpIPExcNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of IP addresses excluded from DHCP allocation in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 7 }

hh3cDhcpServer2PoolGpConfNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of conflict addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 8 }

hh3cDhcpServer2PoolGpAutoBndNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of dynamic address bindings in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 9 }

hh3cDhcpServer2PoolGpManuBndNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of static address bindings in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 10 }

hh3cDhcpServer2PoolGpExpiBndNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of expired addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 11 }

hh3cDhcpServer2PoolGpReserverIpNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of reserved addresses in the
         DHCP pool group."
    ::= { hh3cDhcpServer2PoolGpStatEntry 12 }

-- =============================================================================
-- DHCP relay scalar object definition begin
-- =============================================================================
    hh3cDhcpRelay2ScalarObjects   OBJECT IDENTIFIER ::= { hh3cDhcp4 3 }

-- =============================================================================
-- hh3cDhcpRelay2ScalarObjects: hh3cDhcpRelay2ConfigGroup
-- =============================================================================
hh3cDhcpRelay2ConfigGroup  OBJECT IDENTIFIER ::= { hh3cDhcpRelay2ScalarObjects 1 }

hh3cDhcpRelay2UserInfoRecord OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the value is 'true', user information will be recorded."
    DEFVAL { false }
    ::= { hh3cDhcpRelay2ConfigGroup 1 }

hh3cDhcpRelay2UserInfoRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the value is 'true', user information will be refreshed
         on timer."
    DEFVAL { true }
    ::= { hh3cDhcpRelay2ConfigGroup 2 }

hh3cDhcpRelay2UserInfoFlushTime OBJECT-TYPE
    SYNTAX      Unsigned32(0..120)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User information refresh interval in seconds.

         If the value of the object is set to 0, the interval is
         calculated automatically by the number of user
         information entries."
    DEFVAL { 0 }
    ::= { hh3cDhcpRelay2ConfigGroup 3 }

hh3cDhcpRelay2ReleaseAddr   OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..47))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User address to be released.

         The structure of the OCTET STRING is
         IP address:VPN name.
         If the VPN instance name is NOT specified,
         the IP address is in public network."
    ::= { hh3cDhcpRelay2ConfigGroup 4 }

-- =============================================================================
-- hh3cDhcpRelay2ScalarObjects: hh3cDhcpRelay2StatisticsGroup
-- =============================================================================
hh3cDhcpRelay2StatisticsGroup  OBJECT IDENTIFIER ::= { hh3cDhcpRelay2ScalarObjects 2 }

hh3cDhcpRelay2RxClientNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the packets received from DHCP
         clients by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 1 }

hh3cDhcpRelay2TxClientNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the packets transmitted to
         DHCP clients by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 2 }

hh3cDhcpRelay2RxServerNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the packets received from
         DHCP Servers by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 3 }

hh3cDhcpRelay2TxServerNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the packets transmitted to
         DHCP Servers by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 4 }

hh3cDhcpRelay2BadNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the bad packets received."
    ::= { hh3cDhcpRelay2StatisticsGroup 5 }

hh3cDhcpRelay2BootpRequestNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the BOOTREQUEST packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 6 }

hh3cDhcpRelay2DiscoverNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPDISCOVER packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 7 }

hh3cDhcpRelay2RequestNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPREQUEST packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 8 }

hh3cDhcpRelay2DeclineNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPDECLINE packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 9 }

hh3cDhcpRelay2ReleaseNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPRELEASE packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 10 }

hh3cDhcpRelay2InformNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPINFORM packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 11 }

hh3cDhcpRelay2BootpReplyNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the BOOTREPLY packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 12 }

hh3cDhcpRelay2OfferNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPOFFER packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 13 }

hh3cDhcpRelay2AckNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPACK packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 14 }

hh3cDhcpRelay2NakNum OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of the DHCPNAK packets handled
         by DHCP relay."
    ::= { hh3cDhcpRelay2StatisticsGroup 15 }

-- =============================================================================
-- DHCP relay table definition.
-- =============================================================================
    hh3cDhcpRelay2Tables OBJECT IDENTIFIER ::= { hh3cDhcp4 4 }

-- =============================================================================
-- 1st Table of hh3cDhcpRelay2Tables: hh3cDhcpRelay2IfConfigTable
-- =============================================================================
hh3cDhcpRelay2IfConfigTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpRelay2IfConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring relay functions for interfaces."
    ::= { hh3cDhcpRelay2Tables 1 }

hh3cDhcpRelay2IfConfigEntry  OBJECT-TYPE
    SYNTAX      Hh3cDhcpRelay2IfConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring relay functions for an interface."
    INDEX { ifIndex }
    ::= { hh3cDhcpRelay2IfConfigTable 1 }

Hh3cDhcpRelay2IfConfigEntry ::=
    SEQUENCE
        {
            hh3cDhcpRelay2IfSelectRelay              TruthValue,
            hh3cDhcpRelay2IfCheckMac                 TruthValue,
            hh3cDhcpRelay2IfOpt82Enable              TruthValue,
            hh3cDhcpRelay2IfOpt82Strategy            INTEGER,
            hh3cDhcpRelay2IfOpt82CIDMode             INTEGER,
            hh3cDhcpRelay2IfOpt82CIDNodeType         INTEGER,
            hh3cDhcpRelay2IfOpt82CIDNodeStr          OCTET STRING,
            hh3cDhcpRelay2IfOpt82CIDStr              OCTET STRING,
            hh3cDhcpRelay2IfOpt82CIDFormat           INTEGER,
            hh3cDhcpRelay2IfOpt82RIDMode             INTEGER,
            hh3cDhcpRelay2IfOpt82RIDStr              OCTET STRING,
            hh3cDhcpRelay2IfOpt82RIDFormat           INTEGER
        }

hh3cDhcpRelay2IfSelectRelay    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the value is 'true', the DHCP relay function
         would be enabled on this interface."
    DEFVAL      { false }
    ::= { hh3cDhcpRelay2IfConfigEntry 1 }

hh3cDhcpRelay2IfCheckMac    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the value is 'true', the function of checking MAC address
         of packets received from the interface would be enabled."
    DEFVAL      { false }
    ::= { hh3cDhcpRelay2IfConfigEntry 2 }

hh3cDhcpRelay2IfOpt82Enable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If DHCP relay supports option 82 functions, the
         value is 'true'.
         If DHCP relay does NOT support option 82 functions,
         the value is 'false'."
    DEFVAL      { false }
    ::= { hh3cDhcpRelay2IfConfigEntry 3 }

hh3cDhcpRelay2IfOpt82Strategy     OBJECT-TYPE
    SYNTAX      INTEGER
    {
        drop(1),
        keep(2),
        replace(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The strategies of DHCP relay handling option 82.

         'drop' indicates DHCP relay discarding the request
         packet including option 82.

         'keep' indicates DHCP relay accepting the request
         packet without any change of the option 82.

         'replace' indicates DHCP relay accepting the
         request packet on condition that it generates a new
         option 82 to replace the original one."
    DEFVAL      { replace }
    ::= { hh3cDhcpRelay2IfConfigEntry 4 }

hh3cDhcpRelay2IfOpt82CIDMode OBJECT-TYPE
    SYNTAX      INTEGER
    {
        normal(1),
        verbose(2),
        userDefine(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode of the circuit ID suboption of DHCP option 82.

         'normal' is the standard mode.

         'verbose' is the detailed mode.

         'userDefine' is the user-defined mode.

         If the value of this object is set to 'userDefine',
         hh3cDhcpRelay2IfOpt82CIDStr must also be set."
    DEFVAL      { normal }
    ::= { hh3cDhcpRelay2IfConfigEntry 5 }

hh3cDhcpRelay2IfOpt82CIDNodeType OBJECT-TYPE
    SYNTAX      INTEGER
    {
        invalid(1),
        mac(2),
        sysname(3),
        userDefine(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Type of access node identifier that is used to fill
         in the circuit ID suboption of option 82 when the value
         of hh3cDhcpRelay2IfOpt82CIDMode is set to 'verbose'.

         The SET operation of this object must be with the SET
         operation of hh3cDhcpRelay2IfOpt82CIDMode.

         'invalid' indicates that the node identifier is NOT used
         to fill in the circuit ID suboption of option 82.
         If the value of hh3cDhcpRelay2IfOpt82CIDMode is NOT 'verbose',
         the value of this object is set to 'invalid' automatically.
         Otherwise the value of this object cannot be set to 'invalid'.

         'mac' indicates that the node identifier is filled in with
         the MAC of DHCP relay input interface.
         If the value of hh3cDhcpRelay2IfOpt82CIDMode is set to
         'verbose', the default value of this object is 'mac'.

         'sysname' indicates that the node identifier is filled in with
         the sysname of the DHCP relay device.

         'userDefine' indicates that the node identifier is filled in with
         the string defined by the object of hh3cDhcpRelay2IfOpt82CIDNodeStr.
         If the value is set to 'userDefine', the value of
         hh3cDhcpRelay2IfOpt82CIDNodeStr must be set to a non-zero
         length string simultaneously."
    ::= { hh3cDhcpRelay2IfConfigEntry 6 }

hh3cDhcpRelay2IfOpt82CIDNodeStr      OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..50))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The string defined by user to fill in the
          node identifier in the verbose mode.

          If the value of hh3cDhcpRelay2IfOpt82CIDMode is NOT 'verbose',
          or the value of hh3cDhcpRelay2IfOpt82CIDNodeType is
          NOT 'userDefine', it is set with a zero-length string
          automatically.
          Otherwise it must be set with a non-zero length string.

          The SET operation of this object must be with the SET
          operation of hh3cDhcpRelay2IfOpt82CIDMode and
          hh3cDhcpRelay2IfOpt82CIDNodeType."
    ::= { hh3cDhcpRelay2IfConfigEntry 7 }

hh3cDhcpRelay2IfOpt82CIDStr      OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0|3..63))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The string defined by user to fill in the circuit ID
         suboption of option 82 in the user-define mode.

         If the value of hh3cDhcpRelay2IfOpt82CIDMode is NOT 'userDefine',
         it is set to a zero-length string automatically.
         Otherwise it must be set with a non-zero length string.

         The SET operation of this object must be with the SET
         operation of hh3cDhcpRelay2IfOpt82CIDMode."
    ::= { hh3cDhcpRelay2IfConfigEntry 8 }

hh3cDhcpRelay2IfOpt82CIDFormat    OBJECT-TYPE
    SYNTAX      INTEGER
    {
        hex(1),
        ascii(2),
        undefine(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The format of the circuit ID suboption of DHCP
         option 82.

         'hex' is the hex format.

         'ascii' is the ascii format.

         'undefine' is the undefine format.

         If the value of hh3cDhcpRelay2IfOpt82CIDMode is
         'normal', the value of this object is set to 'hex'
         automatically and cannot be set to 'undefine'.

         If the value of hh3cDhcpRelay2IfOpt82CIDMode is
         'verbose', the default value of this object is 'undefine'.

         If the value of hh3cDhcpRelay2IfOpt82CIDMode is
         'userDefine', the value of this object is set to
         'ascii' automatically and cannot be set to other value.

         The SET operation of this object must be with the SET
         operation of hh3cDhcpRelay2IfOpt82CIDMode."
    ::= { hh3cDhcpRelay2IfConfigEntry 9 }

hh3cDhcpRelay2IfOpt82RIDMode OBJECT-TYPE
    SYNTAX      INTEGER
    {
        normal(1),
        sysname(2),
        userDefine(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode of the remote ID suboption of DHCP
         option 82.

         'normal' is the standard mode.

         'sysname' is the sysname mode.

         'userDefine' is the user-defined mode.

         If the value of this object is set to 'userDefine',
         hh3cDhcpRelay2IfOpt82RIDStr must also be set."
    DEFVAL      { normal }
    ::= { hh3cDhcpRelay2IfConfigEntry 10 }

hh3cDhcpRelay2IfOpt82RIDStr  OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..63))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The string defined by user to fill in the
         remote ID in the user-defined mode.

         If the value of hh3cDhcpRelay2IfOpt82RIDMode is NOT
         'userDefine', it is set to a zero-length string automatically.
         Otherwise it must be set with a non-zero length string.

         The SET operation of this object must be with the SET
         operation of hh3cDhcpRelay2IfOpt82RIDMode."
    ::= { hh3cDhcpRelay2IfConfigEntry 11 }

hh3cDhcpRelay2IfOpt82RIDFormat    OBJECT-TYPE
    SYNTAX      INTEGER
    {
        hex(1),
        ascii(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The format of the remote ID suboption of DHCP option 82.

         'hex' is the hex format.

         'ascii' is the ascii format.

         If the value of hh3cDhcpRelay2IfOpt82RIDMode is
         'sysname' or 'userDefine', this object is set with 'ascii'
         automatically and cannot be set with other value.

         If the value of hh3cDhcpRelay2IfOpt82RIDMode is 'normal',
         the default value of this object is 'hex'.

         The SET operation of this object must be with the SET
         operation of hh3cDhcpRelay2IfOpt82RIDMode."
    ::= { hh3cDhcpRelay2IfConfigEntry 12 }

-- =============================================================================
-- 2nd Table of hh3cDhcpRelay2Tables: hh3cDhcpRelay2SrvAddrTable
-- =============================================================================
hh3cDhcpRelay2SrvAddrTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpRelay2SrvAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring a DHCP
         server address on the interface."
    ::= { hh3cDhcpRelay2Tables 2 }

hh3cDhcpRelay2SrvAddrEntry  OBJECT-TYPE
    SYNTAX      Hh3cDhcpRelay2SrvAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring a DHCP
         server address on the interface."
    INDEX
        {
            ifIndex,
            hh3cDhcpRelay2SrvAddrIP
        }
    ::= { hh3cDhcpRelay2SrvAddrTable 1 }

Hh3cDhcpRelay2SrvAddrEntry ::=
    SEQUENCE
        {
            hh3cDhcpRelay2SrvAddrIP                InetAddressIPv4,
            hh3cDhcpRelay2SrvAddrRowStatus         RowStatus
        }

hh3cDhcpRelay2SrvAddrIP    OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Ip address of DHCP server."
    ::= { hh3cDhcpRelay2SrvAddrEntry 1 }

hh3cDhcpRelay2SrvAddrRowStatus    OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.
         Three actions are used: active,
         createAndGo, destroy."
    ::= { hh3cDhcpRelay2SrvAddrEntry 2 }

-- =============================================================================
-- 3rd Table of hh3cDhcpRelay2Tables: hh3cDhcpRelay2UserInfoTable
-- =============================================================================
hh3cDhcpRelay2UserInfoTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF Hh3cDhcpRelay2UserInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing the user information of DHCP client."
    ::= { hh3cDhcpRelay2Tables 3 }

hh3cDhcpRelay2UserInfoEntry  OBJECT-TYPE
    SYNTAX      Hh3cDhcpRelay2UserInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the user information of DHCP client."
    INDEX
    {
        hh3cDhcpRelay2UserInfoVpnIndex,
        hh3cDhcpRelay2UserInfoIpAddr
    }
    ::= { hh3cDhcpRelay2UserInfoTable 1 }

Hh3cDhcpRelay2UserInfoEntry   ::=
    SEQUENCE
    {
        hh3cDhcpRelay2UserInfoVpnIndex      Unsigned32,
        hh3cDhcpRelay2UserInfoIpAddr        InetAddressIPv4,
        hh3cDhcpRelay2UserInfoMacAddr       MacAddress,
        hh3cDhcpRelay2UserInfoIfIndex       InterfaceIndexOrZero,
        hh3cDhcpRelay2UserInfoRowStatus     RowStatus
    }

hh3cDhcpRelay2UserInfoVpnIndex OBJECT-TYPE
    SYNTAX      Unsigned32(0 .. 65534)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "VPN index of the DHCP client."
    ::= { hh3cDhcpRelay2UserInfoEntry 1 }

hh3cDhcpRelay2UserInfoIpAddr     OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "DHCP client's IP address."
    ::= { hh3cDhcpRelay2UserInfoEntry 2 }

hh3cDhcpRelay2UserInfoMacAddr    OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "DHCP client's MAC address."
    ::= { hh3cDhcpRelay2UserInfoEntry 3 }

hh3cDhcpRelay2UserInfoIfIndex      OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The index of the interface that DHCP client adhered to.
         0 means that no interface information is recorded in the
         user information entry."
    ::= { hh3cDhcpRelay2UserInfoEntry 4 }

hh3cDhcpRelay2UserInfoRowStatus     OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Operation status of this table entry.
         Only destroy action is allow to use."
    ::= { hh3cDhcpRelay2UserInfoEntry 5 }

-- =============================================================================
-- DHCP server trap objects definition.
-- =============================================================================
hh3cDhcpServer2Traps OBJECT IDENTIFIER ::= { hh3cDhcp4 5 }

hh3cDhcpServer2TrapNotify OBJECT IDENTIFIER ::= { hh3cDhcpServer2Traps 0 }

hh3cDhcpServer2AddrExhaust NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when addresses are exhausted
         in the DHCP pool."
    ::= { hh3cDhcpServer2TrapNotify 1 }

hh3cDhcpServer2AddrExhaustRecov NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the DHCP pool recovers from
         address exhaustion."
    ::= { hh3cDhcpServer2TrapNotify 2 }

hh3cDhcpServer2IpUsageOverflow NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the IP address usage of DHCP
         server pool above the threshold.  The value of the IP address
         usage is sampled for every 5 minutes."
    ::= { hh3cDhcpServer2TrapNotify 3 }

hh3cDhcpServer2AllocOverflow NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION
        "This trap is generated when the success rate of allocation
         of DHCP server IP address in 5 minutes below the threshold."
    ::= { hh3cDhcpServer2TrapNotify 4 }

hh3cDhcpServer2IpUsageOverflowRecov NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the IP address usage of DHCP
         server pool reduced to 90% of the threshold.
         The value of the IP address usage is sampled for every 5 minutes."
    ::= { hh3cDhcpServer2TrapNotify 5 }

hh3cDhcpServer2NetUsageOverflow NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the subnet usage of DHCP
         server pool has reached or exceeded the threshold. The IP address usage
         data is polled every 5 minutes."
    ::= { hh3cDhcpServer2TrapNotify 6 }

hh3cDhcpServer2NetUsageOverflowRecov NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the subnet usage in the DHCP
         server pool has dropped to or below 90% of the threshold.
         The IP address usage data is polled every 5 minutes."
    ::= { hh3cDhcpServer2TrapNotify 7 }

hh3cDhcpServer2NetExhaust NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when all IP addresses
         in the DHCP pool are exhausted."
    ::= { hh3cDhcpServer2TrapNotify 8 }

hh3cDhcpServer2NetExhaustRecov NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolIndex,
        hh3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the DHCP pool recovers from
         IP address exhaustion."
    ::= { hh3cDhcpServer2TrapNotify 9 }

hh3cDhcpServer2GpNetExhaust NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolGpName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when all IP addresses
         in the DHCP pool group are exhausted."
    ::= { hh3cDhcpServer2TrapNotify 10 }

hh3cDhcpServer2GpNetExhaustRecov NOTIFICATION-TYPE
    OBJECTS
    {
        hh3cDhcpServer2PoolGpName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the DHCP pool group recovers from
         IP address exhaustion."
    ::= { hh3cDhcpServer2TrapNotify 11 }


END
