diff --git a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h index d43d5f80b4..8df5e9cc1c 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h @@ -474,7 +474,6 @@ typedef struct { vrb_to_prb_mapping_t vrb_to_prb_mapping; uint8_t dai; double scaling_factor_S; - int8_t accumulated_delta_PUCCH; uint8_t pucch_resource_id; uint8_t pdsch_to_harq_feedback_time_ind; uint8_t n_dmrs_cdm_groups; diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c index 9c013d6398..f4812e639c 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c @@ -773,8 +773,7 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac, LOG_E(MAC, "invalid tpc %d\n", dci->tpc); return -1; } - const int tcp[] = {-1, 0, 1, 3}; - dlsch_pdu->accumulated_delta_PUCCH = tcp[dci->tpc]; + // Sanity check for pucch_resource_indicator value received to check for false DCI. bool valid = false; NR_PUCCH_Config_t *pucch_Config = mac->current_UL_BWP ? mac->current_UL_BWP->pucch_Config : NULL; @@ -798,23 +797,24 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac, return -1; } - if (dci_ind->rnti != mac->ra.ra_rnti && dci_ind->rnti != SI_RNTI) + if (dci_ind->rnti != mac->ra.ra_rnti && dci_ind->rnti != SI_RNTI) { AssertFatal(1 + dci->pdsch_to_harq_feedback_timing_indicator.val > DURATION_RX_TO_TX, "PDSCH to HARQ feedback time (%d) needs to be higher than DURATION_RX_TO_TX (%d).\n", 1 + dci->pdsch_to_harq_feedback_timing_indicator.val, DURATION_RX_TO_TX); - - // set the harq status at MAC for feedback - set_harq_status(mac, - dci->pucch_resource_indicator, - dci->harq_pid, - dlsch_pdu->accumulated_delta_PUCCH, - 1 + dci->pdsch_to_harq_feedback_timing_indicator.val, - dci->dai[0].val, - dci_ind->n_CCE, - dci_ind->N_CCE, - frame, - slot); + // set the harq status at MAC for feedback + const int tpc[] = {-1, 0, 1, 3}; + set_harq_status(mac, + dci->pucch_resource_indicator, + dci->harq_pid, + tpc[dci->tpc], + 1 + dci->pdsch_to_harq_feedback_timing_indicator.val, + dci->dai[0].val, + dci_ind->n_CCE, + dci_ind->N_CCE, + frame, + slot); + } LOG_D(MAC, "(nr_ue_procedures.c) rnti = %x dl_config->number_pdus = %d\n", @@ -840,7 +840,7 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac, dlsch_pdu->harq_process_nbr, dci->dai[0].val, dlsch_pdu->scaling_factor_S, - dlsch_pdu->accumulated_delta_PUCCH, + dci->tpc, dci->pucch_resource_indicator, 1 + dci->pdsch_to_harq_feedback_timing_indicator.val); @@ -1025,8 +1025,6 @@ static int nr_ue_process_dci_dl_11(NR_UE_MAC_INST_t *mac, LOG_E(MAC, "invalid tpc %d\n", dci->tpc); return -1; } - const int tcp[] = {-1, 0, 1, 3}; - dlsch_pdu->accumulated_delta_PUCCH = tcp[dci->tpc]; // Sanity check for pucch_resource_indicator value received to check for false DCI. bool valid = false; @@ -1137,10 +1135,11 @@ static int nr_ue_process_dci_dl_11(NR_UE_MAC_INST_t *mac, DURATION_RX_TO_TX); // set the harq status at MAC for feedback + const int tpc[] = {-1, 0, 1, 3}; set_harq_status(mac, dci->pucch_resource_indicator, dci->harq_pid, - dlsch_pdu->accumulated_delta_PUCCH, + tpc[dci->tpc], feedback_ti, dci->dai[0].val, dci_ind->n_CCE,