]>
Commit | Line | Data |
---|---|---|
c75d1511 BP |
1 | dnl OVS_VSCTL_SETUP |
2 | dnl | |
3 | dnl Creates an empty database in the current directory and then starts | |
4 | dnl an ovsdb-server on it for ovs-vsctl to connect to. | |
5 | m4_define([OVS_VSCTL_SETUP], | |
24c8ae53 | 6 | [OVSDB_INIT([db]) |
0b1fae1b | 7 | AT_CHECK([ovsdb-server --detach --pidfile=$PWD/pid --remote=punix:socket --unixctl=$PWD/unixctl db >/dev/null 2>&1], [0], [ignore], [ignore])]) |
c75d1511 BP |
8 | |
9 | dnl OVS_VSCTL_CLEANUP | |
10 | dnl | |
11 | dnl Kills off the database server. | |
12 | m4_define([OVS_VSCTL_CLEANUP], [test ! -e pid || kill `cat pid`]) | |
13 | ||
3b135da3 BP |
14 | dnl RUN_OVS_VSCTL(COMMAND, ...) |
15 | dnl | |
c75d1511 | 16 | dnl Executes each ovs-vsctl COMMAND. |
3b135da3 | 17 | m4_define([RUN_OVS_VSCTL], |
b54e22e9 | 18 | [m4_foreach([command], [$@], [ovs-vsctl --no-wait -vreconnect:ANY:emer --db=unix:socket -- command |
460aad80 BP |
19 | ])]) |
20 | m4_define([RUN_OVS_VSCTL_ONELINE], | |
b54e22e9 | 21 | [m4_foreach([command], [$@], [ovs-vsctl --no-wait -vreconnect:ANY:emer --db=unix:socket --oneline -- command |
3b135da3 BP |
22 | ])]) |
23 | ||
4d14e30f BP |
24 | dnl RUN_OVS_VSCTL_TOGETHER(COMMAND, ...) |
25 | dnl | |
c75d1511 | 26 | dnl Executes each ovs-vsctl COMMAND in a single run of ovs-vsctl. |
4d14e30f | 27 | m4_define([RUN_OVS_VSCTL_TOGETHER], |
b54e22e9 | 28 | [ovs-vsctl --no-wait -vreconnect:ANY:emer --db=unix:socket --oneline dnl |
460aad80 | 29 | m4_foreach([command], [$@], [ -- command])]) |
4d14e30f | 30 | |
8e58fa9a | 31 | dnl CHECK_BRIDGES([BRIDGE, PARENT, VLAN], ...) |
3b135da3 BP |
32 | dnl |
33 | dnl Verifies that "ovs-vsctl list-br" prints the specified list of bridges, | |
8e58fa9a BP |
34 | dnl which must be in alphabetical order. Also checks that each BRIDGE has the |
35 | dnl specified PARENT and is on the given VLAN. | |
36 | m4_define([_CHECK_BRIDGE], | |
37 | [AT_CHECK([RUN_OVS_VSCTL([br-to-parent $1])], [0], [$2 | |
c75d1511 | 38 | ], [], [OVS_VSCTL_CLEANUP]) |
2792c2ad BP |
39 | |
40 | # Check br-to-vlan, without --oneline. | |
8e58fa9a | 41 | AT_CHECK([RUN_OVS_VSCTL([br-to-vlan $1])], [0], [$3 |
c75d1511 | 42 | ], [], [OVS_VSCTL_CLEANUP]) |
2792c2ad BP |
43 | # Check br-to-vlan, with --oneline. |
44 | # (This particular test is interesting with --oneline because it returns | |
45 | # an integer instead of a string and that can cause type mismatches inside | |
46 | # python if not done carefully.) | |
460aad80 | 47 | AT_CHECK([RUN_OVS_VSCTL_ONELINE([br-to-vlan $1])], [0], [$3 |
c75d1511 | 48 | ], [], [OVS_VSCTL_CLEANUP]) |
4d14e30f BP |
49 | |
50 | # Check multiple queries in a single run. | |
51 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER([br-to-parent $1], [br-to-vlan $1])], [0], | |
52 | [$2 | |
53 | $3 | |
c75d1511 | 54 | ], [], [OVS_VSCTL_CLEANUP])]) |
3b135da3 | 55 | m4_define([CHECK_BRIDGES], |
2792c2ad | 56 | [dnl Check that the bridges appear on list-br, without --oneline. |
8e58fa9a | 57 | AT_CHECK( |
3b135da3 BP |
58 | [RUN_OVS_VSCTL([list-br])], |
59 | [0], | |
8e58fa9a | 60 | [m4_foreach([brinfo], [$@], [m4_car(brinfo) |
c75d1511 BP |
61 | ])], |
62 | [], | |
63 | [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 64 | |
2792c2ad BP |
65 | dnl Check that the bridges appear on list-br, with --oneline. |
66 | AT_CHECK( | |
460aad80 | 67 | [RUN_OVS_VSCTL_ONELINE([list-br])], |
2792c2ad BP |
68 | [0], |
69 | [m4_join([\n], m4_foreach([brinfo], [$@], [m4_car(brinfo),])) | |
c75d1511 BP |
70 | ], |
71 | [], | |
72 | [OVS_VSCTL_CLEANUP]) | |
2792c2ad | 73 | |
8e58fa9a BP |
74 | dnl Check that each bridge exists according to br-exists and that |
75 | dnl a bridge that should not exist does not. | |
76 | m4_foreach([brinfo], [$@], | |
c75d1511 BP |
77 | [AT_CHECK([RUN_OVS_VSCTL([br-exists m4_car(brinfo)])], [0], [], |
78 | [], [OVS_VSCTL_CLEANUP])]) | |
79 | AT_CHECK([RUN_OVS_VSCTL([br-exists nonexistent])], [2], [], [], | |
80 | [OVS_VSCTL_CLEANUP]) | |
8e58fa9a BP |
81 | |
82 | dnl Check that each bridge has the expected parent and VLAN. | |
83 | m4_map([_CHECK_BRIDGE], [$@])]) | |
3b135da3 BP |
84 | |
85 | dnl CHECK_PORTS(BRIDGE, PORT[, PORT...]) | |
86 | dnl | |
87 | dnl Verifies that "ovs-vsctl list-ports BRIDGE" prints the specified | |
88 | dnl list of ports, which must be in alphabetical order. Also checks | |
89 | dnl that "ovs-vsctl port-to-br" reports that each port is | |
90 | dnl in BRIDGE. | |
91 | m4_define([CHECK_PORTS], | |
2792c2ad BP |
92 | [dnl Check ports without --oneline. |
93 | AT_CHECK( | |
3b135da3 BP |
94 | [RUN_OVS_VSCTL([list-ports $1])], |
95 | [0], | |
96 | [m4_foreach([port], m4_cdr($@), [port | |
c75d1511 BP |
97 | ])], |
98 | [], | |
99 | [OVS_VSCTL_CLEANUP]) | |
2792c2ad BP |
100 | |
101 | dnl Check ports with --oneline. | |
102 | AT_CHECK( | |
460aad80 | 103 | [RUN_OVS_VSCTL_ONELINE([list-ports $1])], |
2792c2ad BP |
104 | [0], |
105 | [m4_join([\n], m4_shift($@)) | |
c75d1511 BP |
106 | ], |
107 | [], | |
108 | [OVS_VSCTL_CLEANUP]) | |
109 | AT_CHECK([RUN_OVS_VSCTL([port-to-br $1])], [1], [], | |
110 | [ovs-vsctl: no port named $1 | |
111 | ], | |
112 | [OVS_VSCTL_CLEANUP]) | |
3b135da3 BP |
113 | m4_foreach( |
114 | [port], m4_cdr($@), | |
115 | [AT_CHECK([RUN_OVS_VSCTL([[port-to-br] port])], [0], [$1 | |
c75d1511 | 116 | ], [], [OVS_VSCTL_CLEANUP])])]) |
3b135da3 BP |
117 | |
118 | dnl CHECK_IFACES(BRIDGE, IFACE[, IFACE...]) | |
119 | dnl | |
120 | dnl Verifies that "ovs-vsctl list-ifaces BRIDGE" prints the specified | |
121 | dnl list of ifaces, which must be in alphabetical order. Also checks | |
122 | dnl that "ovs-vsctl iface-to-br" reports that each interface is | |
123 | dnl in BRIDGE. | |
124 | m4_define([CHECK_IFACES], | |
125 | [AT_CHECK( | |
126 | [RUN_OVS_VSCTL([list-ifaces $1])], | |
127 | [0], | |
128 | [m4_foreach([iface], m4_cdr($@), [iface | |
dfbe07ba BP |
129 | ])], |
130 | [], | |
131 | [OVS_VSCTL_CLEANUP]) | |
c75d1511 BP |
132 | AT_CHECK([RUN_OVS_VSCTL([iface-to-br $1])], [1], [], |
133 | [ovs-vsctl: no interface named $1 | |
134 | ], | |
135 | [OVS_VSCTL_CLEANUP]) | |
3b135da3 BP |
136 | m4_foreach( |
137 | [iface], m4_cdr($@), | |
138 | [AT_CHECK([RUN_OVS_VSCTL([[iface-to-br] iface])], [0], [$1 | |
c75d1511 BP |
139 | ], |
140 | [], [OVS_VSCTL_CLEANUP])])]) | |
3b135da3 | 141 | |
8e58fa9a BP |
142 | dnl ---------------------------------------------------------------------- |
143 | AT_BANNER([ovs-vsctl unit tests -- real bridges]) | |
144 | ||
3b135da3 BP |
145 | AT_SETUP([add-br a]) |
146 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 BP |
147 | OVS_VSCTL_SETUP |
148 | AT_CHECK([RUN_OVS_VSCTL([add-br a])], [0], [], [], [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 149 | CHECK_BRIDGES([a, a, 0]) |
3b135da3 BP |
150 | CHECK_PORTS([a]) |
151 | CHECK_IFACES([a]) | |
c75d1511 | 152 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
153 | AT_CLEANUP |
154 | ||
1125a1b9 BP |
155 | AT_SETUP([add-br a, add-br a]) |
156 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 BP |
157 | OVS_VSCTL_SETUP |
158 | AT_CHECK([RUN_OVS_VSCTL([add-br a])], [0], [], [], [OVS_VSCTL_CLEANUP]) | |
1125a1b9 BP |
159 | AT_CHECK([RUN_OVS_VSCTL([add-br a])], [1], [], |
160 | [ovs-vsctl: cannot create a bridge named a because a bridge named a already exists | |
c75d1511 BP |
161 | ], [OVS_VSCTL_CLEANUP]) |
162 | OVS_VSCTL_CLEANUP | |
1125a1b9 BP |
163 | AT_CLEANUP |
164 | ||
3b135da3 BP |
165 | AT_SETUP([add-br a, add-br b]) |
166 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 BP |
167 | OVS_VSCTL_SETUP |
168 | AT_CHECK([RUN_OVS_VSCTL([add-br a], [add-br b])], [0], [], [], | |
169 | [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 170 | CHECK_BRIDGES([a, a, 0], [b, b, 0]) |
3b135da3 BP |
171 | CHECK_PORTS([a]) |
172 | CHECK_IFACES([a]) | |
173 | CHECK_PORTS([b]) | |
174 | CHECK_IFACES([b]) | |
c75d1511 | 175 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
176 | AT_CLEANUP |
177 | ||
178 | AT_SETUP([add-br a, add-br b, del-br a]) | |
179 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 BP |
180 | OVS_VSCTL_SETUP |
181 | AT_CHECK([RUN_OVS_VSCTL([add-br a], [add-br b], [del-br a])], [0], [], [], | |
182 | [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 183 | CHECK_BRIDGES([b, b, 0]) |
3b135da3 BP |
184 | CHECK_PORTS([b]) |
185 | CHECK_IFACES([b]) | |
c75d1511 | 186 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
187 | AT_CLEANUP |
188 | ||
2792c2ad BP |
189 | AT_SETUP([add-br a, add-port a a1, add-port a a2]) |
190 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 | 191 | OVS_VSCTL_SETUP |
2792c2ad | 192 | AT_CHECK([RUN_OVS_VSCTL( |
dfbe07ba | 193 | [add-br a], |
460aad80 | 194 | [--if-exists del-br b], |
2792c2ad | 195 | [add-port a a1], |
c75d1511 | 196 | [add-port a a2])], [0], [], [], [OVS_VSCTL_CLEANUP]) |
2792c2ad BP |
197 | CHECK_BRIDGES([a, a, 0]) |
198 | CHECK_PORTS([a], [a1], [a2]) | |
199 | CHECK_IFACES([a], [a1], [a2]) | |
c75d1511 | 200 | OVS_VSCTL_CLEANUP |
2792c2ad BP |
201 | AT_CLEANUP |
202 | ||
1125a1b9 BP |
203 | AT_SETUP([add-br a, add-port a a1, add-port a a1]) |
204 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 | 205 | OVS_VSCTL_SETUP |
1125a1b9 BP |
206 | AT_CHECK([RUN_OVS_VSCTL( |
207 | [add-br a], | |
c75d1511 | 208 | [add-port a a1])], [0], [], [], [OVS_VSCTL_CLEANUP]) |
1125a1b9 BP |
209 | AT_CHECK([RUN_OVS_VSCTL([add-port a a1])], [1], [], |
210 | [ovs-vsctl: cannot create a port named a1 because a port named a1 already exists on bridge a | |
c75d1511 BP |
211 | ], [OVS_VSCTL_CLEANUP]) |
212 | OVS_VSCTL_CLEANUP | |
1125a1b9 BP |
213 | AT_CLEANUP |
214 | ||
3b135da3 BP |
215 | AT_SETUP([add-br a b, add-port a a1, add-port b b1, del-br a]) |
216 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 | 217 | OVS_VSCTL_SETUP |
4d14e30f | 218 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER( |
3b135da3 BP |
219 | [add-br a], |
220 | [add-br b], | |
221 | [add-port a a1], | |
222 | [add-port b b1], | |
460aad80 BP |
223 | [--if-exists del-port b b2], |
224 | [del-br a])], [0], [ | |
225 | ||
226 | ||
227 | ||
228 | ||
229 | ||
230 | ], [], [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 231 | CHECK_BRIDGES([b, b, 0]) |
3b135da3 BP |
232 | CHECK_PORTS([b], [b1]) |
233 | CHECK_IFACES([b], [b1]) | |
c75d1511 | 234 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
235 | AT_CLEANUP |
236 | ||
237 | AT_SETUP([add-br a, add-bond a bond0 a1 a2 a3]) | |
238 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 | 239 | OVS_VSCTL_SETUP |
3b135da3 BP |
240 | AT_CHECK([RUN_OVS_VSCTL( |
241 | [add-br a], | |
c75d1511 | 242 | [add-bond a bond0 a1 a2 a3])], [0], [], [], [OVS_VSCTL_CLEANUP]) |
8e58fa9a | 243 | CHECK_BRIDGES([a, a, 0]) |
3b135da3 BP |
244 | CHECK_PORTS([a], [bond0]) |
245 | CHECK_IFACES([a], [a1], [a2], [a3]) | |
c75d1511 | 246 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
247 | AT_CLEANUP |
248 | ||
249 | AT_SETUP([add-br a b, add-port a a1, add-port b b1, del-port a a1]) | |
250 | AT_KEYWORDS([ovs-vsctl]) | |
c75d1511 | 251 | OVS_VSCTL_SETUP |
3b135da3 BP |
252 | AT_CHECK([RUN_OVS_VSCTL( |
253 | [add-br a], | |
254 | [add-br b], | |
255 | [add-port a a1], | |
256 | [add-port b b1], | |
c75d1511 | 257 | [del-port a a1])], [0], [], [], [OVS_VSCTL_CLEANUP]) |
8e58fa9a | 258 | CHECK_BRIDGES([a, a, 0], [b, b, 0]) |
3b135da3 BP |
259 | CHECK_PORTS([a]) |
260 | CHECK_IFACES([a]) | |
261 | CHECK_PORTS([b], [b1]) | |
262 | CHECK_IFACES([b], [b1]) | |
c75d1511 | 263 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
264 | AT_CLEANUP |
265 | ||
3d1b9636 | 266 | AT_SETUP([add-br a, add-bond a bond0 a1 a2 a3, del-port bond0]) |
3b135da3 | 267 | AT_KEYWORDS([ovs-vsctl]) |
c75d1511 | 268 | OVS_VSCTL_SETUP |
4d14e30f | 269 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER( |
3b135da3 BP |
270 | [add-br a], |
271 | [add-bond a bond0 a1 a2 a3], | |
460aad80 BP |
272 | [del-port bond0])], [0], [ |
273 | ||
274 | ||
275 | ], [], [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 276 | CHECK_BRIDGES([a, a, 0]) |
3b135da3 | 277 | CHECK_PORTS([a]) |
c75d1511 | 278 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
279 | AT_CLEANUP |
280 | ||
457e1eb0 BP |
281 | AT_SETUP([external IDs]) |
282 | AT_KEYWORDS([ovs-vsctl]) | |
283 | OVS_VSCTL_SETUP | |
284 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER( | |
460aad80 | 285 | [add-br a], |
457e1eb0 BP |
286 | [add-port a a1], |
287 | [add-bond a bond0 a2 a3], | |
288 | [br-set-external-id a key0 value0], | |
289 | [port-set-external-id a1 key1 value1], | |
290 | [iface-set-external-id a2 key2 value2], | |
291 | [iface-set-external-id a2 key3 value3], | |
292 | [iface-set-external-id a3 key4 value4], | |
293 | [br-get-external-id a], | |
294 | [br-get-external-id a key0], | |
295 | [br-get-external-id a key1], | |
296 | [br-set-external-id a key0 othervalue], | |
297 | [br-get-external-id a], | |
298 | [br-set-external-id a key0], | |
299 | [br-get-external-id a], | |
300 | [port-get-external-id a1], | |
301 | [iface-get-external-id a2], | |
302 | [iface-get-external-id a3])], [0], [ | |
303 | ||
304 | ||
305 | ||
306 | ||
307 | ||
308 | ||
309 | ||
310 | key0=value0 | |
311 | value0 | |
312 | ||
313 | ||
314 | key0=othervalue | |
315 | ||
316 | ||
317 | key1=value1 | |
318 | key2=value2\nkey3=value3 | |
319 | key4=value4 | |
320 | ], [], [OVS_VSCTL_CLEANUP]) | |
321 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER( | |
460aad80 | 322 | [br-get-external-id a], |
457e1eb0 BP |
323 | [port-get-external-id a1], |
324 | [iface-get-external-id a2], | |
325 | [iface-get-external-id a3])], [0], | |
326 | [ | |
327 | key1=value1 | |
328 | key2=value2\nkey3=value3 | |
329 | key4=value4 | |
330 | ], [], [OVS_VSCTL_CLEANUP]) | |
331 | CHECK_BRIDGES([a, a, 0]) | |
332 | CHECK_PORTS([a], [a1], [bond0]) | |
333 | CHECK_IFACES([a], [a1], [a2], [a3]) | |
334 | OVS_VSCTL_CLEANUP | |
335 | AT_CLEANUP | |
336 | ||
8e58fa9a | 337 | dnl ---------------------------------------------------------------------- |
3b135da3 BP |
338 | AT_BANNER([ovs-vsctl unit tests -- fake bridges]) |
339 | ||
dfbe07ba BP |
340 | m4_define([OVS_VSCTL_SETUP_SIMPLE_FAKE_CONF], |
341 | [AT_CHECK( | |
342 | [RUN_OVS_VSCTL( | |
343 | [add-br xenbr0], | |
344 | [add-port xenbr0 eth0], | |
345 | [add-br xapi1 xenbr0 9], | |
346 | [add-port xapi1 eth0.9])], | |
347 | [0], [], [], [OVS_VSCTL_CLEANUP])]) | |
3b135da3 BP |
348 | |
349 | AT_SETUP([simple fake bridge]) | |
350 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
c75d1511 | 351 | OVS_VSCTL_SETUP |
dfbe07ba BP |
352 | OVS_VSCTL_SETUP_SIMPLE_FAKE_CONF |
353 | CHECK_BRIDGES([xapi1, xenbr0, 9], [xenbr0, xenbr0, 0]) | |
3b135da3 BP |
354 | CHECK_PORTS([xenbr0], [eth0]) |
355 | CHECK_IFACES([xenbr0], [eth0]) | |
356 | CHECK_PORTS([xapi1], [eth0.9]) | |
357 | CHECK_IFACES([xapi1], [eth0.9]) | |
c75d1511 | 358 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
359 | AT_CLEANUP |
360 | ||
361 | AT_SETUP([simple fake bridge + del-br fake bridge]) | |
362 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
c75d1511 | 363 | OVS_VSCTL_SETUP |
dfbe07ba BP |
364 | OVS_VSCTL_SETUP_SIMPLE_FAKE_CONF |
365 | AT_CHECK([RUN_OVS_VSCTL([del-br xapi1])], [0], [], [], [OVS_VSCTL_CLEANUP]) | |
8e58fa9a | 366 | CHECK_BRIDGES([xenbr0, xenbr0, 0]) |
3b135da3 BP |
367 | CHECK_PORTS([xenbr0], [eth0]) |
368 | CHECK_IFACES([xenbr0], [eth0]) | |
c75d1511 | 369 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
370 | AT_CLEANUP |
371 | ||
372 | AT_SETUP([simple fake bridge + del-br real bridge]) | |
373 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
c75d1511 | 374 | OVS_VSCTL_SETUP |
dfbe07ba BP |
375 | OVS_VSCTL_SETUP_SIMPLE_FAKE_CONF |
376 | AT_CHECK([RUN_OVS_VSCTL([del-br xenbr0])], [0], [], [], [OVS_VSCTL_CLEANUP]) | |
3b135da3 | 377 | CHECK_BRIDGES |
c75d1511 | 378 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
379 | AT_CLEANUP |
380 | ||
457e1eb0 BP |
381 | AT_SETUP([simple fake bridge + external IDs]) |
382 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
383 | OVS_VSCTL_SETUP | |
384 | OVS_VSCTL_SETUP_SIMPLE_FAKE_CONF | |
385 | AT_CHECK([RUN_OVS_VSCTL_TOGETHER( | |
460aad80 | 386 | [br-set-external-id xenbr0 key0 value0], |
457e1eb0 BP |
387 | [br-set-external-id xapi1 key1 value1], |
388 | [br-get-external-id xenbr0], | |
389 | [br-get-external-id xenbr0 key0], | |
390 | [br-get-external-id xapi1], | |
391 | [br-get-external-id xapi1 key1])], [0], [ | |
392 | ||
393 | key0=value0 | |
394 | value0 | |
395 | key1=value1 | |
396 | value1 | |
397 | ], [], [OVS_VSCTL_CLEANUP]) | |
398 | CHECK_BRIDGES([xapi1, xenbr0, 9], [xenbr0, xenbr0, 0]) | |
399 | CHECK_PORTS([xenbr0], [eth0]) | |
400 | CHECK_IFACES([xenbr0], [eth0]) | |
401 | CHECK_PORTS([xapi1], [eth0.9]) | |
402 | CHECK_IFACES([xapi1], [eth0.9]) | |
403 | OVS_VSCTL_CLEANUP | |
404 | AT_CLEANUP | |
405 | ||
dfbe07ba BP |
406 | m4_define([OVS_VSCTL_SETUP_BOND_FAKE_CONF], |
407 | [AT_CHECK( | |
408 | [RUN_OVS_VSCTL( | |
409 | [add-br xapi1], | |
410 | [add-bond xapi1 bond0 eth0 eth1], | |
411 | [add-br xapi2 xapi1 11], | |
412 | [add-port xapi2 bond0.11])], | |
413 | [0], [], [], [OVS_VSCTL_CLEANUP])]) | |
3b135da3 BP |
414 | |
415 | AT_SETUP([fake bridge on bond]) | |
416 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
c75d1511 | 417 | OVS_VSCTL_SETUP |
dfbe07ba | 418 | OVS_VSCTL_SETUP_BOND_FAKE_CONF |
8e58fa9a | 419 | CHECK_BRIDGES([xapi1, xapi1, 0], [xapi2, xapi1, 11]) |
3b135da3 BP |
420 | CHECK_PORTS([xapi1], [bond0]) |
421 | CHECK_IFACES([xapi1], [eth0], [eth1]) | |
422 | CHECK_PORTS([xapi2], [bond0.11]) | |
423 | CHECK_IFACES([xapi2], [bond0.11]) | |
c75d1511 | 424 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
425 | AT_CLEANUP |
426 | ||
427 | AT_SETUP([fake bridge on bond + del-br fake bridge]) | |
428 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
c75d1511 | 429 | OVS_VSCTL_SETUP |
dfbe07ba | 430 | OVS_VSCTL_SETUP_BOND_FAKE_CONF |
460aad80 | 431 | AT_CHECK([RUN_OVS_VSCTL_ONELINE([del-br xapi2])], [0], [ |
dfbe07ba | 432 | ], [], [OVS_VSCTL_CLEANUP]) |
8e58fa9a | 433 | CHECK_BRIDGES([xapi1, xapi1, 0]) |
3b135da3 BP |
434 | CHECK_PORTS([xapi1], [bond0]) |
435 | CHECK_IFACES([xapi1], [eth0], [eth1]) | |
c75d1511 | 436 | OVS_VSCTL_CLEANUP |
3b135da3 BP |
437 | AT_CLEANUP |
438 | ||
439 | AT_SETUP([fake bridge on bond + del-br real bridge]) | |
440 | AT_KEYWORDS([ovs-vsctl fake-bridge]) | |
dfbe07ba BP |
441 | OVS_VSCTL_SETUP |
442 | OVS_VSCTL_SETUP_BOND_FAKE_CONF | |
3b135da3 BP |
443 | AT_CHECK([RUN_OVS_VSCTL([del-br xapi1])]) |
444 | CHECK_BRIDGES | |
c75d1511 | 445 | OVS_VSCTL_CLEANUP |
3b135da3 | 446 | AT_CLEANUP |