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.
This commit is contained in:
Dan Williams
2014-07-11 14:51:12 -05:00
parent 09da178639
commit 66d1f2f53c

View File

@@ -3517,7 +3517,8 @@ _route_match (struct rtnl_route *rtnlroute, int family, int ifindex)
rtnl_route_get_table (rtnlroute) != RT_TABLE_MAIN || rtnl_route_get_table (rtnlroute) != RT_TABLE_MAIN ||
rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL || rtnl_route_get_protocol (rtnlroute) == RTPROT_KERNEL ||
rtnl_route_get_family (rtnlroute) != family || 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; return FALSE;
if (ifindex == 0) if (ifindex == 0)