src/wifi/model/edca-txop-n.cc
changeset 11663 12363bc31764
parent 11628 243b71de25a0
--- a/src/wifi/model/edca-txop-n.cc	Fri Sep 11 21:50:40 2015 +0200
+++ b/src/wifi/model/edca-txop-n.cc	Mon Sep 14 19:07:10 2015 +0200
@@ -669,7 +669,7 @@
   if (!NeedRtsRetransmission ())
     {
       NS_LOG_DEBUG ("Cts Fail");
-      m_currentPacket = 0;
+      bool resetCurrentPacket = true;
       m_stationManager->ReportFinalRtsFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
       if (!m_txFailedCallback.IsNull ())
         {
@@ -711,9 +711,14 @@
               hdr.SetNoMoreFragments ();
               m_currentPacket = request.bar;
               m_currentHdr = hdr;
+              resetCurrentPacket = false;
             }
         }
       //to reset the dcf.
+      if (resetCurrentPacket == true)
+        {
+          m_currentPacket = 0;
+        }
       m_dcf->ResetCw ();
     }
   else
@@ -817,8 +822,7 @@
     {
       NS_LOG_DEBUG ("Ack Fail");
       m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
-      //to reset the dcf.
-      m_currentPacket = 0;
+      bool resetCurrentPacket = true;
       if (!m_txFailedCallback.IsNull ())
         {
           m_txFailedCallback (m_currentHdr);
@@ -859,8 +863,14 @@
               hdr.SetNoMoreFragments ();
               m_currentPacket = request.bar;
               m_currentHdr = hdr;
+              resetCurrentPacket = false;
             }
         }
+      //to reset the dcf.
+      if (resetCurrentPacket == true)
+        {
+          m_currentPacket = 0;
+        }
       m_dcf->ResetCw ();
     }
   else