NetworkManager/src/libnm-platform
Íñigo Huguet 830dd4ad9c platform: add small backoff time before resync
If the socket's RX buffer is full it's probably because other
process is doing lot of changes very quickly, faster than we
can process them. Let's give the writer a small time to finish:
1. Avoid contending the kernel's RTNL lock, so we don't make
   the whole situation even worse and it can finish earlier.
2. Avoid having to resync again and again due to trying to
   resync while the writer is still doing quick changes, so
   we are unable to catch up yet.

This won't help if this situation takes a long time or is
continuous, but that's unlikely to happen, and if it does,
it's the writer's fault for starving the whole system.

There is no need to progresively increase the backoff time
for the same reason: if this situation takes lot of time,
it's the writer's fault. It's neither a good idea because the whole NM
process will end being sleeping long times, not doing anything at all,
without being able to react when the Netlink messages burst stops.
2024-08-21 07:32:22 +02:00
..
devlink sriov: allow reading empty eswitch paramaters via Devlink 2024-02-21 11:27:36 +01:00
tests platform: add nmp_utils_bridge_normalized_vlans_equal() 2024-08-21 07:29:39 +02:00
wifi wifi: fix enumeration of 6 GHz channels from wiphy 2024-04-02 16:12:57 +02:00
wpan all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
meson.build platform: netlink: add devlink support 2024-02-21 11:27:28 +01:00
nm-linux-platform.c platform: add small backoff time before resync 2024-08-21 07:32:22 +02:00
nm-linux-platform.h platform: allow setting multi_idx instance for NMPlatform 2023-01-19 08:56:21 +01:00
nm-netlink.c platform: enable strict check on netlink socket dumps 2024-06-26 09:52:50 +02:00
nm-netlink.h clang-format: reformat code with clang-format 16.0.2-1.fc38 2023-05-19 10:53:13 +02:00
nm-platform-private.h format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-platform-utils.c platform: add nmp_utils_bridge_normalized_vlans_equal() 2024-08-21 07:29:39 +02:00
nm-platform-utils.h platform: add nmp_utils_bridge_normalized_vlans_equal() 2024-08-21 07:29:39 +02:00
nm-platform.c platform: support reading bridge VLANs 2024-08-21 07:29:38 +02:00
nm-platform.h platform: add nmp_utils_bridge_normalized_vlans_equal() 2024-08-21 07:29:39 +02:00
nmp-base.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nmp-base.h platform: add nmp_utils_bridge_normalized_vlans_equal() 2024-08-21 07:29:39 +02:00
nmp-global-tracker.c all: use c_list_is_empty_or_single() where appropriate 2023-03-08 15:34:47 +01:00
nmp-global-tracker.h platform: introduce function to globally track local route rule 2023-02-21 15:36:38 +01:00
nmp-netns.c platform: avoid printing raw pointer values in log 2023-01-19 08:56:21 +01:00
nmp-netns.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nmp-object.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nmp-object.h src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nmp-plobj.c all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01:00
nmp-plobj.h all: use NM_MIN_CONST()/NM_MAX_CONST() instead of MIN()/MAX() 2023-11-15 09:32:19 +01:00
README.md platform: support IPv6 mulitpath routes and fix cache inconsistency 2022-02-16 09:59:49 +01:00

libnm-platform

A static helper library that provides NMPlatform and other utils. This is NetworkManager's internal netlink library, but also contains helpers for sysfs, ethtool and other kernel APIs.

NMPlaform is also a cache of objects of the netlink API: NMPCache and NMPObject. These objects are used throughout NetworkManager also for generally tracking information about these types. For example, NMPlatformIP4Address (the public part of a certain type of NMPObject) is not only used to track platform addresses from netlink in the cache, but to track information about IPv4 addresses in general.

This depends on the following helper libraries