@@ -189,12 +189,28 @@ void ue_cell::handle_csi_report(const csi_report_data& csi_report)
189189 }
190190}
191191
192- template <typename FilterSearchSpace>
192+ template <typename FilterSearchSpace, typename DciRntiType >
193193static static_vector<const search_space_info*, MAX_NOF_SEARCH_SPACE_PER_BWP>
194- get_prioritized_search_spaces (const ue_cell& ue_cc, FilterSearchSpace filter, bool is_dl)
194+ get_prioritized_search_spaces (const ue_cell& ue_cc,
195+ FilterSearchSpace filter,
196+ bool is_dl,
197+ optional<DciRntiType> dci_type)
195198{
196199 static_vector<const search_space_info*, MAX_NOF_SEARCH_SPACE_PER_BWP> active_search_spaces;
197200
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+
198214 // Get all Search Spaces configured in PDCCH-Config for active BWP.
199215 // See TS 38.213, A UE monitors PDCCH candidates in one or more of the following search spaces sets:
200216 // - a Type3-PDCCH CSS set configured by SearchSpace in PDCCH-Config with searchSpaceType = common for DCI formats
@@ -259,7 +275,7 @@ ue_cell::get_active_dl_search_spaces(slot_point pdcch_slo
259275 }
260276 return true ;
261277 };
262- return get_prioritized_search_spaces (*this , filter_ss, true );
278+ return get_prioritized_search_spaces (*this , filter_ss, true , required_dci_rnti_type );
263279}
264280
265281static_vector<const search_space_info*, MAX_NOF_SEARCH_SPACE_PER_BWP>
@@ -290,7 +306,7 @@ ue_cell::get_active_ul_search_spaces(slot_point pdcch_slo
290306 ? dci_ul_rnti_config_type::c_rnti_f0_0
291307 : dci_ul_rnti_config_type::c_rnti_f0_1));
292308 };
293- return get_prioritized_search_spaces (*this , filter_ss, false );
309+ return get_prioritized_search_spaces (*this , filter_ss, false , required_dci_rnti_type );
294310}
295311
296312// / \brief Get recommended aggregation level for PDCCH given reported CQI.
0 commit comments