summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-07-11 14:51:12 -0500
committerDan Williams <dcbw@redhat.com>2014-07-11 14:53:07 -0500
commit1e96e68e36ad0fb158e3a91e00c7fdc1d109f69d (patch)
tree743ad66bf6858a45ec3fd3ea9377e303516a063b
parentfaa7d8abca97a75419220bc727cc82ae5d6925b5 (diff)
platform: ignore RTM_F_CLONED (eg, cache) routes
The kernel adds these for various operations; they are short-lived, added often, and not useful to NetworkManager. Ignore them. This prevents NetworkManager from continuously updating the IPv6 config and emitting state changes to clients via D-Bus for useless changes. (cherry picked from commit 66d1f2f53c59f8eb875609c858629854232ed57c)
-rw-r--r--src/platform/nm-linux-platform.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index f73ff3207..9bfbabdb6 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -3500,7 +3500,8 @@ _route_match (struct rtnl_route *rtnlroute, int family, int ifindex)
rtnl_route_get_table (rtnlroute) != RT_TABLE_MAIN ||
rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL ||
rtnl_route_get_family (rtnlroute) != family ||
- rtnl_route_get_nnexthops (rtnlroute) != 1)
+ rtnl_route_get_nnexthops (rtnlroute) != 1 ||
+ rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED)
return FALSE;
nexthop = rtnl_route_nexthop_n (rtnlroute, 0);