Commit de76decf authored by Sakthivel Velumani's avatar Sakthivel Velumani

Fix dlsch feedback ind

parent f7b5c1dd
...@@ -817,9 +817,15 @@ static void remaining_pdsch_procedures(void *parms) ...@@ -817,9 +817,15 @@ static void remaining_pdsch_procedures(void *parms)
nr_ue_symb_data_t *symbData = (nr_ue_symb_data_t *)parms; nr_ue_symb_data_t *symbData = (nr_ue_symb_data_t *)parms;
nr_ue_pdsch_procedures(parms); nr_ue_pdsch_procedures(parms);
/* Tell TX thread to not wait anymore */ /* Tell TX thread to not wait anymore */
const int ack_nack_slot = const int slot_rx = symbData->valProc.nr_slot_rx;
(symbData->valProc.nr_slot_rx + symbData->dlsch[0].dlsch_config.k1_feedback) % symbData->UE->frame_parms.slots_per_frame; const int k1 = symbData->dlsch[0].dlsch_config.k1_feedback;
send_dl_done_to_tx_thread(&symbData->UE->tx_resume_ind_fifo[ack_nack_slot], symbData->valProc.nr_slot_rx); if (symbData->dlsch[0].rnti_type == TYPE_C_RNTI_) {
const int ack_nack_slot = (slot_rx + k1) % symbData->UE->frame_parms.slots_per_frame;
if (k1 >= DURATION_RX_TO_TX)
send_dl_done_to_tx_thread(&symbData->UE->tx_resume_ind_fifo[ack_nack_slot], symbData->valProc.nr_slot_rx);
else
LOG_E(NR_PHY, "Incompatible k1 value. Should be rejected by MAC\n");
}
free(symbData->rxdataF_ext); free(symbData->rxdataF_ext);
symbData->rxdataF_ext = NULL; symbData->rxdataF_ext = NULL;
free(symbData->pdsch_dl_ch_estimates); free(symbData->pdsch_dl_ch_estimates);
...@@ -979,7 +985,10 @@ static void slot_process(PHY_VARS_NR_UE *UE, ...@@ -979,7 +985,10 @@ static void slot_process(PHY_VARS_NR_UE *UE,
// indicate to tx thread to wait for DLSCH decoding // indicate to tx thread to wait for DLSCH decoding
const int ack_nack_slot = const int ack_nack_slot =
(proc->nr_slot_rx + phy_data.dlsch[0].dlsch_config.k1_feedback) % UE->frame_parms.slots_per_frame; (proc->nr_slot_rx + phy_data.dlsch[0].dlsch_config.k1_feedback) % UE->frame_parms.slots_per_frame;
tx_wait_for_dlsch[ack_nack_slot]++; if (phy_data.dlsch[0].dlsch_config.k1_feedback >= DURATION_RX_TO_TX)
tx_wait_for_dlsch[ack_nack_slot]++;
else
LOG_E(NR_PHY, "Incompatible k1 value. Should be rejected by MAC\n");
} }
csirs_state = (phy_data.csirs_vars.active) ? SCHEDULED : DONE; csirs_state = (phy_data.csirs_vars.active) ? SCHEDULED : DONE;
csiim_state = (phy_data.csiim_vars.active) ? SCHEDULED : DONE; csiim_state = (phy_data.csiim_vars.active) ? SCHEDULED : DONE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment