]> git.proxmox.com Git - ovs.git/blame - tests/ovn-nbctl.at
netlink linux: enable listening to all nsids
[ovs.git] / tests / ovn-nbctl.at
CommitLineData
f4e38e30
JP
1AT_BANNER([ovn-nbctl])
2
3# OVN_NBCTL_TEST_START
4m4_define([OVN_NBCTL_TEST_START],
6132b241 5 [dnl Create ovn-nb database.
dfef14ee 6 AT_KEYWORDS([ovn])
f4e38e30
JP
7 AT_CHECK([ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema])
8
9 dnl Start ovsdb-server.
60bdd011 10 AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db], [0], [], [stderr])
53eb8cb8 11 on_exit "kill `cat ovsdb-server.pid`"
fa183acc 12 AT_CHECK([ovn-nbctl init])
f4e38e30
JP
13 AT_CHECK([[sed < stderr '
14/vlog|INFO|opened log file/d
15/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d']])
16 AT_CAPTURE_FILE([ovsdb-server.log])
17])
18
19# OVN_NBCTL_TEST_STOP
20m4_define([OVN_NBCTL_TEST_STOP],
f0e65e67 21 [AT_CHECK([check_logs "$1"])
d9c8c57c 22 OVS_APP_EXIT_AND_WAIT([ovsdb-server])])
f4e38e30
JP
23
24
ea46a4e9 25AT_SETUP([ovn-nbctl - basic switch commands])
f4e38e30
JP
26OVN_NBCTL_TEST_START
27
ea46a4e9 28AT_CHECK([ovn-nbctl ls-add ls0])
c724bd67 29AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
f4e38e30
JP
30<0> (ls0)
31])
32
ea46a4e9 33AT_CHECK([ovn-nbctl ls-add ls1])
c724bd67 34AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
f4e38e30
JP
35<0> (ls0)
36<1> (ls1)
37])
38
ea46a4e9 39AT_CHECK([ovn-nbctl ls-del ls0])
c724bd67 40AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
f4e38e30
JP
41<0> (ls1)
42])
43
d24d3372 44AT_CHECK([ovn-nbctl show ls0])
ea46a4e9 45AT_CHECK([ovn-nbctl ls-add ls0])
c724bd67 46AT_CHECK([ovn-nbctl show ls0 | uuidfilt], [0],
7a16f569 47 [switch <0> (ls0)
d24d3372 48])
ea46a4e9
JP
49AT_CHECK([ovn-nbctl ls-add ls0], [1], [],
50 [ovn-nbctl: ls0: a switch with this name already exists
4ff6642f 51])
ea46a4e9 52AT_CHECK([ovn-nbctl --may-exist ls-add ls0])
c724bd67 53AT_CHECK([ovn-nbctl show ls0 | uuidfilt], [0],
7a16f569 54 [switch <0> (ls0)
4ff6642f 55])
ea46a4e9
JP
56AT_CHECK([ovn-nbctl --add-duplicate ls-add ls0])
57AT_CHECK([ovn-nbctl --may-exist --add-duplicate ls-add ls0], [1], [],
4ff6642f
BP
58 [ovn-nbctl: --may-exist and --add-duplicate may not be used together
59])
ea46a4e9 60AT_CHECK([ovn-nbctl ls-del ls0], [1], [],
d24d3372
BP
61 [ovn-nbctl: Multiple logical switches named 'ls0'. Use a UUID.
62])
63
ea46a4e9
JP
64AT_CHECK([ovn-nbctl ls-del ls2], [1], [],
65 [ovn-nbctl: ls2: switch name not found
d24d3372 66])
ea46a4e9 67AT_CHECK([ovn-nbctl --if-exists ls-del ls2])
d24d3372 68
ea46a4e9
JP
69AT_CHECK([ovn-nbctl ls-add])
70AT_CHECK([ovn-nbctl ls-add])
71AT_CHECK([ovn-nbctl --add-duplicate ls-add], [1], [],
4ff6642f
BP
72 [ovn-nbctl: --add-duplicate requires specifying a name
73])
ea46a4e9 74AT_CHECK([ovn-nbctl --may-exist ls-add], [1], [],
4ff6642f
BP
75 [ovn-nbctl: --may-exist requires specifying a name
76])
77
f4e38e30
JP
78OVN_NBCTL_TEST_STOP
79AT_CLEANUP
80
81dnl ---------------------------------------------------------------------
82
31ed1192 83AT_SETUP([ovn-nbctl - basic logical switch port commands])
f4e38e30
JP
84OVN_NBCTL_TEST_START
85
ea46a4e9 86AT_CHECK([ovn-nbctl ls-add ls0])
31ed1192
JP
87AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
88AT_CHECK([ovn-nbctl lsp-add ls0 lp0], [1], [],
89 [ovn-nbctl: lp0: a port with this name already exists
d24d3372 90])
31ed1192 91AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp0])
c724bd67 92AT_CHECK([ovn-nbctl lsp-list ls0 | uuidfilt], [0], [dnl
f4e38e30
JP
93<0> (lp0)
94])
95
31ed1192 96AT_CHECK([ovn-nbctl lsp-add ls0 lp1])
c724bd67 97AT_CHECK([ovn-nbctl lsp-list ls0 | uuidfilt], [0], [dnl
f4e38e30
JP
98<0> (lp0)
99<1> (lp1)
100])
101
ea46a4e9 102AT_CHECK([ovn-nbctl ls-add ls1])
31ed1192
JP
103AT_CHECK([ovn-nbctl lsp-add ls0 lp1], [1], [],
104 [ovn-nbctl: lp1: a port with this name already exists
d24d3372 105])
31ed1192 106AT_CHECK([ovn-nbctl --may-exist lsp-add ls1 lp1], [1], [],
ea46a4e9 107 [ovn-nbctl: lp1: port already exists but in switch ls0
d24d3372 108])
31ed1192
JP
109AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp1 lp0 5], [1], [],
110 [ovn-nbctl: lp1: port already exists but has no parent
d24d3372
BP
111])
112
31ed1192 113AT_CHECK([ovn-nbctl lsp-del lp1])
c724bd67 114AT_CHECK([ovn-nbctl lsp-list ls0 | uuidfilt], [0], [dnl
f4e38e30
JP
115<0> (lp0)
116])
117
31ed1192
JP
118AT_CHECK([ovn-nbctl lsp-add ls0 lp2 lp3 5])
119AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp4 5], [1], [],
120 [ovn-nbctl: lp2: port already exists with different parent lp3
d24d3372 121])
31ed1192 122AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 10], [1], [],
b511690b 123 [ovn-nbctl: lp2: port already exists with different tag_request 5
d24d3372 124])
b511690b 125AT_CHECK([ovn-nbctl clear Logical_Switch_Port lp2 tag_request])
31ed1192 126AT_CHECK([ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 5], [1], [],
b511690b 127 [ovn-nbctl: lp2: port already exists but has no tag_request
d24d3372
BP
128])
129
f4e38e30
JP
130OVN_NBCTL_TEST_STOP
131AT_CLEANUP
132
133dnl ---------------------------------------------------------------------
134
7127583d 135AT_SETUP([ovn-nbctl - lport addresses])
f4e38e30
JP
136OVN_NBCTL_TEST_START
137
ea46a4e9 138AT_CHECK([ovn-nbctl ls-add ls0])
31ed1192
JP
139AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
140AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
f4e38e30
JP
141])
142
31ed1192
JP
143AT_CHECK([ovn-nbctl lsp-set-addresses lp0 00:11:22:33:44:55 unknown])
144AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
f4e38e30
JP
14500:11:22:33:44:55
146unknown
147])
148
31ed1192
JP
149AT_CHECK([ovn-nbctl lsp-set-addresses lp0])
150AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
f4e38e30
JP
151])
152
153OVN_NBCTL_TEST_STOP
154AT_CLEANUP
155
156dnl ---------------------------------------------------------------------
157
158AT_SETUP([ovn-nbctl - port security])
159OVN_NBCTL_TEST_START
160
ea46a4e9 161AT_CHECK([ovn-nbctl ls-add ls0])
31ed1192
JP
162AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
163AT_CHECK([ovn-nbctl lsp-get-addresses lp0], [0], [dnl
f4e38e30
JP
164])
165
31ed1192
JP
166AT_CHECK([ovn-nbctl lsp-set-port-security lp0 aa:bb:cc:dd:ee:ff 00:11:22:33:44:55])
167AT_CHECK([ovn-nbctl lsp-get-port-security lp0], [0], [dnl
f4e38e30
JP
16800:11:22:33:44:55
169aa:bb:cc:dd:ee:ff
170])
171
31ed1192
JP
172AT_CHECK([ovn-nbctl lsp-set-port-security lp0])
173AT_CHECK([ovn-nbctl lsp-get-port-security lp0], [0], [dnl
f4e38e30
JP
174])
175
176OVN_NBCTL_TEST_STOP
177AT_CLEANUP
8f96455d
JP
178
179dnl ---------------------------------------------------------------------
180
181AT_SETUP([ovn-nbctl - ACLs])
182OVN_NBCTL_TEST_START
183
ea46a4e9 184AT_CHECK([ovn-nbctl ls-add ls0])
70799ae8 185AT_CHECK([ovn-nbctl --log acl-add ls0 from-lport 600 udp drop])
d383eed5 186AT_CHECK([ovn-nbctl --log --name=test --severity=info acl-add ls0 to-lport 500 udp drop])
8f96455d
JP
187AT_CHECK([ovn-nbctl acl-add ls0 from-lport 400 tcp drop])
188AT_CHECK([ovn-nbctl acl-add ls0 to-lport 300 tcp drop])
189AT_CHECK([ovn-nbctl acl-add ls0 from-lport 200 ip drop])
190AT_CHECK([ovn-nbctl acl-add ls0 to-lport 100 ip drop])
fa3cc9b9
HZ
191dnl Add duplicated ACL
192AT_CHECK([ovn-nbctl acl-add ls0 to-lport 100 ip drop], [1], [], [stderr])
193AT_CHECK([grep 'already existed' stderr], [0], [ignore])
194AT_CHECK([ovn-nbctl --may-exist acl-add ls0 to-lport 100 ip drop])
8f96455d
JP
195
196AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
d383eed5 197from-lport 600 (udp) drop log()
8f96455d
JP
198from-lport 400 (tcp) drop
199from-lport 200 (ip) drop
d383eed5 200 to-lport 500 (udp) drop log(name=test,severity=info)
8f96455d
JP
201 to-lport 300 (tcp) drop
202 to-lport 100 (ip) drop
203])
204
205dnl Delete in one direction.
206AT_CHECK([ovn-nbctl acl-del ls0 to-lport])
207AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
d383eed5 208from-lport 600 (udp) drop log()
8f96455d
JP
209from-lport 400 (tcp) drop
210from-lport 200 (ip) drop
211])
212
213dnl Delete all ACLs.
214AT_CHECK([ovn-nbctl acl-del ls0])
215AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
216])
217
218AT_CHECK([ovn-nbctl acl-add ls0 from-lport 600 udp drop])
219AT_CHECK([ovn-nbctl acl-add ls0 from-lport 400 tcp drop])
220AT_CHECK([ovn-nbctl acl-add ls0 from-lport 200 ip drop])
221
222dnl Delete a single flow.
223AT_CHECK([ovn-nbctl acl-del ls0 from-lport 400 tcp])
224AT_CHECK([ovn-nbctl acl-list ls0], [0], [dnl
225from-lport 600 (udp) drop
226from-lport 200 (ip) drop
227])
228
229OVN_NBCTL_TEST_STOP
e2bfcad6 230AT_CLEANUP
231
5ee33cbd
GL
232dnl ---------------------------------------------------------------------
233
234AT_SETUP([ovn-nbctl - QoS])
235OVN_NBCTL_TEST_START
236
237AT_CHECK([ovn-nbctl ls-add ls0])
238AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 tcp dscp=63])
239AT_CHECK([ovn-nbctl qos-add ls0 from-lport 500 udp rate=100 burst=1000])
240AT_CHECK([ovn-nbctl qos-add ls0 from-lport 400 tcp dscp=0 rate=300 burst=3000])
241AT_CHECK([ovn-nbctl qos-add ls0 to-lport 300 tcp dscp=48])
242AT_CHECK([ovn-nbctl qos-add ls0 to-lport 200 ip rate=101])
243AT_CHECK([ovn-nbctl qos-add ls0 to-lport 100 ip4 dscp=13 rate=301 burst=30000])
244
245dnl Add duplicated qos
246AT_CHECK([ovn-nbctl qos-add ls0 to-lport 100 ip4 dscp=11 rate=302 burst=30002], [1], [], [stderr])
247AT_CHECK([grep 'already existed' stderr], [0], [ignore])
248AT_CHECK([ovn-nbctl --may-exist qos-add ls0 to-lport 100 ip4 dscp=11 rate=302 burst=30002])
249
250AT_CHECK([ovn-nbctl qos-list ls0], [0], [dnl
251from-lport 600 (tcp) dscp=63
252from-lport 500 (udp) rate=100 burst=1000
253from-lport 400 (tcp) rate=300 burst=3000 dscp=0
254 to-lport 300 (tcp) dscp=48
255 to-lport 200 (ip) rate=101
256 to-lport 100 (ip4) rate=301 burst=30000 dscp=13
257])
258
259dnl Delete in one direction.
260AT_CHECK([ovn-nbctl qos-del ls0 to-lport])
261AT_CHECK([ovn-nbctl qos-list ls0], [0], [dnl
262from-lport 600 (tcp) dscp=63
263from-lport 500 (udp) rate=100 burst=1000
264from-lport 400 (tcp) rate=300 burst=3000 dscp=0
265])
266
267dnl Delete all qos_rules.
268AT_CHECK([ovn-nbctl qos-del ls0])
269AT_CHECK([ovn-nbctl qos-list ls0], [0], [dnl
270])
271
272AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip rate=1000101])
273AT_CHECK([ovn-nbctl qos-add ls0 from-lport 400 tcp dscp=44])
274AT_CHECK([ovn-nbctl qos-add ls0 from-lport 200 ip burst=1000102 rate=301 dscp=19])
275
276dnl Delete a single flow.
277AT_CHECK([ovn-nbctl qos-del ls0 from-lport 400 tcp])
278AT_CHECK([ovn-nbctl qos-list ls0], [0], [dnl
279from-lport 600 (ip) rate=1000101
280from-lport 200 (ip) rate=301 burst=1000102 dscp=19
281])
282
283AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip rate=100010111111], [1], [],
284[ovn-nbctl: 100010111111: rate must in range 1...4294967295.
285])
286
287AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip burst=100010111112 rate=100010], [1], [],
288[ovn-nbctl: 100010111112: burst must in range 1...4294967295.
289])
290
291AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip dscp=-1], [1], [],
292[ovn-nbctl: -1: dscp must in range 0...63.
293])
294
295AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip dscpa=-1], [1], [],
296[ovn-nbctl: dscpa=-1: must be start of "dscp=", "rate=", "burst=".
297])
298
299AT_CHECK([ovn-nbctl qos-add ls0 from-lport 600 ip burst=123], [1], [],
300[ovn-nbctl: One of the rate or dscp must be configured.
301])
302
303OVN_NBCTL_TEST_STOP
304AT_CLEANUP
305
3722730e 306dnl ---------------------------------------------------------------------
307AT_SETUP([ovn-nbctl - NATs])
308OVN_NBCTL_TEST_START
309AT_CHECK([ovn-nbctl lr-add lr0])
310AT_CHECK([ovn-nbctl lr-nat-add lr0 snatt 30.0.0.2 192.168.1.2], [1], [],
311[ovn-nbctl: snatt: type must be one of "dnat", "snat" and "dnat_and_snat".
312])
313AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2a 192.168.1.2], [1], [],
314[ovn-nbctl: 30.0.0.2a: should be an IPv4 address.
315])
316AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0 192.168.1.2], [1], [],
317[ovn-nbctl: 30.0.0: should be an IPv4 address.
318])
319AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2/24 192.168.1.2], [1], [],
320[ovn-nbctl: 30.0.0.2/24: should be an IPv4 address.
321])
322AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2:80 192.168.1.2], [1], [],
323[ovn-nbctl: 30.0.0.2:80: should be an IPv4 address.
324])
325AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2a], [1], [],
326[ovn-nbctl: 192.168.1.2a: should be an IPv4 address or network.
327])
328AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1], [1], [],
329[ovn-nbctl: 192.168.1: should be an IPv4 address or network.
330])
331AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2:80], [1], [],
332[ovn-nbctl: 192.168.1.2:80: should be an IPv4 address or network.
333])
334AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2/a], [1], [],
335[ovn-nbctl: 192.168.1.2/a: should be an IPv4 address or network.
336])
337AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2a], [1], [],
338[ovn-nbctl: 192.168.1.2a: should be an IPv4 address.
339])
340AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1], [1], [],
341[ovn-nbctl: 192.168.1: should be an IPv4 address.
342])
343AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2:80], [1], [],
344[ovn-nbctl: 192.168.1.2:80: should be an IPv4 address.
345])
346AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2/24], [1], [],
347[ovn-nbctl: 192.168.1.2/24: should be an IPv4 address.
348])
349AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2/24], [1], [],
350[ovn-nbctl: 192.168.1.2/24: should be an IPv4 address.
351])
6a725785
MS
352AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0], [1], [],
353[ovn-nbctl: lr-nat-add with logical_port must also specify external_mac.
354])
355AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03], [1], [],
356[ovn-nbctl: logical_port and external_mac are only valid when type is "dnat_and_snat".
357])
358AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03], [1], [],
359[ovn-nbctl: logical_port and external_mac are only valid when type is "dnat_and_snat".
360])
361AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03], [1], [],
362[ovn-nbctl: lp0: port name not found
363])
364AT_CHECK([ovn-nbctl ls-add ls0])
365AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
366AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02], [1], [],
367[ovn-nbctl: invalid mac address 00:00:00:01:02.
368])
3722730e 369
370dnl Add snat and dnat
371AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24])
372AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2])
373AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2])
6a725785 374AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:01:02:03])
3722730e 375AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [dnl
6a725785 376TYPE EXTERNAL_IP LOGICAL_IP EXTERNAL_MAC LOGICAL_PORT
3722730e 377dnat 30.0.0.1 192.168.1.2
378dnat_and_snat 30.0.0.1 192.168.1.2
6a725785 379dnat_and_snat 30.0.0.2 192.168.1.3 00:00:00:01:02:03 lp0
3722730e 380snat 30.0.0.1 192.168.1.0/24
381])
382AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24], [1], [],
383[ovn-nbctl: 30.0.0.1, 192.168.1.0/24: a NAT with this external_ip and logical_ip already exists
384])
385AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.10/24], [1], [],
386[ovn-nbctl: 30.0.0.1, 192.168.1.0/24: a NAT with this external_ip and logical_ip already exists
387])
388AT_CHECK([ovn-nbctl --may-exist lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24])
389AT_CHECK([ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.0/24], [1], [],
390[ovn-nbctl: a NAT with this type (snat) and logical_ip (192.168.1.0/24) already exists
391])
392AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2], [1], [],
393[ovn-nbctl: 30.0.0.1, 192.168.1.2: a NAT with this external_ip and logical_ip already exists
394])
395AT_CHECK([ovn-nbctl --may-exist lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2])
396AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.3], [1], [],
397[ovn-nbctl: a NAT with this type (dnat) and external_ip (30.0.0.1) already exists
398])
399AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2], [1], [],
400[ovn-nbctl: 30.0.0.1, 192.168.1.2: a NAT with this external_ip and logical_ip already exists
401])
402AT_CHECK([ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2])
403AT_CHECK([ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.3], [1], [],
404[ovn-nbctl: a NAT with this type (dnat_and_snat) and external_ip (30.0.0.1) already exists
405])
6a725785
MS
406AT_CHECK([ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:04:05:06])
407AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [dnl
408TYPE EXTERNAL_IP LOGICAL_IP EXTERNAL_MAC LOGICAL_PORT
409dnat 30.0.0.1 192.168.1.2
410dnat_and_snat 30.0.0.1 192.168.1.2
411dnat_and_snat 30.0.0.2 192.168.1.3 00:00:00:04:05:06 lp0
412snat 30.0.0.1 192.168.1.0/24
413])
414AT_CHECK([ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3])
415AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [dnl
416TYPE EXTERNAL_IP LOGICAL_IP EXTERNAL_MAC LOGICAL_PORT
417dnat 30.0.0.1 192.168.1.2
418dnat_and_snat 30.0.0.1 192.168.1.2
419dnat_and_snat 30.0.0.2 192.168.1.3
420snat 30.0.0.1 192.168.1.0/24
421])
3722730e 422
423dnl Deletes the NATs
6a725785
MS
424AT_CHECK([ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.3], [1], [],
425[ovn-nbctl: no matching NAT with the type (dnat_and_snat) and external_ip (30.0.0.3)
3722730e 426])
427AT_CHECK([ovn-nbctl lr-nat-del lr0 dnat 30.0.0.2], [1], [],
428[ovn-nbctl: no matching NAT with the type (dnat) and external_ip (30.0.0.2)
429])
430AT_CHECK([ovn-nbctl lr-nat-del lr0 snat 192.168.10.0/24], [1], [],
431[ovn-nbctl: no matching NAT with the type (snat) and logical_ip (192.168.10.0/24)
432])
433AT_CHECK([ovn-nbctl --if-exists lr-nat-del lr0 snat 192.168.10.0/24])
434
435AT_CHECK([ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.1])
436AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [dnl
6a725785 437TYPE EXTERNAL_IP LOGICAL_IP EXTERNAL_MAC LOGICAL_PORT
3722730e 438dnat 30.0.0.1 192.168.1.2
6a725785 439dnat_and_snat 30.0.0.2 192.168.1.3
3722730e 440snat 30.0.0.1 192.168.1.0/24
441])
442
443AT_CHECK([ovn-nbctl lr-nat-del lr0 dnat])
444AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [dnl
6a725785
MS
445TYPE EXTERNAL_IP LOGICAL_IP EXTERNAL_MAC LOGICAL_PORT
446dnat_and_snat 30.0.0.2 192.168.1.3
3722730e 447snat 30.0.0.1 192.168.1.0/24
448])
449
450AT_CHECK([ovn-nbctl lr-nat-del lr0])
451AT_CHECK([ovn-nbctl lr-nat-list lr0], [0], [])
452AT_CHECK([ovn-nbctl lr-nat-del lr0])
453AT_CHECK([ovn-nbctl lr-nat-del lr0 dnat])
454OVN_NBCTL_TEST_STOP
455AT_CLEANUP
456
e2bfcad6 457dnl ---------------------------------------------------------------------
458
459AT_SETUP([ovn-nbctl - LBs])
460OVN_NBCTL_TEST_START
461
462dnl Add two LBs.
463AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80a 192.168.10.10:80,192.168.10.20:80 tcp], [1], [],
c19105a0 464[ovn-nbctl: 30.0.0.10:80a: should be an IP address (or an IP address and a port number with : as a separator).
e2bfcad6 465])
466
467AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:a80 192.168.10.10:80,192.168.10.20:80 tcp], [1], [],
c19105a0 468[ovn-nbctl: 30.0.0.10:a80: should be an IP address (or an IP address and a port number with : as a separator).
e2bfcad6 469])
470
471AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10: 192.168.10.10:80,192.168.10.20:80 tcp], [1], [],
c19105a0 472[ovn-nbctl: 30.0.0.10:: should be an IP address (or an IP address and a port number with : as a separator).
e2bfcad6 473])
474
475AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20 tcp], [1], [],
c19105a0 476[ovn-nbctl: 192.168.10.20: should be an IP address and a port number with : as a separator.
e2bfcad6 477])
478
479AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.1a 192.168.10.10:80,192.168.10.20:80], [1], [],
c19105a0 480[ovn-nbctl: 30.0.0.1a: should be an IP address (or an IP address and a port number with : as a separator).
e2bfcad6 481])
482
483AT_CHECK([ovn-nbctl lb-add lb0 30.0.0 192.168.10.10:80,192.168.10.20:80], [1], [],
c19105a0 484[ovn-nbctl: 192.168.10.10:80: should be an IP address.
e2bfcad6 485])
486
487AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10,192.168.10.20:80], [1], [],
c19105a0 488[ovn-nbctl: 192.168.10.20:80: should be an IP address.
e2bfcad6 489])
490
491AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:a80], [1], [],
c19105a0 492[ovn-nbctl: 192.168.10.10:a80: should be an IP address.
e2bfcad6 493])
494
495AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:], [1], [],
c19105a0 496[ovn-nbctl: 192.168.10.10:: should be an IP address.
e2bfcad6 497])
498
499AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.1a], [1], [],
c19105a0 500[ovn-nbctl: 192.168.10.1a: should be an IP address.
e2bfcad6 501])
502
503AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10 tcp], [1], [],
504[ovn-nbctl: Protocol is unnecessary when no port of vip is given.
505])
506
507AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:900 tcp], [1], [],
508[ovn-nbctl: Protocol is unnecessary when no port of vip is given.
509])
510
511dnl Add ips to lb
512AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80 ,,,192.168.10.10:80,,,,,])
513AT_CHECK([ovn-nbctl lb-add lb1 30.0.0.10:80 ,,,192.168.10.10:80,,,,192.168.10.20:80,,,,])
c724bd67 514AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
515UUID LB PROTO VIP IPs
516<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80
517<1> lb1 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
e2bfcad6 518])
519AT_CHECK([ovn-nbctl lb-del lb0])
520AT_CHECK([ovn-nbctl lb-del lb1])
521
522AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80])
523AT_CHECK([ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 tcp])
c724bd67 524AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
525UUID LB PROTO VIP IPs
526<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
527<1> lb1 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
e2bfcad6 528])
529
530dnl Update the VIP of the lb1.
531AT_CHECK([ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080])
c724bd67 532AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
533UUID LB PROTO VIP IPs
534<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
535<1> lb1 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
e2bfcad6 536])
537
538AT_CHECK([ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080 udp])
c724bd67 539AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
540UUID LB PROTO VIP IPs
541<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
542<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
e2bfcad6 543])
544
545dnl Config lb1 with another VIP.
546AT_CHECK([ovn-nbctl lb-add lb1 30.0.0.20:80 192.168.10.10:80 udp])
c724bd67 547AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
548UUID LB PROTO VIP IPs
549<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
550<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
551 udp 30.0.0.20:80 192.168.10.10:80
e2bfcad6 552])
553
554AT_CHECK([ovn-nbctl lb-del lb1 30.0.0.20:80])
c724bd67 555AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
556UUID LB PROTO VIP IPs
557<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
558<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
e2bfcad6 559])
560
561dnl Add LBs whose vip is just an IP address.
562AT_CHECK([ovn-nbctl lb-add lb2 30.0.0.30 192.168.10.10])
563AT_CHECK([ovn-nbctl lb-add lb3 30.0.0.30 192.168.10.10])
c724bd67 564AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
565UUID LB PROTO VIP IPs
566<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
567<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
568<2> lb2 tcp/udp 30.0.0.30 192.168.10.10
569<3> lb3 tcp/udp 30.0.0.30 192.168.10.10
e2bfcad6 570])
571AT_CHECK([ovn-nbctl lb-del lb2 30.0.0.30])
572AT_CHECK([ovn-nbctl lb-del lb3 30.0.0.30])
573
574AT_CHECK([ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp])
575AT_CHECK([ovn-nbctl --add-duplicate lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp])
c724bd67 576AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
577UUID LB PROTO VIP IPs
578<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
579<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
580<2> lb2 tcp 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80
581<3> lb2 tcp 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80
e2bfcad6 582])
583
584dnl If there are multiple load balancers with the same name, use a UUID to update/delete.
585AT_CHECK([ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp], [1], [],
586[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
587])
588
589AT_CHECK([ovn-nbctl lb-del lb2], [1], [],
590[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
591])
592
593AT_CHECK([ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:8080,192.168.10.20:8080 udp])
594AT_CHECK([ovn-nbctl --may-exist lb-add lb1 30.0.0.10:8080 192.168.10.10:8080,192.168.10.20:8080 udp])
595AT_CHECK([ovn-nbctl --may-exist lb-add lb1 30.0.0.10:9090 192.168.10.10:8080,192.168.10.20:8080 udp])
596AT_CHECK([ovn-nbctl lb-del lb0 30.0.0.10:80])
597AT_CHECK([ovn-nbctl lb-del lb1])
c724bd67 598AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
599UUID LB PROTO VIP IPs
600<0> lb2 tcp 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80
601<1> lb2 tcp 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80
e2bfcad6 602])
603
604dnl Add load balancer to logical switch.
605AT_CHECK([ovn-nbctl ls-add ls0])
606AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80])
607AT_CHECK([ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 udp])
608AT_CHECK([ovn-nbctl lb-add lb3 30.0.0.10 192.168.10.10,192.168.10.20])
609AT_CHECK([ovn-nbctl ls-lb-add ls0 lb0])
610AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
611AT_CHECK([ovn-nbctl --may-exist ls-lb-add ls0 lb1])
612AT_CHECK([ovn-nbctl ls-lb-add ls0 lb2], [1], [],
613[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
614])
615AT_CHECK([ovn-nbctl ls-lb-add ls0 lb3])
616
c724bd67 617AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
c19105a0
MM
618UUID LB PROTO VIP IPs
619<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
620<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
621<2> lb3 tcp/udp 30.0.0.10 192.168.10.10,192.168.10.20
e2bfcad6 622])
623
624AT_CHECK([ovn-nbctl ls-lb-del ls0 lb0])
c724bd67 625AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
c19105a0
MM
626UUID LB PROTO VIP IPs
627<0> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
628<1> lb3 tcp/udp 30.0.0.10 192.168.10.10,192.168.10.20
e2bfcad6 629])
630
631AT_CHECK([ovn-nbctl ls-lb-del ls0 lb1])
632AT_CHECK([ovn-nbctl ls-lb-del ls0 lb3])
c724bd67 633AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
e2bfcad6 634AT_CHECK([ovn-nbctl --if-exists ls-lb-del ls0 lb1])
635
636dnl Remove all load balancers from logical switch.
637AT_CHECK([ovn-nbctl ls-lb-add ls0 lb0])
638AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
639AT_CHECK([ovn-nbctl ls-lb-add ls0 lb3])
640AT_CHECK([ovn-nbctl ls-lb-del ls0])
c724bd67 641AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
e2bfcad6 642
643dnl Add load balancer to logical router.
644AT_CHECK([ovn-nbctl lr-add lr0])
645AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
646AT_CHECK([ovn-nbctl lr-lb-add lr0 lb1])
647AT_CHECK([ovn-nbctl --may-exist lr-lb-add lr0 lb1])
648AT_CHECK([ovn-nbctl lr-lb-add lr0 lb2], [1], [],
649[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
650])
651AT_CHECK([ovn-nbctl lr-lb-add lr0 lb3])
652
c724bd67 653AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
c19105a0
MM
654UUID LB PROTO VIP IPs
655<0> lb0 tcp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
656<1> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
657<2> lb3 tcp/udp 30.0.0.10 192.168.10.10,192.168.10.20
e2bfcad6 658])
659
660AT_CHECK([ovn-nbctl lr-lb-del lr0 lb0])
c724bd67 661AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
c19105a0
MM
662UUID LB PROTO VIP IPs
663<0> lb1 udp 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
664<1> lb3 tcp/udp 30.0.0.10 192.168.10.10,192.168.10.20
e2bfcad6 665])
666
667AT_CHECK([ovn-nbctl lr-lb-del lr0 lb1])
668AT_CHECK([ovn-nbctl lr-lb-del lr0 lb3])
c724bd67 669AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
e2bfcad6 670AT_CHECK([ovn-nbctl --if-exists lr-lb-del lr0 lb1])
671
672dnl Remove all load balancers from logical router.
673AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
674AT_CHECK([ovn-nbctl lr-lb-add lr0 lb1])
675AT_CHECK([ovn-nbctl lr-lb-add lr0 lb3])
676AT_CHECK([ovn-nbctl lr-lb-del lr0])
c724bd67 677AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
e2bfcad6 678
679OVN_NBCTL_TEST_STOP
8f96455d 680AT_CLEANUP
c19105a0
MM
681dnl
682dnl ---------------------------------------------------------------------
683
684AT_SETUP([ovn-nbctl - LBs IPv6])
685OVN_NBCTL_TEST_START
686
687dnl A bunch of commands that should fail
688AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80a [[fd0f::10]]:80,[[fd0f::20]]:80 tcp], [1], [],
689[ovn-nbctl: [[ae0f::10]]:80a: should be an IP address (or an IP address and a port number with : as a separator).
690])
691
692
693AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:a80 [[fd0f::10]]:80,[[fd0f::20]]:80 tcp], [1], [],
694[ovn-nbctl: [[ae0f::10]]:a80: should be an IP address (or an IP address and a port number with : as a separator).
695])
696
697
698AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]: [[fd0f::10]]:80,[[fd0f::20]]:80 tcp], [1], [],
699[ovn-nbctl: [[ae0f::10]]:: should be an IP address (or an IP address and a port number with : as a separator).
700])
701
702
703AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80 [[fd0f::10]]:80,fd0f::20 tcp], [1], [],
704[ovn-nbctl: fd0f::20: should be an IP address and a port number with : as a separator.
705])
706
707
708AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10fff [[fd0f::10]]:80,fd0f::20 tcp], [1], [],
709[ovn-nbctl: ae0f::10fff: should be an IP address (or an IP address and a port number with : as a separator).
710])
711
712
713AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 [[fd0f::10]]:80,[[fd0f::20]]:80], [1], [],
714[ovn-nbctl: [[fd0f::10]]:80: should be an IP address.
715])
716
717
718AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 fd0f::10,[[fd0f::20]]:80], [1], [],
719[ovn-nbctl: [[fd0f::20]]:80: should be an IP address.
720])
721
722
723AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 [[fd0f::10]]:a80], [1], [],
724[ovn-nbctl: [[fd0f::10]]:a80: should be an IP address.
725])
726
727
728AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 [[fd0f::10]]:], [1], [],
729[ovn-nbctl: [[fd0f::10]]:: should be an IP address.
730])
731
732
733AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 fd0f::1001a], [1], [],
734[ovn-nbctl: fd0f::1001a: should be an IP address.
735])
736
737
738AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 fd0f::10 tcp], [1], [],
739[ovn-nbctl: Protocol is unnecessary when no port of vip is given.
740])
741
742
743AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 [[fd0f::10]]:900 tcp], [1], [],
744[ovn-nbctl: Protocol is unnecessary when no port of vip is given.
745])
746
747AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10], [1], [],
748[ovn-nbctl: 192.168.10.10: IP address family is different from VIP ae0f::10.
749])
750
751AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10], [1], [],
752[ovn-nbctl: 192.168.10.10: IP address family is different from VIP ae0f::10.
753])
754
755AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80 192.168.10.10:80], [1], [],
756[ovn-nbctl: 192.168.10.10:80: IP address family is different from VIP [[ae0f::10]]:80.
757])
758
759AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10 ae0f::10], [1], [],
760[ovn-nbctl: ae0f::10: IP address family is different from VIP 30.0.0.10.
761])
762
763AT_CHECK([ovn-nbctl lb-add lb0 30.0.0.10:80 [[ae0f::10]]:80], [1], [],
764[ovn-nbctl: [[ae0f::10]]:80: IP address family is different from VIP 30.0.0.10:80.
765])
766
767AT_CHECK([ovn-nbctl lb-add lb0 ae0f::10 fd0f::10])
768AT_CHECK([ovn-nbctl lb-add lb0 ae0f:0000:0000:0000:0000:0000:0000:0010 fd0f::20],
769[1], [], [ovn-nbctl: lb0: a load balancer with this vip (ae0f::10) already exists
770])
771
772AT_CHECK([ovn-nbctl lb-del lb0])
773
774dnl Add ips to lb
775AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80 ,,,[[fd0f::10]]:80,,,,,])
776AT_CHECK([ovn-nbctl lb-add lb1 [[ae0f::10]]:80 ,,,[[fd0f::10]]:80,,,,[[fd0f::20]]:80,,,,])
c724bd67 777AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
778UUID LB PROTO VIP IPs
779<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80
780<1> lb1 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
781])
782AT_CHECK([ovn-nbctl lb-del lb0])
783AT_CHECK([ovn-nbctl lb-del lb1])
784
785
786AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80])
787AT_CHECK([ovn-nbctl lb-add lb1 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80 tcp])
c724bd67 788AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
789UUID LB PROTO VIP IPs
790<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
791<1> lb1 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
792])
793
794dnl Update the VIP of the lb1.
795AT_CHECK([ovn-nbctl --may-exist lb-add lb1 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080])
c724bd67 796AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
797UUID LB PROTO VIP IPs
798<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
799<1> lb1 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
800])
801
802AT_CHECK([ovn-nbctl --may-exist lb-add lb1 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080 udp])
c724bd67 803AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
804UUID LB PROTO VIP IPs
805<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
806<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
807])
808
809dnl Config lb1 with another VIP.
810AT_CHECK([ovn-nbctl lb-add lb1 [[ae0f::20]]:80 [[fd0f::10]]:80 udp])
c724bd67 811AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
812UUID LB PROTO VIP IPs
813<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
814<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
815 udp [[ae0f::20]]:80 [[fd0f::10]]:80
816])
817
818AT_CHECK([ovn-nbctl lb-del lb1 [[ae0f::20]]:80])
c724bd67 819AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
820UUID LB PROTO VIP IPs
821<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
822<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
823])
7127583d 824
c19105a0
MM
825dnl Add LBs whose vip is just an IP address.
826AT_CHECK([ovn-nbctl lb-add lb2 ae0f::30 fd0f::10])
827AT_CHECK([ovn-nbctl lb-add lb3 ae0f::30 fd0f::10])
c724bd67 828AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
829UUID LB PROTO VIP IPs
830<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
831<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
832<2> lb2 tcp/udp ae0f::30 fd0f::10
833<3> lb3 tcp/udp ae0f::30 fd0f::10
834])
835AT_CHECK([ovn-nbctl lb-del lb2 ae0f::30])
836AT_CHECK([ovn-nbctl lb-del lb3 ae0f::30])
837
838AT_CHECK([ovn-nbctl lb-add lb2 [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80 tcp])
839AT_CHECK([ovn-nbctl --add-duplicate lb-add lb2 [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80 tcp])
c724bd67 840AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
841UUID LB PROTO VIP IPs
842<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
843<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:8080
844<2> lb2 tcp [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80
845<3> lb2 tcp [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80
846])
847
848dnl If there are multiple load balancers with the same name, use a UUID to update/delete.
849AT_CHECK([ovn-nbctl lb-add lb2 [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80 tcp], [1], [],
850[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
851])
852
853AT_CHECK([ovn-nbctl lb-del lb2], [1], [],
854[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
855])
856
857AT_CHECK([ovn-nbctl --may-exist lb-add lb1 [[ae0f::10]]:80 [[fd0f::10]]:8080,[[fd0f::20]]:8080 udp])
858AT_CHECK([ovn-nbctl --may-exist lb-add lb1 [[ae0f::10]]:8080 [[fd0f::10]]:8080,[[fd0f::20]]:8080 udp])
859AT_CHECK([ovn-nbctl --may-exist lb-add lb1 [[ae0f::10]]:9090 [[fd0f::10]]:8080,[[fd0f::20]]:8080 udp])
860AT_CHECK([ovn-nbctl lb-del lb0 [[ae0f::10]]:80])
861AT_CHECK([ovn-nbctl lb-del lb1])
c724bd67 862AT_CHECK([ovn-nbctl lb-list | uuidfilt], [0], [dnl
c19105a0
MM
863UUID LB PROTO VIP IPs
864<0> lb2 tcp [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80
865<1> lb2 tcp [[ae0f::10]]:8080 [[fd0f::10]]:80,[[fd0f::20]]:80
866])
867
868dnl Add load balancer to logical switch.
869AT_CHECK([ovn-nbctl ls-add ls0])
870AT_CHECK([ovn-nbctl lb-add lb0 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80])
871AT_CHECK([ovn-nbctl lb-add lb1 [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80 udp])
872AT_CHECK([ovn-nbctl lb-add lb3 ae0f::10 fd0f::10,fd0f::20])
873AT_CHECK([ovn-nbctl ls-lb-add ls0 lb0])
874AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
875AT_CHECK([ovn-nbctl --may-exist ls-lb-add ls0 lb1])
876AT_CHECK([ovn-nbctl ls-lb-add ls0 lb2], [1], [],
877[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
878])
879AT_CHECK([ovn-nbctl ls-lb-add ls0 lb3])
880
c724bd67 881AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
c19105a0
MM
882UUID LB PROTO VIP IPs
883<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
884<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
885<2> lb3 tcp/udp ae0f::10 fd0f::10,fd0f::20
886])
887
888AT_CHECK([ovn-nbctl ls-lb-del ls0 lb0])
c724bd67 889AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [dnl
c19105a0
MM
890UUID LB PROTO VIP IPs
891<0> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
892<1> lb3 tcp/udp ae0f::10 fd0f::10,fd0f::20
893])
894
895AT_CHECK([ovn-nbctl ls-lb-del ls0 lb1])
896AT_CHECK([ovn-nbctl ls-lb-del ls0 lb3])
c724bd67 897AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
c19105a0
MM
898AT_CHECK([ovn-nbctl --if-exists ls-lb-del ls0 lb1])
899
900dnl Remove all load balancers from logical switch.
901AT_CHECK([ovn-nbctl ls-lb-add ls0 lb0])
902AT_CHECK([ovn-nbctl ls-lb-add ls0 lb1])
903AT_CHECK([ovn-nbctl ls-lb-add ls0 lb3])
904AT_CHECK([ovn-nbctl ls-lb-del ls0])
c724bd67 905AT_CHECK([ovn-nbctl ls-lb-list ls0 | uuidfilt], [0], [])
c19105a0
MM
906
907dnl Add load balancer to logical router.
908AT_CHECK([ovn-nbctl lr-add lr0])
909AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
910AT_CHECK([ovn-nbctl lr-lb-add lr0 lb1])
911AT_CHECK([ovn-nbctl --may-exist lr-lb-add lr0 lb1])
912AT_CHECK([ovn-nbctl lr-lb-add lr0 lb2], [1], [],
913[ovn-nbctl: Multiple load balancers named 'lb2'. Use a UUID.
914])
915AT_CHECK([ovn-nbctl lr-lb-add lr0 lb3])
916
c724bd67 917AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
c19105a0
MM
918UUID LB PROTO VIP IPs
919<0> lb0 tcp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
920<1> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
921<2> lb3 tcp/udp ae0f::10 fd0f::10,fd0f::20
922])
923
924AT_CHECK([ovn-nbctl lr-lb-del lr0 lb0])
c724bd67 925AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [dnl
c19105a0
MM
926UUID LB PROTO VIP IPs
927<0> lb1 udp [[ae0f::10]]:80 [[fd0f::10]]:80,[[fd0f::20]]:80
928<1> lb3 tcp/udp ae0f::10 fd0f::10,fd0f::20
929])
930
931AT_CHECK([ovn-nbctl lr-lb-del lr0 lb1])
932AT_CHECK([ovn-nbctl lr-lb-del lr0 lb3])
c724bd67 933AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
c19105a0
MM
934AT_CHECK([ovn-nbctl --if-exists lr-lb-del lr0 lb1])
935
936dnl Remove all load balancers from logical router.
937AT_CHECK([ovn-nbctl lr-lb-add lr0 lb0])
938AT_CHECK([ovn-nbctl lr-lb-add lr0 lb1])
939AT_CHECK([ovn-nbctl lr-lb-add lr0 lb3])
940AT_CHECK([ovn-nbctl lr-lb-del lr0])
c724bd67 941AT_CHECK([ovn-nbctl lr-lb-list lr0 | uuidfilt], [0], [])
c19105a0
MM
942
943OVN_NBCTL_TEST_STOP
944AT_CLEANUP
7127583d
NG
945dnl ---------------------------------------------------------------------
946
fa2a27b2 947AT_SETUP([ovn-nbctl - basic logical router commands])
7127583d
NG
948OVN_NBCTL_TEST_START
949
fa2a27b2 950AT_CHECK([ovn-nbctl lr-add lr0])
c724bd67 951AT_CHECK([ovn-nbctl lr-list | uuidfilt], [0], [dnl
7127583d
NG
952<0> (lr0)
953])
954
fa2a27b2 955AT_CHECK([ovn-nbctl lr-add lr1])
c724bd67 956AT_CHECK([ovn-nbctl lr-list | uuidfilt], [0], [dnl
7127583d
NG
957<0> (lr0)
958<1> (lr1)
959])
960
fa2a27b2 961AT_CHECK([ovn-nbctl lr-del lr0])
c724bd67 962AT_CHECK([ovn-nbctl lr-list | uuidfilt], [0], [dnl
7127583d
NG
963<0> (lr1)
964])
965
966AT_CHECK([ovn-nbctl show lr0])
fa2a27b2 967AT_CHECK([ovn-nbctl lr-add lr0])
c724bd67 968AT_CHECK([ovn-nbctl show lr0 | uuidfilt], [0],
7a16f569 969 [router <0> (lr0)
7127583d 970])
fa2a27b2
JP
971AT_CHECK([ovn-nbctl lr-add lr0], [1], [],
972 [ovn-nbctl: lr0: a router with this name already exists
7127583d 973])
fa2a27b2 974AT_CHECK([ovn-nbctl --may-exist lr-add lr0])
c724bd67 975AT_CHECK([ovn-nbctl show lr0 | uuidfilt], [0],
7a16f569 976 [router <0> (lr0)
7127583d 977])
fa2a27b2
JP
978AT_CHECK([ovn-nbctl --add-duplicate lr-add lr0])
979AT_CHECK([ovn-nbctl --may-exist --add-duplicate lr-add lr0], [1], [],
7127583d
NG
980 [ovn-nbctl: --may-exist and --add-duplicate may not be used together
981])
fa2a27b2 982AT_CHECK([ovn-nbctl lr-del lr0], [1], [],
7127583d
NG
983 [ovn-nbctl: Multiple logical routers named 'lr0'. Use a UUID.
984])
985
fa2a27b2
JP
986AT_CHECK([ovn-nbctl lr-del lr2], [1], [],
987 [ovn-nbctl: lr2: router name not found
7127583d 988])
fa2a27b2 989AT_CHECK([ovn-nbctl --if-exists lr-del lr2])
7127583d 990
fa2a27b2
JP
991AT_CHECK([ovn-nbctl lr-add])
992AT_CHECK([ovn-nbctl lr-add])
993AT_CHECK([ovn-nbctl --add-duplicate lr-add], [1], [],
7127583d
NG
994 [ovn-nbctl: --add-duplicate requires specifying a name
995])
fa2a27b2 996AT_CHECK([ovn-nbctl --may-exist lr-add], [1], [],
7127583d
NG
997 [ovn-nbctl: --may-exist requires specifying a name
998])
999
1000OVN_NBCTL_TEST_STOP
1001AT_CLEANUP
1002
1003dnl ---------------------------------------------------------------------
1004
31114af7 1005AT_SETUP([ovn-nbctl - basic logical router port commands])
7127583d
NG
1006OVN_NBCTL_TEST_START
1007
fa2a27b2 1008AT_CHECK([ovn-nbctl lr-add lr0])
10c3fcdf 1009AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02 192.168.1.1/24], [1], [],
1010 [ovn-nbctl: lrp0: invalid mac address 00:00:00:01:02
1011])
1012AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03:04 192.168.1.1/24], [1], [],
1013 [ovn-nbctl: lrp0: invalid mac address 00:00:00:01:02:03:04
1014])
1015
31114af7 1016AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
34a88a45 1017
c724bd67 1018AT_CHECK([ovn-nbctl show lr0 | uuidfilt], [0], [dnl
7a16f569
BP
1019router <0> (lr0)
1020 port lrp0
1021 mac: "00:00:00:01:02:03"
1022 networks: [["192.168.1.1/24"]]
34a88a45
JP
1023])
1024
31114af7
JP
1025AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24], [1], [],
1026 [ovn-nbctl: lrp0: a port with this name already exists
7127583d 1027])
31114af7 1028AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
c724bd67 1029AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
7127583d
NG
1030<0> (lrp0)
1031])
1032
4685e523 1033AT_CHECK([ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer])
c724bd67 1034AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
7127583d
NG
1035<0> (lrp0)
1036<1> (lrp1)
1037])
1038
fa2a27b2 1039AT_CHECK([ovn-nbctl lr-add lr1])
31114af7
JP
1040AT_CHECK([ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
1041 [ovn-nbctl: lrp1: a port with this name already exists
7127583d
NG
1042])
1043
31114af7
JP
1044AT_CHECK([ovn-nbctl --may-exist lrp-add lr1 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
1045 [ovn-nbctl: lrp1: port already exists but in router lr0
7127583d
NG
1046])
1047
31114af7
JP
1048AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:04:05:06 192.168.1.1/24], [1], [],
1049 [ovn-nbctl: lrp1: port already exists with mac 00:00:00:01:02:03
7127583d
NG
1050])
1051
31114af7
JP
1052AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
1053 [ovn-nbctl: lrp1: port already exists with mismatching peer
7127583d
NG
1054])
1055
4685e523
JP
1056AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 peer=lrp1-peer], [1], [],
1057 [ovn-nbctl: lrp1: port already exists with different network
1058])
1059
1060AT_CHECK([ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer])
31114af7
JP
1061
1062AT_CHECK([ovn-nbctl lrp-del lrp1])
c724bd67 1063AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
31114af7 1064<0> (lrp0)
7127583d
NG
1065])
1066
4685e523
JP
1067AT_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])
1068
1069AT_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], [],
1070 [ovn-nbctl: lrp1: port already exists with different network
1071])
1072
1073AT_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])
36f232bc
VA
1074
1075OVN_NBCTL_TEST_STOP
1076AT_CLEANUP
1077
1078dnl ---------------------------------------------------------------------
1079
1080AT_SETUP([ovn-nbctl - logical router port gateway chassis])
1081OVN_NBCTL_TEST_START
1082AT_CHECK([ovn-nbctl lr-add lr0])
1083AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
1084AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [])
1085
1086AT_CHECK([ovn-nbctl lrp-set-gateway-chassis lp0 chassis1], [1], [],
1087[ovn-nbctl: lp0: port name not found
1088])
1089
1090AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lp0], [1], [],
1091[ovn-nbctl: lp0: port name not found
1092])
1093
1094AT_CHECK([ovn-nbctl lrp-del-gateway-chassis lp0 chassis1], [1], [],
1095[ovn-nbctl: lp0: port name not found
1096])
1097
1098AT_CHECK([ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1], [1], [],
1099[ovn-nbctl: chassis chassis1 is not added to logical port lrp0
1100])
1101AT_CHECK([ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1])
1102
1103AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [dnl
1104lrp0-chassis1 0
1105])
1106AT_CHECK([ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 10])
1107
1108AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [dnl
1109lrp0-chassis1 10
1110])
1111AT_CHECK([ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 20])
1112
1113AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [dnl
1114lrp0-chassis1 20
1115])
1116AT_CHECK([ovn-nbctl lrp-set-gateway-chassis lrp0 chassis2 5])
1117AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [dnl
1118lrp0-chassis1 20
1119lrp0-chassis2 5
1120])
1121
1122AT_CHECK([ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1])
1123AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0], [0], [dnl
1124lrp0-chassis2 5
1125])
1126
1127AT_CHECK([ovn-nbctl lrp-del-gateway-chassis lrp0 chassis2])
1128AT_CHECK([ovn-nbctl lrp-get-gateway-chassis lrp0])
4685e523 1129
7127583d
NG
1130OVN_NBCTL_TEST_STOP
1131AT_CLEANUP
1132
1133dnl ---------------------------------------------------------------------
1134
31114af7 1135AT_SETUP([ovn-nbctl - logical router port enable and disable])
7127583d
NG
1136OVN_NBCTL_TEST_START
1137
fa2a27b2 1138AT_CHECK([ovn-nbctl lr-add lr0])
31114af7
JP
1139AT_CHECK([ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24])
1140AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [enabled
7127583d
NG
1141])
1142
31114af7
JP
1143AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 disabled])
1144AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [disabled
7127583d
NG
1145])
1146
31114af7
JP
1147AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 enabled])
1148AT_CHECK([ovn-nbctl lrp-get-enabled lrp0], [0], [enabled
7127583d
NG
1149])
1150
31114af7 1151AT_CHECK([ovn-nbctl lrp-set-enabled lrp0 xyzzy], [1], [],
7127583d
NG
1152 [ovn-nbctl: xyzzy: state must be "enabled" or "disabled"
1153])
1154
1155OVN_NBCTL_TEST_STOP
1156AT_CLEANUP
e48ccf3c
JP
1157
1158dnl ---------------------------------------------------------------------
1159
1160AT_SETUP([ovn-nbctl - routes])
1161OVN_NBCTL_TEST_START
1162
1163AT_CHECK([ovn-nbctl lr-add lr0])
1164
1165dnl Check IPv4 routes
1166AT_CHECK([ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1])
1167AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.1.0/24 11.0.1.1 lp0])
1168AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.2])
1169
1170dnl Add overlapping route with 10.0.0.1/24
1171AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1], [1], [],
1172 [ovn-nbctl: duplicate prefix: 10.0.0.0/24
1173])
b712dea0 1174AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111a/24 11.0.0.1], [1], [],
1175 [ovn-nbctl: bad prefix argument: 10.0.0.111a/24
1176])
1177AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111/24a 11.0.0.1], [1], [],
1178 [ovn-nbctl: bad prefix argument: 10.0.0.111/24a
1179])
1180AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1a], [1], [],
1181 [ovn-nbctl: bad next hop argument: 11.0.0.1a
1182])
1183AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1/24], [1], [],
1184 [ovn-nbctl: bad IPv4 nexthop argument: 11.0.0.1/24
1185])
1186AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1/64], [1], [],
1187 [ovn-nbctl: bad IPv6 nexthop argument: 2001:0db8:0:f103::1/64
1188])
1189
e48ccf3c 1190AT_CHECK([ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1])
440a9f4b 1191AT_CHECK([ovn-nbctl --policy=src-ip lr-route-add lr0 9.16.1.0/24 11.0.0.1])
e48ccf3c
JP
1192
1193AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1194IPv4 Routes
440a9f4b
GS
1195 10.0.0.0/24 11.0.0.1 dst-ip
1196 10.0.1.0/24 11.0.1.1 dst-ip lp0
1197 9.16.1.0/24 11.0.0.1 src-ip
1198 0.0.0.0/0 192.168.0.1 dst-ip
e48ccf3c
JP
1199])
1200
01a528f3
GS
1201AT_CHECK([ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1 lp1])
1202AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1203IPv4 Routes
440a9f4b
GS
1204 10.0.0.0/24 11.0.0.1 dst-ip lp1
1205 10.0.1.0/24 11.0.1.1 dst-ip lp0
1206 9.16.1.0/24 11.0.0.1 src-ip
1207 0.0.0.0/0 192.168.0.1 dst-ip
01a528f3
GS
1208])
1209
e48ccf3c
JP
1210dnl Delete non-existent prefix
1211AT_CHECK([ovn-nbctl lr-route-del lr0 10.0.2.1/24], [1], [],
1212 [ovn-nbctl: no matching prefix: 10.0.2.0/24
1213])
1214AT_CHECK([ovn-nbctl --if-exists lr-route-del lr0 10.0.2.1/24])
1215
1216AT_CHECK([ovn-nbctl lr-route-del lr0 10.0.1.1/24])
440a9f4b 1217AT_CHECK([ovn-nbctl lr-route-del lr0 9.16.1.0/24])
e48ccf3c
JP
1218
1219AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1220IPv4 Routes
440a9f4b
GS
1221 10.0.0.0/24 11.0.0.1 dst-ip lp1
1222 0.0.0.0/0 192.168.0.1 dst-ip
e48ccf3c
JP
1223])
1224
1225AT_CHECK([ovn-nbctl lr-route-del lr0])
1226AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1227])
1228
1229dnl Check IPv6 routes
8c7623fe 1230AT_CHECK([ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1])
e48ccf3c
JP
1231AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0])
1232AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1])
1233
1234AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1235IPv6 Routes
440a9f4b
GS
1236 2001:db8::/64 2001:db8:0:f102::1 dst-ip lp0
1237 2001:db8:1::/64 2001:db8:0:f103::1 dst-ip
1238 ::/0 2001:db8:0:f101::1 dst-ip
e48ccf3c
JP
1239])
1240
1241AT_CHECK([ovn-nbctl lr-route-del lr0 2001:0db8:0::/64])
1242
1243AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1244IPv6 Routes
440a9f4b
GS
1245 2001:db8:1::/64 2001:db8:0:f103::1 dst-ip
1246 ::/0 2001:db8:0:f101::1 dst-ip
e48ccf3c
JP
1247])
1248
1249AT_CHECK([ovn-nbctl lr-route-del lr0])
1250AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1251])
1252
1253dnl Check IPv4 and IPv6 routes
1254AT_CHECK([ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1])
1255AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.1.1/24 11.0.1.1 lp0])
1256AT_CHECK([ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.1])
8c7623fe 1257AT_CHECK([ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1])
e48ccf3c
JP
1258AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0])
1259AT_CHECK([ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1])
1260
1261AT_CHECK([ovn-nbctl lr-route-list lr0], [0], [dnl
1262IPv4 Routes
440a9f4b
GS
1263 10.0.0.0/24 11.0.0.1 dst-ip
1264 10.0.1.0/24 11.0.1.1 dst-ip lp0
1265 0.0.0.0/0 192.168.0.1 dst-ip
e48ccf3c
JP
1266
1267IPv6 Routes
440a9f4b
GS
1268 2001:db8::/64 2001:db8:0:f102::1 dst-ip lp0
1269 2001:db8:1::/64 2001:db8:0:f103::1 dst-ip
1270 ::/0 2001:db8:0:f101::1 dst-ip
e48ccf3c
JP
1271])
1272
1273OVN_NBCTL_TEST_STOP
1274AT_CLEANUP
173acc1c
MM
1275
1276dnl ---------------------------------------------------------------------
1277
1278AT_SETUP([ovn-nbctl - lsp types])
1279OVN_NBCTL_TEST_START
1280
1281AT_CHECK([ovn-nbctl ls-add ls0])
1282AT_CHECK([ovn-nbctl lsp-add ls0 lp0])
1283
1284dnl switchport type defaults to empty
1285AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1286
1287])
1288
1289dnl The following are the valid entries for
1290dnl switchport type
1291AT_CHECK([ovn-nbctl lsp-set-type lp0 l2gateway])
1292AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1293l2gateway
1294])
1295
1296AT_CHECK([ovn-nbctl lsp-set-type lp0 router])
1297AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1298router
1299])
1300
1301AT_CHECK([ovn-nbctl lsp-set-type lp0 localnet])
1302AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1303localnet
1304])
1305
1306AT_CHECK([ovn-nbctl lsp-set-type lp0 localport])
1307AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1308localport
1309])
1310
1311AT_CHECK([ovn-nbctl lsp-set-type lp0 vtep])
1312AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1313vtep
1314])
1315
1316dnl All of these are valid southbound port types but
1317dnl should be rejected for northbound logical switch
1318dnl ports.
1319AT_CHECK([ovn-nbctl lsp-set-type lp0 l3gateway], [1], [], [dnl
1320ovn-nbctl: Logical switch port type 'l3gateway' is unrecognized. Not setting type.
1321])
1322AT_CHECK([ovn-nbctl lsp-set-type lp0 patch], [1], [], [dnl
1323ovn-nbctl: Logical switch port type 'patch' is unrecognized. Not setting type.
1324])
1325AT_CHECK([ovn-nbctl lsp-set-type lp0 chassisredirect], [1], [], [dnl
1326ovn-nbctl: Logical switch port type 'chassisredirect' is unrecognized. Not setting type.
1327])
1328
1329dnl switch port type should still be "vtep" since previous
1330dnl commands failed.
1331AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1332vtep
1333])
1334
1335dnl Attempt a nonsense type
1336AT_CHECK([ovn-nbctl lsp-set-type lp0 eggs], [1], [], [dnl
1337ovn-nbctl: Logical switch port type 'eggs' is unrecognized. Not setting type.
1338])
1339
1340dnl Empty string should work too
1341AT_CHECK([ovn-nbctl lsp-set-type lp0 ""])
1342AT_CHECK([ovn-nbctl lsp-get-type lp0], [0], [dnl
1343
1344])
1345
1346OVN_NBCTL_TEST_STOP
1347AT_CLEANUP
3ffed5cb
GL
1348
1349dnl ---------------------------------------------------------------------
1350
1351AT_SETUP([ovn-nbctl - connection])
1352OVN_NBCTL_TEST_START
1353
1354AT_CHECK([ovn-nbctl --inactivity-probe=30000 set-connection ptcp:6641:127.0.0.1 punix:$OVS_RUNDIR/ovnnb_db.sock])
1355AT_CHECK([ovn-nbctl list connection | grep inactivity_probe], [0], [dnl
1356inactivity_probe : 30000
1357inactivity_probe : 30000
1358])
1359
1360OVN_NBCTL_TEST_STOP
1361AT_CLEANUP