|View source on GitHub|
To provide an energy-efficient mechanism for a sleepy end device (SED) to verify that it is still connected to its parent router (listed in the parent router's child table), enable the Child Supervision feature.
The Thread Specification requires an SED to periodically perform an MLE Child Update Request and Response exchange with its parent router to verify connectivity. Child Supervision is an alternate solution for verification of SED-router connectivity that places the burden of message transmission on the parent router instead of on the energy-constrained SED.
How it works
This feature works in two ways, depending on the node type and which parameters are configured:
On the parent
If a parent router does not transmit to its child SED within the
the parent router enqueues and sends a Child Supervision message to the child
SED. The Child Supervision message is a MAC frame containing the following
- The RLOC16 of the SED as the destination in the MAC header.
- An empty payload.
By default, a MAC header contains an 802.15.4 ACK request. To disable this
request in the Child Supervision message, set the
OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST parameter to 1.
On the child
If an SED does not hear from its parent router within the
it assumes that it has lost its connection to the parent router and initiates
process to reattach to the parent router.
How to enable
This feature is disabled by default.
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1#endif
Alternatively, use the
-DOT_CHILD_SUPERVISION=ON build option when building
Use the following parameters in
to customize this feature:
Use the Child Supervision API to manage the supervision and check timeout intervals directly in your OpenThread application.
There are no CLI commands related to this feature.