| #!/usr/bin/env bash |
| source ../multi-host.conf |
| workDir=$(pwd) |
| logDir=$workDir/logs |
| testLogA=$logDir/permanent-faceA.log |
| testLogB=$logDir/permanent-faceB.log |
| |
| mkdir -p $workDir/logs |
| |
| echo "About to start nfd on host A" > $testLogA |
| # start nfd on localhost (A) |
| sudo nfd &> $logDir/nfdA.log & |
| |
| # start nfd on hostB |
| ssh $CTRL_B "mkdir -p $logDir ; sudo nfd &> $logDir/nfdB.log &\ |
| echo 'About to start nfd on host B' > $testLogB ; sleep 2" |
| |
| # on B, start ndnpingserver for prefix /B |
| ssh $CTRL_B "ndnpingserver /B >> $testLogB 2>&1 &" |
| |
| # on A, create a UDP permanent face toward B |
| nfdc face create udp://$IP4_B1 persistency permanent >> $testLogA |
| |
| # on A, add route to ndn:/B on the face created in step 3 |
| nfdc route add ndn:/B udp4://$IP4_B1:6363 >> $testLogA |
| |
| # on A, execute ndnping for prefix ndn:/B with client specifier "a" for 10 probes |
| pingOutput=$(ndnping ndn:/B -p a -c 10) |
| echo $pingOutput >> $testLogA |
| |
| # fail the scenario if loss rate is more than 15% |
| loss=$(echo $pingOutput | grep -i 'lost' | grep -Po '\d*%' | sed 's/%//') |
| echo "LOSS rate of first ping is: $loss" >> $testLogA |
| if [[ $loss -gt 15 ]]; then |
| echo "LOSS rate is greater than 15. FAILED!" >> $testLogA |
| sudo killall nfd 2>&1 |
| ssh $CTRL_B "sudo killall nfd >> $testLogB 2>&1" |
| exit 1 |
| fi |
| |
| |
| # stop NFD on B |
| ssh $CTRL_B "sudo killall nfd >> $testLogB 2>&1 " |
| |
| # on A, execute ndnping for prefix ndn:/B with client specifier "b" for 10 probes |
| pingOutput=$(ndnping ndn:/B -p b -c 10) |
| echo $pingOutput >> $testLogA |
| |
| # fail the scenario if loss rate is less than 100% |
| loss=$(echo $pingOutput | grep -i 'lost' | grep -Po '\d*%' | sed 's/%//') |
| echo "LOSS rate of second ping is: $loss" >> $testLogA |
| if [[ $loss -lt 100 ]]; then |
| echo "LOSS rate is less than 100. FAILED!" >> $testLogA |
| ssh $CTRL_B "sudo killall nfd >> $testLogB 2>&1" |
| exit 1 |
| fi |
| |
| |
| # start nfd on hostB |
| ssh $CTRL_B "mkdir -p $workDir/logs/ ; sudo nfd &> $workDir/logs/nfdB.log &\ |
| sleep 2" |
| sleep 2 |
| |
| # on B, start ndnpingserver for prefix /B |
| ssh $CTRL_B "ndnpingserver /B >> $testLogB 2>&1 &" |
| |
| # on A, execute ndnping for prefix ndn:/B with client specifier "c" for 10 probes |
| pingOutput=$(ndnping ndn:/B -p c -c 10) |
| echo $pingOutput >> $testLogA |
| |
| # fail the scenario if loss rate is more than 15% |
| loss=$(echo $pingOutput | grep -i 'lost' | grep -Po '\d*%' | sed 's/%//') |
| echo "LOSS rate of third ping is: $loss" >> $testLogA |
| if [[ $loss -gt 15 ]]; then |
| echo "LOSS rate is greater than 15. FAILED!" >> $testLogA |
| sudo killall nfd 2>&1 |
| ssh $CTRL_B "sudo killall nfd >> $testLogB 2>&1" |
| exit 1 |
| fi |
| |
| # cleanup |
| sudo killall nfd 2>&1 |
| ssh $CTRL_B "sudo killall nfd >> $testLogB 2>&1" |
| |
| exit 0 |