wifi: (fixes #2376) Process case when new A-MPDU is received and some MPDUs are missing

This commit is contained in:
Alexander Krotov
2016-04-18 18:59:52 +03:00
parent 7f7a46fd65
commit 5caef0cd19
2 changed files with 6 additions and 0 deletions

View File

@@ -52,6 +52,7 @@ Bugs fixed
- Bug 2352 - Add 'drop oldest' drop policy to WifiMacQueue
- Bug 2353 - TCP Vegas implementation
- Bug 2375 - Flowmonitor parse crashes when no pkt is received
- Bug 2376 - New A-MPDU might not be received if MPDUs of a previous A-MPDU are lost
- Bug 2377 - SocketIpTosTag and SocketIpv6TclassTag may be added twice in UDP
- Bug 2378 - A-MPDU variables are not correctly reset in YansWifiPhy when a PLCP preamble/header failed
- Bug 2380 - EdcaTxopN fails to retrieve TID for ADDBA requests, ADDBA responses and DELBA frames

View File

@@ -671,6 +671,11 @@ YansWifiPhy::StartReceivePreambleAndHeader (Ptr<Packet> packet,
m_mpdusNum--;
}
}
else if (preamble != WIFI_PREAMBLE_NONE && packet->PeekPacketTag (ampduTag) && m_mpdusNum > 0)
{
NS_LOG_DEBUG ("New A-MPDU started while " << m_mpdusNum << " MPDUs from previous are lost");
m_mpdusNum = ampduTag.GetRemainingNbOfMpdus ();
}
else if (preamble != WIFI_PREAMBLE_NONE && m_mpdusNum > 0 )
{
NS_LOG_DEBUG ("Didn't receive the last MPDUs from an A-MPDU " << m_mpdusNum);