NetworkManager/src/libnm-platform
Matthieu Baerts (NGI0) 2b03057de0 mptcp: add 'laminar' endpoint support
This new endpoint type has been recently added to the kernel in v6.18
[1]. It will be used to create new subflows from the associated address
to additional addresses announced by the other peer. This will be done
if allowed by the MPTCP limits, and if the associated address is not
already being used by another subflow from the same MPTCP connection.

Note that the fullmesh flag takes precedence over the laminar one.
Without any of these two flags, the path-manager will create new
subflows to additional addresses announced by the other peer by
selecting the source address from the routing tables, which is harder to
configure if the announced address is not known in advance.

The support of the new flag is easy: simply by declaring a new flag for
NM, and adding it in the related helpers and existing checks looking at
the different MPTCP endpoint. The documentation now references the new
endpoint type.

Note that only the new 'define' has been added in the Linux header file:
this file has changed a bit since the last sync, now split in two files.
Only this new line is needed, so the minimum has been modified here.

Link: https://git.kernel.org/torvalds/c/539f6b9de39e [1]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
2025-11-19 12:54:09 +00:00
..
devlink platform: move ethtool ioctl functions to a separate file 2025-04-17 08:10:49 +02:00
tests format: run nm-code-format 2024-10-04 11:07:35 +02:00
wifi format: run nm-code-format 2024-10-04 11:07:35 +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: add ethtool netlink implementation 2025-04-17 08:10:50 +02:00
nm-linux-platform.c mptcp: add 'laminar' endpoint support 2025-11-19 12:54:09 +00:00
nm-linux-platform.h platform: rename nm_linux_platform_get_link_fdb_table() 2025-07-10 09:12:02 +02:00
nm-netlink.c format: run nm-code-format 2024-10-04 11:07:35 +02:00
nm-netlink.h format: run nm-code-format 2024-10-04 11:07:35 +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: move ethtool ioctl functions to a separate file 2025-04-17 08:10:49 +02:00
nm-platform-utils.h platform: move ethtool ioctl functions to a separate file 2025-04-17 08:10:49 +02:00
nm-platform.c mptcp: add 'laminar' endpoint support 2025-11-19 12:54:09 +00:00
nm-platform.h mptcp: add 'laminar' endpoint support 2025-11-19 12:54:09 +00:00
nmp-base.c src: drop most slave references from the code 2024-08-09 15:47:32 +02:00
nmp-base.h l3cfg: remove routes added by NM on reapply 2024-12-11 15:52:09 +00:00
nmp-ethtool-ioctl.c platform: replace ring ethtool ioctl calls with netlink 2025-04-17 08:10:53 +02:00
nmp-ethtool-ioctl.h platform: replace ring ethtool ioctl calls with netlink 2025-04-17 08:10:53 +02:00
nmp-ethtool.c platform: use g_strdup() instead of strdup() in ethtool code 2025-07-10 09:12:00 +02:00
nmp-ethtool.h platform: replace ring ethtool ioctl calls with netlink 2025-04-17 08:10:53 +02:00
nmp-global-tracker.c format: run nm-code-format 2024-10-04 11:07:35 +02: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 format: run nm-code-format 2024-10-04 11:07:35 +02: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 platform: fix harmless typo 2025-07-10 09:12:05 +02:00
nmp-object.h ipvlan: add support to IPVLAN interface 2024-09-18 13:19:42 +02:00
nmp-plobj.c all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01:00
nmp-plobj.h format: run nm-code-format 2024-10-04 11:07:35 +02: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