Repository navigation
Fix EUI64 endianness for Ziggurat-in-OT - #73
Merged
Merged
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues remain for the EUI64 byte-order changes.
No open issues 🎉
What changed in this PR
This PR addresses #72 by correcting EUI64 byte order at the Rust–OpenThread boundary, fixing reversed source-match entries that prevented some routers from joining.
Changes:
- Adds big-endian conversion methods to
Eui64while preserving its internal over-the-air byte order. - Converts outgoing OpenThread addresses in Rust and moves hardware-address conversion out of C++ glue.
- Reuses the shared conversions in Spinel and updates Rust/C interface documentation.
| File | Description |
|---|---|
firmwares/glue/ziggurat_glue.cpp |
Returns hardware EUI64 bytes without reversing them. |
crates/ziggurat-spinel/src/lib.rs |
Removes Spinel-specific EUI64 conversion helpers. |
crates/ziggurat-spinel/src/client.rs |
Decodes hardware addresses with Eui64::from_be_bytes. |
crates/ziggurat-phy-spinel/src/lib.rs |
Uses shared big-endian conversion for Spinel addresses. |
crates/ziggurat-ot/src/platform.rs |
Documents OpenThread byte-order requirements at the Rust interface. |
crates/ziggurat-ot/src/link_ops.rs |
Sends configured and source-match addresses in OpenThread byte order. |
crates/ziggurat-ot/src/lib.rs |
Converts hardware EUI64 bytes into the internal representation. |
crates/ziggurat-ot/include/ziggurat.h |
Aligns C header comments with the byte-order contract. |
crates/ziggurat-ieee-802154/src/types.rs |
Adds shared big-endian EUI64 conversions and documents existing byte order. |
Review effort: Balanced
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #72 by adding big endian construction to the Eui64 struct and ensuring all EUI64 addresses leave the Rust side in
memcpy-able form.