SRSUE: Check cell is valid

master
Xavier Arteaga 5 years ago committed by Xavier Arteaga
parent 4be4f56333
commit e89dde0f35

@ -283,7 +283,10 @@ bool sync::cell_select(phy_interface_rrc_lte::phy_cell_t* new_cell)
log_h->error("Cell Select: Invalid cell. ID=%d, PRB=%d, ports=%d\n", cell.id, cell.nof_prb, cell.nof_ports);
return ret;
}
Info("Cell Select: Starting cell selection for PCI=%d, EARFCN=%d\n", new_cell->cell.id, new_cell->earfcn);
Info("Cell Select: Starting cell selection for PCI=%d, n_prb=%d, EARFCN=%d\n",
new_cell->cell.id,
new_cell->cell.nof_prb,
new_cell->earfcn);
}
// Wait for any pending PHICH
@ -453,7 +456,15 @@ void sync::run_thread()
// Force decode MIB if required
if (force_camping_sfn_sync) {
uint32_t _tti = 0;
sync::sfn_sync::ret_code ret = sfn_p.decode_mib(&cell, &_tti, buffer[0], mib);
srslte_cell_t temp_cell = {};
sync::sfn_sync::ret_code ret = sfn_p.decode_mib(&temp_cell, &_tti, buffer[0], mib);
if (srslte_cell_isvalid(&temp_cell)) {
cell = temp_cell;
} else {
Error("Invalid cell found PCI=%d, n_prb=%d;\n", temp_cell.id, temp_cell.nof_prb);
log_h->console("Invalid cell found PCI=%d, n_prb=%d;\n", temp_cell.id, temp_cell.nof_prb);
}
if (ret == sfn_sync::SFN_FOUND) {
// Force tti
@ -882,6 +893,11 @@ bool sync::set_frequency()
void sync::set_sampling_rate()
{
float new_srate = (float)srslte_sampling_freq_hz(cell.nof_prb);
if (new_srate < 0.0) {
Error("Invalid sampling rate for %d PRBs. keeping same.\n", cell.nof_prb);
return;
}
current_sflen = (uint32_t)SRSLTE_SF_LEN_PRB(cell.nof_prb);
if (current_srate != new_srate || srate_mode != SRATE_CAMP) {
current_srate = new_srate;

Loading…
Cancel
Save