I have few bluepills with at86rf212b transceivers (my design), trying to get address from a RPi BR with another at86rf212b transceiver (OpenWRT).
When I put all devices in the same PAN i can ping the link-local addresses and they work very well, unfortunately the RIOT nodes do not solicit Public or ULA addresses. I can not test this with RIOT as BR, as I don’t have a device that can fit the BR example app (my Bluepills are all 64kb, not 128kb).
I researched the open issues on github and saw that there is a similar issue with Xbee and OpenLabs’ transceiver. Is my issue similar and if so, can someone point me in the right direction of fixing it, or is this unrelated and should I open a separate issue on github?
great to hear you're working with RIOT + LoWPAN radios! As you already have a basic setup with
link-local addresses working, the (most) tricky parts are done. To get started with ULAs or real
public/global IP(v6) addresses you could setup RADVD on the RasPi. RADVD is a router advertisement
daemon, which will answer Router-Solications (RS) by RIOT nodes. RADVD can announce an IPv6
prefix (ULA or public) to the nodes, which than can autoconfigure an IPv6 address.
Please checkout the following repository and the guides in its wiki, for further infos:
thanks for the reply. I’m using openwrt as a BR distro with odhcpd handling the RA (and also dhcpv6). The setup works between a Pi-Pi (although my second Pi in the PAN uses dhcpv6 for getting an IP, so that is not a proof of a working solution so far.
I will switch SD cards later today to the raspbian distro and will setup a BR with radvd, just so I make sure the setup works. If everything works with raspbian, I’ll go back to openwrt and will try to find the problem there. Bare with me, I might have more questions coming.
OpenWRT puts all interfaces with “proto static”, in my case lowpan0 interface to be always on, i.e. link is always on. I also used the force_link option just so I can be sure, however this did not solve the problem. I will switch to raspbian and will try the setup Sebastian proposed with radvd, to make sure it works there. If everything works I’ll go back to OpenWRT and will start investigating the problem.
thanks for the reply. I'm using openwrt as a BR distro with odhcpd handling the RA (and also dhcpv6). The setup works between a Pi-Pi (although my second Pi in the PAN uses dhcpv6 for getting an IP, so that is not a proof of a working solution so far.
you could try to use one of your boards as a sniffer, see [1]. So you can check if you see
Router Solicitations (RS) by RIOT nodes and hopefully Router Advertisements (RA) from your
RasPi. RIOT needs RAs to (auto) configure its IPv6 interfaces with addresses, there is no
DHCP client on RIOT (yet).
Thus, if odhcpd does not send RAs or if it does, these RAs may contain options RIOT does not
except (e.g., as Kaspar already said on-link flag must not be set), in all cases auto-conf
may fail in RIOT.
Just to make sure I’m understanding things correctly:
RIOT does solicit stateless IPv6 addresses by sending RS, and the BR should reply with RA. This is part of SLAAC. I have the nagging feeling that OpenWRT messes up SLAAC on all it’s interfaces somehow.
Before switching to Raspbian, I’ll do another round of OpenWRT with a sniffer but will leave odhcpd handling just RAs and will disable dhcpv6 so I make sure I’m just using SLAAC/RA/NDP. After a node solicits an IP will proceed to neighbor soliciting, right?
Please let me know if my understanding is correct about this.