mirror of https://github.com/PentHertz/srsLTE.git
Discard cells if not found during cel selection
This commit is contained in:
parent
138ec1f8e7
commit
06eba7eb72
|
@ -438,7 +438,7 @@ void rrc::in_sync()
|
|||
// Cell selection criteria Section 5.2.3.2 of 36.304
|
||||
bool rrc::cell_selection_criteria(float rsrp, float rsrq)
|
||||
{
|
||||
return (get_srxlev(rsrp) > 0 || !meas_cells.serving_cell().has_sib3());
|
||||
return std::isnormal(rsrp) && (get_srxlev(rsrp) > 0 || !meas_cells.serving_cell().has_sib3());
|
||||
}
|
||||
|
||||
float rrc::get_srxlev(float Qrxlevmeas)
|
||||
|
|
|
@ -494,7 +494,7 @@ void rrc::rrc_meas::var_meas_cfg::eval_triggers()
|
|||
float Ms = is_rsrp(report_cfg.trigger_quant.value) ? serv_cell->get_rsrp() : serv_cell->get_rsrq();
|
||||
|
||||
if (!std::isnormal(Ms)) {
|
||||
log_h->warning("MEAS: Serving cell Ms=%f invalid when evaluating triggers\n", Ms);
|
||||
log_h->debug("MEAS: Serving cell Ms=%f invalid when evaluating triggers\n", Ms);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -564,7 +564,7 @@ proc_outcome_t rrc::cell_selection_proc::start_cell_selection()
|
|||
}
|
||||
|
||||
// If any of the known cells meets the selection criteria or could not be selected, search again.
|
||||
Info("Could not select any kown cell. Searching new cells\n");
|
||||
Info("Could not select any known cell. Searching new cells\n");
|
||||
if (not rrc_ptr->cell_searcher.launch(&cell_search_fut)) {
|
||||
return proc_outcome_t::error;
|
||||
}
|
||||
|
@ -590,6 +590,7 @@ proc_outcome_t rrc::cell_selection_proc::step_cell_selection(const bool& cs_ret)
|
|||
Error("Could not camp on serving cell.\n");
|
||||
}
|
||||
|
||||
rrc_ptr->meas_cells.serving_cell().set_rsrp(-INFINITY);
|
||||
discard_serving = true; // Discard this cell
|
||||
// Continue to next neighbour cell
|
||||
++neigh_index;
|
||||
|
|
Loading…
Reference in New Issue