--- a/src/lte/model/lte-rlc-um.cc Fri Jan 20 16:34:34 2012 +0100
+++ b/src/lte/model/lte-rlc-um.cc Thu Jan 26 11:30:45 2012 +0100
@@ -229,9 +229,9 @@
// (NO more segments) → exit
// break;
}
- else if ( (firstSegment->GetSize () == nextSegmentSize) || (m_txBuffer.size () == 0) )
+ else if ( (nextSegmentSize - firstSegment->GetSize () <= 2) || (m_txBuffer.size () == 0) )
{
- NS_LOG_LOGIC (" IF firstSegment == NextSegmentSize || txBuffer.size == 0");
+ NS_LOG_LOGIC (" IF nextSegmentSize - firstSegment->GetSize () <= 2 || txBuffer.size == 0");
// Add txBuffer.FirstBuffer to DataField
dataFieldAddedSize = firstSegment->GetSize ();
dataFieldTotalSize += dataFieldAddedSize;
@@ -254,7 +254,7 @@
}
NS_LOG_LOGIC (" Next segment size = " << nextSegmentSize);
- // nextSegmentSize MUST be zero (only if txBuffer is not empty)
+ // nextSegmentSize <= 2 (only if txBuffer is not empty)
// (NO more segments) → exit
// break;
@@ -273,7 +273,7 @@
// LengthIndicator (Next_Segment) = txBuffer.FirstBuffer.length()
rlcHeader.PushLengthIndicator (firstSegment->GetSize ());
- nextSegmentSize -= ((nextSegmentId % 2) ? (2) : (1)) + dataFieldAddedSize; // TODO???
+ nextSegmentSize -= ((nextSegmentId % 2) ? (2) : (1)) + dataFieldAddedSize;
nextSegmentId++;
NS_LOG_LOGIC (" SDUs in TxBuffer = " << m_txBuffer.size ());