immediately reuse UL HARQ ID and don't wait for feedback if disable_harq == 1
This commit is contained in:
@@ -2270,9 +2270,17 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot, n
|
|||||||
}
|
}
|
||||||
NR_UE_ul_harq_t *cur_harq = &sched_ctrl->ul_harq_processes[harq_id];
|
NR_UE_ul_harq_t *cur_harq = &sched_ctrl->ul_harq_processes[harq_id];
|
||||||
DevAssert(!cur_harq->is_waiting);
|
DevAssert(!cur_harq->is_waiting);
|
||||||
add_tail_nr_list(&sched_ctrl->feedback_ul_harq, harq_id);
|
if (nr_mac->radio_config.disable_harq) {
|
||||||
cur_harq->feedback_slot = sched_pusch->slot;
|
add_tail_nr_list(&sched_ctrl->available_ul_harq, harq_id);
|
||||||
cur_harq->is_waiting = true;
|
cur_harq->feedback_slot = -1;
|
||||||
|
cur_harq->is_waiting = false;
|
||||||
|
cur_harq->ndi ^= 1;
|
||||||
|
cur_harq->round = 0;
|
||||||
|
} else {
|
||||||
|
add_tail_nr_list(&sched_ctrl->feedback_ul_harq, harq_id);
|
||||||
|
cur_harq->feedback_slot = sched_pusch->slot;
|
||||||
|
cur_harq->is_waiting = true;
|
||||||
|
}
|
||||||
|
|
||||||
/* Statistics */
|
/* Statistics */
|
||||||
AssertFatal(cur_harq->round < nr_mac->ul_bler.harq_round_max, "Indexing ulsch_rounds[%d] is out of bounds\n", cur_harq->round);
|
AssertFatal(cur_harq->round < nr_mac->ul_bler.harq_round_max, "Indexing ulsch_rounds[%d] is out of bounds\n", cur_harq->round);
|
||||||
|
|||||||
Reference in New Issue
Block a user