mirror of https://github.com/PentHertz/srsLTE.git
Added handling of MSG3 timout exipiry in activity_timer_expired(). Avoid notifying S1AP in that case.
This commit is contained in:
parent
37699f2215
commit
8c7aed1f81
|
@ -68,7 +68,7 @@ public:
|
||||||
enum class conn_request_result_t { success, error_mme_not_connected, error_unknown_rnti };
|
enum class conn_request_result_t { success, error_mme_not_connected, error_unknown_rnti };
|
||||||
|
|
||||||
/// Possible causes for the RRC to transition to the idle state.
|
/// Possible causes for the RRC to transition to the idle state.
|
||||||
enum class rrc_idle_transition_cause { release, timeout, radio_conn_with_ue_lost };
|
enum class rrc_idle_transition_cause { release, timeout, radio_conn_with_ue_lost, msg3_timeout, unspecified };
|
||||||
|
|
||||||
void handle_rrc_con_req(asn1::rrc::rrc_conn_request_s* msg);
|
void handle_rrc_con_req(asn1::rrc::rrc_conn_request_s* msg);
|
||||||
void handle_rrc_con_setup_complete(asn1::rrc::rrc_conn_setup_complete_s* msg, srsran::unique_byte_buffer_t pdu);
|
void handle_rrc_con_setup_complete(asn1::rrc::rrc_conn_setup_complete_s* msg, srsran::unique_byte_buffer_t pdu);
|
||||||
|
|
|
@ -126,12 +126,20 @@ void rrc::ue::activity_timer_expired(activity_timeout_type_t type)
|
||||||
ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX)->cell_common->enb_cc_idx,
|
ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX)->cell_common->enb_cc_idx,
|
||||||
static_cast<unsigned>(rrc_idle_transition_cause::radio_conn_with_ue_lost),
|
static_cast<unsigned>(rrc_idle_transition_cause::radio_conn_with_ue_lost),
|
||||||
rnti);
|
rnti);
|
||||||
|
} else if (type == MSG3_RX_TIMEOUT) {
|
||||||
|
// MSG3 timeout, no need to notify S1AP, just remove UE
|
||||||
|
parent->rem_user_thread(rnti);
|
||||||
|
event_logger::get().log_rrc_disconnect(ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX)->cell_common->enb_cc_idx,
|
||||||
|
static_cast<unsigned>(rrc_idle_transition_cause::msg3_timeout),
|
||||||
|
rnti);
|
||||||
} else {
|
} else {
|
||||||
parent->s1ap->user_release(rnti, asn1::s1ap::cause_radio_network_opts::unspecified);
|
// Unhandled activity timeout, just remove UE and log an error
|
||||||
event_logger::get().log_rrc_disconnect(
|
parent->rem_user_thread(rnti);
|
||||||
ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX)->cell_common->enb_cc_idx,
|
event_logger::get().log_rrc_disconnect(ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX)->cell_common->enb_cc_idx,
|
||||||
static_cast<unsigned>(rrc_idle_transition_cause::radio_conn_with_ue_lost),
|
static_cast<unsigned>(rrc_idle_transition_cause::msg3_timeout),
|
||||||
rnti);
|
rnti);
|
||||||
|
parent->logger.error(
|
||||||
|
"Unhandled reason for activity timer expiration. rnti=0x%x, cause %d", rnti, static_cast<unsigned>(type));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (rnti != SRSRAN_MRNTI) {
|
if (rnti != SRSRAN_MRNTI) {
|
||||||
|
|
Loading…
Reference in New Issue