NetworkManager/src/platform
Thomas Haller 051cf8bbde platform: fetch objects via the event socket
Use the event socket to request object via NLM_F_DUMP.

No longer use 'priv->nlh' socket to fetch objects.
Instead fetch them via the priv->nlh_event socket that also
provides asynchronous events when objects change.

That way, the events are in sync with our explicit requests
and we can directly use the events. Previously, the events were
only used to indicate that a refetch must happen, so that every
event triggered a complete dump of all addresses/routes.

We still use 'priv->nlh' to make synchronous requests such as
adding/changing/deleting objects. That means, after we send a
request, we must make sure that the result manifested itself
at 'nlh_event' socket and the platform cache.
That's why we sometimes still must force a dump to sync changes.
That could be improved by using only one netlink socket so that
we would wait for the ACK of our request.

While not yet perfect, this already significantly reduces the number of
fetches. Additionally, before, whenever requesting a dump of addresses
or routes (which we did much more often, search for "get_kernel_object for type"
log lines), we always dumped IPv4 and IPv6 together. Now only request
the addr-family in question.

https://bugzilla.gnome.org/show_bug.cgi?id=747985
https://bugzilla.redhat.com/show_bug.cgi?id=1211133
2015-06-17 11:41:43 +02:00
..
tests platform: fetch objects via the event socket 2015-06-17 11:41:43 +02:00
wifi platform: remove unused wifi_utils_get_ssid() 2015-05-06 15:23:47 -05:00
Makefile.am platform: add minimal Makefile.am for convenience 2013-06-19 13:48:29 +02:00
nm-fake-platform.c platform: fetch objects via the event socket 2015-06-17 11:41:43 +02:00
nm-fake-platform.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-linux-platform.c platform: fetch objects via the event socket 2015-06-17 11:41:43 +02:00
nm-linux-platform.h platform: add priv pointer to NMLinuxPlatform 2015-06-17 11:41:42 +02:00
nm-platform-utils.c platform: move ethtool_get_link_speed() to nm-platform-utils 2015-06-05 16:52:50 +02:00
nm-platform-utils.h platform: move ethtool_get_link_speed() to nm-platform-utils 2015-06-05 16:52:50 +02:00
nm-platform.c platform: register singleton instance early with NM_PLATFORM_REGISTER_SINGLETON 2015-06-17 11:41:43 +02:00
nm-platform.h platform: register singleton instance early with NM_PLATFORM_REGISTER_SINGLETON 2015-06-17 11:41:43 +02:00
nmp-object.c platform: implement NMPObject and NMPCache 2015-06-17 11:23:51 +02:00
nmp-object.h platform: implement NMPObject and NMPCache 2015-06-17 11:23:51 +02:00