diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c index 35850a1a2d71660abbe23b16a8b8eda32b0d3bab..a44eb36c1fec66b185f57dfcd4e3308719f50afe 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c @@ -894,11 +894,13 @@ void nr_get_Msg3alloc(module_id_t module_id, uint8_t k2 = 0; if (frame_type == TDD) { int msg3_slot = get_first_ul_slot(tdd->nrofDownlinkSlots, tdd->nrofDownlinkSymbols, tdd->nrofUplinkSymbols); - if (tdd->nrofUplinkSymbols < 3) - msg3_slot++; // we can't trasmit msg3 in mixed slot if there are less than 3 symbols - else { - Msg3maxsymb = tdd->nrofUplinkSymbols; - Msg3start = 14 - tdd->nrofUplinkSymbols; + if (tdd->nrofUplinkSymbols != 0) { + if (tdd->nrofUplinkSymbols < 3) + msg3_slot++; // we can't trasmit msg3 in mixed slot if there are less than 3 symbols + else { + Msg3maxsymb = tdd->nrofUplinkSymbols; + Msg3start = 14 - tdd->nrofUplinkSymbols; + } } const int nb_periods_per_frame = get_nb_periods_per_frame(tdd->dl_UL_TransmissionPeriodicity); const int nb_slots_per_period = ((1<<mu)*10)/nb_periods_per_frame;