-
Hi, I'm testing the CSL transmitter with LP 5.3.3 test case with a radio platform that supports the OT_RADIO_CAPS_TRANSMIT_TIMING capability. While the child update responses are sometimes transmitted at the correct time but I've noticed that in some cases the response is sent too early as in below capture. When processing a child update request with a 2468 CSL phase then child update response should be sent after 396000 us while it's sent after Debug Observation : I can see child update response is passed to radio layer with (mTxDelay and mTxDelayBaseTime) equals to zero as In PerformNextOperation, the condition: Please correct me if I'm wrong for process of sending frame at specific time
So As mCslTxFireTime timer not fired yet, then CSL frame shouldn't be passed from MAC so Sub-MAC, right ? Is there any reason to send child update response frame using kOperationTransmitDataIndirect but not kOperationTransmitDataCsl ? Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
If there is no data poll from the child, then CSL will be used (waiting for the window to tx). |
Beta Was this translation helpful? Give feedback.
-
Thanks for the explanation. Based on your response, I suspect that setting the frame pending flag to true in the ACK for the child update request might be prompting the child to send a data poll, which then triggers the use of kOperationTransmitDataIndirect. Based on this commit of reversing extended address It seems like remove address reversing from SourceMatchController::ClearEntry(Child &aChild) API is leading to reversed address passed to otPlatRadioClearSrcMatchExtEntry API so frame isn't removed from radio platform perspective and this leads for frame pending to be set to Ture while there's no frames pending . Is this behavior expected ? |
Beta Was this translation helpful? Give feedback.
Submitted