6 # 08:55:55:55:55:55 | |
9 # 6:0:1::2 |vpp8 |6:0:3::100
10 # 6.0.1.2 vpp1 +-+------+ | +--------+
11 # +---------+ |xtr1 | xtr2 | |vpp2
12 # | VPP1 +----------+---------+ VPP2 +---------+
13 # +---------+ | | | | 6.0.2.2
14 # 6.0.5.5 vpp3 +-+------+ | +-----+--+ 6:0:2::2
15 # 6:0:5::5 |vpp5 |xtr3 |vpp7
18 # 6.0.10.21 | VPP3 | 08:22:22:22:22:22
19 # 08:11:11:11:11:11 | |
30 function 3_node_star_topo_clean
32 echo "Clearing all VPP instances.."
37 echo "Cleaning 3 node star topology..."
38 ip netns exec xtr-ns ifconfig vppbr1 down
39 ip netns exec xtr-ns brctl delbr vppbr1
40 ip link del dev vpp1 &> /dev/null
41 ip link del dev vpp2 &> /dev/null
42 ip link del dev vpp3 &> /dev/null
43 ip link del dev vpp4 &> /dev/null
44 ip link del dev vpp5 &> /dev/null
45 ip link del dev vpp6 &> /dev/null
46 ip link del dev vpp7 &> /dev/null
47 ip link del dev vpp8 &> /dev/null
48 ip link del dev xtr1 &> /dev/null
49 ip link del dev xtr2 &> /dev/null
50 ip link del dev xtr3 &> /dev/null
51 ip link del dev odl &> /dev/null
53 ip netns del vpp-ns1 &> /dev/null
54 ip netns del vpp-ns2 &> /dev/null
55 ip netns del vpp-ns3 &> /dev/null
56 ip netns del vpp-ns4 &> /dev/null
57 ip netns del vpp-ns5 &> /dev/null
58 ip netns del vpp-ns6 &> /dev/null
59 ip netns del vpp-ns7 &> /dev/null
60 ip netns del vpp-ns8 &> /dev/null
61 ip netns del xtr-ns &> /dev/null
68 odl_mac=`ip a show dev odl | grep "link/ether" | awk '{print $2}'`
69 echo "set ip arp host-xtr1 6.0.3.100 $odl_mac" | nc 0 5002
70 echo "set ip arp host-xtr2 6.0.3.100 $odl_mac" | nc 0 5003
71 echo "set ip arp host-xtr3 6.0.3.100 $odl_mac" | nc 0 5004
73 mac1=`ip netns exec vpp-ns5 ip a show dev veth_vpp5 | grep "link/ether" | awk '{print $2}'`
74 ip netns exec vpp-ns6 arp -s 6.0.10.21 $mac1
76 mac2=`ip netns exec vpp-ns8 ip a show dev veth_vpp8 | grep "link/ether" | awk '{print $2}'`
77 ip netns exec vpp-ns7 arp -s 6.0.10.25 $mac2
79 mac3=`ip netns exec vpp-ns7 ip a show dev veth_vpp7 | grep "link/ether" | awk '{print $2}'`
80 ip netns exec vpp-ns5 arp -s 6.0.10.22 $mac3
81 ip netns exec vpp-ns8 arp -s 6.0.10.22 $mac3
84 function 3_node_star_topo_setup
96 ip link add veth_xtr1 type veth peer name xtr1
97 ip link add veth_xtr2 type veth peer name xtr2
98 ip link add veth_xtr3 type veth peer name xtr3
99 ip link add veth_odl type veth peer name odl
100 ip link set dev xtr1 up
101 ip link set dev xtr2 up
102 ip link set dev xtr3 up
103 ip link set dev odl up
105 ip link set dev veth_xtr1 up netns xtr-ns
106 ip link set dev veth_xtr2 up netns xtr-ns
107 ip link set dev veth_xtr3 up netns xtr-ns
108 ip link set dev veth_odl up netns xtr-ns
110 ip netns exec xtr-ns brctl addbr vppbr1
111 ip netns exec xtr-ns brctl addif vppbr1 veth_xtr1
112 ip netns exec xtr-ns brctl addif vppbr1 veth_xtr2
113 ip netns exec xtr-ns brctl addif vppbr1 veth_xtr3
114 ip netns exec xtr-ns brctl addif vppbr1 veth_odl
115 ip netns exec xtr-ns ifconfig vppbr1 up
117 ip link add veth_vpp1 type veth peer name vpp1
118 ip link set dev vpp1 up
119 ip link set dev veth_vpp1 up netns vpp-ns1
121 ip netns exec vpp-ns1 \
123 ip link set dev lo up
124 ip addr add 6.0.1.2/24 dev veth_vpp1
125 ip addr add 6:0:1::2/64 dev veth_vpp1
126 ip route add 6.0.2.0/24 via 6.0.1.1
127 ip route add 6:0:2::0/64 via 6:0:1::1
130 ip link add veth_vpp2 type veth peer name vpp2
131 ip link set dev vpp2 up
132 ip link set dev veth_vpp2 up netns vpp-ns2
134 ip netns exec vpp-ns2 \
136 ip link set dev lo up
137 ip addr add 6.0.2.2/24 dev veth_vpp2
138 ip addr add 6:0:2::2/64 dev veth_vpp2
139 ip route add 6.0.1.0/24 via 6.0.2.1
140 ip route add 6:0:1::0/64 via 6:0:2::1
143 ip link add veth_vpp3 type veth peer name vpp3
144 ip link set dev vpp3 up
145 ip link set dev veth_vpp3 up netns vpp-ns3
147 ip netns exec vpp-ns3 \
149 ip link set dev lo up
150 ip addr add 6.0.5.5/24 dev veth_vpp3
151 ip addr add 6:0:5::5/64 dev veth_vpp3
152 ip route add 6.0.2.0/24 via 6.0.5.1
153 ip route add 6:0:2::0/64 via 6:0:5::1
156 ip link add veth_vpp4 type veth peer name vpp4
157 ip link set dev vpp4 up
158 ip link set dev veth_vpp4 up netns vpp-ns4
160 ip netns exec vpp-ns4 \
162 ip link set dev lo up
163 ip addr add 6.0.2.2/24 dev veth_vpp4
164 ip addr add 6:0:2::2/64 dev veth_vpp4
165 ip route add 6.0.5.0/24 via 6.0.2.1
166 ip route add 6:0:5::0/64 via 6:0:2::1
169 ip link add veth_vpp5 type veth peer name vpp5
170 ip link set dev vpp5 up
171 ip link set dev veth_vpp5 address 08:11:11:11:11:11
172 ip link set dev veth_vpp5 up netns vpp-ns5
174 ip netns exec vpp-ns5 \
176 ip link set dev lo up
177 ip addr add 6.0.10.21/24 dev veth_vpp5
180 ip link add veth_vpp6 type veth peer name vpp6
181 ip link set dev vpp6 up
182 ip link set dev veth_vpp6 address 08:22:22:22:22:22
183 ip link set dev veth_vpp6 up netns vpp-ns6
185 ip netns exec vpp-ns6 \
187 ip link set dev lo up
188 ip addr add 6.0.10.22/24 dev veth_vpp6
191 ip link add veth_vpp7 type veth peer name vpp7
192 ip link set dev vpp7 up
193 ip link set dev veth_vpp7 address 08:22:22:22:22:22
194 ip link set dev veth_vpp7 up netns vpp-ns7
196 ip netns exec vpp-ns7 \
198 ip link set dev lo up
199 ip addr add 6.0.10.22/24 dev veth_vpp7
202 ip link add veth_vpp8 type veth peer name vpp8
203 ip link set dev vpp8 up
204 ip link set dev veth_vpp8 address 08:55:55:55:55:55
205 ip link set dev veth_vpp8 up netns vpp-ns8
207 ip netns exec vpp-ns8 \
209 ip link set dev lo up
210 ip addr add 6.0.10.25/24 dev veth_vpp8
213 ip addr add 6.0.3.100/24 dev odl
214 ip addr add 6:0:3::100/64 dev odl
215 ethtool --offload odl rx off tx off
217 # generate config files
218 ./scripts/generate_config.py ${VPP_LITE_CONF} ${CFG_METHOD}
224 echo "* Selected configuration method: $CFG_METHOD"
225 if [ "$CFG_METHOD" == "cli" ] ; then
226 echo "exec ${VPP_LITE_CONF}/vpp1.cli" | nc 0 5002
227 echo "exec ${VPP_LITE_CONF}/vpp2.cli" | nc 0 5003
228 echo "exec ${VPP_LITE_CONF}/vpp3.cli" | nc 0 5004
229 elif [ "$CFG_METHOD" == "vat" ] ; then
231 ${VPP_API_TEST} chroot prefix vpp1 script in ${VPP_LITE_CONF}/vpp1.vat
232 ${VPP_API_TEST} chroot prefix vpp2 script in ${VPP_LITE_CONF}/vpp2.vat
233 ${VPP_API_TEST} chroot prefix vpp3 script in ${VPP_LITE_CONF}/vpp3.vat
236 echo "=== Invalid configuration method selected!"
237 echo "=== To resolve this set env variable CFG_METHOD to vat or cli."
241 post_curl "add-mapping" ${ODL_CONFIG_FILE1}
242 post_curl "add-mapping" ${ODL_CONFIG_FILE2}