RLF on separate thread to avoid blocking in RLC AM RLF

master
Ismael Gomez 7 years ago
parent af7a7d4ceb
commit abea371180

@ -440,6 +440,7 @@ private:
bool initiated;
bool ho_start;
bool go_idle;
bool go_rlf;
// Measurements sub-class
class rrc_meas {

@ -57,6 +57,8 @@ rrc::rrc()
neighbour_cells.reserve(NOF_NEIGHBOUR_CELLS);
initiated = false;
running = false;
go_idle = false;
go_rlf = false;
}
rrc::~rrc()
@ -249,6 +251,11 @@ void rrc::run_tti(uint32_t tti) {
go_idle = false;
leave_connected();
}
if (go_rlf) {
go_rlf = false;
// Initiate connection re-establishment procedure after RLF
send_con_restablish_request(LIBLTE_RRC_CON_REEST_REQ_CAUSE_OTHER_FAILURE);
}
break;
default:break;
}
@ -1066,12 +1073,10 @@ int rrc::find_neighbour_cell(uint32_t earfcn, uint32_t pci) {
*/
void rrc::radio_link_failure() {
// TODO: Generate and store failure report
rrc_log->warning("Detected Radio-Link Failure\n");
rrc_log->console("Warning: Detected Radio-Link Failure\n");
if (state == RRC_STATE_CONNECTED) {
// Initiate connection re-establishment procedure
send_con_restablish_request(LIBLTE_RRC_CON_REEST_REQ_CAUSE_OTHER_FAILURE);
go_rlf = true;
}
}

Loading…
Cancel
Save