#!/bin/sh

. /etc/net6conf/6data.conf

start ()
{
	local logo_test=`$CONFIG get endis_ipv6_logo_test`

	if [ -f /proc/sys/net/ipv6/conf/all/forwarding ]; then
		$ECHO 1 > /proc/sys/net/ipv6/conf/all/forwarding
	fi
	if [ -f /proc/sys/dni_netfilter/ipv6_ip6frag_not_check_icmp ]; then
		$ECHO 1 > /proc/sys/dni_netfilter/ipv6_ip6frag_not_check_icmp
	fi

	if [ -f /proc/sys/net/ipv6/conf/${WAN}/autoconf ]; then
		$ECHO 0 > /proc/sys/net/ipv6/conf/${WAN}/autoconf
	fi
	if [ "x$logo_test" = "x1" -a "x$wan6_type" = "xfixed" ]; then
		if [ -f /proc/sys/net/ipv6/ipv6_srcrt_type_2 ]; then
			$ECHO 1 > /proc/sys/net/ipv6/ipv6_srcrt_type_2
		fi
		if [ -f /proc/sys/net/ipv6/ipv6_ping6_interface ]; then
			$ECHO 1 > /proc/sys/net/ipv6/ipv6_ping6_interface
		fi
	else
		if [ -f /proc/sys/net/ipv6/ipv6_srcrt_type_2 ]; then
			$ECHO 0 > /proc/sys/net/ipv6/ipv6_srcrt_type_2
		fi
		if [ -f /proc/sys/net/ipv6/ipv6_ping6_interface ]; then
			$ECHO 0 > /proc/sys/net/ipv6/ipv6_ping6_interface
		fi
		if [ -f /proc/sys/dni_netfilter/ipv6_ip6frag_not_check_icmp ]; then
			$ECHO 0 > /proc/sys/dni_netfilter/ipv6_ip6frag_not_check_icmp
		fi
		# Enable DAD, and randomly generate another IPv6 link-local address if
		# MAC-based duplicate link-local address has been found
		if [ -f /proc/sys/net/ipv6/conf/${WAN}/accept_dad ]; then
			$ECHO 3 > /proc/sys/net/ipv6/conf/${WAN}/accept_dad
		fi
		# make WAN interface send NS packets
		if [ -f /proc/sys/net/ipv6/neigh/${WAN}/not_send_neighbor_solicitation ]; then
			$ECHO 0 > /proc/sys/net/ipv6/neigh/${WAN}/not_send_neighbor_solicitation
		fi
		# make LAN interface send NS packets
		if [ -f /proc/sys/net/ipv6/neigh/$bridge/not_send_neighbor_solicitation ]; then
			$ECHO 0 > /proc/sys/net/ipv6/neigh/$bridge/not_send_neighbor_solicitation
		fi
	fi
	if [ -f /proc/sys/net/ipv6/conf/all/accept_ra ]; then
		if [ "x$wan6_type" = "xdisabled" ]; then
			$ECHO 0 > /proc/sys/net/ipv6/conf/all/accept_ra
		else
			$ECHO 1 > /proc/sys/net/ipv6/conf/all/accept_ra
		fi
	fi
	# For DAD too long in Japan topology
	if [ -f /proc/sys/net/ipv6/conf/${WAN}/dad_transmits ]; then
		if [ "x$wan6_type" = "xdslite" -o "x$wan6_type" = "xv6plus" ]; then
			$ECHO 1 > /proc/sys/net/ipv6/conf/${WAN}/dad_transmits
		else
			$ECHO 4 > /proc/sys/net/ipv6/conf/${WAN}/dad_transmits
		fi
	fi
}

case "$1" in
        start)
        start
        ;;
esac
