src/wifi/model/mac-low.cc
changeset 11535 e9812cb35cef
parent 11479 a3dcf66928f3
child 11543 ec5dd7666b77
--- a/src/wifi/model/mac-low.cc	Wed Jul 22 17:10:15 2015 -0700
+++ b/src/wifi/model/mac-low.cc	Thu Jul 23 21:55:17 2015 +0200
@@ -3046,13 +3046,16 @@
   std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt = m_edcaListeners.find (ac);
   NS_ASSERT (listenerIt != m_edcaListeners.end ());
   queue = listenerIt->second->GetQueue ();
+  
+  Ptr<const Packet> peekedPacket = queue->DequeueByTidAndAddress (hdr, hdr->GetQosTid (),
+                                                                  WifiMacHeader::ADDR1, hdr->GetAddr1 ());
 
   listenerIt->second->GetMsduAggregator ()->Aggregate (packet, currentAmsduPacket,
                                                        listenerIt->second->GetSrcAddressForAggregation (*hdr),
                                                        listenerIt->second->GetDestAddressForAggregation (*hdr));
 
-  Ptr<const Packet> peekedPacket = queue->PeekByTidAndAddress (hdr, hdr->GetQosTid (),
-                                                               WifiMacHeader::ADDR1, hdr->GetAddr1 (), tstamp);
+  peekedPacket = queue->PeekByTidAndAddress (hdr, hdr->GetQosTid (),
+                                             WifiMacHeader::ADDR1, hdr->GetAddr1 (), tstamp);
   while (peekedPacket != 0)
     {
       tempPacket = currentAmsduPacket;
@@ -3083,6 +3086,7 @@
     }
   else
     {
+      queue->PushFront (packet, *hdr);
       return 0;
     }
 }