wifi: Fix BlockAckManager searching for BA agreement
When transmitting a DL MU PPDU containing PSDUs of different ACs with the ACK-SU-FORMAT acknowledgment sequence, BARs for different ACs may be stored by the BlockAckManager corresponding to the AC that gained channel access. When processing such BARs, the BlockAckManager has to search among the BE agreements of the proper BlockAckManager.
This commit is contained in:
committed by
Stefano Avallone
parent
493e6c5197
commit
fe3a0ad5d8
@@ -38,6 +38,7 @@ Release 3-dev
|
||||
- (wifi) #709 Adjust WifiPhy::RxSensitivity with channel width for YansWifiChannel
|
||||
- (wifi) Align default TXOP limit for VI and VO to 802.11-2020
|
||||
- (wifi) #696 - 802.11ax assert failed. cond="seqNumber < SEQNO_SPACE_SIZE && startingSeqNumber < SEQNO_SPACE_SIZE"
|
||||
- (wifi) Fix acknowledgment in SU format for DL MU PPDUs including PSDUs of different TIDs
|
||||
|
||||
Release 3.36.1
|
||||
--------------
|
||||
|
||||
@@ -293,7 +293,8 @@ BlockAckManager::GetBar (bool remove, uint8_t tid, Mac48Address address)
|
||||
}
|
||||
if (nextBar->bar->GetHeader ().IsBlockAckReq ())
|
||||
{
|
||||
AgreementsI it = m_agreements.find (std::make_pair (recipient, nextBar->tid));
|
||||
auto bam = m_bamMap.at (QosUtilsMapTidToAc (nextBar->tid));
|
||||
AgreementsI it = bam->m_agreements.find (std::make_pair (recipient, nextBar->tid));
|
||||
if (it == m_agreements.end ())
|
||||
{
|
||||
// BA agreement was torn down; remove this BAR and continue
|
||||
|
||||
Reference in New Issue
Block a user