mirror of https://github.com/PentHertz/srsLTE.git
bugfix, scheduler: effectively disable adaptive mcs when target bler is unspecified
This commit is contained in:
parent
c75777c618
commit
4627ae9802
|
@ -191,8 +191,8 @@ private:
|
|||
int pending_delta = 0;
|
||||
int acc_tpc_values = 0;
|
||||
|
||||
explicit ul_ch_snr_estim(float target_ul_snr = -1) :
|
||||
snr_avg(0.1, target_ul_snr), win_tpc_values(FDD_HARQ_DELAY_UL_MS + FDD_HARQ_DELAY_DL_MS)
|
||||
explicit ul_ch_snr_estim(float initial_snr) :
|
||||
snr_avg(0.1, initial_snr < 0 ? 5 : initial_snr), win_tpc_values(FDD_HARQ_DELAY_UL_MS + FDD_HARQ_DELAY_DL_MS)
|
||||
{}
|
||||
};
|
||||
std::array<ul_ch_snr_estim, nof_ul_ch_code> snr_estim_list;
|
||||
|
|
|
@ -184,9 +184,11 @@ int sched_ue_cell::set_ul_crc(tti_point tti_rx, bool crc_res)
|
|||
return SRSRAN_ERROR;
|
||||
}
|
||||
|
||||
ul_snr_coeff += delta_down - static_cast<float>(not crc_res) * (delta_down + delta_up);
|
||||
ul_snr_coeff = std::min(std::max(-max_snr_coeff, ul_snr_coeff), max_snr_coeff);
|
||||
logger.info("SCHED: UL adaptive link: snr_estim=%f, snr_offset=%f", tpc_fsm.get_ul_snr_estim(), ul_snr_coeff);
|
||||
if (cell_cfg->sched_cfg->target_bler > 0) {
|
||||
ul_snr_coeff += delta_down - static_cast<float>(not crc_res) * (delta_down + delta_up);
|
||||
ul_snr_coeff = std::min(std::max(-max_snr_coeff, ul_snr_coeff), max_snr_coeff);
|
||||
logger.info("SCHED: UL adaptive link: snr_estim=%f, snr_offset=%f", tpc_fsm.get_ul_snr_estim(), ul_snr_coeff);
|
||||
}
|
||||
return pid;
|
||||
}
|
||||
|
||||
|
@ -199,9 +201,11 @@ int sched_ue_cell::set_ack_info(tti_point tti_rx, uint32_t tb_idx, bool ack)
|
|||
logger.debug(
|
||||
"SCHED: Set DL ACK=%d for rnti=0x%x, pid=%d, tb=%d, tti=%d", ack, rnti, p2.first, tb_idx, tti_rx.to_uint());
|
||||
|
||||
dl_cqi_coeff += delta_down - static_cast<float>(not ack) * (delta_down + delta_up);
|
||||
dl_cqi_coeff = std::min(std::max(-max_cqi_coeff, dl_cqi_coeff), max_cqi_coeff);
|
||||
logger.info("SCHED: DL adaptive link: cqi=%d, cqi_offset=%f", dl_cqi_ctxt.get_avg_cqi(), dl_cqi_coeff);
|
||||
if (cell_cfg->sched_cfg->target_bler > 0) {
|
||||
dl_cqi_coeff += delta_down - static_cast<float>(not ack) * (delta_down + delta_up);
|
||||
dl_cqi_coeff = std::min(std::max(-max_cqi_coeff, dl_cqi_coeff), max_cqi_coeff);
|
||||
logger.info("SCHED: DL adaptive link: cqi=%d, cqi_offset=%f", dl_cqi_ctxt.get_avg_cqi(), dl_cqi_coeff);
|
||||
}
|
||||
} else {
|
||||
logger.warning("SCHED: Received ACK info for unknown TTI=%d", tti_rx.to_uint());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue