NetworkManager/src/libnm-platform
Gris Ge 02c34d538c bridge: skip VLAN filtering resetting in reapply if no vlan change changed
When doing reapply on linux bridge interface, NetworkManager will reset
the VLAN filtering and default PVID which cause PVID been readded to all
bridge ports regardless they are managed by NetworkManager.

This is because Linux kernel will re-add PVID to bridge port upon the
changes of bridge default-pvid value.

To fix the issue, this patch introduce netlink parsing code for
`vlan_filtering` and `default_pvid` of NMPlatformLnkBridge, and use that
to compare desired VLAN filtering settings, skip the reset of VLAN
filter if `default_pvid` and `vlan_filtering` are unchanged.

Signed-off-by: Gris Ge <fge@redhat.com>
2024-02-09 08:25:21 +00:00
..
tests platform: drop unused nl_socket_set_nonblocking() function 2023-04-04 08:43:20 +02:00
wifi all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01: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 "nmp-base.c" source 2022-09-23 11:43:35 +02:00
nm-linux-platform.c bridge: skip VLAN filtering resetting in reapply if no vlan change changed 2024-02-09 08:25:21 +00: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: drop unused nl_socket_set_nonblocking() function 2023-04-04 08:43:20 +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 all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01:00
nm-platform-utils.h ethtool: introduce EEE support 2023-11-03 15:41:21 +00:00
nm-platform.c bridge: skip VLAN filtering resetting in reapply if no vlan change changed 2024-02-09 08:25:21 +00:00
nm-platform.h bridge: skip VLAN filtering resetting in reapply if no vlan change changed 2024-02-09 08:25:21 +00:00
nmp-base.c platform: move NMPlatformIP[46]Address to "nmp-plobj.c" 2022-09-23 11:43:36 +02:00
nmp-base.h HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01: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 HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01:00
nmp-object.h HSR: add support to HSR/PRP interface 2023-12-05 08:05:56 +01: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