wifi: Clear PSDU map if no immediate response expected with BAR-BA ack sequence

Otherwise, HeFEM::ProtectionCompleted() called upon sending the first
BAR will enter the wrong if branch
This commit is contained in:
Stefano Avallone
2024-08-26 17:27:19 +02:00
parent 60853792b2
commit e806abc0fb
2 changed files with 6 additions and 2 deletions

View File

@@ -48,6 +48,7 @@ The required Doxygen version for documentation generation is version 1.11.
### Bugs fixed
- (wifi) Retransmit procedures have been aligned with the standard specifications.
- (wifi) Clear PSDU map if no immediate response expected with BAR-BA ack sequence
## Release 3.43

View File

@@ -927,9 +927,12 @@ HeFrameExchangeManager::SendPsduMap()
auto hePhy = StaticCast<HePhy>(m_phy->GetPhyEntity(responseTxVector->GetModulationClass()));
hePhy->SetTrigVector(m_trigVector, m_txTimer.GetDelayLeft());
}
else if (timerType == WifiTxTimer::NOT_RUNNING && m_txParams.m_txVector.IsUlMu())
else if (timerType == WifiTxTimer::NOT_RUNNING &&
(m_txParams.m_txVector.IsUlMu() ||
m_txParams.m_acknowledgment->method == WifiAcknowledgment::DL_MU_BAR_BA_SEQUENCE))
{
// clear m_psduMap after sending QoS Null frames following a BSRP Trigger Frame
// clear m_psduMap after sending QoS Null frames following a BSRP Trigger Frame or after
// sending a DL MU PPDU with BAR-BA ack sequence and no immediate response is expected
Simulator::Schedule(txDuration, &WifiPsduMap::clear, &m_psduMap);
}