]> git.proxmox.com Git - mirror_ovs.git/commitdiff
datapath: Add support for Linux 3.11
authorPravin B Shelar <pshelar@nicira.com>
Mon, 14 Oct 2013 22:26:40 +0000 (15:26 -0700)
committerPravin B Shelar <pshelar@nicira.com>
Wed, 16 Oct 2013 19:12:50 +0000 (12:12 -0700)
Kernel 3.11 has support for extended GRE API required for
OVS datapath,  But vxlan still needs out of tree tunneling
compatibility.  Therefore to simplify, all tunneling modules
are forced to use compat tunneling.

CC: James Page <james.page@ubuntu.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
FAQ
NEWS
acinclude.m4
datapath/dp_notify.c
datapath/linux/compat/include/linux/netdevice.h
datapath/linux/compat/include/net/gre.h

diff --git a/FAQ b/FAQ
index d36495c8a76ebab693da9209e9910ab341e717c0..99e6107ebe8f52fc3a9100787487528c62530a6b 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -149,6 +149,7 @@ A: The following table lists the Linux kernel versions against which the
        1.10.x     2.6.18 to 3.8
        1.11.x     2.6.18 to 3.8
        2.0.x      2.6.32 to 3.10
+       2.1.x      2.6.32 to 3.11
 
    Open vSwitch userspace should also work with the Linux kernel module
    built into Linux 3.3 and later.
diff --git a/NEWS b/NEWS
index 36546f43810a5cde5ccb49f9d0e27a15fcde60cb..f6e2dafdf061e812e10f9309356632a03201db43 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,7 @@ Post-v2.0.0
      * The OpenFlow 1.1+ "Write-Actions" instruction is now supported.
    - ovs-vswitchd.conf.db.5 man page will contain graphviz/dot
      diagram only if graphviz package was installed at the build time.
+   - Support for Linux kernels up to 3.11
 
 
 v2.0.0 - 15 Oct 2013
index c293d337b6dfab6b0745901a1cb8f6e025e61f57..f987fa0bd7f20123ba154fbe64e55fca51da0ce0 100644 (file)
@@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
     AC_MSG_RESULT([$kversion])
 
     if test "$version" -ge 3; then
-       if test "$version" = 3 && test "$patchlevel" -le 10; then
+       if test "$version" = 3 && test "$patchlevel" -le 11; then
           : # Linux 3.x
        else
-         AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.10.x is not supported])
+         AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.11.x is not supported])
        fi
     else
        if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then
index b7aac4e40a44f772254eae3cda0ac1bd0ce5c667..0b22d0c19459a57492edca38e0973d86c44f315c 100644 (file)
@@ -78,7 +78,7 @@ static int dp_device_event(struct notifier_block *unused, unsigned long event,
                           void *ptr)
 {
        struct ovs_net *ovs_net;
-       struct net_device *dev = ptr;
+       struct net_device *dev = netdev_notifier_info_to_dev(ptr);
        struct vport *vport = NULL;
 
        if (!ovs_is_internal_dev(dev))
index d2822017fabcb945c7e0a8be4c5344cfdc6ff6a7..c5c366bd7b1ef0fde4073a0362e5ae9bb3318aeb 100644 (file)
@@ -130,4 +130,11 @@ static inline struct net_device *netdev_master_upper_dev_get(struct net_device *
 int dev_queue_xmit(struct sk_buff *skb);
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
+static inline struct net_device *netdev_notifier_info_to_dev(void *info)
+{
+       return info;
+}
+#endif
+
 #endif
index 5f46aed6840fc21636c935c4c12e24c4055d8b10..5b17dcc532f671b91ce1d098b38b4cc195af1e2c 100644 (file)
@@ -74,12 +74,17 @@ static inline __be16 tnl_flags_to_gre_flags(__be16 tflags)
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
 
 #define MAX_GRE_PROTO_PRIORITY 255
+#define gre_cisco_protocol rpl_gre_cisco_protocol
+
 struct gre_cisco_protocol {
        int (*handler)(struct sk_buff *skb, const struct tnl_ptk_info *tpi);
        u8 priority;
 };
 
+#define gre_cisco_register rpl_gre_cisco_register
 int gre_cisco_register(struct gre_cisco_protocol *proto);
+
+#define gre_cisco_unregister rpl_gre_cisco_unregister
 int gre_cisco_unregister(struct gre_cisco_protocol *proto);
 
 #define gre_build_header rpl_gre_build_header
@@ -89,6 +94,7 @@ void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
 #define gre_handle_offloads rpl_gre_handle_offloads
 struct sk_buff *gre_handle_offloads(struct sk_buff *skb, bool gre_csum);
 
+#define ip_gre_calc_hlen rpl_ip_gre_calc_hlen
 static inline int ip_gre_calc_hlen(__be16 o_flags)
 {
        int addend = 4;