Error in otThreadGetParentInfo() function

Hello,

For my project, I would like in my Thread Network that the children of the routers can communicate with their parent with a local scope (that the messages are not routable).
To do this, I use the otThreadGetParentInfo(...) function to retrieve the extended address of the parent (IEEE 802.15.4 Extended Address = 8 bytes).
Then I concatenate the "link-local" prefix (fe80::/16) to this Extended Address to get the full IP address of the router.

In my test I get the following address for the router: fe 80 00 00 00 00 00 00 62 5b 73 15 1a d2 28 d8
The problem I have is the byte number 8 is always wrong. When I sniff the packets I see the correct address is: 80 00 00 00 00 00 00 60 5b 73 15 1a d2 28 d8

Can you check if you have the same problem?

I am using Segger Embeded Studio for ARM V5.60a.
My project is based on nRF5 SDK for Thread and Zigbee.

Thank you

Parents Reply
  • Hi,

    Initial testing suggests that this is caused by section 5.2.2.4 in the Thread specification, where its stated " A Thread device MUST assign a link-local IPv6 address where the interface identifier is set to the MAC Extended Address with the universal/local bit inverted . " which, if I've understood it correct, should translate to why 0x62 becomes 0x60 in your case. Could you check if that's the case on your end?

    Let me know if this is not the case for you. 

    Kind regards,
    Andreas

Children
Related