underlay: fix NetworkManager syncer for virtual interfaces #2988
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of this PR
Which issue(s) this PR fixes:
Virtual interfaces, such as bond/vlan, may be deleted and recreated by NetworkManager. A newly created virtual interface has a new DBus object path.
This patch fixes NetworkManager syncer for virtual interfaces by using the device name instead of the DBus object path.
WHAT
🤖 Generated by Copilot at a80f6b8
Refactored and optimized the networkManagerSyncer code in
pkg/daemon/nm_linux.go
to use IP interface names instead of dbus object paths. This simplifies the device identification and processing logic and improves the event handling and device management performance and reliability.🤖 Generated by Copilot at a80f6b8
HOW
🤖 Generated by Copilot at a80f6b8
networkManagerSyncer
struct and its methods by using IP interface names instead of dbus object paths for the devices (link, link, link, link, link, link)Run
function to usestrings.HasSuffix
to check the event name and to filter out irrelevant devices from the workqueue (link, link)bridgeMap
lookup outside the lock in theProcessNextItem
function to improve performance (link)