Skip to content

Commit 70cea8b

Browse files
herlesupreethcodebot
authored andcommitted
sched: add check ensuring there is only one PDSCH and one PUSCH per UE per slot
1 parent 8e503b2 commit 70cea8b

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

lib/scheduler/ue_scheduling/ue_cell_grid_allocator.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,15 @@ alloc_outcome ue_cell_grid_allocator::allocate_dl_grant(const ue_pdsch_grant& gr
193193
return alloc_outcome::invalid_params;
194194
}
195195

196+
// Verify only one PDSCH exists for a RNTI.
197+
// Reason: Unable to distinguish/map HARQ acknowledge bits to HARQ Id if there are more than one PDSCH per UE per
198+
// slot.
199+
for (const dl_msg_alloc& pdsch : pdsch_alloc.result.dl.ue_grants) {
200+
if (pdsch.pdsch_cfg.rnti == u.crnti) {
201+
return alloc_outcome::skip_ue;
202+
}
203+
}
204+
196205
// Allocate PDCCH position.
197206
pdcch_dl_information* pdcch = nullptr;
198207
if (ue_cc->is_in_fallback_mode() or dci_type == dci_dl_rnti_config_type::tc_rnti_f1_0) {
@@ -531,6 +540,13 @@ alloc_outcome ue_cell_grid_allocator::allocate_ul_grant(const ue_pusch_grant& gr
531540
return alloc_outcome::skip_slot;
532541
}
533542

543+
// Verify only one PUSCH exists for a RNTI.
544+
for (const ul_sched_info& pusch : pusch_alloc.result.ul.puschs) {
545+
if (pusch.pusch_cfg.rnti == u.crnti) {
546+
return alloc_outcome::skip_ue;
547+
}
548+
}
549+
534550
// [Implementation-defined] We skip allocation of PUSCH if there is already a PUCCH grant scheduled over the same slot
535551
// and the UE is in fallback mode.
536552
// NOTE: This is due to the lack of clarity of the TS when it comes to define what \c betaOffsets to use for PUSCH

0 commit comments

Comments
 (0)