1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
AT_BANNER([ovn-sbctl])
# OVN_SBCTL_TEST_START
m4_define([OVN_SBCTL_TEST_START],
[dnl Create databases (ovn-nb, ovn-sb).
AT_KEYWORDS([ovn])
for daemon in ovn-nb ovn-sb; do
AT_CHECK([ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema])
done
dnl Start ovsdb-servers.
AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db ], [0], [], [stderr])
AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db], [0], [], [stderr])
on_exit "kill `cat ovnnb_db.pid` `cat ovnsb_db.pid`"
AT_CHECK([[sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d']])
AT_CAPTURE_FILE([ovsdb-server.log])
dnl Start ovn-northd.
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])
on_exit "kill `cat ovn-northd.pid`"
AT_CHECK([[sed < stderr '
/vlog|INFO|opened log file/d']])
AT_CAPTURE_FILE([ovn-northd.log])
])
# OVN_SBCTL_TEST_STOP
m4_define([OVN_SBCTL_TEST_STOP],
[AT_CHECK([check_logs "$1"])
OVS_APP_EXIT_AND_WAIT([ovn-northd])
OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnnb_db.ctl], [$OVS_RUNDIR/ovnnb_db.pid])
OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnsb_db.ctl], [$OVS_RUNDIR/ovnsb_db.pid])])
dnl ---------------------------------------------------------------------
AT_SETUP([ovn-sbctl - chassis commands])
OVN_SBCTL_TEST_START
ovn_init_db ovn-sb
AT_CHECK([ovn-sbctl chassis-add ch0 geneve 1.2.3.4])
AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
[0], [dnl
1.2.3.4,geneve
])
AT_CHECK([ovn-sbctl chassis-add ch1 stt,geneve,vxlan 1.2.3.5])
AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
[0], [dnl
1.2.3.4,geneve
1.2.3.5,geneve
1.2.3.5,stt
1.2.3.5,vxlan
])
AT_CHECK([ovn-sbctl chassis-del ch0])
AT_CHECK([ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort],
[0], [dnl
1.2.3.5,geneve
1.2.3.5,stt
1.2.3.5,vxlan
])
OVN_SBCTL_TEST_STOP
as ovn-sb
OVS_APP_EXIT_AND_WAIT([ovsdb-server])
AT_CLEANUP
dnl ---------------------------------------------------------------------
AT_SETUP([ovn-sbctl])
OVN_SBCTL_TEST_START
AT_CHECK([ovn-nbctl ls-add br-test])
AT_CHECK([ovn-nbctl lsp-add br-test vif0])
AT_CHECK([ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02])
AT_CHECK([ovn-sbctl chassis-add ch0 stt 1.2.3.5])
AT_CHECK([ovn-nbctl --wait=sb sync])
AT_CHECK([ovn-sbctl lsp-bind vif0 ch0])
AT_CHECK([ovn-sbctl show], [0], [dnl
Chassis "ch0"
Encap stt
ip: "1.2.3.5"
options: {csum="true"}
Port_Binding "vif0"
])
# adds another 'vif1'
AT_CHECK([ovn-nbctl --wait=sb lsp-add br-test vif1])
AT_CHECK([ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03])
AT_CHECK([ovn-sbctl lsp-bind vif1 ch0])
AT_CHECK([ovn-sbctl show | sed 's/vif[[0-9]]/vif/'], [0], [dnl
Chassis "ch0"
Encap stt
ip: "1.2.3.5"
options: {csum="true"}
Port_Binding "vif"
Port_Binding "vif"
])
# deletes 'vif1'
AT_CHECK([ovn-nbctl lsp-del vif1])
AT_CHECK([ovn-nbctl --wait=sb sync])
AT_CHECK([ovn-sbctl show], [0], [dnl
Chassis "ch0"
Encap stt
ip: "1.2.3.5"
options: {csum="true"}
Port_Binding "vif0"
])
uuid=$(ovn-sbctl --columns=_uuid list Chassis ch0 | cut -d ':' -f2 | tr -d ' ')
AT_CHECK_UNQUOTED([ovn-sbctl --columns=logical_port,mac,chassis list Port_Binding], [0], [dnl
logical_port : "vif0"
mac : [["f0:ab:cd:ef:01:02"]]
chassis : ${uuid}
])
# test the passing down of logical port type and options.
AT_CHECK([ovn-nbctl --wait=sb lsp-add br-test vtep0])
AT_CHECK([ovn-nbctl lsp-set-type vtep0 vtep])
AT_CHECK([ovn-nbctl lsp-set-options vtep0 vtep_physical_switch=p0 vtep_logical_switch=l0])
AT_CHECK([ovn-sbctl --timeout=10 wait-until Port_Binding vtep0 options!={}])
AT_CHECK([ovn-sbctl --columns=logical_port,mac,type,options list Port_Binding vtep0], [0], [dnl
logical_port : "vtep0"
mac : [[]]
type : vtep
options : {vtep_logical_switch="l0", vtep_physical_switch="p0"}
])
OVN_SBCTL_TEST_STOP
AT_CLEANUP
dnl ---------------------------------------------------------------------
AT_SETUP([ovn-sbctl - connection])
OVN_SBCTL_TEST_START
AT_CHECK([ovn-sbctl --inactivity-probe=30000 set-connection ptcp:6641:127.0.0.1 punix:$OVS_RUNDIR/ovnsb_db.sock])
AT_CHECK([ovn-sbctl list connection | grep inactivity_probe], [0], [dnl
inactivity_probe : 30000
inactivity_probe : 30000
])
OVN_SBCTL_TEST_STOP
AT_CLEANUP
|