From bbfd09b62ecfab6a978a5564f278cfe8715d0da1 Mon Sep 17 00:00:00 2001 From: Francisco Paisana Date: Wed, 26 Sep 2018 17:39:59 +0100 Subject: [PATCH] add the prach fit checks for PRB=6 --- srsenb/src/enb.cc | 24 ++++++++++++++++-------- srsenb/src/mac/scheduler.cc | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/srsenb/src/enb.cc b/srsenb/src/enb.cc index 97a3ca56a..a97382f3e 100644 --- a/srsenb/src/enb.cc +++ b/srsenb/src/enb.cc @@ -217,15 +217,23 @@ bool enb::init(all_args_t *args_) uint32_t prach_freq_offset = rrc_cfg.sibs[1].sib.sib2.rr_config_common_sib.prach_cnfg.prach_cnfg_info.prach_freq_offset; - if (prach_freq_offset + 6 > cell_cfg.nof_prb) { - fprintf(stderr, "Invalid PRACH configuration: frequency offset=%d outside bandwidth limits\n", prach_freq_offset); - return false; - } + if(cell_cfg.nof_prb>10) { + if (prach_freq_offset + 6 > cell_cfg.nof_prb - SRSLTE_MAX(rrc_cfg.cqi_cfg.nof_prb, rrc_cfg.sr_cfg.nof_prb)) { + fprintf(stderr, "Invalid PRACH configuration: frequency offset=%d outside bandwidth limits\n", prach_freq_offset); + return false; + } - if (prach_freq_offset < rrc_cfg.cqi_cfg.nof_prb || prach_freq_offset < rrc_cfg.sr_cfg.nof_prb ) { - fprintf(stderr, "Invalid PRACH configuration: frequency offset=%d lower than CQI offset: %d or SR offset: %d\n", - prach_freq_offset, rrc_cfg.cqi_cfg.nof_prb, rrc_cfg.sr_cfg.nof_prb); - return false; + if (prach_freq_offset < SRSLTE_MAX(rrc_cfg.cqi_cfg.nof_prb, rrc_cfg.sr_cfg.nof_prb)) { + fprintf(stderr, "Invalid PRACH configuration: frequency offset=%d lower than CQI offset: %d or SR offset: %d\n", + prach_freq_offset, rrc_cfg.cqi_cfg.nof_prb, rrc_cfg.sr_cfg.nof_prb); + return false; + } + } else { // 6 PRB case + if (prach_freq_offset+6 > cell_cfg.nof_prb) { + fprintf(stderr, "Invalid PRACH configuration: frequency interval=(%d, %d) does not fit into the eNB PRBs=(0,%d)\n", + prach_freq_offset, prach_freq_offset+6, cell_cfg.nof_prb); + return false; + } } rrc_cfg.inactivity_timeout_ms = args->expert.rrc_inactivity_timer; diff --git a/srsenb/src/mac/scheduler.cc b/srsenb/src/mac/scheduler.cc index 8737d9168..f8f8fdc37 100644 --- a/srsenb/src/mac/scheduler.cc +++ b/srsenb/src/mac/scheduler.cc @@ -796,7 +796,7 @@ int sched::ul_sched(uint32_t tti, srsenb::sched_interface::ul_sched_res_t* sched return 0; } - if (cfg.prach_freq_offset + 6 > cfg.cell.nof_prb) { + if (cfg.prach_freq_offset + 6 > cfg.cell.nof_prb and cfg.cell.nof_prb>10) { fprintf(stderr, "Invalid PRACH configuration: frequency offset=%d outside bandwidth limits\n", cfg.prach_freq_offset); return -1; }