Hi Alex, and all,
my radvd.conf is the following:
---snip---
interface lowpan0
{
AdvSendAdvert on;
UnicastOnly on;
AdvCurHopLimit 255;
AdvSourceLLAddress on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvDefaultPreference low;
prefix fd4b:c597:5df5:0::/64
{
AdvOnLink off;
AdvAutonomous on;
AdvRouterAddr on;
};
abro fe80::1ac0:ffee:1ac0:ffee
{
AdvVersionLow 10;
AdvVersionHigh 2;
AdvValidLifeTime 2;
};
};
---snap---
btw. I use your/linux-wpan fork of radvd. Again: RIOT does receive the RA from
radvd AND configures an IP with the provided prefix. Thus, the processing of
RS+RA up this point seems to be correct, what's missing is the routers entry in
RIOT. Further, RIOT does receive the COAP requests but it cannot send any
reply, as it does not know the LLaddr for the destination (ULA) IP. As far as I
remember my last digging into RIOTs NDP processing, RIOT does the following:
1. if DST_IP is link-local: extract LLaddr
2. else if neighbor cache entry exist, use it
3. if no ncache: query (default) router for LLaddr
4. if no router: abort
I think I'm running into case 4, where no entry exists what so ever and thus no
COAP reply is send.
@Alex as you joined the discussion: I also have a question regarding the Linux
side. I currently use Raspbian with shipped Linux-Kernel 4.1.19. I observed
that Linux still does NS for link-local address via the nodes scoped multicast
address, instead of using 6lo 'shortcut' by extracting LL/MAC-address from the
link-local IP. Is this fixed in some recent version?
Regards,
Sebastian
> Am 22.04.2016 um 12:28 schrieb Alexander Aring <[email protected]>:
>
> Hi,
>
> On Fri, Apr 22, 2016 at 12:19:36PM +0200, smlng wrote:
>> Hi everyone,
>>
>> I'm testing COAP between RIOT on Phytec pba-d-01-kw2x and Linux on
>> RasPi+Openlabs using ULA IP addresses.
>>
>> On the Pi I run a 'radvd' to advertise a ULA prefix to RIOT, which works:
>> - RIOT sends RS after boot
>> - the Pi answers with RA containing ULA prefix
>> - RIOT configures ULA IP on 6lo iface
>>
>> COAP (or communication in general) via ULA IP works, as long as RIOT has the
>> Pi in its routers cache. However, sometimes RIOT _forgets_ or does not set a
>> routers entry for the Pi at all. In that case communication is not possible
>> via ULAs, using link-local IPs works all the time. The issue seems be with
>> the RS+RA processing. I found that sometimes RIOT does not create a routers
>> entry on reception of a RA - though it does configure the ULA prefix
>> correctly.
>>
>> I just had the case that RIOT configures the ULA _and_ sets a routers entry,
>> hence communication was working. At least for about 15min, but then RIOT
>> send another RS, Pi answers with RA, RIOT still has ULA IP configured -- BUT
>> the routers entry for the Pi is gone and communication fails. Again: using
>> link-local IPs still works.
>>
>> Btw. even when communication via ULAs is working, RIOT never creates a
>> ncache entry for ULA IP of the Pi but it did create an ncache entry for
>> link-local IP of the Pi. I thought the latter is not required/allowed in 6lo
>> but for ULAs it should create an entry?
>>
>> Has somebody else observed this behavior or any hints how to resolve this?
>>
>
> can you share your used radvd.conf?
>
> - ALex
> _______________________________________________
> devel mailing list
> [email protected]
> https://lists.riot-os.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/devel