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