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
10 # read user config file if exists
11 if [ -f "${HOME}/.onerc" ] ; then
12 source "${HOME}/.onerc"
15 if [ ! -f "${VPP_LITE_BIN}" ] ; then
16 echo "Error: VPP binary not found. You can set VPP_LITE_BIN in config.sh"
18 echo "VPP_LITE_BIN=${VPP_LITE_BIN}"
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."
28 echo "VPP_LITE_BIN=${VPP_API_TEST}"
32 if [ "${CFG_METHOD}" == '' ] ; then
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"
43 echo "Clearing all VPP instances.."
45 rm /dev/shm/* &> /dev/null
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
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
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
80 ip link del dev veth_odl &> /dev/null
81 ip link del dev odl &> /dev/null
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
97 if [ "$1" != "no_odl" ] ; then
104 if [ "$WAIT" == "1" ] ; then
105 read -p "press any key to continue .." -n1
112 # start_vpp port prefix
115 unix { log /tmp/$2.log \
117 cli-listen localhost:$1 } \
118 api-trace { on } api-segment { prefix "$2" }
121 function print_status
123 # show_status rc error_msg
124 if [ $1 -ne 0 ] ; then
125 echo "Test failed: $2"
132 function assert_rc_ok
134 # assert_rc_ok rc cleanup_fcn error_msg
135 if [ $1 -ne 0 ] ; then
142 function start_map_resolver
144 echo "starting dummy map resolver on interface $1"
145 python scripts/dummy_mr.py "$1" 4342 &