From 76ab005261dba3fd5bec32df2ad253e4185116f0 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 10 Aug 2016 01:57:14 +0200 Subject: Add multihoming tests Change-Id: Ifc6d1ea02bc72b13ecca9a7e1ede0cd873687daf Signed-off-by: Florin Coras --- .../vpp_lite_topo/test_driver/multihoming.sh | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/data_plane/vpp_lite_topo/test_driver/multihoming.sh (limited to 'tests/data_plane/vpp_lite_topo/test_driver/multihoming.sh') diff --git a/tests/data_plane/vpp_lite_topo/test_driver/multihoming.sh b/tests/data_plane/vpp_lite_topo/test_driver/multihoming.sh new file mode 100644 index 0000000..7d623f0 --- /dev/null +++ b/tests/data_plane/vpp_lite_topo/test_driver/multihoming.sh @@ -0,0 +1,85 @@ +source config.sh +source odl_utils.sh +source topologies/multihoming_topo.sh + +ODL_CONFIG_FILE1="vpp1.json" +ODL_CONFIG_FILE2="vpp2.json" +ODL_CONFIG_FILE3="update_vpp2.json" + +if [ "$1" == "clean" ] ; then + multihoming_topo_clean + exit 0 +fi + +if [[ $(id -u) != 0 ]]; then + echo "Error: run this as a root." + exit 1 +fi + +function test_multihoming +{ + if [ "$3" != "no_setup" ] ; then + multihoming_topo_setup + fi + + if [ "$3" == "wait" ] ; then + read -p "press any key to continue .." -n1 + fi + + test_result=1 + + ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" + + # do some port sweeping to see that load balancing works + ip netns exec vppns1 nc -n -z "${2}" 1-1000 > /dev/null 2>&1 + + # check that it works + pkts=$(echo "show int" | nc 0 5002 | grep host-intervpp11 | awk '{print $6}' | tr -d '\r') + + if [ $pkts -gt 450 ] && [ $pkts -lt 550 ] ; then + rc=0 + else + rc=1 + fi + + if [ $rc -ne 0 ] ; then + echo "Load balancing doesn't work!" + + if [ "$3" == "wait" ] ; then + read -p "press any key to continue .." -n1 + fi + + multihoming_topo_clean + exit $test_result + fi + + if [ "$3" == "wait" ] ; then + read -p "press any key to continue .." -n1 + fi + + # change IP addresses of destination RLOC + echo "set int ip address del host-intervpp12 6.0.3.2/24" | nc 0 5003 + echo "set int ip address host-intervpp12 6.0.3.20/24" | nc 0 5003 + echo "set int ip address del host-intervpp12 6:0:3::2/64" | nc 0 5003 + echo "set int ip address host-intervpp12 6:0:3::20/64" | nc 0 5003 + post_curl "update-mapping" ${ODL_CONFIG_FILE3} + + ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" + rc=$? + + # test done + + if [ "$3" == "wait" ] ; then + read -p "press any key to continue .." -n1 + fi + + multihoming_topo_clean + if [ $rc -ne 0 ] ; then + echo "Test failed: No ICMP response received within specified timeout limit!" + else + echo "Test passed." + test_result=0 + fi + + exit $test_result +} -- cgit 1.2.3-korg