3 function basic_topo_clean
5 echo "Clearing all VPP instances.."
9 echo "Cleaning topology.."
10 ip netns exec intervppns ifconfig vppbr down
11 ip netns exec intervppns brctl delbr vppbr
12 ip link del dev veth_vpp1 &> /dev/null
13 ip link del dev veth_vpp2 &> /dev/null
14 ip link del dev veth_intervpp1 &> /dev/null
15 ip link del dev veth_intervpp2 &> /dev/null
16 ip link del dev veth_odl &> /dev/null
17 ip netns del vppns1 &> /dev/null
18 ip netns del vppns2 &> /dev/null
19 ip netns del intervppns &> /dev/null
21 if [ "$1" != "no_odl" ] ; then
28 mac1=`ip netns exec vppns1 ip a show dev veth_vpp1 | grep "link/ether" | awk '{print $2}'`
29 ip netns exec vppns2 arp -s 6.0.1.11 $mac1
31 mac2=`ip netns exec vppns2 ip a show dev veth_vpp2 | grep "link/ether" | awk '{print $2}'`
32 ip netns exec vppns1 arp -s 6.0.1.12 $mac2
35 function basic_topo_setup
38 # create vpp to clients and inter-vpp namespaces
41 ip netns add intervppns
43 # create vpp and odl interfaces and set them in intervppns
44 ip link add veth_intervpp1 type veth peer name intervpp1
45 ip link add veth_intervpp2 type veth peer name intervpp2
46 ip link add veth_odl type veth peer name odl
47 ip link set dev intervpp1 up
48 ip link set dev intervpp2 up
49 ip link set dev odl up
50 ip link set dev veth_intervpp1 up netns intervppns
51 ip link set dev veth_intervpp2 up netns intervppns
52 ip link set dev veth_odl up netns intervppns
54 # create bridge in intervppns and add vpp and odl interfaces
55 ip netns exec intervppns brctl addbr vppbr
56 ip netns exec intervppns brctl addif vppbr veth_intervpp1
57 ip netns exec intervppns brctl addif vppbr veth_intervpp2
58 ip netns exec intervppns brctl addif vppbr veth_odl
59 ip netns exec intervppns ifconfig vppbr up
61 # create and configure 1st veth client to vpp pair
62 ip link add veth_vpp1 type veth peer name vpp1
63 ip link set dev vpp1 up
64 ip link set dev veth_vpp1 address 08:11:11:11:11:11
65 ip link set dev veth_vpp1 up netns vppns1
67 # create and configure 2nd veth client to vpp pair
68 ip link add veth_vpp2 type veth peer name vpp2
69 ip link set dev vpp2 up
70 ip link set dev veth_vpp2 address 08:22:22:22:22:22
71 ip link set dev veth_vpp2 up netns vppns2
73 ip netns exec vppns1 \
76 ip addr add 6.0.1.11/24 dev veth_vpp1
77 ip addr add 6:0:1::11/64 dev veth_vpp1
80 ip netns exec vppns2 \
83 ip addr add 6.0.1.12/24 dev veth_vpp2
84 ip addr add 6:0:1::12/64 dev veth_vpp2
87 # set odl iface ip and disable checksum offloading
88 ip addr add 6.0.3.100/24 dev odl
89 ip addr add 6:0:3::100/64 dev odl
90 ethtool --offload odl rx off tx off
92 # start vpp1 and vpp2 in separate chroot
94 unix { log /tmp/vpp1.log cli-listen \
95 localhost:5002 full-coredump \
96 exec ${VPP_LITE_CONF}/vpp1.config } \
97 api-trace { on } api-segment {prefix xtr1}
100 unix { log /tmp/vpp2.log cli-listen \
101 localhost:5003 full-coredump \
102 exec ${VPP_LITE_CONF}/vpp2.config } \
103 api-trace { on } api-segment {prefix xtr2}
105 if [ "$1" != "no_odl" ] ; then
106 post_curl "add-mapping" ${ODL_CONFIG_FILE1}
107 post_curl "add-mapping" ${ODL_CONFIG_FILE2}