-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
at86rf231 initialization loses race against auto_init_gnrc_rpl #16359
Comments
There was an earlier discussion about making an auto init component blocking around #15207, but there it was sufficient to just do a check on thread priorities. Here, my best shot would be to make the auto_init_at86rf2xx function block until the interfaces are really up. Judging from a look at the call tree, it looks to me like pretty much all netifs are potentially prone to this (gnrc_netif_create only spawns the thread), and only complete if they never block (because then their higher priority means they can complete before auto init continues). I suppose that it's the So, which options do we have?
|
There's one more option:
|
Something similar seems to happen with
As a workaround, this 'fixes' the issue there: --- a/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c
+++ b/sys/net/gnrc/application_layer/uhcpc/gnrc_uhcpc.c
@@ -34,6 +34,8 @@ static void set_interface_roles(void)
{
gnrc_netif_t *netif = NULL;
+ xtimer_sleep(1);
+
while ((netif = gnrc_netif_iter(netif))) {
kernel_pid_t dev = netif->pid;
int is_wired = gnrc_netapi_get(dev, NETOPT_IS_WIRED, 0, NULL, 0); |
Does #16527 fix this? |
Hello !
Description
I'm trying to auto initialize RPL on iotlab-m3 nodes, but it is not working. I'm using the
gnrc_networking
example. Enabling debug, I found that the error is this one, when specifying the interface:auto_init_gnrc_rpl: could not initialize RPL on interface 6 - interface does not exist
:When not specifying the interface, I get a similar error:
Modifying the
sys/net/netif/netif.c
file and thenetif_register
to add DEBUG statements just after the start and just before its return, I can observe that the message about auto-initialization failing ("Unable to auto-initialize RPL. No interfaces found.") is wrangled with the "netif register start" and "netif register end" messages (which I added)It seems to me there is some problem with the auto-initialization for this board (or I didn't quite get how to do it).
Expected results
I expect auto initialization for RPL to work with the gnrc_networking example on FIT-IOT m3 nodes.
Versions
Linux, NixOS, and I'm using the master branch from RIOT-OS to compile everything. The first step would be to reproduce the problem of FIT-IOT with another compilation chain to rule out any problem that could occur on my side.
Thanks,
Rémy
The text was updated successfully, but these errors were encountered: