FAQ: Explain what to do when building against a too-new kernel.
authorBen Pfaff <blp@nicira.com>
Thu, 24 Apr 2014 22:35:35 +0000 (15:35 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 24 Apr 2014 22:37:24 +0000 (15:37 -0700)
Also add references to this FAQ from INSTALL and configure.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Gurucharan Shetty <gshetty@nicira.com>
FAQ
INSTALL
acinclude.m4

diff --git a/FAQ b/FAQ
index 6b4be43..c43b0c8 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -158,18 +158,22 @@ A: The following table lists the Linux kernel versions against which the
    It should build against almost any kernel, certainly against 2.6.32
    and later.
 
-Q: What Linux kernel versions does IPFIX flow monitoring work with?
+Q: I get an error like this when I configure Open vSwitch:
 
-A: IPFIX flow monitoring requires the Linux kernel module from Open
-   vSwitch version 1.10.90 or later.
+       configure: error: Linux kernel in <dir> is version <x>, but
+       version newer than <y> is not supported (please refer to the
+       FAQ for advice)
 
-Q: Should userspace or kernel be upgraded first to minimize downtime?
+   What should I do?
 
-   In general, the Open vSwitch userspace should be used with the
-   kernel version included in the same release or with the version
-   from upstream Linux.  However, when upgrading between two releases
-   of Open vSwitch it is best to migrate userspace first to reduce
-   the possibility of incompatibilities.
+A: If there is a newer version of Open vSwitch, consider building that
+   one, because it may support the kernel that you are building
+   against.  (To find out, consult the table in the previous answer.)
+
+   Otherwise, use the Linux kernel module supplied with the kernel
+   that you are using.  All versions of Open vSwitch userspace are
+   compatible with all versions of the Open vSwitch kernel module, so
+   this will also work.  See also the following question.
 
 Q: What features are not available in the Open vSwitch kernel datapath
    that ships as part of the upstream Linux kernel?
@@ -193,6 +197,19 @@ A: Tunnel virtual ports are not supported, as described in the
    actions.  On Linux kernels before 2.6.39, maximum-sized VLAN packets
    may not be transmitted.
 
+Q: What Linux kernel versions does IPFIX flow monitoring work with?
+
+A: IPFIX flow monitoring requires the Linux kernel module from Open
+   vSwitch version 1.10.90 or later.
+
+Q: Should userspace or kernel be upgraded first to minimize downtime?
+
+   In general, the Open vSwitch userspace should be used with the
+   kernel version included in the same release or with the version
+   from upstream Linux.  However, when upgrading between two releases
+   of Open vSwitch it is best to migrate userspace first to reduce
+   the possibility of incompatibilities.
+
 Q: What happened to the bridge compatibility feature?
 
 A: Bridge compatibility was a feature of Open vSwitch 1.9 and earlier.
diff --git a/INSTALL b/INSTALL
index f43c65b..afefb51 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -177,6 +177,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
index 4269620..e6bed37 100644 (file)
@@ -137,7 +137,7 @@ AC_DEFUN([OVS_CHECK_LINUX], [
        if test "$version" = 3 && test "$patchlevel" -le 13; then
           : # Linux 3.x
        else
-         AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.13.x is not supported])
+         AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.13.x is not supported (please refer to the FAQ for advice)])
        fi
     else
        if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then