0cdf10dd1d9799edfc54614177f40a5afda10f62
[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   count=`echo "show error" | nc 0 5002 | grep 'map-notifies received' | awk '{print $1}'`
68   if [ "$count" -eq 0 ] ; then
69     echo "no map-notifies received! ($count)"
70     rc=1
71   fi
72
73   maybe_pause
74
75   # test done
76   2_node_topo_clean
77   print_status $rc "No ICMP response!"
78   exit $test_result
79 }
80
81 function test_rloc_probe
82 {
83   2_node_topo_setup
84
85   maybe_pause
86   test_result=1
87
88   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
89   rc=$?
90   assert_rc_ok $rc 2_node_topo_clean "No ICMP response!"
91
92   sleep 65
93
94   count=`echo "show error" | nc 0 5002 | grep 'rloc-probe replies received' | awk '{print $1}'`
95   if [ "$count" != "1" ] ; then
96     echo "rloc-probe replies received is not 1! ($count)"
97     rc=1
98   fi
99
100   count=`echo "show error" | nc 0 5003 | grep 'rloc-probe requests received' | awk '{print $1}'`
101   if [ "$count" != "1" ] ; then
102     echo "rloc-probe requests received is not 1! ($count)"
103     rc=1
104   fi
105
106   # test done
107
108   maybe_pause
109   2_node_topo_clean
110   print_status $rc "unexpected value"
111   exit $test_result
112 }
113
114 function test_enable_disable
115 {
116   if [ "$3" != "no_setup" ] ; then
117     2_node_topo_setup
118   fi
119
120   maybe_pause
121   test_result=1
122
123   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
124   assert_rc_ok $? 2_node_topo_clean "No ICMP response!"
125
126   maybe_pause
127
128   # disable control plane
129   echo "one disable" | nc 0 5002
130   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
131   assert_rc_not_ok $? 2_node_topo_clean "Nothing expected, but received ICMP reply!"
132
133   # enable control plane
134   echo "one enable" | nc 0 5002
135   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
136   assert_rc_ok $? 2_node_topo_clean "No ICMP response!"
137
138   # disable dataplane
139   echo "gpe disable" | nc 0 5002
140   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
141   assert_rc_not_ok $? 2_node_topo_clean "Nothing expected, but received ICMP reply!"
142
143   # enable LISP again from control plane
144   echo "one enable" | nc 0 5002
145   ip netns exec vppns1 "${1}" -w 15 -c 1 "${2}"
146   assert_rc_ok $? 2_node_topo_clean "No ICMP response!"
147   rc=$?
148
149   # test done
150   maybe_pause
151   2_node_topo_clean
152   print_status $rc "No ICMP response!"
153   exit $test_result
154 }