Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
15a1af31
Commit
15a1af31
authored
Dec 12, 2016
by
hbilel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[OAI-UE] adapt T-tracer to support OAI-UE
parent
3bf8768d
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
865 additions
and
5 deletions
+865
-5
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+75
-0
common/utils/T/tracer/Makefile
common/utils/T/tracer/Makefile
+6
-1
common/utils/T/tracer/ue.c
common/utils/T/tracer/ue.c
+728
-0
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
+6
-0
openair1/PHY/LTE_TRANSPORT/dci.c
openair1/PHY/LTE_TRANSPORT/dci.c
+6
-1
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+5
-0
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+7
-0
openair1/PHY/LTE_TRANSPORT/phich.c
openair1/PHY/LTE_TRANSPORT/phich.c
+4
-2
openair1/PHY/defs.h
openair1/PHY/defs.h
+1
-0
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+27
-1
No files found.
common/utils/T/T_messages.txt
View file @
15a1af31
...
...
@@ -1938,3 +1938,78 @@ ID = VCD_FUNCTION_RECV_IF5
DESC = VCD function RECV_IF5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
#################
#### UE LOGS ####
#################
#general logs
ID = UE_MASTER_TICK
DESC = UE master tick - one tick per ms, to be used as "reference clock", mostly for ticktime view
GROUP = ALL:GENERAL:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
#PHY logs
ID = UE_PHY_UL_TICK
DESC = UE uplink tick - one tick per ms at start of uplink processing
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
ID = UE_PHY_DL_TICK
DESC = UE downlink tick - one tick per ms at start of downlink processing
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe
ID = UE_PHY_DLSCH_UE_DCI
DESC = UE downlink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format : int,harq_pid : int,mcs : int,TBS
ID = UE_PHY_DLSCH_UE_ACK
DESC = UE downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_DLSCH_UE_NACK
DESC = UE downlink UE NACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_ULSCH_UE_DCI
DESC = UE uplink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,mcs : int,round : int,first_rb : int,nb_rb : int,TBS
ID = UE_PHY_ULSCH_UE_ACK
DESC = UE uplink UE ACK as seen by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_ULSCH_UE_NACK
DESC = UE uplink UE NACK as seen by the PHY layer
GROUP = ALL:PHY:GRAPHIC:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid
ID = UE_PHY_INPUT_SIGNAL
DESC = UE received signal in the time domain for a duration of 1ms
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,frame : int,subframe : int,antenna : buffer,rxdata
ID = UE_PHY_DL_CHANNEL_ESTIMATE
DESC = UE channel estimation in the time domain
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,antenna : buffer,chest_t
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
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
ID = UE_PHY_PDSCH_IQ
DESC = UE PDSCH received IQ data
GROUP = ALL:PHY:GRAPHIC:HEAVY:UE
FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,nb_rb : int,N_RB_UL : int,symbols_per_tti : buffer,pusch_comp
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
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
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
common/utils/T/tracer/Makefile
View file @
15a1af31
...
...
@@ -5,7 +5,7 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I.
LIBS
=
-lX11
-lm
-lpng
-lXft
all
:
record replay extract_config textlog enb vcd macpdu2wireshark
all
:
record replay extract_config textlog enb
ue
vcd macpdu2wireshark
record
:
utils.o record.o database.o config.o
$(CC)
$(CFLAGS)
-o
record
$^
$(LIBS)
...
...
@@ -26,6 +26,11 @@ enb: utils.o enb.o database.o event.o handler.o config.o \
filter/filter.a
$(CC)
$(CFLAGS)
-o
enb
$^
$(LIBS)
ue
:
utils.o ue.o database.o event.o handler.o config.o
\
event_selector.o view/view.a gui/gui.a logger/logger.a
\
filter/filter.a
$(CC)
$(CFLAGS)
-o
ue
$^
$(LIBS)
vcd
:
utils.o vcd.o database.o event.o handler.o config.o
\
event_selector.o view/view.a gui/gui.a logger/logger.a
\
filter/filter.a
...
...
common/utils/T/tracer/ue.c
0 → 100644
View file @
15a1af31
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
View file @
15a1af31
...
...
@@ -738,6 +738,12 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
(
int16_t
*
)
ue
->
common_vars
.
dl_ch_estimates_time
[
eNB_offset
][(
p
<<
1
)
+
aarx
],
1
);
}
#if T_TRACER
T
(
T_ENB_PHY_UL_CHANNEL_ESTIMATE
,
T_INT
(
eNB_id
),
T_INT
(
ue
->
Mod_id
),
T_INT
(
ue
->
proc
.
proc_rxtx
[(
Ns
>>
1
)
&
1
].
frame_rx
),
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
return
(
0
);
}
openair1/PHY/LTE_TRANSPORT/dci.c
View file @
15a1af31
...
...
@@ -1754,7 +1754,6 @@ 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
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
,
...
...
@@ -1851,6 +1850,7 @@ int32_t rx_pdcch(LTE_UE_COMMON *common_vars,
/*#ifdef DEBUG_PHY
write_output("llr8_seq.m","llr8",&pdcch_vars[eNB_id]->llr[s*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,4);
#endif*/
#ifdef MU_RECEIVER
}
...
...
@@ -1858,6 +1858,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
[
0
],
frame_parms
->
N_RB_DL
*
12
*
n_pdcch_symbols
*
4
));
// decode pcfich here
n_pdcch_symbols
=
rx_pcfich
(
frame_parms
,
subframe
,
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
15a1af31
...
...
@@ -629,6 +629,8 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
harq_process
->
status
=
SCH_IDLE
;
}
T
(
T_UE_PHY_DLSCH_UE_NACK
,
T_INT
(
0
),
T_INT
(
-
1
),
T_INT
(
subframe
),
T_INT
(
phy_vars_ue
->
Mod_id
),
T_INT
(
dlsch
->
rnti
),
T_INT
(
harq_pid
));
return
((
1
+
dlsch
->
max_turbo_iterations
));
}
else
{
harq_process
->
status
=
SCH_IDLE
;
...
...
@@ -640,6 +642,9 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
{
LOG_D
(
PHY
,
"[UE %d] DLSCH: Setting ACK for subframe %d (pid %d, round %d, TBS %d)
\n
"
,
phy_vars_ue
->
Mod_id
,
subframe
,
harq_pid
,
harq_process
->
round
,
harq_process
->
TBS
);
}
T
(
T_UE_PHY_DLSCH_UE_ACK
,
T_INT
(
0
),
T_INT
(
-
1
),
T_INT
(
subframe
),
T_INT
(
phy_vars_ue
->
Mod_id
),
T_INT
(
dlsch
->
rnti
),
T_INT
(
harq_pid
));
//LOG_D(PHY,"[UE %d] DLSCH: Setting ACK for subframe %d (pid %d, round %d)\n",phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->round);
}
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
15a1af31
...
...
@@ -825,6 +825,13 @@ int rx_pdsch(PHY_VARS_UE *ue,
return
(
-
1
);
break
;
}
T
(
T_UE_PHY_PDSCH_IQ
,
T_INT
(
eNB_id
),
T_INT
(
ue
->
Mod_id
),
T_INT
(
-
1
),
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
));
return
(
0
);
}
...
...
openair1/PHY/LTE_TRANSPORT/phich.c
View file @
15a1af31
...
...
@@ -1414,7 +1414,8 @@ 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
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
ulsch
->
rnti
),
T_INT
(
harq_pid
));
}
else
{
//ACK
if
(
ue
->
ulsch_Msg3_active
[
eNB_id
]
==
1
)
{
...
...
@@ -1449,7 +1450,8 @@ void rx_phich(PHY_VARS_UE *ue,
// inform MAC?
ue
->
ulsch_Msg3_active
[
eNB_id
]
=
0
;
//LOG_I(PHY,"[HARQ-UL harqId: %d] PHICH ACK ==> 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_ACK
,
T_INT
(
ue
->
Mod_id
),
T_INT
(
proc
->
frame_rx
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
ulsch
->
rnti
),
T_INT
(
harq_pid
));
}
}
...
...
openair1/PHY/defs.h
View file @
15a1af31
...
...
@@ -124,6 +124,7 @@ static inline void* malloc16_clear( size_t size )
#include "PHY/TOOLS/defs.h"
#include "platform_types.h"
#define OPENAIR_LTE
#ifdef OPENAIR_LTE
#include "PHY/LTE_TRANSPORT/defs.h"
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
15a1af31
...
...
@@ -1885,6 +1885,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX
,
VCD_FUNCTION_IN
);
T
(
T_UE_PHY_UL_TICK
,
T_INT
(
ue
->
Mod_id
),
T_INT
(
frame_tx
),
T_INT
(
subframe_tx
));
ue
->
generate_ul_signal
[
eNB_id
]
=
0
;
start_meas
(
&
ue
->
phy_proc_tx
);
...
...
@@ -2587,7 +2589,7 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
//
dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
if
((
ue
->
UE_mode
[
eNB_id
]
>
PRACH
)
&&
(
generate_ue_dlsch_params_from_dci
(
frame_rx
,
subframe_rx
,
...
...
@@ -2602,6 +2604,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
),
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
));
ue
->
dlsch_received
[
eNB_id
]
++
;
#ifdef DEBUG_PHY_PROC
...
...
@@ -2746,6 +2754,19 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
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
;
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
));
T
(
T_UE_PHY_ULSCH_UE_DCI
,
T_INT
(
eNB_id
),
T_INT
(
proc
->
frame_rx
),
T_INT
(
proc
->
subframe_rx
),
T_INT
(
ue
->
Mod_id
),
T_INT
(
dci_alloc_rx
[
i
].
rnti
),
T_INT
(
harq_pid
),
T_INT
(
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
mcs
),
T_INT
(
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
round
),
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
));
}
}
else
if
(
(
dci_alloc_rx
[
i
].
rnti
==
ue
->
ulsch
[
eNB_id
]
->
cba_rnti
[
0
])
&&
(
dci_alloc_rx
[
i
].
format
==
format0
))
{
...
...
@@ -3312,6 +3333,11 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_IN
);
T
(
T_UE_PHY_DL_TICK
,
T_INT
(
ue
->
Mod_id
),
T_INT
(
frame_rx
),
T_INT
(
subframe_rx
));
T
(
T_UE_PHY_INPUT_SIGNAL
,
T_INT
(
ue
->
Mod_id
),
T_INT
(
frame_rx
),
T_INT
(
subframe_rx
),
T_INT
(
0
),
T_BUFFER
(
&
ue
->
common_vars
.
rxdata
[
0
][
subframe_rx
*
ue
->
frame_parms
.
samples_per_tti
],
ue
->
frame_parms
.
samples_per_tti
*
4
));
start_meas
(
&
ue
->
phy_proc_rx
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment