diff --git a/executables/nr-ue.c b/executables/nr-ue.c index f2574ae66c..a153b60481 100644 --- a/executables/nr-ue.c +++ b/executables/nr-ue.c @@ -689,7 +689,7 @@ void processSlotTX(void *arg) { stop_meas(&UE->ue_ul_indication_stats); } - phy_procedures_nrUE_TX(UE, proc, proc->gNB_id, &phy_data); + phy_procedures_nrUE_TX(UE, proc, &phy_data); } RU_write(rxtxD); @@ -699,7 +699,6 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) { UE_nr_rxtx_proc_t *proc = &rxtxD->proc; PHY_VARS_NR_UE *UE = rxtxD->UE; - uint8_t gNB_id = 0; nr_phy_data_t phy_data = {0}; if (IS_SOFTMODEM_NOS1 || get_softmodem_params()->sa) { @@ -716,7 +715,7 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) { if(UE->if_inst != NULL && UE->if_inst->dl_indication != NULL) { nr_downlink_indication_t dl_indication; - nr_fill_dl_indication(&dl_indication, NULL, NULL, proc, UE, gNB_id, &phy_data); + nr_fill_dl_indication(&dl_indication, NULL, NULL, proc, UE, &phy_data); UE->if_inst->dl_indication(&dl_indication, NULL); } @@ -725,7 +724,7 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) { phy_procedures_slot_parallelization_nrUE_RX( UE, proc, 0, 0, 1, no_relay, NULL ); #else uint64_t a=rdtsc_oai(); - phy_procedures_nrUE_RX(UE, proc, gNB_id, &phy_data); + phy_procedures_nrUE_RX(UE, proc, &phy_data); LOG_D(PHY, "In %s: slot %d, time %llu\n", __FUNCTION__, proc->nr_slot_rx, (rdtsc_oai()-a)/3500); #endif diff --git a/openair1/PHY/MODULATION/modulation_UE.h b/openair1/PHY/MODULATION/modulation_UE.h index 060ca967de..031b444323 100644 --- a/openair1/PHY/MODULATION/modulation_UE.h +++ b/openair1/PHY/MODULATION/modulation_UE.h @@ -51,13 +51,11 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue, int nr_slot_fep(PHY_VARS_NR_UE *phy_vars_ue, UE_nr_rxtx_proc_t *proc, unsigned char l, - unsigned char Ns, c16_t rxdataF[][phy_vars_ue->frame_parms.samples_per_slot_wCP]); int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, unsigned char symbol, - unsigned char Ns, int sample_offset, bool pbch_decoded, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); diff --git a/openair1/PHY/MODULATION/slot_fep_nr.c b/openair1/PHY/MODULATION/slot_fep_nr.c index d70182f797..bd03496bca 100644 --- a/openair1/PHY/MODULATION/slot_fep_nr.c +++ b/openair1/PHY/MODULATION/slot_fep_nr.c @@ -37,11 +37,11 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, unsigned char symbol, - unsigned char Ns, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; NR_UE_COMMON *common_vars = &ue->common_vars; + int Ns = proc->nr_slot_rx; AssertFatal(symbol < frame_parms->symbols_per_slot, "slot_fep: symbol must be between 0 and %d\n", frame_parms->symbols_per_slot-1); AssertFatal(Ns < frame_parms->slots_per_frame, "slot_fep: Ns must be between 0 and %d\n", frame_parms->slots_per_frame-1); @@ -150,13 +150,13 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue, int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, unsigned char symbol, - unsigned char Ns, int sample_offset, bool pbch_decoded, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; NR_UE_COMMON *common_vars = &ue->common_vars; + int Ns = proc->nr_slot_rx; AssertFatal(symbol < frame_parms->symbols_per_slot, "slot_fep: symbol must be between 0 and %d\n", frame_parms->symbols_per_slot-1); AssertFatal(Ns < frame_parms->slots_per_frame, "slot_fep: Ns must be between 0 and %d\n", frame_parms->slots_per_frame-1); diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index 645ab27983..0a0d92743d 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -61,14 +61,14 @@ void peak_estimator(int32_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t *peak_idx = max_idx; } -int nr_prs_channel_estimation(uint8_t gNB_id, - uint8_t rsc_id, +int nr_prs_channel_estimation(uint8_t rsc_id, uint8_t rep_num, PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, NR_DL_FRAME_PARMS *frame_params, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int gNB_id = proc->gNB_id; uint8_t rxAnt = 0, idx = 0; prs_config_t *prs_cfg = &ue->prs_vars[gNB_id]->prs_resource[rsc_id].prs_cfg; prs_meas_t **prs_meas = ue->prs_vars[gNB_id]->prs_resource[rsc_id].prs_meas; @@ -567,8 +567,6 @@ int nr_prs_channel_estimation(uint8_t gNB_id, int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, int dmrss, NR_UE_SSB *current_ssb, @@ -600,7 +598,7 @@ int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue, k = nushift; #ifdef DEBUG_PBCH - printf("PBCH DMRS Correlation : gNB_id %d , OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d\n", gNB_id, ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp, Ns, k, symbol); + printf("PBCH DMRS Correlation : gNB_id %d , OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d\n", proc->gNB_id, ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp, Ns, k, symbol); #endif // generate pilot @@ -730,14 +728,13 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, struct complex16 dl_ch_estimates [][estimateSz], struct complex16 dl_ch_estimates_time [][ue->frame_parms.ofdm_symbol_size], UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, int dmrss, uint8_t ssb_index, uint8_t n_hf, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int Ns = proc->nr_slot_rx; int pilot[200] __attribute__((aligned(16))); unsigned short k; unsigned int pilot_cnt; @@ -763,7 +760,7 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, k = nushift; #ifdef DEBUG_PBCH - printf("PBCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d\n", gNB_id, ch_offset, ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp, Ns, k, symbol); + printf("PBCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d\n", proc->gNB_id, ch_offset, ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp, Ns, k, symbol); #endif switch (k) { @@ -993,8 +990,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, fapi_nr_coreset_t *coreset, uint16_t first_carrier_offset, @@ -1004,6 +999,8 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int Ns = proc->nr_slot_rx; + int gNB_id = proc->gNB_id; unsigned char aarx; unsigned short k; unsigned int pilot_cnt; @@ -1237,9 +1234,7 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, bool is_SI, - unsigned char Ns, unsigned short p, unsigned char symbol, unsigned char nscid, @@ -1252,6 +1247,8 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, int32_t dl_ch_estimates[][pdsch_est_size], c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int gNB_id = proc->gNB_id; + int Ns = proc->nr_slot_rx; int pilot[3280] __attribute__((aligned(16))); unsigned char aarx; unsigned short k; diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h index 3fc2e42500..cf4917369a 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h @@ -33,8 +33,7 @@ #define SYNCH_HYST 2 /* A function to perform the channel estimation of DL PRS signal */ -int nr_prs_channel_estimation(uint8_t gNB_id, - uint8_t rsc_id, +int nr_prs_channel_estimation(uint8_t rsc_id, uint8_t rep_num, PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, @@ -53,8 +52,6 @@ void peak_estimator(int32_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t */ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, fapi_nr_coreset_t *coreset, uint16_t first_carrier_offset, @@ -65,8 +62,6 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, int dmrss, NR_UE_SSB *current_ssb, @@ -77,8 +72,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, struct complex16 dl_ch_estimates [][estimateSz], struct complex16 dl_ch_estimates_time [][estimateSz], UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, - unsigned char Ns, unsigned char symbol, int dmrss, uint8_t ssb_index, @@ -87,9 +80,7 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, bool is_SI, - unsigned char Ns, unsigned short p, unsigned char symbol, unsigned char nscid, @@ -121,12 +112,10 @@ void nr_ue_measurements(PHY_VARS_NR_UE *ue, void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue, uint8_t gNB_index, UE_nr_rxtx_proc_t *proc, - uint8_t slot, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); void nr_ue_rrc_measurements(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t slot, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue, diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c b/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c index cdad7d93a8..5545f5c4bd 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c @@ -172,11 +172,11 @@ void nr_ue_measurements(PHY_VARS_NR_UE *ue, void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue, int ssb_index, UE_nr_rxtx_proc_t *proc, - uint8_t slot, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { int k_start = 56; int k_end = 183; + int slot = proc->nr_slot_rx; unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier; int symbol_offset = nr_get_ssb_start_symbol(&ue->frame_parms,ssb_index); @@ -228,10 +228,10 @@ void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue, // - psd_awgn (AWGN power spectral density): dBm/Hz void nr_ue_rrc_measurements(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t slot, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]){ uint8_t k; + int slot = proc->nr_slot_rx; int aarx, nb_nulls; int16_t *rxF_sss; uint8_t k_left = 48; diff --git a/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c index 8d2ebcdb3a..6768c8bc37 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c +++ b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c @@ -800,8 +800,9 @@ int nr_csi_im_power_estimation(const PHY_VARS_NR_UE *ue, return 0; } -int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { +int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int gNB_id = proc->gNB_id; if(!ue->csiim_vars[gNB_id]->active) { return -1; } @@ -824,8 +825,9 @@ int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t return 0; } -int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { +int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int gNB_id = proc->gNB_id; if(!ue->csirs_vars[gNB_id]->active) { return -1; } @@ -959,8 +961,8 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t csirs_measurements.cqi = cqi; nr_downlink_indication_t dl_indication; fapi_nr_rx_indication_t *rx_ind = calloc(sizeof(*rx_ind),1); - nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, gNB_id, NULL); - nr_fill_rx_indication(rx_ind, FAPI_NR_CSIRS_IND, gNB_id, ue, NULL, NULL, 1, proc, (void *)&csirs_measurements); + nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, NULL); + nr_fill_rx_indication(rx_ind, FAPI_NR_CSIRS_IND, ue, NULL, NULL, 1, proc, (void *)&csirs_measurements); if (ue->if_inst && ue->if_inst->dl_indication) { ue->if_inst->dl_indication(&dl_indication, NULL); } else { diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c index 8d30e8cd42..6524593a67 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c @@ -115,8 +115,6 @@ static int nr_dlsch_llr(uint32_t rx_size, NR_DL_UE_HARQ_t *dlsch0_harq, NR_DL_UE_HARQ_t *dlsch1_harq, unsigned char harq_pid, - unsigned char gNB_id, - unsigned char gNB_id_i, unsigned char first_symbol_flag, unsigned char symbol, unsigned short nb_rb, @@ -131,10 +129,6 @@ static int nr_dlsch_llr(uint32_t rx_size, int nr_rx_pdsch(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, NR_UE_DLSCH_t dlsch[2], - unsigned char gNB_id, - unsigned char gNB_id_i, - uint32_t frame, - uint8_t nr_slot_rx, unsigned char symbol, unsigned char first_symbol_flag, unsigned char harq_pid, @@ -160,6 +154,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, NR_UE_COMMON *common_vars = &ue->common_vars; NR_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; PHY_NR_MEASUREMENTS *measurements = &ue->measurements; + int frame = proc->frame_rx; + int nr_slot_rx = proc->nr_slot_rx; + int gNB_id = proc->gNB_id; int avg[16]; // int avg_0[2]; @@ -492,8 +489,6 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, dlsch0_harq, dlsch1_harq, harq_pid, - gNB_id, - gNB_id_i, first_symbol_flag, i, nb_rb_pdsch, @@ -1626,7 +1621,7 @@ void nr_dlsch_extract_rbs(uint32_t rxdataF_sz, for (unsigned char aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) { int32_t *rxF_ext = &rxdataF_ext[aarx][symbol * nb_rb_pdsch * NR_NB_SC_PER_RB]; - int32_t *rxF = &rxdataF[aarx][symbol * frame_parms->ofdm_symbol_size]; + int32_t *rxF = (int32_t *)&rxdataF[aarx][symbol * frame_parms->ofdm_symbol_size]; for (unsigned char aatx = 0; aatx < Nl; aatx++) { @@ -2384,8 +2379,6 @@ static int nr_dlsch_llr(uint32_t rx_size, NR_DL_UE_HARQ_t *dlsch0_harq, NR_DL_UE_HARQ_t *dlsch1_harq, unsigned char harq_pid, - unsigned char gNB_id, - unsigned char gNB_id_i, unsigned char first_symbol_flag, unsigned char symbol, unsigned short nb_rb, diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c index 7af0bdb2cf..7f708125d2 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c @@ -127,7 +127,7 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini start_meas(&ue->dlsch_channel_estimation_stats); // computing correlation between received DMRS symbols and transmitted sequence for current i_ssb and n_hf for(int i=pbch_initial_symbol; idlsch_channel_estimation_stats); current_ssb->metric = current_ssb->c_re*current_ssb->c_re + current_ssb->c_im*current_ssb->c_im; @@ -152,7 +152,7 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini for(int i=pbch_initial_symbol; ii_ssb,temp_ptr->n_hf,rxdataF); + proc,i,i-pbch_initial_symbol,temp_ptr->i_ssb,temp_ptr->n_hf,rxdataF); stop_meas(&ue->dlsch_channel_estimation_stats); fapiPbch_t result; @@ -162,7 +162,6 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini dl_ch_estimates, ue->pbch_vars[0], frame_parms, - 0, temp_ptr->i_ssb, SISO, phy_data, @@ -305,7 +304,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, nr_slot_fep_init_sync(ue, proc, i, - 0, is*fp->samples_per_frame+ue->ssb_offset, false, rxdataF); @@ -529,7 +527,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, if (sa==1 && ret==0) { nr_ue_dlsch_init(phy_data.dlsch, 1, ue->max_ldpc_iterations); bool dec = false; - int gnb_id = 0; //FIXME + proc->gNB_id = 0; //FIXME // Hold the channel estimates in frequency domain. int32_t pdcch_est_size = ((((fp->symbols_per_slot*(fp->ofdm_symbol_size+LTE_CE_FILTER_LENGTH))+15)/16)*16); @@ -543,15 +541,12 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, nr_slot_fep_init_sync(ue, proc, l, // the UE PHY has no notion of the symbols to be monitored in the search space - phy_pdcch_config->slot, is*fp->samples_per_frame+phy_pdcch_config->sfn*fp->samples_per_frame+ue->rx_offset, true, rxdataF); nr_pdcch_channel_estimation(ue, proc, - 0, - phy_pdcch_config->slot, l, &phy_pdcch_config->pdcch_config[n_ss].coreset, fp->first_carrier_offset, @@ -561,7 +556,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, rxdataF); } - int dci_cnt = nr_ue_pdcch_procedures(gnb_id, ue, proc, pdcch_est_size, pdcch_dl_ch_estimates, &phy_data, n_ss, rxdataF); + int dci_cnt = nr_ue_pdcch_procedures(ue, proc, pdcch_est_size, pdcch_dl_ch_estimates, &phy_data, n_ss, rxdataF); if (dci_cnt>0){ NR_UE_DLSCH_t *dlsch = phy_data.dlsch; if (dlsch[0].active == 1) { @@ -572,7 +567,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, nr_slot_fep_init_sync(ue, proc, m, - phy_pdcch_config->slot, // same slot and offset as pdcch is*fp->samples_per_frame+phy_pdcch_config->sfn*fp->samples_per_frame+ue->rx_offset, true, rxdataF); @@ -602,7 +596,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, int ret = nr_ue_pdsch_procedures(ue, proc, - gnb_id, phy_data.dlsch, llr, layer_llr, @@ -610,7 +603,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, if (ret >= 0) dec = nr_ue_dlsch_procedures(ue, proc, - gnb_id, phy_data.dlsch, llr); diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c index 7d7fde0ab2..1d9d30ec33 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c @@ -389,7 +389,6 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue, int estimateSz, struct complex16 dl_ch_estimates [][estimateSz], NR_UE_PBCH *nr_ue_pbch_vars, NR_DL_FRAME_PARMS *frame_parms, - uint8_t gNB_id, uint8_t i_ssb, MIMO_mode_t mimo_mode, nr_phy_data_t *phy_data, @@ -582,8 +581,8 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue, fapi_nr_rx_indication_t *rx_ind=calloc(sizeof(*rx_ind),1); uint16_t number_pdus = 1; - nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, gNB_id, phy_data); - nr_fill_rx_indication(rx_ind, FAPI_NR_RX_PDU_TYPE_SSB, gNB_id, ue, NULL, NULL, number_pdus, proc,(void *)result); + nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, phy_data); + nr_fill_rx_indication(rx_ind, FAPI_NR_RX_PDU_TYPE_SSB, ue, NULL, NULL, number_pdus, proc,(void *)result); if (ue->if_inst && ue->if_inst->dl_indication) ue->if_inst->dl_indication(&dl_indication, NULL); diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h index d66aae636f..9cd964342b 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h @@ -779,7 +779,6 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue, struct complex16 dl_ch_estimates[][estimateSz], NR_UE_PBCH *nr_ue_pbch_vars, NR_DL_FRAME_PARMS *frame_parms, - uint8_t eNB_id, uint8_t i_ssb, MIMO_mode_t mimo_mode, nr_phy_data_t *phy_data, @@ -871,10 +870,6 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue, int nr_rx_pdsch(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, NR_UE_DLSCH_t dlsch[2], - unsigned char gNB_id, - unsigned char gNB_id_i, - uint32_t frame, - uint8_t nr_slot_rx, unsigned char symbol, unsigned char first_symbol_flag, unsigned char harq_pid, diff --git a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c index 55669ba322..5e60ae2940 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c +++ b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c @@ -432,9 +432,8 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu, * send srs according to current configuration * *********************************************************************/ -int ue_srs_procedures_nr(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id) +int ue_srs_procedures_nr(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc) { - if(!ue->srs_vars[0]->active) { return -1; } diff --git a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h index 2c3d6d266c..5feea8d9ce 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h +++ b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h @@ -175,7 +175,7 @@ int is_srs_period_nr(SRS_Resource_t *p_SRS_Resource, @param current gNB_id identifier @returns 0 if srs is transmitted -1 otherwise */ -int ue_srs_procedures_nr(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id); +int ue_srs_procedures_nr(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc); #undef EXTERN #undef INIT_VARIABLES_SRS_MODULATION_NR_H diff --git a/openair1/SCHED_NR_UE/defs.h b/openair1/SCHED_NR_UE/defs.h index d2917a6835..eed79545bc 100644 --- a/openair1/SCHED_NR_UE/defs.h +++ b/openair1/SCHED_NR_UE/defs.h @@ -96,22 +96,20 @@ typedef struct { @param proc Pointer to RXn-TXnp4 proc information @param eNB_id Local id of eNB on which to act */ -void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, nr_phy_data_tx_t *phy_data); +void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, nr_phy_data_tx_t *phy_data); /*! \brief Scheduling for UE RX procedures in normal subframes. @param ue Pointer to UE variables on which to act @param proc Pointer to proc information - @param gNB_id Local id of eNB on which to act @param dlsch_parallel use multithreaded dlsch processing @param phy_pdcch_config PDCCH Config for this slot @param txFifo Result fifo if PDSCH is run in parallel */ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, nr_phy_data_t *phy_data); -int phy_procedures_slot_parallelization_nrUE_RX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, uint8_t abstraction_flag, uint8_t do_pdcch_flag, relaying_type_t r_type); +int phy_procedures_slot_parallelization_nrUE_RX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t abstraction_flag, uint8_t do_pdcch_flag, relaying_type_t r_type); void processSlotTX(void *arg); @@ -120,7 +118,7 @@ void processSlotTX(void *arg); @param @param */ -void nr_ue_prach_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id); +void nr_ue_prach_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc); int8_t nr_find_ue(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB); @@ -151,7 +149,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind, fapi_nr_rx_indication_t *rx_ind, UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, - uint8_t gNB_id, void *phy_data); /*@}*/ @@ -164,7 +161,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind, */ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind, uint8_t pdu_type, - uint8_t gNB_id, PHY_VARS_NR_UE *ue, NR_UE_DLSCH_t *dlsch0, NR_UE_DLSCH_t *dlsch1, @@ -174,20 +170,17 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind, bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t* llr[2]); int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t *llr[2], int16_t *layer_llr[NR_MAX_NB_LAYERS], c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); -int nr_ue_pdcch_procedures(uint8_t gNB_id, - PHY_VARS_NR_UE *ue, +int nr_ue_pdcch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int32_t pdcch_est_size, int32_t pdcch_dl_ch_estimates[][pdcch_est_size], @@ -195,9 +188,9 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id, int n_ss, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); -int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); +int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); -int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); +int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]); #endif diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 106bd849dc..ceacf6e74c 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -90,12 +90,11 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind, fapi_nr_rx_indication_t *rx_ind, UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, - uint8_t gNB_id, void *phy_data){ memset((void*)dl_ind, 0, sizeof(nr_downlink_indication_t)); - dl_ind->gNB_index = gNB_id; + dl_ind->gNB_index = proc->gNB_id; dl_ind->module_id = ue->Mod_id; dl_ind->cc_id = ue->CC_id; dl_ind->frame = proc->frame_rx; @@ -117,7 +116,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind, void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind, uint8_t pdu_type, - uint8_t gNB_id, PHY_VARS_NR_UE *ue, NR_UE_DLSCH_t *dlsch0, NR_UE_DLSCH_t *dlsch1, @@ -271,11 +269,11 @@ void ue_ta_procedures(PHY_VARS_NR_UE *ue, int slot_tx, int frame_tx){ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, nr_phy_data_tx_t *phy_data) { int slot_tx = proc->nr_slot_tx; int frame_tx = proc->frame_tx; + int gNB_id = proc->gNB_id; AssertFatal(ue->CC_id == 0, "Transmission on secondary CCs is not supported yet\n"); @@ -296,11 +294,10 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, } } - ue_srs_procedures_nr(ue, proc, gNB_id); + ue_srs_procedures_nr(ue, proc); if (ue->UE_mode[gNB_id] <= PUSCH) { pucch_procedures_ue_nr(ue, - gNB_id, proc, phy_data); } @@ -312,7 +309,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, ue->frame_parms.nb_antennas_tx); if (ue->UE_mode[gNB_id] > NOT_SYNCHED && ue->UE_mode[gNB_id] < PUSCH) - nr_ue_prach_procedures(ue, proc, proc->gNB_id); + nr_ue_prach_procedures(ue, proc); LOG_D(PHY,"****** end TX-Chain for AbsSubframe %d.%d ******\n", proc->frame_tx, proc->nr_slot_tx); @@ -323,7 +320,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, void nr_ue_measurement_procedures(uint16_t l, PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, NR_UE_DLSCH_t *dlsch, uint32_t pdsch_est_size, int32_t dl_ch_estimates[][pdsch_est_size]) { @@ -331,6 +327,7 @@ void nr_ue_measurement_procedures(uint16_t l, NR_DL_FRAME_PARMS *frame_parms=&ue->frame_parms; int frame_rx = proc->frame_rx; int nr_slot_rx = proc->nr_slot_rx; + int gNB_id = proc->gNB_id; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_MEASUREMENT_PROCEDURES, VCD_FUNCTION_IN); if (l==2) { @@ -374,8 +371,7 @@ void nr_ue_measurement_procedures(uint16_t l, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_MEASUREMENT_PROCEDURES, VCD_FUNCTION_OUT); } -static void nr_ue_pbch_procedures(uint8_t gNB_id, - PHY_VARS_NR_UE *ue, +static void nr_ue_pbch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int estimateSz, struct complex16 dl_ch_estimates[][estimateSz], @@ -387,6 +383,7 @@ static void nr_ue_pbch_procedures(uint8_t gNB_id, int frame_rx = proc->frame_rx; int nr_slot_rx = proc->nr_slot_rx; + int gNB_id = proc->gNB_id; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES, VCD_FUNCTION_IN); @@ -398,7 +395,6 @@ static void nr_ue_pbch_procedures(uint8_t gNB_id, dl_ch_estimates, ue->pbch_vars[gNB_id], &ue->frame_parms, - gNB_id, (ue->frame_parms.ssb_index)&7, SISO, phy_data, @@ -504,8 +500,7 @@ unsigned int nr_get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb #ifdef NR_PDCCH_SCHED -int nr_ue_pdcch_procedures(uint8_t gNB_id, - PHY_VARS_NR_UE *ue, +int nr_ue_pdcch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int32_t pdcch_est_size, int32_t pdcch_dl_ch_estimates[][pdcch_est_size], @@ -513,6 +508,7 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id, int n_ss, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { + int gNB_id = proc->gNB_id; int frame_rx = proc->frame_rx; int nr_slot_rx = proc->nr_slot_rx; unsigned int dci_cnt=0; @@ -561,7 +557,7 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id, dci_ind.number_of_dcis = dci_cnt; // fill dl_indication message - nr_fill_dl_indication(&dl_indication, &dci_ind, NULL, proc, ue, gNB_id, phy_data); + nr_fill_dl_indication(&dl_indication, &dci_ind, NULL, proc, ue, phy_data); // send to mac ue->if_inst->dl_indication(&dl_indication, NULL); @@ -575,7 +571,6 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id, int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t *llr[2], int16_t *layer_llr[NR_MAX_NB_LAYERS], @@ -584,7 +579,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, int frame_rx = proc->frame_rx; int nr_slot_rx = proc->nr_slot_rx; int m; - int gNB_id_i; int first_symbol_flag=0; if (!dlsch[0].active) @@ -615,9 +609,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, LOG_D(PHY,"PDSCH Channel estimation gNB id %d, PDSCH antenna port %d, slot %d, symbol %d\n",0,aatx,nr_slot_rx,m); nr_pdsch_channel_estimation(ue, proc, - gNB_id, is_SI, - nr_slot_rx, get_dmrs_port(aatx,dlsch0->dlsch_config.dmrs_ports), m, dlsch0->dlsch_config.nscid, @@ -642,7 +634,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, } } } - nr_ue_measurement_procedures(2, ue, proc, gNB_id, &dlsch[0], pdsch_est_size, pdsch_dl_ch_estimates); + nr_ue_measurement_procedures(2, ue, proc, &dlsch[0], pdsch_est_size, pdsch_dl_ch_estimates); if (ue->chest_time == 1) { // averaging time domain channel estimates nr_chest_time_domain_avg(&ue->frame_parms, @@ -699,7 +691,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, start_meas(&ue->rx_pdsch_stats); for (m = s0; m < (s1 + s0); m++) { - gNB_id_i = gNB_id+1; if (m==first_symbol_with_data) first_symbol_flag = 1; else @@ -714,10 +705,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, if (nr_rx_pdsch(ue, proc, dlsch, - gNB_id, - gNB_id_i, - frame_rx, - nr_slot_rx, m, first_symbol_flag, harq_pid, @@ -763,7 +750,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t* llr[2]) { @@ -772,6 +758,7 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, return 1; } + int gNB_id = proc->gNB_id; bool dec = false; int harq_pid = dlsch[0].dlsch_config.harq_process_nbr; int frame_rx = proc->frame_rx; @@ -864,8 +851,8 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, break; } - nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, gNB_id, NULL); - nr_fill_rx_indication(rx_ind, ind_type, gNB_id, ue, &dlsch[0], NULL, number_pdus, proc, NULL); + nr_fill_dl_indication(&dl_indication, NULL, rx_ind, proc, ue, NULL); + nr_fill_rx_indication(rx_ind, ind_type, ue, &dlsch[0], NULL, number_pdus, proc, NULL); LOG_D(PHY, "In %s DL PDU length in bits: %d, in bytes: %d \n", __FUNCTION__, dlsch[0].dlsch_config.TBS, dlsch[0].dlsch_config.TBS / 8); @@ -1067,11 +1054,11 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - uint8_t gNB_id, nr_phy_data_t *phy_data) { int frame_rx = proc->frame_rx; int nr_slot_rx = proc->nr_slot_rx; + int gNB_id = proc->gNB_id; fapi_nr_config_request_t *cfg = &ue->nrUE_config; NR_DL_FRAME_PARMS *fp = &ue->frame_parms; NR_UE_PDCCH_CONFIG *phy_pdcch_config = &phy_data->phy_pdcch_config; @@ -1112,7 +1099,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, nr_slot_fep(ue, proc, (ssb_start_symbol+i)%(fp->symbols_per_slot), - nr_slot_rx, rxdataF); start_meas(&ue->dlsch_channel_estimation_stats); @@ -1121,8 +1107,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, dl_ch_estimates, dl_ch_estimates_time, proc, - gNB_id, - nr_slot_rx, (ssb_start_symbol+i)%(fp->symbols_per_slot), i-1, ssb_index&7, @@ -1131,7 +1115,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, stop_meas(&ue->dlsch_channel_estimation_stats); } - nr_ue_ssb_rsrp_measurements(ue, ssb_index, proc, nr_slot_rx, rxdataF); + nr_ue_ssb_rsrp_measurements(ue, ssb_index, proc, rxdataF); // resetting ssb index for PBCH detection if there is a stronger SSB index if(ue->measurements.ssb_rsrp_dBm[ssb_index] > ue->measurements.ssb_rsrp_dBm[fp->ssb_index]) @@ -1140,7 +1124,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, if(ssb_index == fp->ssb_index) { LOG_D(PHY," ------ Decode MIB: frame.slot %d.%d ------ \n", frame_rx%1024, nr_slot_rx); - nr_ue_pbch_procedures(gNB_id, ue, proc, estimateSz, dl_ch_estimates, phy_data, rxdataF); + nr_ue_pbch_procedures(ue, proc, estimateSz, dl_ch_estimates, phy_data, rxdataF); if (ue->no_timing_correction==0) { LOG_D(PHY,"start adjust sync slot = %d no timing %d\n", nr_slot_rx, ue->no_timing_correction); @@ -1156,7 +1140,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, } } LOG_D(PHY, "Doing N0 measurements in %s\n", __FUNCTION__); - nr_ue_rrc_measurements(ue, proc, nr_slot_rx, rxdataF); + nr_ue_rrc_measurements(ue, proc, rxdataF); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PBCH, VCD_FUNCTION_OUT); } } @@ -1178,11 +1162,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, nr_slot_fep(ue, proc, (j%fp->symbols_per_slot), - nr_slot_rx, rxdataF); } - nr_prs_channel_estimation(gNB_id, - rsc_id, + nr_prs_channel_estimation(rsc_id, i, ue, proc, @@ -1221,7 +1203,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, nr_slot_fep(ue, proc, l, - nr_slot_rx, rxdataF); } @@ -1237,8 +1218,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, nr_pdcch_channel_estimation(ue, proc, - gNB_id, - nr_slot_rx, l, &phy_pdcch_config->pdcch_config[n_ss].coreset, fp->first_carrier_offset, @@ -1250,7 +1229,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, stop_meas(&ue->ofdm_demod_stats); } - dci_cnt = dci_cnt + nr_ue_pdcch_procedures(gNB_id, ue, proc, pdcch_est_size, pdcch_dl_ch_estimates, phy_data, n_ss, rxdataF); + dci_cnt = dci_cnt + nr_ue_pdcch_procedures(ue, proc, pdcch_est_size, pdcch_dl_ch_estimates, phy_data, n_ss, rxdataF); } phy_pdcch_config->nb_search_space = 0; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PDCCH, VCD_FUNCTION_OUT); @@ -1272,7 +1251,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, nr_slot_fep(ue, proc, m, //to be updated from higher layer - nr_slot_rx, rxdataF); } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PDSCH, VCD_FUNCTION_OUT); @@ -1316,7 +1294,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_C, VCD_FUNCTION_IN); ret_pdsch = nr_ue_pdsch_procedures(ue, proc, - gNB_id, dlsch, llr, layer_llr, @@ -1332,7 +1309,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, start_meas(&ue->dlsch_procedures_stat); if (ret_pdsch >= 0) - nr_ue_dlsch_procedures(ue, proc, gNB_id, dlsch, llr); + nr_ue_dlsch_procedures(ue, proc, dlsch, llr); stop_meas(&ue->dlsch_procedures_stat); if (cpumeas(CPUMEAS_GETSTATE)) { @@ -1364,10 +1341,10 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, } l_csiim[symb_idx] = ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx]; if(nr_slot_fep_done == false) { - nr_slot_fep(ue, proc, ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx], nr_slot_rx, rxdataF); + nr_slot_fep(ue, proc, ue->csiim_vars[gNB_id]->csiim_config_pdu.l_csiim[symb_idx], rxdataF); } } - nr_ue_csi_im_procedures(ue, proc, gNB_id, rxdataF); + nr_ue_csi_im_procedures(ue, proc, rxdataF); ue->csiim_vars[gNB_id]->active = 0; } @@ -1375,10 +1352,10 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, if ((ue->csirs_vars[gNB_id]) && (ue->csirs_vars[gNB_id]->active == 1)) { for(int symb = 0; symb < NR_SYMBOLS_PER_SLOT; symb++) { if(is_csi_rs_in_symbol(ue->csirs_vars[gNB_id]->csirs_config_pdu,symb)) { - nr_slot_fep(ue, proc, symb, nr_slot_rx, rxdataF); + nr_slot_fep(ue, proc, symb, rxdataF); } } - nr_ue_csi_rs_procedures(ue, proc, gNB_id, rxdataF); + nr_ue_csi_rs_procedures(ue, proc, rxdataF); ue->csirs_vars[gNB_id]->active = 0; } @@ -1431,8 +1408,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, // todo: // - power control as per 38.213 ch 7.4 -void nr_ue_prach_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t gNB_id) { +void nr_ue_prach_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc) { + int gNB_id = proc->gNB_id; int frame_tx = proc->frame_tx, nr_slot_tx = proc->nr_slot_tx, prach_power; // tx_amp uint8_t mod_id = ue->Mod_id; uint8_t nr_prach = 0; diff --git a/openair1/SCHED_NR_UE/pucch_uci_ue_nr.c b/openair1/SCHED_NR_UE/pucch_uci_ue_nr.c index a10e6a29b4..5e53b3e17b 100644 --- a/openair1/SCHED_NR_UE/pucch_uci_ue_nr.c +++ b/openair1/SCHED_NR_UE/pucch_uci_ue_nr.c @@ -199,11 +199,10 @@ void nr_generate_pucch3_4(int32_t **txdataF, *********************************************************************/ void pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, - uint8_t gNB_id, UE_nr_rxtx_proc_t *proc, nr_phy_data_tx_t *phy_data) { - int nr_slot_tx = proc->nr_slot_tx; + int nr_slot_tx = proc->nr_slot_tx; fapi_nr_ul_config_pucch_pdu *pucch_pdu; NR_UE_PUCCH *pucch_vars = &phy_data->pucch_vars; diff --git a/openair1/SCHED_NR_UE/pucch_uci_ue_nr.h b/openair1/SCHED_NR_UE/pucch_uci_ue_nr.h index 7f8bf13da3..26404427ce 100644 --- a/openair1/SCHED_NR_UE/pucch_uci_ue_nr.h +++ b/openair1/SCHED_NR_UE/pucch_uci_ue_nr.h @@ -60,7 +60,6 @@ /*************** FUNCTIONS ****************************************/ void pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, - uint8_t gNB_id, UE_nr_rxtx_proc_t *proc, nr_phy_data_tx_t *phy_data); diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c index b786421c9f..6a784a21e6 100644 --- a/openair1/SIMULATION/NR_PHY/dlsim.c +++ b/openair1/SIMULATION/NR_PHY/dlsim.c @@ -1096,6 +1096,7 @@ int main(int argc, char **argv) UE->rx_offset=0; UE_proc.frame_rx = frame; UE_proc.nr_slot_rx = slot; + UE_proc.gNB_id = 0; dcireq.frame = frame; dcireq.slot = slot; @@ -1277,7 +1278,6 @@ int main(int argc, char **argv) phy_procedures_nrUE_RX(UE, &UE_proc, - 0, &phy_data); //---------------------------------------------------------- diff --git a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c index ca9cf61115..dd5082d756 100644 --- a/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c +++ b/openair1/SIMULATION/NR_PHY/nr_dummy_functions.c @@ -78,11 +78,9 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind, fapi_nr_rx_indication_t *rx_ind, UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, - uint8_t gNB_id, void *phy_data) {} void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind, uint8_t pdu_type, - uint8_t gNB_id, PHY_VARS_NR_UE *ue, NR_UE_DLSCH_t *dlsch0, NR_UE_DLSCH_t *dlsch1, diff --git a/openair1/SIMULATION/NR_PHY/pbchsim.c b/openair1/SIMULATION/NR_PHY/pbchsim.c index cf332c0137..179bcf8a45 100644 --- a/openair1/SIMULATION/NR_PHY/pbchsim.c +++ b/openair1/SIMULATION/NR_PHY/pbchsim.c @@ -81,8 +81,7 @@ nrUE_params_t *get_nrUE_params(void) { void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq) {} -int nr_ue_pdcch_procedures(uint8_t gNB_id, - PHY_VARS_NR_UE *ue, +int nr_ue_pdcch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int32_t pdcch_est_size, int32_t pdcch_dl_ch_estimates[][pdcch_est_size], @@ -94,7 +93,6 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id, int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t *llr[2], int16_t *layer_llr[NR_MAX_NB_LAYERS], @@ -104,7 +102,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, - int gNB_id, NR_UE_DLSCH_t dlsch[2], int16_t *llr[2]) { return false; @@ -762,15 +759,16 @@ int main(int argc, char **argv) UE->symbol_offset = nr_get_ssb_start_symbol(frame_parms,ssb_index); int ssb_slot = (UE->symbol_offset/14)+(n_hf*(frame_parms->slots_per_frame>>1)); + proc.nr_slot_rx = ssb_slot; + proc.gNB_id = 0; for (int i=UE->symbol_offset+1; isymbol_offset+4; i++) { nr_slot_fep(UE, &proc, i%frame_parms->symbols_per_slot, - ssb_slot, rxdataF); nr_pbch_channel_estimation(UE,estimateSz, dl_ch_estimates, dl_ch_estimates_time, &proc, - 0,ssb_slot,i%frame_parms->symbols_per_slot,i-(UE->symbol_offset+1),ssb_index%8,n_hf,rxdataF); + i%frame_parms->symbols_per_slot,i-(UE->symbol_offset+1),ssb_index%8,n_hf,rxdataF); } fapiPbch_t result; @@ -779,7 +777,6 @@ int main(int argc, char **argv) estimateSz, dl_ch_estimates, UE->pbch_vars[0], frame_parms, - 0, ssb_index%8, SISO, &phy_data, diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index 631ef803d9..e839563ef6 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -304,7 +304,6 @@ int main(int argc, char **argv) uint16_t nb_rb = 50; int Imcs = 9; uint8_t precod_nbr_layers = 1; - int gNB_id = 0; int tx_offset; int32_t txlev_sum = 0, atxlev[4]; int start_rb = 0; @@ -1101,6 +1100,7 @@ int main(int argc, char **argv) UE_proc.nr_slot_tx = slot; UE_proc.frame_tx = frame; + UE_proc.gNB_id = 0; UL_tti_req->SFN = frame; UL_tti_req->Slot = slot; @@ -1244,7 +1244,7 @@ int main(int argc, char **argv) /////////////////////////phy_procedures_nr_ue_TX/////////////////////// /////////// - phy_procedures_nrUE_TX(UE, &UE_proc, gNB_id, &phy_data); + phy_procedures_nrUE_TX(UE, &UE_proc, &phy_data); if (n_trials == 1) { LOG_M("txsig0.m", "txs0", &UE->common_vars.txdata[0][slot_offset], slot_length, 1, 1);