wifi: STAs not responding to a MU PPDU need to be protected again in the same TXOP

This commit is contained in:
Stefano Avallone
2023-06-20 22:53:27 +02:00
committed by Stefano Avallone
parent 609773ca22
commit 463d73aeda
2 changed files with 18 additions and 0 deletions

View File

@@ -504,6 +504,23 @@ HeFrameExchangeManager::CtsTimeout(Ptr<WifiMpdu> rts, const WifiTxVector& txVect
m_psduMap.clear();
}
void
HeFrameExchangeManager::TransmissionSucceeded()
{
NS_LOG_FUNCTION(this);
// A multi-user transmission may succeed even if some stations did not respond.
// Remove such stations from the set of stations for which protection is not needed
// in the current TXOP.
for (const auto& address : m_txTimer.GetStasExpectedToRespond())
{
NS_LOG_DEBUG(address << " did not respond, hence it is no longer protected");
m_protectedStas.erase(address);
}
VhtFrameExchangeManager::TransmissionSucceeded();
}
void
HeFrameExchangeManager::SendPsduMap()
{

View File

@@ -163,6 +163,7 @@ class HeFrameExchangeManager : public VhtFrameExchangeManager
void NavResetTimeout() override;
void StartProtection(const WifiTxParameters& txParams) override;
void ProtectionCompleted() override;
void TransmissionSucceeded() override;
/**
* Clear the TXOP holder if the intra-BSS NAV counted down to zero (includes the case