Commit ce3a64a9 authored by Thomas Schlichter's avatar Thomas Schlichter

gNB: limit MCS according to configuration file also in case of AMC or no-harq

parent b8042178
...@@ -676,12 +676,13 @@ static void pf_dl(module_id_t module_id, ...@@ -676,12 +676,13 @@ static void pf_dl(module_id_t module_id,
/* Calculate coeff */ /* Calculate coeff */
const NR_bler_options_t *bo = &mac->dl_bler; const NR_bler_options_t *bo = &mac->dl_bler;
const int max_mcs_table = current_BWP->mcsTableIdx == 1 ? 27 : 28; const int max_mcs_table = current_BWP->mcsTableIdx == 1 ? 27 : 28;
const int max_mcs = min(sched_ctrl->dl_max_mcs, max_mcs_table); int max_mcs = min(sched_ctrl->dl_max_mcs, max_mcs_table);
if (amc_flag) { if (amc_flag) {
float SINR = get_measured_sinr(sched_ctrl->CSI_report.ssb_cri_report.SINR); float SINR = get_measured_sinr(sched_ctrl->CSI_report.ssb_cri_report.SINR);
sched_pdsch->mcs = min(get_MCS_from_SINR(SINR + sinr_offset_dl), max_mcs); max_mcs = min(get_MCS_from_SINR(SINR + sinr_offset_dl), max_mcs);
sched_pdsch->mcs = min(max_mcs, bo->max_mcs);
} else if (bo->harq_round_max == 1) } else if (bo->harq_round_max == 1)
sched_pdsch->mcs = max_mcs; sched_pdsch->mcs = min(max_mcs, bo->max_mcs);
else else
sched_pdsch->mcs = get_mcs_from_bler(bo, stats, &sched_ctrl->dl_bler_stats, max_mcs, frame); sched_pdsch->mcs = get_mcs_from_bler(bo, stats, &sched_ctrl->dl_bler_stats, max_mcs, frame);
sched_pdsch->nrOfLayers = get_dl_nrOfLayers(sched_ctrl, current_BWP->dci_format); sched_pdsch->nrOfLayers = get_dl_nrOfLayers(sched_ctrl, current_BWP->dci_format);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment