From abc6884972bc0792f4817a3822f13128d716c889 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Thu, 6 Oct 2016 13:20:58 +0200 Subject: Fix some test issues * add sleep to v6 eid virt test * fix failover test * reuse topology setup at failover test Change-Id: I7f1234696a9cec7931984c4dcee79c2cf90287d1 Signed-off-by: Filip Tehlar --- .../vpp_lite_config/basic/4o4_failover/vpp1.config | 23 ++--- .../vpp_lite_config/basic/4o4_failover/vpp2.config | 18 ++-- tests/data_plane/vpp_lite_topo/config.sh | 7 ++ .../vpp_lite_topo/test_driver/resolver_failover.sh | 18 +--- .../vpp_lite_topo/topologies/2_node_topo.sh | 16 +++- .../vpp_lite_topo/topologies/basic_two_odls.sh | 102 --------------------- .../vpp_lite_topo/topologies/two_customers_topo.sh | 1 + 7 files changed, 39 insertions(+), 146 deletions(-) delete mode 100644 tests/data_plane/vpp_lite_topo/topologies/basic_two_odls.sh diff --git a/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp1.config b/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp1.config index 72ac2ab..318f302 100644 --- a/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp1.config +++ b/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp1.config @@ -1,15 +1,8 @@ -create host-interface name vpp1 -set int state host-vpp1 up -set int ip address host-vpp1 6.0.1.1/24 - -create host-interface name intervpp1 -set int state host-intervpp1 up -set int ip address host-intervpp1 6.0.3.1/24 - -lisp enable - -lisp locator-set add ls1 iface host-intervpp1 p 1 w 1 -lisp eid-table add eid 6.0.1.0/24 locator-set ls1 - -lisp map-resolver add 6.0.3.99 -lisp map-resolver add 6.0.3.100 +create_host_iface vpp1 6.0.1.1/24 +create_host_iface intervpp1 6.0.3.1/24 + +lisp_state enable +lisp_locator_set_with_locator ls1 host-intervpp1 1 1 +lisp_local_eid eid 6.0.1.0/24 locator-set ls1 +lisp_map_resolver 6.0.3.199 +lisp_map_resolver 6.0.3.200 diff --git a/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp2.config b/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp2.config index 1bac043..de7a679 100644 --- a/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp2.config +++ b/tests/data_plane/configs/vpp_lite_config/basic/4o4_failover/vpp2.config @@ -1,13 +1,7 @@ -create host-interface name vpp2 -set int state host-vpp2 up -set int ip address host-vpp2 6.0.2.1/24 +create_host_iface vpp2 6.0.2.1/24 +create_host_iface intervpp2 6.0.3.2/24 -create host-interface name intervpp2 -set int state host-intervpp2 up -set int ip address host-intervpp2 6.0.3.2/24 - -lisp enable - -lisp locator-set add ls1 iface host-intervpp2 p 1 w 1 -lisp eid-table add eid 6.0.2.0/24 locator-set ls1 -lisp map-resolver add 6.0.3.100 +lisp_state enable +lisp_locator_set_with_locator ls1 host-intervpp2 1 1 +lisp_local_eid eid 6.0.2.0/24 locator-set ls1 +lisp_map_resolver 6.0.3.200 diff --git a/tests/data_plane/vpp_lite_topo/config.sh b/tests/data_plane/vpp_lite_topo/config.sh index a546c52..57b616a 100644 --- a/tests/data_plane/vpp_lite_topo/config.sh +++ b/tests/data_plane/vpp_lite_topo/config.sh @@ -138,3 +138,10 @@ function assert_rc_ok exit $test_result fi } + +function start_map_resolver +{ + echo "starting dummy map resolver on interface $1" + python scripts/dummy_mr.py "$1" 4342 & + mr_id=$! +} diff --git a/tests/data_plane/vpp_lite_topo/test_driver/resolver_failover.sh b/tests/data_plane/vpp_lite_topo/test_driver/resolver_failover.sh index ea3a212..a278f56 100644 --- a/tests/data_plane/vpp_lite_topo/test_driver/resolver_failover.sh +++ b/tests/data_plane/vpp_lite_topo/test_driver/resolver_failover.sh @@ -1,9 +1,6 @@ source config.sh source odl_utils.sh -source topologies/basic_two_odls.sh - -ODL_CONFIG_FILE1="vpp1.json" -ODL_CONFIG_FILE2="vpp2.json" +source topologies/2_node_topo.sh if [ "$1" == "clean" ] ; then basic_two_odls_clean @@ -15,18 +12,11 @@ if [[ $(id -u) != 0 ]]; then exit 1 fi -function start_map_resolver -{ - echo "starting dummy map resolver on interface $1" - python scripts/dummy_mr.py "$1" 4342 & - mr_id=$! -} - function test_resolver_failover { - basic_two_odls_setup + 2_node_topo_setup no_odl - start_map_resolver "6.0.3.100" + start_map_resolver "6.0.3.200" test_result=1 @@ -38,7 +28,7 @@ function test_resolver_failover # test done maybe_pause - basic_two_odls_clean + 2_node_topo_clean no_odl kill $mr_id print_status $rc "No ICMP response!" diff --git a/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh b/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh index 9e8cf6d..c882c0e 100644 --- a/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh +++ b/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh @@ -5,13 +5,15 @@ # | MR | # | | # +--------+ -# |6.0.3.100 +# odl |6.0.3.100 #6:0:1::2 |6:0:3::100 #6.0.1.2 vpp1 +--------+ | +--------+ # +---------+ |intervpp1 |intervpp2| |vpp2 # | VPP1 +----------+---------+ VPP2 +---------+ -# | | | | 6.0.2.2 -# +--------+ +--------+ 6:0:2::2 +# | | | | | 6.0.2.2 +# +--------+ | +--------+ 6:0:2::2 +# +mr +# 6.0.3.200 # function set_arp @@ -47,6 +49,7 @@ function 2_node_topo_clean ip link del dev veth_intervpp1 &> /dev/null ip link del dev veth_intervpp2 &> /dev/null ip link del dev veth_odl &> /dev/null + ip link del dev veth_mr &> /dev/null ip netns del vppns1 &> /dev/null ip netns del vppns2 &> /dev/null ip netns del intervppns &> /dev/null @@ -68,18 +71,22 @@ function 2_node_topo_setup ip link add veth_intervpp1 type veth peer name intervpp1 ip link add veth_intervpp2 type veth peer name intervpp2 ip link add veth_odl type veth peer name odl + ip link add veth_mr type veth peer name mr ip link set dev intervpp1 up ip link set dev intervpp2 up ip link set dev odl up + ip link set dev mr up ip link set dev veth_intervpp1 up netns intervppns ip link set dev veth_intervpp2 up netns intervppns ip link set dev veth_odl up netns intervppns + ip link set dev veth_mr up netns intervppns # create bridge in intervppns and add vpp and odl interfaces ip netns exec intervppns brctl addbr vppbr ip netns exec intervppns brctl addif vppbr veth_intervpp1 ip netns exec intervppns brctl addif vppbr veth_intervpp2 ip netns exec intervppns brctl addif vppbr veth_odl + ip netns exec intervppns brctl addif vppbr veth_mr ip netns exec intervppns ifconfig vppbr up # create and configure 1st veth client to vpp pair @@ -115,6 +122,9 @@ function 2_node_topo_setup ip addr add 6:0:3::100/64 dev odl ethtool --offload odl rx off tx off + ip addr add 6.0.3.200/24 dev mr + ethtool --offload mr rx off tx off + # generate config files ./scripts/generate_config.py ${VPP_LITE_CONF} ${CFG_METHOD} diff --git a/tests/data_plane/vpp_lite_topo/topologies/basic_two_odls.sh b/tests/data_plane/vpp_lite_topo/topologies/basic_two_odls.sh deleted file mode 100644 index 7e6eda6..0000000 --- a/tests/data_plane/vpp_lite_topo/topologies/basic_two_odls.sh +++ /dev/null @@ -1,102 +0,0 @@ - -#!/usr/bin/env bash - -function basic_two_odls_clean -{ - echo "Clearing all VPP instances.." - pkill vpp --signal 9 - rm /dev/shm/* - - echo "Cleaning topology.." - ip netns exec intervppns ifconfig vppbr down - ip netns exec intervppns brctl delbr vppbr - ip link del dev veth_vpp1 &> /dev/null - ip link del dev veth_vpp2 &> /dev/null - ip link del dev veth_intervpp1 &> /dev/null - ip link del dev veth_intervpp2 &> /dev/null - ip link del dev veth_odl1 &> /dev/null - ip link del dev veth_odl2 &> /dev/null - ip netns del vppns1 &> /dev/null - ip netns del vppns2 &> /dev/null - ip netns del intervppns &> /dev/null -} - -function basic_two_odls_setup -{ - - # create vpp to clients and inter-vpp namespaces - ip netns add vppns1 - ip netns add vppns2 - ip netns add intervppns - - # create vpp and odl interfaces and set them in intervppns - ip link add veth_intervpp1 type veth peer name intervpp1 - ip link add veth_intervpp2 type veth peer name intervpp2 - ip link add veth_odl1 type veth peer name odl1 - ip link add veth_odl2 type veth peer name odl2 - ip link set dev intervpp1 up - ip link set dev intervpp2 up - ip link set dev odl1 up - ip link set dev odl2 up - ip link set dev veth_intervpp1 up netns intervppns - ip link set dev veth_intervpp2 up netns intervppns - ip link set dev veth_odl1 up netns intervppns - ip link set dev veth_odl2 up netns intervppns - - # create bridge in intervppns and add vpp and odl interfaces - ip netns exec intervppns brctl addbr vppbr - ip netns exec intervppns brctl addif vppbr veth_intervpp1 - ip netns exec intervppns brctl addif vppbr veth_intervpp2 - ip netns exec intervppns brctl addif vppbr veth_odl1 - ip netns exec intervppns brctl addif vppbr veth_odl2 - ip netns exec intervppns ifconfig vppbr up - - # create and configure 1st veth client to vpp pair - ip link add veth_vpp1 type veth peer name vpp1 - ip link set dev vpp1 up - ip link set dev veth_vpp1 up netns vppns1 - - # create and configure 2nd veth client to vpp pair - ip link add veth_vpp2 type veth peer name vpp2 - ip link set dev vpp2 up - ip link set dev veth_vpp2 up netns vppns2 - - ip netns exec vppns1 \ - bash -c " - ip link set dev lo up - ip addr add 6.0.1.2/24 dev veth_vpp1 - ip route add 6.0.2.0/24 via 6.0.1.1 - " - - ip netns exec vppns2 \ - bash -c " - ip link set dev lo up - ip addr add 6.0.2.2/24 dev veth_vpp2 - ip route add 6.0.1.0/24 via 6.0.2.1 - " - - # set odl iface ip and disable checksum offloading - ip addr add 6.0.3.100/24 dev odl1 - ethtool --offload odl1 rx off tx off - - # generate config files - ./scripts/generate_config.py ${VPP_LITE_CONF} ${CFG_METHOD} - - start_vpp 5002 vpp1 - start_vpp 5003 vpp2 - - echo "* Selected configuration method: $CFG_METHOD" - if [ "$CFG_METHOD" == "cli" ] ; then - echo "exec ${VPP_LITE_CONF}/vpp1.cli" | nc 0 5002 - echo "exec ${VPP_LITE_CONF}/vpp2.cli" | nc 0 5003 - elif [ "$CFG_METHOD" == "vat" ] ; then - sleep 2 - ${VPP_API_TEST} chroot prefix vpp1 script in ${VPP_LITE_CONF}/vpp1.vat - ${VPP_API_TEST} chroot prefix vpp2 script in ${VPP_LITE_CONF}/vpp2.vat - else - echo "=== WARNING:" - echo "=== Invalid configuration method selected!" - echo "=== To resolve this set env variable CFG_METHOD to vat or cli." - echo "===" - fi -} diff --git a/tests/data_plane/vpp_lite_topo/topologies/two_customers_topo.sh b/tests/data_plane/vpp_lite_topo/topologies/two_customers_topo.sh index 645077d..f594d45 100644 --- a/tests/data_plane/vpp_lite_topo/topologies/two_customers_topo.sh +++ b/tests/data_plane/vpp_lite_topo/topologies/two_customers_topo.sh @@ -112,6 +112,7 @@ function two_customers_topo_setup { # generate config files ./scripts/generate_config.py ${VPP_LITE_CONF} ${CFG_METHOD} + sleep 3 start_vpp 5002 vpp1 start_vpp 5003 vpp2 -- cgit 1.2.3-korg