89fd908e0c505645c38377cfe2a08f9ffe27ba35
[one.git] / tests / data_plane / vpp_lite_topo / config.sh
1 ODL_USER="admin"
2 ODL_PASSWD="admin"
3 ODL_IP="127.0.0.1"
4 ODL_PORT="8181"
5
6 # path to vpp executable
7 VPP_LITE_DIR=/vpp/build-root/install-vpp_debug-native/vpp/bin
8 VPP_LITE_BIN=${VPP_LITE_DIR}/vpp
9 VPP_API_TEST=/vpp/build-root/install-vpp_debug-native/vpp-api-test/bin/vpp_api_test
10
11 # read user config file if exists
12 if [ -f "${HOME}/.onerc" ] ; then
13   source "${HOME}/.onerc"
14 fi
15
16 if [ ! -f "${VPP_LITE_BIN}" ] ; then
17   echo "Error: VPP binary not found. You can set VPP_LITE_BIN in config.sh"
18   echo "Current value:"
19   echo "VPP_LITE_BIN=${VPP_LITE_BIN}"
20   exit 1
21 fi
22
23 if [ ! -f "${VPP_API_TEST}" ] ; then
24   echo "Error: vpp_api_test not found. Either it's not built or environment \
25     variable VPP_API_TEST is not set. You can build vpp_api_test with:"
26   echo "$ make build-vat"
27   echo "VPP_API_TEST can be set in config.sh or in ~/.onerc."
28   echo "Current value:"
29   echo "VPP_API_TEST=${VPP_API_TEST}"
30   exit 1
31 fi
32
33 if [ "${CFG_METHOD}" == '' ] ; then
34   CFG_METHOD=vat
35   echo
36   echo "* INFO: configuration method not selected, defaulting to 'vat'"
37   echo "* To define the method run the test as follows:"
38   echo "* $ sudo CFG_METHOD=vat|cli ./tests/<tc>.sh"
39   echo
40 fi
41
42 function clean_all
43 {
44   echo "Clearing all VPP instances.."
45   pkill vpp --signal 9
46   rm /dev/shm/* &> /dev/null
47
48   echo "Cleaning topology.."
49   ip netns exec intervppns ifconfig vppbr down &> /dev/null
50   ip netns exec intervppns brctl delbr vppbr &> /dev/null
51   ip netns exec intervppns1 ifconfig vppbr down &> /dev/null
52   ip netns exec intervppns1 brctl delbr vppbr &> /dev/null
53   ip netns exec intervppns2 ifconfig vppbr down &> /dev/null
54   ip netns exec intervppns2 brctl delbr vppbr &> /dev/null
55   ip netns exec intervpp-ns ifconfig vppbr1 down &> /dev/null
56   ip netns exec intervpp-ns brctl delbr vppbr1 &> /dev/null
57   ip netns exec xtr-rtr-ns ifconfig vppbr1 down &> /dev/null
58   ip netns exec xtr-rtr-ns brctl delbr vppbr1 &> /dev/null
59
60   ip link del dev veth_vpp1 &> /dev/null
61   ip link del dev veth_vpp2 &> /dev/null
62   ip link del dev vpp1_cus1 &> /dev/null
63   ip link del dev vpp2_cus1 &> /dev/null
64   ip link del dev vpp1_cus2 &> /dev/null
65   ip link del dev vpp2_cus2 &> /dev/null
66   ip link del dev vpp1 &> /dev/null
67   ip link del dev vpp2 &> /dev/null
68
69   ip link del dev veth_intervpp1 &> /dev/null
70   ip link del dev veth_intervpp2 &> /dev/null
71   ip link del dev veth_intervpp11 &> /dev/null
72   ip link del dev veth_intervpp12 &> /dev/null
73   ip link del dev veth_intervpp21 &> /dev/null
74   ip link del dev veth_intervpp22 &> /dev/null
75   ip link del dev intervpp1 &> /dev/null
76   ip link del dev intervpp2 &> /dev/null
77   ip link del dev xtr_rtr1 &> /dev/null
78   ip link del dev xtr_rtr2 &> /dev/null
79   ip link del dev xtr_rtr3 &> /dev/null
80
81   ip link del dev veth_odl &> /dev/null
82   ip link del dev odl &> /dev/null
83
84   ip netns del vppns1 &> /dev/null
85   ip netns del vppns2 &> /dev/null
86   ip netns del intervppns &> /dev/null
87   ip netns del intervppns1 &> /dev/null
88   ip netns del intervppns2 &> /dev/null
89   ip netns del vpp1-cus1-ns &> /dev/null
90   ip netns del vpp1-cus2-ns &> /dev/null
91   ip netns del vpp2-cus1-ns &> /dev/null
92   ip netns del vpp2-cus2-ns &> /dev/null
93   ip netns del intervpp-ns &> /dev/null
94   ip netns del vpp-ns1 &> /dev/null
95   ip netns del vpp-ns2 &> /dev/null
96   ip netns del xtr-rtr-ns &> /dev/null
97
98   if [ "$1" != "no_odl" ] ; then
99     odl_clear_all
100   fi
101 }
102
103 function maybe_pause
104 {
105   if [ "$WAIT" == "1" ] ; then
106     read -p  "press any key to continue .." -n1
107   fi
108 }
109
110
111 function start_vpp
112 {
113   # start_vpp port prefix
114
115   ${VPP_LITE_BIN} \
116     unix { log /tmp/$2.log           \
117            full-coredump             \
118            cli-listen localhost:$1 } \
119     api-trace { on } api-segment { prefix "$2" }
120 }
121
122 function print_status
123 {
124   # show_status rc error_msg
125   if [ $1 -ne 0 ] ; then
126     echo "Test failed: $2"
127   else
128     echo "Test passed."
129     test_result=0
130   fi
131 }
132
133 function assert_rc_ok
134 {
135   # assert_rc_ok rc cleanup_fcn error_msg
136   if [ $1 -ne 0 ] ; then
137     echo $3
138     maybe_pause
139     $2
140     exit $test_result
141   fi
142 }
143
144 function assert_rc_not_ok
145 {
146   if [ $1 -eq 0 ] ; then
147     echo $3
148     maybe_pause
149     $2
150     exit $test_result
151   fi
152 }
153
154 function start_map_resolver
155 {
156   echo "starting dummy map resolver on interface $1"
157   python scripts/dummy_mr.py "$1" 4342 &
158   mr_id=$!
159 }
160
161 function check_counters
162 {
163   python scripts/vat/check_counters.py ${VPP_API_TEST} ${VAT_TEMPLATES} "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8"
164 }
165