OVN&OVS代码下载、编译安装以及运行步骤

1、代码下载

新建代码目录 /home/code

下载ovs代码:git clone -b branch-2.15 https://github.com/openvswitch/ovs.git

下载ovn代码:git clone -b branch-21.03 https://github.com/ovn-org/ovn.git

2、代码编译

2.1 ovs代码编译

安装依赖包:

apt-get install -y apt-utils libelf-dev build-essential libssl-dev python3 wget gdb autoconf libtool git automake bzip2 debhelper dh-autoreconf openssl libnetfilter-conntrack-dev libmnl-dev

编译:

cd /home/code/ovs2021

./boot.sh
./configure
make install
export PATH=$PATH:/usr/local/share/openvswitch/scripts

启动:

ovs-ctl stop
ovs-ctl start --system-id=random 

2.2 ovn代码编译

安装依赖包跟ovs一样,前面ovs编译安装过,就不必重复安装了

编译:

cd /home/code/ovn2021
./boot.sh
./configure --with-ovs-source=/home/code/ovs2021 --with-ovs-build=/home/code/ovs2021    (使用ovs2021代码目录)
make install

export PATH=$PATH:/usr/local/share/ovn/scripts

启动:

ovn-ctl stop_northd
ovn-ctl start_northd            (起ovn-northd 及 ovsdb 南北向数据库)

ovn-ctl stop_controller
ovn-ctl start_controller       (起ovn-controller 本地控制器)

3、自动化用例执行

3.1 ovn

3.1.1 整体用例执行

一共是322个单元测试用例,大概耗时10分钟左右,都是可以跑通的;

root@ubuntu:/home/code/ovn2021# make check
make check-am
make[1]: Entering directory '/home/code/ovn2021'
PYTHONPATH=/home/code/ovs2021/python":"$PYTHONPATH":"./python /usr/bin/python3 ./build-aux/soexpand.py -I. -I/home/code/ovs2021 < utilities/ovn-sbctl.8.in | \
/usr/bin/python3 ./build-aux/dpdkstrip.py | \
sed \
-e 's,[@]PKIDIR[@],/usr/local/var/lib/openvswitch/pki,g' \
-e 's,[@]LOGDIR[@],/usr/local/var/log/ovn,g' \
-e 's,[@]DBDIR[@],/usr/local/etc/ovn,g' \
-e 's,[@]PYTHON3[@],/usr/bin/python3,g' \
-e 's,[@]OVN_RUNDIR[@],/usr/local/var/run/ovn,g' \
-e 's,[@]OVSBUILDDIR[@],/home/code/ovs2021,g' \
-e 's,[@]VERSION[@],21.03.1,g' \
-e 's,[@]OVSVERSION[@],2.15.1,g' \
-e 's,[@]localstatedir[@],/usr/local/var,g' \
-e 's,[@]pkgdatadir[@],/usr/local/share/ovn,g' \
-e 's,[@]sysconfdir[@],/usr/local/etc,g' \
-e 's,[@]bindir[@],/usr/local/bin,g' \
-e 's,[@]sbindir[@],/usr/local/sbin,g' \
-e 's,[@]abs_builddir[@],/home/code/ovn2021,g' \
-e 's,[@]abs_top_srcdir[@],/home/code/ovn2021,g' \
> utilities/ovn-sbctl.8.tmp
mv utilities/ovn-sbctl.8.tmp utilities/ovn-sbctl.8
PYTHONPATH=/home/code/ovs2021/python":"$PYTHONPATH":"./python /usr/bin/python3 ./build-aux/soexpand.py -I. -I/home/code/ovs2021 < utilities/ovn-detrace.1.in | \
/usr/bin/python3 ./build-aux/dpdkstrip.py | \
sed \
-e 's,[@]PKIDIR[@],/usr/local/var/lib/openvswitch/pki,g' \
-e 's,[@]LOGDIR[@],/usr/local/var/log/ovn,g' \
-e 's,[@]DBDIR[@],/usr/local/etc/ovn,g' \
-e 's,[@]PYTHON3[@],/usr/bin/python3,g' \
-e 's,[@]OVN_RUNDIR[@],/usr/local/var/run/ovn,g' \
-e 's,[@]OVSBUILDDIR[@],/home/code/ovs2021,g' \
-e 's,[@]VERSION[@],21.03.1,g' \
-e 's,[@]OVSVERSION[@],2.15.1,g' \
-e 's,[@]localstatedir[@],/usr/local/var,g' \
-e 's,[@]pkgdatadir[@],/usr/local/share/ovn,g' \
-e 's,[@]sysconfdir[@],/usr/local/etc,g' \
-e 's,[@]bindir[@],/usr/local/bin,g' \
-e 's,[@]sbindir[@],/usr/local/sbin,g' \
-e 's,[@]abs_builddir[@],/home/code/ovn2021,g' \
-e 's,[@]abs_top_srcdir[@],/home/code/ovn2021,g' \
> utilities/ovn-detrace.1.tmp
mv utilities/ovn-detrace.1.tmp utilities/ovn-detrace.1
touch -c manpage-check
make tests/atlocal tests/testpki-cacert.pem tests/testpki-cert.pem tests/testpki-privkey.pem tests/testpki-req.pem tests/testpki-cert2.pem tests/testpki-privkey2.pem tests/testpki-req2.pem
make[2]: Entering directory '/home/code/ovn2021'
make[2]: 'tests/atlocal' is up to date.
rm -f tests/pki/stamp
rm -rf tests/pki
/bin/bash /home/code/ovs2021/utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log init && \
/bin/bash /home/code/ovs2021/utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log req+sign tests/pki/test && \
/bin/bash /home/code/ovs2021/utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log req+sign tests/pki/test2 && \
: > tests/pki/stamp
Creating controllerca...
Creating switchca...
tests/pki/test-req.pem Thu May 6 18:42:31 PDT 2021
fingerprint e7b6e9f77d4656ac944081f159fbcb9d7bd14825
tests/pki/test2-req.pem Thu May 6 18:42:31 PDT 2021
fingerprint 16f24ad0ceb7abf544fb725ad5b8d14eaf5df100
cp tests/pki/switchca/cacert.pem tests/testpki-cacert.pem
cp tests/pki/test-cert.pem tests/testpki-cert.pem
cp tests/pki/test-privkey.pem tests/testpki-privkey.pem
cp tests/pki/test-req.pem tests/testpki-req.pem
cp tests/pki/test2-cert.pem tests/testpki-cert2.pem
cp tests/pki/test2-privkey.pem tests/testpki-privkey2.pem
cp tests/pki/test2-req.pem tests/testpki-req2.pem
make[2]: Leaving directory '/home/code/ovn2021'
make check-local
make[2]: Entering directory '/home/code/ovn2021'
set /bin/bash './tests/testsuite' -C tests AUTOTEST_PATH=/home/code/ovs2021/utilities:/home/code/ovs2021/vswitchd:/home/code/ovs2021/ovsdb:/home/code/ovs2021/vtep:tests:::controller-vtep:northd:utilities:controller:ic; \
"$@" || \
(test -z "$(find /home/code/ovn2021/tests/testsuite.dir -name 'asan.*')" && \
test X'' = Xyes && "$@" --recheck)
## ----------------------- ##
## ovn 21.03.1 test suite. ##
## ----------------------- ##

test library internal helpers

1: ip_to_hex ok
2: ip_csum ok
3: ip4_csum_inplace ok
4: ip6_pseudoheader ok
5: icmp6_csum ok
6: tcpdump_hex ok

OVN unit tests - IPAM

7: ovn -- unit test -- init_ipam_ipv4 ok
8: ovn -- unit test -- init_ipam_ipv6_prefix ok
9: ovn -- unit test -- ipam_get_unused_ip ok

OVN components

10: ovn -- lexer ok
11: ovn -- registers ok
12: ovn -- conntrack fields ok
13: ovn -- composition ok
14: ovn -- expression parser ok
15: ovn -- expression annotation ok
16: ovn -- 1-term expression conversion ok
17: ovn -- 2-term expression conversion ok
18: ovn -- 3-term expression conversion ok
19: ovn -- 3-term numeric expression simplification ok
20: ovn -- 4-term string expression simplification ok
21: ovn -- 3-term mixed expression simplification ok
22: ovn -- simplification special cases ok
23: ovn -- is_chassis_resident simplification ok
24: ovn -- 4-term numeric expression normalization ok
25: ovn -- 4-term string expression normalization ok
26: ovn -- 4-term mixed expression normalization ok
27: ovn -- 5-term numeric expression normalization ok
28: ovn -- 5-term string expression normalization ok
29: ovn -- 5-term mixed expression normalization ok
30: ovn -- 4-term numeric expressions to flows ok
31: ovn -- 4-term string expressions to flows ok
32: ovn -- 4-term mixed expressions to flows ok
33: ovn -- 3-term numeric expressions to flows ok
34: ovn -- converting expressions to flows -- string fields ok
35: ovn -- converting expressions to flows -- address sets ok
36: ovn -- converting expressions to flows -- port groups ok
37: ovn -- converting expressions to flows -- conjunction ok
38: ovn -- action parsing ok

OVN end-to-end tests

39: ovn -- 3 HVs, 1 LS, 3 lports/HV ok
40: ovn -- 2 HVs, 1 LS, 2 lports/HV ok
41: ovn -- trace 1 LS, 3 LSPs ok
42: ovn -- 2 HVs, 4 lports/HV, localnet ports ok
43: ovn -- 2 HVs, 2 LS, routing works for multiple collocated segments attached to different switches ok
44: ovn -- 2 HVs, 2 LS, broadcast traffic with multiple localnet ports per switch ok
45: ovn -- 2 HVs, 2 LS, switching between multiple localnet ports with same tags ok
46: ovn -- VLAN transparency, passthru=true ok
47: ovn -- VLAN transparency, passthru=false ok
48: ovn -- 2 HVs, 1 LS, no switching between multiple localnet ports with different tags ok
49: ovn -- vtep: 3 HVs, 1 VIFs/HV, 1 GW, 1 LS ok
50: ovn -- 3 HVs, 1 VIFs/HV, 1 software GW, 1 LS ok
51: ovn -- 3 HVs, 3 LS, 3 lports/LS, 1 LR ok
52: ovn -- IP relocation using GARP request ok
53: ovn -- portsecurity : 3 HVs, 1 LS, 3 lports/HV ok
54: ovn -- 2 HVs, 2 LS, 1 lport/LS, 2 peer LRs ok
55: ovn -- 1 HV, 1 LS, 2 lport/LS, 1 LR ok
56: ovn -- 1 HV, 2 LSs, 1 lport/LS, 1 LR ok
57: ovn -- 2 HVs, 3 LS, 1 lport/LS, 2 peer LRs, static routes ok
58: ovn -- send gratuitous arp on localnet ok
59: ovn -- 2 HVs, 3 LRs connected via LS, static routes ok
60: ovn -- dhcpv4 : 1 HV, 2 LS, 2 LSPs/LS ok
61: ovn -- dhcpv6 : 1 HV, 2 LS, 5 LSPs ok
62: ovn -- 2 HVs, 2 LRs connected via LS, gateway router ok
63: ovn -- icmp_reply: 1 HVs, 2 LSs, 1 lport/LS, 1 LR ok
64: ovn -- policy-based routing: 1 HVs, 2 LSs, 1 lport/LS, 1 LR ok
65: ovn -- policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR ok
66: ovn -- port state up and down ok
67: ovn -- datapath rules added/removed ok
68: ovn -- nd_na ok
69: ovn -- address sets modification/removal smoke test ok
70: ovn -- ipam ok
71: ovn -- ipam connectivity ok
72: ovn -- ovs-vswitchd restart ok
73: ovn -- send arp for nexthop ok
74: ovn -- send gratuitous arp for nat ips in localnet ok
75: ovn -- send gratuitous arp with nat-addresses router in localnet ok
76: ovn -- delete mac bindings ok
77: ovn -- conntrack zone allocation ok
78: ovn -- tag allocation ok
79: ovn -- lsp deletion and broadcast-flow deletion on localnet ok
80: ovn -- ACL logging ok
81: ovn -- ACL rate-limited logging ok
82: ovn -- same meter used by multiple logical flows ok
83: ovn -- DSCP marking and meter check ok
84: ovn -- read-only sb db:ptcp access ok
85: ovn -- read-only sb db:pssl access ok
86: ovn -- nb connection/ssl commands ok
87: ovn -- sb connection/ssl commands ok
88: ovn -- nested containers ok
89: ovn -- 3 HVs, 3 LRs connected via LS, source IP based routes ok
90: ovn -- dns lookup : 1 HV, 2 LS, 2 LSPs/LS ok
91: ovn -- 4 HV, 1 LS, 1 LR, packet test with HA distributed router gateway port ok
92: ovn -- 4 HV, 3 LS, 2 LR, packet test with HA distributed router gateway port ok
93: ovn -- 1 LR with distributed router gateway port ok
94: ovn -- send gratuitous arp for NAT rules on distributed router ok
95: ovn -- vlan traffic for external network with distributed router gateway port ok
96: ovn -- IPv6 ND Router Solicitation responder ok
97: ovn -- /32 router IP address ok
98: ovn -- 2 HVs, 1 lport/HV, localport ports ok
99: ovn -- localport suppress gARP ok
100: ovn -- 1 LR with HA distributed router gateway port ok
101: ovn -- send gratuitous ARP for NAT rules on HA distributed router ok
102: ovn -- ensure one gw controller restart in HA doesn't bounce the master ok
103: ovn -- IPv6 Neighbor Solicitation for unknown MAC ok
104: ovn -- options:requested-chassis for logical port ok
105: ovn -- options:requested-chassis with hostname ok
106: ovn -- IPv6 periodic RA ok
107: ovn -- ACL reject rule test ok
108: ovn -- Port Groups ok
109: ovn -- ACLs on Port Groups ok
110: ovn -- Address Set generation from Port Groups (static addressing) ok
111: ovn -- Address Set generation from Port Groups (dynamic addressing) ok
112: ovn -- ACL conjunction ok
113: ovn -- Superseding ACLs with conjunction ok
114: ovn -- L2 Drop and Allow ACL w/ Stateful ACL ok
115: ovn -- TTL exceeded ok
116: ovn -- router port unreachable ok
117: ovn -- ovn-controller exit ok
118: ovn -- external logical port ok
119: ovn -- Address Set Incremental Processing ok
120: ovn -- ovn-controller restart ok
121: ovn -- ovn-nbctl duplicate addresses ok
122: ovn -- router - check packet length - icmp defrag ok
123: ovn -- IP packet buffering ok
124: ovn -- neighbor update on same HV ok
125: ovn -- ipam to non-ipam ok
126: ovn -- ipam router ports ok
127: ovn -- test transport zones ok
128: ovn -- 2 HVs, 2 lports/HV, localnet ports, DVR chassis mac ok
129: ovn -- virtual ports ok
130: ovn -- can't write to a backup database server instance ok
131: ovn -- controller event ok
132: ovn -- IGMP snoop/querier/relay ok
133: ovn -- MLD snoop/querier/relay ok
134: ovn -- unixctl socket ok
135: ovn -- ARP lookup before learning ok
136: ovn -- 1 HVs, 1 lport/HV, localnet ports, RARP ok
137: ovn -- Stateless Floating IP ok
138: ovn -- Load balancer health checks ok
139: ovn -- SCTP Load balancer health checks ok
140: ovn -- ARP/ND request broadcast limiting ok
141: ovn -- trace when flow cookie updated ok
142: ovn -- interconnection ok
143: ovn -- ECMP static routes ok
144: ovn -- forwarding group: 3 HVs, 1 LR, 2 LS ok
145: ovn -- Load Balancer LS hairpin ok
146: ovn -- Big Load Balancer ok
147: ovn -- Bind existing VIF ok
148: ovn -- Release stale port binding ok
149: ovn -- Logical router policy packet marking ok
150: ovn -- normalized lrp-add ok
151: ovn -- normalized lr-nat-add ok
152: ovn -- normalized lr-nat-del ok
153: ovn -- Load balancer selection fields ok
154: ovn -- controller I-P handling with monitoring disabled ok
155: ovn -- controller I-P handling when lrp added last ok
156: ovn -- Test clear flows in physical tables ok
157: ovn -- Symmetric ECMP reply flows ok
158: ovn -- Dynamic neighbor between LRs ok
159: ovn -- lflow cache for conjunctions ok
160: ovn -- lflow cache operations ok
161: ovn -- Delete Port_Binding and OVS port Incremental Processing ok
162: ovn -- Multiple OVS port changes Incremental Processing ok
163: ovn -- Container port Incremental Processing ok
164: ovn -- gateway router drop traffic for own IPs ok
165: ovn -- nb_cfg timestamp ok
166: ovn -- ARP replies for SNAT external ips ok
167: ovn -- conflict or duplicate ACLs resulting in same OVS match ok
168: ovn -- conflict ACLs with address set ok
169: ovn -- port bind/unbind change handling with conj flows - IPv6 ok
170: ovn -- I-P of OVS interface changes which belong to non integration bridge ok
171: ovn -- multi-vtep SB Chassis encap updates ok
172: ovn -- Load Balancer LS hairpin OF flows ok
173: ovn -- check ovn-northd and ovn-controller version pinning ok
174: ovn -- propagate Port_Binding.up to NB and OVS ok
175: ovn -- No ovn-controller assert for port group updates ok
176: ovn -- No ovn-controller assert when generating conjunction flows ok
177: ovn -- OVN FDB (MAC learning) - 2 HVs, 2 LS, 1 LR ok
178: ovn -- container port changed to normal port and then deleted ok
179: ovn -- container port changed from one parent to another ok
180: ovn -- container port use-after-free test ok
181: ovn -- Non-VIF ports incremental processing ok
182: ovn -- ovn-controller local bindings ok
183: ovn -- ovn-controller incremental processing ok

OVN northd

184: ovn -- check from NBDB to SBDB ok
185: ovn -- check up state of VIF LSP ok
186: ovn -- check up state of router LSP linked to a distributed LR ok
187: ovn -- check up state of router LSP linked to a gateway LR ok
188: ovn -- check up state of router LSP linked to an LRP with set Gateway Chassis ok
189: ovn -- check IPv6 RA config propagation to SBDB ok
190: ovn -- test unixctl ok
191: ovn -- check HA_Chassis_Group propagation from NBDB to SBDB ok
192: ovn -- ovn-northd pause and resume ok
193: ovn -- check Redirect Chassis propagation from NB to SB ok
194: ovn -- check stateless dnat_and_snat rule ok
195: ovn -- check portrange dnat, snat and dnat_and_snat rules ok
196: ovn -- check allowed/disallowed external dnat, snat and dnat_and_snat rules ok
197: ovn -- check Load balancer health check and Service Monitor sync ok
198: ovn -- Load balancer VIP in NAT entries ok
199: ovn -- DNAT force snat IP ok
200: ovn -- check reconcile stale Datapath_Binding ok
201: ovn -- check reconcile stale tunnel keys ok
202: ovn -- check reconcile stale Ha_Chassis_Group ok
203: ovn -- check NB/SB Port_Group translation (lsp add/del) ok
204: ovn -- check NB/SB Port_Group translation (ls del) ok
205: ovn -- check router ARP/NS responder ok
206: ovn -- Load balancer - missing ls_out_pre_lb flows ok
207: ovn -- ignore_lsp_down ok
208: ovn-northd -- reject ACL ok
209: ovn -- ACL fair Meters ok
210: ovn -- ACL skip hints for stateless config ok
211: datapath requested-tnl-key ok
212: port requested-tnl-key ok
213: ovn -- NB to SB load balancer sync ok
214: ovn -- LS load balancer hairpin logical flows ok
215: ovn -- logical gatapath groups ok
216: ovn -- Router policies - ECMP reroute ok
217: ovn -- check BFD config propagation to SBDB ok
218: ovn -- check LSP attached to multiple LS ok
219: ovn -- check LRP attached to multiple LR ok
220: ovn -- check duplicate LSP/LRP ok
221: ovn -- Port_Binding.up backwards compatibility ok
222: ovn -- lb_force_snat_ip for Gateway Routers ok
223: ovn -- HA chassis group cleanup for external port ok
224: ovn -- FDB cleanup ok

ovn-nbctl

225: ovn-nbctl - basic switch commands - direct ok
226: ovn-nbctl - basic switch commands - daemon ok
227: ovn-nbctl - basic logical switch port commands - direct ok
228: ovn-nbctl - basic logical switch port commands - daemon ok
229: ovn-nbctl - lsp get ls - direct ok
230: ovn-nbctl - lsp get ls - daemon ok
231: ovn-nbctl - lport addresses - direct ok
232: ovn-nbctl - lport addresses - daemon ok
233: ovn-nbctl - port security - direct ok
234: ovn-nbctl - port security - daemon ok
235: ovn-nbctl - ACLs - direct ok
236: ovn-nbctl - ACLs - daemon ok
237: ovn-nbctl - QoS - direct ok
238: ovn-nbctl - QoS - daemon ok
239: ovn-nbctl - meters - direct ok
240: ovn-nbctl - meters - daemon ok
241: ovn-nbctl - NATs - direct ok
242: ovn-nbctl - NATs - daemon ok
243: ovn-nbctl - LBs - direct ok
244: ovn-nbctl - LBs - daemon ok
245: ovn-nbctl - LBs IPv6 - direct ok
246: ovn-nbctl - LBs IPv6 - daemon ok
247: ovn-nbctl - basic logical router commands - direct ok
248: ovn-nbctl - basic logical router commands - daemon ok
249: ovn-nbctl - basic logical router port commands - direct ok
250: ovn-nbctl - basic logical router port commands - daemon ok
251: ovn-nbctl - logical router port gateway chassis - direct ok
252: ovn-nbctl - logical router port gateway chassis - daemon ok
253: ovn-nbctl - logical router port redirect type - direct ok
254: ovn-nbctl - logical router port redirect type - daemon ok
255: ovn-nbctl - logical router port enable and disable - direct ok
256: ovn-nbctl - logical router port enable and disable - daemon ok
257: ovn-nbctl - routes - direct ok
258: ovn-nbctl - routes - daemon ok
259: ovn-nbctl - policies - direct ok
260: ovn-nbctl - policies - daemon ok
261: ovn-nbctl - lsp types - direct ok
262: ovn-nbctl - lsp types - daemon ok
263: ovn-nbctl - connection - direct ok
264: ovn-nbctl - connection - daemon ok
265: ovn-nbctl - dry run mode - direct ok
266: ovn-nbctl - dry run mode - daemon ok
267: ovn-nbctl - oneline output - direct ok
268: ovn-nbctl - oneline output - daemon ok
269: ovn-nbctl - commands parser error paths - direct ok
270: ovn-nbctl - commands parser error paths - daemon ok
271: ovn-nbctl - port groups - direct ok
272: ovn-nbctl - port groups - daemon ok
273: ovn-nbctl - extra newlines - direct ok
274: ovn-nbctl - extra newlines - daemon ok
275: ovn-nbctl - table formatting - direct ok
276: ovn-nbctl - table formatting - daemon ok
277: ovn-nbctl - port group commands - direct ok
278: ovn-nbctl - port group commands - daemon ok
279: ovn-nbctl - fwd groups - direct ok
280: ovn-nbctl - fwd groups - daemon ok
281: ovn-nbctl - basic negative tests - direct ok
282: ovn-nbctl - basic negative tests - daemon ok
283: ovn-nbctl - daemon retry connection ok

OVN unit tests - lflow-cache

284: ovn -- unit test -- lflow-cache single add/lookup ok
285: ovn -- unit test -- lflow-cache single add/lookup/del ok
286: ovn -- unit test -- lflow-cache disabled single add/lookup/del ok
287: ovn -- unit test -- lflow-cache disable/enable/flush ok
288: ovn -- unit test -- lflow-cache set limit ok
289: ovn -- unit test -- lflow-cache negative tests ok

OVN unit tests - ofctrl-seqno

290: ovn -- unit test -- ofctrl-seqno add-type ok
291: ovn -- unit test -- ofctrl-seqno ack-seqnos ok

ovn-sbctl

292: ovn-sbctl - chassis commands ok
293: ovn-sbctl ok
294: ovn-sbctl - connection ok

ovn-ic-nbctl

295: ovn-ic-nbctl ok

ovn-ic-sbctl

296: ovn-ic-sbctl ok

ovn-controller

297: ovn-controller - ovn-bridge-mappings ok
298: ovn-controller - Chassis other_config ok
299: ovn-controller - change Encap properties ok
300: ovn-controller - check sbdb connection ok
301: ovn-controller - Chassis self record ok
302: ovn-controller - Bump Chassis_Private nb_cfg value ok
303: ovn-controller - debug/delay-nb-cfg-report ok
304: ovn -- nb_cfg sync to OVS ok
305: ovn -- features ok
306: ovn-controller - port binding type change handling ok

ovn_controller_vtep

307: ovn-controller-vtep - chassis ok
308: ovn-controller-vtep - binding 1 ok
309: ovn-controller-vtep - binding 2 ok
310: ovn-controller-vtep - vtep-lswitch ok
311: ovn-controller-vtep - vtep-macs 1 ok
312: ovn-controller-vtep - vtep-macs 2 ok

OVN Interconnection Controller

313: ovn-ic -- AZ register ok
314: ovn-ic -- transit switch handling ok
315: ovn-ic -- gateway sync ok
316: ovn-ic -- port sync ok
317: ovn-ic -- route sync ok

checkpatch

318: checkpatch - sign-offs ok
319: checkpatch - parenthesized constructs ok
320: checkpatch - parenthesized constructs - for ok
321: checkpatch - comments ok
322: checkpatch - whitespace around operator ok

## ------------- ##
## Test results. ##
## ------------- ##

All 322 tests were successful.
make[2]: Leaving directory '/home/code/ovn2021'
make[1]: Leaving directory '/home/code/ovn2021'
root@ubuntu:/home/code/ovn2021#

3.1.2 单个用例执行

比如执行280的用例:

root@ubuntu:/home/code/ovn2021# make check TESTSUITEFLAGS=280
make check-am
make[1]: Entering directory '/home/code/ovn2021'
PYTHONPATH=/home/code/ovs2021/python":"$PYTHONPATH":"./python /usr/bin/python3 ./build-aux/soexpand.py -I. -I/home/code/ovs2021 < utilities/ovn-sbctl.8.in | \
/usr/bin/python3 ./build-aux/dpdkstrip.py | \
sed \
-e 's,[@]PKIDIR[@],/usr/local/var/lib/openvswitch/pki,g' \
-e 's,[@]LOGDIR[@],/usr/local/var/log/ovn,g' \
-e 's,[@]DBDIR[@],/usr/local/etc/ovn,g' \
-e 's,[@]PYTHON3[@],/usr/bin/python3,g' \
-e 's,[@]OVN_RUNDIR[@],/usr/local/var/run/ovn,g' \
-e 's,[@]OVSBUILDDIR[@],/home/code/ovs2021,g' \
-e 's,[@]VERSION[@],21.03.1,g' \
-e 's,[@]OVSVERSION[@],2.15.1,g' \
-e 's,[@]localstatedir[@],/usr/local/var,g' \
-e 's,[@]pkgdatadir[@],/usr/local/share/ovn,g' \
-e 's,[@]sysconfdir[@],/usr/local/etc,g' \
-e 's,[@]bindir[@],/usr/local/bin,g' \
-e 's,[@]sbindir[@],/usr/local/sbin,g' \
-e 's,[@]abs_builddir[@],/home/code/ovn2021,g' \
-e 's,[@]abs_top_srcdir[@],/home/code/ovn2021,g' \
> utilities/ovn-sbctl.8.tmp
mv utilities/ovn-sbctl.8.tmp utilities/ovn-sbctl.8
PYTHONPATH=/home/code/ovs2021/python":"$PYTHONPATH":"./python /usr/bin/python3 ./build-aux/soexpand.py -I. -I/home/code/ovs2021 < utilities/ovn-detrace.1.in | \
/usr/bin/python3 ./build-aux/dpdkstrip.py | \
sed \
-e 's,[@]PKIDIR[@],/usr/local/var/lib/openvswitch/pki,g' \
-e 's,[@]LOGDIR[@],/usr/local/var/log/ovn,g' \
-e 's,[@]DBDIR[@],/usr/local/etc/ovn,g' \
-e 's,[@]PYTHON3[@],/usr/bin/python3,g' \
-e 's,[@]OVN_RUNDIR[@],/usr/local/var/run/ovn,g' \
-e 's,[@]OVSBUILDDIR[@],/home/code/ovs2021,g' \
-e 's,[@]VERSION[@],21.03.1,g' \
-e 's,[@]OVSVERSION[@],2.15.1,g' \
-e 's,[@]localstatedir[@],/usr/local/var,g' \
-e 's,[@]pkgdatadir[@],/usr/local/share/ovn,g' \
-e 's,[@]sysconfdir[@],/usr/local/etc,g' \
-e 's,[@]bindir[@],/usr/local/bin,g' \
-e 's,[@]sbindir[@],/usr/local/sbin,g' \
-e 's,[@]abs_builddir[@],/home/code/ovn2021,g' \
-e 's,[@]abs_top_srcdir[@],/home/code/ovn2021,g' \
> utilities/ovn-detrace.1.tmp
mv utilities/ovn-detrace.1.tmp utilities/ovn-detrace.1
touch -c manpage-check
make tests/atlocal tests/testpki-cacert.pem tests/testpki-cert.pem tests/testpki-privkey.pem tests/testpki-req.pem tests/testpki-cert2.pem tests/testpki-privkey2.pem tests/testpki-req2.pem
make[2]: Entering directory '/home/code/ovn2021'
make[2]: 'tests/atlocal' is up to date.
make[2]: 'tests/testpki-cacert.pem' is up to date.
make[2]: 'tests/testpki-cert.pem' is up to date.
make[2]: 'tests/testpki-privkey.pem' is up to date.
make[2]: 'tests/testpki-req.pem' is up to date.
make[2]: 'tests/testpki-cert2.pem' is up to date.
make[2]: 'tests/testpki-privkey2.pem' is up to date.
make[2]: 'tests/testpki-req2.pem' is up to date.
make[2]: Leaving directory '/home/code/ovn2021'
make check-local
make[2]: Entering directory '/home/code/ovn2021'
set /bin/bash './tests/testsuite' -C tests AUTOTEST_PATH=/home/code/ovs2021/utilities:/home/code/ovs2021/vswitchd:/home/code/ovs2021/ovsdb:/home/code/ovs2021/vtep:tests:::controller-vtep:northd:utilities:controller:ic; \
"$@" 280 || \
(test -z "$(find /home/code/ovn2021/tests/testsuite.dir -name 'asan.*')" && \
test X'' = Xyes && "$@" --recheck)
## ----------------------- ##
## ovn 21.03.1 test suite. ##
## ----------------------- ##
280: ovn-nbctl - fwd groups - daemon ok

## ------------- ##
## Test results. ##
## ------------- ##

1 test was successful.
make[2]: Leaving directory '/home/code/ovn2021'
make[1]: Leaving directory '/home/code/ovn2021'
root@ubuntu:/home/code/ovn2021#

3.2 ovs

一共是2299个单元测试用例;

root@ubuntu:/home/code/ovs2021# make check
make check-recursive
make[1]: Entering directory '/home/code/ovs2021'
Making check in datapath
make[2]: Entering directory '/home/code/ovs2021/datapath'
make[3]: Entering directory '/home/code/ovs2021/datapath'
make[3]: Leaving directory '/home/code/ovs2021/datapath'
make[2]: Leaving directory '/home/code/ovs2021/datapath'
make[2]: Entering directory '/home/code/ovs2021'
make[3]: Entering directory '/home/code/ovs2021/datapath'
make[3]: 'distfiles' is up to date.
make[3]: Leaving directory '/home/code/ovs2021/datapath'
make utilities/ovs-appctl-bashcomp.bash utilities/ovs-vsctl-bashcomp.bash tests/atlocal tests/testpki-cacert.pem tests/testpki-cert.pem tests/testpki-privkey.pem tests/testpki-req.pem tests/testpki-cert2.pem tests/testpki-privkey2.pem tests/testpki-req2.pem
make[3]: Entering directory '/home/code/ovs2021'
make[3]: Nothing to be done for 'utilities/ovs-appctl-bashcomp.bash'.
make[3]: Nothing to be done for 'utilities/ovs-vsctl-bashcomp.bash'.
make[3]: 'tests/atlocal' is up to date.
rm -f tests/pki/stamp
rm -rf tests/pki
/bin/bash ./utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log init && \
/bin/bash ./utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log req+sign tests/pki/test && \
/bin/bash ./utilities/ovs-pki.in --dir=tests/pki --log=tests/ovs-pki.log req+sign tests/pki/test2 && \
: > tests/pki/stamp
Creating controllerca...
Creating switchca...
tests/pki/t

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Open Virtual Network(OVN)是建立在Open vSwitch(OVS)之上的虚拟网络解决方案。OVN通过OVS提供的网络转发和流量处理功能来实现网络通信。 OVN和OVS之间的通信是通过Northbound、Southbound和Southbound数据库实现的。 1. Northbound:Northbound是OVN和外部管理平面之间的接口。外部管理平面可以是OpenStack、Kubernetes等云管理平台或其他管理工具。通过Northbound接口,管理平面可以向OVN提供逻辑网络配置(如逻辑交换机、逻辑端口等),并获取网络状态和统计数据。 2. Southbound:Southbound是OVN和底层网络设备之间的接口。底层网络设备可以是物理交换机、虚拟交换机等。通过Southbound接口,OVN可以向底层网络设备下发流表规则,以实现逻辑网络的转发和流量处理。 3. Southbound数据库:Southbound数据库是一个存储底层网络设备状态和配置信息的数据库。OVN使用Southbound数据库来同步逻辑网络配置和底层网络设备状态。Southbound数据库可以是OVSDB(Open vSwitch Database)或其他兼容的数据库。 具体通信流程如下: 1. 外部管理平面通过Northbound接口将逻辑网络配置写入OVN控制器。 2. OVN控制器将逻辑网络配置存储在自己的数据库中。 3. OVN控制器将逻辑网络配置转换为OVS的规则,并将其下发到相应的OVS交换机上。 4. OVS交换机根据收到的规则进行数据包的转发和流量处理。 5. OVS交换机将处理后的数据包发送到目标主机或底层网络设备。 以上是OVN和OVS之间通信的基本流程。通过这种方式,OVN实现了对逻辑网络的管理和控制,而OVS提供了实际的网络转发和流量处理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值