diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 6af3d87205..2892fe9333 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -943,7 +943,7 @@ static void *eNB_thread(void *arg) if (fs4_test==0) { if (multi_thread == 0) { - phy_procedures_eNB_lte (last_slot, next_slot, PHY_vars_eNB_g[0], 0, no_relay,NULL); + phy_procedures_eNB_lte ((slot+1)>>1, PHY_vars_eNB_g[0], 0, no_relay,NULL); slot_offset_F = (next_slot)* (PHY_vars_eNB_g[0]->lte_frame_parms.ofdm_symbol_size)* ((PHY_vars_eNB_g[0]->lte_frame_parms.Ncp==1) ? 6 : 7); @@ -1009,7 +1009,7 @@ static void *eNB_thread(void *arg) } } else { - LOG_W(PHY,"[eNB] Frame %d, eNB proc %d busy!!\n",PHY_vars_eNB_g[0]->frame,sf); + LOG_W(PHY,"[eNB] Frame %d, eNB proc %d busy!!\n",PHY_vars_eNB_g[0]->proc[sf].frame_tx,sf); } } } diff --git a/targets/RT/USER/sched_ulsch.c b/targets/RT/USER/sched_ulsch.c index e67295fa9c..dafcbd98ce 100644 --- a/targets/RT/USER/sched_ulsch.c +++ b/targets/RT/USER/sched_ulsch.c @@ -158,7 +158,7 @@ static void * ulsch_thread(void *param) { if (oai_exit) break; - LOG_D(PHY,"[SCHED][ULSCH] Frame %d: Calling ulsch_decoding with ulsch_thread_index = %d\n",phy_vars_eNB->frame,ulsch_thread_index); + LOG_D(PHY,"[SCHED][ULSCH] Frame %d: Calling ulsch_decoding with ulsch_thread_index = %d\n",phy_vars_eNB->proc[0].frame_tx,ulsch_thread_index); time_in = rt_get_time_ns(); diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c index c6514e8a9a..b7e21fb4de 100644 --- a/targets/SIMU/USER/channel_sim.c +++ b/targets/SIMU/USER/channel_sim.c @@ -132,6 +132,9 @@ void do_DL_sig(double **r_re0,double **r_im0, uint8_t nb_antennas_rx = eNB2UE[0][0]->nb_rx; // number of rx antennas at UE uint8_t nb_antennas_tx = eNB2UE[0][0]->nb_tx; // number of tx antennas at eNB + int subframe_sched = ((next_slot>>1) == 0) ? 9 : ((next_slot>>1)-1); + + if (next_slot==0) hold_channel = 0; else @@ -248,7 +251,7 @@ void do_DL_sig(double **r_re0,double **r_im0, start_meas(&PHY_vars_eNB_g[eNB_id]->ofdm_mod_stats); do_OFDM_mod(PHY_vars_eNB_g[eNB_id]->lte_eNB_common_vars.txdataF[0], PHY_vars_eNB_g[eNB_id]->lte_eNB_common_vars.txdata[0], - ((next_slot==19) ? -1 : 0 ) + PHY_vars_eNB_g[eNB_id]->frame,next_slot, + PHY_vars_eNB_g[eNB_id]->proc[subframe_sched].frame_tx,next_slot, &PHY_vars_eNB_g[eNB_id]->lte_frame_parms); stop_meas(&PHY_vars_eNB_g[eNB_id]->ofdm_mod_stats); } diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c index 23489f125e..f56aa030d1 100644 --- a/targets/SIMU/USER/oaisim.c +++ b/targets/SIMU/USER/oaisim.c @@ -423,6 +423,7 @@ void *l2l1_task(void *args_p) { lte_subframe_t direction; char fname[64], vname[64]; + int sf; #ifdef XFORMS // current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0) @@ -448,6 +449,14 @@ void *l2l1_task(void *args_p) { char eNB_stats_th_filename[255]; #endif + for (eNB_inst=0;eNB_instproc[sf].frame_tx = 0; + PHY_vars_eNB_g[eNB_inst]->proc[sf].frame_rx = 0; + } + PHY_vars_eNB_g[eNB_inst]->proc[0].frame_rx = 1023; + PHY_vars_eNB_g[eNB_inst]->proc[9].frame_tx = 1; + } #ifdef XFORMS xargv[0] = xname; fl_initialize (&xargc, xargv, NULL, 0, 0); @@ -699,7 +708,8 @@ void *l2l1_task(void *args_p) { #endif // PHY_vars_eNB_g[eNB_id]->frame = frame; - phy_procedures_eNB_lte (last_slot, next_slot, PHY_vars_eNB_g[eNB_inst], abstraction_flag, no_relay, NULL); + if ((slot&1) == 0) + phy_procedures_eNB_lte (slot>>1,PHY_vars_eNB_g[eNB_inst], abstraction_flag, no_relay, NULL); #ifdef PRINT_STATS if(last_slot==9 && frame%10==0) @@ -839,7 +849,7 @@ void *l2l1_task(void *args_p) { // RN == eNB LOG_D(EMU,"[RN %d] PHY procedures eNB %d for frame %d, slot %d (subframe TX %d, RX %d)\n", RN_id, eNB_inst, frame, slot, next_slot >> 1,last_slot>>1); - phy_procedures_eNB_lte (last_slot, next_slot, PHY_vars_eNB_g[eNB_inst], abstraction_flag, + phy_procedures_eNB_lte(slot>>1, PHY_vars_eNB_g[eNB_inst], abstraction_flag, r_type, PHY_vars_RN_g[RN_id]); } else {