[csl] reset data poll timer after successful csl transmission (#9840)

Currently the the data poll timer is used to maintain synchronization
with the parent. It sends a data poll once per csl timeout. However
often this is not necessary as other packets that are sent cause
synchronization to be maintained. This commit resets the data poll
timer each time a frame containing the csl ie is successfully
transmitted.
This commit is contained in:
Lorenzo Rai
2024-02-12 09:25:34 -08:00
committed by GitHub
parent a756481c3b
commit e092a1785a
+6
View File
@@ -1310,6 +1310,12 @@ void Mac::HandleTransmitDone(TxFrame &aFrame, RxFrame *aAckFrame, Error aError)
#endif
#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE
ProcessCsl(*aAckFrame, dstAddr);
#endif
#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE
if (!GetRxOnWhenIdle() && aFrame.GetHeaderIe(CslIe::kHeaderIeId) != nullptr)
{
Get<DataPollSender>().ResetKeepAliveTimer();
}
#endif
}
}