Question about gnrc_networking and link-local addresses


I am using the example “gnrc_networking” on the IoT-LAB platform with M3 nodes (latest version of RIOT).

I have a problem with link-local addresses. I figured out that some of my nodes have the same link-local address.

For example :

m3-369; inet6 addr: fe80::14bb:f965:106b:1114 scope: link VAL m3-361; inet6 addr: fe80::14bb:f965:106b:1114 scope: link VAL

When I request a node about his parent using “rpl show”, it only returns the link-local address of his parent so I can’t associate this address with one particular node.

I tried to find the way these addresses are constructed but without success. I thought it was based on the MAC address.

Have you an idea of how I can fix this problem ?

Any help would be really appreciated.


Clément Cormier

University of Caen, France

Hello Clement,

The link-local addresses on the IoT-LAB M3 are generated from the EUI-64 which in turn is generated from a LUID (Local Unique ID) [1] which again is based on the MCU’s CPU-ID [2, 3]. For an automated approach you could e.g. change the implementation how the CPU-ID is converted to the LUID (you don’t even need to change the luid module code, you can overload luid_base() in your application). Alternatively, you could of course set the link-local addresses in question manually, note however that for that also the EUI-64 (long HWaddr) needs to be changed, as otherwise address resolution as per RFC 6775 [4] will not work anymore. Hope that helps and Best Regards, Martine [1] [2] [3] [4]