Add estimated size of RLC headers in queue size
authorManuel Requena <manuel.requena@cttc.es>
Fri, 16 Sep 2011 17:44:11 +0200
changeset 8377 3ae363919ea3
parent 8376 97ba55f3d3b4
child 8379 5e382bc62350
child 8381 413d1934c6a8
Add estimated size of RLC headers in queue size
src/lte/model/lte-rlc-um.cc
--- a/src/lte/model/lte-rlc-um.cc	Fri Sep 16 11:45:26 2011 +0200
+++ b/src/lte/model/lte-rlc-um.cc	Fri Sep 16 17:44:11 2011 +0200
@@ -82,10 +82,11 @@
   tag.SetStatus (LteRlcSduStatusTag::FULL_SDU);
   p->AddPacketTag (tag);
 
+  NS_LOG_LOGIC ("Tx Buffer: New packet added");
   m_txBuffer.push_back (p);
   m_txBufferSize += p->GetSize ();
-  NS_LOG_LOGIC ("Tx Buffer: New packet added");
   NS_LOG_LOGIC ("NumOfBuffers = " << m_txBuffer.size() );
+  NS_LOG_LOGIC ("txBufferSize = " << m_txBufferSize);
 
   /** Report Buffer Status */
 
@@ -96,7 +97,7 @@
   LteMacSapProvider::ReportBufferStatusParameters r;
   r.rnti = m_rnti;
   r.lcid = m_lcid;
-  r.txQueueSize = m_txBufferSize;
+  r.txQueueSize = m_txBufferSize + 2 * m_txBuffer.size (); // Data in tx queue + estimated headers size
   r.txQueueHolDelay = holDelay.GetMilliSeconds () ;
   r.retxQueueSize = 0;
   r.retxQueueHolDelay = 0;
@@ -150,6 +151,7 @@
   NS_LOG_LOGIC ("Remove SDU from TxBuffer");
   Ptr<Packet> firstSegment = (*(m_txBuffer.begin ()))->Copy ();
   m_txBufferSize -= (*(m_txBuffer.begin()))->GetSize ();
+  NS_LOG_LOGIC ("txBufferSize      = " << m_txBufferSize );
   m_txBuffer.erase (m_txBuffer.begin ());
 
   while ( firstSegment && (firstSegment->GetSize () > 0) && (nextSegmentSize > 0) )
@@ -192,6 +194,7 @@
           NS_LOG_LOGIC ("    TX buffer: Give back the remaining segment");
           NS_LOG_LOGIC ("    TX buffers = " << m_txBuffer.size ());
           NS_LOG_LOGIC ("    Front buffer size = " << (*(m_txBuffer.begin()))->GetSize ());
+          NS_LOG_LOGIC ("    txBufferSize = " << m_txBufferSize );
 
           // Add Segment to Data field
           dataFieldAddedSize = newSegment->GetSize ();
@@ -270,7 +273,9 @@
 
           // (more segments)
           firstSegment = (*(m_txBuffer.begin ()))->Copy ();
+          m_txBufferSize -= (*(m_txBuffer.begin()))->GetSize ();
           m_txBuffer.erase (m_txBuffer.begin ());
+          NS_LOG_LOGIC ("        txBufferSize = " << m_txBufferSize );
         }
 
     }