mirror of
https://github.com/espressif/openthread.git
synced 2026-08-24 03:09:52 +00:00
[csl] fix indirect retransmission of frame previously transmitted via CSL (#8770)
Bug fix for an issue where any frame which fails CSL transmission gets treated as a new frame (instead of a retransmission) for a subsequent indirect retransmission (in the data poll handler). This fix checks for the previous CSL transmit attempts and if it is greater than 0, retransmits with the same frame counter, sequence number and key id as previous attempt.
This commit is contained in:
@@ -188,7 +188,11 @@ Mac::TxFrame *DataPollHandler::HandleFrameRequest(Mac::TxFrames &aTxFrames)
|
||||
VerifyOrExit(mCallbacks.PrepareFrameForChild(*frame, mFrameContext, *mIndirectTxChild) == kErrorNone,
|
||||
frame = nullptr);
|
||||
|
||||
#if OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE
|
||||
if ((mIndirectTxChild->GetIndirectTxAttempts() > 0) || (mIndirectTxChild->GetCslTxAttempts() > 0))
|
||||
#else
|
||||
if (mIndirectTxChild->GetIndirectTxAttempts() > 0)
|
||||
#endif
|
||||
{
|
||||
// For a re-transmission of an indirect frame to a sleepy
|
||||
// child, we ensure to use the same frame counter, key id, and
|
||||
|
||||
Reference in New Issue
Block a user