Add map register and rloc probe tests
[one.git] / tests / data_plane / vpp_lite_topo / test_driver / basic.sh
1 source config.sh
2 source odl_utils.sh
3 source topologies/2_node_topo.sh
4
5 ODL_CONFIG_FILE1="vpp1.json"
6 ODL_CONFIG_FILE2="vpp2.json"
7 ODL_CONFIG_FILE3="update_vpp2.json"
8
9 if [ "$1" == "clean" ] ; then
10   2_node_topo_clean
11   exit 0
12 fi
13
14 if [[ $(id -u) != 0 ]]; then
15   echo "Error: run this as a root."
16   exit 1
17 fi
18
19 function test_basic
20 {
21   if [ "$3" != "no_setup" ] ; then
22     2_node_topo_setup
23   fi
24
25   maybe_pause
26   test_result=1
27
28   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
29   assert_rc_ok $? 2_node_topo_clean "No ICMP response!"
30
31   maybe_pause
32   # change IP addresses of destination RLOC
33   echo "set int ip address del host-intervpp2 6.0.3.2/24" | nc 0 5003
34   echo "set int ip address host-intervpp2 6.0.3.20/24" | nc 0 5003
35   echo "set int ip address del host-intervpp2 6:0:3::2/64" | nc 0 5003
36   echo "set int ip address host-intervpp2 6:0:3::20/64" | nc 0 5003
37   post_curl "update-mapping" ${ODL_CONFIG_FILE3}
38
39   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
40   rc=$?
41
42   # test done
43
44   maybe_pause
45   2_node_topo_clean
46   print_status $rc "No ICMP response!"
47   exit $test_result
48 }
49
50 function test_basic_map_register
51 {
52   2_node_topo_setup no_odl
53   post_curl "add-key" ${ODL_CONFIG_FILE1}
54   post_curl "add-key" ${ODL_CONFIG_FILE2}
55
56   maybe_pause
57
58   test_result=1
59
60   wait_for_map_register=10
61   echo "Waiting for map registration $wait_for_map_register seconds .."
62   sleep $wait_for_map_register
63
64   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
65   rc=$?
66
67   maybe_pause
68
69   # test done
70   2_node_topo_clean
71   print_status $rc "No ICMP response!"
72   exit $test_result
73 }
74
75 function test_rloc_probe
76 {
77   2_node_topo_setup
78
79   maybe_pause
80   test_result=1
81
82   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
83   rc=$?
84   assert_rc_ok $rc 2_node_topo_clean "No ICMP response!"
85
86   read -p  "Please check RLOC probe messages manually .." -n1
87
88   # test done
89
90   maybe_pause
91   2_node_topo_clean
92   print_status $rc "No ICMP response!"
93   exit $test_result
94 }