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