#!/bin/sh
PATH=/sbin:/usr/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin
export PATH

### Avalible environment variables:
# TSP_CLIENT_ADDRESS_IPV4 TSP_CLIENT_ADDRESS_IPV6
# TSP_SERVER_ADDRESS_IPV4 TSP_SERVER_ADDRESS_IPV6
# TSP_TUNNEL_INTERFACE TSP_TUNNEL_MODE TSP_TUNNEL_PREFIXLEN
# TSP_PREFIX TSP_PREFIXLEN

if [ "$TSP_HOST_TYPE" == "host" ]
then
	TSP_PREFIX="$TSP_CLIENT_ADDRESS_IPV6"
	TSP_PREFIXLEN="128"
else
	TSP_PREFIX="$TSP_PREFIX::"
fi

case "$TSP_OPERATION" in
	TSP_TUNNEL_CREATION)
		echo "Creating IPv6 tunnel..."
		ip -6 route flush dev $TSP_TUNNEL_INTERFACE 2>/dev/null
		ip -6 address flush dev $TSP_TUNNEL_INTERFACE 2>/dev/null
		ip -6 link set dev $TSP_TUNNEL_INTERFACE up
		ip -6 link set dev $TSP_TUNNEL_INTERFACE mtu 1280

		ip -6 address add $TSP_CLIENT_ADDRESS_IPV6/$TSP_TUNNEL_PREFIXLEN dev $TSP_TUNNEL_INTERFACE
		ip -6 route add default dev $TSP_TUNNEL_INTERFACE

		/usr/local/bin/itf_updown.plx BROKER up $TSP_CLIENT_ADDRESS_IPV6 $TSP_PREFIXLEN $TSP_PREFIX
		;;

	TSP_TUNNEL_TEARDOWN)
		echo "Tear down IPv6 tunnel..."
		ip -6 route flush dev $TSP_TUNNEL_INTERFACE 2>/dev/null
		ip -6 address flush dev $TSP_TUNNEL_INTERFACE 2>/dev/null
		ip -6 link set dev $TSP_TUNNEL_INTERFACE down
		ip -6 tunnel del $TSP_TUNNEL_INTERFACEA

		/usr/local/bin/itf_updown.plx BROKER down :: 128 ::
		;;
esac

exit 0
