mirror of
https://github.com/espressif/openthread.git
synced 2026-08-15 07:07:46 +00:00
[data-poll-handler] always process data poll when acked with "frame pending" (#4131)
This commit removes the extra check remaining from before the change from #3785 and the related follow-ups. Before having the "Acked with FP" feature, we relied on number of indirect msg in queue (for the child) or state of src-match-table to determine/guess if the data poll was acked with fp or not. That is now redundant and can be incorrect (e.g., if a message was removed/evicted after data poll was acked with fp set). If the data poll is acked with "frame pending" flag set, the child would stay in rx expecting a frame from parent. If we have no frame for the child, parent would send an empty frame to let the child know that it can go to sleep (and avoid the child having a data timeout and retx the data poll). This change is required for new platform abstractions like Thread over BLE (ToBLE) where we may not have the ack or frame-pending notion at the link layer and rely on next layer to follow a "data poll" with empty frame (when there is no pending frame).
This commit is contained in:
committed by
Jonathan Hui
parent
3c402a7485
commit
ef4adde7be
@@ -154,8 +154,6 @@ void DataPollHandler::HandleDataPoll(Mac::RxFrame &aFrame)
|
||||
ExitNow();
|
||||
}
|
||||
|
||||
VerifyOrExit(!Get<SourceMatchController>().IsEnabled() || (indirectMsgCount > 0));
|
||||
|
||||
if (mIndirectTxChild == NULL)
|
||||
{
|
||||
mIndirectTxChild = child;
|
||||
|
||||
Reference in New Issue
Block a user