#!/bin/sh
#
#MyBSD ipv6 startup script for WRT54G
#

#insert ipv6 module into running kernel
insmod ipv6

# external IP
 EXTIP=`/sbin/ifconfig vlan1 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`
# My tunnel endpoint
 MY_TUNNELIP="2001:470:1f08:4f7::2"
# Hurricane Electric tunnel endpoint
  H_E_TUNNELIP="2001:470:1f08:4f7::1"
# Hurricane Electric POP IPv4
  H_E_4="216.66.80.26"
	     
# create tunnel
 echo "- Creating MyBSD tunnel... ${EXTIP} <--> ${H_E_4}"
 /usr/sbin/ip tunnel add sixbone mode sit local ${EXTIP} remote ${H_E_4}
		 
# bring tunnel interface up explicitly
  echo "- Bringing ipv6 device up..."
  /usr/sbin/ip link set sixbone up
		     
# fix MTU and TTL
 echo "- Fixing MTU and TTL of ipv6 device..."
 /usr/sbin/ip link set mtu 1280 dev sixbone
 /usr/sbin/ip tunnel change sixbone ttl 64
			  
# Add virthost IPs before adding tunnel IP
# ...
	     
# configure IPv6 endpoint on the tunnel
  echo "- Configuring my IPv6 tunnel endpoint..."
  /usr/sbin/ip -6 addr add ${MY_TUNNELIP}/64 dev sixbone
 
# default route
  echo "- Adding default route through ipv6..."
  /usr/sbin/ip -6 ro add default via ${H_E_TUNNELIP} dev sixbone
		     
# add a /64 network from the /60 prefix to br0
  echo "- Setting up br0: 2001:470:1f09:4f7::/64 ..."
  /usr/sbin/ip -6 addr add 2001:470:1f09:4f7::/64 dev br0 
					 
# start router advertisement daemon
 echo "- Starting radvd..."
/sbin/radvd
					     
echo "---- end IPv6 setup ----" 
