From 1014ac4f527c674511e05f3dc5274bb930e2bead Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Wed, 14 Jun 2023 14:01:54 +0200 Subject: [PATCH] wifi: Use higher PHY RX start delay Otherwise, an EMLSR client may consider the TXOP as ended before the RX START indication for a HT/VHT/HE/EHT PPDU --- src/wifi/model/eht/eht-frame-exchange-manager.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/wifi/model/eht/eht-frame-exchange-manager.cc b/src/wifi/model/eht/eht-frame-exchange-manager.cc index f4bf24d10..c9fa553ee 100644 --- a/src/wifi/model/eht/eht-frame-exchange-manager.cc +++ b/src/wifi/model/eht/eht-frame-exchange-manager.cc @@ -34,6 +34,10 @@ namespace ns3 { +/// generic value for aRxPHYStartDelay PHY characteristic (used when we do not know the preamble +/// type of the next frame) +static constexpr uint8_t RX_PHY_START_DELAY_USEC = 48; + NS_LOG_COMPONENT_DEFINE("EhtFrameExchangeManager"); NS_OBJECT_ENSURE_REGISTERED(EhtFrameExchangeManager); @@ -491,7 +495,7 @@ EhtFrameExchangeManager::NotifyChannelReleased(Ptr txop) // the channel has been released; all EMLSR clients will switch back to listening // operation after a timeout interval of aSIFSTime + aSlotTime + aRxPHYStartDelay - auto delay = m_phy->GetSifs() + m_phy->GetSlot() + MicroSeconds(20); + auto delay = m_phy->GetSifs() + m_phy->GetSlot() + MicroSeconds(RX_PHY_START_DELAY_USEC); for (const auto& address : m_protectedStas) { if (GetWifiRemoteStationManager()->GetEmlsrEnabled(address))