From bf8a191370283f2e26dc479df7628997f949a6b8 Mon Sep 17 00:00:00 2001 From: francescomani Date: Wed, 10 Nov 2021 15:24:08 +0100 Subject: [PATCH] fixing msg2 scheduler --- openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c index 77d55eb1df..08d0a38038 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c @@ -481,9 +481,16 @@ void nr_schedule_msg2(uint16_t rach_frame, uint16_t rach_slot, // go to previous slot if the current scheduled slot is beyond the response window // and if the slot is not among the PDCCH monitored ones (38.213 10.1) - while (((*msg2_slot>slot_limit)&&(*msg2_frame>frame_limit)) || ((*msg2_frame*nr_slots_per_frame[mu]+*msg2_slot-monitoring_offset)%monitoring_slot_period !=0)) { - if((*msg2_slot%tdd_period_slot) > 0) + while ((*msg2_frame>frame_limit) || + ((*msg2_frame==frame_limit) && + (*msg2_slot>slot_limit)) || + ((*msg2_frame*nr_slots_per_frame[mu]+*msg2_slot-monitoring_offset)%monitoring_slot_period !=0)) { + + if(!tdd || ((*msg2_slot%tdd_period_slot) > 0)) { + if (*msg2_slot==0) + (*msg2_frame)--; (*msg2_slot)--; + } else AssertFatal(1==0,"No available DL slot to schedule msg2 has been found"); }