From b14e75218d27c5224db67ad9f03caef34b202fb3 Mon Sep 17 00:00:00 2001 From: Francisco Date: Tue, 19 Oct 2021 16:42:55 +0100 Subject: [PATCH] lte,enb,rrc: avoid creating scells for UEs whose release < 10 --- srsenb/src/stack/mac/sched_ue_ctrl/sched_ue_cell.cc | 8 ++++++-- srsenb/src/stack/rrc/rrc_ue.cc | 12 ++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/srsenb/src/stack/mac/sched_ue_ctrl/sched_ue_cell.cc b/srsenb/src/stack/mac/sched_ue_ctrl/sched_ue_cell.cc index 355059ee1..95b65d1cc 100644 --- a/srsenb/src/stack/mac/sched_ue_ctrl/sched_ue_cell.cc +++ b/srsenb/src/stack/mac/sched_ue_ctrl/sched_ue_cell.cc @@ -112,8 +112,12 @@ void sched_ue_cell::set_ue_cfg(const sched_interface::ue_cfg_t& ue_cfg_) case cc_st::active: if (ue_cc_idx < 0 or not ue_cfg->supported_cc_list[ue_cc_idx].active) { cc_state_ = cc_st::deactivating; - logger.info( - "SCHED: Deactivating SCell, rnti=0x%x, cc=%d, SCellIndex=%d...", rnti, cell_cfg->enb_cc_idx, ue_cc_idx); + if (ue_cc_idx > 0) { + logger.info( + "SCHED: Deactivating SCell, rnti=0x%x, cc=%d, SCellIndex=%d...", rnti, cell_cfg->enb_cc_idx, ue_cc_idx); + } else { + logger.info("SCHED: Deactivating previous PCell, rnti=0x%x, cc=%d...", rnti, cell_cfg->enb_cc_idx); + } } break; case cc_st::deactivating: diff --git a/srsenb/src/stack/rrc/rrc_ue.cc b/srsenb/src/stack/rrc/rrc_ue.cc index 56c1a686d..c870588ce 100644 --- a/srsenb/src/stack/rrc/rrc_ue.cc +++ b/srsenb/src/stack/rrc/rrc_ue.cc @@ -1246,12 +1246,11 @@ void rrc::ue::update_scells() const ue_cell_ded* pcell = ue_cell_list.get_ue_cc_idx(UE_PCELL_CC_IDX); const enb_cell_common* pcell_cfg = pcell->cell_common; - if (ue_cell_list.nof_cells() == pcell_cfg->scells.size() + 1) { - // SCells already added + // Check whether UE supports CA + if (eutra_capabilities.access_stratum_release.to_number() < 10) { + parent->logger.info("UE doesn't support CA. Skipping SCell activation"); return; } - - // Check whether UE supports CA if (not eutra_capabilities.non_crit_ext_present or not eutra_capabilities.non_crit_ext.non_crit_ext_present or not eutra_capabilities.non_crit_ext.non_crit_ext.non_crit_ext_present or not eutra_capabilities.non_crit_ext.non_crit_ext.non_crit_ext.rf_params_v1020_present or @@ -1261,6 +1260,11 @@ void rrc::ue::update_scells() return; } + if (ue_cell_list.nof_cells() == pcell_cfg->scells.size() + 1) { + // SCells already added + return; + } + for (const enb_cell_common* scell : pcell_cfg->scells) { ue_cell_list.add_cell(scell->enb_cc_idx); }