in case of RA problem during handover, the UE cannot trigger RLF. It has to let t304 expire, which will then trigger the reestablishment procedure with the right cause

This commit is contained in:
Francisco Paisana 2020-08-28 11:36:05 +01:00
parent cbac98c89e
commit aed9120458
2 changed files with 9 additions and 6 deletions

View File

@ -585,7 +585,9 @@ void rrc::release_pucch_srs()
void rrc::ra_problem()
{
radio_link_failure();
if (not t304.is_running()) {
radio_link_failure();
}
}
void rrc::max_retx_attempted()
@ -622,7 +624,8 @@ void rrc::timer_expired(uint32_t timeout_id)
} else if (timeout_id == t300.id()) {
// Do nothing, handled in connection_request()
} else if (timeout_id == t304.id()) {
rrc_log->console("Timer T304 expired: Handover failed\n");
rrc_log->console("Timer t304 expired: Handover failed\n");
rrc_log->info("Timer t304 expired: Handover failed\n");
ho_failed();
} else {
rrc_log->error("Timeout from unknown timer id %d\n", timeout_id);

View File

@ -1518,11 +1518,11 @@ srslte::proc_outcome_t rrc::ho_proc::react(ra_completed_ev ev)
}
bool ho_successful = ev.success and not sec_cfg_failed;
// TS 36.331, sec. 5.3.5.4, last "1>"
rrc_ptr->t304.stop();
rrc_ptr->apply_rr_config_dedicated_on_ho_complete(recfg_r8.rr_cfg_ded);
if (ho_successful) {
// TS 36.331, sec. 5.3.5.4, last "1>"
rrc_ptr->t304.stop();
rrc_ptr->apply_rr_config_dedicated_on_ho_complete(recfg_r8.rr_cfg_ded);
if (not rrc_ptr->measurements->parse_meas_config(&recfg_r8, true, ho_src_cell.get_earfcn())) {
Error("Parsing measurementConfig. TODO: Send ReconfigurationReject\n");
ho_successful = false;