From d64fbedb9dbe14c3fde6722fbedb3e9de150a2a5 Mon Sep 17 00:00:00 2001 From: Manuel Requena Date: Fri, 16 Sep 2011 17:44:11 +0200 Subject: [PATCH] Add estimated size of RLC headers in queue size --- src/lte/model/lte-rlc-um.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lte/model/lte-rlc-um.cc b/src/lte/model/lte-rlc-um.cc index 233fc8b6b..5c8fa54fe 100644 --- a/src/lte/model/lte-rlc-um.cc +++ b/src/lte/model/lte-rlc-um.cc @@ -82,10 +82,11 @@ LteRlcUm::DoTransmitPdcpPdu (Ptr p) 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 @@ LteRlcUm::DoTransmitPdcpPdu (Ptr p) 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 @@ LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes) NS_LOG_LOGIC ("Remove SDU from TxBuffer"); Ptr 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 @@ LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes) 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 @@ LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes) // (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 ); } }