Fix issue in 15 PRB 2CA: Due to DCI format ambiguity, the scheduler needs to use Format1A instead of Format1. The number of PRB was incorrectly calculated when generating the grant, leading to corruptions in the MAC PDU.

This commit is contained in:
Ismael Gomez 2020-12-04 16:34:58 +01:00 committed by Andre Puschmann
parent 9eddfdb4a3
commit ae1092257f
1 changed files with 4 additions and 2 deletions

View File

@ -570,8 +570,10 @@ int sched_ue::generate_format1(uint32_t pid,
rbg_interval rbg_int = rbg_interval::rbgmask_to_rbgs(user_mask);
uint32_t P = srslte_ra_type0_P(15);
prb_interval prb_int = prb_interval::rbgs_to_prbs(rbg_int, P);
dci->type2_alloc.riv =
srslte_ra_type2_to_riv(SRSLTE_MIN(prb_int.length(), cell.nof_prb), prb_int.start(), cell.nof_prb);
uint32_t L_crb =
SRSLTE_MIN(sched_utils::count_prb_per_tb(*carriers[ue_cc_idx].get_cell_cfg(), user_mask), cell.nof_prb);
uint32_t RB_start = prb_int.start();
dci->type2_alloc.riv = srslte_ra_type2_to_riv(L_crb, RB_start, cell.nof_prb);
dci->format = SRSLTE_DCI_FORMAT1A;
if (prb_int.length() != P * user_mask.count()) {
// This happens if Type0 was using distributed allocation