merge
authorNicola Baldo <nbaldo@cttc.es>
Mon, 05 Dec 2011 19:28:47 +0100
changeset 8457 3de427a784a0
parent 8455 0190f8a114ed (current diff)
parent 8456 782a47ccaf2a (diff)
child 8458 ac055246c678
merge
--- a/src/lte/model/lte-rlc-am.cc	Mon Dec 05 19:27:42 2011 +0100
+++ b/src/lte/model/lte-rlc-am.cc	Mon Dec 05 19:28:47 2011 +0100
@@ -130,7 +130,7 @@
   if ( m_retxBufferSize )
     {
       m_retxBuffer.front ().m_pdu->PeekPacketTag (retxQueueHolTimeTag);
-      Time retxQueueHolDelay = now - retxQueueHolTimeTag.GetSenderTimestamp ();
+      retxQueueHolDelay = now - retxQueueHolTimeTag.GetSenderTimestamp ();
     }
 
   LteMacSapProvider::ReportBufferStatusParameters r;
@@ -150,12 +150,9 @@
       r.statusPduSize = 0;
     }
 
-  NS_LOG_LOGIC ("Send ReportBufferStatus");
-  NS_LOG_LOGIC ("Txon queue size = " << r.txQueueSize);
-  NS_LOG_LOGIC ("HOL delay = " << r.txQueueHolDelay);
-  NS_LOG_LOGIC ("Retx queue size = " << r.retxQueueSize);
-  NS_LOG_LOGIC ("HOL delay = " << r.retxQueueHolDelay);
-  NS_LOG_LOGIC ("Status PDU size = " << r.statusPduSize);
+  NS_LOG_INFO ("Send ReportBufferStatus: " << r.txQueueSize << ", " << r.txQueueHolDelay << ", " 
+                                           << r.retxQueueSize << ", " << r.retxQueueHolDelay << ", " 
+                                           << r.statusPduSize);
   m_macSapProvider->ReportBufferStatus (r);
 }
 
@@ -551,11 +548,11 @@
 
       if ( rlcAmHeader.GetResegmentationFlag () == LteRlcAmHeader::SEGMENT )
         {
-          NS_LOG_LOGIC ("AMD PDU segment received");
+          NS_LOG_LOGIC ("AMD PDU segment received ( SN = " << seqNumber << " )");
         }
       else if ( rlcAmHeader.GetResegmentationFlag () == LteRlcAmHeader::PDU )
         {
-          NS_LOG_LOGIC ("AMD PDU received");
+          NS_LOG_LOGIC ("AMD PDU received ( SN = " << seqNumber << " )");
         }
       else
         {
@@ -588,7 +585,7 @@
               if ( m_retxBufferSize )
                 {
                   m_retxBuffer.front ().m_pdu->PeekPacketTag (retxQueueHolTimeTag);
-                  Time retxQueueHolDelay = now - retxQueueHolTimeTag.GetSenderTimestamp ();
+                  retxQueueHolDelay = now - retxQueueHolTimeTag.GetSenderTimestamp ();
                 }
 
               LteMacSapProvider::ReportBufferStatusParameters r;
@@ -608,12 +605,9 @@
                   r.statusPduSize = 0;
                 }
 
-              NS_LOG_LOGIC ("Send ReportBufferStatus");
-              NS_LOG_LOGIC ("Txon queue size = " << r.txQueueSize);
-              NS_LOG_LOGIC ("HOL delay = " << r.txQueueHolDelay);
-              NS_LOG_LOGIC ("Retx queue size = " << r.retxQueueSize);
-              NS_LOG_LOGIC ("HOL delay = " << r.retxQueueHolDelay);
-              NS_LOG_LOGIC ("Status PDU size = " << r.statusPduSize);
+              NS_LOG_INFO ("Send ReportBufferStatus: " << r.txQueueSize << ", " << r.txQueueHolDelay << ", "
+                                                      << r.retxQueueSize << ", " << r.retxQueueHolDelay << ", "
+                                                      << r.statusPduSize );
               m_macSapProvider->ReportBufferStatus (r);
             }
         }
@@ -635,7 +629,6 @@
       NS_LOG_LOGIC ("VR(X)  = " << m_vrX);
       NS_LOG_LOGIC ("VR(MS) = " << m_vrMs);
       NS_LOG_LOGIC ("VR(H)  = " << m_vrH);
-      NS_LOG_LOGIC ("SN = " << seqNumber);
 
       // - if x falls outside of the receiving window; or
       // - if byte segment numbers y to z of the AMD PDU with SN = x have been received before:
@@ -646,7 +639,7 @@
         }
       else
         {
-          NS_LOG_LOGIC ("Place AMD PDU in the reception buffer. SN = " << seqNumber);
+          NS_LOG_LOGIC ("Place AMD PDU in the reception buffer ( SN = " << seqNumber << " )");
           m_rxonBuffer[ seqNumber ].m_byteSegments.push_back (p);
           m_rxonBuffer[ seqNumber ].m_pduComplete = true;
 
@@ -699,7 +692,7 @@
               NS_LOG_LOGIC ("New VR(MR) = " << m_vrMr);
             }
 
-          NS_LOG_LOGIC ("Reassemble and Deliver. SN = " << seqNumber);
+          NS_LOG_LOGIC ("Reassemble and Deliver ( SN = " << seqNumber << " )");
           NS_ASSERT_MSG (m_rxonBuffer[ seqNumber ].m_byteSegments.size () == 1,
                          "Too many segments. PDU Reassembly process didn't work");
           ReassembleAndDeliver (m_rxonBuffer[ seqNumber ].m_byteSegments.front ());
@@ -843,8 +836,15 @@
 
       while (seqNumber < ackSn)
         {
-          m_txedBufferSize -= m_txedBuffer.at (seqNumber)->GetSize ();
-          m_txedBuffer.at (seqNumber) = 0;
+          NS_LOG_INFO ("seqNumber = " << seqNumber);
+          NS_LOG_INFO ("ackSn     = " << ackSn);
+          NS_LOG_INFO ("m_txedBuffer(seqNumber).size = " << m_txedBuffer.size ());
+          if (m_txedBuffer.at (seqNumber))
+            {
+              NS_LOG_INFO ("m_txedBuffer(seqNumber)->GetSize = " << m_txedBuffer.at (seqNumber)->GetSize ());
+              m_txedBufferSize -= m_txedBuffer.at (seqNumber)->GetSize ();
+              m_txedBuffer.at (seqNumber) = 0;
+            }
           seqNumber++;
         }
 
@@ -980,6 +980,7 @@
 
   // Received framing Info
   NS_LOG_LOGIC ("Framing Info = " << (uint16_t)framingInfo);
+  NS_LOG_LOGIC ("m_sdusBuffer = " << m_sdusBuffer.size ());
 
   // Reassemble the list of SDUs (when there is no losses)
   if (!expectedSnLost)