Do not allow empty TBS PUSCH. Account for CQI from inactive cells before activated. (#1667)

This commit is contained in:
Ismael Gomez 2020-08-31 12:53:18 +02:00 committed by GitHub
parent 92221eb780
commit 0afcea9d61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 10 deletions

View File

@ -303,7 +303,7 @@ uint32_t srslte_N_ta_new(uint32_t N_ta_old, uint32_t ta)
float srslte_coderate(uint32_t tbs, uint32_t nof_re)
{
return (float)tbs / nof_re;
return (float)(24 + tbs) / nof_re;
}
/* Returns the new time advance as indicated by the random access response

View File

@ -516,8 +516,8 @@ bool phy_ue_db::fill_uci_cfg(uint32_t tti,
const cell_info_t& cell_info = ue.cell_info[cell_idx];
const srslte_dl_cfg_t& dl_cfg = cell_info.phy_cfg.dl_cfg;
// Check report for primary and active cells
if (cell_info.state == cell_state_primary or cell_info.state == cell_state_secondary_active) {
// Check report for primary and active and inactive cells. CQI reports start after RRC configures the carrier
if (cell_info.state != cell_state_none) {
const srslte_cell_t& cell = cell_cfg_list->at(cell_info.enb_cc_idx).cell;
// Check if CQI report is required

View File

@ -718,9 +718,8 @@ int sched_ue::generate_format0(sched_interface::ul_sched_data_t* data,
// Recompute again the MCS and TBS with the new spectral efficiency (based on the available RE for data)
if (nof_re >= nof_uci_re) {
tbs = carriers[cc_idx].alloc_tbs_ul(alloc.length(), nof_re - nof_uci_re, req_bytes, &mcs);
} else {
tbs = 0;
}
// NOTE: if (nof_re < nof_uci_re) we should set TBS=0
}
}
h->new_tx(tti, mcs, tbs, alloc, nof_retx);
@ -1162,11 +1161,10 @@ int cc_sched_ue::cqi_to_tbs(uint32_t nof_prb, uint32_t nof_re, bool use_tbs_inde
*mcs = (uint32_t)sel_mcs;
}
if (coderate <= SRSLTE_MIN(max_coderate, 0.930 * Qm)) {
return tbs;
} else {
return 0;
}
// If coderate > SRSLTE_MIN(max_coderate, 0.930 * Qm) we should set TBS=0. We don't because it's not correctly
// handled by the scheduler, but we might be scheduling undecodable codewords at very low SNR
return tbs;
}
/************************************************************************************************