diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c index 6e93e0467c..715feb5b33 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c @@ -856,6 +856,8 @@ static void nr_generate_Msg3_retransmission(module_id_t module_idP, } if (rbStart > (sched_pusch.bwp_info.bwpSize - ra->msg3_nb_rb)) { // cannot find free vrb_map for msg3 retransmission in this slot + reset_beam_status(&nr_mac->beam_info, sched_frame, sched_slot, UE->UE_beam_index, slots_frame, beam_ul.new_beam); + reset_beam_status(&nr_mac->beam_info, frame, slot, UE->UE_beam_index, slots_frame, beam_dci.new_beam); return; } @@ -915,10 +917,11 @@ static void nr_generate_Msg3_retransmission(module_id_t module_idP, ss, coreset, &UE->UE_sched_ctrl.sched_pdcch, - true, 0); if (CCEIndex < 0) { LOG_E(NR_MAC, "UE %04x cannot find free CCE!\n", UE->rnti); + reset_beam_status(&nr_mac->beam_info, sched_frame, sched_slot, UE->UE_beam_index, slots_frame, beam_ul.new_beam); + reset_beam_status(&nr_mac->beam_info, frame, slot, UE->UE_beam_index, slots_frame, beam_dci.new_beam); return; } @@ -1507,7 +1510,7 @@ static void nr_generate_Msg2(module_id_t module_idP, } uint8_t aggregation_level; - int CCEIndex = get_cce_index(nr_mac, CC_id, slotP, 0, &aggregation_level, beam.idx, ss, coreset, &sched_ctrl->sched_pdcch, true, 0); + int CCEIndex = get_cce_index(nr_mac, CC_id, slotP, 0, &aggregation_level, beam.idx, ss, coreset, &sched_ctrl->sched_pdcch, 0); if (CCEIndex < 0) { LOG_W(NR_MAC, "UE %04x: %d.%d cannot find free CCE for Msg2!\n", UE->rnti, frameP, slotP); @@ -1707,7 +1710,6 @@ static void nr_generate_Msg4_MsgB(module_id_t module_idP, ss, coreset, &sched_ctrl->sched_pdcch, - true, 0); if (CCEIndex < 0) { @@ -1735,8 +1737,10 @@ static void nr_generate_Msg4_MsgB(module_id_t module_idP, TYPE_TC_RNTI_, coreset->controlResourceSetId, false); - if (!msg4_tda.valid_tda) + if (!msg4_tda.valid_tda) { + reset_beam_status(&nr_mac->beam_info, frameP, slotP, UE->UE_beam_index, n_slots_frame, beam.new_beam); return; + } NR_pdsch_dmrs_t dmrs_info = get_dl_dmrs_params(scc, dl_bwp, &msg4_tda, 1); bwp_info_t bwp_info = get_pdsch_bwp_start_size(nr_mac, UE); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c index 8befbe4833..df5c8e1474 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c @@ -551,7 +551,6 @@ static bool allocate_dl_retransmission(module_id_t module_id, sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, sched_ctrl->pdcch_cl_adjust); if (CCEIndex<0) { sched_ctrl->dl_cce_fail++; @@ -798,6 +797,7 @@ static void pf_dl(module_id_t module_id, rbStart, max_rbSize, rbStop); + reset_beam_status(&mac->beam_info, frame, slot, iterator->UE->UE_beam_index, slots_per_frame, beam.new_beam); iterator++; continue; } @@ -811,7 +811,6 @@ static void pf_dl(module_id_t module_id, sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, sched_ctrl->pdcch_cl_adjust); if (CCEIndex < 0) { sched_ctrl->dl_cce_fail++; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c index 26b48ab998..5ec7bf781d 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c @@ -139,7 +139,6 @@ void nr_preprocessor_phytest(module_id_t module_id, frame_t frame, slot_t slot) sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, 0); AssertFatal(CCEIndex >= 0, "Could not find CCE for UE %04x\n", UE->rnti); @@ -286,7 +285,6 @@ void nr_ul_preprocessor_phytest(gNB_MAC_INST *nr_mac, post_process_pusch_t *pp_p sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, 0); if (CCEIndex < 0) { LOG_E(MAC, "%s(): CCE list not empty, couldn't schedule PUSCH\n", __func__); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index 264150f314..cb3329b34b 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -572,10 +572,9 @@ int get_cce_index(const gNB_MAC_INST *nrmac, const NR_SearchSpace_t *ss, const NR_ControlResourceSet_t *coreset, NR_sched_pdcch_t *sched_pdcch, - bool is_common, float pdcch_cl_adjust) { - const uint32_t Y = is_common ? 0 : get_Y(ss, slot, rnti); + const uint32_t Y = get_Y(ss, slot, rnti); uint8_t nr_of_candidates; int agg_level_search_order[NUM_PDCCH_AGG_LEVELS]; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c index 09044e9170..b08e703076 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c @@ -1876,7 +1876,6 @@ static bool allocate_ul_retransmission(gNB_MAC_INST *nrmac, sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, sched_ctrl->pdcch_cl_adjust); if (CCEIndex<0) { LOG_D(NR_MAC, "[UE %04x][%4d.%2d] no free CCE for retransmission UL DCI UE\n", UE->rnti, frame, slot); @@ -2125,7 +2124,6 @@ static int pf_ul(gNB_MAC_INST *nrmac, sched_ctrl->search_space, sched_ctrl->coreset, &sched_ctrl->sched_pdcch, - false, sched_ctrl->pdcch_cl_adjust); if (CCEIndex < 0) { @@ -2444,7 +2442,7 @@ void post_process_ulsch(gNB_MAC_INST *nr_mac, post_process_pusch_t *pusch, NR_UE sched_ctrl->last_ul_slot = sched_pusch->slot; LOG_D(NR_MAC, - "ULSCH/PUSCH: %4d.%2d RNTI %04x UL sched %4d.%2d DCI L %d start %2d RBS %3d startSymbol %2d nb_symbol %2d dmrs_pos %x MCS " + "ULSCH/PUSCH: %4d.%2d RNTI %04x UL sched %4d.%2d DCI L %d start %2d RBS %3d TDA %2d dmrs_pos %x MCS " "Table %2d MCS %2d nrOfLayers %2d num_dmrs_cdm_grps_no_data %2d TBS %4d HARQ PID %2d round %d RV %d NDI %d est %6d sched " "%6d est BSR %6d TPC %d\n", frame, @@ -2455,8 +2453,7 @@ void post_process_ulsch(gNB_MAC_INST *nr_mac, post_process_pusch_t *pusch, NR_UE sched_ctrl->aggregation_level, sched_pusch->rbStart, sched_pusch->rbSize, - sched_pusch->tda_info.startSymbolIndex, - sched_pusch->tda_info.nrOfSymbols, + sched_pusch->time_domain_allocation, sched_pusch->dmrs_info.ul_dmrs_symb_pos, current_BWP->mcs_table, sched_pusch->mcs, diff --git a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h index ff827ab68a..84a0923e8b 100644 --- a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h +++ b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h @@ -431,7 +431,6 @@ int get_cce_index(const gNB_MAC_INST *nrmac, const NR_SearchSpace_t *ss, const NR_ControlResourceSet_t *coreset, NR_sched_pdcch_t *sched_pdcch, - bool is_common, float pdcch_cl_adjust); bool nr_find_nb_rb(uint16_t Qm,