blob: 10e3747fbd74ad7689290fd2f7200e40f0cfb21a [file] [log] [blame]
#!/bin/bash
source ../multi-host.conf
echo "host A IP addresses $IP4_A1 and $IP4_A2"
echo "host C IP address $IP4_C1"
echo "host D IP address $IP4_D1"
clean_up() {
r=$(ssh $CTRL_C "sudo killall nfd" 2>&1)
r=$(ssh $CTRL_D "sudo killall test-congestionmark-producer" 2>&1)
r=$(ssh $CTRL_D "sudo killall nfd" 2>&1)
r=$(sudo killall nfd 2>&1)
}
### Setup
# Start NFD on hosts A, C, and D
workdir=$(pwd)
echo "starting nfd on host A..."
mkdir -p $workdir/logs; sudo nfd > $workdir/logs/nfd.log 2>&1 &
sleep 1
echo "starting nfd on host C..."
ssh $CTRL_C "mkdir -p $workdir/logs; sudo nfd &> $workdir/logs/nfd.log &"
sleep 1
echo "starting nfd on host D..."
ssh $CTRL_D "mkdir -p $workdir/logs; sudo nfd &> $workdir/logs/nfd.log &"
sleep 1
# Create faces
ssh $CTRL_C "nfdc face create udp4://$IP4_A1"
nfdc face create udp4://$IP4_D1
# Set up routes
ssh $CTRL_C "nfdc route add /arizona/cs udp4://$IP4_A1"
if [[ $? -ne 0 ]]; then
echo "C: Failed to create route for /arizona/cs toward A"
clean_up
exit 1
fi
ssh $CTRL_C "nfdc route add /ucla/cs udp4://$IP4_A1"
if [[ $? -ne 0 ]]; then
echo "C: Failed to create route for /ucla/cs toward A"
clean_up
exit 1
fi
ssh $CTRL_C "nfdc route add /ucsd/caida udp4://$IP4_A1"
if [[ $? -ne 0 ]]; then
echo "C: Failed to create route for /ucsd/caida toward A"
clean_up
exit 1
fi
nfdc route add /arizona/cs udp4://$IP4_D1
if [[ $? -ne 0 ]]; then
echo "A: Failed to create route for /arizona/cs toward D"
clean_up
exit 1
fi
nfdc route add /ucla/cs udp4://$IP4_D1
if [[ $? -ne 0 ]]; then
echo "A: Failed to create route for /ucla/cs toward D"
clean_up
exit 1
fi
nfdc route add /ucsd/caida udp4://$IP4_D1
if [[ $? -ne 0 ]]; then
echo "A: Failed to create route for /ucsd/caida toward D"
clean_up
exit 1
fi
### TestCase 1
# A: Use CongestionMarkStrategy (value=7) strategy for /arizona/cs namespace
nfdc strategy set /arizona/cs /localhost/nfd/strategy/congestion-mark/%FD%01/7/true
if [[ $? -ne 0 ]]; then
echo "A: Failed to set CongestionMarkStrategy for /arizona/cs prefix"
clean_up
exit 2
fi
# D: Start producer for /arizona/cs
ssh $CTRL_D "test-congestionmark-producer /arizona/cs &>/dev/null &"
# C: Send Interest for /arizona/cs
output=$(ssh $CTRL_C "test-congestionmark-consumer /arizona/cs")
status=$?
if [[ $? -ne 0 ]]; then
echo "Consumer for Interest /arizona/cs did not exit with status 0"
echo "Actual: $status"
clean_up
exit 6
fi
if [[ $output != "CongestionMark=7" ]]; then
echo "Interest /arizona/cs not answered with a Data containing a congestion mark with a value of 7"
echo "Actual: $output"
clean_up
exit 3
fi
### TestCase 2
# D: Start producer for /ucla/cs
ssh $CTRL_D "test-congestionmark-producer /ucla/cs &>/dev/null &"
# C: Send Interest for /ucla/cs
output=$(ssh $CTRL_C "test-congestionmark-consumer /ucla/cs")
status=$?
if [[ $? -ne 0 ]]; then
echo "Consumer for Interest /ucla/cs did not exit with status 0"
echo "Actual: $status"
clean_up
exit 6
fi
if [[ $output != "CongestionMark=0" ]]; then
echo "Interest /ucla/cs not answered with a Data without a congestion mark"
echo "Actual: $output"
clean_up
exit 4
fi
### TestCase 3
# D: Start producer for /ucsd/caida
ssh $CTRL_D "test-congestionmark-producer /ucsd/caida &>/dev/null &"
sleep 1
# C: Use CongestionMarkStrategy (value=2) strategy for /ucsd/caida namespace
ssh $CTRL_C "nfdc strategy set /ucsd/caida /localhost/nfd/strategy/congestion-mark/%FD%01/2/true"
if [[ $? -ne 0 ]]; then
echo "C: Failed to set CongestionMarkStrategy for /ucsd/caida prefix"
clean_up
exit 2
fi
# A: Use CongestionMarkStrategy (value=3, override) strategy for /ucsd/caida namespace
nfdc strategy set /ucsd/caida /localhost/nfd/strategy/congestion-mark/%FD%01/3/false
if [[ $? -ne 0 ]]; then
echo "A: Failed to set CongestionMarkStrategy for /ucsd/caida prefix"
clean_up
exit 2
fi
# C: Send Interest for /ucsd/caida
output=$(ssh $CTRL_C "test-congestionmark-consumer /ucsd/caida")
status=$?
if [[ $? -ne 0 ]]; then
echo "Consumer for Interest /ucsd/caida did not exit with status 0"
echo "Actual: $status"
clean_up
exit 6
fi
if [[ $output != "CongestionMark=3" ]]; then
echo "Interest /ucsd/caida not answered with a Data containing a congestion mark with a value of 3"
echo "Actual: $output"
clean_up
exit 5
fi