[sub-mac] fix transmit and receive timing capability reporting (#13454)

This commit updates `SubMac::GetCaps()` to accurately report transmit
and receive timing capabilities:

- `kCapTransmitTiming` is now only claimed when CSL transmitter support
  is enabled (`OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE`), as delayed
  transmissions are handled by `SubMac` only when this feature is active.

- `kCapReceiveTiming` is removed from `SubMac::GetCaps()`. This capability
  requires the `ReceiveAt()` API, which is not supported by `SubMac` (or
  `LinkRaw`). Claiming software support for receive timing in `SubMac` was
  therefore invalid.
This commit is contained in:
Abtin Keshavarzian
2026-07-31 16:06:02 -07:00
committed by GitHub
parent 06cecf4529
commit 182c0c3f20
2 changed files with 6 additions and 4 deletions
+4 -2
View File
@@ -115,8 +115,10 @@ SubMac::Capabilities SubMac::GetCaps(void) const
else
#endif
{
caps |= (kCapAckTimeout | kCapCsmaBackoff | kCapTransmitRetries | kCapEnergyScan | kCapTransmitSec |
kCapTransmitTiming | kCapReceiveTiming);
caps |= (kCapAckTimeout | kCapCsmaBackoff | kCapTransmitRetries | kCapEnergyScan | kCapTransmitSec);
#if OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE
caps |= kCapTransmitTiming;
#endif
}
return caps;
+2 -2
View File
@@ -519,8 +519,8 @@ private:
ConditionalCap(kCapTransmitRetries, OPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE) |
ConditionalCap(kCapCsmaBackoff, OPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE) |
ConditionalCap(kCapTransmitSec, OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_SECURITY_ENABLE) |
ConditionalCap(kCapTransmitTiming, OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_TIMING_ENABLE) |
ConditionalCap(kCapReceiveTiming, OPENTHREAD_CONFIG_MAC_SOFTWARE_RX_TIMING_ENABLE) |
ConditionalCap(kCapTransmitTiming,
OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_TIMING_ENABLE &&OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE) |
ConditionalCap(kCapSleepToTx, OPENTHREAD_RADIO);
#undef ConditionalCap