/* Author: Shirley Ma, xma@us.ibm.com */

	DHCPv6 is a stateful address autoconfiguration protocol for IPv6, a 
counterpart to IPv6 stateless address autoconfiguration protocol. It can either 
be used independently or it can coexist with its counterpart protocol. This 
protocol uses client/server mode of operation but can also provide support 
through a Relay Agent. It is currently being defined by IETF DHC WG and the 
specification is still in the draft form. 

	This protocol is intended to support on IPv6 based networks only. For 
specific details of the protocol, refer to the draft specification available at IETF. 

	The ultimate goal of this project is to provide a protocol conformant 
implementation for Linux. The current implementation will slowly evolve to support 
per the current draft and ultimately to the proposed standard when it comes out of IETF. 

Current Implementation status: 

	This implementation supports IPv6 address assignment to the clients. 
It also has the support for prefix delegation, DNS server updates but those 
features are not validated yet. 

	The Linux implementation is based upon KAME's DHCPv6 implementation 
on BSD which lacked the support for dynamic address assignment feature, now 
supported in Linux. 

A. Validated Features: 

      IPv6 address Assignment & Prefix Delegation

      1. Server configuration file support for both static and dynamic assignments.
      2. Server lease file support for saving all the client's IPv6 address binding 
	 info. 
      3. Client IPv6 address assignment and temporary IPv6 address assignment support 
	 on the same link. 
      4. Supported Options: Rapid commit, Server Preference, Information Request, Unicast,
	 Elapsed Time, ClientID, ServerID , IA_NA , IA_TA , IA_ADDR , IA_PD, Status support. 
      5. Solicit/Request/Advertise/Reply/Infomation-request messages/Renew/Rebind
      	 /Release/Confirm/ messages support for IPv6 address binding. 
      8. Client configuration file support for IPv6 address assignment. 
      9. Client lease file support for saving individual client ipv6address binding info. 
      10. DNS server update support according to draft-ietf-dhc-dhcpv6-opt-dnsconfig-03.txt.
      11. Prefix delegation support according to 
	  draft-ietf-dhc-dhcpv6-opt-prefix-delegation-03.txt
      12. radvd.conf update and radvd reload for prefix delegation	

B. Support available but not validated yet 

      1. Request option support 

C. ToDo List: 

      1. Authentication/User class/Vendor class/Interface-ID option 
         support 
      2. Relay agent support. 
      3. Reconfig/Relay messages support. 

D. INSTALLATTION:

	1. tar -xvzf dhcp6.tar
	2. ./configure
	3. make
	4. insmod ipv6 (if ipv6 is not compiled in the kernel)
	5. mkdir /var/db/dhcpv6 (create dhcpv6 database directory)
	6. cp dhcp6c.conf /etc/dhcp6c.conf (copy client configuration file)
	7. cp dhcp6s.conf /etc/dhcp6s.conf (copy server configuration file)
	8. ./dhcp6s -dDf [eth0 eth1 ...] (start server, turn on debug)
	9. ./dhcp6c -dDf eth0 (start client, turn on debug)
	
