On 8/16/2018 6:19 AM, Yifeng Sun wrote:
This patch enables OVS kernel module to run on kernel 4.15.x.
Two conntrack-related tests failed:
- conntrack - multiple zones, local
- conntrack - multi-stage pipeline, local
This might be due to conntrack policy changes for packets coming
from local ports on kernel 4.15. More survey will be done later.
Signed-off-by: Greg Rose <[email protected]>
Signed-off-by: Yifeng Sun <[email protected]>
Looks good. Travis results:
https://travis-ci.org/gvrose8192/ovs-experimental/builds/416979227
The errors are unrelated to this patch.
Thanks Yifeng!
Tested-by: Greg Rose <[email protected]>
Reviewed-by: Greg Rose <[email protected]
---
v1->v2: Add travis and documentation from Greg.
.travis.yml | 10 +++++-----
Documentation/faq/releases.rst | 2 +-
acinclude.m4 | 6 ++++--
datapath/linux/compat/vxlan.c | 10 ++++++++++
4 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 4d7bbd8..998b33d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -35,11 +35,11 @@ env:
- BUILD_ENV="-m32" OPTS="--disable-ssl"
- KERNEL=3.16.54 DPDK=1
- KERNEL=3.16.54 DPDK=1 OPTS="--enable-shared"
- - KERNEL=4.14.47
- - KERNEL=4.9.105
- - KERNEL=4.4.135
- - KERNEL=4.1.52
- - KERNEL=3.16.56
+ - KERNEL=4.15.18
+ - KERNEL=4.14.63
+ - KERNEL=4.9.120
+ - KERNEL=4.4.148
+ - KERNEL=3.16.57
- TESTSUITE=1 LIBS=-ljemalloc
matrix:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 50ca5f6..54c4b54 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -67,7 +67,7 @@ Q: What Linux kernel versions does each Open vSwitch release
work with?
2.7.x 3.10 to 4.9
2.8.x 3.10 to 4.12
2.9.x 3.10 to 4.13
- 2.10.x 3.10 to 4.14
+ 2.10.x 3.10 to 4.15
============ ==============
Open vSwitch userspace should also work with the Linux kernel module built
diff --git a/acinclude.m4 b/acinclude.m4
index 6e7ea4c..9fffe9c 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -151,10 +151,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
AC_MSG_RESULT([$kversion])
if test "$version" -ge 4; then
- if test "$version" = 4 && test "$patchlevel" -le 14; then
+ if test "$version" = 4 && test "$patchlevel" -le 15; then
: # Linux 4.x
else
- AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version
newer than 4.14.x is not supported (please refer to the FAQ for advice)])
+ AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version
newer than 4.15.x is not supported (please refer to the FAQ for advice)])
fi
elif test "$version" = 3 && test "$patchlevel" -ge 10; then
: # Linux 3.x
@@ -883,6 +883,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h],
[void.*ndo_get_stats64],
[OVS_DEFINE([HAVE_VOID_NDO_GET_STATS64])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/timer.h], [init_timer_deferrable],
+ [OVS_DEFINE([HAVE_INIT_TIMER_DEFERRABLE])])
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then
diff --git a/datapath/linux/compat/vxlan.c b/datapath/linux/compat/vxlan.c
index 8f5a921..b38a7be 100644
--- a/datapath/linux/compat/vxlan.c
+++ b/datapath/linux/compat/vxlan.c
@@ -1275,9 +1275,15 @@ netdev_tx_t rpl_vxlan_xmit(struct sk_buff *skb)
EXPORT_SYMBOL_GPL(rpl_vxlan_xmit);
/* Walk the forwarding table and purge stale entries */
+#ifdef HAVE_INIT_TIMER_DEFERRABLE
static void vxlan_cleanup(unsigned long arg)
{
struct vxlan_dev *vxlan = (struct vxlan_dev *) arg;
+#else
+static void vxlan_cleanup(struct timer_list *t)
+{
+ struct vxlan_dev *vxlan = from_timer(vxlan, t, age_timer);
+#endif
unsigned long next_timer = jiffies + FDB_AGE_INTERVAL;
unsigned int h;
@@ -1638,9 +1644,13 @@ static void vxlan_setup(struct net_device *dev)
INIT_LIST_HEAD(&vxlan->next);
spin_lock_init(&vxlan->hash_lock);
+#ifdef HAVE_INIT_TIMER_DEFERRABLE
init_timer_deferrable(&vxlan->age_timer);
vxlan->age_timer.function = vxlan_cleanup;
vxlan->age_timer.data = (unsigned long) vxlan;
+#else
+ timer_setup(&vxlan->age_timer, vxlan_cleanup, TIMER_DEFERRABLE);
+#endif
vxlan->cfg.dst_port = htons(vxlan_port);
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev