-- *****************************************************************
-- QTECH-DHCPv6-MIB.mib:  Qtech DHCPv6 MIB file
--
-- March 2009, Chenfg
--
-- Copyright (c) 2009 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************

QTECH-DHCPv6-MIB  DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    OBJECT-IDENTITY,
    OBJECT-TYPE, 
    Counter32,
    Unsigned32,	
    Counter64, 
    Integer32
        FROM SNMPv2-SMI
    TimeInterval, 
    DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, 
    OBJECT-GROUP
        FROM SNMPv2-CONF
    Ipv6Address, 
    Ipv6AddressPrefix
        FROM IPV6-TC
    InterfaceIndex
        FROM IF-MIB
    qtechMgmt
        FROM QTECH-SMI;

qtechDhcpv6MIB  MODULE-IDENTITY
    LAST-UPDATED "200903160000Z"
    ORGANIZATION "Qtech Networks Co.,Ltd."
    CONTACT-INFO
        				" 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
    DESCRIPTION
        "This module defines qtech DHCPv6 mibs."
    -- Revision History
    REVISION    "200903160000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { qtechMgmt 45 }


--
-- Declare top-level DHCPv6 MIB objects
--
qtechDhcpv6MIBObjects OBJECT-IDENTITY 
    STATUS      current
    DESCRIPTION
        "DHCPv6 Server MIB objects are defined in this branch."
    ::= { qtechDhcpv6MIB 1 }

--
-- DHCPv6 Server
--
qtechDhcpv6ServerMIBObjects OBJECT-IDENTITY 
    STATUS      current
    DESCRIPTION
        "DHCPv6 Server MIB server identification objects are all defined
        in this branch."
    ::= { qtechDhcpv6MIBObjects 1 }

qtechDhcpv6ServerCounters OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Group of objects that count various DHCPv6 events."
 ::= { qtechDhcpv6ServerMIBObjects 1 }
 
qtechDhcpv6ServerConfiguration OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Objects that contain pre-configured and dynamic configuration
        information."
 ::= { qtechDhcpv6ServerMIBObjects 2 }

--
-- DHCPv6 Server Counters
--
qtechDhcpv6ServerHCountSolicits OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of solicit packets received."
    ::= { qtechDhcpv6ServerCounters 1 }

qtechDhcpv6ServerHCountRequests OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of request packets received."
    ::= { qtechDhcpv6ServerCounters 2 }

qtechDhcpv6ServerHCountRenews OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of renew packets received."
    ::= { qtechDhcpv6ServerCounters 3 }

qtechDhcpv6ServerHCountDeclines OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of decline packets received."
    ::= { qtechDhcpv6ServerCounters 4 }

qtechDhcpv6ServerHCountReleases OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of release packets received."
    ::= { qtechDhcpv6ServerCounters 5 }

qtechDhcpv6ServerHCountInforms OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of inform packets received."
    ::= { qtechDhcpv6ServerCounters 6 }

qtechDhcpv6ServerHCountConfirms OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of confirm packets received."
    ::= { qtechDhcpv6ServerCounters 7 }

qtechDhcpv6ServerHCountRebinds OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of rebind packets received."
    ::= { qtechDhcpv6ServerCounters 8 }

qtechDhcpv6ServerHCountAdvertises OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of advertise packets sent."
    ::= { qtechDhcpv6ServerCounters 9 }

qtechDhcpv6ServerHCountSuccReplies OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of success reply packets sent."
    ::= { qtechDhcpv6ServerCounters 10 }

qtechDhcpv6ServerHCountFailReplies OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of failed reply packets sent."
    ::= { qtechDhcpv6ServerCounters 11 }

qtechDhcpv6ServerHCountInPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of input DHCPv6 packets."
    ::= { qtechDhcpv6ServerCounters 12 }

qtechDhcpv6ServerHCountOutPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of output DHCPv6 packets."
    ::= { qtechDhcpv6ServerCounters 13 }

qtechDhcpv6ServerHCountDroppedUnknown OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of DHCPv6 packets dropped due to the server not
        recognizing received in the incoming packet."
    ::= { qtechDhcpv6ServerCounters 14 }

qtechDhcpv6ServerHCountDroppedError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of DHCPv6 packets dropped due to the server
        containing errors received in the incoming packet."
    ::= { qtechDhcpv6ServerCounters 15 }
	
qtechDhcpv6ServerHCountRelayforward OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Relay-forward packets received."
    ::= { qtechDhcpv6ServerCounters 16 }
	
qtechDhcpv6ServerHCountRelayreply OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Relay-reply packets sent."
    ::= { qtechDhcpv6ServerCounters 17 }
    
qtechDhcpv6ServerHCountReqtimes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Discover packets recv."
    ::= { qtechDhcpv6ServerCounters 18 }
    
qtechDhcpv6ServerHCountReqSuctimes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Ack packets send."
    ::= { qtechDhcpv6ServerCounters 19 }

--
-- DHCPv6 Server Configuration
--
--
-- DHCPv6 Server Bindings Numbers
--
qtechDhcpv6ServerNumBindings OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of address bindings maintained by this server."
    ::= { qtechDhcpv6ServerConfiguration 1 }

--
-- DHCPv6 Server Bindings Table
--
qtechDhcpv6ServerBindingsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechDhcpv6ServerBindingsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of address bindings maintained by this DHCPv6 Server."
    ::= { qtechDhcpv6ServerConfiguration 2 }

qtechDhcpv6ServerBindingsEntry OBJECT-TYPE
    SYNTAX      QtechDhcpv6ServerBindingsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry (conceptual row) representing an address binding maintained by
        this DHCPv6 Server."
    INDEX     { qtechDhcpv6ServerBindingsPoolName,
                qtechDhcpv6ServerBindingsClientDuid,
                qtechDhcpv6ServerBindingsIaType,
                qtechDhcpv6ServerBindingsIaId }
    ::= { qtechDhcpv6ServerBindingsTable 1 }

QtechDhcpv6ServerBindingsEntry ::= SEQUENCE {
    qtechDhcpv6ServerBindingsPoolName      DisplayString,
    qtechDhcpv6ServerBindingsClientDuid    OCTET STRING,
    qtechDhcpv6ServerBindingsIaType        INTEGER,
    qtechDhcpv6ServerBindingsIaId          Unsigned32,
    qtechDhcpv6ServerBindingsAddress       Ipv6Address,
    qtechDhcpv6ServerBindingsPrefix        Ipv6AddressPrefix,
    qtechDhcpv6ServerBindingsPrefixLength  Integer32,
    qtechDhcpv6ServerBindingsDuration      Unsigned32,
    qtechDhcpv6ServerBindingsIfIndex       InterfaceIndex}

qtechDhcpv6ServerBindingsPoolName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The pool name associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 1 }

qtechDhcpv6ServerBindingsClientDuid OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..130))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The client DUID associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 2 }

qtechDhcpv6ServerBindingsIaType OBJECT-TYPE
    SYNTAX     INTEGER {
        iana(1),  -- IA-NA, Non-temporary Addresses
        iata(2),  -- IA-TA, Temporary Addresses
        iapd(3)   -- IA-PD, Prefix Delegation
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IA type associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 3 }

qtechDhcpv6ServerBindingsIaId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IA index associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 4 }

qtechDhcpv6ServerBindingsAddress OBJECT-TYPE
    SYNTAX      Ipv6Address
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "If IA type is IA_NA or IA_TA, then this is the IP Address associated
        with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 5 }

qtechDhcpv6ServerBindingsPrefix OBJECT-TYPE
    SYNTAX      Ipv6AddressPrefix
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "If IA type is IA_PD, then this is IP Address Prefix Delegation 
        associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 6 }

qtechDhcpv6ServerBindingsPrefixLength OBJECT-TYPE
    SYNTAX      Integer32 (0..128)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP Address Prefix Delegation length associated with this entry 
        in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 7 }

qtechDhcpv6ServerBindingsDuration OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This is the time remaining prior to expiration of the address binding 
        associated with this entry. If the value is 4294967295 (i.e., 0xFFFFFFFF),
        this binding will be maintained indefinitely."
    ::= { qtechDhcpv6ServerBindingsEntry 8 }

qtechDhcpv6ServerBindingsIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The interface associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerBindingsEntry 9 }

--
-- DHCPv6 Server Pool Table
--
qtechDhcpv6ServerPoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechDhcpv6ServerPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of configure pool maintained by this DHCPv6 Server."
    ::= { qtechDhcpv6ServerConfiguration 3 }

qtechDhcpv6ServerPoolEntry OBJECT-TYPE
    SYNTAX      QtechDhcpv6ServerPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry (conceptual row) representing an pool maintained by
        this DHCPv6 Server."
    INDEX     { qtechDhcpv6ServerIPPoolName}
    ::= { qtechDhcpv6ServerPoolTable 1 }
    
QtechDhcpv6ServerPoolEntry ::= SEQUENCE {
        qtechDhcpv6ServerIPPoolName             DisplayString,
        qtechDhcpv6ServerDHCPIPPoolUsage        Unsigned32  
    }

qtechDhcpv6ServerIPPoolName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The pool name associated with this entry in the bindings table."
    ::= { qtechDhcpv6ServerPoolEntry 1 }

qtechDhcpv6ServerDHCPIPPoolUsage OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This is the usage of the pool resource"
    ::= { qtechDhcpv6ServerPoolEntry 2 }

--
-- Conformance
--
qtechDhcpv6MIBConformance   OBJECT-IDENTITY 
    STATUS      current
    DESCRIPTION
        "DHCPv6 server conformance objects are all defined in this
        branch."
    ::= { qtechDhcpv6MIB 2 }
    
qtechDhcpv6MIBCompliances   OBJECT IDENTIFIER ::= { qtechDhcpv6MIBConformance 1 }
qtechDhcpv6MIBGroups        OBJECT IDENTIFIER ::= { qtechDhcpv6MIBConformance 2 }

--
-- Compliance groups
--
qtechDhcpv6ServerCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "This group describes the requirements for conformance to the
        DHCPv6 Server MIB."
    MODULE  -- this module
    MANDATORY-GROUPS {
        qtechDhcpv6ServerCountersObjects,
        qtechDhcpv6ServerConfigurationObjects
    }
    ::= { qtechDhcpv6MIBCompliances 1 } 

--
-- Object groups
--
qtechDhcpv6ServerCountersObjects  OBJECT-GROUP
    OBJECTS {
        qtechDhcpv6ServerHCountSolicits,
        qtechDhcpv6ServerHCountRenews,
        qtechDhcpv6ServerHCountDeclines,
        qtechDhcpv6ServerHCountReleases,
        qtechDhcpv6ServerHCountInforms,
        qtechDhcpv6ServerHCountConfirms,
        qtechDhcpv6ServerHCountRebinds,
        qtechDhcpv6ServerHCountAdvertises,
        qtechDhcpv6ServerHCountSuccReplies,
        qtechDhcpv6ServerHCountFailReplies,
        qtechDhcpv6ServerHCountInPkts,
        qtechDhcpv6ServerHCountOutPkts,
        qtechDhcpv6ServerHCountDroppedUnknown,
        qtechDhcpv6ServerHCountDroppedError,
        qtechDhcpv6ServerHCountRelayforward,
        qtechDhcpv6ServerHCountRelayreply,
        qtechDhcpv6ServerHCountReqtimes,
        qtechDhcpv6ServerHCountReqSuctimes
    }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { qtechDhcpv6MIBGroups 1 }

qtechDhcpv6ServerConfigurationObjects  OBJECT-GROUP
    OBJECTS {
        qtechDhcpv6ServerNumBindings,
        qtechDhcpv6ServerBindingsPoolName,
        qtechDhcpv6ServerBindingsClientDuid,
        qtechDhcpv6ServerBindingsIaType,
        qtechDhcpv6ServerBindingsIaId,
        qtechDhcpv6ServerBindingsAddress,
        qtechDhcpv6ServerBindingsPrefix,
        qtechDhcpv6ServerBindingsPrefixLength,
        qtechDhcpv6ServerBindingsDuration,
        qtechDhcpv6ServerBindingsIfIndex }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { qtechDhcpv6MIBGroups 2 }

qtechDhcpv6ServerPoolTableObjects  OBJECT-GROUP
    OBJECTS {
        qtechDhcpv6ServerIPPoolName,
        qtechDhcpv6ServerDHCPIPPoolUsage
    }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { qtechDhcpv6MIBGroups 3 }

END
