and NET_ACT_POLICE, either built-in or as modules.
(NET_CLS_POLICE is obsolete and not needed.)
+ If GRE tunneling is being used it is recommended that the kernel
+ be compiled with IPv6 support (CONFIG_IPV6). This allows for
+ special handling (such as path MTU discovery) of IPv6 packets.
+
+ To use Open vSwitch support for TAP devices, you must enable
+ CONFIG_TUN.
+
- To build a kernel module, you need the same version of GCC that
was used to build that kernel.
- Python 2.x, for x >= 4.
+If you modify the ovsdbmonitor tool, then you will also need the
+following:
+
+ - pyuic4 from PyQt4 (http://www.riverbankcomputing.co.uk).
+
+If you modify the vswitchd database schema, then the E-R diagram in
+the ovs-vswitchd.conf.db(5) manpage will be updated properly only if
+you have the following:
+
+ - "dot" from graphviz (http://www.graphviz.org/).
+
Installation Requirements
-------------------------
if it is installed in a different location, then some Open
vSwitch log messages will not be as detailed.
+You should ensure that /dev/urandom exists. To support TAP devices,
+you must also ensure that /dev/net/tun exists.
+
+To run the ovsdmonitor tool, the machine must also have the following
+software:
+
+ - Python 2.x, for x >= 4.
+
+ - Python Twisted Conch.
+
+ - Python JSON.
+
+ - PySide or PyQt4.
+
+ - Python Zope interface module.
+
+(On Debian "lenny" the above can be installed with "apt-get install
+python-json python-qt4 python-zopeinterface python-twisted-conch".)
+
Building and Installing Open vSwitch for Linux
==============================================
To verify that the modules have been loaded, run "/sbin/lsmod" and
check that openvswitch_mod is listed.
+ If the "insmod" operation fails, look at the last few kernel log
+ messages (e.g. with "dmesg | tail"):
+
+ - The message "openvswitch_mod: exports duplicate symbol
+ br_should_route_hook (owned by bridge)" means that the bridge
+ module is loaded. Run "/sbin/rmmod bridge" to remove it.
+
+ If "/sbin/rmmod bridge" fails with "ERROR: Module bridge does
+ not exist in /proc/modules", then the bridge is compiled into
+ the kernel, rather than as a module. Open vSwitch does not
+ support this configuration (see "Build Requirements", above).
+
+ - The message "openvswitch_mod: exports duplicate symbol
+ dp_ioctl_hook (owned by ofdatapath)" means that the ofdatapath
+ module from the OpenFlow reference implementation is loaded.
+ Run "/sbin/rmmod ofdatapath" to remove it. (You might have to
+ delete any existing datapaths beforehand, using the "dpctl"
+ program included with the OpenFlow reference implementation.
+ "ovs-dpctl" will not work.)
+
+ - Otherwise, the most likely problem is that Open vSwitch was
+ built for a kernel different from the one into which you are
+ trying to load it. Run "modinfo" on openvswitch_mod.ko and on
+ a module built for the running kernel, e.g.:
+
+ % /sbin/modinfo openvswitch_mod.ko
+ % /sbin/modinfo /lib/modules/`uname -r`/kernel/net/bridge/bridge.ko
+
+ Compare the "vermagic" lines output by the two commands. If
+ they differ, then Open vSwitch was built for the wrong kernel.
+
+ - If you decide to report a bug or ask a question related to
+ module loading, please include the output from the "dmesg" and
+ "modinfo" commands mentioned above.
+
7. Initialize the configuration database using ovsdb-tool, e.g.:
- % ovsdb-tool create /etc/ovs-vswitchd.conf.db vswitchd/vswitch.ovsschema
+ % ovsdb-tool create /usr/local/etc/ovs-vswitchd.conf.db vswitchd/vswitch.ovsschema
Startup
=======
Before starting ovs-vswitchd itself, you need to start its
-configuration database, ovsdb-server. Configure it to use the
-database you created during step 7 of installation, above, and to
-listen on a Unix domain socket, e.g.:
+configuration database, ovsdb-server. Each machine on which Open
+vSwitch is installed should run its own copy of ovsdb-server.
+Configure it to use the database you created during step 7 of
+installation, above, and to listen on a Unix domain socket, e.g.:
+
+ % ovsdb-server /usr/local/etc/ovs-vswitchd.conf.db --remote=punix:/usr/local/var/run/openvswitch/db.sock
+
+Then initialize the database using ovs-vsctl. This is only
+necessary the first time after you create the database with
+ovsdb-tool (but running it at any time is harmless):
- % ovsdb-server /etc/ovs-vswitchd.conf.db --remote=punix:/var/run/ovsdb-server
+ % ovs-vsctl --no-wait init
Then start the main Open vSwitch daemon, telling it to connect to the
same Unix domain socket:
- % ovs-vswitchd unix:/var/run/ovsdb-server
+ % ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock
Now you may use ovs-vsctl to set up bridges and other Open vSwitch
features. For example, to create a bridge named br0 and add ports