diff --git a/srsenb/src/stack/rrc/ue_rr_cfg.cc b/srsenb/src/stack/rrc/ue_rr_cfg.cc index 856e613bd..ac511f294 100644 --- a/srsenb/src/stack/rrc/ue_rr_cfg.cc +++ b/srsenb/src/stack/rrc/ue_rr_cfg.cc @@ -426,6 +426,9 @@ void fill_scells_reconf(asn1::rrc::rrc_conn_recfg_r8_ies_s& recfg_r8, } } + 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; + scell_to_add_mod_list_r10_l target_scells(ue_cell_list.nof_cells() - 1); for (size_t ue_cc_idx = 1; ue_cc_idx < ue_cell_list.nof_cells(); ++ue_cc_idx) { const ue_cell_ded& scell = *ue_cell_list.get_ue_cc_idx(ue_cc_idx); @@ -447,7 +450,14 @@ void fill_scells_reconf(asn1::rrc::rrc_conn_recfg_r8_ies_s& recfg_r8, nonul_cfg.phich_cfg_r10 = scell_cfg.mib.phich_cfg; nonul_cfg.pdsch_cfg_common_r10 = cc_cfg_sib.pdsch_cfg_common; // RadioResourceConfigCommonSCell-r10::ul-Configuration-r10 - if (ue_caps.support_ul_ca) { + bool ul_allowed = false; + for (const auto& scell_tmp : pcell_cfg->cell_cfg.scell_list) { + if (scell_tmp.cell_id == scell.cell_common->cell_cfg.cell_id) { + ul_allowed = scell_tmp.ul_allowed; + break; + } + } + if (ue_caps.support_ul_ca and ul_allowed) { asn1cell.rr_cfg_common_scell_r10.ul_cfg_r10_present = true; auto& ul_cfg = asn1cell.rr_cfg_common_scell_r10.ul_cfg_r10; ul_cfg.ul_freq_info_r10.ul_carrier_freq_r10_present = true;