NetworkManager/src/libnm-platform
Thomas Haller 355331b779
platform: make FOR_EACH_DELAYED_ACTION() robust against integer overflow
Currently there is no problem. However, DelayedActionType is a packed
enum, and if we add a few more enum values, it might happen that
DELAYED_ACTION_TYPE_MAX is 0x8000 and DelayedActionType effectively
uint16_t.

When that happens, the code would become an infinite loop, because
0x8000 is not larger than DELAYED_ACTION_TYPE_MAX, but `<<= 1`
shifts out the bit, making it zero.

Avoid that.
2022-07-19 12:36:57 +02:00
..
tests platform/netlink: drop nl_socket_set_ext_ack() API 2022-06-24 11:03:39 +02:00
wifi wifi: ignore disabled frequencies 2022-03-14 08:50:28 +01:00
wpan format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
meson.build platform: rename "nmp-route-manager.h" to "nmp-rules-manager.h" 2022-02-09 19:13:03 +01:00
nm-linux-platform.c platform: make FOR_EACH_DELAYED_ACTION() robust against integer overflow 2022-07-19 12:36:57 +02:00
nm-linux-platform.h platform: allow disabling caching of tc objects 2021-09-20 13:27:16 +02:00
nm-netlink.c platform/netlink: ensure padding is zero in _nest_end() 2022-07-19 12:33:49 +02:00
nm-netlink.h platform/netlink: expose genl_ctrl_policy policy in header 2022-06-24 11:03:40 +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: make "now" timestamp an in/out parameter to nmp_utils_lifetime_get() 2022-04-08 15:59:48 +02:00
nm-platform-utils.h platform: make "now" timestamp an in/out parameter to nmp_utils_lifetime_get() 2022-04-08 15:59:48 +02:00
nm-platform.c platform: add NMPGenlFamilyType enum for generic netlink types 2022-07-19 12:33:50 +02:00
nm-platform.h platform: add NMPGenlFamilyType enum for generic netlink types 2022-07-19 12:33:50 +02:00
nmp-base.h platform: make NMPlatformVTableAddress struct smaller and pack NMPObjectType 2022-04-08 15:59:48 +02:00
nmp-netns.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nmp-netns.h build: move "shared/nm-platform" to "src/libnm-platform" 2021-02-24 12:48:17 +01:00
nmp-object.c platform: rename nmp_lookup_init_object() to nmp_lookup_init_object_by_ifindex() 2022-06-30 14:08:41 +02:00
nmp-object.h platform: rename nmp_lookup_init_object() to nmp_lookup_init_object_by_ifindex() 2022-06-30 14:08:41 +02:00
nmp-route-manager.c all: avoid using global string buffer for to-string methods 2022-04-08 15:59:49 +02:00
nmp-route-manager.h platform: improve way to prune dirty route-manager entries 2022-02-09 19:13:05 +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