basic.sh revision f1582371
1source config.sh
2source odl_utils.sh
3source topologies/2_node_topo.sh
4
5ODL_CONFIG_FILE1="vpp1.json"
6ODL_CONFIG_FILE2="vpp2.json"
7ODL_CONFIG_FILE3="update_vpp2.json"
8
9if [ "$1" == "clean" ] ; then
10  2_node_topo_clean
11  exit 0
12fi
13
14if [[ $(id -u) != 0 ]]; then
15  echo "Error: run this as a root."
16  exit 1
17fi
18
19function 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
50function 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
81function 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
114function 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}
155