-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-DHCPV6-MIB.mib
-- Revision 1.12  2015/05/27 

ZYXEL-DHCPV6-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	RowStatus
		FROM SNMPv2-TC			-- RFC2579
		
	DisplayString                                          
	  	FROM SNMPv2-TC
	  	
	EnabledStatus
		FROM  P-BRIDGE-MIB

	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851

	Unsigned32
		FROM SNMPv2-SMI

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelDhcpv6 MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for DHCPv6"
		::= { esMgmt 21 }

	zyxelDhcpv6Setup     	OBJECT IDENTIFIER ::= { zyxelDhcpv6 1 }		
	zyxelDhcpv6Status     	OBJECT IDENTIFIER ::= { zyxelDhcpv6 2 }	

--	1. zyxelDhcpv6Setup
	zyDhcpv6MaxNumberOfRelays OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-only
        STATUS  	current
        DESCRIPTION
		"The maximum numbers of DHCPv6 relay entry that can be created."
		::= { zyxelDhcpv6Setup 1 }

--		zyxelDhcpv6RelayTable
		zyxelDhcpv6RelayTable	OBJECT-TYPE
		SYNTAX 	SEQUENCE OF ZyxelDhcpv6RelayEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The table contains DHCPv6 relay configuration."
		::= { zyxelDhcpv6Setup 2 }
		
		zyxelDhcpv6RelayEntry	OBJECT-TYPE
		SYNTAX	ZyxelDhcpv6RelayEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION		
		"An entry contains DHCPv6 relay configuration. "
		INDEX	{ zyDhcpv6RelayVid }
		::= { zyxelDhcpv6RelayTable 1}
		
		ZyxelDhcpv6RelayEntry ::=
			SEQUENCE {
				zyDhcpv6RelayVid 					INTEGER,
				zyDhcpv6RelayHelperIpAddress 		InetAddress,
				zyDhcpv6RelayHelperIpAddressType	InetAddressType,
				zyDhcpv6RelayOptionIfIdState		EnabledStatus,
				zyDhcpv6RelayOptionRemoteIdData		DisplayString,
				zyDhcpv6RelayRowStatus				RowStatus
			}
		
		zyDhcpv6RelayVid	OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"Enter the VLAN ID to which these DHCPv6 relay settings apply."
		::= { zyxelDhcpv6RelayEntry 1 }
		
		zyDhcpv6RelayHelperIpAddress	OBJECT-TYPE
		SYNTAX	InetAddress
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enter the IPv4/IPv6 address of a DHCPv6 server."
		::= { zyxelDhcpv6RelayEntry 2}
		
		zyDhcpv6RelayHelperIpAddressType OBJECT-TYPE
		SYNTAX	InetAddressType
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enter the type of DHCPv6 relay helper address."
		::= { zyxelDhcpv6RelayEntry 3}
		
		zyDhcpv6RelayOptionIfIdState	OBJECT-TYPE
		SYNTAX	EnabledStatus
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enable/Disable the switch to add interface ID option in DHCPv6 requests from the clients 
		 in the specified VLAN before the switch forwards them to a DHCP server."
		::= { zyxelDhcpv6RelayEntry 4}
		
		zyDhcpv6RelayOptionRemoteIdData	OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Set the switch to add the remote-ID option in the DHCPv6 requests from the clients 
		 in the specified VLAN before the switch forwards them to a DHCP server. 
		 This also specifies a string (up to 64 printable ASCII characters) to be carried in 
		 the remote-ID option. If this field is empty means this option is disabled."
		::= { zyxelDhcpv6RelayEntry 5}
		
		zyDhcpv6RelayRowStatus	OBJECT-TYPE
		SYNTAX	RowStatus
		MAX-ACCESS	read-create
		STATUS	current
		DESCRIPTION
		"This object allows DHCPv6 relay entries to be created and deleted."
		::= { zyxelDhcpv6RelayEntry 6}  
  
-- 		zyxelDhcpv6ClientTable

		zyxelDhcpv6ClientTable	OBJECT-TYPE
		SYNTAX 	SEQUENCE OF ZyxelDhcpv6ClientEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The table contains DHCPv6 client configuration. "
		::= { zyxelDhcpv6Setup 3 }
		
		zyxelDhcpv6ClientEntry	OBJECT-TYPE
		SYNTAX	ZyxelDhcpv6ClientEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION		
		"An entry contains DHCPv6 client configuration."
		INDEX	{ zyDhcpv6ClientIfIndex }
		::= { zyxelDhcpv6ClientTable 1}
		
		ZyxelDhcpv6ClientEntry ::=
			SEQUENCE {
				zyDhcpv6ClientIfIndex 					INTEGER,
				zyDhcpv6ClientIaType	 				INTEGER,
				zyDhcpv6ClientIaTypeRapidCommit		 	INTEGER,
				zyDhcpv6ClientOptionDnsState			EnabledStatus,
				zyDhcpv6ClientOptionDomainListState		EnabledStatus,
				zyDhcpv6ClientInfoRefreshMinimum		Unsigned32
			}				
			
		zyDhcpv6ClientIfIndex	OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"DHCPv6 client interface index."
		::= { zyxelDhcpv6ClientEntry 1 }
		
		zyDhcpv6ClientIaType	OBJECT-TYPE
		SYNTAX	INTEGER{
        	none(0),
			iana(1)
        	}
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enable/Disable the switch to get a non-temporary IP address from the DHCP server."
		::= { zyxelDhcpv6ClientEntry 2 }
		
		zyDhcpv6ClientIaTypeRapidCommit		OBJECT-TYPE
		SYNTAX	INTEGER{
        	none(0),
			rapidCommit(1)
        	}
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enable/Disable the switch to send its DHCPv6 solicit message with a rapid commit option 
		 to obtain information from the DHCP server by a rapid two-message exchange. 
		 The switch discards any reply message that does not include a rapid commit option. 
		 The DHCP server should also support rapid commit option to have it work well."
		::= { zyxelDhcpv6ClientEntry 3 }
		
		zyDhcpv6ClientOptionDnsState	OBJECT-TYPE
		SYNTAX	EnabledStatus
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enable/Disable DHCPv6 client DNS option is means add DNS option to DHCPv6 client requests."
		::= { zyxelDhcpv6ClientEntry 4 }
		
		zyDhcpv6ClientOptionDomainListState	OBJECT-TYPE
		SYNTAX	EnabledStatus
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enable/Disable DHCPv6 client Domain-List option is means add domain list information to DHCPv6 client requests."
		::= { zyxelDhcpv6ClientEntry 5 }
		
		zyDhcpv6ClientInfoRefreshMinimum	OBJECT-TYPE
		SYNTAX	Unsigned32
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Sets the time interval (in seconds) at which the switch exchanges other configuration information with a DHCPv6 server again."
		::= { zyxelDhcpv6ClientEntry 6 }
		
--  zyDhcpv6ServerMaxInfoNumber
    	zyDhcpv6ServerMaxInfoNumber OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-only
        STATUS  	current
        DESCRIPTION
		"The maximum numbers of DHCPv6 server entry that can be created."
		::= { zyxelDhcpv6Setup 4 }
		
-- 	zyxelDhcpv6ServerTable
		zyxelDhcpv6ServerTable	OBJECT-TYPE
		SYNTAX 	SEQUENCE OF ZyxelDhcpv6ServerInfoEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The table contains DHCPv6 server configuration. "
		::= { zyxelDhcpv6Setup 5 }
		
		zyxelDhcpv6ServerInfoEntry	OBJECT-TYPE
		SYNTAX	ZyxelDhcpv6ServerInfoEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION		
		"An entry contains DHCPv6 server configuration."
		INDEX	{ zyDhcpv6ServerInfoIfIndex }
		::= { zyxelDhcpv6ServerTable 1}
		
		ZyxelDhcpv6ServerInfoEntry ::=
			SEQUENCE {
				zyDhcpv6ServerInfoIfIndex	 			INTEGER,
				zyDhcpv6ServerInfoDNSServerIpAddress	InetAddress,
				zyDhcpv6ServerInfoRefreshTime			Unsigned32,
				zyDhcpv6ServerInfoRowStatus 			RowStatus
			}		
		
		zyDhcpv6ServerInfoIfIndex	OBJECT-TYPE
		SYNTAX	INTEGER (1..4096)
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"DHCPv6 server interface index."
		::= { zyxelDhcpv6ServerInfoEntry 1}
				
		zyDhcpv6ServerInfoDNSServerIpAddress	OBJECT-TYPE
		SYNTAX	InetAddress
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enter the IPv6 address of a DNS server."
		::= { zyxelDhcpv6ServerInfoEntry 2}
		
		zyDhcpv6ServerInfoRefreshTime	OBJECT-TYPE
		SYNTAX	Unsigned32 (0|600..4294967295)
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Sets the time interval of DHCPv6 server refresh time option."
		::= { zyxelDhcpv6ServerInfoEntry 3}
		
		zyDhcpv6ServerInfoRowStatus	OBJECT-TYPE
		SYNTAX	RowStatus
		MAX-ACCESS	read-create
		STATUS	current
		DESCRIPTION
		"This object allows DHCPv6 server entries to be created and deleted."
		::= { zyxelDhcpv6ServerInfoEntry 100}  

--  zyDhcpv6ServerMaxPDNumber
    	zyDhcpv6ServerMaxPDNumber OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-only
        STATUS  	current
        DESCRIPTION
		"The maximum numbers of DHCPv6 Server Prefix Delegation entry that can be created."
		::= { zyxelDhcpv6Setup 6 }

--	zyxelDhcpv6PDTable
		zyxelDhcpv6PDTable	OBJECT-TYPE
		SYNTAX 	SEQUENCE OF ZyxelDhcpv6ServerPDEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The table contains DHCPv6 server prefix delegation configuration. "
		::= { zyxelDhcpv6Setup 7 }
		
		zyxelDhcpv6ServerPDEntry	OBJECT-TYPE
		SYNTAX	ZyxelDhcpv6ServerPDEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION		
		"An entry contains DHCPv6 server configuration."
		INDEX	{ zyDhcpv6ServerPDClientDUID }
		::= { zyxelDhcpv6PDTable 1}
		
		ZyxelDhcpv6ServerPDEntry ::=
			SEQUENCE {
				zyDhcpv6ServerPDClientDUID		DisplayString,
				zyDhcpv6ServerPDClientName		DisplayString,
				zyDhcpv6ServerPDIfIndex			INTEGER,
				zyDhcpv6ServerPDPrefix			InetAddress,
				zyDhcpv6ServerPDPrefixLength	INTEGER,
				zyDhcpv6ServerPDRowStatus		RowStatus
			}		

		zyDhcpv6ServerPDClientDUID	OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The client DUID of the DHCPv6 Server Prefix Delegation entries."
		::= { zyxelDhcpv6ServerPDEntry 1}  
		
		zyDhcpv6ServerPDClientName	OBJECT-TYPE
		SYNTAX	DisplayString
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"The client name of the DHCPv6 Server Prefix Delegation entries."
		::= { zyxelDhcpv6ServerPDEntry 2}  
			
		zyDhcpv6ServerPDIfIndex	OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"DHCPv6 Server interface index."
		::= { zyxelDhcpv6ServerPDEntry 3}  
		
		zyDhcpv6ServerPDPrefix	OBJECT-TYPE
		SYNTAX	InetAddress
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enter the IPv6 prefix of a DHCPv6 server Prefix Delegation entry."
		::= { zyxelDhcpv6ServerPDEntry 4}  
		
		zyDhcpv6ServerPDPrefixLength	OBJECT-TYPE
		SYNTAX	INTEGER (1..128)
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Enter the IPv6 prefix Length of a DHCPv6 server Prefix Delegation entry."
		::= { zyxelDhcpv6ServerPDEntry 5}  
		    
		zyDhcpv6ServerPDRowStatus	OBJECT-TYPE
		SYNTAX	RowStatus
		MAX-ACCESS	read-create
		STATUS	current
		DESCRIPTION
		"This object allows DHCPv6 Server Prefix Delegation entries to be created and deleted."
		::= { zyxelDhcpv6ServerPDEntry 100} 
		
--	2. zyxelDhcpv6Status

--	zyxelDhcpv6ClientInfoTable

		zyxelDhcpv6ClientInfoTable	OBJECT-TYPE
		SYNTAX 	SEQUENCE OF ZyxelDhcpv6ClientInfoEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION
		"The table contains DHCPv6 client information."
		::= { zyxelDhcpv6Status 1 }
		
		zyxelDhcpv6ClientInfoEntry	OBJECT-TYPE
		SYNTAX	ZyxelDhcpv6ClientInfoEntry
		MAX-ACCESS	not-accessible
		STATUS	current
		DESCRIPTION		
		"An entry contains DHCPv6 client information."
		INDEX	{ zyDhcpv6ClientIfIndex }
		::= { zyxelDhcpv6ClientInfoTable 1}
		
		ZyxelDhcpv6ClientInfoEntry ::=
			SEQUENCE {
				zyDhcpv6ClientInfoRestart 		EnabledStatus
			}
				
		zyDhcpv6ClientInfoRestart	OBJECT-TYPE
		SYNTAX	EnabledStatus
		MAX-ACCESS	read-write
		STATUS	current
		DESCRIPTION
		"Set the switch to send a release message for the assigned IPv6 address to 
		 the DHCP server and start DHCP messages exchange again."
		::= { zyxelDhcpv6ClientInfoEntry 1 }
END

