sched,nr: fix harq delay derivation

master
Francisco Paisana 3 years ago
parent f22483ce72
commit 55ea2cbcee

@ -128,6 +128,13 @@ public:
{ {
return cce_positions_list[ss_id_to_cce_idx[search_id]]; return cce_positions_list[ss_id_to_cce_idx[search_id]];
} }
uint32_t get_k1(slot_point pdsch_slot) const
{
if (phy().duplex.mode == SRSRAN_DUPLEX_MODE_TDD) {
return phy().harq_ack.dl_data_to_ul_ack[pdsch_slot.to_uint() % phy().duplex.tdd.pattern1.period_ms];
}
return phy().harq_ack.dl_data_to_ul_ack[pdsch_slot.to_uint() % phy().harq_ack.nof_dl_data_to_ul_ack];
}
private: private:
uint16_t rnti = SRSRAN_INVALID_RNTI; uint16_t rnti = SRSRAN_INVALID_RNTI;

@ -94,7 +94,7 @@ void fill_dl_dci_ue_fields(const slot_ue& ue,
fill_dci_common(ue, bwp_cfg, dci); fill_dci_common(ue, bwp_cfg, dci);
if (dci.ctx.format == srsran_dci_format_nr_1_0) { if (dci.ctx.format == srsran_dci_format_nr_1_0) {
dci.harq_feedback = ue.cfg->phy().harq_ack.dl_data_to_ul_ack[ue.pdsch_slot.slot_idx()] - 1; dci.harq_feedback = (ue.uci_slot - ue.pdsch_slot) - 1;
} else { } else {
dci.harq_feedback = ue.pdsch_slot.slot_idx(); dci.harq_feedback = ue.pdsch_slot.slot_idx();
} }

@ -48,14 +48,12 @@ slot_ue ue_carrier::try_reserve(slot_point pdcch_slot,
sfu.harq_ent = &harq_ent; sfu.harq_ent = &harq_ent;
const uint32_t k0 = 0; const uint32_t k0 = 0;
sfu.pdsch_slot = sfu.pdcch_slot + k0; sfu.pdsch_slot = sfu.pdcch_slot + k0;
uint32_t k1 = uint32_t k1 = sfu.cfg->get_k1(sfu.pdsch_slot);
sfu.cfg->phy() sfu.uci_slot = sfu.pdsch_slot + k1;
.harq_ack.dl_data_to_ul_ack[sfu.pdsch_slot.slot_idx() % sfu.cfg->phy().harq_ack.nof_dl_data_to_ul_ack]; uint32_t k2 = bwp_cfg.active_bwp().pusch_ra_list[0].K;
sfu.uci_slot = sfu.pdsch_slot + k1; sfu.pusch_slot = sfu.pdcch_slot + k2;
uint32_t k2 = bwp_cfg.active_bwp().pusch_ra_list[0].K; sfu.dl_cqi = dl_cqi;
sfu.pusch_slot = sfu.pdcch_slot + k2; sfu.ul_cqi = ul_cqi;
sfu.dl_cqi = dl_cqi;
sfu.ul_cqi = ul_cqi;
// set UE-common parameters // set UE-common parameters
sfu.dl_pending_bytes = dl_pending_bytes; sfu.dl_pending_bytes = dl_pending_bytes;

Loading…
Cancel
Save