netlink-socket: Fix sign of error code.
[cascardo/ovs.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 9f9491f..5c869b2 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -10,6 +10,7 @@ on a specific platform, please see one of these files:
     - INSTALL.RHEL
     - INSTALL.XenServer
     - INSTALL.NetBSD
+    - INSTALL.DPDK
 
 Build Requirements
 ------------------
@@ -36,11 +37,15 @@ you will need the following software:
 
     - Python 2.x, for x >= 4.
 
-To compile the kernel module on Linux, you must also install the
-following.  If you cannot build or install the kernel module, you may
-use the userspace-only implementation, at a cost in performance.  The
-userspace implementation may also lack some features.  Refer to
-INSTALL.userspace for more information.
+On Linux, you may choose to compile the kernel module that comes with
+the Open vSwitch distribution or to use the kernel module built into
+the Linux kernel (version 3.3 or later).  See the FAQ question "What
+features are not available in the Open vSwitch kernel datapath that
+ships as part of the upstream Linux kernel?" for more information on
+this trade-off.  You may also use the userspace-only implementation,
+at some cost in features and performance (see INSTALL.userspace for
+details).  To compile the kernel module on Linux, you must also
+install the following:
 
     - A supported Linux kernel version.  Please refer to README for a
       list of supported versions.
@@ -144,9 +149,8 @@ Prerequisites section, follow the procedure below to build.
 
       % ./boot.sh
 
-2. In the top source directory, configure the package by running the
-   configure script.  You can usually invoke configure without any
-   arguments:
+2. Configure the package by running the configure script.  You can
+   usually invoke configure without any arguments.  For example:
 
       % ./configure
 
@@ -172,6 +176,10 @@ Prerequisites section, follow the procedure below to build.
 
       % ./configure --with-linux=/lib/modules/`uname -r`/build
 
+   If --with-linux requests building for an unsupported version of
+   Linux, then "configure" will fail with an error message.  Please
+   refer to the FAQ for advice in that case.
+
    If you wish to build the kernel module for an architecture other
    than the architecture of the machine used for the build, you may
    specify the kernel architecture string using the KARCH variable
@@ -194,7 +202,16 @@ Prerequisites section, follow the procedure below to build.
    additional environment variables.  For a full list, invoke
    configure with the --help option.
 
-3. Run GNU make in the top source directory, e.g.:
+   You can also run configure from a separate build directory.  This
+   is helpful if you want to build Open vSwitch in more than one way
+   from a single source directory, e.g. to try out both GCC and Clang
+   builds, or to build kernel modules for more than one Linux version.
+   Here is an example:
+
+      % mkdir _gcc && (cd _gcc && ../configure CC=gcc)
+      % mkdir _clang && (cd _clang && ../configure CC=clang)
+
+3. Run GNU make in the build directory, e.g.:
 
       % make
 
@@ -202,6 +219,12 @@ Prerequisites section, follow the procedure below to build.
 
       % gmake
 
+   If you used a separate build directory, run make or gmake from that
+   directory, e.g.:
+
+      % make -C _gcc
+      % make -C _clang
+
    For improved warnings if you installed "sparse" (see
    "Prerequisites"), add C=1 to the command line.
 
@@ -279,9 +302,9 @@ Startup
 Before starting ovs-vswitchd itself, you need to start its
 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, to listen on a Unix domain socket, to connect to
-any managers specified in the database itself, and to use the SSL
+Configure it to use the database you created during installation (as
+explained above), to listen on a Unix domain socket, to connect to any
+managers specified in the database itself, and to use the SSL
 configuration in the database:
 
       % ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \