about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2012-09-11 19:08:51 +0200
committerMichael Biebl <biebl@debian.org>2012-09-11 19:09:11 +0200
commit69e44dbd65022908ffb5e364ae71f2ad98078e88 (patch)
treedd7e853c2365e28e12e6d859375c4a79b88b646c
parent0ba2c5752c8f5f049d9a98be119f5999567be9fd (diff)
Don't create static IPv6 routes for cached/cloned routes. (Closes: #686328)
  * debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch,
    Don't create static IPv6 routes for cached/cloned routes. Patches
    debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch:
    cherry-picked from upstream Git. (Closes: #686328)
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch29
-rw-r--r--debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch24
-rw-r--r--debian/patches/series2
4 files changed, 59 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index e1acb571..64312f49 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,10 @@
 network-manager (0.9.4.0-6) UNRELEASED; urgency=low
 
   * debian/rules: Use xz compression for binary packages.
+  * debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch,
+    debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch:
+    Don't create static IPv6 routes for cached/cloned routes. Patches
+    cherry-picked from upstream Git. (Closes: #686328)
 
  -- Michael Biebl <biebl@debian.org>  Tue, 11 Sep 2012 18:15:49 +0200
 
diff --git a/debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch b/debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch
new file mode 100644
index 00000000..ab076ca6
--- /dev/null
+++ b/debian/patches/15-ignore-cached-cloned-routes-ipv6-config.patch
@@ -0,0 +1,29 @@
+From 3ca3120e4a01ea4a86fd052311c977e7ec136365 Mon Sep 17 00:00:00 2001
+From: Ben Jencks <ben@bjencks.net>
+Date: Thu, 30 Aug 2012 18:55:36 +0000
+Subject: ip6: ignore cached/cloned route notifications from the kernel (lp:1038541) (bgo #671767)
+
+The kernel periodically adds routes for specific operations, including
+when pinging any host.  These are temporary routes and aren't part of
+the interface's permanent routing configuration, so we should ignore
+them.
+---
+Index: network-manager/src/ip6-manager/nm-ip6-manager.c
+===================================================================
+--- network-manager.orig/src/ip6-manager/nm-ip6-manager.c	2012-08-31 09:19:54.000000000 +0200
++++ network-manager/src/ip6-manager/nm-ip6-manager.c	2012-08-31 09:56:24.000000000 +0200
+@@ -602,6 +602,14 @@
+ 		return NULL;
+ 	}
+ 
++	/* Cached/cloned routes are created by the kernel for specific operations
++	 * and aren't part of the interface's permanent routing configuration.
++	 */
++	if (rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED) {
++		rtnl_route_put (rtnlroute);
++		return NULL;
++	}
++
+ 	device = nm_ip6_manager_get_device (manager, rtnl_route_get_oif (rtnlroute));
+ 	if (!device) {
+ 		nm_log_dbg (LOGD_IP6, "ignoring message for unknown device");
diff --git a/debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch b/debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch
new file mode 100644
index 00000000..264ae9b7
--- /dev/null
+++ b/debian/patches/16-ignore-cached-cloned-routes-kernel-notifications.patch
@@ -0,0 +1,24 @@
+From 46e0af2942e23fb3cf1c313e58e4081877d4f289 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Thu, 30 Aug 2012 18:57:06 +0000
+Subject: ip6: ignore cached/cloned routes when retrieving IPv6 config (lp:1038541) (bgo #671767)
+
+Should also ignore them when building up the initial IPv6 config.
+---
+Index: network-manager/src/ip6-manager/nm-ip6-manager.c
+===================================================================
+--- network-manager.orig/src/ip6-manager/nm-ip6-manager.c	2012-08-31 09:56:03.000000000 +0200
++++ network-manager/src/ip6-manager/nm-ip6-manager.c	2012-08-31 09:56:03.000000000 +0200
+@@ -1284,6 +1284,12 @@
+ 		if (rtnl_route_get_family (rtnlroute) != AF_INET6)
+ 			continue;
+ 
++		/* And ignore cache/cloned routes as they aren't part of the interface's
++		 * permanent routing configuration.
++		 */
++		if (rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED)
++			continue;
++
+ 		nldest = rtnl_route_get_dst (rtnlroute);
+ 		if (!nldest || nl_addr_get_family (nldest) != AF_INET6)
+ 			continue;
diff --git a/debian/patches/series b/debian/patches/series
index 134267a8..9ee2e2f0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,5 @@
 12-initialize-gerror.patch
 13-dont-replace-kernel-default-route-for-IPv6.patch
 14-use-same-kernel-API-as-wpa_supplicant.patch
+15-ignore-cached-cloned-routes-ipv6-config.patch
+16-ignore-cached-cloned-routes-kernel-notifications.patch