mirror of https://github.com/PentHertz/srsLTE.git
Added check for serving PCI target HO
This commit is contained in:
parent
082da2f7b6
commit
4c2b6fbd29
|
@ -1118,15 +1118,20 @@ void rrc::handle_rrc_con_reconfig(uint32_t lcid, LIBLTE_RRC_CONNECTION_RECONFIGU
|
|||
|
||||
if (reconfig->mob_ctrl_info_present) {
|
||||
|
||||
rrc_log->info("Received HO command to target PCell=%d\n", reconfig->mob_ctrl_info.target_pci);
|
||||
rrc_log->console("Received HO command to target PCell=%d, NCC=%d\n",
|
||||
reconfig->mob_ctrl_info.target_pci, reconfig->sec_cnfg_ho.intra_lte.next_hop_chaining_count);
|
||||
if (reconfig->mob_ctrl_info.target_pci == phy->get_current_pci()) {
|
||||
rrc_log->warning("Received HO command to own cell\n");
|
||||
send_rrc_con_reconfig_complete(pdu);
|
||||
} else {
|
||||
rrc_log->info("Received HO command to target PCell=%d\n", reconfig->mob_ctrl_info.target_pci);
|
||||
rrc_log->console("Received HO command to target PCell=%d, NCC=%d\n",
|
||||
reconfig->mob_ctrl_info.target_pci, reconfig->sec_cnfg_ho.intra_lte.next_hop_chaining_count);
|
||||
|
||||
// store mobilityControlInfo
|
||||
memcpy(&mob_reconf, reconfig, sizeof(LIBLTE_RRC_CONNECTION_RECONFIGURATION_STRUCT));
|
||||
pending_mob_reconf = true;
|
||||
// store mobilityControlInfo
|
||||
memcpy(&mob_reconf, reconfig, sizeof(LIBLTE_RRC_CONNECTION_RECONFIGURATION_STRUCT));
|
||||
pending_mob_reconf = true;
|
||||
|
||||
state = RRC_STATE_HO_PREPARE;
|
||||
state = RRC_STATE_HO_PREPARE;
|
||||
}
|
||||
|
||||
} else {
|
||||
// Section 5.3.5.3
|
||||
|
@ -2741,16 +2746,14 @@ void rrc::rrc_meas::parse_meas_config(LIBLTE_RRC_MEAS_CONFIG_STRUCT *cfg)
|
|||
void rrc::rrc_meas::update_phy()
|
||||
{
|
||||
phy->meas_reset();
|
||||
if (pcell_measurement.ms[RSRP] < s_measure_value || !s_measure_enabled) {
|
||||
for(std::map<uint32_t, meas_t>::iterator iter=active.begin(); iter!=active.end(); ++iter) {
|
||||
meas_t m = iter->second;
|
||||
meas_obj_t o = objects[m.object_id];
|
||||
// Instruct PHY to look for neighbour cells on this frequency
|
||||
phy->meas_start(o.earfcn);
|
||||
for(std::map<uint32_t, meas_cell_t>::iterator iter=o.cells.begin(); iter!=o.cells.end(); ++iter) {
|
||||
// Instruct PHY to look for cells IDs on this frequency
|
||||
phy->meas_start(o.earfcn, iter->second.pci);
|
||||
}
|
||||
for(std::map<uint32_t, meas_t>::iterator iter=active.begin(); iter!=active.end(); ++iter) {
|
||||
meas_t m = iter->second;
|
||||
meas_obj_t o = objects[m.object_id];
|
||||
// Instruct PHY to look for neighbour cells on this frequency
|
||||
phy->meas_start(o.earfcn);
|
||||
for(std::map<uint32_t, meas_cell_t>::iterator iter=o.cells.begin(); iter!=o.cells.end(); ++iter) {
|
||||
// Instruct PHY to look for cells IDs on this frequency
|
||||
phy->meas_start(o.earfcn, iter->second.pci);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue