2.2. History of IPv6 in Linux

To-do: better time-line, more content...

2.2.1. Beginning

The first IPv6 related network code was added to the Linux kernel 2.1.8 in November 1996 by Pedro Roque. It was based on the BSD API:

diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h
¬ linux/include/linux/in6.h 
--- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970 
+++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996 
@@ -0,0 +1,99 @@ 
+/* 
+ * Types and definitions for AF_INET6 
+ * Linux INET6 implementation 
+ * + * Authors: 
+ * Pedro Roque <******> 
+ * 
+ * Source: 
+ * IPv6 Program Interfaces for BSD Systems 
+ * <draft-ietf-ipngwg-bsd-api-05.txt>
   

The shown lines were copied from patch-2.1.8 (e-mail address was blanked on copy&paste).

2.2.2. In between

Because of lack of manpower, the IPv6 implementation in the kernel couldn't follow the discussed drafts or newly released RFCs. In October 2000, a project was started in Japan, called USAGI, whose aim was to implement all missing or outdated IPv6 support in Linux, tracking the current IPv6 implementation in FreeBSD made by the KAME project. From time to time they created snapshot against current vanilla Linux kernel sources.

2.2.3. Current

Unfortunately, the USAGI patch is so big, that current Linux networking maintainers aren't able to include it in the production source of the Linux kernel 2.4.x series. Therefore the 2.4.x series misses some (many) extensions and also didn't fulfill all current drafts and RFCs. This can cause some interoperability problems with other operating systems.

2.2.4. Future

USAGI now makes use of the new Linux kernel development series 2.5.x to put all their current extensions into this development release. Hopefully the 2.6.x kernel series will contain a true and up-to-date IPv6 implementation.