GNRC with sleepy nodes

Hi all,

I have some questions about the possibilities of RIOT in the network area. First a short introduction about my work.

I am currently working on a project for a low power sensor network with an ATSAMR21G18A from Atmel and RIOT as operating system. The idea is to connect sleeping sensor nodes in a star topology with a border router in the middle. The sensor nodes should be IPv6 capable and provide a CoAP server. Next, the node should also spend some time in the sleeping state. The resulting latencies are deliberately accepted.

I have already done some experiments with the “gnrc_border_router” and “gnrc_networking” examples. There was a question about Neighbor Discovering. Some of the time constants (e.g., DELAY_FIRST_PROBE_TIME) are inherited from RFC4861, but others have been adjusted (e.g., REACHABLE_TIME of 18s). Is there a rationale for choosing these values?

At the moment it looks like I am develop my own border router base on the “gnrc_border_router” example and trying to cache the data traffic for sleeping sensor nodes until they wake up and ask for the data (like the Thread Stack does). I would be interested if my approach is correct.

Is there also a possibility with GNRC stack that I overlooked? Or examples of this approach?

Best regards

Benjamin Häring


ZHAW School of Engineering

Benjamin Häring, BSc ZFH in Electrical Engineering

Wissenschaftlicher Assistent

InES, Institute of Embedded Systems

Technikumstrasse 22


8401 Winterthur

Telefon +41 58 934 71 48


since the timers you mentioned are dependent on xtimer and since xtimer has some known issues with power management (what those are directly I can’t say due to my own lack of knowledge there, some hardware person on this list might give you more detailed information on that) in the default configuration, sleeping is not currently possible with GNRC on ATSAMR21G18A-based platforms (at least, as I understand it in the default configuration).

Cheers, Martine

Hi again,

After re-reading your mail, I think I misunderstood your question…

Regarding caching: no there is no possibility in GNRC to cache data for sleeping nodes at the moment. Can you maybe describe your set-up further? I’m particularly interested in how is the border router is notified that a node is going to sleep/is already sleeping?

Cheers, Martine