mirror of https://github.com/PentHertz/srsLTE.git
Look only for required SIBs
This commit is contained in:
parent
589e569ce9
commit
ebea1cd7fa
|
@ -447,8 +447,6 @@ private:
|
||||||
uint32_t sib_start_tti(uint32_t tti, uint32_t period, uint32_t offset, uint32_t sf);
|
uint32_t sib_start_tti(uint32_t tti, uint32_t period, uint32_t offset, uint32_t sf);
|
||||||
const static int SIB_SEARCH_TIMEOUT_MS = 1000;
|
const static int SIB_SEARCH_TIMEOUT_MS = 1000;
|
||||||
|
|
||||||
const static uint32_t NOF_REQUIRED_SIBS = 13; // SIB1, SIB2 and SIB3
|
|
||||||
|
|
||||||
bool initiated;
|
bool initiated;
|
||||||
bool ho_start;
|
bool ho_start;
|
||||||
bool go_idle;
|
bool go_idle;
|
||||||
|
|
|
@ -41,6 +41,8 @@ using namespace srslte;
|
||||||
|
|
||||||
namespace srsue {
|
namespace srsue {
|
||||||
|
|
||||||
|
const static uint32_t NOF_REQUIRED_SIBS = 4;
|
||||||
|
const static uint32_t required_sibs[NOF_REQUIRED_SIBS] = {0,1,2,12}; // SIB1, SIB2, SIB3 and SIB13 (eMBMS)
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
Base functions
|
Base functions
|
||||||
|
@ -543,24 +545,25 @@ bool rrc::configure_serving_cell() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
serving_cell->has_mcch = false;
|
serving_cell->has_mcch = false;
|
||||||
// Apply configurations if already retrieved SIB2
|
// Obtain the SIBs if not available or apply the configuration if available
|
||||||
if (serving_cell->has_sib2()) {
|
|
||||||
apply_sib2_configs(serving_cell->sib2ptr());
|
|
||||||
}
|
|
||||||
// Obtain the rest of required SIBs (configuration is applied when received)
|
|
||||||
for (uint32_t i = 0; i < NOF_REQUIRED_SIBS; i++) {
|
for (uint32_t i = 0; i < NOF_REQUIRED_SIBS; i++) {
|
||||||
if (!serving_cell->has_sib(i)) {
|
if (!serving_cell->has_sib(required_sibs[i])) {
|
||||||
rrc_log->info("Cell has no SIB%d. Obtaining SIB%d\n", i+1, i+1);
|
rrc_log->info("Cell has no SIB%d. Obtaining SIB%d\n", required_sibs[i]+1, required_sibs[i]+1);
|
||||||
if (!si_acquire(i)) {
|
if (!si_acquire(required_sibs[i])) {
|
||||||
rrc_log->info("Timeout while acquiring SIB%d\n", i+1);
|
rrc_log->info("Timeout while acquiring SIB%d\n", required_sibs[i]+1);
|
||||||
if (i < 2) {
|
if (required_sibs[i] < 2) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rrc_log->info("Cell has SIB%d\n", i+1);
|
rrc_log->info("Cell has SIB%d\n", required_sibs[i]+1);
|
||||||
if(i+1 == 13){
|
switch(required_sibs[i]) {
|
||||||
apply_sib13_configs(serving_cell->sib13ptr());
|
case 1:
|
||||||
|
apply_sib2_configs(serving_cell->sib2ptr());
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
apply_sib13_configs(serving_cell->sib13ptr());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -768,7 +771,7 @@ bool rrc::si_acquire(uint32_t sib_index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
rrc_log->error("Could not find SIB%d scheduling in SIB1\n", sib_index+1);
|
rrc_log->info("Could not find SIB%d scheduling in SIB1\n", sib_index+1);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue