-- *****************************************************************
-- FS-DHCPv6-MIB.mib:  FS DHCPv6 MIB file
--
-- March 2009, Chenfg
--
-- Copyright (c) 2009 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************

FS-DHCPv6-MIB  DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    OBJECT-IDENTITY,
    OBJECT-TYPE, 
    Counter32,
    Unsigned32,	
    Counter64, 
    TimeTicks,
    Integer32
        FROM SNMPv2-SMI
    TimeInterval, 
    RowStatus,
    DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, 
    OBJECT-GROUP
        FROM SNMPv2-CONF
    Ipv6Address, 
    Ipv6AddressPrefix
        FROM IPV6-TC
    InetAddressIPv6
        FROM INET-ADDRESS-MIB
    InterfaceIndex
        FROM IF-MIB
    fsMgmt
        FROM FS-SMI;

fsDhcpv6MIB  MODULE-IDENTITY
    LAST-UPDATED "200903160000Z"
    ORGANIZATION "FS.COM Inc.."
    CONTACT-INFO
        				" 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
    DESCRIPTION
        "This module defines fs DHCPv6 mibs."
    -- Revision History
    REVISION    "200903160000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { fsMgmt 45 }


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fsDhcpv6ServerHCountDroppedUnknown 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."
    ::= { fsDhcpv6ServerCounters 14 }

fsDhcpv6ServerHCountDroppedError 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."
    ::= { fsDhcpv6ServerCounters 15 }
	
fsDhcpv6ServerHCountRelayforward OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Relay-forward packets received."
    ::= { fsDhcpv6ServerCounters 16 }
	
fsDhcpv6ServerHCountRelayreply OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Relay-reply packets sent."
    ::= { fsDhcpv6ServerCounters 17 }
    
fsDhcpv6ServerHCountReqtimes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Discover packets recv."
    ::= { fsDhcpv6ServerCounters 18 }
    
fsDhcpv6ServerHCountReqSuctimes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Ack packets send."
    ::= { fsDhcpv6ServerCounters 19 }

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

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

fsDhcpv6ServerBindingsEntry OBJECT-TYPE
    SYNTAX      FSDhcpv6ServerBindingsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry (conceptual row) representing an address binding maintained by
        this DHCPv6 Server."
    INDEX     { fsDhcpv6ServerBindingsPoolName,
                fsDhcpv6ServerBindingsClientDuid,
                fsDhcpv6ServerBindingsIaType,
                fsDhcpv6ServerBindingsIaId }
    ::= { fsDhcpv6ServerBindingsTable 1 }

FSDhcpv6ServerBindingsEntry ::= SEQUENCE {
    fsDhcpv6ServerBindingsPoolName      DisplayString,
    fsDhcpv6ServerBindingsClientDuid    OCTET STRING,
    fsDhcpv6ServerBindingsIaType        INTEGER,
    fsDhcpv6ServerBindingsIaId          Unsigned32,
    fsDhcpv6ServerBindingsAddress       Ipv6Address,
    fsDhcpv6ServerBindingsPrefix        Ipv6AddressPrefix,
    fsDhcpv6ServerBindingsPrefixLength  Integer32,
    fsDhcpv6ServerBindingsDuration      Unsigned32,
    fsDhcpv6ServerBindingsIfIndex       InterfaceIndex}

fsDhcpv6ServerBindingsPoolName 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."
    ::= { fsDhcpv6ServerBindingsEntry 1 }

fsDhcpv6ServerBindingsClientDuid 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."
    ::= { fsDhcpv6ServerBindingsEntry 2 }

fsDhcpv6ServerBindingsIaType 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."
    ::= { fsDhcpv6ServerBindingsEntry 3 }

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

fsDhcpv6ServerBindingsAddress 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."
    ::= { fsDhcpv6ServerBindingsEntry 5 }

fsDhcpv6ServerBindingsPrefix 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."
    ::= { fsDhcpv6ServerBindingsEntry 6 }

fsDhcpv6ServerBindingsPrefixLength 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."
    ::= { fsDhcpv6ServerBindingsEntry 7 }

fsDhcpv6ServerBindingsDuration 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."
    ::= { fsDhcpv6ServerBindingsEntry 8 }

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

--
-- DHCPv6 Server Pool Usage Table
--
fsDhcpv6ServerPoolUsageTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FSDhcpv6ServerPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of pool usage maintained by this DHCPv6 Server."
    ::= { fsDhcpv6ServerConfiguration 3 }

fsDhcpv6ServerPoolEntry OBJECT-TYPE
    SYNTAX      FSDhcpv6ServerPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry (conceptual row) representing an pool maintained by
        this DHCPv6 Server."
    INDEX     { fsIPv6PoolUsageIndex}
    ::= { fsDhcpv6ServerPoolUsageTable 1 }
    
FSDhcpv6ServerPoolEntry ::= SEQUENCE {
    fsIPv6PoolUsageIndex     Unsigned32,
    fsIPv6PoolUsageName      DisplayString,
    fsIPv6DHCPIPPoolUsage    Unsigned32,
    fsIPv6PoolUsageRawStatus RowStatus
    }

fsIPv6PoolUsageIndex  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The pool index in the usage table."
    ::= { fsDhcpv6ServerPoolEntry 1 }
fsIPv6PoolUsageName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The pool name associated with this entry in the bindings table."
    ::= { fsDhcpv6ServerPoolEntry 2 }

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

fsIPv6PoolUsageRawStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "entry status of this entry. and the means in this enviraments can
            reffer to the text-convention definition of the RowStatus."
    ::= { fsDhcpv6ServerPoolEntry 4 }
--
-- DHCPv6 Server Pool Configure Table
--
fsDhcpv6ServerPoolConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FSDhcpv6ServerPoolCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of configure pool maintained by this DHCPv6 Server."
    ::= { fsDhcpv6ServerConfiguration 4 }
fsDhcpv6ServerPoolCfgEntry OBJECT-TYPE
    SYNTAX      FSDhcpv6ServerPoolCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry (conceptual row) representing an pool maintained by
        this DHCPv6 Server."
    INDEX     { fsIPv6PoolCfgIndex}
    ::= { fsDhcpv6ServerPoolConfigTable 1 }
FSDhcpv6ServerPoolCfgEntry ::= SEQUENCE {
    fsIPv6PoolCfgIndex          Unsigned32,
    fsIPv6PoolName              DisplayString,
    fsIPv6PoolStartAddr         InetAddressIPv6,
    fsIPv6PoolStopAddr          InetAddressIPv6,
    fsIPv6NetPrefixLen          Unsigned32,
    fsPrimDNSServerIPv6Address  InetAddressIPv6,
    fsSeconDNSServerIPv6Address InetAddressIPv6,
    fsIPv6AddrLease             TimeTicks,
    fsIPv6RawStatus             RowStatus}
fsIPv6PoolCfgIndex  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The pool index associated with this entry in the bindings table."
    ::= { fsDhcpv6ServerPoolCfgEntry 1 }
fsIPv6PoolName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The pool name associated with this entry in the bindings table."
    ::= { fsDhcpv6ServerPoolCfgEntry 2 }
fsIPv6PoolStartAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the start address of the pool resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 3 }
fsIPv6PoolStopAddr OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the stop address of the pool resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 4 }
fsIPv6NetPrefixLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the length of the prefix address resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 5 }
fsPrimDNSServerIPv6Address OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the primary DNS address of the pool resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 6 }
fsSeconDNSServerIPv6Address OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the second DNS address of the pool resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 7 }
fsIPv6AddrLease OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the lease time of the pool resource"
    ::= { fsDhcpv6ServerPoolCfgEntry 8 }
fsIPv6RawStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "entry status of this entry. and the means in this enviraments can
        reffer to the text-convention definition of the RowStatus."
    ::= { fsDhcpv6ServerPoolCfgEntry 9 }
--
-- Conformance
--
fsDhcpv6MIBConformance   OBJECT-IDENTITY 
    STATUS      current
    DESCRIPTION
        "DHCPv6 server conformance objects are all defined in this
        branch."
    ::= { fsDhcpv6MIB 2 }
    
fsDhcpv6MIBCompliances   OBJECT IDENTIFIER ::= { fsDhcpv6MIBConformance 1 }
fsDhcpv6MIBGroups        OBJECT IDENTIFIER ::= { fsDhcpv6MIBConformance 2 }

--
-- Compliance groups
--
fsDhcpv6ServerCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "This group describes the requirements for conformance to the
        DHCPv6 Server MIB."
    MODULE  -- this module
    MANDATORY-GROUPS {
        fsDhcpv6ServerCountersObjects,
        fsDhcpv6ServerConfigurationObjects
    }
    ::= { fsDhcpv6MIBCompliances 1 } 

--
-- Object groups
--
fsDhcpv6ServerCountersObjects  OBJECT-GROUP
    OBJECTS {
        fsDhcpv6ServerHCountSolicits,
        fsDhcpv6ServerHCountRenews,
        fsDhcpv6ServerHCountDeclines,
        fsDhcpv6ServerHCountReleases,
        fsDhcpv6ServerHCountInforms,
        fsDhcpv6ServerHCountConfirms,
        fsDhcpv6ServerHCountRebinds,
        fsDhcpv6ServerHCountAdvertises,
        fsDhcpv6ServerHCountSuccReplies,
        fsDhcpv6ServerHCountFailReplies,
        fsDhcpv6ServerHCountInPkts,
        fsDhcpv6ServerHCountOutPkts,
        fsDhcpv6ServerHCountDroppedUnknown,
        fsDhcpv6ServerHCountDroppedError,
        fsDhcpv6ServerHCountRelayforward,
        fsDhcpv6ServerHCountRelayreply,
        fsDhcpv6ServerHCountReqtimes,
        fsDhcpv6ServerHCountReqSuctimes
    }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { fsDhcpv6MIBGroups 1 }

fsDhcpv6ServerConfigurationObjects  OBJECT-GROUP
    OBJECTS {
        fsDhcpv6ServerNumBindings,
        fsDhcpv6ServerBindingsPoolName,
        fsDhcpv6ServerBindingsClientDuid,
        fsDhcpv6ServerBindingsIaType,
        fsDhcpv6ServerBindingsIaId,
        fsDhcpv6ServerBindingsAddress,
        fsDhcpv6ServerBindingsPrefix,
        fsDhcpv6ServerBindingsPrefixLength,
        fsDhcpv6ServerBindingsDuration,
        fsDhcpv6ServerBindingsIfIndex }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { fsDhcpv6MIBGroups 2 }

fsDhcpv6ServerPoolUsageTableObjects  OBJECT-GROUP
    OBJECTS {
        fsIPv6PoolUsageIndex,
        fsIPv6PoolName,
        fsIPv6DHCPIPPoolUsage,
        fsIPv6PoolUsageRawStatus
    }
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { fsDhcpv6MIBGroups 3 }

fsDhcpv6ServerPoolConfigGroup  OBJECT-GROUP
    OBJECTS {
    fsIPv6PoolCfgIndex,
    fsIPv6PoolName,
    fsIPv6PoolStartAddr,
    fsIPv6PoolStopAddr ,
    fsIPv6NetPrefixLen ,
    fsPrimDNSServerIPv6Address ,
    fsSeconDNSServerIPv6Address,
    fsIPv6AddrLease,
    fsIPv6RawStatus}
    STATUS      current
    DESCRIPTION
        "The basic collection of objects providing management of DHCPv6
        Server functionality."
    ::= { fsDhcpv6MIBGroups 4 }    
END
