NetworkManager/src/libnm-platform
Gris Ge 348fd5a4bb 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>
(cherry picked from commit 02c34d538c)
(cherry picked from commit f990f9b4e4)
(cherry picked from commit c448e22519)
2024-02-21 13:37:44 +01:00
..
tests platform: support VTI6 tunnels 2022-12-21 14:04:44 +01:00
wifi wifi: skip no-ir channels when determining AP channel 2023-03-28 10:57:28 +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 "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-21 13:37:44 +01:00
nm-linux-platform.h platform: allow setting multi_idx instance for NMPlatform 2023-01-19 08:56:21 +01:00
nm-netlink.c all: fix various "-Wcast-align=strict" warnings 2022-12-09 09:15:56 +01:00
nm-netlink.h all: fix various "-Wcast-align=strict" warnings 2022-12-09 09:15:56 +01: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 bridge: skip VLAN filtering resetting in reapply if no vlan change changed 2024-02-21 13:37:44 +01:00
nm-platform.h bridge: skip VLAN filtering resetting in reapply if no vlan change changed 2024-02-21 13:37:44 +01:00
nmp-base.c platform: move NMPlatformIP[46]Address to "nmp-plobj.c" 2022-09-23 11:43:36 +02:00
nmp-base.h platform: support VTI6 tunnels 2022-12-21 14:04:44 +01:00
nmp-global-tracker.c platform/trivial: fix route type name (unavailable -> unreachable) 2023-02-28 13:11:08 +01:00
nmp-global-tracker.h platform: introduce function to globally track local route rule 2023-02-21 17:46:30 +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 platform: resync route cache upon NLM_F_REPLACE flag 2023-01-19 08:56:21 +01:00
nmp-object.h platform: add NMP_OBJECT_TYPE_NAME() macro 2023-01-19 08:56:21 +01:00
nmp-plobj.c platform: move NMPlatformIP[46]Address to "nmp-plobj.c" 2022-09-23 11:43:36 +02:00
nmp-plobj.h platform: ensure all NMPlatform* structs have same alignment 2022-12-09 09:15:54 +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