Hello Tommaso,
Thank you for your reply. After digging this issue more, I have found that SchedDlTriggerReq function called with wrong "dlparams" parameters ie. passed information about the UE which has already been released from eNB. However, problem is not happening for the UEs released due to RLF or other reasons. Seems like only the HandoverTO (late or early HO timeout) reason is causing this issue.
After checking it in more detail, I have found that SchedDlTriggerReq is called in lte-enb-mac.cc in LteEnbMac::DoSubframeIndication function. After adding basic if-check as below, the problem was resolved for all types of schedulers. I am sharing my WA solution for those reading this and need urgent fix.
if (m_dlInfoListReceived.size () > 0)
{
// additional check to make sure released UE will not be tried to be scheduled
std::vector<DlInfoListElement_s>::iterator it1;
for (it1 = m_dlInfoListReceived.begin(); it1 != m_dlInfoListReceived.end();)
{
if (m_rlcAttached.find(it1->m_rnti) == m_rlcAttached.end())
{
NS_LOG_UNCOND (this << " WARNING! Deleted from DL info list because UE is not attached!! rnti =" << it1->m_rnti);
it1 = m_dlInfoListReceived.erase(it1);
}
else
{
++it1;
}
}
dlparams.m_dlInfoList = m_dlInfoListReceived;
// empty local buffer
m_dlInfoListReceived.clear ();
}
m_schedSapProvider->SchedDlTriggerReq (dlparams);
I will anyway create an issue for LTE experts to check it in more detail. They will probably provide the most appropriate solution.
Cagri