42b2d36f8a733f0971ee491f674104d2fe620b50
[cascardo/ovs.git] / tests / ovn-nbctl.at
1 AT_BANNER([ovn-nbctl])
2
3 # OVN_NBCTL_TEST_START
4 m4_define([OVN_NBCTL_TEST_START],
5   [dnl Create ovn-nb database.
6    AT_KEYWORDS([ovn])
7    AT_CHECK([ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema])
8
9    dnl Start ovsdb-server.
10    AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db], [0], [], [stderr])
11    on_exit "kill `cat ovsdb-server.pid`"
12    AT_CHECK([[sed < stderr '
13 /vlog|INFO|opened log file/d
14 /ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d']])
15    AT_CAPTURE_FILE([ovsdb-server.log])
16 ])
17
18 # OVN_NBCTL_TEST_STOP
19 m4_define([OVN_NBCTL_TEST_STOP],
20   [# removes all 'Broken pipe' warning logs from ovsdb-server.log.  this is in
21    # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
22    # to database.  however, in reaction, some daemon (e.g. ovn-controller-vtep)
23    # may immediately update the database.  this later update may cause database
24    # sending update back to *ctl command if *ctl has not proceeded to exit yet.
25    # and if *ctl command exits before database calling send, the send from
26    # database will fail with 'Broken pipe' error.
27    AT_CHECK([check_logs "$1
28 /Broken pipe/d"])
29    OVS_APP_EXIT_AND_WAIT([ovsdb-server])])
30
31
32 AT_SETUP([ovn-nbctl - basic switch commands])
33 OVN_NBCTL_TEST_START
34
35 AT_CHECK([ovn-nbctl ls-add ls0])
36 AT_CHECK([ovn-nbctl ls-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
37 <0> (ls0)
38 ])
39
40 AT_CHECK([ovn-nbctl ls-add ls1])
41 AT_CHECK([ovn-nbctl ls-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
42 <0> (ls0)
43 <1> (ls1)
44 ])
45
46 AT_CHECK([ovn-nbctl ls-del ls0])
47 AT_CHECK([ovn-nbctl ls-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
48 <0> (ls1)
49 ])
50
51 AT_CHECK([ovn-nbctl show ls0])
52 AT_CHECK([ovn-nbctl ls-add ls0])
53 AT_CHECK([ovn-nbctl show ls0 | ${PERL} $srcdir/uuidfilt.pl], [0],
54   [    switch <0> (ls0)
55 ])
56 AT_CHECK([ovn-nbctl ls-add ls0], [1], [],
57   [ovn-nbctl: ls0: a switch with this name already exists
58 ])
59 AT_CHECK([ovn-nbctl --may-exist ls-add ls0])
60 AT_CHECK([ovn-nbctl show ls0 | ${PERL} $srcdir/uuidfilt.pl], [0],
61   [    switch <0> (ls0)
62 ])
63 AT_CHECK([ovn-nbctl --add-duplicate ls-add ls0])
64 AT_CHECK([ovn-nbctl --may-exist --add-duplicate ls-add ls0], [1], [],
65   [ovn-nbctl: --may-exist and --add-duplicate may not be used together
66 ])
67 AT_CHECK([ovn-nbctl ls-del ls0], [1], [],
68   [ovn-nbctl: Multiple logical switches named 'ls0'.  Use a UUID.
69 ])
70
71 AT_CHECK([ovn-nbctl ls-del ls2], [1], [],
72   [ovn-nbctl: ls2: switch name not found
73 ])
74 AT_CHECK([ovn-nbctl --if-exists ls-del ls2])
75
76 AT_CHECK([ovn-nbctl ls-add])
77 AT_CHECK([ovn-nbctl ls-add])
78 AT_CHECK([ovn-nbctl --add-duplicate ls-add], [1], [],
79   [ovn-nbctl: --add-duplicate requires specifying a name
80 ])
81 AT_CHECK([ovn-nbctl --may-exist ls-add], [1], [],
82   [ovn-nbctl: --may-exist requires specifying a name
83 ])
84
85 OVN_NBCTL_TEST_STOP
86 AT_CLEANUP
87
88 dnl ---------------------------------------------------------------------
89
90 AT_SETUP([ovn-nbctl - basic logical switch port commands])
91 OVN_NBCTL_TEST_START
92
93 AT_CHECK([ovn-nbctl ls-add ls0])
94 AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
95 AT_CHECK([ovn-nbctl lsp-add ls0 lp0], [1], [],
96   [ovn-nbctl: lp0: a port with this name already exists
97 ])
98 AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp0])
99 AT_CHECK([ovn-nbctl lsp-list ls0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
100 <0> (lp0)
101 ])
102
103 AT_CHECK([ovn-nbctl lsp-add ls0 lp1])
104 AT_CHECK([ovn-nbctl lsp-list ls0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
105 <0> (lp0)
106 <1> (lp1)
107 ])
108
109 AT_CHECK([ovn-nbctl ls-add ls1])
110 AT_CHECK([ovn-nbctl lsp-add ls0 lp1], [1], [],
111   [ovn-nbctl: lp1: a port with this name already exists
112 ])
113 AT_CHECK([ovn-nbctl --may-exist lsp-add ls1 lp1], [1], [],
114   [ovn-nbctl: lp1: port already exists but in switch ls0
115 ])
116 AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp1 lp0 5], [1], [],
117   [ovn-nbctl: lp1: port already exists but has no parent
118 ])
119
120 AT_CHECK([ovn-nbctl lsp-del lp1])
121 AT_CHECK([ovn-nbctl lsp-list ls0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
122 <0> (lp0)
123 ])
124
125 AT_CHECK([ovn-nbctl lsp-add ls0 lp2 lp3 5])
126 AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp4 5], [1], [],
127   [ovn-nbctl: lp2: port already exists with different parent lp3
128 ])
129 AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 10], [1], [],
130   [ovn-nbctl: lp2: port already exists with different tag 5
131 ])
132 AT_CHECK([ovn-nbctl clear Logical_Switch_Port lp2 tag])
133 AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 5], [1], [],
134   [ovn-nbctl: lp2: port already exists but has no tag
135 ])
136
137 OVN_NBCTL_TEST_STOP
138 AT_CLEANUP
139
140 dnl ---------------------------------------------------------------------
141
142 AT_SETUP([ovn-nbctl - lport addresses])
143 OVN_NBCTL_TEST_START
144
145 AT_CHECK([ovn-nbctl ls-add ls0])
146 AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
147 AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
148 ])
149
150 AT_CHECK([ovn-nbctl lsp-set-addresses lp0 00:11:22:33:44:55 unknown])
151 AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
152 00:11:22:33:44:55
153 unknown
154 ])
155
156 AT_CHECK([ovn-nbctl lsp-set-addresses lp0])
157 AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
158 ])
159
160 OVN_NBCTL_TEST_STOP
161 AT_CLEANUP
162
163 dnl ---------------------------------------------------------------------
164
165 AT_SETUP([ovn-nbctl - port security])
166 OVN_NBCTL_TEST_START
167
168 AT_CHECK([ovn-nbctl ls-add ls0])
169 AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
170 AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
171 ])
172
173 AT_CHECK([ovn-nbctl lsp-set-port-security lp0 aa:bb:cc:dd:ee:ff 00:11:22:33:44:55])
174 AT_CHECK([ovn-nbctl lsp-get-port-security lp0], [0], [dnl
175 00:11:22:33:44:55
176 aa:bb:cc:dd:ee:ff
177 ])
178
179 AT_CHECK([ovn-nbctl lsp-set-port-security lp0])
180 AT_CHECK([ovn-nbctl lsp-get-port-security lp0], [0], [dnl
181 ])
182
183 OVN_NBCTL_TEST_STOP
184 AT_CLEANUP
185
186 dnl ---------------------------------------------------------------------
187
188 AT_SETUP([ovn-nbctl - ACLs])
189 OVN_NBCTL_TEST_START
190
191 AT_CHECK([ovn-nbctl ls-add ls0])
192 AT_CHECK([ovn-nbctl --log acl-add ls0 from-lport 600 udp drop])
193 AT_CHECK([ovn-nbctl --log acl-add ls0 to-lport 500 udp drop])
194 AT_CHECK([ovn-nbctl acl-add ls0 from-lport 400 tcp drop])
195 AT_CHECK([ovn-nbctl acl-add ls0 to-lport 300 tcp drop])
196 AT_CHECK([ovn-nbctl acl-add ls0 from-lport 200 ip drop])
197 AT_CHECK([ovn-nbctl acl-add ls0 to-lport 100 ip drop])
198
199 AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
200 from-lport   600 (udp) drop log
201 from-lport   400 (tcp) drop
202 from-lport   200 (ip) drop
203   to-lport   500 (udp) drop log
204   to-lport   300 (tcp) drop
205   to-lport   100 (ip) drop
206 ])
207
208 dnl Delete in one direction.
209 AT_CHECK([ovn-nbctl acl-del ls0 to-lport])
210 AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
211 from-lport   600 (udp) drop log
212 from-lport   400 (tcp) drop
213 from-lport   200 (ip) drop
214 ])
215
216 dnl Delete all ACLs.
217 AT_CHECK([ovn-nbctl acl-del ls0])
218 AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
219 ])
220
221 AT_CHECK([ovn-nbctl acl-add ls0 from-lport 600 udp drop])
222 AT_CHECK([ovn-nbctl acl-add ls0 from-lport 400 tcp drop])
223 AT_CHECK([ovn-nbctl acl-add ls0 from-lport 200 ip drop])
224
225 dnl Delete a single flow.
226 AT_CHECK([ovn-nbctl acl-del ls0 from-lport 400 tcp])
227 AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
228 from-lport   600 (udp) drop
229 from-lport   200 (ip) drop
230 ])
231
232 OVN_NBCTL_TEST_STOP
233 AT_CLEANUP
234
235 dnl ---------------------------------------------------------------------
236
237 AT_SETUP([ovn-nbctl - basic logical router commands])
238 OVN_NBCTL_TEST_START
239
240 AT_CHECK([ovn-nbctl lr-add lr0])
241 AT_CHECK([ovn-nbctl lr-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
242 <0> (lr0)
243 ])
244
245 AT_CHECK([ovn-nbctl lr-add lr1])
246 AT_CHECK([ovn-nbctl lr-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
247 <0> (lr0)
248 <1> (lr1)
249 ])
250
251 AT_CHECK([ovn-nbctl lr-del lr0])
252 AT_CHECK([ovn-nbctl lr-list | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
253 <0> (lr1)
254 ])
255
256 AT_CHECK([ovn-nbctl show lr0])
257 AT_CHECK([ovn-nbctl lr-add lr0])
258 AT_CHECK([ovn-nbctl show lr0 | ${PERL} $srcdir/uuidfilt.pl], [0],
259   [    router <0> (lr0)
260 ])
261 AT_CHECK([ovn-nbctl lr-add lr0], [1], [],
262   [ovn-nbctl: lr0: a router with this name already exists
263 ])
264 AT_CHECK([ovn-nbctl --may-exist lr-add lr0])
265 AT_CHECK([ovn-nbctl show lr0 | ${PERL} $srcdir/uuidfilt.pl], [0],
266   [    router <0> (lr0)
267 ])
268 AT_CHECK([ovn-nbctl --add-duplicate lr-add lr0])
269 AT_CHECK([ovn-nbctl --may-exist --add-duplicate lr-add lr0], [1], [],
270   [ovn-nbctl: --may-exist and --add-duplicate may not be used together
271 ])
272 AT_CHECK([ovn-nbctl lr-del lr0], [1], [],
273   [ovn-nbctl: Multiple logical routers named 'lr0'.  Use a UUID.
274 ])
275
276 AT_CHECK([ovn-nbctl lr-del lr2], [1], [],
277   [ovn-nbctl: lr2: router name not found
278 ])
279 AT_CHECK([ovn-nbctl --if-exists lr-del lr2])
280
281 AT_CHECK([ovn-nbctl lr-add])
282 AT_CHECK([ovn-nbctl lr-add])
283 AT_CHECK([ovn-nbctl --add-duplicate lr-add], [1], [],
284   [ovn-nbctl: --add-duplicate requires specifying a name
285 ])
286 AT_CHECK([ovn-nbctl --may-exist lr-add], [1], [],
287   [ovn-nbctl: --may-exist requires specifying a name
288 ])
289
290 OVN_NBCTL_TEST_STOP
291 AT_CLEANUP
292
293 dnl ---------------------------------------------------------------------
294
295 AT_SETUP([ovn-nbctl - basic logical router port commands])
296 OVN_NBCTL_TEST_START
297
298 AT_CHECK([ovn-nbctl lr-add lr0])
299 AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
300
301 AT_CHECK([ovn-nbctl show lr0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
302     router <0> (lr0)
303         port lrp0
304             mac: "00:00:00:01:02:03"
305             networks: [["192.168.1.1/24"]]
306 ])
307
308 AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24], [1], [],
309   [ovn-nbctl: lrp0: a port with this name already exists
310 ])
311 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
312 AT_CHECK([ovn-nbctl lrp-list lr0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
313 <0> (lrp0)
314 ])
315
316 AT_CHECK([ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer])
317 AT_CHECK([ovn-nbctl lrp-list lr0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
318 <0> (lrp0)
319 <1> (lrp1)
320 ])
321
322 AT_CHECK([ovn-nbctl lr-add lr1])
323 AT_CHECK([ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
324   [ovn-nbctl: lrp1: a port with this name already exists
325 ])
326
327 AT_CHECK([ovn-nbctl --may-exist lrp-add lr1 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
328   [ovn-nbctl: lrp1: port already exists but in router lr0
329 ])
330
331 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:04:05:06 192.168.1.1/24], [1], [],
332   [ovn-nbctl: lrp1: port already exists with mac 00:00:00:01:02:03
333 ])
334
335 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
336   [ovn-nbctl: lrp1: port already exists with mismatching peer
337 ])
338
339 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 peer=lrp1-peer], [1], [],
340   [ovn-nbctl: lrp1: port already exists with different network
341 ])
342
343 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer])
344
345 AT_CHECK([ovn-nbctl lrp-del lrp1])
346 AT_CHECK([ovn-nbctl lrp-list lr0 | ${PERL} $srcdir/uuidfilt.pl], [0], [dnl
347 <0> (lrp0)
348 ])
349
350 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 10.0.0.1/24 peer=lrp1-peer])
351
352 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 172.16.0.1/24 peer=lrp1-peer], [1], [],
353   [ovn-nbctl: lrp1: port already exists with different network
354 ])
355
356 AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 192.168.1.1/24 peer=lrp1-peer])
357
358 OVN_NBCTL_TEST_STOP
359 AT_CLEANUP
360
361 dnl ---------------------------------------------------------------------
362
363 AT_SETUP([ovn-nbctl - logical router port enable and disable])
364 OVN_NBCTL_TEST_START
365
366 AT_CHECK([ovn-nbctl lr-add lr0])
367 AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
368 AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [enabled
369 ])
370
371 AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 disabled])
372 AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [disabled
373 ])
374
375 AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 enabled])
376 AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [enabled
377 ])
378
379 AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 xyzzy], [1], [],
380   [ovn-nbctl: xyzzy: state must be "enabled" or "disabled"
381 ])
382
383 OVN_NBCTL_TEST_STOP
384 AT_CLEANUP
385
386 dnl ---------------------------------------------------------------------
387
388 AT_SETUP([ovn-nbctl - routes])
389 OVN_NBCTL_TEST_START
390
391 AT_CHECK([ovn-nbctl lr-add lr0])
392
393 dnl Check IPv4 routes
394 AT_CHECK([ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1])
395 AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.1.0/24 11.0.1.1 lp0])
396 AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.2])
397
398 dnl Add overlapping route with 10.0.0.1/24
399 AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1], [1], [],
400   [ovn-nbctl: duplicate prefix: 10.0.0.0/24
401 ])
402 AT_CHECK([ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1])
403
404 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
405 IPv4 Routes
406               10.0.0.0/24                  11.0.0.1
407               10.0.1.0/24                  11.0.1.1 lp0
408                 0.0.0.0/0               192.168.0.1
409 ])
410
411 AT_CHECK([ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1 lp1])
412 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
413 IPv4 Routes
414               10.0.0.0/24                  11.0.0.1 lp1
415               10.0.1.0/24                  11.0.1.1 lp0
416                 0.0.0.0/0               192.168.0.1
417 ])
418
419 dnl Delete non-existent prefix
420 AT_CHECK([ovn-nbctl lr-route-del lr0 10.0.2.1/24], [1], [],
421   [ovn-nbctl: no matching prefix: 10.0.2.0/24
422 ])
423 AT_CHECK([ovn-nbctl --if-exists lr-route-del lr0 10.0.2.1/24])
424
425 AT_CHECK([ovn-nbctl lr-route-del lr0 10.0.1.1/24])
426
427 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
428 IPv4 Routes
429               10.0.0.0/24                  11.0.0.1 lp1
430                 0.0.0.0/0               192.168.0.1
431 ])
432
433 AT_CHECK([ovn-nbctl lr-route-del lr0])
434 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
435 ])
436
437 dnl Check IPv6 routes
438 AT_CHECK([ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1])
439 AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0])
440 AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1])
441
442 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
443 IPv6 Routes
444             2001:db8::/64        2001:db8:0:f102::1 lp0
445           2001:db8:1::/64        2001:db8:0:f103::1
446                      ::/0        2001:db8:0:f101::1
447 ])
448
449 AT_CHECK([ovn-nbctl lr-route-del lr0 2001:0db8:0::/64])
450
451 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
452 IPv6 Routes
453           2001:db8:1::/64        2001:db8:0:f103::1
454                      ::/0        2001:db8:0:f101::1
455 ])
456
457 AT_CHECK([ovn-nbctl lr-route-del lr0])
458 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
459 ])
460
461 dnl Check IPv4 and IPv6 routes
462 AT_CHECK([ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1])
463 AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.1.1/24 11.0.1.1 lp0])
464 AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.1])
465 AT_CHECK([ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1])
466 AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0])
467 AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1])
468
469 AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
470 IPv4 Routes
471               10.0.0.0/24                  11.0.0.1
472               10.0.1.0/24                  11.0.1.1 lp0
473                 0.0.0.0/0               192.168.0.1
474
475 IPv6 Routes
476             2001:db8::/64        2001:db8:0:f102::1 lp0
477           2001:db8:1::/64        2001:db8:0:f103::1
478                      ::/0        2001:db8:0:f101::1
479 ])
480
481 OVN_NBCTL_TEST_STOP
482 AT_CLEANUP