-- =================================================================
-- Copyright (c) 2004-2014 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  The Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
-- provides a framework to assign IPv6 prefixes, IPv6 addresses,
-- and other configuration parameters to hosts.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2014-10-30 Initial version Created by c09672
-- =================================================================
H3C-DHCP6-SERVER-MIB DEFINITIONS ::= BEGIN
IMPORTS
    h3cCommon
        FROM HUAWEI-3COM-OID-MIB
    OBJECT-TYPE, MODULE-IDENTITY, Integer32, TimeTicks
        FROM SNMPv2-SMI
    RowStatus
        FROM SNMPv2-TC
    InetAddressIPv6
        FROM INET-ADDRESS-MIB;

h3cDHCP6Server MODULE-IDENTITY
    LAST-UPDATED "201410300000Z"            -- Oct 30th, 2014 at 00:00 GMT
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip: 100085"
    DESCRIPTION
        "The MIB module is used for DHCPv6 server."
    REVISION    "201410300000Z"
    DESCRIPTION
        "Initial version"
    ::= { h3cCommon 159 }

--
-- Define the DHCPv6 Server Tables.
--
    h3cDHCP6ServerTables OBJECT IDENTIFIER ::= { h3cDHCP6Server 1 }

-- =================================================================
-- 1st Table of h3cDHCP6ServerTables: h3cDHCP6PoolTable
-- =================================================================
h3cDHCPS6PoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDHCPS6PoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for creating DHCPv6 address pools."
    ::= { h3cDHCP6ServerTables 1 }

h3cDHCPS6PoolEntry OBJECT-TYPE
    SYNTAX      H3cDHCPS6PoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing objects for creating or
        deleting a DHCPv6 address pool."
    INDEX { h3cDHCPS6PoolName }
    ::= { h3cDHCPS6PoolTable 1 }

H3cDHCPS6PoolEntry ::=
    SEQUENCE
        {
            h3cDHCPS6PoolName      OCTET STRING,
            h3cDHCPS6PoolRowStatus RowStatus
        }

h3cDHCPS6PoolName OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..10))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "DHCPv6 address pool name.  The name must be integer."
    ::= { h3cDHCPS6PoolEntry 1 }

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

-- =================================================================
-- 2nd Table of h3cDHCP6ServerTables: h3cDHCPS6PoolConfigTable
-- =================================================================
h3cDHCPS6PoolConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDHCPS6PoolConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring parameters for DHCPv6 address pools."
    ::= { h3cDHCP6ServerTables 2 }

h3cDHCPS6PoolConfigEntry OBJECT-TYPE
    SYNTAX      H3cDHCPS6PoolConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for the parameter
        configurations of DHCPv6 address pools."
    INDEX { h3cDHCPS6PoolName }
    ::= { h3cDHCPS6PoolConfigTable 1 }

H3cDHCPS6PoolConfigEntry ::=
    SEQUENCE
        {
            h3cDHCPS6PoolPrimaryDNSIP InetAddressIPv6,
            h3cDHCPS6PoolSecondDNSIP  InetAddressIPv6
        }

h3cDHCPS6PoolPrimaryDNSIP OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Primary DNS server IPv6 address to be assigned to the
        client.  To delete a configured Primary DNS server IP, please
        set h3cDHCP6ServerPoolPrimaryDNSIP to '0x00 0x00 0x00 0x00
        0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00'."
    ::= { h3cDHCPS6PoolConfigEntry 1 }

h3cDHCPS6PoolSecondDNSIP OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Secondary DNS server IPv6 address to be assigned to the
        client.  To delete a configured Secondary DNS server IP, please
        set h3cDHCP6ServerPoolSecondDNSIP to '0x00 0x00 0x00 0x00 0x00
        0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00'."
    ::= { h3cDHCPS6PoolConfigEntry 2 }

-- =================================================================
-- 3rd Table of h3cDHCP6ServerTables: h3cDHCPS6PoolNetworkTable
-- =================================================================
h3cDHCPS6PoolNetworkTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDHCPS6PoolNetworkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing the network configurations of DHCPv6
        address pools."
    ::= { h3cDHCP6ServerTables 3 }

h3cDHCPS6PoolNetworkEntry OBJECT-TYPE
    SYNTAX      H3cDHCPS6PoolNetworkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the objects for configuring
        the network ip or host ip etc. to pools for
        DHCPv6 server.  H3cDHCPS6PoolStartAddr and h3cDHCPS6PoolStopAddr
        must be set with h3cDHCPS6PoolNetPrefixLen, and must be on the
        same network."
    INDEX { h3cDHCPS6PoolName }
    ::= { h3cDHCPS6PoolNetworkTable 1 }

H3cDHCPS6PoolNetworkEntry ::=
    SEQUENCE
        {
            h3cDHCPS6PoolStartAddr      InetAddressIPv6,
            h3cDHCPS6PoolStopAddr       InetAddressIPv6,
            h3cDHCPS6PoolNetPrefixLen   Integer32,
            h3cDHCPS6PoolLeaseTime      TimeTicks
        }

h3cDHCPS6PoolStartAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Start IP of a DHCPv6 address pool.
        To delete a configured start IP, please set
        h3cDHCP6ServerPoolStartAddr to '0x00 0x00 0x00 0x00 0x00
        0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00'."
    ::= { h3cDHCPS6PoolNetworkEntry 1 }

h3cDHCPS6PoolStopAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "End IP of a DHCPv6 address pool."
    ::= { h3cDHCPS6PoolNetworkEntry 2 }

h3cDHCPS6PoolNetPrefixLen OBJECT-TYPE
    SYNTAX      Integer32(1..128)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A prefix length of DHCPv6 address pool."
    ::= { h3cDHCPS6PoolNetworkEntry 3 }

h3cDHCPS6PoolLeaseTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Number of time ticks of the lease."
    ::= { h3cDHCPS6PoolNetworkEntry 4 }

-- =================================================================
-- 4th Table of h3cDHCP6ServerTables: h3cDHCPS6PoolStatTable
-- =================================================================
h3cDHCPS6PoolStatTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDHCPS6PoolStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The statistics of each DHCPv6 address pool."
    ::= { h3cDHCP6ServerTables 4 }

h3cDHCPS6PoolStatEntry OBJECT-TYPE
    SYNTAX      H3cDHCPS6PoolStatEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing the statistics of each DHCPv6 address pool."
    INDEX { h3cDHCPS6PoolName }
    ::= { h3cDHCPS6PoolStatTable 1 }

H3cDHCPS6PoolStatEntry ::=
    SEQUENCE
        {
            h3cDHCPS6PoolIPPoolUsage     Integer32
        }

h3cDHCPS6PoolIPPoolUsage OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Utilization rate of IPv6 addresses in each DHCPv6 address pool, in percentage."
    ::= { h3cDHCPS6PoolStatEntry 1 }

END
