datapath-windows: Update documentation
[cascardo/ovs.git] / INSTALL.md
index 273093b..906825a 100644 (file)
@@ -10,6 +10,7 @@ on a specific platform, please see one of these files:
   - [INSTALL.RHEL.md]
   - [INSTALL.XenServer.md]
   - [INSTALL.NetBSD.md]
+  - [INSTALL.Windows.md]
   - [INSTALL.DPDK.md]
 
 Build Requirements
@@ -28,6 +29,9 @@ you will need the following software:
         analysis and thread-safety checks.  For Ubuntu, there are
         nightly built packages available on clang's website.
 
+      * MSVC 2013.  See [INSTALL.Windows] for additional Windows build
+        instructions.
+
     While OVS may be compatible with other compilers, optimal
     support for atomic operations may be missing, making OVS very
     slow (see lib/ovs-atomic.h).
@@ -39,9 +43,12 @@ you will need the following software:
     libssl is installed, then Open vSwitch will automatically build
     with support for it.
 
-  - Python 2.x, for x >= 4.
+  - libcap-ng, written by Steve Grubb, is optional but recommended.  It
+    is required to run OVS daemons as a non-root user with dropped root
+    privileges.  If libcap-ng is installed, then Open vSwitch will
+    automatically build with support for it.
 
-  - patch (The utility that is used to patch files).
+  - Python 2.7.
 
 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
@@ -112,8 +119,6 @@ formats other than plain text, only if you have the following:
   - Perl.  Version 5.10.1 is known to work.  Earlier versions should
     also work.
 
-  - Python 2.x, for x >= 4.
-
 If you are going to extensively modify Open vSwitch, please consider
 installing the following to obtain better warnings:
 
@@ -192,6 +197,20 @@ To use 'clang' compiler:
 
       `% ./configure CC=clang`
 
+To supply special flags to the C compiler, specify them as CFLAGS on
+the configure command line.  If you want the default CFLAGS, which
+include "-g" to build debug symbols and "-O2" to enable optimizations,
+you must include them yourself.  For example, to build with the
+default CFLAGS plus "-mssse3", you might run configure as follows:
+
+      `% ./configure CFLAGS="-g -O2 -mssse3"`
+
+Note that these CFLAGS are not applied when building the Linux
+kernel module.  Custom CFLAGS for the kernel module are supplied
+using the EXTRA_CFLAGS variable when running make.  So, for example:
+
+      `% make EXTRA_CFLAGS="-Wno-error=date-time"
+
 To build the Linux kernel module, so that you can run the
 kernel-based switch, pass the location of the kernel build
 directory on --with-linux.  For example, to build for a running
@@ -255,6 +274,10 @@ Building the Sources
    For improved warnings if you installed "sparse" (see "Prerequisites"),
    add C=1 to the command line.
 
+   Some versions of Clang and ccache are not completely compatible.
+   If you see unusual warnings when you use both together, consider
+   disabling ccache for use with Clang.
+
 2. Consider running the testsuite.  Refer to "Running the Testsuite"
    below, for instructions.
 
@@ -613,6 +636,13 @@ To recompile and reinstall OVS using RPM:
        ./boot.sh
        vagrant provision --provision-with configure_ovs,install_rpm
 
+Two provisioners are included to run system tests with the OVS kernel
+module or with a userspace datapath.  This tests are different from
+the self-tests mentioned above.  To run them:
+
+       ./boot.sh
+       vagrant provision --provision-with configure_ovs,test_ovs_kmod,test_ovs_system_userspace
+
 Continuous Integration with Travis-CI
 -------------------------------------