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 66d1f2f53c)
This commit is contained in:
Dan Williams 2014-07-11 14:51:12 -05:00
parent faa7d8abca
commit 1e96e68e36

View file

@ -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);