Merge remote-tracking branch 'origin/minor_sched_fixes' into integration_2025_w36 (!3625)
gNB scheduler small fixes A couple of fixes in gNB scheduling function. Removing a superfluous input from CCE function and adding a missing call to reset beam allocation.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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++;
|
||||
|
||||
@@ -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__);
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user