mirror of https://github.com/PentHertz/srsLTE.git
Add checks more checks for UL grants
This commit is contained in:
parent
dcb3bc0135
commit
171e26ee68
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue