Commit 96fdc81c authored by Stefano Avallone's avatar Stefano Avallone
Browse files

wifi: Mark an MPDU as acknowledged before removing it from the in-flight queue

This avoids a crash in the event that an MPDU sent in an S-MPDU under
a Block Ack agreement is acknowledged after its lifetime expired.
parent a34c0109
Pipeline #383698793 passed with stages
in 45 minutes and 51 seconds
......@@ -444,6 +444,8 @@ BlockAckManager::NotifyGotAck (Ptr<const WifiMacQueueItem> mpdu)
AgreementsI it = m_agreements.find (std::make_pair (recipient, tid));
NS_ASSERT (it != m_agreements.end ());
it->second.first.NotifyAckedMpdu (mpdu);
// remove the acknowledged frame from the queue of outstanding packets
for (auto queueIt = it->second.second.begin (); queueIt != it->second.second.end (); ++queueIt)
{
......@@ -453,8 +455,6 @@ BlockAckManager::NotifyGotAck (Ptr<const WifiMacQueueItem> mpdu)
break;
}
}
it->second.first.NotifyAckedMpdu (mpdu);
}
void
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment