@@ -201,7 +201,6 @@ void intra_slice_scheduler::ul_sched(ul_ran_slice_candidate slice, scheduler_pol
201201
202202 if (slice.get_slot_tx () != pusch_slot) {
203203 pusch_slot = slice.get_slot_tx ();
204- update_min_srs_symbol ();
205204 update_used_ul_vrbs (slice);
206205 }
207206
@@ -879,6 +878,13 @@ void intra_slice_scheduler::update_used_dl_vrbs(const dl_ran_slice_candidate& sl
879878
880879void intra_slice_scheduler::update_used_ul_vrbs (const ul_ran_slice_candidate& slice)
881880{
881+ // Update the min SRS symbol before checking the used VRBs.
882+ // NOTE: Reset to max symbol index before looking for the min.
883+ min_srs_symbol = NOF_OFDM_SYM_PER_SLOT_NORMAL_CP;
884+ for (const auto & srs : cell_alloc[pusch_slot - pdcch_slot].result .ul .srss ) {
885+ min_srs_symbol = std::min (static_cast <unsigned >(srs.symbols .start ()), min_srs_symbol);
886+ }
887+
882888 // The mapping from CRBs to VRBs is different for UEs configured with a common SearchSpace that uses DCI 1_0.
883889 // [Implementation defined] We assume all the UEs of this cell are configured the same way in that regard.
884890 const slice_ue_repository& slice_ues = slice.get_slice_ues ();
@@ -916,12 +922,3 @@ void intra_slice_scheduler::update_used_ul_vrbs(const ul_ran_slice_candidate& sl
916922 .ul_res_grid .used_prbs (init_ul_bwp.generic_params .scs , ul_crb_lims, symbols_to_check)
917923 .convert_to <vrb_bitmap>();
918924}
919-
920- void intra_slice_scheduler::update_min_srs_symbol ()
921- {
922- // Reset to max symbol index before looking for the min.
923- min_srs_symbol = NOF_OFDM_SYM_PER_SLOT_NORMAL_CP;
924- for (const auto & srs : cell_alloc[pusch_slot - pdcch_slot].result .ul .srss ) {
925- min_srs_symbol = std::min (static_cast <unsigned >(srs.symbols .start ()), min_srs_symbol);
926- }
927- }
0 commit comments