#!/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 add-nexthop ndn:/tunnel-test $1://$ipaddr

# run ndn-traffic client
echo "running ndn-traffic client..."
ndn-traffic -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"
