#!/usr/bin/env bash
usage=$'Usage: tcp-udp-tunnel-test.sh [tcp|udp][4|6]'
if [ $# != 1 ]
then
    echo "$usage"
    exit
fi
source ../multi-host.conf
if [[ ($1 = "tcp4") || ($1 = "udp4") ]]
then
    ipaddr="$IP4_D1"
else
    ipaddr="[$IP6_D1]"
fi
echo "host D IP address $ipaddr"

mkdir -p logs/$1

clean_up() {
    r=$(ssh $CTRL_D "sudo killall ndn-traffic-server;\
        sleep 1;\
        sudo killall nfd" 2>&1)
    r=$(sudo killall nfd 2>&1)
}

# start nfd on host A
sudo nfd &> logs/$1/nfd.log &
sleep 2

# start nfd and ndn-traffic-server on host D
echo "starting nfd and ndn-traffic-server on host D..."
workdir=$(pwd)
ssh $CTRL_D "mkdir -p $workdir/logs/$1;\
    sudo nfd &> $workdir/logs/$1/nfd.log &\
    sleep 3;\
    ndn-traffic-server $workdir/NDNTrafficServer.conf > $workdir/logs/$1/server.log 2>&1 &"
sleep 5

# open a tunnel from host A to host D and set nexthop of ndn:/tunnel-test to D
echo "preparing tunnel..."
nfdc face create $1://$ipaddr
nfdc route add ndn:/tunnel-test $1://$ipaddr

# run ndn-traffic-client
echo "running ndn-traffic-client..."
ndn-traffic-client -c 100 -i 100 NDNTrafficClient.conf > logs/$1/client.log 2>&1

# stop nfd on hostA
echo "stopping nfd on host A..."
sudo killall nfd

# stop ndn-traffic-server and nfd on hostD
echo "stopping ndn-traffic-server and nfd on host D..."
clean_up

# examine client log
echo "analyzing results..."
output=$(grep "Total Interest Loss" $workdir/logs/$1/client.log | head -1 | cut -d= -f2 | cut -d' ' -f2 | cut -d% -f1)
if [[ $output != 0?(.+(0)) ]]
then
    echo "Expected no Interest Loss. Actual: $output%"
    echo "For more information, please examine the log at \"$(pwd)/logs/$1\""
    exit 2
fi
echo "Tunnel Test PASSED"
