Start | Previous | Next IPv6 Overview | Kernel | C-Library | Configuration & Debugging | Additions | Applications | Distributions

IPv6 & Linux - Current Status - Kernel and mandatory features

Version: 1.81 from 2005-10-14


Copyright 1999-2005 by Peter Bieringer <pb@bieringer.de>, original site of publishing: http://www.bieringer.de/linux/IPv6/
Unlimited non-commercial distribution of this document in its entirety is encouraged - please contact the author prior to commercial publication.
Suggestions, comments and improvements are welcome! Please, help me fill it in...

Contents


Primary IPv6 features in the kernel


Currently work/update in progress...
Feature RFC/
Draft
Status
Vanilla
2.4
(2.4.6)
Status
USAGI
2.4
Extension
Status
Vanilla
2.6
Status
USAGI
2.6 Extension
Who is working on it Link to sources / Additional comments
Raw socket
working 
working



TCP
working
working



UDP
working 
working



SCTP
RFC 2960
working
(reported 2004-07-29)

working
(reported 2004-07-29)

lksctp project
Stream Transmission Control Protocol
Linux Kernel SCTP (lksctp) Project
ICMP
ICMPv6 RFC 2463
working

working



ICMP node information queries draft-ietf-ipngwg-icmp-name-lookups missing working

USAGI
Address configuration
Stateless address autoconfiguration
working




Privacy extensions for stateless address autoconfiguration RFC 3041
draft-ietf-ipngwg-temp-addresses-v2
missing available


per interface switchable
Node discovery
Duplicate address detection
working
working


Neigbour discovery 
bugfixed


USAGI some (older) versions do not re-join all-node multicast address on network devices after down and up again
Neigbour discovery for inverse discovery  RFC 3122 missing




Router discovery
bugfixed


USAGI some (older) versions do not re-join all-node multicast address on network devices after down and up again
Tunneling
Static tunneling (IPv6 encapsulated in IPv4)
working
working


Automatic tunneling of IPv4-comaptible IPv6 addresses
working
working


6over4
missing



Stig Venås do not have enough time for this
6to4
working 
working


6to4 over UDP draft-ietf-ngtrans-shipworm missing




IPv{4,6} over IPv6

in progress

USAGI
ISATAP draft-ietf-ngtrans-isatap in progress? available


Fred Templin, Nathan Lutchansky
Teredo described working described working Use miredo
http://www.simphalempin.com/dev/miredo/
ToS bit handling RFC 2893 3.5 probably




ToS bit handling at Differentiated Services and Tunnels RFC 2983





Bridging
Multilink subnets draft-thaler-ipngwg-multilink-subnets missing




Routing
Unicast routing
working 




Multicast routing

on TODO

USAGI
Anycast routing
working



similar to unicast routing
Selections
Source address selection draft-ietf-ipngwg-default-addr-select in progress improved,
draft implementation in progress


Stig Venås http://www.venaas.priv.no/ipv6/srcaddrsel.html
kernel patch of the USAGI project
more info below
Default router selection 
working, but rather old




Security
IPsec Transport Mode AH

done probably USAGI
IPsec Transport Mode ESP

in progress working USAGI
IPsec Tunnel Mode AH

in progress in progress USAGI
IPsec Tunnel Mode ESP

in progress working USAGI
Firewalling
working
(stateless paket filtering)

working
(stateless paket filtering)
stateful packet filtering
USAGI & Netfilter team
Stateful packet filtering scheduled for vanilla kernel 2.6.15 (introducing protocol independend connection tracking support)
Mobility
Mobility support

in progress, only importing from/syncing with MIPL

MIPL
Options
hop-by-hop / jumbo payload
implemented




hop-by-hop / router alert
implemented




routing header
implemented




destination options

in progress, imported from MIPL

USAGI
QoS
Flow label support in kernel
still unknown




Flow label specific routing
still unknown




Flow label specific routing
still unknown


Wang Hui
Flow label support on application level
working?




Interface support / layer 2 transport protocols
Ethernet
working





Token-Ring




Mike Phillips
PPP RFC 2472
working




with IPv6 enabled pppd
working in 2.4 confirmed by me
ATM-PVC

in progress




ISDN CiscoHDLC





cannot test because of lack of a Cisco router
ISDN X.25





cannot test
ISDN HDLC using encapsulation ip
working




confirmed by me
ISDN HDLC using encapsulation syncppp and ipppd
not supported




confirmed by me, kernel doesn't support IPv6 in isdn_ppp.c:
isdn_ppp: skipped unsupported protocol: 0xdd86.
ipppd: i2.2 patch level 12
ISDN HDLC using encapsulation rawip
never capable




design issue, no type field available
better called now rawipv4
SLIP and PLIP RFC 1055
never capable




design issue, no type field available
better called now SLIPv4
MPLS





URL: http://sf.net/projects/mpls-linux/
Still unsorted
Renumbering link net
working 



with radvd
Multicast client
working




Anycast listening
missing




Path MTU discovery
bugfix in 2.4.6




sin6_socpe_id like in RFC 2553
working

SEKIYA Yuji
USAGI project
http://ftp2.v6.linux.or.jp/pub/Linux/kernel/patches/
ftp://ftp.nemoto.ecei.tohoku.ac.jp/pub/Net/IPv6/Patches/
kernel patch of the USAGI project
discussions..., update of RFC is in progress
Divert sockets




Ilia Baldinei http://www.anr.mcnc.org/~divert
specify next hop address RFC 2292 missing




Traffic counters
missing



IPv6 data provided for SNMP

IPv6 packet filtering in kernel 2.4+

Feature kernel 2.4.5 + iptables-1.2.2 status Status 2001-12-30 (got info, no self-tests) Oct 2005 (2.6.x) Additional comment
Target ACCEPT, DROP built-in, working built-in, working built-in, working
Target LOG patch-o-matic, working patch-o-matic, working built-in, working
Target REJECT patch-o-matic, not working, missing libary for ip6tables (perhaps others, too) patch-o-matic, working patch-o-matic, working
Match extension icmpv6 not working built-in, working Patch is in developer archive
Connection tracking not implemented yet not implemented yet >= 2.6.15
ip6tables manual page missing covering basics available
ip6tables documentation
not really available
EUI64 adress checker for local networks
patch-o-matic, currently in test
extension header (existance) match
patch-o-matic, early release
match limit
match mac
match multiport
match owner

patch-o-matic avalable
...



User space daemons

Transport protocol user space daemon RFC Who is working on it Link to sources Additional
comment
pppd 2472 Maintainers URL: http://freshmeat.net/projects/pppd/
MS-CBCP support: http://sourceforge.net/projects/pppcbcp/
native support
Status (see here for more details):
Assign link-local addresses on each side: ok
IPv6 transport: ok
Server assign prefixes to client:  (not defined in IPv6CP) so only via DHCPv6 or Router Advertisements
ipppd
isdn4linux team?
cannot tested because of the missing IPv6 support in isdn_ppp.c
Information from an ISDN developer: support for IPv6 of ISDN/syncPPP is planned for kernel-2.5 series (redesign of ISDN [full CAPI]) using the PPP layer of kernel afterwards, perhaps a backport to 2.4 will be done.


Security

IPsec implementation
(User space)
RFC Status Who is working on it Link to sources Additional
comment
pluto

working
OpenS/WAN http://www.openswan.org
Former known as FreeS/WAN
racoon
working USAGI and Netdev team http://ipsec-tools.sourceforge.net/


Mobility 

Mobility RFC Status Who is working on it Link to sources Additional comment
Lancaster stack
? Joe Finney http://www.cs-ipv6.lancs.ac.uk/MobileIP obsolete?
NUS stack
? Guilhem Tardy
obsolete?
MIPL (Mobile IPv6 for Linux)
Module for the kernel version 2.4 Lars Henrik Petander (Helsinki University of Technology)
GO research project
http://www.mipl.mediapoli.com/
(http://vesper.tky.hut.fi/mip/)
The release consists of a kernel module, some patches to the IPv6 module
and configuration and installation tools.
Maillist: mipl@list.mipl.mediapoli.com
USAGI kernel extension is imported from/synced with MIPL


Stateful autoconfiguration

DHCPv6 

DHCPv6 implementation RFC Status Who is working on it Link to sources Additional
comment
DHCPv6

working Tomasz Mrugalski http://dhcpv6.sourceforge.net/

Dibbler http://klub.com.pl/dhcpv6/

Hierarchicly router (and clients) renumbering


Source address selection

From Stig Venås:
I think Linux needs better IPv6 source address selection. When there are several global non-deprecated addresses, the current code (2.3.99-pre6) simply picks the first it finds, while I would like to choose one with longest common prefix compared to the destination address. This is described in draft-ietf-ipngwg-default-addr-select-00.txt paragraph 4 rule 6, and seems to be what for instance Solaris 8 does.
This is generally useful when one has several global IPv6 addresses (multihomed). An important special case is when one of the addresses is a 6to4 address (starting with 2002::/16). If the destination address is 6to4 the source address must also be 6to4. If the destionation is some other global address (3ffe or something) it must not be used.

It's necessary when an interface has both 6to4 and "normal" global addresses