diff --git a/common/utils/telnetsrv/telnetsrv_cpumeasur_def.h b/common/utils/telnetsrv/telnetsrv_cpumeasur_def.h index a3f60a5bec..bbc9cb664d 100644 --- a/common/utils/telnetsrv/telnetsrv_cpumeasur_def.h +++ b/common/utils/telnetsrv/telnetsrv_cpumeasur_def.h @@ -110,8 +110,6 @@ {"ulsch_ldpc_encoding_stats", &(UE->ulsch_ldpc_encoding_stats),0,1},\ {"ulsch_interleaving_stats", &(UE->ulsch_interleaving_stats),0,1},\ {"ulsch_multiplexing_stats", &(UE->ulsch_multiplexing_stats),0,1},\ - {"generic_stat", &(UE->generic_stat),0,1},\ - {"generic_stat_bis", &(UE->generic_stat_bis[0]),0,LTE_SLOTS_PER_SUBFRAME},\ {"ofdm_demod_stats", &(UE->ofdm_demod_stats),0,1},\ {"dlsch_rx_pdcch_stats", &(UE->dlsch_rx_pdcch_stats),0,1},\ {"rx_dft_stats", &(UE->rx_dft_stats),0,1},\ diff --git a/nfapi/oai_integration/nfapi_pnf.c b/nfapi/oai_integration/nfapi_pnf.c index 0a7b53b9ea..2e2bea2061 100644 --- a/nfapi/oai_integration/nfapi_pnf.c +++ b/nfapi/oai_integration/nfapi_pnf.c @@ -879,7 +879,6 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap if (req->sch_config.physical_cell_id.tl.tag == NFAPI_SCH_CONFIG_PHYSICAL_CELL_ID_TAG) { fp->Nid_cell = req->sch_config.physical_cell_id.value; - fp->nushift = fp->Nid_cell%6; num_tlv++; } @@ -1049,8 +1048,7 @@ int nr_config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, n } if (req->cell_config.phy_cell_id.tl.tag == NFAPI_NR_CONFIG_PHY_CELL_ID_TAG) { - fp->Nid_cell = req->cell_config.phy_cell_id.value; //sch_config.physical_cell_id.value; - fp->nushift = fp->Nid_cell%6; + fp->Nid_cell = req->cell_config.phy_cell_id.value; // sch_config.physical_cell_id.value; num_tlv++; } diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c index 116f72deab..98606e7f3c 100644 --- a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c +++ b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c @@ -86,8 +86,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, c16_t **ul_ch_estimates = (c16_t **)pusch_vars->ul_ch_estimates; const int symbolSize = gNB->frame_parms.ofdm_symbol_size; const int soffset = (Ns&3)*gNB->frame_parms.symbols_per_slot*symbolSize; - const int nushift = (p>>1)&1; - gNB->frame_parms.nushift = nushift; + const int nushift = (p >> 1) & 1; int ch_offset = symbolSize*symbol; const int symbol_offset = symbolSize*symbol; 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 0d78f75612..ad88e708f2 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -635,18 +635,13 @@ int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue, c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]) { int pilot[200] __attribute__((aligned(16))); - unsigned short k; unsigned int pilot_cnt; int16_t ch[2],*pil,*rxF; int symbol_offset; - - uint8_t nushift; uint8_t ssb_index=current_ssb->i_ssb; uint8_t n_hf=current_ssb->n_hf; - nushift = ue->frame_parms.Nid_cell%4; - ue->frame_parms.nushift = nushift; unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier; if (ssb_offset>= ue->frame_parms.ofdm_symbol_size) ssb_offset-=ue->frame_parms.ofdm_symbol_size; @@ -656,8 +651,7 @@ int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue, symbol_offset = ue->frame_parms.ofdm_symbol_size*symbol; - - k = nushift; + unsigned int k = ue->frame_parms.Nid_cell % 4; #ifdef DEBUG_PBCH 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); @@ -805,8 +799,7 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue, //int slot_pbch; uint8_t nushift; - nushift = ue->frame_parms.Nid_cell%4; - ue->frame_parms.nushift = nushift; + nushift = ue->frame_parms.Nid_cell % 4; unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier; if (ssb_offset>= ue->frame_parms.ofdm_symbol_size) ssb_offset-=ue->frame_parms.ofdm_symbol_size; @@ -1660,12 +1653,8 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, uint8_t nushift = 0; if (config_type == NFAPI_NR_DMRS_TYPE1) { nushift = (p >> 1) & 1; - if (p < 4) - ue->frame_parms.nushift = nushift; } else { // NFAPI_NR_DMRS_TYPE2 nushift = delta; - if (p < 6) - ue->frame_parms.nushift = nushift; } delay_t delay = {0}; diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c index 37feb297eb..08e641d127 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c @@ -406,8 +406,11 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, //--------------------- RBs extraction --------------------- //---------------------------------------------------------- const int n_rx = frame_parms->nb_antennas_rx; + time_stats_t meas = {0}; + const bool meas_enabled = cpumeas(CPUMEAS_GETSTATE); - start_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) + start_meas(&meas); { __attribute__((aligned(32))) c16_t rxdataF_ext[nbRx][rx_size_symbol]; memset(rxdataF_ext, 0, sizeof(rxdataF_ext)); @@ -429,14 +432,21 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, frame_parms, dlsch[0].dlsch_config.dlDmrsSymbPos, ue->chest_time); - stop_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) { + stop_meas(&meas); + LOG_D(PHY, + "[AbsSFN %u.%d] Slot%d Symbol %d: Pilot/Data extraction %5.2f \n", + frame, + nr_slot_rx, + slot, + symbol, + meas.p_time / (cpuf * 1000.0)); + } if (ue->phy_sim_pdsch_rxdataF_ext) for (unsigned char aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) { int offset = ((void *)rxdataF_ext[aarx] - (void *)rxdataF_ext) + symbol * rx_size_symbol; memcpy(ue->phy_sim_pdsch_rxdataF_ext + offset, rxdataF_ext, rx_size_symbol * sizeof(c16_t)); } - if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Pilot/Data extraction %5.2f \n", frame, nr_slot_rx, slot, symbol, ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); nb_re_pdsch = (pilots == 1) ? ((config_type == NFAPI_NR_DMRS_TYPE1) ? nb_rb_pdsch * (12 - 6 * dlsch[0].dlsch_config.n_dmrs_cdm_groups) : nb_rb_pdsch * (12 - 4 * dlsch[0].dlsch_config.n_dmrs_cdm_groups)) @@ -444,18 +454,26 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, //---------------------------------------------------------- //--------------------- Channel Scaling -------------------- //---------------------------------------------------------- - start_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) + start_meas(&meas); nr_dlsch_scale_channel(rx_size_symbol, dl_ch_estimates_ext, frame_parms, nl, n_rx, symbol, pilots, nb_re_pdsch, nb_rb_pdsch); - stop_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) { + stop_meas(&meas); + LOG_D(PHY, + "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Scale %5.2f \n", + frame, + nr_slot_rx, + slot, + symbol, + meas.p_time / (cpuf * 1000.0)); + } - if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Scale %5.2f \n", frame, nr_slot_rx, slot, symbol, ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); - - //---------------------------------------------------------- - //--------------------- Channel Level Calc. ---------------- - //---------------------------------------------------------- - start_meas(&ue->generic_stat_bis[slot]); - if (first_symbol_flag==1) { + //---------------------------------------------------------- + //--------------------- Channel Level Calc. ---------------- + //---------------------------------------------------------- + if (meas_enabled) + start_meas(&meas); + if (first_symbol_flag == 1) { nr_dlsch_channel_level(rx_size_symbol, dl_ch_estimates_ext, frame_parms, nl, avg, symbol, nb_re_pdsch, nb_rb_pdsch); avgs = 0; for (aatx=0;aatxgeneric_stat_bis[slot]); - + } + if (meas_enabled) { + stop_meas(&meas); + LOG_D(PHY, + "[AbsSFN %u.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n", + frame, + nr_slot_rx, + slot, + symbol, + first_symbol_flag, + meas.p_time / (cpuf * 1000.0)); + } #if T_TRACER - T(T_UE_PHY_PDSCH_ENERGY, T_INT(gNB_id), T_INT(0), T_INT(frame%1024), T_INT(nr_slot_rx), - T_INT(avg[0]), T_INT(avg[1]), T_INT(avg[2]), T_INT(avg[3])); + T(T_UE_PHY_PDSCH_ENERGY, + T_INT(gNB_id), + T_INT(0), + T_INT(frame % 1024), + T_INT(nr_slot_rx), + T_INT(avg[0]), + T_INT(avg[1]), + T_INT(avg[2]), + T_INT(avg[3])); #endif - if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, - "[AbsSFN %u.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n", - frame, nr_slot_rx, slot, symbol, first_symbol_flag, ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); - - //---------------------------------------------------------- - //--------------------- channel compensation --------------- - //---------------------------------------------------------- - // Disable correlation measurement for optimizing UE - start_meas(&ue->generic_stat_bis[slot]); - nr_dlsch_channel_compensation(rx_size_symbol, - nbRx, - rxdataF_ext, - dl_ch_estimates_ext, - dl_ch_mag, - dl_ch_magb, - dl_ch_magr, - rxdataF_comp, - NULL, - frame_parms, - nl, - symbol, - nb_re_pdsch, - first_symbol_flag, - dlsch[0].dlsch_config.qamModOrder, - nb_rb_pdsch, - *log2_maxh, - measurements); // log2_maxh+I0_shift - stop_meas(&ue->generic_stat_bis[slot]); - } - if (cpumeas(CPUMEAS_GETSTATE)) + //---------------------------------------------------------- + //--------------------- channel compensation --------------- + //---------------------------------------------------------- + // Disable correlation measurement for optimizing UE + if (meas_enabled) + start_meas(&meas); + nr_dlsch_channel_compensation(rx_size_symbol, + nbRx, + rxdataF_ext, + dl_ch_estimates_ext, + dl_ch_mag, + dl_ch_magb, + dl_ch_magr, + rxdataF_comp, + NULL, + frame_parms, + nl, + symbol, + nb_re_pdsch, + first_symbol_flag, + dlsch[0].dlsch_config.qamModOrder, + nb_rb_pdsch, + *log2_maxh, + measurements); // log2_maxh+I0_shift + if (meas_enabled) { + stop_meas(&meas); LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d log2_maxh %d Channel Comp %5.2f \n", frame, @@ -522,22 +551,54 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, slot, symbol, *log2_maxh, - ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); + meas.p_time / (cpuf * 1000.0)); + } + } - start_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) + start_meas(&meas); if (n_rx > 1) { - nr_dlsch_detection_mrc(rx_size_symbol, nl, n_rx, rxdataF_comp, NULL, dl_ch_mag, dl_ch_magb, dl_ch_magr, symbol, nb_rb_pdsch, nb_re_pdsch); - if (nl >= 2)//Apply zero forcing for 2, 3, and 4 Tx layers - nr_zero_forcing_rx( - rx_size_symbol, n_rx, nl, rxdataF_comp, dl_ch_mag, dl_ch_magb, dl_ch_magr, dl_ch_estimates_ext, nb_rb_pdsch, dlsch[0].dlsch_config.qamModOrder, *log2_maxh, symbol, nb_re_pdsch); + nr_dlsch_detection_mrc(rx_size_symbol, + nl, + n_rx, + rxdataF_comp, + NULL, + dl_ch_mag, + dl_ch_magb, + dl_ch_magr, + symbol, + nb_rb_pdsch, + nb_re_pdsch); + if (nl >= 2) // Apply zero forcing for 2, 3, and 4 Tx layers + nr_zero_forcing_rx(rx_size_symbol, + n_rx, + nl, + rxdataF_comp, + dl_ch_mag, + dl_ch_magb, + dl_ch_magr, + dl_ch_estimates_ext, + nb_rb_pdsch, + dlsch[0].dlsch_config.qamModOrder, + *log2_maxh, + symbol, + nb_re_pdsch); } - stop_meas(&ue->generic_stat_bis[slot]); - if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Combine and zero forcing %5.2f \n", frame, nr_slot_rx, slot, symbol, ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); + if (meas_enabled) { + stop_meas(&meas); + LOG_D(PHY, + "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Combine and zero forcing %5.2f \n", + frame, + nr_slot_rx, + slot, + symbol, + meas.p_time / (cpuf * 1000.0)); + } - start_meas(&ue->generic_stat_bis[slot]); + if (meas_enabled) + start_meas(&meas); /* Store the valid DL RE's */ dl_valid_re[symbol-1] = nb_re_pdsch; @@ -652,9 +713,16 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, #endif } - stop_meas(&ue->generic_stat_bis[slot]); - if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation %5.2f \n", frame, nr_slot_rx, slot, symbol, ue->generic_stat_bis[slot].p_time / (cpuf * 1000.0)); + if (meas_enabled) { + stop_meas(&meas); + LOG_D(PHY, + "[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation %5.2f \n", + frame, + nr_slot_rx, + slot, + symbol, + meas.p_time / (cpuf * 1000.0)); + } #if T_TRACER T(T_UE_PHY_PDSCH_IQ, diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c index e89b0e5d1c..2629c00968 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c @@ -57,10 +57,11 @@ static uint16_t nr_pbch_extract(uint32_t rxdataF_sz, struct complex16 dl_ch_estimates_ext[][PBCH_MAX_RE_PER_SYMBOL], uint32_t symbol, uint32_t s_offset, - NR_DL_FRAME_PARMS *frame_parms) { + NR_DL_FRAME_PARMS *frame_parms, + int nushiftmod4) +{ uint16_t rb; - uint8_t i,j,aarx; - int nushiftmod4 = frame_parms->nushift; + uint8_t i, j, aarx; AssertFatal(symbol>=1 && symbol<5, "symbol %d illegal for PBCH extraction\n", symbol); @@ -395,12 +396,12 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue, { int max_h=0; int symbol; - //uint8_t pbch_a[64]; - //FT ?? cppcheck doesn't like pbch_a allocation because of line 525..and i don't get what this variable is for.. - //uint8_t *pbch_a = malloc(sizeof(uint8_t) * NR_POLAR_PBCH_PAYLOAD_BITS); - uint8_t nushift; - uint16_t M; + // uint8_t pbch_a[64]; + // FT ?? cppcheck doesn't like pbch_a allocation because of line 525..and i don't get what this variable is for.. + // uint8_t *pbch_a = malloc(sizeof(uint8_t) * NR_POLAR_PBCH_PAYLOAD_BITS); uint8_t Lmax=frame_parms->Lmax; + int M = NR_POLAR_PBCH_E; + int nushift = (Lmax == 4) ? i_ssb & 3 : i_ssb & 7; //uint16_t crc; //unsigned short idx_demod =0; uint32_t decoderState=0; @@ -440,7 +441,8 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue, dl_ch_estimates_ext, symbol, symbol_offset, - frame_parms); + frame_parms, + nushift); #ifdef DEBUG_PBCH LOG_I(PHY,"[PHY] PBCH Symbol %d ofdm size %d\n",symbol, frame_parms->ofdm_symbol_size ); LOG_I(PHY,"[PHY] PBCH starting channel_level\n"); @@ -496,9 +498,7 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue, printf("pbch rx llr %d\n",*(pbch_e_rx+cnt)); #endif - //un-scrambling - M = NR_POLAR_PBCH_E; - nushift = (Lmax==4)? i_ssb&3 : i_ssb&7; + // un-scrambling uint32_t unscrambling_mask = (Lmax==64)?0x100006D:0x1000041; uint32_t pbch_a_interleaved=0; uint32_t pbch_a_prime=0; diff --git a/openair1/PHY/defs_nr_UE.h b/openair1/PHY/defs_nr_UE.h index 97ff191d65..f9934348c7 100644 --- a/openair1/PHY/defs_nr_UE.h +++ b/openair1/PHY/defs_nr_UE.h @@ -592,8 +592,6 @@ typedef struct { time_stats_t ulsch_interleaving_stats; time_stats_t ulsch_multiplexing_stats; - time_stats_t generic_stat; - time_stats_t generic_stat_bis[LTE_SLOTS_PER_SUBFRAME]; time_stats_t ue_front_end_stat; time_stats_t ue_front_end_per_slot_stat[LTE_SLOTS_PER_SUBFRAME]; time_stats_t pdcch_procedures_stat; diff --git a/openair1/PHY/defs_nr_common.h b/openair1/PHY/defs_nr_common.h index 2acca1ca0c..ad04ee9436 100644 --- a/openair1/PHY/defs_nr_common.h +++ b/openair1/PHY/defs_nr_common.h @@ -229,8 +229,6 @@ struct NR_DL_FRAME_PARMS { c16_t timeshift_symbol_rotation[4096*2] __attribute__ ((aligned (16))); /// Table used to apply the delay compensation in DL/UL c16_t delay_table[2 * MAX_DELAY_COMP + 1][NR_MAX_OFDM_SYMBOL_SIZE]; - /// shift of pilot position in one RB - uint8_t nushift; /// SRS configuration from TS 38.331 RRC SRS_NR srs_nr; /// Power used by SSB in order to estimate signal strength and path loss diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 4502fcbe84..9b1ad3c36f 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -1019,7 +1019,8 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, int gNB_id = proc->gNB_id; NR_UE_DLSCH_t *dlsch = &phy_data->dlsch[0]; - start_meas(&ue->generic_stat); + time_stats_t meas = {0}; + start_meas(&meas); // do procedures for C-RNTI int ret_pdsch = 0; @@ -1131,7 +1132,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, ue->csirs_vars[gNB_id]->active = 0; } - start_meas(&ue->generic_stat); + start_meas(&meas); if (nr_slot_rx==9) { if (frame_rx % 10 == 0) { @@ -1157,9 +1158,9 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, } - stop_meas(&ue->generic_stat); + stop_meas(&meas); if (cpumeas(CPUMEAS_GETSTATE)) - LOG_D(PHY, "after ldpc decode until end of Rx %5.2f \n", ue->generic_stat.p_time / (cpuf * 1000.0)); + LOG_D(PHY, "after ldpc decode until end of Rx %5.2f \n", meas.p_time / (cpuf * 1000.0)); #ifdef EMOS phy_procedures_emos_UE_RX(ue,slot,gNB_id); diff --git a/openair1/SIMULATION/NR_PHY/pbchsim.c b/openair1/SIMULATION/NR_PHY/pbchsim.c index 4a45360ac0..68b7f9fab0 100644 --- a/openair1/SIMULATION/NR_PHY/pbchsim.c +++ b/openair1/SIMULATION/NR_PHY/pbchsim.c @@ -495,7 +495,6 @@ int main(int argc, char **argv) frame_parms->nb_antenna_ports_gNB = n_tx; frame_parms->N_RB_DL = N_RB_DL; frame_parms->Nid_cell = Nid_cell; - frame_parms->nushift = Nid_cell%4; frame_parms->ssb_type = nr_ssb_type_C; frame_parms->freq_range = mu<2 ? nr_FR1 : nr_FR2; diff --git a/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.c b/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.c index 815c12a6a6..04445af3dc 100644 --- a/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.c +++ b/openair1/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.c @@ -233,8 +233,7 @@ int init_test(unsigned char N_tx, unsigned char N_rx, unsigned char transmission frame_parms->N_RB_DL = N_RB_DL; //50 for 10MHz and 25 for 5 MHz frame_parms->N_RB_UL = N_RB_DL; frame_parms->Ncp = extended_prefix_flag; - frame_parms->Nid_cell = Nid_cell; - frame_parms->nushift = Nid_cell%6; + frame_parms->Nid_cell = Nid_cell; frame_parms->nb_antennas_tx = N_tx; frame_parms->nb_antennas_rx = N_rx; frame_parms->frame_type = frame_type;