openthread / ot-nrf528xx

OpenThread on Nordic nRF528xx examples.
https://openthread.io/
BSD 3-Clause "New" or "Revised" License
65 stars 59 forks source link

[nrf528xx] clear psdu_being_received in CRCOK handler #776

Closed zhanglongxia closed 7 months ago

zhanglongxia commented 7 months ago

The flag psdu_being_received is set to True when the radio driver receives the FC field of the data frame, and the flag will be cleared after the ACK is sent out in PHYEND handler if the ACK is required. Sometimes, the ACK is failed to be sent out, which causes the flag to be set to True forever. Then the radio driver can't send out any frames.

The sdk-nrfxlib (https://github.com/nrfconnect/sdk-nrfxlib/blob/main/nrf_802154/driver/src/nrf_802154_trx.c#L2492) clears the flag psdu_being_received in the CRCOK handler rather than PHYEND handler. This commit clears the flag psdu_being_received in CRCOK handler to avoid the psdu_being_received being permanently set to True.

Issue link: https://nrfsupport.atlassian.net/browse/NRF11-73