[sub-mac] simplify CSL debug check handling (#13479)

This commit simplifies and improves the readability of CSL debug checks
in `SubMac`.

1. Improved Readability: Avoids placing primary operational code under
   negative preprocessor (`#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE`).
   Instead, uses an early exit (`ExitNow()`) when the debug condition is
   enabled, keeping normal execution flow uncluttered.

2. Evaluates `MAC_CSL_DEBUG_ENABLE` only when CSL Receiver is enabled
   (`OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE`). If CSL Receiver support
   is disabled, `MAC_CSL_DEBUG_ENABLE` automatically becomes a safe
   no-op.
This commit is contained in:
Abtin Keshavarzian
2026-08-10 23:37:26 -07:00
committed by GitHub
parent 9e15b2583e
commit 7b6ed71549
3 changed files with 22 additions and 16 deletions
+21 -11
View File
@@ -163,14 +163,18 @@ void SubMac::SetRxOnWhenIdle(bool aRxOnWhenIdle)
{
mRxOnWhenIdle = aRxOnWhenIdle;
if (RadioSupports(kCapRxOnWhenIdle))
{
#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
Get<Radio::Radio>().SetRxOnWhenIdle(mRxOnWhenIdle);
#endif
}
LogDebg("RxOnWhenIdle: %u", mRxOnWhenIdle);
LogDebg("RxOnWhenIdle: %d", mRxOnWhenIdle);
#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
// Keep radio rx-on-when-idle enabled for debugging when `MAC_CSL_DEBUG_ENABLE`.
ExitNow();
#endif
VerifyOrExit(RadioSupports(kCapRxOnWhenIdle));
Get<Radio::Radio>().SetRxOnWhenIdle(mRxOnWhenIdle);
exit:
return;
}
Error SubMac::Enable(void)
@@ -981,12 +985,15 @@ void SubMac::RadioSample(void)
ExitNow();
}
#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
// Don't sleep for debugging when `MAC_CSL_DEBUG_ENABLE`.
ExitNow();
#endif
if (!RadioSupports(kCapRxOnWhenIdle))
{
IgnoreError(Get<Radio::Radio>().Sleep());
}
#endif
exit:
return;
@@ -1056,10 +1063,13 @@ void SubMac::UpdateRadioSampleState(void)
}
#endif
#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
IgnoreError(Get<Radio::Radio>().Sleep()); // Don't actually sleep for debugging
#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
// Don't sleep for debugging when `MAC_CSL_DEBUG_ENABLE`.
ExitNow();
#endif
IgnoreError(Get<Radio::Radio>().Sleep());
exit:
return;
}
-4
View File
@@ -91,10 +91,6 @@ namespace Mac {
#endif
#if OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE && !OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE
#error "OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE is required for OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE."
#endif
//----------------------------------------------------------------------------------------------------------------------
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
+1 -1
View File
@@ -360,7 +360,7 @@ void SubMac::LogReceived(RxFrame *aFrame)
exit:
return;
}
#endif
#endif // OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE
} // namespace Mac
} // namespace ot