diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp index 54e3a6212..6f3e11bc8 100644 --- a/src/core/mac/sub_mac.cpp +++ b/src/core/mac/sub_mac.cpp @@ -1159,7 +1159,9 @@ void SubMac::HandleCslTimer(void) Get().UpdateCslSampleTime(mCslSampleTime.GetValue()); - if (RadioSupportsReceiveTiming() && (mState != kStateDisabled)) + // Scedule reception window for any state except RX - so that CSL RX Window has lower priority + // than scanning or RX after the data poll. + if (RadioSupportsReceiveTiming() && (mState != kStateDisabled) && (mState != kStateReceive)) { IgnoreError(Get().ReceiveAt(mCslChannel, mCslSampleTime.GetValue() - periodUs - timeAhead, timeAhead + timeAfter));