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
11 # read user config file if exists
12 if [ -f "${HOME}/.onerc" ] ; then
13 source "${HOME}/.onerc"
16 if [ ! -f "${VPP_LITE_BIN}" ] ; then
17 echo "Error: VPP binary not found. You can set VPP_LITE_BIN in config.sh"
19 echo "VPP_LITE_BIN=${VPP_LITE_BIN}"
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."
29 echo "VPP_API_TEST=${VPP_API_TEST}"
33 if [ "${CFG_METHOD}" == '' ] ; then
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"
44 echo "Clearing all VPP instances.."
46 rm /dev/shm/* &> /dev/null
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
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
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
81 ip link del dev veth_odl &> /dev/null
82 ip link del dev odl &> /dev/null
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
98 if [ "$1" != "no_odl" ] ; then
105 if [ "$WAIT" == "1" ] ; then
106 read -p "press any key to continue .." -n1
113 # start_vpp port prefix
116 unix { log /tmp/$2.log \
118 cli-listen localhost:$1 } \
119 api-trace { on } api-segment { prefix "$2" }
122 function print_status
124 # show_status rc error_msg
125 if [ $1 -ne 0 ] ; then
126 echo "Test failed: $2"
133 function assert_rc_ok
135 # assert_rc_ok rc cleanup_fcn error_msg
136 if [ $1 -ne 0 ] ; then
144 function assert_rc_not_ok
146 if [ $1 -eq 0 ] ; then
154 function start_map_resolver
156 echo "starting dummy map resolver on interface $1"
157 python scripts/dummy_mr.py "$1" 4342 &
161 function check_counters
163 python scripts/vat/check_counters.py ${VPP_API_TEST} ${VAT_TEMPLATES} "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8"