diff -urN mipv6-bits_3.2/CONTROL/control mipv6-bits_3.6/CONTROL/control
--- mipv6-bits_3.2/CONTROL/control	Wed Jan 16 09:30:47 2002
+++ mipv6-bits_3.6/CONTROL/control	Fri Mar 22 15:24:13 2002
@@ -1,9 +1,9 @@
 Package: mipv6-bits
 Priority: optional
-Version: 3.2
+Version: 3.6
 Architecture: arm
 Maintainer: steven.ayer@compaq.com
-Depends: none
+Depends: iproute
 Section: net
 Description: Software pieces necessary to configure and operate unit as a mipv6 node.
 
diff -urN mipv6-bits_3.2/CONTROL/postinst mipv6-bits_3.6/CONTROL/postinst
--- mipv6-bits_3.2/CONTROL/postinst	Wed Dec 31 19:00:00 1969
+++ mipv6-bits_3.6/CONTROL/postinst	Fri Mar 22 15:42:47 2002
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+if ! grep -q icmp6 /etc/protocols ; then
+   echo "icmp6     58    IPv6-ICMP" >> /etc/protocols
+fi
diff -urN mipv6-bits_3.2/etc/init.d/mobile-ip6 mipv6-bits_3.6/etc/init.d/mobile-ip6
--- mipv6-bits_3.2/etc/init.d/mobile-ip6	Thu Jan 17 11:55:27 2002
+++ mipv6-bits_3.6/etc/init.d/mobile-ip6	Fri Mar 22 14:52:27 2002
@@ -9,22 +9,26 @@
 #
 # Generated automatically from mobile-ip6.in by configure.
 
-prefix=/usr
+MIPV6_MODULE=mobile_ip6
+
+prefix=
 exec_prefix=${prefix}
 initdir=/etc/init.d
 sysconfdir=${prefix}/etc
 
 CONFIG_FILE=/etc/sysconfig/network-mip6.conf
-IPV6TUNNEL=${exec_prefix}/sbin/ipv6tunnel
 MIPDIAG=${exec_prefix}/sbin/mipdiag
 SUBSYS=$1
 LOCKDIR=/var/lock/subsys
 CTLFILE=/dev/mipv6_dev
 
+MODPROBE=${exec_prefix}/sbin/modprobe
+LSMOD=${exec_prefix}/sbin/lsmod
+
 # Test if 'functions' exists. If not, define our own 'action'
 
-if test -x /etc/init.d/functions ; then
-    . /etc/init.d/functions
+if test -x /etc/rc.d/init.d/functions ; then
+    . /etc/rc.d/init.d/functions
 elif test -x /etc/rc.config ; then
     . /etc/rc.config
 else
@@ -38,11 +42,15 @@
 	else
 	    msg=$msg" Failed"
 	fi
+	logger $msg
 	echo $msg
     }
 fi
 
-[ -f $CONFIG_FILE ] || exit 0
+if [ ! -f $CONFIG_FILE ] ; then
+    echo "Cannot find configuration file: $CONFIG_FILE"
+    exit 1
+fi
 
 . $CONFIG_FILE
 
@@ -54,98 +62,92 @@
     mkdir $LOCKDIR
 fi
 
-[ -x $IPV6TUNNEL ] || exit 0
-[ -x $MIPDIAG ] || exit 0
-[ -x /sbin/insmod ] || exit 0
+for file in $MIPDIAG $MODPROBE $LSMOD ; do
+    if [ ! -x $file ] ; then
+	echo "Cannot execute: $file"
+	exit 1
+    fi
+done
 
 if [ -z "$HOMEADDRESS" ] && [ "$FUNCTIONALITY" = "mn" ] ; then
-    exit 1;
+    echo "Home address not set for mobile node"
+    exit 1
 fi
 
 case "$1" in
     start)
+
+	[ -x $LSMOD ] && $LSMOD | grep $MIPV6_MODULE &>/dev/null && \
+	    echo "$MIPV6_MODULE already installed" && exit 1
+
 	case "$FUNCTIONALITY" in
 	    mn)
 		INSMOD_ARGS="mipv6_is_mn=1"
-		if [ -z "$TUNNEL_NR" ] ; then
-		    TUNNEL_NR=10
+		if [ ! -z "$USE_REVERSE_TUNNEL" ] && \
+                   [ "$USE_REVERSE_TUNNEL" = "yes" ]; then
+		    INSMOD_ARGS="$INSMOD_ARGS mipv6_reverse_tunnel=1"
 		fi
 		;;
 	    ha)
 		INSMOD_ARGS="mipv6_is_ha=1"
-		if [ -z "$TUNNEL_NR" ] ; then
-		    TUNNEL_NR=10
-		fi
 		;;
 	    cn)
 		INSMOD_ARGS=
-		TUNNEL_NR=0
 		;;
         esac
-	if [ ! -z "$DEBUGLEVEL" ]; then
-	    INSMOD_ARGS="$INSMOD_ARGS mipv6_debug=$DEBUGLEVEL";
-	fi
-
-	/sbin/insmod ipv6_tunnel &> /dev/null
 
-#	for ((i = 1; i <= $TUNNEL_NR; i++)); 
-#	    do $IPV6TUNNEL add mipv6t$i --kernel-device; done
+	if [ "$FUNCTIONALITY" = "mn" -o "$FUNCTIONALITY" = "ha" ]; then 
+	    if [ -z "$MIN_TUNNEL_NR" ]; then
+		MIN_TUNNEL_NR=1
+	    fi
+	    INSMOD_ARGS="$INSMOD_ARGS mipv6_min_tunnel_nr=$MIN_TUNNEL_NR";
 
-	$IPV6TUNNEL add ipv6tunl0 --kernel-device
-	$IPV6TUNNEL add ipv6tunl1 --kernel-device
+	    if [ -z "$MAX_TUNNEL_NR" ]; then
+		MAX_TUNNEL_NR=2
+	    fi
+	    INSMOD_ARGS="$INSMOD_ARGS mipv6_max_tunnel_nr=$MAX_TUNNEL_NR";
+	fi
 
-#	for ((i = 1; i <= $TUNNEL_NR; i++)); 
-#	    do /sbin/ip link set mipv6t$i up; done
+	if [ ! -z "$DEBUGLEVEL" ]; then
+	    INSMOD_ARGS="$INSMOD_ARGS mipv6_debug=$DEBUGLEVEL";
+	fi
 
-	/sbin/ip link set ipv6tunl0 up
-	/sbin/ip link set ipv6tunl1 up
+	$MODPROBE $MIPV6_MODULE $INSMOD_ARGS &> /dev/null
+	status=$?
 
-	/sbin/insmod mobile_ip6 $INSMOD_ARGS &> /dev/null
-	action "Starting Mobile IPv6:" [ $? -eq 0 ] || exit 1
+	action "Starting Mobile IPv6:" [ $status -eq 0 ] || exit 1
 	
 	touch $LOCKDIR/mobile-ip6
 
-	sleep 1
 	if [ "$FUNCTIONALITY" = "mn" ] ; then
-	    [ ! -z "$HOMEADDRESS" ] && $MIPDIAG -H $HOMEAGENT -h $HOMEADDRESS; 
+	    [ ! -z "$HOMEADDRESS" ] && $MIPDIAG -H$HOMEAGENT -h $HOMEADDRESS; 
 	fi
 
 	[ "$FUNCTIONALITY" = "ha" ] && [ ! -z "$TUNNEL_SITELOCAL" ] \
-	    && $MIPDIAG -t $TUNNEL_SITELOCAL
+	    && $MIPDIAG -t$TUNNEL_SITELOCAL
 	    
 	if [ "$FUNCTIONALITY" = "ha" ] ; then 
 	    echo 1 > /proc/sys/net/ipv6/conf/all/forwarding;
-	fi 
+#	fi 
+
+	    if [ ! -z "$MOBILENODEFILE" ] && [ -f $MOBILENODEFILE ]; then
+		$MIPDIAG -R $MOBILENODEFILE;
+	    fi
 
-	if [ ! -z "$MOBILENODEFILE" ] && [ -f $MOBILENODEFILE ]; then
-	    $MIPDIAG -R $MOBILENODEFILE;
 	fi
+
 	if [ "$AUTHENTICATION" = "draft15" ] ; then
 	    echo 1 > /proc/sys/net/ipv6/mobility/use_auth;
 	fi    
+
 	if [ ! -z "$SAFILE" ] && [ -f $SAFILE ]; then
 	    $MIPDIAG --safile $SAFILE;
 	fi
 	;;
     stop)
 	action "Stopping Mobile IPv6:" [ -f $LOCKDIR/mobile-ip6 ] || exit 1
-	/sbin/rmmod mobile_ip6
-
-	if [ "$FUNCTIONALITY" = "mn" -o "$FUNCTIONALITY" = "ha" ]; then
-	    if [ -z $TUNNEL_NR ] ; then
-	        TUNNEL_NR=10
-	    fi
-	else
-	  TUNNEL_NR=0
-	fi
-
-#	for ((i = 1; i <= $TUNNEL_NR; i++)); 
-#	    do $IPV6TUNNEL del ipv6tunl$i; done
-
-	$IPV6TUNNEL del ipv6tunl0
-	$IPV6TUNNEL del ipv6tunl1
 
-	/sbin/rmmod ipv6_tunnel &> /dev/null    
+	$MODPROBE -r $MIPV6_MODULE
 
 	rm -f $LOCKDIR/mobile-ip6
 	exit $?
@@ -156,18 +158,18 @@
 	exit $?
 	;;
     status)
-	/sbin/lsmod | grep mobile_ip6 > /dev/null
+	$LSMOD | grep $MIPV6_MODULE > /dev/null
 	if [ $? -eq 0 ]; then
-		echo "mobile_ip6 module is installed..."
+		echo "$MIPV6_MODULE module is installed..."
 		exit 0
 	fi
        	# See if lock in $LOCKDIR exists
 	if [ -f $LOCKDIR/mobile-ip6 ]; then
-		echo "mobile_ip6 module not installed but subsys locked"
+		echo "$MIPV6_MODULE module not installed but subsys locked"
 		exit 2
 	fi
 
-	echo "mobile_ip6 module is not installed"
+	echo "$MIPV6_MODULE module is not installed"
 	exit 3
 	;;
     *)
diff -urN mipv6-bits_3.2/etc/mipv6_acl.conf mipv6-bits_3.6/etc/mipv6_acl.conf
--- mipv6-bits_3.2/etc/mipv6_acl.conf	Tue Jul 17 09:31:09 2001
+++ mipv6-bits_3.6/etc/mipv6_acl.conf	Tue Feb 19 10:48:43 2002
@@ -5,3 +5,4 @@
 #
 # DENY 3ffe:2620:6:1234:abcd::/80
 # ALLOW 3ffe:2620:6:1234::/64
+allow 3ffe:1200::/32
diff -urN mipv6-bits_3.2/etc/protocols mipv6-bits_3.6/etc/protocols
--- mipv6-bits_3.2/etc/protocols	Mon Jan  1 21:04:22 2001
+++ mipv6-bits_3.6/etc/protocols	Wed Dec 31 19:00:00 1969
@@ -1,45 +0,0 @@
-# /etc/protocols:
-# $Id: mipv6-bits.diff,v 1.1 2002/05/03 19:02:23 jamey Exp $
-#
-# Internet (IP) protocols
-#
-#	from: @(#)protocols	5.1 (Berkeley) 4/17/89
-#
-# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
-
-ip	0	IP		# internet protocol, pseudo protocol number
-icmp	1	ICMP		# internet control message protocol
-igmp	2	IGMP		# Internet Group Management
-ggp	3	GGP		# gateway-gateway protocol
-ipencap	4	IP-ENCAP	# IP encapsulated in IP (officially ``IP'')
-st	5	ST		# ST datagram mode
-tcp	6	TCP		# transmission control protocol
-egp	8	EGP		# exterior gateway protocol
-pup	12	PUP		# PARC universal packet protocol
-udp	17	UDP		# user datagram protocol
-hmp	20	HMP		# host monitoring protocol
-xns-idp	22	XNS-IDP		# Xerox NS IDP
-rdp	27	RDP		# "reliable datagram" protocol
-iso-tp4	29	ISO-TP4		# ISO Transport Protocol class 4
-xtp	36	XTP		# Xpress Tranfer Protocol
-ddp	37	DDP		# Datagram Delivery Protocol
-idpr-cmtp 38	IDPR-CMTP	# IDPR Control Message Transport
-ipv6	41	IPv6		# IPv6
-ipv6-route 43	IPv6-Route	# Routing Header for IPv6
-ipv6-frag 44	IPv6-Frag	# Fragment Header for IPv6
-idrp	45	IDRP		# Inter-Domain Routing Protocol
-rsvp	46	RSVP		# Reservation Protocol
-gre	47	GRE		# General Routing Encapsulation
-esp	50	ESP		# Encap Security Payload for IPv6
-ah	51	AH		# Authentication Header for IPv6
-skip	57	SKIP		# SKIP
-ipv6-icmp 58	IPv6-ICMP	# ICMP for IPv6
-icmp6     58    IPv6-ICMP
-ipv6-nonxt 59	IPv6-NoNxt	# No Next Header for IPv6
-ipv6-opts 60	IPv6-Opts	# Destination Options for IPv6
-rspf	73	RSPF		# Radio Shortest Path First.
-vmtp	81	VMTP		# Versatile Message Transport
-ospf	89	OSPFIGP		# Open Shortest Path First IGP
-ipip	94	IPIP		# IP-within-IP Encapsulation Protocol
-encap	98	ENCAP		# Yet Another IP encapsulation
-pim	103	PIM		# Protocol Independent Multicast
diff -urN mipv6-bits_3.2/root/.Xdefaults mipv6-bits_3.6/root/.Xdefaults
--- mipv6-bits_3.2/root/.Xdefaults	Mon Jan  1 21:19:23 2001
+++ mipv6-bits_3.6/root/.Xdefaults	Wed Dec 31 19:00:00 1969
@@ -1,5 +0,0 @@
-Rxvt*font: SF Willamette-14:minspace=false:charwidth=5
-Rxvt*geometry: 40x8
-Xft.rgba: vbgr
-fscrib*overrideRedirect: true
-fstroke*overrideRedirect: true
diff -urN mipv6-bits_3.2/root/manual_roam.sh mipv6-bits_3.6/root/manual_roam.sh
--- mipv6-bits_3.2/root/manual_roam.sh	Fri Jan 18 14:46:24 2002
+++ mipv6-bits_3.6/root/manual_roam.sh	Tue Feb 19 10:52:23 2002
@@ -5,3 +5,5 @@
 iwconfig eth0 essid $1 > /dev/null 2>&1
 
 ifconfig eth0 inet6 up > /dev/null 2>&1 
+
+cat /proc/net/dad > /dev/null 2>&1
Binary files mipv6-bits_3.2/sbin/ipv6tunnel and mipv6-bits_3.6/sbin/ipv6tunnel differ
Binary files mipv6-bits_3.2/sbin/mipdiag and mipv6-bits_3.6/sbin/mipdiag differ
Binary files mipv6-bits_3.2/usr/bin/wget and mipv6-bits_3.6/usr/bin/wget differ
Binary files mipv6-bits_3.2/usr/sbin/ipv6tunnel and mipv6-bits_3.6/usr/sbin/ipv6tunnel differ
Binary files mipv6-bits_3.2/usr/sbin/mipdiag and mipv6-bits_3.6/usr/sbin/mipdiag differ
