diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch.h b/openair1/PHY/NR_TRANSPORT/nr_ulsch.h index dc7489ea51..d56c298e4f 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_ulsch.h +++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch.h @@ -43,6 +43,7 @@ NR_gNB_ULSCH_t *new_gNB_ulsch(uint8_t max_ldpc_iterations,uint8_t N_RB_UL, uint8 @param ulsch_llr, Pointer to received llr in ulsch @param frame_parms, Pointer to frame descriptor structure @param nb_symb_sch, number of symbols used in the uplink shared channel + @param nb_re_dmrs, number of DMRS resource elements in one RB @param nr_tti_rx, current received TTI @param harq_pid, harq process id @param is_crnti @@ -54,6 +55,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB, NR_DL_FRAME_PARMS *frame_parms, uint32_t frame, uint16_t nb_symb_sch, + uint16_t nb_re_dmrs, uint8_t nr_tti_rx, uint8_t harq_pid, uint8_t is_crnti); diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c index c3197abe66..39c6d8f5ba 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c +++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c @@ -281,6 +281,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB, NR_DL_FRAME_PARMS *frame_parms, uint32_t frame, uint16_t nb_symb_sch, + uint16_t nb_re_dmrs, uint8_t nr_tti_rx, uint8_t harq_pid, uint8_t is_crnti) @@ -323,7 +324,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB, uint16_t R = nfapi_ulsch_pdu_rel15->R; uint8_t mcs = nfapi_ulsch_pdu_rel15->mcs; uint8_t n_layers = nfapi_ulsch_pdu_rel15->n_layers; - uint16_t nb_re_dmrs = harq_process->nb_re_dmrs; uint8_t length_dmrs = nfapi_ulsch_pdu_rel15->length_dmrs; // ------------------------------------------------------------------ diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h index 6e5382add6..3c0f0db8da 100644 --- a/openair1/PHY/defs_gNB.h +++ b/openair1/PHY/defs_gNB.h @@ -246,8 +246,6 @@ typedef struct { /// This is needed for PHICH generation which /// is done after a new scheduling uint8_t previous_n_DMRS; - /// number of DMRS resource elements in one RB - uint16_t nb_re_dmrs; ////////////////////////////////////////////////////////////// diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index 9c36ae740f..cc338a5738 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -229,10 +229,9 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int UE_id uint8_t mapping_type; uint32_t G; int Nid_cell = 0; // [hna] shouldn't be a local variable (should be signaled) - uint16_t start_symbol, number_symbols; + uint16_t start_symbol, number_symbols, nb_re_dmrs; mapping_type = gNB->pusch_config.pusch_TimeDomainResourceAllocation[0]->mappingType; - gNB->ulsch[UE_id][0]->harq_processes[harq_pid]->nb_re_dmrs = 0; start_symbol = nfapi_ulsch_pdu_rel15->start_symbol; number_symbols = nfapi_ulsch_pdu_rel15->number_symbols; @@ -249,11 +248,11 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int UE_id mapping_type, frame_parms->ofdm_symbol_size); - gNB->ulsch[UE_id][0]->harq_processes[harq_pid]->nb_re_dmrs = ((gNB->dmrs_UplinkConfig.pusch_dmrs_type == pusch_dmrs_type1)?6:4)*number_dmrs_symbols; + nb_re_dmrs = ((gNB->dmrs_UplinkConfig.pusch_dmrs_type == pusch_dmrs_type1)?6:4)*number_dmrs_symbols; G = nr_get_G(nfapi_ulsch_pdu_rel15->number_rbs, number_symbols, - gNB->ulsch[UE_id][0]->harq_processes[harq_pid]->nb_re_dmrs, + nb_re_dmrs, nfapi_ulsch_pdu_rel15->length_dmrs, nfapi_ulsch_pdu_rel15->Qm, nfapi_ulsch_pdu_rel15->n_layers); @@ -279,6 +278,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int UE_id frame_parms, frame_rx, number_symbols, + nb_re_dmrs, slot_rx, harq_pid, 0); diff --git a/openair1/SIMULATION/NR_PHY/ulschsim.c b/openair1/SIMULATION/NR_PHY/ulschsim.c index 5e1a8d2158..19d84e8f8f 100644 --- a/openair1/SIMULATION/NR_PHY/ulschsim.c +++ b/openair1/SIMULATION/NR_PHY/ulschsim.c @@ -382,7 +382,8 @@ int main(int argc, char **argv) uint8_t UE_id = 0; NR_gNB_ULSCH_t *ulsch_gNB = gNB->ulsch[UE_id][0]; - nfapi_nr_ul_config_ulsch_pdu_rel15_t *rel15_ul = &ulsch_gNB->harq_processes[harq_pid]->ulsch_pdu.ulsch_pdu_rel15; + NR_UL_gNB_HARQ_t *harq_process_gNB = ulsch_gNB->harq_processes[harq_pid]; + nfapi_nr_ul_config_ulsch_pdu_rel15_t *rel15_ul = &harq_process_gNB->ulsch_pdu.ulsch_pdu_rel15; NR_UE_ULSCH_t *ulsch_ue = UE->ulsch[0][0][0]; @@ -524,7 +525,7 @@ int main(int argc, char **argv) #endif ret = nr_ulsch_decoding(gNB, UE_id, channel_output_fixed, frame_parms, - frame, nb_symb_sch, subframe, harq_pid, is_crnti); + frame, nb_symb_sch, nb_re_dmrs, subframe, harq_pid, is_crnti); if (ret > ulsch_gNB->max_ldpc_iterations) n_errors++;