dpif-netlink: add GENEVE creation support
[cascardo/ovs.git] / tests / ovn-sbctl.at
1 AT_BANNER([ovn-sbctl])
2
3 # OVN_SBCTL_TEST_START
4 m4_define([OVN_SBCTL_TEST_START],
5   [dnl Create databases (ovn-nb, ovn-sb).
6    AT_KEYWORDS([ovn])
7    for daemon in ovn-nb ovn-sb; do
8       AT_CHECK([ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema])
9    done
10
11    dnl Start ovsdb-servers.
12    AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnnb_db.pid --log-file=$OVS_RUNDIR/ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db ], [0], [], [stderr])
13    AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnsb_db.pid --log-file=$OVS_RUNDIR/ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db], [0], [], [stderr])
14    on_exit "kill `cat ovnnb_db.pid` `cat ovnsb_db.pid`"
15    AT_CHECK([[sed < stderr '
16 /vlog|INFO|opened log file/d
17 /ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d']])
18    AT_CAPTURE_FILE([ovsdb-server.log])
19
20    dnl Start ovn-northd.
21    AT_CHECK([ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock], [0], [], [stderr])
22    on_exit "kill `cat ovn-northd.pid`"
23    AT_CHECK([[sed < stderr '
24 /vlog|INFO|opened log file/d']])
25    AT_CAPTURE_FILE([ovn-northd.log])
26 ])
27
28 # OVN_SBCTL_TEST_STOP
29 m4_define([OVN_SBCTL_TEST_STOP],
30   [# removes all 'Broken pipe' warning logs from ovsdb-server.log.  this is in
31    # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
32    # to database.  however, in reaction, some daemon (e.g. ovn-controller-vtep)
33    # may immediately update the database.  this later update may cause database
34    # sending update back to *ctl command if *ctl has not proceeded to exit yet.
35    # and if *ctl command exits before database calling send, the send from
36    # database will fail with 'Broken pipe' error.
37    AT_CHECK([check_logs "$1
38 /Broken pipe/d"])
39    OVS_APP_EXIT_AND_WAIT([ovn-northd])
40    OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovnnb_db])
41    OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovnsb_db])])
42
43 dnl ---------------------------------------------------------------------
44
45 AT_SETUP([ovn-sbctl - chassis commands])
46 OVN_SBCTL_TEST_START
47 ovn_init_db ovn-sb
48
49 AT_CHECK([ovn-sbctl chassis-add ch0 geneve 1.2.3.4])
50 AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
51          [0], [dnl
52 1.2.3.4,geneve
53 ])
54
55 AT_CHECK([ovn-sbctl chassis-add ch1 stt,geneve,vxlan 1.2.3.5])
56 AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
57          [0], [dnl
58 1.2.3.4,geneve
59 1.2.3.5,geneve
60 1.2.3.5,stt
61 1.2.3.5,vxlan
62 ])
63
64 AT_CHECK([ovn-sbctl chassis-del ch0])
65 AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
66          [0], [dnl
67 1.2.3.5,geneve
68 1.2.3.5,stt
69 1.2.3.5,vxlan
70 ])
71
72 OVN_SBCTL_TEST_STOP
73 as ovn-sb
74 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
75 AT_CLEANUP
76
77 dnl ---------------------------------------------------------------------
78
79 AT_SETUP([ovn-sbctl])
80 OVN_SBCTL_TEST_START
81
82 AT_CHECK([ovn-nbctl ls-add br-test])
83 AT_CHECK([ovn-nbctl lsp-add br-test vif0])
84 AT_CHECK([ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02])
85 AT_CHECK([ovn-sbctl chassis-add ch0 stt 1.2.3.5])
86 AT_CHECK([ovn-sbctl lport-bind vif0 ch0])
87
88 AT_CHECK([ovn-sbctl show], [0], [dnl
89 Chassis "ch0"
90     Encap stt
91         ip: "1.2.3.5"
92     Port_Binding "vif0"
93 ])
94
95 # adds another 'vif1'
96 AT_CHECK([ovn-nbctl lsp-add br-test vif1])
97 AT_CHECK([ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03])
98 AT_CHECK([ovn-sbctl lport-bind vif1 ch0])
99
100 AT_CHECK([ovn-sbctl show | sed 's/vif[[0-9]]/vif/'], [0], [dnl
101 Chassis "ch0"
102     Encap stt
103         ip: "1.2.3.5"
104     Port_Binding "vif"
105     Port_Binding "vif"
106 ])
107
108 # deletes 'vif1'
109 AT_CHECK([ovn-nbctl lsp-del vif1])
110
111 AT_CHECK([ovn-sbctl show], [0], [dnl
112 Chassis "ch0"
113     Encap stt
114         ip: "1.2.3.5"
115     Port_Binding "vif0"
116 ])
117
118 uuid=$(ovn-sbctl --columns=_uuid list Chassis ch0 | cut -d ':' -f2 | tr -d ' ')
119 AT_CHECK_UNQUOTED([ovn-sbctl --columns=logical_port,mac,chassis list Port_Binding], [0], [dnl
120 logical_port        : "vif0"
121 mac                 : [["f0:ab:cd:ef:01:02"]]
122 chassis             : ${uuid}
123 ])
124
125 # test the passing down of logical port type and options.
126 AT_CHECK([ovn-nbctl lsp-add br-test vtep0])
127 AT_CHECK([ovn-nbctl lsp-set-type vtep0 vtep])
128 AT_CHECK([ovn-nbctl lsp-set-options vtep0 vtep_physical_switch=p0 vtep_logical_switch=l0])
129
130 OVS_WAIT_UNTIL([test -n "`ovn-sbctl --columns=logical_port list Port_Binding | grep vtep0`" ])
131 AT_CHECK_UNQUOTED([ovn-sbctl --columns=logical_port,mac,type,options list Port_Binding vtep0], [0], [dnl
132 logical_port        : "vtep0"
133 mac                 : [[]]
134 type                : vtep
135 options             : {vtep_logical_switch="l0", vtep_physical_switch="p0"}
136 ])
137
138 OVN_SBCTL_TEST_STOP
139 AT_CLEANUP