MLE Parent Response is received but a Child ID Request/Response exchange fails.

73 views
Skip to first unread message

Олег Копейкин

unread,
Nov 28, 2019, 12:48:36 AM11/28/19
to openthre...@googlegroups.com
Hi everyone,

I am using "nRF5 SDK for Thread and Zigbee 2.0.0" in my project , that includes the libraries of OpenThread (commit 704511c96e0d093139e4b80ef0739ed2d701afb1).  

I recompiled the libopenthread-ftd with new defines:
     OPENTHREAD_CONFIG_ATTACH_BACKOFF_MINIMUM_INTERVAL=300000 # milliseconds or 5 minutes                                                                                                                                 
     OPENTHREAD_CONFIG_ATTACH_BACKOFF_MAXIMUM_INTERVAL=300000 # milliseconds or 5 minutes

Then two Router devices were created. And they had been working properly. In file "log-ChildId-response-success.txt"  we can see,  (line 111) that Child ID Response has been sent on Mac layer.

After that Sleep End Device was created. As it was expected, the interval between attempts of connection to the Parent was approximately 5 minutes.
Since i turned on one Router device and one Sleep End Device, SED hasn't been able to attach to the Router. In Wireshark (files sed-not-connect-to-router.csv, sed-not-connect-to-router.txt, sed-not-connect-to-router.pcapng) we can see, that SED didn't receive Child ID Response after sending of Child ID Request. Áttempts to attach to Parent in sniffer messages: 8, 40, 70, 100, 131 and so on. 
I created the log from my Router device when SED is trying to connect to it. In file "log-ChildId-response-fails.txt" we can see, (line125) that MLE layer was trying to send Child ID Response, but Mac layer did not do that.

I have not any idea, why it happens.

Key for wireshark is 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f.

Thank you!

log-ChildId-response-success.txt
sed-not-connect-to-router.csv
sed-not-connect-to-router.pcapng
sed-not-connect-to-router.txt
log-ChildId-response-fails.txt

Олег Копейкин

unread,
Dec 3, 2019, 10:37:02 AM12/3/19
to openthread-users
I have already found out the following:
* MeshForwarder::SendMessage() is being called after “Send Child ID Response”.
* MeshForwarder::ScheduleTransmissionTask() is being called after “Send Child ID Response”.
* MeshForwarder::SendFrameRequest() isn’t being called after “Send Child ID Response”, because Router waits for receiving message “Data Request”
* Router doesn't receive message "Data Request" from SED.
* Mac::HandleReceivedFrame() isn’t being called after receiving message “Child ID Request”.

Conclusion:
Message "Data Request" is lost at radio driver or before.

Is my conclusion right? What should i do to improve this behavior?

Thank you!

четверг, 28 ноября 2019 г., 8:48:36 UTC+3 пользователь Олег Копейкин написал:

Jonathan Hui

unread,
Dec 3, 2019, 1:49:00 PM12/3/19
to Олег Копейкин, Duda, Lukasz, openthread-users
From the packet capture, it is clear that the IEEE 802.15.4 Data Request message is not being acknowledged by the router. This is consistent with your observation that the router is not receiving the Data Request message from the SED.

It is not obvious to me why the Data Request message is not being received by the router. +Duda, Lukasz, any ideas?

--
Jonathan Hui


--
You received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/977fcbee-a75c-4844-80d9-7b98add25526%40googlegroups.com.

Олег Копейкин

unread,
Dec 6, 2019, 5:24:12 AM12/6/19
to openthread-users
Hi all,

I solved the problem I've described above. It was my mistake.

My project works with co-operative scheduler and uses multiprotocol (openthread+ble) for communication between devices through openthread and between devices and smartphone through ble. Separate task was used for handling softdevice's events, therefore it was polled every time when event had occured.
I think, events of softdevice haven't been handled in required time, and program behaved as showed in the question above. When softdevice's events are handled in interrupt, SED attaches to Router.

I apologize for giving you incomplete report.

Thank you for your help!

вторник, 3 декабря 2019 г., 21:49:00 UTC+3 пользователь Jonathan Hui написал:
From the packet capture, it is clear that the IEEE 802.15.4 Data Request message is not being acknowledged by the router. This is consistent with your observation that the router is not receiving the Data Request message from the SED.

It is not obvious to me why the Data Request message is not being received by the router. +Duda, Lukasz, any ideas?

--
Jonathan Hui


To unsubscribe from this group and stop receiving emails from it, send an email to openthre...@googlegroups.com.

Jonathan Hui

unread,
Dec 6, 2019, 12:55:20 PM12/6/19
to Олег Копейкин, openthread-users
That explains it. I'm glad you resolved your issue. Thanks for reporting back!

--
Jonathan Hui

To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/eb47ea00-1f22-4c5b-892f-7796be490b5a%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages