diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 014c616e5469ca2974edd8c38bc79bb3eb9c2142..23f4bbcaa50eb2a16e5ac025d27e7a163d688ef4 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -1992,11 +1992,11 @@ ID = UE_PHY_DL_CHANNEL_ESTIMATE ID = UE_PHY_PDCCH_IQ DESC = UE PDCCH received IQ data GROUP = ALL:PHY:GRAPHIC:HEAVY:UE - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,I : int,Q + FORMAT = int,nb_rb : int,NB_RB_DL : int,symbols_per_tti : buffer,rxdataF_comp ID = UE_PHY_PDCCH_ENERGY DESC = UE PDSCH 1 energy and threshold GROUP = ALL:PHY:GRAPHIC:HEAVY:UE - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,energy : int,threshold + FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,pdcch_ch_level00 : int,pdcch_ch_level01 : int,pdcch_ch_level10: int,pdcch_ch_level11 ID = UE_PHY_PDSCH_IQ DESC = UE PDSCH received IQ data GROUP = ALL:PHY:GRAPHIC:HEAVY:UE @@ -2004,12 +2004,16 @@ ID = UE_PHY_PDSCH_IQ ID = UE_PHY_PDSCH_ENERGY DESC = UE PDSCH 1 energy and threshold GROUP = ALL:PHY:GRAPHIC:HEAVY:UE - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,energy : int,threshold + FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,pdsch_ch_level00 : int,pdsch_ch_level01 : int,pdsch_ch_level10: int,pdsch_ch_level11 ID = UE_PHY_PUSCH_TX_POWER DESC = UE PUSCH tx power GROUP = ALL:PHY:GRAPHIC:HEAVY:UE - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,power + FORMAT = int,eNB_ID : int,UE_id : int,frame : int,subframe : int,p0_pusch : int,ampl ID = UE_PHY_PUCCH_TX_POWER DESC = UE PDSCH 1 energy and threshold GROUP = ALL:PHY:GRAPHIC:HEAVY:UE - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,power + FORMAT = int,eNB_ID : int,UE_id : int,frame : int,subframe : int,p0_pucch : int,ampl +ID = UE_PHY_MEAS + DESC = UE PHY measurements + GROUP = ALL:PHY:GRAPHIC:HEAVY:UE + FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,rsrp : int,rssi : int,snr diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c index 6c44fa1e99a3e51d0933d486a3f3700b711634fa..760486933ae19337e16512e2c867096da4e5b68d 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c @@ -25,6 +25,7 @@ #include "defs.h" #include "PHY/defs.h" #include "filt96_32.h" +#include "T.h" //#define DEBUG_CH int lte_dl_channel_estimation(PHY_VARS_UE *ue, @@ -739,7 +740,7 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, } #if T_TRACER - T(T_ENB_PHY_UL_CHANNEL_ESTIMATE, T_INT(eNB_id), T_INT(ue->Mod_id), + T(T_UE_PHY_DL_CHANNEL_ESTIMATE, T_INT(eNB_id), T_INT(ue->Mod_id), T_INT(ue->proc.proc_rxtx[(Ns>>1)&1].frame_rx%1024), T_INT(ue->proc.proc_rxtx[(Ns>>1)&1].subframe_rx), T_INT(0), T_BUFFER(&ue->common_vars.dl_ch_estimates_time[eNB_offset][0][0], 512 * 4)); #endif diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index 5849d40a24069df8bab3655a4895d1b6649fca69..824caa52fa49e07f6647333127a7968df9f0ef9d 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -41,6 +41,7 @@ #include "PHY/sse_intrin.h" #include "assertions.h" +#include "T.h" //#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_DECODING 1 @@ -1684,6 +1685,7 @@ int32_t avgP[4]; int32_t rx_pdcch(LTE_UE_COMMON *common_vars, LTE_UE_PDCCH **pdcch_vars, LTE_DL_FRAME_PARMS *frame_parms, + uint32_t frame, uint8_t subframe, uint8_t eNB_id, MIMO_mode_t mimo_mode, @@ -1754,6 +1756,10 @@ int32_t rx_pdcch(LTE_UE_COMMON *common_vars, LOG_I(PHY,"subframe %d: pdcch log2_maxh = %d (%d,%d)\n",subframe,log2_maxh,avgP[0],avgs); #endif +#if T_TRACER + T(T_UE_PHY_PDCCH_ENERGY, T_INT(eNB_id), T_INT(0), T_INT(frame%1024), T_INT(subframe), + T_INT(avgP[0]), T_INT(avgP[1]), T_INT(avgP[2]), T_INT(avgP[3])); +#endif for (s=0; s<n_pdcch_symbols; s++) { pdcch_channel_compensation(pdcch_vars[eNB_id]->rxdataF_ext, pdcch_vars[eNB_id]->dl_ch_estimates_ext, @@ -1858,10 +1864,11 @@ int32_t rx_pdcch(LTE_UE_COMMON *common_vars, } - T(T_UE_PHY_PDCCH_IQ, T_INT(eNB_id), T_INT(0), - T_INT(-1), T_INT(subframe), - T_INT(0), T_BUFFER(pdcch_vars[eNB_id]->llr, frame_parms->N_RB_DL*12*n_pdcch_symbols* 4)); - +#if T_TRACER + T(T_UE_PHY_PDCCH_IQ, T_INT(frame_parms->N_RB_DL), T_INT(frame_parms->N_RB_DL), + T_INT(n_pdcch_symbols), + T_BUFFER(pdcch_vars[eNB_id]->rxdataF_comp, frame_parms->N_RB_DL*12*n_pdcch_symbols* 4)); +#endif // decode pcfich here n_pdcch_symbols = rx_pcfich(frame_parms, diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 1dfbc9d7df4f5b322c7f460f679817c3522cdcbc..772204216c4ce374d344b47bf37c464ffe8a5ba3 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -5584,6 +5584,16 @@ int generate_ue_dlsch_params_from_dci(int frame, printf("PDSCH dlsch0 UE: pwr_off %d\n",dlsch0_harq->dl_power_off); } +#endif +#if T_TRACER + if( (dlsch[0]->rnti != si_rnti) && (dlsch[0]->rnti != ra_rnti) && (dlsch[0]->rnti != p_rnti)) + { + T(T_UE_PHY_DLSCH_UE_DCI, T_INT(0), T_INT(frame%1024), T_INT(subframe), T_INT(0), + T_INT(dlsch[0]->rnti), T_INT(dci_format), + T_INT(harq_pid), + T_INT(dlsch0_harq->mcs), + T_INT(dlsch0_harq->TBS)); + } #endif dlsch[0]->active=1; diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c index 80501b2cb5249ca65726f2e55ffdf38d4383db37..11d7fcacda4b51324239bb1c6329cdcc10990881 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c @@ -35,7 +35,7 @@ #include "defs.h" #include "extern.h" #include "PHY/sse_intrin.h" - +#include "T.h" #ifndef USER_MODE #define NOCYGWIN_STATIC static @@ -74,6 +74,7 @@ int rx_pdsch(PHY_VARS_UE *ue, PDSCH_t type, unsigned char eNB_id, unsigned char eNB_id_i, //if this == ue->n_connected_eNB, we assume MU interference + uint32_t frame, uint8_t subframe, unsigned char symbol, unsigned char first_symbol_flag, @@ -297,6 +298,13 @@ int rx_pdsch(PHY_VARS_UE *ue, // avgs = cmax(avgs,avg[(aarx<<1)+aatx]); +#if T_TRACER + if (type == PDSCH) + { + T(T_UE_PHY_PDSCH_ENERGY, T_INT(eNB_id), T_INT(0), T_INT(frame%1024), T_INT(subframe), + T_INT(avg[0]), T_INT(avg[1]), T_INT(avg[2]), T_INT(avg[3])); + } +#endif pdsch_vars[eNB_id]->log2_maxh = (log2_approx(avgs)/2)+1; // + log2_approx(frame_parms->nb_antenna_ports_eNB-1) //-1 because log2_approx counts the number of bits @@ -826,11 +834,13 @@ int rx_pdsch(PHY_VARS_UE *ue, break; } - T(T_UE_PHY_PDSCH_IQ, T_INT(eNB_id), T_INT(ue->Mod_id), T_INT(-1), +#if T_TRACER + T(T_UE_PHY_PDSCH_IQ, T_INT(eNB_id), T_INT(ue->Mod_id), T_INT(frame%1024), T_INT(subframe), T_INT(nb_rb), T_INT(frame_parms->N_RB_UL), T_INT(frame_parms->symbols_per_tti), T_BUFFER(&pdsch_vars[eNB_id]->rxdataF_comp0[eNB_id][0], 2 * /* ulsch[UE_id]->harq_processes[harq_pid]->nb_rb */ frame_parms->N_RB_UL *12*frame_parms->symbols_per_tti*2)); +#endif return(0); } diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c index c067106abc6dd627d3d6eb5e04141a4c533113ac..9fcdc774cadb1e4af41348fdf80c29ae712380f4 100644 --- a/openair1/PHY/LTE_TRANSPORT/phich.c +++ b/openair1/PHY/LTE_TRANSPORT/phich.c @@ -1414,8 +1414,10 @@ void rx_phich(PHY_VARS_UE *ue, //LOG_I(PHY,"[HARQ-UL harqId: %d] PHICH NACK ==> subframe_scheduling_flag = %d round: %d\n", harq_pid, ulsch->harq_processes[harq_pid]->subframe_scheduling_flag,ulsch->harq_processes[harq_pid]->round); } } - T(T_UE_PHY_ULSCH_UE_NACK, T_INT(ue->Mod_id), T_INT(proc->frame_rx%1024), T_INT(subframe), T_INT(i), T_INT(ulsch->rnti), +#if T_TRACER + T(T_UE_PHY_ULSCH_UE_NACK, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(subframe), T_INT(ue->Mod_id), T_INT(ulsch->rnti), T_INT(harq_pid)); +#endif } else { //ACK if (ue->ulsch_Msg3_active[eNB_id] == 1) { @@ -1450,8 +1452,11 @@ void rx_phich(PHY_VARS_UE *ue, // inform MAC? ue->ulsch_Msg3_active[eNB_id] = 0; - T(T_UE_PHY_ULSCH_UE_ACK, T_INT(ue->Mod_id), T_INT(proc->frame_rx%1024), T_INT(subframe), T_INT(i), T_INT(ulsch->rnti), +#if T_TRACER + T(T_UE_PHY_ULSCH_UE_ACK, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(subframe), T_INT(ue->Mod_id), T_INT(ulsch->rnti), T_INT(harq_pid)); +#endif + } } diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index 94aa21c7178362ace62b4161521e3f44472796e5..ef0fd131780982b5a2abcd121b265d06a305b3e5 100644 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -1179,6 +1179,7 @@ int32_t rx_pdsch(PHY_VARS_UE *phy_vars_ue, PDSCH_t type, uint8_t eNB_id, uint8_t eNB_id_i, + uint32_t frame, uint8_t subframe, uint8_t symbol, uint8_t first_symbol_flag, @@ -1189,6 +1190,7 @@ int32_t rx_pdsch(PHY_VARS_UE *phy_vars_ue, int32_t rx_pdcch(LTE_UE_COMMON *lte_ue_common_vars, LTE_UE_PDCCH **lte_ue_pdcch_vars, LTE_DL_FRAME_PARMS *frame_parms, + uint32_t frame, uint8_t subframe, uint8_t eNB_id, MIMO_mode_t mimo_mode, diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c index a2d7e379f576c37df104ea6bfef8e96a8f522f64..bd3558a74ca4d5fae8aa25d43029f5b4c38d7b55 100644 --- a/openair1/SCHED/phy_procedures_lte_ue.c +++ b/openair1/SCHED/phy_procedures_lte_ue.c @@ -66,6 +66,8 @@ fifo_dump_emos_UE emos_dump_UE; #include "PHY/CODING/extern.h" +#include "T.h" + #define DLSCH_RB_ALLOC 0x1fbf // skip DC RB (total 23/25 RBs) #define DLSCH_RB_ALLOC_12 0x0aaa // skip DC RB (total 23/25 RBs) @@ -2484,6 +2486,7 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint rx_pdcch(&ue->common_vars, ue->pdcch_vars, &ue->frame_parms, + proc->frame_rx, subframe_rx, eNB_id, (ue->frame_parms.mode1_flag == 1) ? SISO : ALAMOUTI, @@ -2604,11 +2607,12 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint P_RNTI, ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id])==0)) { - T(T_UE_PHY_DLSCH_UE_DCI, T_INT(eNB_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(ue->Mod_id), + + /*T(T_UE_PHY_DLSCH_UE_DCI, T_INT(eNB_id), T_INT(frame_rx%1024), T_INT(subframe_rx), T_INT(ue->Mod_id), T_INT(dci_alloc_rx[i].rnti), T_INT(dci_alloc_rx[i].format), T_INT(ue->dlsch[eNB_id][0]->current_harq_pid), T_INT(ue->dlsch[eNB_id][0]->harq_processes[ue->dlsch[eNB_id][0]->current_harq_pid]->mcs), - T_INT(ue->dlsch[eNB_id][0]->harq_processes[ue->dlsch[eNB_id][0]->current_harq_pid]->TBS)); + T_INT(ue->dlsch[eNB_id][0]->harq_processes[ue->dlsch[eNB_id][0]->current_harq_pid]->TBS));*/ ue->dlsch_received[eNB_id]++; @@ -2750,11 +2754,8 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint eNB_id, 0)==0)) { -#ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[UE %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx); -#endif - - LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; +#if T_TRACER + LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; uint8_t harq_pid = subframe2harq_pid(frame_parms, pdcch_alloc2ul_frame(frame_parms,proc->frame_rx,proc->subframe_rx), pdcch_alloc2ul_subframe(frame_parms,proc->subframe_rx)); @@ -2766,6 +2767,10 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->first_rb), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->nb_rb), T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS)); +#endif +#ifdef DEBUG_PHY_PROC + LOG_D(PHY,"[UE %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx); +#endif } } else if( (dci_alloc_rx[i].rnti == ue->ulsch[eNB_id]->cba_rnti[0]) && @@ -3015,6 +3020,7 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC pdsch, eNB_id, eNB_id_i, + proc->frame_rx, subframe_rx, // subframe, m, first_symbol_flag, diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c index 66dea185de1a039af9cdda09e6660961af5837f6..11b7412f4bcbd661ace21cd4f94378dc1a356958 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c @@ -3199,6 +3199,7 @@ PMI_FEEDBACK: rx_pdcch(&UE->common_vars, UE->pdcch_vars, &UE->frame_parms, + 0, // frame subframe, 0, (UE->frame_parms.mode1_flag == 1) ? SISO : ALAMOUTI, diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c index 04b9d304b39d21be6cefb42d997d2b2bda9c99d2..909468366b706191e6c6c0fe0701b137623c8f40 100644 --- a/openair1/SIMULATION/LTE_PHY/pdcchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pdcchsim.c @@ -1091,6 +1091,7 @@ int main(int argc, char **argv) rx_pdcch(&UE->common_vars, UE->pdcch_vars, &UE->frame_parms, + frame, subframe, 0, (UE->frame_parms.mode1_flag == 1) ? SISO : ALAMOUTI, diff --git a/openair1/SIMULATION/LTE_PHY/syncsim.c b/openair1/SIMULATION/LTE_PHY/syncsim.c index 7e94122e68468090d756dd45caed7d248f579299..f19f71c76f4f4837197569fbee53f54e62a0d5a4 100644 --- a/openair1/SIMULATION/LTE_PHY/syncsim.c +++ b/openair1/SIMULATION/LTE_PHY/syncsim.c @@ -1490,6 +1490,7 @@ int main(int argc, char **argv) rx_pdcch(&PHY_vars_UE[UE_idx]->lte_ue_common_vars, PHY_vars_UE[UE_idx]->lte_ue_pdcch_vars, &PHY_vars_UE[UE_idx]->lte_frame_parms, + frame, subframe, 0, (PHY_vars_UE[UE_idx]->lte_frame_parms.mode1_flag == 1) ? SISO : ALAMOUTI, @@ -1534,6 +1535,7 @@ int main(int argc, char **argv) PDSCH, 0, 1, + frame, subframe, // subframe, l, // symbol (l==PHY_vars_UE[UE_idx]->lte_ue_pdcch_vars[0]->num_pdcch_symbols)?1:0, // first_symbol_flag @@ -1564,6 +1566,7 @@ int main(int argc, char **argv) PDSCH, 0, 1, + frame, subframe, // subframe, l, // symbol 0, // first_symbol_flag @@ -1588,6 +1591,7 @@ int main(int argc, char **argv) PDSCH, 0, 1, + frame, subframe, // subframe, l, // symbol 0, // first_symbol_flag @@ -1618,6 +1622,7 @@ int main(int argc, char **argv) PDSCH, 0, 1, + frame, subframe, // subframe, l, // symbol 0, // first_symbol_flag diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 5ab6b7cddf0491e6f5fe03b70101d4781e4707a7..e71c18a2c159ab3f84e132fc910de92973378e6f 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -75,6 +75,8 @@ #include "UTIL/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" +#include "T.h" + #define FRAME_PERIOD 100000000ULL #define DAQ_PERIOD 66667ULL @@ -1182,6 +1184,9 @@ void *UE_thread(void *arg) { proc->frame_tx = proc->frame_rx + ((proc->subframe_rx>5)?1:0); proc->timestamp_tx = timestamp+(4*UE->frame_parms.samples_per_tti)-UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0; +#if T_TRACER + T(T_UE_MASTER_TICK, T_INT(0), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx)); +#endif /* if (sf != (timestamp/UE->frame_parms.samples_per_tti)%10) { LOG_E(PHY,"steady-state UE_thread error : frame_rx %d, subframe_rx %d, frame_tx %d, subframe_tx %d, rx subframe %d\n",proc->frame_rx,proc->subframe_rx,proc->frame_tx,proc->subframe_tx,(timestamp/UE->frame_parms.samples_per_tti)%10);