From a02ee299052a4554651fd4d3821f4f17d3f8049e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Wed, 24 Feb 2016 17:34:18 +0100 Subject: [PATCH] wifi: additional check to avoid potention problems with VHT single MPDUs in 802.11ac --- src/wifi/model/mac-low.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc index 4acd2454d..2b0d1dc65 100644 --- a/src/wifi/model/mac-low.cc +++ b/src/wifi/model/mac-low.cc @@ -2820,7 +2820,7 @@ MacLow::DeaggregateAmpduAndReceive (Ptr aggregatedPacket, double rxSnr, NotifyNav ((*n).first, firsthdr, preamble); bool vhtSingleMpdu = (*n).second.GetEof (); - if (vhtSingleMpdu == true) + if (vhtSingleMpdu) { //If the MPDU is sent as a VHT single MPDU (EOF=1 in A-MPDU subframe header), then the responder sends an ACK. NS_LOG_DEBUG ("Receive VHT single MPDU"); @@ -2829,7 +2829,10 @@ MacLow::DeaggregateAmpduAndReceive (Ptr aggregatedPacket, double rxSnr, if (firsthdr.GetAddr1 () == m_self) { - m_receivedAtLeastOneMpdu = true; + if (!vhtSingleMpdu) + { + m_receivedAtLeastOneMpdu = true; + } if (firsthdr.IsAck () || firsthdr.IsBlockAck () || firsthdr.IsBlockAckReq ()) { ReceiveOk ((*n).first, rxSnr, txVector, preamble, ampduSubframe);