-
Notifications
You must be signed in to change notification settings - Fork 3k
Add API to read Thread EUI-64 #7158
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
Conversation
Previously get_mac_address on a ThreadInterface returned the EUI-64 reported by the radio driver. This was required for commissioning, but was inconsistent with other interfaces, and the API concept. 5.9.0 inadvertently changed this so that get_mac_address returned the actual MAC address used by the radio, which is a hash result of the EUI-64 for Thread. The original "return the EUI-64" form was somewhat faulty, as get_mac_address would not return the EUI-64 set by set_device_eui64() or another mechanism before connect() was called. Rather than revert to old behaviour, add a new API to get the device EUI-64 to ThreadInterface, alongside the existing set API.
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.
Tested to work with mesh-minimal.
/morph build |
Build will be restarted once rc3 completes (failed and have to be now restarted) |
Build : ABORTEDBuild number : 2285 |
/morph build |
Build : SUCCESSBuild number : 2301 Triggering tests/morph test |
Exporter Build : SUCCESSBuild number : 1923 |
Test : SUCCESSBuild number : 2077 |
Pinging @ChiefBureaucraticOfficer. New API change = 5.10.0-rc1 release, but this is apparently needed for 5.9 release?? |
Marking this as 5.10.0-rc1 since this is an API change. |
This is an API change, but it's a fix that restores functionality that was inadvertently removed in 5.9 and which is very much needed. |
Interesting. So if I understand correctly,
Assuming the above is all correct, I agree that this should go in ASAP. @ARMmbed/mbed-os-maintainers @ChiefBureaucraticOfficer Thoughts? |
I am ok with the changes as proposed. @bulislaw, do you have any thoughts on this one? |
In this particular instance I think we can be a bit flexible and allow this to go into a patch. However what is worrying me is we seem to be seeing an increasing number of items like this cropping up which should not be happening. This really needs to be the rare exception.... |
Works for me as well. But like @adbridge said we should be more careful about fixes to the APIs. |
This was caught in OOB, but not in time to make it to 5.9.0. It was a known issue. |
Actually, it didn't make it onto the mbed OS 5.9.0 known issues list, just the mbed mesh minimal example: ARMmbed/mbed-os-example-mesh-minimal#188 & ARMmbed/mbed-os-example-mesh-minimal#191 |
Description
Previously get_mac_address on a ThreadInterface returned the EUI-64
reported by the radio driver. This was required for commissioning, but
was inconsistent with other interfaces, and the API concept.
5.9.0 inadvertently changed this so that get_mac_address returned the
actual MAC address used by the radio, which is a hash result of the
EUI-64 for Thread.
The original "return the EUI-64" form was somewhat faulty, as
get_mac_address would not return the EUI-64 set by set_device_eui64() or
another mechanism before connect() was called.
Rather than revert to old behaviour, add a new API to get the device
EUI-64 to ThreadInterface, alongside the existing set API.
Pull request type
New API, but required to get commissioning working properly in 5.9 due to an inadvertent (but desirable) behaviour change.