From ae57efc8dc2cd1d70352497b2cb6d57cddb06fa2 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Wed, 28 Sep 2016 14:31:35 +0200 Subject: [PATCH] Add adjacency test * add 4o4 and 6o6 LISP adjacency tests * rename basic_topo file to 2_node_topo Change-Id: Iea386b10948437f5b6ee3c5539deb22bc923f88e Signed-off-by: Filip Tehlar --- .../basic/4o4_no_odl_adj/vpp1.config | 8 +++++ .../basic/4o4_no_odl_adj/vpp2.config | 8 +++++ .../basic/6o6_no_odl_adj/vpp1.config | 8 +++++ .../basic/6o6_no_odl_adj/vpp2.config | 8 +++++ .../vpp_lite_topo/scripts/cmd_mappings.py | 1 + .../data_plane/vpp_lite_topo/test_driver/basic.sh | 10 +++--- .../test_driver/basic_multi_traffic.sh | 15 ++++----- .../vpp_lite_topo/test_driver/basic_no_odl.sh | 10 +++--- .../vpp_lite_topo/test_driver/basic_single_icmp.sh | 29 ++++++++++++++++ .../tests/test_basic_4o4_no_odl_with_adjacency.sh | 10 ++++++ .../tests/test_basic_6o6_no_odl_with_adjacency.sh | 10 ++++++ .../topologies/{basic_topo.sh => 2_node_topo.sh} | 39 ++++++++++++++++++++-- 12 files changed, 135 insertions(+), 21 deletions(-) create mode 100644 tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp1.config create mode 100644 tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp2.config create mode 100644 tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp1.config create mode 100644 tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp2.config create mode 100644 tests/data_plane/vpp_lite_topo/test_driver/basic_single_icmp.sh create mode 100755 tests/data_plane/vpp_lite_topo/tests/test_basic_4o4_no_odl_with_adjacency.sh create mode 100755 tests/data_plane/vpp_lite_topo/tests/test_basic_6o6_no_odl_with_adjacency.sh rename tests/data_plane/vpp_lite_topo/topologies/{basic_topo.sh => 2_node_topo.sh} (69%) diff --git a/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp1.config b/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp1.config new file mode 100644 index 0000000..b348b11 --- /dev/null +++ b/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp1.config @@ -0,0 +1,8 @@ +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_remote_mapping eid 6.0.2.0/24 rloc 6.0.3.2 +lisp_adjacency seid 6.0.1.0/24 deid 6.0.2.0/24 diff --git a/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp2.config b/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp2.config new file mode 100644 index 0000000..264d9ca --- /dev/null +++ b/tests/data_plane/configs/vpp_lite_config/basic/4o4_no_odl_adj/vpp2.config @@ -0,0 +1,8 @@ +create_host_iface vpp2 6.0.2.1/24 +create_host_iface intervpp2 6.0.3.2/24 + +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_remote_mapping eid 6.0.1.0/24 rloc 6.0.3.1 +lisp_adjacency seid 6.0.2.0/24 deid 6.0.1.0/24 diff --git a/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp1.config b/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp1.config new file mode 100644 index 0000000..22cb8fb --- /dev/null +++ b/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp1.config @@ -0,0 +1,8 @@ +create_host_iface vpp1 6:0:1::1/64 +create_host_iface intervpp1 6:0:3::1/64 + +lisp_state enable +lisp_locator_set_with_locator ls1 host-intervpp1 1 1 +lisp_local_eid eid 6:0:1::0/64 locator-set ls1 +lisp_remote_mapping eid 6:0:2::0/64 rloc 6:0:3::2 +lisp_adjacency seid 6:0:1::0/64 deid 6:0:2::0/64 diff --git a/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp2.config b/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp2.config new file mode 100644 index 0000000..72829af --- /dev/null +++ b/tests/data_plane/configs/vpp_lite_config/basic/6o6_no_odl_adj/vpp2.config @@ -0,0 +1,8 @@ +create_host_iface vpp2 6:0:2::1/64 +create_host_iface intervpp2 6:0:3::2/64 + +lisp_state enable +lisp_locator_set_with_locator ls1 host-intervpp2 1 1 +lisp_local_eid eid 6:0:2::0/64 locator-set ls1 +lisp_remote_mapping eid 6:0:1::0/64 rloc 6:0:3::1 +lisp_adjacency deid 6:0:1::0/64 seid 6:0:2::0/64 diff --git a/tests/data_plane/vpp_lite_topo/scripts/cmd_mappings.py b/tests/data_plane/vpp_lite_topo/scripts/cmd_mappings.py index 87ec8cb..d0d9f0f 100644 --- a/tests/data_plane/vpp_lite_topo/scripts/cmd_mappings.py +++ b/tests/data_plane/vpp_lite_topo/scripts/cmd_mappings.py @@ -58,6 +58,7 @@ SimpleMapping('lisp_map_resolver', 'lisp map-resolver', 'lisp_add_del_map_resolv SimpleMapping('lisp_local_eid', 'lisp eid-table', 'lisp_add_del_local_eid') SimpleMapping('lisp_remote_mapping', 'lisp remote-mapping', 'lisp_add_del_remote_mapping') SimpleMapping('lisp_pitr', 'lisp pitr ls', 'lisp_pitr_set_locator_set locator-set') +SimpleMapping('lisp_adjacency', 'lisp adjacency', 'lisp_add_del_adjacency') SimpleMapping('set_if_ip', 'set int ip address', 'sw_interface_add_del_address') CustomMapping('lisp_eid_map_bd', diff --git a/tests/data_plane/vpp_lite_topo/test_driver/basic.sh b/tests/data_plane/vpp_lite_topo/test_driver/basic.sh index cd10d4c..88753bf 100644 --- a/tests/data_plane/vpp_lite_topo/test_driver/basic.sh +++ b/tests/data_plane/vpp_lite_topo/test_driver/basic.sh @@ -1,13 +1,13 @@ source config.sh source odl_utils.sh -source topologies/basic_topo.sh +source topologies/2_node_topo.sh ODL_CONFIG_FILE1="vpp1.json" ODL_CONFIG_FILE2="vpp2.json" ODL_CONFIG_FILE3="update_vpp2.json" if [ "$1" == "clean" ] ; then - basic_topo_clean + 2_node_topo_clean exit 0 fi @@ -19,14 +19,14 @@ fi function test_basic { if [ "$3" != "no_setup" ] ; then - basic_topo_setup + 2_node_topo_setup fi maybe_pause test_result=1 ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" - assert_rc_ok $? basic_topo_clean "No ICMP response!" + assert_rc_ok $? 2_node_topo_clean "No ICMP response!" maybe_pause # change IP addresses of destination RLOC @@ -42,7 +42,7 @@ function test_basic # test done maybe_pause - basic_topo_clean + 2_node_topo_clean print_status $rc "No ICMP response!" exit $test_result } diff --git a/tests/data_plane/vpp_lite_topo/test_driver/basic_multi_traffic.sh b/tests/data_plane/vpp_lite_topo/test_driver/basic_multi_traffic.sh index 79456b7..ee24891 100644 --- a/tests/data_plane/vpp_lite_topo/test_driver/basic_multi_traffic.sh +++ b/tests/data_plane/vpp_lite_topo/test_driver/basic_multi_traffic.sh @@ -1,13 +1,13 @@ source config.sh source odl_utils.sh -source topologies/basic_topo.sh +source topologies/2_node_topo.sh ODL_CONFIG_FILE1="vpp1.json" ODL_CONFIG_FILE2="vpp2.json" ODL_CONFIG_FILE3="update_vpp2.json" if [ "$1" == "clean" ] ; then - basic_topo_clean + 2_node_topo_clean exit 0 fi @@ -18,7 +18,7 @@ fi function test_basic_multi_traffic { - basic_topo_setup + 2_node_topo_setup # additional setup ODL_CONFIG_DIR=`pwd`/../configs/odl/basic/4o4 @@ -30,10 +30,10 @@ function test_basic_multi_traffic maybe_pause ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" - assert_rc_ok $? basic_topo_clean "No response received!" + assert_rc_ok $? 2_node_topo_clean "No response received!" ip netns exec vppns1 "${3}" -w 15 -c 1 "${4}" - assert_rc_ok $? basic_topo_clean "No response received!" + assert_rc_ok $? 2_node_topo_clean "No response received!" # change IP addresses of destination RLOC echo "set int ip address del host-intervpp2 6.0.3.2/24" | nc 0 5003 @@ -49,7 +49,7 @@ function test_basic_multi_traffic maybe_pause ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" - assert_rc_ok $? basic_topo_clean "No response received!" + assert_rc_ok $? 2_node_topo_clean "No response received!" ip netns exec vppns1 "${3}" -w 15 -c 1 "${4}" rc=$? @@ -57,9 +57,8 @@ function test_basic_multi_traffic maybe_pause # test done - basic_topo_clean + 2_node_topo_clean print_status $rc "No ICMP response!" exit $test_result } - diff --git a/tests/data_plane/vpp_lite_topo/test_driver/basic_no_odl.sh b/tests/data_plane/vpp_lite_topo/test_driver/basic_no_odl.sh index 6d06a16..9996111 100644 --- a/tests/data_plane/vpp_lite_topo/test_driver/basic_no_odl.sh +++ b/tests/data_plane/vpp_lite_topo/test_driver/basic_no_odl.sh @@ -1,9 +1,9 @@ source config.sh source odl_utils.sh -source topologies/basic_topo.sh +source topologies/2_node_topo.sh if [ "$1" == "clean" ] ; then - basic_topo_clean + 2_node_topo_clean exit 0 fi @@ -14,7 +14,7 @@ fi function test_basic_no_odl { - basic_topo_setup no_odl + 2_node_topo_setup no_odl maybe_pause @@ -23,7 +23,7 @@ function test_basic_no_odl ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}" if [ $? -ne 0 ] ; then echo "No response received!" - basic_topo_clean no_odl + 2_node_topo_clean no_odl exit $test_result fi @@ -45,7 +45,7 @@ function test_basic_no_odl # test done - basic_topo_clean no_odl + 2_node_topo_clean no_odl if [ $rc -ne 0 ] ; then echo "Test failed: No ICMP response received within specified timeout limit!" else diff --git a/tests/data_plane/vpp_lite_topo/test_driver/basic_single_icmp.sh b/tests/data_plane/vpp_lite_topo/test_driver/basic_single_icmp.sh new file mode 100644 index 0000000..63c8b5a --- /dev/null +++ b/tests/data_plane/vpp_lite_topo/test_driver/basic_single_icmp.sh @@ -0,0 +1,29 @@ +source config.sh +source topologies/2_node_topo.sh + +if [ "$1" == "clean" ] ; then + 2_node_topo_clean no_odl + exit 0 +fi + +if [[ $(id -u) != 0 ]]; then + echo "Error: run this as a root." + exit 1 +fi + +function test_single_icmp +{ + 2_node_topo_setup no_odl + maybe_pause + test_result=1 + + # send only one ping request + ip netns exec vppns1 "${1}" -c 1 "${2}" + rc=$? + + # test done + maybe_pause + 2_node_topo_clean no_odl + print_status $rc "No ICMP response!" + exit $test_result +} diff --git a/tests/data_plane/vpp_lite_topo/tests/test_basic_4o4_no_odl_with_adjacency.sh b/tests/data_plane/vpp_lite_topo/tests/test_basic_4o4_no_odl_with_adjacency.sh new file mode 100755 index 0000000..7c3f0c3 --- /dev/null +++ b/tests/data_plane/vpp_lite_topo/tests/test_basic_4o4_no_odl_with_adjacency.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# Test basic LISP functionality without odl and adjacencies configured +# (ip4 over ip4) + +VPP_LITE_CONF=`pwd`/../configs/vpp_lite_config/basic/4o4_no_odl_adj + +source test_driver/basic_single_icmp.sh + +test_single_icmp ping "6.0.2.2" diff --git a/tests/data_plane/vpp_lite_topo/tests/test_basic_6o6_no_odl_with_adjacency.sh b/tests/data_plane/vpp_lite_topo/tests/test_basic_6o6_no_odl_with_adjacency.sh new file mode 100755 index 0000000..ef40096 --- /dev/null +++ b/tests/data_plane/vpp_lite_topo/tests/test_basic_6o6_no_odl_with_adjacency.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# Test basic LISP functionality without odl and adjacencies configured +# (ip6 over ip6) + +VPP_LITE_CONF=`pwd`/../configs/vpp_lite_config/basic/6o6_no_odl_adj + +source test_driver/basic_single_icmp.sh + +test_single_icmp ping6 "6:0:2::2" diff --git a/tests/data_plane/vpp_lite_topo/topologies/basic_topo.sh b/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh similarity index 69% rename from tests/data_plane/vpp_lite_topo/topologies/basic_topo.sh rename to tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh index 15aaa51..eafa09e 100644 --- a/tests/data_plane/vpp_lite_topo/topologies/basic_topo.sh +++ b/tests/data_plane/vpp_lite_topo/topologies/2_node_topo.sh @@ -1,6 +1,37 @@ -#!/usr/bin/env bash -function basic_topo_clean +# +# +--------+ +# | | +# | MR | +# | | +# +--------+ +# |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 +# + +function set_arp +{ + mac=`ip netns exec vppns1 ip a show dev veth_vpp1 | grep "link/ether" | awk '{print $2}'` + echo "set ip arp host-vpp1 6.0.1.2 $mac" | nc 0 5002 + echo "set ip6 neighbor host-vpp1 6:0:1::2 $mac" | nc 0 5002 + + mac=`ip netns exec vppns2 ip a show dev veth_vpp2 | grep "link/ether" | awk '{print $2}'` + echo "set ip arp host-vpp2 6.0.2.2 $mac" | nc 0 5003 + echo "set ip6 neighbor host-vpp2 6:0:2::2 $mac" | nc 0 5003 + + mac=`echo "sh hard host-intervpp1" | nc 0 5002 | grep 'Ethernet address' | awk '{print $3}'` + echo "set ip arp host-intervpp2 6.0.3.1 $mac" | nc 0 5003 + + mac=`echo "sh hard host-intervpp2" | nc 0 5003 | grep 'Ethernet address' | awk '{print $3}'` + echo "set ip arp host-intervpp1 6.0.3.2 $mac" | nc 0 5002 +} + +function 2_node_topo_clean { echo "Clearing all VPP instances.." pkill vpp --signal 9 @@ -23,7 +54,7 @@ function basic_topo_clean fi } -function basic_topo_setup +function 2_node_topo_setup { # create vpp to clients and inter-vpp namespaces @@ -107,4 +138,6 @@ function basic_topo_setup post_curl "add-mapping" ${ODL_CONFIG_FILE1} post_curl "add-mapping" ${ODL_CONFIG_FILE2} fi + + set_arp } -- 2.16.6