#
# USAGI - Linux IPv6 Development Project
# 
# $USAGI: README.USAGI,v 1.17 2001/12/24 13:40:42 mk Exp $
#

Overview:
	   Currently we have an IPv6 implementation in Linux kernel
	source tree. Only enabling "Internet Protocol Version 6"
	option in the Networking section, we can enjoy IPv6 life.
	   However, once you begin to use IPv6 on Linux box, you will
	soon be aware that the implementation have some problems...
	Because an existing Linux implemenataion is too old and not
        so well-tested, it has many bugs and unimplemented functions.
	   Then we decide to start USAGI Project(UniverSAl playGround
	for Ipv6 Project). The project aims to improve IPv6 environments
	on Linux and deploy the IPv6 Internet in the world.
	   We would hack kernel code, libraries and applications
	aggressively, then provide them freely for Linux and IPv6
	communities. In the future we would contribute our codes to the
	main trunks of kernel, glibc and applications.
	   Let's try out USAGI IPv6 environment with us !! Thanks.

Project Goals:
	We try to improve
		- IPv6 stack in the Linux Kernel,
		- IPv6 APIs in the glibc library and
		- IPv6 capable applications.

	We have already done
		- Anycast support,
		- Implementing IPsec (transport mode),
		- Implementing ICMPv6 NI Queries,
		- Privacy Extensions (RFC 3041),
		- Improving IPv6 SNMP,
		- Improving NDP(NeighbourDiscoveryProtocol),
		- Improving MLD(MulticastListenerDiscovery) Protocol,
		- Catching up and implementing RFC2292 APIs,
		- Catching up and implementing RFC2553 APIs,
		- Catching up and implementing RFC2292bis APIs
		- Improving some IPv6 applications and
		- Fixing many bugs.

	Current hacking items of kernel and glibc are
		- Catching up RFC2553bis APIs,
		- Improving NDP(NeighbourDiscoveryProtocol) further,
		- Improving extension header functions,
		- Implementing IPv6 multicast routing,
		- Implementing IPsec (tunnel mode),
		- Implementing IPcomp for IPsec,
		- Implementing / Improving Mobile IPv6
		- Implementing new DNS features (EDNS0, DNSsec),
		- Improving anycast ,
		- Designing and implementing new tunnel device,
		- Designing and implementing RSVP and diffserv,
		- Improving policy routing and
		- Fixing bugs.

	At last, we would contribute and merge our code into the main trunks of
	Linux kernel, glibc and applications. 

Base Version:
	kernel		linux-2.4.17 and linux-2.2.20
	glibc		glibc-2.1.3 and glibc-2.2.4
	application	netkit-combo-0.17 and iputils-ss00110

Advanced Features of This Snapshot:
	- ICMPv6 Node Information Queries
	- Privacy Extensions (RFC 3041) support
	- Better source address selection
	- khttpd / IPv6
	- Per-device statistics for SNMP
	- Ipv4/ipv6 socket binding on the same port
	- Dropping IPv6 packets with IPv4-mapped destination address
	- Enabling default route when ipv6 forwarding is enabled
	- Improving SO_REUSEADDR behavior
	- IPV6_V6ONLY socket option support
	- IPV6_RECVTCLASS and IPV6_TCLASS socket options
	For further details, read the CHANGELOG.USAGI in each directories.

Installing USAGI:
	At first, you should try to get an entire USAGI tarball or proper USAGI
	tarball	for your environment.
		usagi-2001XXXX.tar.bz2		all packages
		usagi-2001XXXX-linux22.tar.bz2	packages for linux-2.2.X system
		usagi-2001XXXX-linux24.tar.bz2	packages for linux-2.4.X system
	After downloading, you should extract and build USAGI packages. 
	For furtiher instructions, please read INSTALL.USAGI under doc 
	directory.

Binary Packages:
	We make binary packages for some distributions. You can get the 
	packages from our ftp site or mirror sites. It is easy and convenient 
	to installing binary packages, but the packages are not always 
	up-to-date USAGI package. If you want to use the latest features of 
	USAGI, you might rebuild your system with USAGI source patches.

Web:
	http://www.linux-ipv6.org

FTP:
	ftp://ftp.linux-ipv6.org/pub/usagi/

CVS:
	* INITIAL ANONCVS ACCESS:
	cvs -d :pserver:anoncvs@anoncvs.linux-ipv6.org:/cvsroot/usagi login
	(login as anoncvs; password is 'anoncvs' without quote.)

	* CHECKOUT:
	- Entire tree (for developpers)
	cvs -d :pserver:anoncvs@anoncvs.linux-ipv6.org:/cvsroot/usagi checkout usagi

	- Partial tree
	cvs -d :pserver:anoncvs@anoncvs.linux-ipv6.org:/cvsroot/usagi checkout usagi/Makefile
	cd usagi
	make TARGET=linux2{2,4} checkout

	* UPDATE:
	cd SOMEWHERE/usagi
	make update

	NOTE : Further CVS instructions, see doc/CVS.USAGI

CVSWEB:
	You can access cvs repository via HTTP.
	http://www.linux-ipv6.org/cvsweb/

ML:
	http://www.linux-ipv6.org/ml/

