-
Notifications
You must be signed in to change notification settings - Fork 324
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
Look up primary MAC address through board.json for LAN/WAN #2011
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Replace misnamed, closure-returning sysfs() to a reusable read() function - Rename eth() to netdev(), pass full interface name - Rename board() to interface() - Split reuable get_netdev_addr() out of netdev()
In most cases, board.json does not contain any MAC addresses; in this case, the default MAC address of the underlying interface is to be used.
The netdev() lookup is confusing to use: whenever a interface does not exist during boot (for example VLAN) or when the address is overridden from board.json (which is not obvious at all), it will yield either no address, or a different address than expected. To avoid this confusion, using board.json-based interface() is preferable. This converts all uses of netdev() to the corresponding lan/wan lookups, except for the final fallback for eth0.
e073b61
to
e93dca7
Compare
mweinelt
reviewed
May 12, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks very neat.
FWIW: I did not check whether the WAN/LAN mappings make sense.
mweinelt
approved these changes
May 28, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
21 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
0. type: enhancement
The changeset is an enhancement
5. needs: testing
Testing of the changes is necessary
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.
In #2008, some confusion was caused by the fact that eth0/eth1 MAC addresses can be overridden by board.json after Gluon's upgrade scripts run, making
eth()
return the wrong address.Clean this up by always looking up logical interface names through board.json, thus avoiding future confusion.