Add checks more checks for UL grants

This commit is contained in:
Ismael Gomez 2020-01-15 11:11:15 +01:00 committed by Xavier Arteaga
parent dcb3bc0135
commit 171e26ee68
3 changed files with 22 additions and 12 deletions

View File

@ -307,6 +307,11 @@ int srslte_ra_ul_dci_to_grant(srslte_cell_t* cell,
grant->n_prb_tilde[i] = grant->n_prb[i];
}
if (grant->nof_symb == 0 || grant->nof_re == 0) {
ERROR("Converting ul_dci to grant, nof_symb=%d, nof_re=%d\n", grant->nof_symb, grant->nof_re);
return SRSLTE_ERROR;
}
return SRSLTE_SUCCESS;
} else {
return SRSLTE_ERROR;

View File

@ -928,6 +928,10 @@ static void ulsch_interleave(uint8_t* g_bits,
uint32_t nof_ri_bits,
uint8_t* ri_present)
{
if (N_pusch_symbs == 0 || Qm == 0 || H_prime_total == 0 || H_prime_total < N_pusch_symbs) {
ERROR("Invalid input: N_pusch_symbs=%d, Qm=%d, H_prime_total=%d, N_pusch_symbs=%d\n", N_pusch_symbs, Qm, H_prime_total, N_pusch_symbs);
return;
}
const uint32_t nof_bits = H_prime_total * Qm;
uint32_t rows = H_prime_total / N_pusch_symbs;

View File

@ -654,19 +654,20 @@ bool cc_worker::work_ul(srslte_uci_data_t* uci_data)
// Generate PHY grant
if (srslte_ue_ul_dci_to_pusch_grant(&ue_ul, &sf_cfg_ul, &ue_ul_cfg, &dci_ul, &ue_ul_cfg.ul_cfg.pusch.grant)) {
Error("Converting DCI message to UL dci\n");
ul_grant_available = false;
} else {
// Save TBS info for next retx
phy->last_ul_tb[pid][cc_idx] = ue_ul_cfg.ul_cfg.pusch.grant.tb;
// Fill MAC dci
ul_phy_to_mac_grant(&ue_ul_cfg.ul_cfg.pusch.grant, &dci_ul, pid, ul_grant_available, &ul_mac_grant);
phy->stack->new_grant_ul(cc_idx, ul_mac_grant, &ul_action);
// Calculate PUSCH Hopping procedure
ue_ul_cfg.ul_cfg.hopping.current_tx_nb = ul_action.current_tx_nb;
srslte_ue_ul_pusch_hopping(&ue_ul, &sf_cfg_ul, &ue_ul_cfg, &ue_ul_cfg.ul_cfg.pusch.grant);
}
// Save TBS info for next retx
phy->last_ul_tb[pid][cc_idx] = ue_ul_cfg.ul_cfg.pusch.grant.tb;
// Fill MAC dci
ul_phy_to_mac_grant(&ue_ul_cfg.ul_cfg.pusch.grant, &dci_ul, pid, ul_grant_available, &ul_mac_grant);
phy->stack->new_grant_ul(cc_idx, ul_mac_grant, &ul_action);
// Calculate PUSCH Hopping procedure
ue_ul_cfg.ul_cfg.hopping.current_tx_nb = ul_action.current_tx_nb;
srslte_ue_ul_pusch_hopping(&ue_ul, &sf_cfg_ul, &ue_ul_cfg, &ue_ul_cfg.ul_cfg.pusch.grant);
}
// Set UL RNTI