Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Prioritize find link info by permanent MAC address, with fallback to current address #749

Merged

Conversation

liangwen12year
Copy link
Collaborator

Enhancement:
Updated the link_info_find method to prioritize matching links by perm-address when it is valid and available. If the perm-address is unavailable (None or "00:00:00:00:00:00"), the method falls back to matching by address. Additionally, if ifname is provided, it takes precedence and returns the corresponding linkinfo immediately.

Reason:
The change resolves scenarios where multiple network interfaces might
share the same current MAC address (address), leading to potential
ambiguity in link matching. By prioritizing the permanent MAC address
(perm-address), the method provides a more precise and consistent match.
This is particularly crucial in environments with:

- MAC address spoofing or dynamic changes, where the current MAC
  address may not reliably identify the interface.
- Virtual interfaces or VLANs, which often lack a valid perm-address
  and rely on the parent interface's address.
- Ambiguity when multiple interfaces share the same address.

Result:
This change improves the robustness of MAC address matching by ensuring
that permanent addresses are prioritized while maintaining a reliable
fallback mechanism for interfaces with no permanent address.

Issue Tracker Tickets (Jira or BZ if any):

…k to current address

Updated the link_info_find method to prioritize matching links by
perm-address when it is valid and available. If the perm-address is
unavailable (None or "00:00:00:00:00:00"), the method falls back to
matching by address. Additionally, if ifname is provided, it takes
precedence and returns the corresponding linkinfo immediately.

The change resolves scenarios where multiple network interfaces might
share the same current MAC address (address), leading to potential
ambiguity in link matching. By prioritizing the permanent MAC address
(perm-address), the method provides a more precise and consistent match.
This is particularly crucial in environments with:

- MAC address spoofing or dynamic changes, where the current MAC
  address may not reliably identify the interface.
- Virtual interfaces or VLANs, which often lack a valid perm-address
  and rely on the parent interface's address.
- Ambiguity when multiple interfaces share the same address.

This change improves the robustness of MAC address matching by ensuring
that permanent addresses are prioritized while maintaining a reliable
fallback mechanism for interfaces with no permanent address.

Signed-off-by: Wen Liang <liangwen12year@gmail.com>
Copy link

codecov bot commented Jan 4, 2025

Codecov Report

Attention: Patch coverage is 0% with 12 lines in your changes missing coverage. Please review.

Project coverage is 43.11%. Comparing base (89d7148) to head (b9eb99a).
Report is 24 commits behind head on main.

Files with missing lines Patch % Lines
library/network_connections.py 0.00% 12 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #749       +/-   ##
===========================================
+ Coverage   20.40%   43.11%   +22.71%     
===========================================
  Files          10       12        +2     
  Lines        1485     3124     +1639     
  Branches      436        0      -436     
===========================================
+ Hits          303     1347     +1044     
- Misses       1181     1777      +596     
+ Partials        1        0        -1     
Flag Coverage Δ
sanity ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@liangwen12year
Copy link
Collaborator Author

[citest]

@richm
Copy link
Contributor

richm commented Jan 6, 2025

[citest_bad]

@liangwen12year liangwen12year merged commit c341683 into linux-system-roles:main Jan 7, 2025
27 of 31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants