-- =============================================================================
-- Copyright (c) 2004-2017 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  DHCPv4 mib for server and relay
-- Reference:
-- Version:      V1.5
-- 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 h3cDhcpServer2PoolVerifyClass h3cDhcpServer2DefOptGrpTable
--      h3cDhcpServer2ValidClassTableby h3cDhcpServer2RuleHwAddrTable
--      h3cDhcpServer2OptionGroupTable h3cDhcpServer2OptionTable
--      by yuguoqing, 2014.3.20
-- V1.3 Add h3cDhcpServer2AllocThreshold, h3cDhcpServer2ReqCnt,
--      h3cDhcpServer2ReqSuccCnt, h3cDhcpServer2PoolThreshold,
--      h3cDhcpServer2PoolUsage, h3cDhcpServer2PoolReqCnt,
--      h3cDhcpServer2PoolReqSuccCnt, h3cDhcpServer2PoolDiscoverCnt,
--      h3cDhcpServer2PoolOfferCnt, h3cDhcpServer2PoolAckCnt,
--      h3cDhcpServer2AddrExhaust, h3cDhcpServer2AddrExhaustRecov,
--      h3cDhcpServer2IpUsageOverflow, h3cDhcpServer2AllocOverflow
--      by zhangrenqiang, 2015.8.5
-- V1.4 Modified h3cDhcpServer2RuleNumber by heminhong, 2017.01.13
-- V1.5 Add h3cDhcpServer2IPTotalNum, h3cDhcpServer2IPUsedNum,
--      h3cDhcpServer2IPIdleNum, h3cDhcpServer2IPExcludeTotalNum,
--      h3cDhcpServer2PoolIPTotalNum, h3cDhcpServer2PoolIPUsedNum,
--      h3cDhcpServer2PoolIPIdleNum,h3cDhcpServer2PoolIPExcludeNum,
--      h3cDhcpServer2PoolConflictNum,h3cDhcpServer2PoolAutoBindNum,
--      h3cDhcpServer2PoolManualBindNum,h3cDhcpServer2PoolExpiredBindNum,
--      h3cDhcpServer2IpUsageOverflowRecov, h3cDhcpServer2PoolNameInfo
--      Modified h3cDhcpServer2AddrExhaust, h3cDhcpServer2AddrExhaustRecov,
--      h3cDhcpServer2IpUsageOverflow
--      by limeng, 2017.6.3
-- =============================================================================
H3C-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
    h3cCommon
        FROM HUAWEI-3COM-OID-MIB;


-- =============================================================================
-- Module identity
-- =============================================================================
h3cDhcp4 MODULE-IDENTITY
    LAST-UPDATED "201706030000Z"
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION "DHCPv4 MIB"
    REVISION
        "201706030000Z"
    DESCRIPTION
        "Modified to add new nodes."
    REVISION
        "201701130000Z"
    DESCRIPTION
        "Modified 'h3cDhcpServer2RuleNumber' 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."
    ::= { h3cCommon 122 }

-- =============================================================================
-- DHCP server scalar objects definition.
-- =============================================================================
    h3cDhcpServer2ScalarObjects OBJECT IDENTIFIER ::= { h3cDhcp4 1 }

-- =============================================================================
-- h3cDhcpServer2ScalarObjects: h3cDhcpServer2ConfigGroup
-- =============================================================================
h3cDhcpServer2ConfigGroup OBJECT IDENTIFIER ::= { h3cDhcpServer2ScalarObjects 1 }

h3cDhcpServer2Enabled 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 }
    ::= { h3cDhcpServer2ConfigGroup 1 }

h3cDhcpServer2AlwaysBroadcast 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 }
    ::= { h3cDhcpServer2ConfigGroup 2 }

h3cDhcpServer2IgnoreBootp 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 }
    ::= { h3cDhcpServer2ConfigGroup 3 }

h3cDhcpServer2BootpReplyRfc1048 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 }
    ::= { h3cDhcpServer2ConfigGroup 4 }

h3cDhcpServer2Opt82Enabled 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 }
    ::= { h3cDhcpServer2ConfigGroup 5 }

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

h3cDhcpServer2PingTimeout 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 }
    ::= { h3cDhcpServer2ConfigGroup 7 }

h3cDhcpServer2AllocThreshold 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 }
    ::= { h3cDhcpServer2ConfigGroup 8 }

-- =============================================================================
-- h3cDhcpServer2ScalarObjects: h3cDhcpServer2StatGroup
-- =============================================================================
h3cDhcpServer2StatGroup     OBJECT IDENTIFIER ::= { h3cDhcpServer2ScalarObjects 2 }

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

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

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

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

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

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

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

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

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

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

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

h3cDhcpServer2TotalPoolUsage 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."
    ::= { h3cDhcpServer2StatGroup 12 }

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

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

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

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

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

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

h3cDhcpServer2ReqSuccCnt 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."
    ::= { h3cDhcpServer2StatGroup 19 }

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

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

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

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

-- =============================================================================
-- DHCP server table definition.
-- =============================================================================
    h3cDhcpServer2Tables OBJECT IDENTIFIER ::= { h3cDhcp4 2 }

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

h3cDhcpServer2PoolEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing DHCP server pool configurations."
    INDEX { h3cDhcpServer2PoolIndex }
    ::= { h3cDhcpServer2PoolTable 1 }

H3cDhcpServer2PoolEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolIndex                    Unsigned32,
            h3cDhcpServer2PoolName                     OCTET STRING,
            h3cDhcpServer2PoolVpnName                  OCTET STRING,
            h3cDhcpServer2PoolNetwork                  InetAddressIPv4,
            h3cDhcpServer2PoolNetworkMask              InetAddressIPv4,
            h3cDhcpServer2PoolStartAddr                InetAddressIPv4,
            h3cDhcpServer2PoolEndAddr                  InetAddressIPv4,
            h3cDhcpServer2PoolLeaseDay                 Integer32,
            h3cDhcpServer2PoolLeaseHour                Integer32,
            h3cDhcpServer2PoolLeaseMinute              Integer32,
            h3cDhcpServer2PoolLeaseSecond              Integer32,
            h3cDhcpServer2PoolLeaseUnlimit             TruthValue,
            h3cDhcpServer2PoolLeaseTime                TimeTicks,
            h3cDhcpServer2PoolDomainName               OCTET STRING,
            h3cDhcpServer2PoolGatewayIP                OCTET STRING,
            h3cDhcpServer2PoolDNSIP                    OCTET STRING,
            h3cDhcpServer2PoolPrimaryDNSIP             InetAddressIPv4,
            h3cDhcpServer2PoolSecondDNSIP              InetAddressIPv4,
            h3cDhcpServer2PoolNetbiosType              INTEGER,
            h3cDhcpServer2PoolNbnsIP                   OCTET STRING,
            h3cDhcpServer2PoolBootFileName             OCTET STRING,
            h3cDhcpServer2PoolBimsIP                   InetAddressIPv4,
            h3cDhcpServer2PoolBimsPort                 Unsigned32,
            h3cDhcpServer2PoolBimsKeyStr               OCTET STRING,
            h3cDhcpServer2PoolNextServer               InetAddressIPv4,
            h3cDhcpServer2PoolTftpDomName              OCTET STRING,
            h3cDhcpServer2PoolTftpIP                   InetAddressIPv4,
            h3cDhcpServer2PoolVoiceAsIP                InetAddressIPv4,
            h3cDhcpServer2PoolVoiceFailIP              InetAddressIPv4,
            h3cDhcpServer2PoolVoiceFailStr             OCTET STRING,
            h3cDhcpServer2PoolVoiceNCPIP               InetAddressIPv4,
            h3cDhcpServer2PoolVoiceVlanId              Unsigned32,
            h3cDhcpServer2PoolVoiceVlanEnbl            TruthValue,
            h3cDhcpServer2PoolRowStatus                RowStatus,
            h3cDhcpServer2PoolVerifyClass              TruthValue,
            h3cDhcpServer2PoolThreshold                Unsigned32
        }

h3cDhcpServer2PoolIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "DHCP server pool index."
    ::= { h3cDhcpServer2PoolEntry 1 }

h3cDhcpServer2PoolName 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."
    ::= { h3cDhcpServer2PoolEntry 2 }

h3cDhcpServer2PoolVpnName 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."
    ::= { h3cDhcpServer2PoolEntry 3 }

h3cDhcpServer2PoolNetwork 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,
         h3cDhcpServer2PoolNetworkMask is set with 0.0.0.0
         automatically."
    ::= { h3cDhcpServer2PoolEntry 4 }

h3cDhcpServer2PoolNetworkMask 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 h3cDhcpServer2PoolNetwork together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolEntry 5 }

h3cDhcpServer2PoolStartAddr 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,
         h3cDhcpServer2PoolEndAddr is set with 0.0.0.0 automatically.
         Otherwise h3cDhcpServer2PoolEndAddr must be set with
         an IP address NOT smaller than the value of this object."
    ::= { h3cDhcpServer2PoolEntry 6 }

h3cDhcpServer2PoolEndAddr 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 h3cDhcpServer2PoolStartAddr together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolEntry 7 }

h3cDhcpServer2PoolLeaseDay 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 h3cDhcpServer2PoolLeaseHour,
         h3cDhcpServer2PoolLeaseMinute,
         h3cDhcpServer2PoolLeaseSecond 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 }
    ::= { h3cDhcpServer2PoolEntry 8 }

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

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

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

h3cDhcpServer2PoolLeaseUnlimit 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 }
    ::= { h3cDhcpServer2PoolEntry 12 }

h3cDhcpServer2PoolLeaseTime 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."
    ::= { h3cDhcpServer2PoolEntry 13 }

h3cDhcpServer2PoolDomainName 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."
    ::= { h3cDhcpServer2PoolEntry 14 }

h3cDhcpServer2PoolGatewayIP 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."
    ::= { h3cDhcpServer2PoolEntry 15 }

h3cDhcpServer2PoolDNSIP 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."
    ::= { h3cDhcpServer2PoolEntry 16 }

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

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

h3cDhcpServer2PoolNetbiosType 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 }
    ::= { h3cDhcpServer2PoolEntry 19 }

h3cDhcpServer2PoolNbnsIP 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."
    ::= { h3cDhcpServer2PoolEntry 20 }

h3cDhcpServer2PoolBootFileName 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."
    ::= { h3cDhcpServer2PoolEntry 21 }

h3cDhcpServer2PoolBimsIP 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, h3cDhcpServer2PoolBimsPort
         is set with 0 and h3cDhcpServer2PoolBimsKeyStr is set with
         a zero-length string automatically.
         Otherwise h3cDhcpServer2PoolBimsPort and h3cDhcpServer2PoolBimsKeyStr
         must be set at the same time while h3cDhcpServer2PoolBimsKeyStr
         must be set with a non-zero length string."
    ::= { h3cDhcpServer2PoolEntry 22 }

h3cDhcpServer2PoolBimsPort 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 h3cDhcpServer2PoolBimsIP and
         h3cDhcpServer2PoolBimsKeyStr together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolEntry 23 }

h3cDhcpServer2PoolBimsKeyStr  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 h3cDhcpServer2PoolBimsIP and
         h3cDhcpServer2PoolBimsPort together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolEntry 24 }

h3cDhcpServer2PoolNextServer 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."
    ::= { h3cDhcpServer2PoolEntry 25 }

h3cDhcpServer2PoolTftpDomName 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."
    ::= { h3cDhcpServer2PoolEntry 26 }

h3cDhcpServer2PoolTftpIP 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."
    ::= { h3cDhcpServer2PoolEntry 27 }

h3cDhcpServer2PoolVoiceAsIP 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."
    ::= { h3cDhcpServer2PoolEntry 28 }

h3cDhcpServer2PoolVoiceFailIP 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,
         h3cDhcpServer2PoolVoiceFailStr is set with a
         zero-length string automatically.
         Otherwise h3cDhcpServer2PoolVoiceFailStr must be set
         with a non-zero length string at the same time."
    ::= { h3cDhcpServer2PoolEntry 29 }

h3cDhcpServer2PoolVoiceFailStr 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 h3cDhcpServer2PoolVoiceFailIP together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolEntry 30 }

h3cDhcpServer2PoolVoiceNCPIP 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."
    ::= { h3cDhcpServer2PoolEntry 31 }

h3cDhcpServer2PoolVoiceVlanId 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,
         h3cDhcpServer2PoolVoiceVlanEnbl is set with 'false' automatically.
         Otherwise h3cDhcpServer2PoolVoiceVlanEnbl must also be set."
    ::= { h3cDhcpServer2PoolEntry 32 }

h3cDhcpServer2PoolVoiceVlanEnbl 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 h3cDhcpServer2PoolVoiceVlanId together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    DEFVAL { false }
    ::= { h3cDhcpServer2PoolEntry 33 }

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

h3cDhcpServer2PoolVerifyClass 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 }
    ::= { h3cDhcpServer2PoolEntry 35 }

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

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

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

H3cDhcpServer2IfApplyPoolEntry ::=
    SEQUENCE
    {
        h3cDhcpServer2IfApplyPoolName OCTET STRING
    }

h3cDhcpServer2IfApplyPoolName    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."
    ::= { h3cDhcpServer2IfApplyPoolEntry 1 }

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

h3cDhcpServer2PoolSecNwEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolSecNwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring
         the secondary network for DHCP pools."
    INDEX
        {
            h3cDhcpServer2PoolIndex,
            h3cDhcpServer2PoolSecNw,
            h3cDhcpServer2PoolSecNwMask
        }
    ::= { h3cDhcpServer2PoolSecNwTable 1 }

H3cDhcpServer2PoolSecNwEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolSecNw                InetAddressIPv4,
            h3cDhcpServer2PoolSecNwMask            InetAddressIPv4,
            h3cDhcpServer2PoolSecNwGwIP            OCTET STRING,
            h3cDhcpServer2PoolSecNwStatus          RowStatus
        }

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

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

h3cDhcpServer2PoolSecNwGwIP 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."
    ::= { h3cDhcpServer2PoolSecNwEntry 3 }

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

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

h3cDhcpServer2PoolClassEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing address range of DHCP pools
         for user classes."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2PoolClassName }
    ::= { h3cDhcpServer2PoolClassTable 1 }

H3cDhcpServer2PoolClassEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolClassName            OCTET STRING,
            h3cDhcpServer2PoolClassStart           InetAddressIPv4,
            h3cDhcpServer2PoolClassEnd             InetAddressIPv4,
            h3cDhcpServer2PoolClassStatus          RowStatus
        }

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

h3cDhcpServer2PoolClassStart 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 h3cDhcpServer2PoolClassEnd together,
         and any SET operation alone to this object will be
         regarded as an invalid operation."
    ::= { h3cDhcpServer2PoolClassEntry 2 }

h3cDhcpServer2PoolClassEnd 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 h3cDhcpServer2PoolClassStart 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 h3cDhcpServer2PoolClassStart."
    ::= { h3cDhcpServer2PoolClassEntry 3 }

h3cDhcpServer2PoolClassStatus 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',
         h3cDhcpServer2PoolClassStart and h3cDhcpServer2PoolClassEnd
         must also be set."
    ::= { h3cDhcpServer2PoolClassEntry 4 }

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

h3cDhcpServer2PoolStaticEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring
         the static binding in DHCP pools."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2PoolStaticIP}
    ::= { h3cDhcpServer2PoolStaticTable 1 }

H3cDhcpServer2PoolStaticEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolStaticIP          InetAddressIPv4,
            h3cDhcpServer2PoolStaticMask        InetAddressIPv4,
            h3cDhcpServer2PoolStaticCID         OCTET STRING,
            h3cDhcpServer2PoolStaticHAddr       OCTET STRING,
            h3cDhcpServer2PoolStaticHType       INTEGER,
            h3cDhcpServer2PoolStaticStatus      RowStatus
        }

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

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

h3cDhcpServer2PoolStaticCID 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."
    ::= { h3cDhcpServer2PoolStaticEntry 3 }

h3cDhcpServer2PoolStaticHAddr 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."
    ::= { h3cDhcpServer2PoolStaticEntry 4 }

h3cDhcpServer2PoolStaticHType 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 h3cDhcpServer2PoolStaticHAddr,
         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 h3cDhcpServer2PoolStaticCID 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 h3cDhcpServer2PoolStaticHAddr 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."
    ::= { h3cDhcpServer2PoolStaticEntry 5 }

h3cDhcpServer2PoolStaticStatus 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',
         h3cDhcpServer2PoolStaticCID or (h3cDhcpServer2PoolStaticHardAddr
         and h3cDhcpServer2PoolStaticHardType) must also be set."
    ::= { h3cDhcpServer2PoolStaticEntry 6 }

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

h3cDhcpServer2PoolOptionEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolOptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring user-defined
         options for DHCP pools."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2PoolOptCode }
    ::= { h3cDhcpServer2PoolOptionTable 1 }

H3cDhcpServer2PoolOptionEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolOptCode         Integer32,
            h3cDhcpServer2PoolOptType         INTEGER,
            h3cDhcpServer2PoolOptAscii        OCTET STRING,
            h3cDhcpServer2PoolOptHexStr       OCTET STRING,
            h3cDhcpServer2PoolOptIPStr        OCTET STRING,
            h3cDhcpServer2PoolOptRowStatus    RowStatus
        }

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

h3cDhcpServer2PoolOptType 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 h3cDhcpServer2PoolOptAscii to fill in the option.

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

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

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

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

h3cDhcpServer2PoolOptHexStr 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 h3cDhcpServer2PoolOptType is set with 'hex',
         this object must be set with a non-zero length
         string."
    ::= { h3cDhcpServer2PoolOptionEntry 4 }

h3cDhcpServer2PoolOptIPStr 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 h3cDhcpServer2PoolOptType is set with 'ip',
         this object must be set with a non-zero length string
         that must contain at least one IP address."
    ::= { h3cDhcpServer2PoolOptionEntry 5 }

h3cDhcpServer2PoolOptRowStatus 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',
         h3cDhcpServer2PoolOptType must also be set."
    ::= { h3cDhcpServer2PoolOptionEntry 6 }

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

h3cDhcpServer2PoolForbidEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring forbidden IP for a DHCP server pool."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2PoolForbidIP }
    ::= { h3cDhcpServer2PoolForbidTable 1 }

H3cDhcpServer2PoolForbidEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolForbidIP             InetAddressIPv4,
            h3cDhcpServer2PoolForbidStatus         RowStatus
        }

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

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

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

h3cDhcpServer2ClassEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2ClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring user class to DHCP server."
    INDEX { h3cDhcpServer2ClassName }
    ::= { h3cDhcpServer2ClassTable 1 }

H3cDhcpServer2ClassEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2ClassName           OCTET STRING,
            h3cDhcpServer2ClassRowStatus      RowStatus
        }

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

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

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

h3cDhcpServer2RuleEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2RuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring option rules used to match DHCP users."
    INDEX
        {
            h3cDhcpServer2ClassName,
            h3cDhcpServer2RuleNumber
        }
    ::= { h3cDhcpServer2RuleTable 1 }

H3cDhcpServer2RuleEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2RuleNumber           Integer32,
            h3cDhcpServer2RuleOptCode          Integer32,
            h3cDhcpServer2RuleOptHexStr        OCTET STRING,
            h3cDhcpServer2RuleOptMask          OCTET STRING,
            h3cDhcpServer2RuleOptOffset        Integer32,
            h3cDhcpServer2RuleOptLength        Integer32,
            h3cDhcpServer2RuleRowStatus        RowStatus
        }

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

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

h3cDhcpServer2RuleOptHexStr 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."
    ::= { h3cDhcpServer2RuleEntry 3 }

h3cDhcpServer2RuleOptMask 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
         h3cDhcpServer2RuleOptHexStr.

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

h3cDhcpServer2RuleOptOffset 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 h3cDhcpServer2RuleOptHexStr,
         h3cDhcpServer2RuleOptLength."
    ::= { h3cDhcpServer2RuleEntry 5 }

h3cDhcpServer2RuleOptLength 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 h3cDhcpServer2RuleOptOffset."
    ::= { h3cDhcpServer2RuleEntry 6 }

h3cDhcpServer2RuleRowStatus 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',
         h3cDhcpServer2RuleOptCode must also be set."
    ::= { h3cDhcpServer2RuleEntry 7 }

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

h3cDhcpServer2ForbidEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2ForbidEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring forbidden IP range to DHCP server."
    INDEX
        {
            h3cDhcpServer2ForbidVpnName,
            h3cDhcpServer2ForbidStart,
            h3cDhcpServer2ForbidEnd
        }
    ::= { h3cDhcpServer2ForbidTable 1 }

H3cDhcpServer2ForbidEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2ForbidVpnName      OCTET STRING,
            h3cDhcpServer2ForbidStart        InetAddressIPv4,
            h3cDhcpServer2ForbidEnd          InetAddressIPv4,
            h3cDhcpServer2ForbidRowStatus    RowStatus
        }

h3cDhcpServer2ForbidVpnName 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."
    ::= { h3cDhcpServer2ForbidEntry 1 }

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

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

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

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

h3cDhcpServer2FreeEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2FreeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for displaying free IP range for DHCP server."
    INDEX
        {
            h3cDhcpServer2PoolIndex,
            h3cDhcpServer2FreeStart
        }
    ::= { h3cDhcpServer2FreeTable 1 }

H3cDhcpServer2FreeEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2FreeStart             InetAddressIPv4,
            h3cDhcpServer2FreeEnd               InetAddressIPv4
        }

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

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

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

h3cDhcpServer2ConflictEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2ConflictEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for displaying the information of
         conflict IP for DHCP server."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2ConflictIP }
    ::= { h3cDhcpServer2ConflictTable 1 }

H3cDhcpServer2ConflictEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2ConflictIP            InetAddressIPv4,
            h3cDhcpServer2ConflictType          INTEGER,
            h3cDhcpServer2ConflictTime          OCTET STRING,
            h3cDhcpServer2ConflictRowStatus     RowStatus
        }

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

h3cDhcpServer2ConflictType 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."
    ::= { h3cDhcpServer2ConflictEntry 2 }

h3cDhcpServer2ConflictTime 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)."
    ::= { h3cDhcpServer2ConflictEntry 3 }

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

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

h3cDhcpServer2ExpiredEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2ExpiredEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying information
         of expired IP for DHCP server pools."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2ExpiredIP }
    ::= { h3cDhcpServer2ExpiredTable 1 }

H3cDhcpServer2ExpiredEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2ExpiredIP                  InetAddressIPv4,
            h3cDhcpServer2ExpiredClientId            OCTET STRING,
            h3cDhcpServer2ExpiredTime                OCTET STRING,
            h3cDhcpServer2ExpiredRowStatus           RowStatus
        }

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

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

h3cDhcpServer2ExpiredTime 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)."
    ::= { h3cDhcpServer2ExpiredEntry 3 }

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

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

h3cDhcpServer2IPInUseEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2IPInUseEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying information
         of IP in use for DHCP server pools."
    INDEX { h3cDhcpServer2PoolIndex, h3cDhcpServer2IPInUseIP }
    ::= { h3cDhcpServer2IPInUseTable 1 }

H3cDhcpServer2IPInUseEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2IPInUseIP                  InetAddressIPv4,
            h3cDhcpServer2IPInUseClientId            OCTET STRING,
            h3cDhcpServer2IPInUseHardAddr            OCTET STRING,
            h3cDhcpServer2IPInUseHardType            INTEGER,
            h3cDhcpServer2IPInUseVlanId              Unsigned32,
            h3cDhcpServer2IPInUseEndLease            OCTET STRING,
            h3cDhcpServer2IPInUseType                INTEGER,
            h3cDhcpServer2IPInUseIfIndex             InterfaceIndexOrZero,
            h3cDhcpServer2IPInUseRowStatus           RowStatus
        }

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

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

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

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

h3cDhcpServer2IPInUseVlanId 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."
    ::= { h3cDhcpServer2IPInUseEntry 5 }

h3cDhcpServer2IPInUseEndLease 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)."
    ::= { h3cDhcpServer2IPInUseEntry 6 }

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

h3cDhcpServer2IPInUseIfIndex 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."
    ::= { h3cDhcpServer2IPInUseEntry 8 }

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

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

h3cDhcpServer2DefOptGrpEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2DefOptGrpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing option group of DHCP pools for user classes."
    INDEX {
            h3cDhcpServer2PoolIndex,
            h3cDhcpServer2DefOptGrpClass
          }
    ::= { h3cDhcpServer2DefOptGrpTable 1 }

H3cDhcpServer2DefOptGrpEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2DefOptGrpClass        OCTET STRING,
            h3cDhcpServer2DefOptGrpId           Integer32,
            h3cDhcpServer2DefOptGrpStatus       RowStatus
        }

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

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

h3cDhcpServer2DefOptGrpStatus 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',
         h3cDhcpServer2DefOptGrpId must also be set."
    ::= { h3cDhcpServer2DefOptGrpEntry 3 }

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

h3cDhcpServer2ValidClassEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2ValidClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing valid user classes for DHCP server pool."
    INDEX {
      h3cDhcpServer2PoolIndex,
      h3cDhcpServer2ValidClassName
    }
    ::= { h3cDhcpServer2ValidClassTable 1 }

H3cDhcpServer2ValidClassEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2ValidClassName            OCTET STRING,
            h3cDhcpServer2ValidClassStatus          RowStatus
        }

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

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

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

h3cDhcpServer2RuleHwAddrEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2RuleHwAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for configuring hardware address rules used to match DHCP
         users."
    INDEX
        {
          h3cDhcpServer2ClassName,
          h3cDhcpServer2RuleHwAddrNumber
        }
    ::= { h3cDhcpServer2RuleHwAddrTable 1 }

H3cDhcpServer2RuleHwAddrEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2RuleHwAddrNumber           Integer32,
            h3cDhcpServer2RuleHwAddress              OCTET STRING,
            h3cDhcpServer2RuleHwAddrMask             OCTET STRING,
            h3cDhcpServer2RuleHwAddrType             Integer32,
            h3cDhcpServer2RuleHwAddrStatus           RowStatus
        }

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

h3cDhcpServer2RuleHwAddress 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 h3cDhcpServer2RuleHwAddrMask together, and any SET operation
         alone to this object will be regarded as an invalid operation."
    ::= { h3cDhcpServer2RuleHwAddrEntry 2 }

h3cDhcpServer2RuleHwAddrMask 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
         h3cDhcpServer2RuleHwAddress.

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

h3cDhcpServer2RuleHwAddrType 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 }
    ::= { h3cDhcpServer2RuleHwAddrEntry 4 }

h3cDhcpServer2RuleHwAddrStatus 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',
         h3cDhcpServer2RuleHwAddrAddress and h3cDhcpServer2RuleHwAddrMask
         must also be set."
    ::= { h3cDhcpServer2RuleHwAddrEntry 5 }

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

h3cDhcpServer2OptionGroupEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2OptionGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing objects for creating or deleting an option
         group."
    INDEX { h3cDhcpServer2OptionGroupId }
    ::= { h3cDhcpServer2OptionGroupTable 1 }

H3cDhcpServer2OptionGroupEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2OptionGroupId         Integer32,
            h3cDhcpServer2OptionGroupStatus     RowStatus
        }

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

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

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

h3cDhcpServer2OptionEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2OptionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing objects for configuring an option in an option
         group."
    INDEX
        {
          h3cDhcpServer2OptionGroupId,
          h3cDhcpServer2OptionCode
        }
    ::= { h3cDhcpServer2OptionTable 1 }

H3cDhcpServer2OptionEntry ::=
    SEQUENCE
        {   h3cDhcpServer2OptionCode         Integer32,
            h3cDhcpServer2OptionType         INTEGER,
            h3cDhcpServer2OptionAscii        OCTET STRING,
            h3cDhcpServer2OptionHexStr       OCTET STRING,
            h3cDhcpServer2OptionIPStr        OCTET STRING,
            h3cDhcpServer2OptionRowStatus    RowStatus
        }

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

h3cDhcpServer2OptionType 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
         h3cDhcpServer2OptionAscii to fill in the option.

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

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

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

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

h3cDhcpServer2OptionHexStr    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
         h3cDhcpServer2OptionType is set with 'hex', this object must be
         set with a non-zero length string."
    ::= { h3cDhcpServer2OptionEntry 4 }

h3cDhcpServer2OptionIPStr    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 h3cDhcpServer2OptionType is set with 'ip', this object must be
         set with a non-zero length string that must contain at least one IP
         address."
    ::= { h3cDhcpServer2OptionEntry 5 }

h3cDhcpServer2OptionRowStatus 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',
         h3cDhcpServer2OptionType must also be set."
    ::= { h3cDhcpServer2OptionEntry 6 }

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

h3cDhcpServer2PoolStatEntry OBJECT-TYPE
    SYNTAX      H3cDhcpServer2PoolStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of objects for displaying the statistics of
         a DHCP Server pool."
    INDEX { h3cDhcpServer2PoolIndex }
    ::= { h3cDhcpServer2PoolStatTable 1 }

H3cDhcpServer2PoolStatEntry ::=
    SEQUENCE
        {
            h3cDhcpServer2PoolUsage                  Unsigned32,
            h3cDhcpServer2PoolReqCnt                 Counter64,
            h3cDhcpServer2PoolReqSuccCnt             Counter64,
            h3cDhcpServer2PoolDiscoverCnt            Counter64,
            h3cDhcpServer2PoolOfferCnt               Counter64,
            h3cDhcpServer2PoolAckCnt                 Counter64,
            h3cDhcpServer2PoolIPTotalNum             Unsigned32,
            h3cDhcpServer2PoolIPUsedNum              Unsigned32,
            h3cDhcpServer2PoolIPIdleNum              Unsigned32,
            h3cDhcpServer2PoolIPExcludeNum           Unsigned32,
            h3cDhcpServer2PoolConflictNum            Unsigned32,
            h3cDhcpServer2PoolAutoBindNum            Unsigned32,
            h3cDhcpServer2PoolManualBindNum          Unsigned32,
            h3cDhcpServer2PoolExpiredBindNum         Unsigned32,
            h3cDhcpServer2PoolNameInfo               OCTET STRING
        }

h3cDhcpServer2PoolUsage 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."
    ::= { h3cDhcpServer2PoolStatEntry 1 }

h3cDhcpServer2PoolReqCnt 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."
    ::= { h3cDhcpServer2PoolStatEntry 2 }

h3cDhcpServer2PoolReqSuccCnt 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."
    ::= { h3cDhcpServer2PoolStatEntry 3 }

h3cDhcpServer2PoolDiscoverCnt 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."
    ::= { h3cDhcpServer2PoolStatEntry 4 }

h3cDhcpServer2PoolOfferCnt 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."
    ::= { h3cDhcpServer2PoolStatEntry 5 }

h3cDhcpServer2PoolAckCnt 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."
    ::= { h3cDhcpServer2PoolStatEntry 6 }

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

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

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

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

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

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

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

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

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

-- =============================================================================
-- DHCP relay scalar object definition begin
-- =============================================================================
    h3cDhcpRelay2ScalarObjects   OBJECT IDENTIFIER ::= { h3cDhcp4 3 }

-- =============================================================================
-- h3cDhcpRelay2ScalarObjects: h3cDhcpRelay2ConfigGroup
-- =============================================================================
h3cDhcpRelay2ConfigGroup  OBJECT IDENTIFIER ::= { h3cDhcpRelay2ScalarObjects 1 }

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

h3cDhcpRelay2UserInfoRefresh 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 }
    ::= { h3cDhcpRelay2ConfigGroup 2 }

h3cDhcpRelay2UserInfoFlushTime 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 }
    ::= { h3cDhcpRelay2ConfigGroup 3 }

h3cDhcpRelay2ReleaseAddr   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."
    ::= { h3cDhcpRelay2ConfigGroup 4 }

-- =============================================================================
-- h3cDhcpRelay2ScalarObjects: h3cDhcpRelay2StatisticsGroup
-- =============================================================================
h3cDhcpRelay2StatisticsGroup  OBJECT IDENTIFIER ::= { h3cDhcpRelay2ScalarObjects 2 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-- =============================================================================
-- DHCP relay table definition.
-- =============================================================================
    h3cDhcpRelay2Tables OBJECT IDENTIFIER ::= { h3cDhcp4 4 }

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

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

H3cDhcpRelay2IfConfigEntry ::=
    SEQUENCE
        {
            h3cDhcpRelay2IfSelectRelay              TruthValue,
            h3cDhcpRelay2IfCheckMac                 TruthValue,
            h3cDhcpRelay2IfOpt82Enable              TruthValue,
            h3cDhcpRelay2IfOpt82Strategy            INTEGER,
            h3cDhcpRelay2IfOpt82CIDMode             INTEGER,
            h3cDhcpRelay2IfOpt82CIDNodeType         INTEGER,
            h3cDhcpRelay2IfOpt82CIDNodeStr          OCTET STRING,
            h3cDhcpRelay2IfOpt82CIDStr              OCTET STRING,
            h3cDhcpRelay2IfOpt82CIDFormat           INTEGER,
            h3cDhcpRelay2IfOpt82RIDMode             INTEGER,
            h3cDhcpRelay2IfOpt82RIDStr              OCTET STRING,
            h3cDhcpRelay2IfOpt82RIDFormat           INTEGER
        }

h3cDhcpRelay2IfSelectRelay    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 }
    ::= { h3cDhcpRelay2IfConfigEntry 1 }

h3cDhcpRelay2IfCheckMac    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 }
    ::= { h3cDhcpRelay2IfConfigEntry 2 }

h3cDhcpRelay2IfOpt82Enable 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 }
    ::= { h3cDhcpRelay2IfConfigEntry 3 }

h3cDhcpRelay2IfOpt82Strategy     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 }
    ::= { h3cDhcpRelay2IfConfigEntry 4 }

h3cDhcpRelay2IfOpt82CIDMode 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',
         h3cDhcpRelay2IfOpt82CIDStr must also be set."
    DEFVAL      { normal }
    ::= { h3cDhcpRelay2IfConfigEntry 5 }

h3cDhcpRelay2IfOpt82CIDNodeType 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 h3cDhcpRelay2IfOpt82CIDMode is set to 'verbose'.

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

         'invalid' indicates that the node identifier is NOT used
         to fill in the circuit ID suboption of option 82.
         If the value of h3cDhcpRelay2IfOpt82CIDMode 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 h3cDhcpRelay2IfOpt82CIDMode 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 h3cDhcpRelay2IfOpt82CIDNodeStr.
         If the value is set to 'userDefine', the value of
         h3cDhcpRelay2IfOpt82CIDNodeStr must be set to a non-zero
         length string simultaneously."
    ::= { h3cDhcpRelay2IfConfigEntry 6 }

h3cDhcpRelay2IfOpt82CIDNodeStr      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 h3cDhcpRelay2IfOpt82CIDMode is NOT 'verbose',
          or the value of h3cDhcpRelay2IfOpt82CIDNodeType 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 h3cDhcpRelay2IfOpt82CIDMode and
          h3cDhcpRelay2IfOpt82CIDNodeType."
    ::= { h3cDhcpRelay2IfConfigEntry 7 }

h3cDhcpRelay2IfOpt82CIDStr      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 h3cDhcpRelay2IfOpt82CIDMode 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 h3cDhcpRelay2IfOpt82CIDMode."
    ::= { h3cDhcpRelay2IfConfigEntry 8 }

h3cDhcpRelay2IfOpt82CIDFormat    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 h3cDhcpRelay2IfOpt82CIDMode is
         'normal', the value of this object is set to 'hex'
         automatically and cannot be set to 'undefine'.

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

         If the value of h3cDhcpRelay2IfOpt82CIDMode 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 h3cDhcpRelay2IfOpt82CIDMode."
    ::= { h3cDhcpRelay2IfConfigEntry 9 }

h3cDhcpRelay2IfOpt82RIDMode 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',
         h3cDhcpRelay2IfOpt82RIDStr must also be set."
    DEFVAL      { normal }
    ::= { h3cDhcpRelay2IfConfigEntry 10 }

h3cDhcpRelay2IfOpt82RIDStr  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 h3cDhcpRelay2IfOpt82RIDMode 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 h3cDhcpRelay2IfOpt82RIDMode."
    ::= { h3cDhcpRelay2IfConfigEntry 11 }

h3cDhcpRelay2IfOpt82RIDFormat    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 h3cDhcpRelay2IfOpt82RIDMode is
         'sysname' or 'userDefine', this object is set with 'ascii'
         automatically and cannot be set with other value.

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

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

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

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

H3cDhcpRelay2SrvAddrEntry ::=
    SEQUENCE
        {
            h3cDhcpRelay2SrvAddrIP                InetAddressIPv4,
            h3cDhcpRelay2SrvAddrRowStatus         RowStatus
        }

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

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

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

h3cDhcpRelay2UserInfoEntry  OBJECT-TYPE
    SYNTAX      H3cDhcpRelay2UserInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the user information of DHCP client."
    INDEX
    {
        h3cDhcpRelay2UserInfoVpnIndex,
        h3cDhcpRelay2UserInfoIpAddr
    }
    ::= { h3cDhcpRelay2UserInfoTable 1 }

H3cDhcpRelay2UserInfoEntry   ::=
    SEQUENCE
    {
        h3cDhcpRelay2UserInfoVpnIndex      Unsigned32,
        h3cDhcpRelay2UserInfoIpAddr        InetAddressIPv4,
        h3cDhcpRelay2UserInfoMacAddr       MacAddress,
        h3cDhcpRelay2UserInfoIfIndex       InterfaceIndexOrZero,
        h3cDhcpRelay2UserInfoRowStatus     RowStatus
    }

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

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

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

h3cDhcpRelay2UserInfoIfIndex      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."
    ::= { h3cDhcpRelay2UserInfoEntry 4 }

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

-- =============================================================================
-- DHCP server trap objects definition.
-- =============================================================================
h3cDhcpServer2Traps OBJECT IDENTIFIER ::= { h3cDhcp4 5 }

h3cDhcpServer2TrapNotify OBJECT IDENTIFIER ::= { h3cDhcpServer2Traps 0 }

h3cDhcpServer2AddrExhaust NOTIFICATION-TYPE
    OBJECTS
    {
        h3cDhcpServer2PoolIndex,
        h3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when addresses are exhausted
         in the DHCP pool."
    ::= { h3cDhcpServer2TrapNotify 1 }

h3cDhcpServer2AddrExhaustRecov NOTIFICATION-TYPE
    OBJECTS
    {
        h3cDhcpServer2PoolIndex,
        h3cDhcpServer2PoolName
    }
    STATUS      current
    DESCRIPTION
        "This trap is generated when the DHCP pool recovers from
         address exhaustion."
    ::= { h3cDhcpServer2TrapNotify 2 }

h3cDhcpServer2IpUsageOverflow NOTIFICATION-TYPE
    OBJECTS
    {
        h3cDhcpServer2PoolIndex,
        h3cDhcpServer2PoolName
    }
    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."
    ::= { h3cDhcpServer2TrapNotify 3 }

h3cDhcpServer2AllocOverflow 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."
    ::= { h3cDhcpServer2TrapNotify 4 }

h3cDhcpServer2IpUsageOverflowRecov NOTIFICATION-TYPE
    OBJECTS
    {
        h3cDhcpServer2PoolIndex,
        h3cDhcpServer2PoolName
    }
    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."
    ::= { h3cDhcpServer2TrapNotify 5 }

END
