wifi: AP MLD assumes that all EMLSR clients switch back to listening operation when releasing the channel
This commit is contained in:
committed by
Stefano Avallone
parent
043a657263
commit
82f369381c
@@ -412,4 +412,23 @@ EhtFrameExchangeManager::GetEmlsrSwitchToListening(Ptr<const WifiPsdu> psdu,
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
EhtFrameExchangeManager::NotifyChannelReleased(Ptr<Txop> txop)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << 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);
|
||||
for (const auto& address : m_protectedStas)
|
||||
{
|
||||
if (GetWifiRemoteStationManager()->GetEmlsrEnabled(address))
|
||||
{
|
||||
EmlsrSwitchToListening(address, delay);
|
||||
}
|
||||
}
|
||||
|
||||
HeFrameExchangeManager::NotifyChannelReleased(txop);
|
||||
}
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
@@ -81,6 +81,7 @@ class EhtFrameExchangeManager : public HeFrameExchangeManager
|
||||
void ForwardPsduDown(Ptr<const WifiPsdu> psdu, WifiTxVector& txVector) override;
|
||||
void ForwardPsduMapDown(WifiConstPsduMap psduMap, WifiTxVector& txVector) override;
|
||||
void SendMuRts(const WifiTxParameters& txParams) override;
|
||||
void NotifyChannelReleased(Ptr<Txop> txop) override;
|
||||
|
||||
/**
|
||||
* This method is intended to be called when an AP MLD detects that an EMLSR client previously
|
||||
|
||||
Reference in New Issue
Block a user