diff --git a/RELEASE_NOTES b/RELEASE_NOTES index fe9c72682..66ff9e7fa 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -104,6 +104,7 @@ Bugs fixed - Bug 2717 - Fix mask generation for Ipv4RoutingTableEntry::CreateDefaultRoute - Bug 2722 - 802.11g sends DSSS spectrum signals using CreateOfdmTxPowerSpectralDensity - Bug 2741 - IPv4 fragmentation fails when last fragment have to be re-fragmented. +- Bug 2744 - 802.11n/ac with RTS/CTS is crashing for a large number of nodes Known issues ------------ diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc index 73f2f374f..92c7cb84f 100644 --- a/src/wifi/model/mac-low.cc +++ b/src/wifi/model/mac-low.cc @@ -1546,13 +1546,14 @@ MacLow::ForwardDown (Ptr packet, const WifiMacHeader* hdr, WifiTxV if (delay.IsZero ()) { - NS_LOG_DEBUG ("Sending MPDU as part of A-MPDU"); if (!singleMpdu) { + NS_LOG_DEBUG ("Sending MPDU as part of A-MPDU"); mpdutype = MPDU_IN_AGGREGATE; } else { + NS_LOG_DEBUG ("Sending S-MPDU"); mpdutype = NORMAL_MPDU; } } @@ -2757,7 +2758,7 @@ MacLow::AggregateToAmpdu (Ptr packet, const WifiMacHeader hdr) if (aggregated) { - NS_LOG_DEBUG ("Adding packet with Sequence number " << currentSequenceNumber << " to A-MPDU, packet size = " << newPacket->GetSize () << ", A-MPDU size = " << currentAggregatedPacket->GetSize ()); + NS_LOG_DEBUG ("Adding packet with sequence number " << currentSequenceNumber << " to A-MPDU, packet size = " << newPacket->GetSize () << ", A-MPDU size = " << currentAggregatedPacket->GetSize ()); i++; m_aggregateQueue[tid]->Enqueue (Create (aggPacket, peekedHdr)); } @@ -2842,7 +2843,7 @@ MacLow::AggregateToAmpdu (Ptr packet, const WifiMacHeader hdr) InsertInTxQueue (packet, hdr, tstamp, tid); } } - NS_LOG_DEBUG ("Adding packet with Sequence number " << peekedHdr.GetSequenceNumber () << " to A-MPDU, packet size = " << newPacket->GetSize () << ", A-MPDU size = " << currentAggregatedPacket->GetSize ()); + NS_LOG_DEBUG ("Adding packet with sequence number " << peekedHdr.GetSequenceNumber () << " to A-MPDU, packet size = " << newPacket->GetSize () << ", A-MPDU size = " << currentAggregatedPacket->GetSize ()); i++; isAmpdu = true; if (!m_txParams.MustSendRts ()) @@ -2981,7 +2982,10 @@ MacLow::AggregateToAmpdu (Ptr packet, const WifiMacHeader hdr) currentAggregatedPacket = Create (); edcaIt->second->GetMpduAggregator ()->AggregateSingleMpdu (packet, currentAggregatedPacket); m_aggregateQueue[tid]->Enqueue (Create (packet, peekedHdr)); - + if (m_txParams.MustSendRts ()) + { + InsertInTxQueue (packet, peekedHdr, tstamp, tid); + } if (edcaIt->second->GetBaAgreementExists (hdr.GetAddr1 (), tid)) { edcaIt->second->CompleteAmpduTransfer (peekedHdr.GetAddr1 (), tid);