mirror of https://github.com/PentHertz/srsLTE.git
bugfix, s1ap: allow source enb to release old UE ctxt in case a connectionRequest arrives with repeated m-TMSI
This commit is contained in:
parent
52247a46e5
commit
0996e50dce
|
@ -392,7 +392,7 @@ void rrc::ue::handle_rrc_con_req(rrc_conn_request_s* msg)
|
|||
if (user.first != rnti && user.second->has_tmsi && user.second->mmec == mmec && user.second->m_tmsi == m_tmsi) {
|
||||
parent->logger.info("RRC connection request: UE context already exists. M-TMSI=%d", m_tmsi);
|
||||
user.second->state = RRC_STATE_IDLE; // Set old rnti to IDLE so that enb doesn't send RRC Connection Release
|
||||
parent->s1ap->user_release(user.first, asn1::s1ap::cause_radio_network_opts::radio_conn_with_ue_lost);
|
||||
parent->s1ap->user_release(user.first, asn1::s1ap::cause_radio_network_opts::interaction_with_other_proc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1402,10 +1402,13 @@ bool s1ap::ue::send_uectxtreleaserequest(const cause_c& cause)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (ts1_reloc_overall.is_running()) {
|
||||
if (ts1_reloc_overall.is_running() and cause.type().value == asn1::s1ap::cause_c::types_opts::radio_network and
|
||||
(cause.radio_network().value == asn1::s1ap::cause_radio_network_opts::user_inactivity or
|
||||
cause.radio_network().value == asn1::s1ap::cause_radio_network_opts::radio_conn_with_ue_lost)) {
|
||||
logger.info("Ignoring UE context release request from lower layers for UE rnti=0x%x performing S1 Handover.",
|
||||
ctxt.rnti);
|
||||
// leave the UE context alive until ts1_reloc_overall expiry
|
||||
// Leave the UE context alive during S1 Handover until ts1_reloc_overall expiry. Ignore releases due to
|
||||
// UE inactivity or RLF
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue