@@ -198,19 +198,6 @@ get_prioritized_search_spaces(const ue_cell& ue_cc,
198198{
199199 static_vector<const search_space_info*, MAX_NOF_SEARCH_SPACE_PER_BWP> active_search_spaces;
200200
201- // Case of retransmission of HARQ scheduled using fallback DCI format.
202- // As per TS 38.213, the UE monitors PDCCH candidates for DCI format 0_0 and DCI format 1_0 with CRC scrambled by the
203- // C-RNTI, the MCS-C-RNTI, or the CS-RNTI in the one or more search space sets in a slot where the UE monitors PDCCH
204- // candidates for at least a DCI format 0_0 or a DCI format 1_0 with CRC scrambled by SI-RNTI, RA-RNTI or P-RNTI.
205- if (dci_type.has_value () and
206- ((is_dl and static_cast <dci_dl_rnti_config_type>(dci_type.value ()) == dci_dl_rnti_config_type::c_rnti_f1_0) or
207- (not is_dl and
208- static_cast <dci_ul_rnti_config_type>(dci_type.value ()) == dci_ul_rnti_config_type::c_rnti_f0_0))) {
209- for (const auto ss_id : ue_cc.cfg ().get_sib1_other_si_ra_pg_ss_ids ()) {
210- active_search_spaces.push_back (&ue_cc.cfg ().search_space (ss_id));
211- }
212- }
213-
214201 // Get all Search Spaces configured in PDCCH-Config for active BWP.
215202 // See TS 38.213, A UE monitors PDCCH candidates in one or more of the following search spaces sets:
216203 // - a Type3-PDCCH CSS set configured by SearchSpace in PDCCH-Config with searchSpaceType = common for DCI formats
@@ -226,6 +213,22 @@ get_prioritized_search_spaces(const ue_cell& ue_cc,
226213 }
227214 }
228215
216+ // As per TS 38.213, the UE monitors PDCCH candidates for DCI format 0_0 and DCI format 1_0 with CRC scrambled by the
217+ // C-RNTI, the MCS-C-RNTI, or the CS-RNTI in the one or more search space sets in a slot where the UE monitors PDCCH
218+ // candidates for at least a DCI format 0_0 or a DCI format 1_0 with CRC scrambled by SI-RNTI, RA-RNTI or P-RNTI.
219+ // [Implementation-defined] We exclude SearchSpace#0 to avoid the complexity of computing the SearchSpace#0 PDCCH
220+ // candidates monitoring occasions associated with a SS/PBCH block as mentioned in TS 38.213, clause 10.1.
221+ if (ue_cc.cfg ().cell_cfg_common .dl_cfg_common .init_dl_bwp .pdcch_common .ra_search_space_id != to_search_space_id (0 )) {
222+ active_search_spaces.push_back (&ue_cc.cfg ().search_space (
223+ ue_cc.cfg ().cell_cfg_common .dl_cfg_common .init_dl_bwp .pdcch_common .ra_search_space_id ));
224+ }
225+ if (ue_cc.cfg ().cell_cfg_common .dl_cfg_common .init_dl_bwp .pdcch_common .paging_search_space_id .has_value () and
226+ ue_cc.cfg ().cell_cfg_common .dl_cfg_common .init_dl_bwp .pdcch_common .paging_search_space_id .value () !=
227+ to_search_space_id (0 )) {
228+ active_search_spaces.push_back (&ue_cc.cfg ().search_space (
229+ ue_cc.cfg ().cell_cfg_common .dl_cfg_common .init_dl_bwp .pdcch_common .paging_search_space_id .value ()));
230+ }
231+
229232 // Sort search spaces by priority.
230233 auto sort_ss = [&ue_cc, is_dl](const search_space_info* lhs, const search_space_info* rhs) {
231234 // NOTE: It does not matter whether we use lhs or rhs SearchSpace to get the aggregation level as we are sorting not
0 commit comments