#!/bin/sh

#input parameters
pppX="$1"         #ppp0
phy_if="$2"       #eth2.10
iface="$6"        #wan1
ifname=wan-$iface #wan-wan1
sla_lans="$7"     #lan1,lan2,lan3,... which sla_wan=$iface
speed="$3"
loc_addr6="$4"
rem_addr6="$5"

# Debug functions----------------------------------------------------------------
DBG_PRINT() {
	#echo "[`date +%Y/%m/%d-%H:%M:%S`][DOWN]  $1" > /dev/console
	#echo "[`date +%Y/%m/%d-%H:%M:%S`][DOWN]  $1" >> /tmp/dbg_log/ipv6-$iface.log
	return
}
#--------------------------------------------------------------------------------

#For debug: show basic info.
DBG_PRINT "pppX:$pppX phy_if:$phy_if iface:$iface ifname:$ifname"
DBG_PRINT "loc_addr6:$loc_addr6 rem_addr6:$rem_addr6"
DBG_PRINT "speed:$speed sla_lans:$sla_lans"

DBG_PRINT "json delete network.$iface ip6addr gateway6 dns6"
json delete network.$iface.ip6addr
json delete network.$iface.gateway6
json delete network.$iface.dns6

#delete related lan ipv6 address
for lan in $sla_lans ; do
	DBG_PRINT "check related lan: $lan"
	ip6addr=`/usr/sbin/ip -6 addr show lan-$lan |grep global |sed -e "s/^.*inet6 //" -e "s/ scope.*\$//"`
	if [ "$ip6addr" ]; then
		for ipa in $ip6addr ; do
			DBG_PRINT "ip -6 addr del $ipa dev lan-$lan"
			/usr/sbin/ip -6 addr del $ipa dev lan-$lan
		done
		/sbin/ifup $lan
	fi
done
DBG_PRINT "--> END of ipv6-down"
