Skip to content

Commit

Permalink
[csl] fix indirect retransmission of frame previously transmitted via…
Browse files Browse the repository at this point in the history
… 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.
  • Loading branch information
sarveshkumarv3 committed Feb 16, 2023
1 parent a0ff14c commit 2060039
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/core/mac/data_poll_handler.cpp
Expand Up @@ -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
Expand Down

0 comments on commit 2060039

Please sign in to comment.