TS36.322 5.2.2.3 consider the AMD PDU with SN=VT(S) - 1 for retransmission

This commit is contained in:
Brett Levasseur
2013-12-10 18:11:08 +01:00
parent dbffc3a3ee
commit dff5e13d77

View File

@@ -1727,6 +1727,27 @@ LteRlcAm::ExpirePollRetransmitTimer (void)
NS_LOG_LOGIC ("statusPduRequested = " << m_statusPduRequested);
DoReportBufferStatus ();
if ( m_txonBufferSize == 0 && m_retxBufferSize == 0 )
{
NS_LOG_INFO ("txonBuffer and retxBuffer empty. Move PDUs up to = " << m_vtS.GetValue () - 1 << " to retxBuffer");
uint16_t sn = 0;
for ( sn = m_vtA.GetValue(); sn < m_vtS.GetValue (); sn++ )
{
bool pduAvailable = m_txedBuffer[ sn ]->GetSize () > 0;
if ( pduAvailable )
{
m_retxBuffer.at (sn).m_pdu = m_txedBuffer.at (sn)->Copy ();
m_retxBuffer.at (sn).m_retxCount = 0;
m_retxBufferSize += m_retxBuffer.at (sn).m_pdu->GetSize ();
m_txedBufferSize -= m_txedBuffer.at (sn)->GetSize ();
m_txedBuffer.at (sn) = 0;
}
}
}
}