This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52840 Dongle working as RCP which attached to a OTBR sometimes doesn't ACK child's IEEE802.15.4 Data Request packet

The Topology:

There are only two devices in the topoloty: One nRF52840 dongle attached to a ubuntu laptop who works as an OTBR,  the other nRF52840 dongle as a FTD device with thread mode 'n'. 

Of course there is a third party device working as the sniffer.

The RCP/FTD are build from https://github.com/openthread/ot-nrf528xx.git with commit - 5c86d0c8

FTD configuration: channel 16; panid 0xabcd; networkkey xxx; mode n; childtimeout 10

The symptom:

The RCP doesn't ACK child's IEEE802.15.4 Data Request packet from both the sniffer and the FTD device's behavior.

Some analysis:

The sniffer: we saw a lot of Data Request packet from the child are sent out (because of re-transmission mechanic due to no ACK replay), yet no ACK received.

                   After sometimes, the child sent "parent request" MLE packets. yet the OTBR doesn't reply until some time later.

The OTBR: from the OTBR log, it actually didn't receive any "Rx data poll" from the RCP.

The Child: The child retransmit a lot of Data Request, after timeout, it try to re-establish the link with its parent (correct behavior).

Some guessing:

The RCP radio state may be stuck, hence it didn't receive packets for some times, until some other event trigger the radio state back to normal (for example, when the OTBR try to send out some packet from the RCP and that packet requires some ACK from the child.)

Related