Hi everybody.
However in the following code (which is part of RecvRaResponse in LteUeMac class)
const uint8_t lc0Lcid = 0;
std::map <uint8_t, LcInfo>::iterator lc0InfoIt = m_lcInfoMap.find (lc0Lcid);
NS_ASSERT (lc0InfoIt != m_lcInfoMap.end ());
std::map <uint8_t, LteMacSapProvider::ReportBufferStatusParameters>::iterator lc0BsrIt
= m_ulBsrReceived.find (lc0Lcid);
if ((lc0BsrIt != m_ulBsrReceived.end ())
&& (lc0BsrIt->second.txQueueSize > 0))
{
NS_ASSERT_MSG (raResponse.m_grant.m_tbSize > lc0BsrIt->second.txQueueSize,
"segmentation of Message 3 is not allowed");
lc0InfoIt->second.macSapUser->NotifyTxOpportunity (raResponse.m_grant.m_tbSize, 0, 0);
lc0BsrIt->second.txQueueSize = 0;
}
the condition lc0BsrIt != m_ulBsrReceived.end () is always false (at least in my observations) and the NotifyTxOpportunity is therefore never called. Thus the DoNotifyTxOpportunity of LteRlcTm is never called after the reception of RAR.
Is it a problem of my scenario (which is lena-simple with 5 UEs and 1 eNB) or is it a bug? Can someone explain me how m_ulBsrReceived is filled?