Bump versions by x.y.(z+1)
[lispflowmapping.git] / resources / tutorial / FD_io / topology_setup.sh
1 #!/usr/bin/env bash
2 # path to vpp executable and configurations folder
3 VPP_LITE_BIN=/vpp/build-root/install-vpp_lite_debug-native/vpp/bin/vpp
4 VPP_LITE_CONF=/etc/vpp/lite/
5
6 pkill vpp
7
8 # delete previous incarnations if they exist
9 ip netns exec xtr-rtr-ns ifconfig vppbr1 down
10 ip netns exec xtr-rtr-ns brctl delbr vppbr1
11 ip link del dev vpp1 &> /dev/null
12 ip link del dev vpp2 &> /dev/null
13 ip link del dev xtr_rtr1 &> /dev/null
14 ip link del dev xtr_rtr2 &> /dev/null
15 ip link del dev xtr_rtr3 &> /dev/null
16 ip link del dev odl &> /dev/null
17
18 ip netns del vpp-ns1 &> /dev/null
19 ip netns del vpp-ns2 &> /dev/null
20 ip netns del xtr-rtr-ns &> /dev/null
21
22 if [ "$1" == "clean" ] ; then
23   exit 0
24 fi
25
26 if [ ! -e ${VPP_LITE_BIN} ] ; then
27   echo "VPP binary not found: $VPP_LITE_BIN"
28   exit 1
29 fi
30
31 ip netns add vpp-ns1
32 ip netns add vpp-ns2
33 ip netns add xtr-rtr-ns
34
35 ip link add veth_xtr_rtr1 type veth peer name xtr_rtr1
36 ip link add veth_xtr_rtr2 type veth peer name xtr_rtr2
37 ip link add veth_xtr_rtr3 type veth peer name xtr_rtr3
38 ip link add veth_odl type veth peer name odl
39 ip link set dev xtr_rtr1 up
40 ip link set dev xtr_rtr2 up
41 ip link set dev xtr_rtr3 up
42 ip link set dev odl up
43
44 ip link set dev veth_xtr_rtr1 up netns xtr-rtr-ns
45 ip link set dev veth_xtr_rtr2 up netns xtr-rtr-ns
46 ip link set dev veth_xtr_rtr3 up netns xtr-rtr-ns
47 ip link set dev veth_odl up netns xtr-rtr-ns
48
49 ip netns exec xtr-rtr-ns brctl addbr vppbr1
50 ip netns exec xtr-rtr-ns brctl addif vppbr1 veth_xtr_rtr1
51 ip netns exec xtr-rtr-ns brctl addif vppbr1 veth_xtr_rtr2
52 ip netns exec xtr-rtr-ns brctl addif vppbr1 veth_xtr_rtr3
53 ip netns exec xtr-rtr-ns brctl addif vppbr1 veth_odl
54 ip netns exec xtr-rtr-ns ifconfig vppbr1 up
55
56 ip link add veth_vpp1 type veth peer name vpp1
57 ip link set dev vpp1 up
58 ip link set dev veth_vpp1 up netns vpp-ns1
59
60 ip netns exec vpp-ns1 \
61   bash -c "
62     ip link set dev lo up
63     ip addr add 6.0.2.2/24 dev veth_vpp1
64     ip route add 6.0.4.0/24 via 6.0.2.1
65 "
66
67 ip link add veth_vpp2 type veth peer name vpp2
68 ip link set dev vpp2 up
69 ip link set dev veth_vpp2 up netns vpp-ns2
70
71 ip netns exec vpp-ns2 \
72   bash -c "
73     ip link set dev lo up
74     ip addr add 6.0.4.4/24 dev veth_vpp2
75     ip route add 6.0.2.0/24 via 6.0.4.1
76 "
77
78 ifconfig odl 6.0.3.100/24
79 ethtool --offload  odl rx off tx off
80
81 sudo ${VPP_LITE_BIN} \
82   unix { log /tmp/vpp1.log cli-listen \
83          localhost:5002 full-coredump \
84          exec ${VPP_LITE_CONF}/vpp1.config } \
85   api-trace { on } api-segment {prefix xtr1}
86
87 sudo ${VPP_LITE_BIN} \
88   unix { log /tmp/vpp2.log cli-listen \
89          localhost:5003 full-coredump \
90          exec ${VPP_LITE_CONF}/vpp2.config } \
91   api-trace { on } api-segment {prefix xtr2}
92
93 sudo ${VPP_LITE_BIN} \
94   unix { log /tmp/rtr.log cli-listen \
95          localhost:5004 full-coredump \
96          exec ${VPP_LITE_CONF}/rtr.config } \
97   api-trace { on } api-segment {prefix rtr}