#!/bin/bash
source ../multi-host.conf
b_ipaddr=$IP4_B1
c_ipaddr=$IP4_C1
echo "host B IP address $b_ipaddr"
echo "host C IP address $c_ipaddr"

clean_up() {
    r=$(ssh $CTRL_B "sudo killall nfd" 2>&1)
    r=$(ssh $CTRL_C "sudo killall nfd" 2>&1)
    r=$(sudo killall nfd 2>&1)
}

mkdir -p logs

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

# start nfd and add nexthop of ndn:/localhop to C on host B
echo "starting nfd and adding nexthop of ndn:/localhop to C on host B..."
ssh $CTRL_B "mkdir -p $workdir/logs;\
    $workdir/hostB.sh $workdir $c_ipaddr"

# start nfd and add nexthop of ndn:/localhop to B on host A
echo "starting nfd and adding nexthop of ndn:/localhop to B on host A..."
sudo nfd > logs/nfd.log 2>&1 &
sleep 3
nfdc add-nexthop ndn:/localhop udp4://$b_ipaddr
if [[ $? -ne 0 ]]
then
    echo "Fail to add nexthop of ndn:/localhop"
    clean_up
    exit 2
fi

# From A, send interest ndn:/localhop/test-localhop/A/1
echo "From A, sending interest ndn:/localhop/test-localhop/A/1..."
output=$(ndnpeek -p ndn:/localhop/test-localhop/A/1)
if [[ ! -z $output ]]
then
    echo "ndn:/localhop/test-localhop/A/1 is answered."
    clean_up
    exit 4
fi

# From B, send interest ndn:/localhop/test-localhop/B/1
echo "From B, sending interest ndn:/localhop/test-localhop/B/1..."
output=$(ssh $CTRL_B "ndnpeek -p ndn:/localhop/test-localhop/B/1")
if [[ $output != BBBBBBBB ]]
then
    echo "ndn:/localhop/test-localhop/B/1 is not correctly answered. Content: $output"
    clean_up
    exit 5
fi

# stop ndn-traffic-server and nfd on host C
echo "stopping ndn-traffic-server and nfd on host C..."
ssh $CTRL_C "sudo killall ndn-traffic-server; sudo killall nfd"

# stop nfd on host B
echo "stopping nfd on host B..."
ssh $CTRL_B "sudo killall nfd"

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

# copy back the server log
echo "copying back ndn-traffic-server log..."
scp $CTRL_C:$workdir/logs/server.log $workdir/logs/

# analyze server log
echo "analyzing server log..."
output=$(grep "Total Interests Received" $workdir/logs/server.log | head -2 | tail -1 | cut -d= -f2 | cut -d' ' -f2)
if [[ $output != 0?(.+(0)) ]]
then
    echo "Expected no interests with name ndn:/localhop/test-localhop/A/1 received on host C. Actual: $output"
    echo "For more information, please examine the log at \"$(pwd)/logs\""
    clean_up
    exit 3
fi
clean_up
echo "Localhop Test PASSED"
