Requests a frame change for a given child. Two types of frame change requests are supported: 1) "Purge Frame" which indicates that the previous frame should be purged and any ongoing indirect tx aborted. 2) "Replace Frame" which indicates that the previous frame needs to be replaced with a new higher priority one. If there is no ongoing indirect frame transmission to the child, the request will be handled immediately and the callback `HandleFrameChangeDone()` is called directly from this method itself. This callback notifies the next layer that the indirect frame/message for the child can be safely updated. If there is an ongoing indirect frame transmission to this child, the request can not be handled immediately. The following options can happen based on the request type: 1) In case of "purge" request, the ongoing indirect transmission is aborted and upon completion of the abort the callback `HandleFrameChangeDone()` is invoked. 2) In case of "replace" request, the ongoing indirect transmission is allowed to finish (current tx attempt). 2.a) If the tx attempt is successful, the `Callbacks::HandleSentFrameToChild()` in invoked which indicates the "replace" could not happen (in this case the `HandleFrameChangeDone()` is no longer called). 2.b) If the ongoing tx attempt is unsuccessful, then callback `HandleFrameChangeDone()` is invoked to allow the next layer to update the frame/message for the child. If there is a pending request, a subsequent call to this method is ignored except for the case where pending request is for "replace frame" and new one is for "purge frame" where the "purge" overrides the "replace" request.
This callback method notifies that a requested frame change from `RequestFrameChange()` is processed. This callback indicates to the next layer that the indirect frame/message for the child can be safely updated.
Sets the `Info` instance from a given `Child`.
Informs data poll handler that there is a new frame for a given child. After this call, the data poll handler can use the `Callbacks::PrepareFrameForChild()` method to request the frame to be prepared. A subsequent call to `Callbacks::PrepareFrameForChild()` should ensure to prepare the same frame (this is used for retransmissions of frame by data poll handler). If/When the frame transmission is finished, the data poll handler will invoke the `Callbacks::HandleSentFrameToChild()` to indicate the status of the frame transmission.
Decrements the message count for a child and updates the source match table.
Resets the message count for a child to zero and updates the source match table.
Sets whether or not to perform source address matching on the extended or short address for a child.
Clears an entry in source match table for a given child and updates the state of source matching feature accordingly. If the entry is removed successfully and frees up space in the source match table, any remaining pending entries are added. If all pending entries are successfully added, source matching is enabled.
Finds the first queued message for a given sleepy child that also satisfies the conditions of a given `MessageChecker`. The caller MUST ensure that @p aChild is sleepy.
This callback method requests a frame to be prepared for CSL transmission to a given SSED.
This callback method notifies the end of CSL frame transmission to a child.
This callback method requests a frame to be prepared for indirect transmission to a given sleepy child.
This callback method notifies the end of indirect frame transmission to a child.
Increments the message count for a child and updates the source match table.
Adds an entry to source match table for a given child and updates the state of source matching feature accordingly. If the entry is added successfully, source matching feature is enabled (if not already enabled) after ensuring that there are no remaining pending entries. If the entry cannot be added (no space in source match table), the child is marked to remember the pending entry and source matching is disabled.
Gets the MLR state of the IPv6 address entry.
Removes a message for indirect transmission to a sleepy child.
Finds the first queued message for a given sleepy child that also satisfies the conditions of a given `MessageChecker`. The caller MUST ensure that @p aChild is sleepy.
Sets whether to use the extended or short address for a child.
Removes a stored child information from non-volatile memory.
Store a child information into non-volatile memory.
Updates the supervision state for a child. It informs the child supervisor that a message was successfully sent to the child.
Handles Child DUA address event.
Updates the Multicast Subscription Table according to the Child information.
Initializes the TLV using information from a given `Child`.
Adds a message for indirect transmission to a sleepy child.
Removes all added messages for a specific child and frees message (with no indirect/direct tx).
Handles a child mode change and updates any queued messages for the child accordingly.
Sets the MLR state of the IPv6 address entry.
Removes and frees messages queued for a child, based on a given predicate. The `aChild` can be either sleepy or non-sleepy.
Indicates whether there is any queued message for a given sleepy child that also satisfies the conditions of a given `MessageChecker`. The caller MUST ensure that @p aChild is sleepy.
Returns the child table index for a given `Child` instance.