diff --git a/srsue/hdr/stack/rrc/rrc_cell.h b/srsue/hdr/stack/rrc/rrc_cell.h index bfb21ff36..aeb4d9595 100644 --- a/srsue/hdr/stack/rrc/rrc_cell.h +++ b/srsue/hdr/stack/rrc/rrc_cell.h @@ -169,8 +169,8 @@ public: meas_cell_list(); - bool add_neighbour_cell(const phy_meas_t& meas); - bool add_neighbour_cell(unique_cell_t cell); + bool add_meas_cell(const phy_meas_t& meas); + bool add_meas_cell(unique_cell_t cell); void rem_last_neighbour(); unique_cell_t remove_neighbour_cell(uint32_t earfcn, uint32_t pci); void clean_neighbours(); diff --git a/srsue/src/stack/rrc/rrc_cell.cc b/srsue/src/stack/rrc/rrc_cell.cc index b7a7ec361..e8684c681 100644 --- a/srsue/src/stack/rrc/rrc_cell.cc +++ b/srsue/src/stack/rrc/rrc_cell.cc @@ -169,7 +169,7 @@ const cell_t* meas_cell_list::get_neighbour_cell_handle(uint32_t earfcn, uint32_ } // If only neighbour PCI is provided, copy full cell from serving cell -bool meas_cell_list::add_neighbour_cell(const rrc_interface_phy_lte::phy_meas_t& meas) +bool meas_cell_list::add_meas_cell(const rrc_interface_phy_lte::phy_meas_t& meas) { phy_interface_rrc_lte::phy_cell_t phy_cell = {}; phy_cell.earfcn = meas.earfcn; @@ -178,12 +178,12 @@ bool meas_cell_list::add_neighbour_cell(const rrc_interface_phy_lte::phy_meas_t& c.get()->set_rsrp(meas.rsrp); c.get()->set_rsrq(meas.rsrq); c.get()->set_cfo(meas.cfo_hz); - return add_neighbour_cell(std::move(c)); + return add_meas_cell(std::move(c)); } -bool meas_cell_list::add_neighbour_cell(unique_cell_t new_cell) +bool meas_cell_list::add_meas_cell(unique_cell_t cell) { - bool ret = add_neighbour_cell_unsorted(std::move(new_cell)); + bool ret = add_neighbour_cell_unsorted(std::move(cell)); if (ret) { sort_neighbour_cells(); } @@ -199,8 +199,9 @@ bool meas_cell_list::add_neighbour_cell_unsorted(unique_cell_t new_cell) } if (is_same_cell(serving_cell(), *new_cell)) { - log_h->error("Added neighbour cell %s is equal to serving cell\n", new_cell->to_string().c_str()); - return false; + log_h->info("Added neighbour cell %s is serving cell\n", new_cell->to_string().c_str()); + serv_cell = std::move(new_cell); + return true; } // If cell exists, update RSRP value @@ -344,7 +345,7 @@ int meas_cell_list::set_serving_cell(phy_interface_rrc_lte::phy_cell_t phy_cell, // Re-add old serving cell to list of neighbours if (old_serv_cell->is_valid() and not is_same_cell(phy_cell, *old_serv_cell) and not discard_serving) { - if (not add_neighbour_cell(std::move(old_serv_cell))) { + if (not add_meas_cell(std::move(old_serv_cell))) { log_h->info("Serving cell not added to list of neighbours. Worse than current neighbours\n"); } } @@ -376,7 +377,7 @@ bool meas_cell_list::process_new_cell_meas(const std::vector& filter_meas(*c, m); } else { // or just set initial value - neighbour_added |= add_neighbour_cell(m); + neighbour_added |= add_meas_cell(m); } if (is_serving_cell) { diff --git a/srsue/src/stack/rrc/rrc_procedures.cc b/srsue/src/stack/rrc/rrc_procedures.cc index ed97e299e..b44804da4 100644 --- a/srsue/src/stack/rrc/rrc_procedures.cc +++ b/srsue/src/stack/rrc/rrc_procedures.cc @@ -121,7 +121,7 @@ proc_outcome_t rrc::cell_search_proc::handle_cell_found(const phy_interface_rrc_ Info("Cell found in this frequency. Setting new serving cell EARFCN=%d PCI=%d ...\n", new_cell.earfcn, new_cell.pci); // Create a cell with NaN RSRP. Will be updated by new_phy_meas() during SIB search. - if (not rrc_ptr->meas_cells.add_neighbour_cell(unique_cell_t(new cell_t(new_cell)))) { + if (not rrc_ptr->meas_cells.add_meas_cell(unique_cell_t(new cell_t(new_cell)))) { Error("Could not add new found cell\n"); return proc_outcome_t::error; }