Subject: Re: IPv6 over IEEE 802.15.4 aka 6LoWPAN - Neighbor discovery issue

From: YOSHIFUJI Hideaki/吉藤英明<[email-masked]>
Date: Wed, 06 Aug 2014 09:40:28 +0900

Hi,

Alexander Aring wrote:
> There exist no mapping between extended and short addresses. The global problem
> that the neighbor discovery cache handle the address length with a static addr_len
> value from net_device, this value should not be changed during runtime.
>
>
> To handle 6LoWPAN over IEEE 802.15.4 correctly we need to indicate that the neighbor
> discovery stores an extended or short address.
:
> My idea:
>
> Let addr_len to extended_address_length + 1. In the last byte we have a bit which
> indicate that is it a short address. If this bit isn't set we have an extended
> address.
>
> If we do that, we need some conversions about generating the ICMPv6 messages according
> to [1]. We can solve that with some hooks in net/ipv6/ndisc.c like the ndisc_mc_map
> function for mapping mac multicast addresses.
>
> Another idea to avoid hooks in net/ipv6/ndisc.c  is to parse and rebuild the ICMPv6
> header while replacing IPv6 with the 6LoWPAN header.

Please avoid magling icmpv6/ipv6 bits as much as possible.

> Please I need help and I need a solution which is also acceptable for mainline.

We can have L2-specific private data per NCE, and 6lowpan uses ARPHRD_IEEE802154.
Please consider using it for L2 private data, if you need L2-speicic extra
information per NCE.

Regards,

--yoshfuji