]>
Commit | Line | Data |
---|---|---|
76d5beb9 YT |
1 | How to Install Open vSwitch on Linux, FreeBSD and NetBSD |
2 | ======================================================== | |
4b11d5e8 BP |
3 | |
4 | This document describes how to build and install Open vSwitch on a | |
76d5beb9 YT |
5 | generic Linux, FreeBSD, or NetBSD host. For specifics around installation |
6 | on a specific platform, please see one of these files: | |
4b11d5e8 | 7 | |
6494ea4c BP |
8 | - INSTALL.Debian |
9 | - INSTALL.Fedora | |
10 | - INSTALL.RHEL | |
11 | - INSTALL.XenServer | |
0f3df203 | 12 | - INSTALL.NetBSD |
4b11d5e8 BP |
13 | |
14 | Build Requirements | |
15 | ------------------ | |
16 | ||
17 | To compile the userspace programs in the Open vSwitch distribution, | |
18 | you will need the following software: | |
19 | ||
380b39f7 | 20 | - GNU make. |
4b11d5e8 | 21 | |
8a6de510 BP |
22 | - A C compiler, such as: |
23 | ||
24 | * GCC 4.x. | |
25 | ||
26 | * Clang. Clang 3.4 and later provide useful static semantic | |
27 | analysis and thread-safety checks. For Ubuntu, there are | |
28 | nightly built packages available on clang's website. | |
4b11d5e8 BP |
29 | |
30 | - libssl, from OpenSSL, is optional but recommended if you plan to | |
31 | connect the Open vSwitch to an OpenFlow controller. libssl is | |
32 | required to establish confidentiality and authenticity in the | |
f272ec73 BP |
33 | connections from an Open vSwitch to an OpenFlow controller. If |
34 | libssl is installed, then Open vSwitch will automatically build | |
35 | with support for it. | |
4b11d5e8 | 36 | |
deb64473 BP |
37 | - Python 2.x, for x >= 4. |
38 | ||
f6eb6b20 GL |
39 | To compile the kernel module on Linux, you must also install the |
40 | following. If you cannot build or install the kernel module, you may | |
41 | use the userspace-only implementation, at a cost in performance. The | |
d377243b BP |
42 | userspace implementation may also lack some features. Refer to |
43 | INSTALL.userspace for more information. | |
4b11d5e8 BP |
44 | |
45 | - A supported Linux kernel version. Please refer to README for a | |
46 | list of supported versions. | |
47 | ||
48 | The Open vSwitch datapath requires bridging support | |
49 | (CONFIG_BRIDGE) to be built as a kernel module. (This is common | |
50 | in kernels provided by Linux distributions.) The bridge module | |
51 | must not be loaded or in use. If the bridge module is running | |
52 | (check with "lsmod | grep bridge"), you must remove it ("rmmod | |
53 | bridge") before starting the datapath. | |
54 | ||
55 | For optional support of ingress policing, you must enable kernel | |
f8500004 JP |
56 | configuration options NET_CLS_BASIC, NET_SCH_INGRESS, and |
57 | NET_ACT_POLICE, either built-in or as modules. (NET_CLS_POLICE is | |
58 | obsolete and not needed.) | |
4b11d5e8 | 59 | |
2be0b371 JG |
60 | To use GRE tunneling on Linux 2.6.37 or newer, kernel support |
61 | for GRE must be compiled in or available as a module | |
62 | (CONFIG_NET_IPGRE_DEMUX). | |
6f470982 | 63 | |
c9d3af4e BP |
64 | To configure HTB or HFSC quality of service with Open vSwitch, |
65 | you must enable the respective configuration options. | |
66 | ||
26bb189d BP |
67 | To use Open vSwitch support for TAP devices, you must enable |
68 | CONFIG_TUN. | |
69 | ||
4b11d5e8 BP |
70 | - To build a kernel module, you need the same version of GCC that |
71 | was used to build that kernel. | |
72 | ||
73 | - A kernel build directory corresponding to the Linux kernel image | |
74 | the module is to run on. Under Debian and Ubuntu, for example, | |
75 | each linux-image package containing a kernel binary has a | |
76 | corresponding linux-headers package with the required build | |
77 | infrastructure. | |
78 | ||
79 | If you are working from a Git tree or snapshot (instead of from a | |
c9d3af4e BP |
80 | distribution tarball), or if you modify the Open vSwitch build system |
81 | or the database schema, you will also need the following software: | |
4b11d5e8 | 82 | |
55aa00e0 | 83 | - Autoconf version 2.64 or later. |
4b11d5e8 BP |
84 | |
85 | - Automake version 1.10 or later. | |
86 | ||
deb64473 | 87 | - libtool version 2.4 or later. (Older versions might work too.) |
195b5c35 | 88 | |
c9d3af4e BP |
89 | To run the unit tests, you also need: |
90 | ||
91 | - Perl. Version 5.10.1 is known to work. Earlier versions should | |
92 | also work. | |
93 | ||
a5ae88ff AA |
94 | The ovs-vswitchd.conf.db(5) manpage will include an E-R diagram, in |
95 | formats other than plain text, only if you have the following: | |
f8d739a9 BP |
96 | |
97 | - "dot" from graphviz (http://www.graphviz.org/). | |
98 | ||
c9d3af4e BP |
99 | - Perl. Version 5.10.1 is known to work. Earlier versions should |
100 | also work. | |
101 | ||
102 | - Python 2.x, for x >= 4. | |
103 | ||
f8f26e98 BP |
104 | If you are going to extensively modify Open vSwitch, please consider |
105 | installing the following to obtain better warnings: | |
106 | ||
107 | - "sparse" version 0.4.4 or later | |
108 | (http://www.kernel.org/pub/software/devel/sparse/dist/). | |
109 | ||
110 | - GNU make. | |
111 | ||
97be1538 EJ |
112 | - clang, version 3.4 or later |
113 | ||
fef5244f EJ |
114 | Also, you may find the ovs-dev script found in utilities/ovs-dev.py useful. |
115 | ||
4b11d5e8 BP |
116 | Installation Requirements |
117 | ------------------------- | |
118 | ||
119 | The machine on which Open vSwitch is to be installed must have the | |
120 | following software: | |
121 | ||
122 | - libc compatible with the libc used for build. | |
123 | ||
124 | - libssl compatible with the libssl used for build, if OpenSSL was | |
125 | used for the build. | |
126 | ||
f6eb6b20 | 127 | - On Linux, the same kernel version configured as part of the build. |
4b11d5e8 | 128 | |
f6eb6b20 GL |
129 | - For optional support of ingress policing on Linux, the "tc" program |
130 | from iproute2 (part of all major distributions and available at | |
4b11d5e8 BP |
131 | http://www.linux-foundation.org/en/Net:Iproute2). |
132 | ||
f6eb6b20 GL |
133 | On Linux you should ensure that /dev/urandom exists. To support TAP |
134 | devices, you must also ensure that /dev/net/tun exists. | |
6e8e271c | 135 | |
76d5beb9 YT |
136 | Building and Installing Open vSwitch for Linux, FreeBSD or NetBSD |
137 | ================================================================= | |
4b11d5e8 BP |
138 | |
139 | Once you have installed all the prerequisites listed above in the Base | |
140 | Prerequisites section, follow the procedure below to build. | |
141 | ||
f6eb6b20 | 142 | 1. If you pulled the sources directly from an Open vSwitch Git tree, |
30746a1b JP |
143 | run boot.sh in the top source directory: |
144 | ||
145 | % ./boot.sh | |
146 | ||
147 | 2. In the top source directory, configure the package by running the | |
4b11d5e8 BP |
148 | configure script. You can usually invoke configure without any |
149 | arguments: | |
150 | ||
151 | % ./configure | |
152 | ||
153 | By default all files are installed under /usr/local. If you want | |
154 | to install into, e.g., /usr and /var instead of /usr/local and | |
155 | /usr/local/var, add options as shown here: | |
156 | ||
157 | % ./configure --prefix=/usr --localstatedir=/var | |
158 | ||
159 | To use a specific C compiler for compiling Open vSwitch user | |
160 | programs, also specify it on the configure command line, like so: | |
161 | ||
162 | % ./configure CC=gcc-4.2 | |
163 | ||
97be1538 EJ |
164 | To use 'clang' compiler: |
165 | ||
166 | % ./configure CC=clang | |
167 | ||
4b11d5e8 BP |
168 | To build the Linux kernel module, so that you can run the |
169 | kernel-based switch, pass the location of the kernel build | |
338fb44a | 170 | directory on --with-linux. For example, to build for a running |
8a2d6596 | 171 | instance of Linux: |
4b11d5e8 | 172 | |
8a2d6596 | 173 | % ./configure --with-linux=/lib/modules/`uname -r`/build |
4b11d5e8 BP |
174 | |
175 | If you wish to build the kernel module for an architecture other | |
176 | than the architecture of the machine used for the build, you may | |
177 | specify the kernel architecture string using the KARCH variable | |
178 | when invoking the configure script. For example, to build for MIPS | |
8a2d6596 | 179 | with Linux: |
4b11d5e8 | 180 | |
22bcc0e7 | 181 | % ./configure --with-linux=/path/to/linux KARCH=mips |
4b11d5e8 | 182 | |
ad367b28 BP |
183 | If you plan to do much Open vSwitch development, you might want to |
184 | add --enable-Werror, which adds the -Werror option to the compiler | |
185 | command line, turning warnings into errors. That makes it | |
186 | impossible to miss warnings generated by the build. | |
187 | ||
e3c7ed29 BP |
188 | To build with gcov code coverage support, add --enable-coverage, |
189 | e.g.: | |
190 | ||
191 | % ./configure --enable-coverage | |
192 | ||
4b11d5e8 BP |
193 | The configure script accepts a number of other options and honors |
194 | additional environment variables. For a full list, invoke | |
195 | configure with the --help option. | |
196 | ||
380b39f7 | 197 | 3. Run GNU make in the top source directory, e.g.: |
4b11d5e8 BP |
198 | |
199 | % make | |
200 | ||
380b39f7 BP |
201 | or if GNU make is installed as "gmake": |
202 | ||
203 | % gmake | |
f6eb6b20 | 204 | |
f8f26e98 | 205 | For improved warnings if you installed "sparse" (see |
380b39f7 | 206 | "Prerequisites"), add C=1 to the command line. |
f8f26e98 | 207 | |
875ef81b KM |
208 | 4. Consider running the testsuite. Refer to "Running the Testsuite" |
209 | below, for instructions. | |
4b11d5e8 | 210 | |
875ef81b KM |
211 | 5. Become root by running "su" or another program. |
212 | ||
213 | 6. Run "make install" to install the executables and manpages into the | |
4b11d5e8 BP |
214 | running system, by default under /usr/local. |
215 | ||
ffd6065a | 216 | 7. If you built kernel modules, you may install and load them, e.g.: |
4b11d5e8 | 217 | |
ffd6065a JG |
218 | % make modules_install |
219 | % /sbin/modprobe openvswitch | |
4b11d5e8 | 220 | |
4b11d5e8 | 221 | To verify that the modules have been loaded, run "/sbin/lsmod" and |
9b80f761 | 222 | check that openvswitch is listed. |
4b11d5e8 | 223 | |
ffd6065a | 224 | If the "modprobe" operation fails, look at the last few kernel log |
dd2d79ce BP |
225 | messages (e.g. with "dmesg | tail"): |
226 | ||
9b80f761 | 227 | - The message "openvswitch: exports duplicate symbol |
dd2d79ce BP |
228 | br_should_route_hook (owned by bridge)" means that the bridge |
229 | module is loaded. Run "/sbin/rmmod bridge" to remove it. | |
230 | ||
231 | If "/sbin/rmmod bridge" fails with "ERROR: Module bridge does | |
232 | not exist in /proc/modules", then the bridge is compiled into | |
233 | the kernel, rather than as a module. Open vSwitch does not | |
234 | support this configuration (see "Build Requirements", above). | |
235 | ||
9b80f761 | 236 | - The message "openvswitch: exports duplicate symbol |
dd2d79ce BP |
237 | dp_ioctl_hook (owned by ofdatapath)" means that the ofdatapath |
238 | module from the OpenFlow reference implementation is loaded. | |
239 | Run "/sbin/rmmod ofdatapath" to remove it. (You might have to | |
240 | delete any existing datapaths beforehand, using the "dpctl" | |
241 | program included with the OpenFlow reference implementation. | |
242 | "ovs-dpctl" will not work.) | |
243 | ||
244 | - Otherwise, the most likely problem is that Open vSwitch was | |
245 | built for a kernel different from the one into which you are | |
9b80f761 | 246 | trying to load it. Run "modinfo" on openvswitch.ko and on |
dd2d79ce BP |
247 | a module built for the running kernel, e.g.: |
248 | ||
9b80f761 | 249 | % /sbin/modinfo openvswitch.ko |
dd2d79ce BP |
250 | % /sbin/modinfo /lib/modules/`uname -r`/kernel/net/bridge/bridge.ko |
251 | ||
252 | Compare the "vermagic" lines output by the two commands. If | |
253 | they differ, then Open vSwitch was built for the wrong kernel. | |
254 | ||
255 | - If you decide to report a bug or ask a question related to | |
256 | module loading, please include the output from the "dmesg" and | |
257 | "modinfo" commands mentioned above. | |
258 | ||
9b80f761 | 259 | There is an optional module parameter to openvswitch.ko called |
3f6256af JG |
260 | vlan_tso that enables TCP segmentation offload over VLANs on NICs |
261 | that support it. Many drivers do not expose support for TSO on VLANs | |
262 | in a way that Open vSwitch can use but there is no way to detect | |
263 | whether this is the case. If you know that your particular driver can | |
264 | handle it (for example by testing sending large TCP packets over VLANs) | |
265 | then passing in a value of 1 may improve performance. Modules built for | |
431488e6 BP |
266 | Linux kernels 2.6.37 and later, as well as specially patched versions |
267 | of earlier kernels, do not need this and do not have this parameter. If | |
268 | you do not understand what this means or do not know if your driver | |
269 | will work, do not set this. | |
3f6256af | 270 | |
875ef81b | 271 | 8. Initialize the configuration database using ovsdb-tool, e.g.: |
4b11d5e8 | 272 | |
028415b6 BP |
273 | % mkdir -p /usr/local/etc/openvswitch |
274 | % ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema | |
4b11d5e8 | 275 | |
3b12adda BP |
276 | Startup |
277 | ======= | |
4b11d5e8 | 278 | |
3b12adda | 279 | Before starting ovs-vswitchd itself, you need to start its |
cb8141b2 BP |
280 | configuration database, ovsdb-server. Each machine on which Open |
281 | vSwitch is installed should run its own copy of ovsdb-server. | |
282 | Configure it to use the database you created during step 7 of | |
8084a280 BP |
283 | installation, above, to listen on a Unix domain socket, to connect to |
284 | any managers specified in the database itself, and to use the SSL | |
285 | configuration in the database: | |
286 | ||
29701194 | 287 | % ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ |
6faab099 JP |
288 | --remote=db:Open_vSwitch,Open_vSwitch,manager_options \ |
289 | --private-key=db:Open_vSwitch,SSL,private_key \ | |
290 | --certificate=db:Open_vSwitch,SSL,certificate \ | |
291 | --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \ | |
29701194 | 292 | --pidfile --detach |
3b12adda | 293 | |
d3e3fb58 BP |
294 | (If you built Open vSwitch without SSL support, then omit |
295 | --private-key, --certificate, and --bootstrap-ca-cert.) | |
296 | ||
de4f3c10 | 297 | Then initialize the database using ovs-vsctl. This is only |
332b4e09 BP |
298 | necessary the first time after you create the database with |
299 | ovsdb-tool (but running it at any time is harmless): | |
300 | ||
de4f3c10 | 301 | % ovs-vsctl --no-wait init |
332b4e09 | 302 | |
3b12adda BP |
303 | Then start the main Open vSwitch daemon, telling it to connect to the |
304 | same Unix domain socket: | |
305 | ||
80df177a | 306 | % ovs-vswitchd --pidfile --detach |
3b12adda BP |
307 | |
308 | Now you may use ovs-vsctl to set up bridges and other Open vSwitch | |
309 | features. For example, to create a bridge named br0 and add ports | |
310 | eth0 and vif1.0 to it: | |
311 | ||
312 | % ovs-vsctl add-br br0 | |
313 | % ovs-vsctl add-port br0 eth0 | |
314 | % ovs-vsctl add-port br0 vif1.0 | |
315 | ||
316 | Please refer to ovs-vsctl(8) for more details. | |
4b11d5e8 | 317 | |
8b055d92 BP |
318 | Upgrading |
319 | ========= | |
320 | ||
321 | When you upgrade Open vSwitch from one version to another, you should | |
322 | also upgrade the database schema: | |
323 | ||
324 | 1. Stop the Open vSwitch daemons, e.g.: | |
325 | ||
012f5c4b | 326 | % kill `cd /usr/local/var/run/openvswitch && cat ovsdb-server.pid ovs-vswitchd.pid` |
8b055d92 BP |
327 | |
328 | 2. Install the new Open vSwitch release. | |
329 | ||
330 | 3. Upgrade the database, in one of the following two ways: | |
331 | ||
332 | - If there is no important data in your database, then you may | |
333 | delete the database file and recreate it with ovsdb-tool, | |
334 | following the instructions under "Building and Installing Open | |
76d5beb9 | 335 | vSwitch for Linux, FreeBSD or NetBSD". |
8b055d92 BP |
336 | |
337 | - If you want to preserve the contents of your database, back it | |
338 | up first, then use "ovsdb-tool convert" to upgrade it, e.g.: | |
339 | ||
028415b6 | 340 | % ovsdb-tool convert /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema |
8b055d92 BP |
341 | |
342 | 4. Start the Open vSwitch daemons as described under "Building and | |
76d5beb9 | 343 | Installing Open vSwitch for Linux, FreeBSD or NetBSD" above. |
8b055d92 | 344 | |
4e375050 GS |
345 | Hot Upgrading |
346 | ============= | |
347 | Upgrading Open vSwitch from one version to the next version with minimum | |
348 | disruption of traffic going through the system that is using that Open vSwitch | |
349 | needs some considerations: | |
350 | ||
351 | 1. If the upgrade only involves upgrading the userspace utilities and daemons | |
352 | of Open vSwitch, make sure that the new userspace version is compatible with | |
353 | the previously loaded kernel module. | |
354 | ||
355 | 2. An upgrade of userspace daemons means that they have to be restarted. | |
356 | Restarting the daemons means that the Openflow flows in the ovs-vswitchd daemon | |
357 | will be lost. One way to restore the flows is to let the controller | |
358 | re-populate it. Another way is to save the previous flows using a utility | |
359 | like ovs-ofctl and then re-add them after the restart. Restoring the old flows | |
360 | is accurate only if the new Open vSwitch interfaces retain the old 'ofport' | |
361 | values. | |
362 | ||
363 | 3. When the new userspace daemons get restarted, they automatically flush | |
364 | the old flows setup in the kernel. This can be expensive if there are hundreds | |
365 | of new flows that are entering the kernel but userspace daemons are busy | |
366 | setting up new userspace flows from either the controller or an utility like | |
367 | ovs-ofctl. Open vSwitch database provides an option to solve this problem | |
368 | through the other_config:flow-restore-wait column of the Open_vSwitch table. | |
369 | Refer to the ovs-vswitchd.conf.db(5) manpage for details. | |
370 | ||
371 | 4. If the upgrade also involves upgrading the kernel module, the old kernel | |
372 | module needs to be unloaded and the new kernel module should be loaded. This | |
373 | means that the kernel network devices belonging to Open vSwitch is recreated | |
374 | and the kernel flows are lost. The downtime of the traffic can be reduced | |
375 | if the userspace daemons are restarted immediately and the userspace flows | |
376 | are restored as soon as possible. | |
377 | ||
378 | The ovs-ctl utility's "restart" function only restarts the userspace daemons, | |
379 | makes sure that the 'ofport' values remain consistent across restarts, restores | |
380 | userspace flows using the ovs-ofctl utility and also uses the | |
381 | other_config:flow-restore-wait column to keep the traffic downtime to the | |
382 | minimum. The ovs-ctl utility's "force-reload-kmod" function does all of the | |
383 | above, but also replaces the old kernel module with the new one. Open vSwitch | |
384 | startup scripts for Debian, XenServer and RHEL use ovs-ctl's functions and it | |
385 | is recommended that these functions be used for other software platforms too. | |
386 | ||
e3c7ed29 BP |
387 | Testsuites |
388 | ========== | |
389 | ||
390 | This section describe Open vSwitch's built-in support for various test | |
391 | suites. You must configure and build Open vSwitch (steps 1 through 3 | |
392 | in "Building and Installing Open vSwitch for Linux, FreeBSD or NetBSD" | |
393 | above) before you run the tests described here. You do not need to | |
394 | install Open vSwitch or to build or load the kernel module to run | |
395 | these test suites. You do not need supervisor privilege to run these | |
396 | test suites. | |
875ef81b | 397 | |
e3c7ed29 BP |
398 | Self-Tests |
399 | ---------- | |
400 | ||
401 | Open vSwitch includes a suite of self-tests. Before you submit patches | |
875ef81b KM |
402 | upstream, we advise that you run the tests and ensure that they pass. |
403 | If you add new features to Open vSwitch, then adding tests for those | |
404 | features will ensure your features don't break as developers modify | |
405 | other areas of Open vSwitch. | |
406 | ||
e3c7ed29 | 407 | Refer to "Testsuites" above for prerequisites. |
875ef81b KM |
408 | |
409 | To run all the unit tests in Open vSwitch, one at a time: | |
410 | make check | |
411 | This takes under 5 minutes on a modern desktop system. | |
412 | ||
413 | To run all the unit tests in Open vSwitch, up to 8 in parallel: | |
414 | make check TESTSUITEFLAGS=-j8 | |
415 | This takes under a minute on a modern 4-core desktop system. | |
416 | ||
417 | To see a list of all the available tests, run: | |
418 | make check TESTSUITEFLAGS=--list | |
419 | ||
420 | To run only a subset of tests, e.g. test 123 and tests 477 through 484: | |
421 | make check TESTSUITEFLAGS='123 477-484' | |
422 | (Tests do not have inter-dependencies, so you may run any subset.) | |
423 | ||
424 | To run tests matching a keyword, e.g. "ovsdb": | |
425 | make check TESTSUITEFLAGS='-k ovsdb' | |
426 | ||
427 | To see a complete list of test options: | |
428 | make check TESTSUITEFLAGS=--help | |
429 | ||
430 | The results of a testing run are reported in tests/testsuite.log. | |
431 | Please report test failures as bugs and include the testsuite.log in | |
432 | your report. | |
433 | ||
434 | If you have "valgrind" installed, then you can also run the testsuite | |
435 | under valgrind by using "make check-valgrind" in place of "make | |
436 | check". All the same options are available via TESTSUITEFLAGS. When | |
437 | you do this, the "valgrind" results for test <N> are reported in files | |
438 | named tests/testsuite.dir/<N>/valgrind.*. You may find that the | |
439 | valgrind results are easier to interpret if you put "-q" in | |
447fe5cf | 440 | ~/.valgrindrc, since that reduces the amount of output. |
875ef81b KM |
441 | |
442 | Sometimes a few tests may fail on some runs but not others. This is | |
443 | usually a bug in the testsuite, not a bug in Open vSwitch itself. If | |
444 | you find that a test fails intermittently, please report it, since the | |
445 | developers may not have noticed. | |
446 | ||
e3c7ed29 BP |
447 | OFTest |
448 | ------ | |
449 | ||
450 | OFTest is an OpenFlow protocol testing suite. Open vSwitch includes a | |
451 | Makefile target to run OFTest with Open vSwitch in "dummy mode". In | |
452 | this mode of testing, no packets travel across physical or virtual | |
453 | networks. Instead, Unix domain sockets stand in as simulated | |
454 | networks. This simulation is imperfect, but it is much easier to set | |
455 | up, does not require extra physical or virtual hardware, and does not | |
456 | require supervisor privileges. | |
457 | ||
458 | To run OFTest with Open vSwitch, first read and follow the | |
459 | instructions under "Testsuites" above. Second, obtain a copy of | |
460 | OFTest and install its prerequisites. You need a copy of OFTest that | |
461 | includes commit 406614846c5 (make ovs-dummy platform work again). | |
462 | This commit was merged into the OFTest repository on Feb 1, 2013, so | |
463 | any copy of OFTest more recent than that should work. Testing OVS in | |
464 | dummy mode does not require root privilege, so you may ignore that | |
465 | requirement. | |
466 | ||
467 | Optionally, add the top-level OFTest directory (containing the "oft" | |
468 | program) to your $PATH. This slightly simplifies running OFTest later. | |
469 | ||
470 | To run OFTest in dummy mode, run the following command from your Open | |
471 | vSwitch build directory: | |
472 | make check-oftest OFT=<oft-binary> | |
473 | where <oft-binary> is the absolute path to the "oft" program in | |
474 | OFTest. | |
475 | ||
476 | If you added "oft" to your $PATH, you may omit the OFT variable | |
477 | assignment: | |
478 | make check-oftest | |
479 | By default, "check-oftest" passes "oft" just enough options to enable | |
480 | dummy mode. You can use OFTFLAGS to pass additional options. For | |
481 | example, to run just the basic.Echo test instead of all tests (the | |
482 | default) and enable verbose logging: | |
483 | make check-oftest OFT=<oft-binary> OFTFLAGS='--verbose -T basic.Echo' | |
484 | ||
485 | If you use OFTest that does not include commit 4d1f3eb2c792 (oft: | |
486 | change default port to 6653), merged into the OFTest repository in | |
487 | October 2013, then you need to add an option to use the IETF-assigned | |
488 | controller port: | |
489 | make check-oftest OFT=<oft-binary> OFTFLAGS='--port=6653' | |
490 | ||
491 | Please interpret OFTest results cautiously. Open vSwitch can fail a | |
492 | given test in OFTest for many reasons, including bugs in Open vSwitch, | |
493 | bugs in OFTest, bugs in the "dummy mode" integration, and differing | |
494 | interpretations of the OpenFlow standard and other standards. | |
495 | ||
496 | Open vSwitch has not been validated against OFTest. Please do report | |
497 | test failures that you believe to represent bugs in Open vSwitch. | |
498 | Include the precise versions of Open vSwitch and OFTest in your bug | |
499 | report, plus any other information needed to reproduce the problem. | |
500 | ||
501 | Ryu | |
502 | --- | |
503 | ||
504 | Ryu is an OpenFlow controller written in Python that includes an | |
505 | extensive OpenFlow testsuite. Open vSwitch includes a Makefile target | |
506 | to run Ryu in "dummy mode". See "OFTest" above for an explanation of | |
507 | dummy mode. | |
508 | ||
509 | To run Ryu tests with Open vSwitch, first read and follow the | |
510 | instructions under "Testsuites" above. Second, obtain a copy of Ryu, | |
511 | install its prerequisites, and build it. You do not need to install | |
512 | Ryu (some of the tests do not get installed, so it does not help). | |
513 | ||
514 | To run Ryu tests, run the following command from your Open vSwitch | |
515 | build directory: | |
516 | make check-ryu RYUDIR=<ryu-source-dir> | |
517 | where <ryu-source-dir> is the absolute path to the root of the Ryu | |
518 | source distribution. The default <ryu-source-dir> is $srcdir/../ryu | |
519 | where $srcdir is your Open vSwitch source directory, so if this | |
520 | default is correct then you make simply run "make check-ryu". | |
521 | ||
522 | Open vSwitch has not been validated against Ryu. Please do report | |
523 | test failures that you believe to represent bugs in Open vSwitch. | |
524 | Include the precise versions of Open vSwitch and Ryu in your bug | |
525 | report, plus any other information needed to reproduce the problem. | |
526 | ||
4b11d5e8 | 527 | Bug Reporting |
e3c7ed29 | 528 | ============= |
4b11d5e8 | 529 | |
37ea6436 | 530 | Please report problems to bugs@openvswitch.org. |