3 source topologies/multihoming_topo.sh
5 ODL_CONFIG_FILE1="vpp1.json"
6 ODL_CONFIG_FILE2="vpp2.json"
7 ODL_CONFIG_FILE3="update_vpp2.json"
9 if [ "$1" == "clean" ] ; then
10 multihoming_topo_clean
14 if [[ $(id -u) != 0 ]]; then
15 echo "Error: run this as a root."
19 function test_multihoming
21 if [ "$3" != "no_setup" ] ; then
22 multihoming_topo_setup
25 if [ "$3" == "wait" ] ; then
26 read -p "press any key to continue .." -n1
31 ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
33 # do some port sweeping to see that load balancing works
34 ip netns exec vppns1 nc -n -z "${2}" 1-1000 > /dev/null 2>&1
37 pkts=$(echo "show int" | nc 0 5002 | grep host-intervpp11 | awk '{print $6}' | tr -d '\r')
39 if [ $pkts -gt 450 ] && [ $pkts -lt 550 ] ; then
45 if [ $rc -ne 0 ] ; then
46 echo "Load balancing doesn't work!"
48 if [ "$3" == "wait" ] ; then
49 read -p "press any key to continue .." -n1
52 multihoming_topo_clean
56 if [ "$3" == "wait" ] ; then
57 read -p "press any key to continue .." -n1
60 # change IP addresses of destination RLOC
61 echo "set int ip address del host-intervpp12 6.0.3.2/24" | nc 0 5003
62 echo "set int ip address host-intervpp12 6.0.3.20/24" | nc 0 5003
63 echo "set int ip address del host-intervpp12 6:0:3::2/64" | nc 0 5003
64 echo "set int ip address host-intervpp12 6:0:3::20/64" | nc 0 5003
65 post_curl "update-mapping" ${ODL_CONFIG_FILE3}
67 ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
72 if [ "$3" == "wait" ] ; then
73 read -p "press any key to continue .." -n1
76 multihoming_topo_clean
77 if [ $rc -ne 0 ] ; then
78 echo "Test failed: No ICMP response received within specified timeout limit!"