lte: Handle handover leaving timeout

Upon HO leaving timeout, the source eNB sends the HO cancel message to the target eNB, and releases the resources towards a UE by sending the RRC connection release msg in an ideal way irrespective of the RRC protocol used; and also requests the core network to delete that UE.
This commit is contained in:
ZorazeAli
2019-03-26 08:38:47 +01:00
committed by Tom Henderson
parent 4de9269e2e
commit 58c493e92b
2 changed files with 11 additions and 3 deletions

View File

@@ -2551,7 +2551,15 @@ LteEnbRrc::HandoverLeavingTimeout (uint16_t rnti)
"HandoverLeavingTimeout in unexpected state " << ToString (GetUeManager (rnti)->GetState ()));
m_rrcTimeoutTrace (GetUeManager (rnti)->GetImsi (), rnti,
ComponentCarrierToCellId (GetUeManager (rnti)->GetComponentCarrierId ()), "HandoverLeavingTimeout");
RemoveUe (rnti);
/**
* Send HO cancel msg to the target eNB and release the RRC connection
* with the UE and also delete UE context at the source eNB and bearer
* info at SGW and PGW.
*/
Ptr<UeManager> ueManger = GetUeManager (rnti);
EpcX2Sap::HandoverCancelParams msg = ueManger->BuildHoCancelMsg ();
m_x2SapProvider->SendHandoverCancel (msg);
ueManger->SendRrcConnectionRelease ();
}
void

View File

@@ -1199,9 +1199,9 @@ LteUeRrc::DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg)
m_lastRrcTransactionIdentifier = msg.rrcTransactionIdentifier;
//release resources at UE
if (!m_rlfDetected)
if (!m_leaveConnectedMode)
{
m_rlfDetected = true;
m_leaveConnectedMode = true;
SwitchToState (CONNECTED_PHY_PROBLEM);
m_rrcSapUser->SendIdealUeContextRemoveRequest (m_rnti);
m_asSapUser->NotifyConnectionReleased ();