OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST

I have been trying to understand Child Supervision. Part of the documentation that I have read is:

https://openthread.io/guides/build/features/child-supervision

At the bottom of the page it explains that one can set OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST: "Set to 1 to clear/disable the 802.15.4 ACK request in the MAC header of a supervision message". 

I had assumed that, in child supervision mode, the parent too needs to have an idea whether the child is still there. From the documentation my assumption was that that would be the responded ACK to a Child Supervision message.

So my question, based on the documentation it is clear what Child Supervision message does on the child's side, but how does the parent know that the child is still there or not? I am interested both in the case where OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST is 0 and 1.

Thanks in advance!

Parents
  • Hi,

    Thanks for replying, appreciate it.

    I do think that the parent must know about a lost child (at some point), as a parent can only have so many children. If the parent erroneously assumes this child remained, and does that a few more times, then the parent my saturate its child capacity without having any actual children.

    Regards,

    Ewout

  • Hi again, and thanks for waiting. 

    OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST option has been removed ~3 years ago. I think the OpenThread.io page needs an updateACK is always requested today. This feature is part of Thread specification now.

    But the parent doesn't need this to confirm that the child is alive. It uses regular data polls for that. Got also some additional notes from R&D here:

    The reason why Child Supervision has been introduced is mainly to:

    1) Have communication between Child and Router (Child sends Data Poll regularly, there is no data to poll, Router replies with ACK with Pending Bit set to 0).

    2) ACK is generated by HW or by SW, but it has to be sent within 192us. Thus this is done "before" the Data Poll is handled by the stack and e.g. security is checked.

    If for some reason.. Router timeouts the child.. but keeps the same address. But Child does not know about it.. it may end-up in the situation where it polls and receives auto-generated ACKs from "old" parent.

    There is of course MLE Child Update Request and Response mechanism.. but timeout might be pretty long.

    Regards,

    Elfving

  • Thank you very much! I have the information that I need now.

Reply Children
No Data
Related