| 1 |
From 3ca3120e4a01ea4a86fd052311c977e7ec136365 Mon Sep 17 00:00:00 2001
|
| 2 |
From: Ben Jencks <ben@bjencks.net>
|
| 3 |
Date: Thu, 30 Aug 2012 13:55:36 -0500
|
| 4 |
Subject: [PATCH] ip6: ignore cached/cloned route notifications from the
|
| 5 |
kernel (lp:1038541) (bgo #671767)
|
| 6 |
|
| 7 |
The kernel periodically adds routes for specific operations, including
|
| 8 |
when pinging any host. These are temporary routes and aren't part of
|
| 9 |
the interface's permanent routing configuration, so we should ignore
|
| 10 |
them.
|
| 11 |
---
|
| 12 |
src/ip6-manager/nm-ip6-manager.c | 8 ++++++++
|
| 13 |
1 file changed, 8 insertions(+)
|
| 14 |
|
| 15 |
diff --git a/src/ip6-manager/nm-ip6-manager.c b/src/ip6-manager/nm-ip6-manager.c
|
| 16 |
index e452c18..3dc8616 100644
|
| 17 |
--- a/src/ip6-manager/nm-ip6-manager.c
|
| 18 |
+++ b/src/ip6-manager/nm-ip6-manager.c
|
| 19 |
@@ -921,6 +921,14 @@ process_route_change (NMIP6Manager *manager, struct nl_msg *msg)
|
| 20 |
return NULL;
|
| 21 |
}
|
| 22 |
|
| 23 |
+ /* Cached/cloned routes are created by the kernel for specific operations
|
| 24 |
+ * and aren't part of the interface's permanent routing configuration.
|
| 25 |
+ */
|
| 26 |
+ if (rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED) {
|
| 27 |
+ rtnl_route_put (rtnlroute);
|
| 28 |
+ return NULL;
|
| 29 |
+ }
|
| 30 |
+
|
| 31 |
device = nm_ip6_manager_get_device (manager, rtnl_route_get_oif (rtnlroute));
|
| 32 |
|
| 33 |
old_size = nl_cache_nitems (priv->route_cache);
|
| 34 |
--
|
| 35 |
1.7.12
|
| 36 |
|