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
promise
OpenXG-RAN
Commits
2bfbad92
Commit
2bfbad92
authored
Nov 28, 2018
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removed some debug messages. re-activated PDCCH decoding. fixed some warinings.
parent
2810dd50
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
188 additions
and
545 deletions
+188
-545
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+1
-1
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+3
-3
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+65
-5
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-0
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+5
-0
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+90
-498
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+18
-16
targets/RT/USER/nr-uesoftmodem.c
targets/RT/USER/nr-uesoftmodem.c
+3
-20
No files found.
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
2bfbad92
...
...
@@ -153,7 +153,7 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
//#ifdef DEBUG_FEP
// if (ue->frame <100)
LOG_
I
(
PHY
,
"slot_fep: frame %d: slot %d, symbol %d, nb_prefix_samples %d, nb_prefix_samples0 %d, slot_offset %d, sample_offset %d,rx_offset %d, frame_length_samples %d
\n
"
,
ue
->
proc
.
proc_rxtx
[(
Ns
>>
1
)
&
1
].
frame_rx
,
Ns
,
symbol
,
LOG_
D
(
PHY
,
"slot_fep: frame %d: slot %d, symbol %d, nb_prefix_samples %d, nb_prefix_samples0 %d, slot_offset %d, sample_offset %d,rx_offset %d, frame_length_samples %d
\n
"
,
ue
->
proc
.
proc_rxtx
[(
Ns
>>
1
)
&
1
].
frame_rx
,
Ns
,
symbol
,
nb_prefix_samples
,
nb_prefix_samples0
,
slot_offset
,
sample_offset
,
rx_offset
,
frame_length_samples
);
//#endif
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
2bfbad92
...
...
@@ -510,10 +510,10 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
k
=
bwp_start_subcarrier
;
int
re_offset
=
k
;
//
#ifdef DEBUG_CH
#ifdef DEBUG_CH
printf
(
"PDSCH Channel Estimation : ThreadId %d, eNB_offset %d ch_offset %d, symbol_offset %d OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d symbol %d
\n
"
,
ue
->
current_thread_id
[
Ns
],
eNB_offset
,
ch_offset
,
symbol_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
l
,
Ns
,
k
,
symbol
);
//
#endif
#endif
switch
(
nushift
)
{
case
0
:
...
...
@@ -593,7 +593,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
pil
+=
2
;
re_offset
=
(
re_offset
+
2
)
&
(
ue
->
frame_parms
.
ofdm_symbol_size
-
1
);
rxF
=
(
int16_t
*
)
&
rxdataF
[
aarx
][(
symbol_offset
+
nushift
+
re_offset
)];
printf
(
"dl_ch addr %p
\n
"
,
dl_ch
);
//
printf("dl_ch addr %p\n",dl_ch);
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
2bfbad92
...
...
@@ -292,7 +292,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
harq_process
->
G
=
nr_get_G
(
nb_rb
,
nb_symb_sch
,
nb_re_dmrs
,
length_dmrs
,
harq_process
->
Qm
,
harq_process
->
Nl
);
G
=
harq_process
->
G
;
LOG_
D
(
PHY
,
"DLSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_symb_sch %d nb_rb %d
\n
"
,
harq_pid
,
A
,
G
,
harq_process
->
mcs
,
harq_process
->
Nl
,
nb_symb_sch
,
nb_rb
);
LOG_
I
(
PHY
,
"DLSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_symb_sch %d nb_rb %d
\n
"
,
harq_pid
,
A
,
G
,
harq_process
->
mcs
,
harq_process
->
Nl
,
nb_symb_sch
,
nb_rb
);
if
(
harq_process
->
round
==
0
)
{
// This is a new packet, so compute quantities regarding segmentation
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
2bfbad92
...
...
@@ -165,7 +165,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
dlsch
[
0
]
->
harq_processes
[
harq_pid
]
->
nb_rb
=
nb_rb_pdsch
;
frame_parms
->
nushift
=
0
;
printf
(
"status TB0 = %d, status TB1 = %d
\n
"
,
dlsch
[
0
]
->
harq_processes
[
harq_pid
]
->
status
,
dlsch
[
1
]
->
harq_processes
[
harq_pid
]
->
status
);
//
printf("status TB0 = %d, status TB1 = %d \n", dlsch[0]->harq_processes[harq_pid]->status, dlsch[1]->harq_processes[harq_pid]->status);
LOG_D
(
PHY
,
"AbsSubframe %d.%d / Sym %d harq_pid %d, harq status %d.%d
\n
"
,
frame
,
nr_tti_rx
,
symbol
,
harq_pid
,
dlsch
[
0
]
->
harq_processes
[
harq_pid
]
->
status
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
2bfbad92
...
...
@@ -1006,12 +1006,11 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
uint8_t
llr8_flag
);
void
nr_dlsch_unscrambling
(
int16_t
*
llr
,
uint8
_t
size
,
uint32
_t
size
,
uint8_t
q
,
uint32_t
Nid
,
uint32_t
n_RNTI
);
uint32_t
dlsch_decoding_emul
(
PHY_VARS_NR_UE
*
phy_vars_ue
,
uint8_t
subframe
,
PDSCH_t
dlsch_id
,
...
...
@@ -1639,5 +1638,66 @@ void nr_pdcch_unscrambling(uint16_t crnti, NR_DL_FRAME_PARMS *frame_parms, uint8
uint32_t
lte_gold_generic
(
uint32_t
*
x1
,
uint32_t
*
x2
,
uint8_t
reset
);
uint8_t
nr_dci_decoding_procedure
(
int
s
,
int
p
,
PHY_VARS_NR_UE
*
ue
,
NR_DCI_ALLOC_t
*
dci_alloc
,
NR_SEARCHSPACE_TYPE_t
searchSpacetype
,
int16_t
eNB_id
,
uint8_t
nr_tti_rx
,
uint8_t
dci_fields_sizes_cnt
[
MAX_NR_DCI_DECODED_SLOT
][
NBR_NR_DCI_FIELDS
][
NBR_NR_FORMATS
],
uint16_t
n_RB_ULBWP
,
uint16_t
n_RB_DLBWP
,
crc_scrambled_t
*
crc_scrambled
,
format_found_t
*
format_found
,
uint16_t
crc_scrambled_values
[
TOTAL_NBR_SCRAMBLED_VALUES
]);
int
nr_generate_ue_ul_dlsch_params_from_dci
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
eNB_id
,
int
frame
,
uint8_t
nr_tti_rx
,
uint32_t
dci_pdu
[
4
],
uint16_t
rnti
,
uint8_t
dci_length
,
NR_DCI_format_t
dci_format
,
NR_UE_PDCCH
*
pdcch_vars
,
NR_UE_PDSCH
*
pdsch_vars
,
NR_UE_DLSCH_t
**
dlsch
,
NR_UE_ULSCH_t
*
ulsch
,
NR_DL_FRAME_PARMS
*
frame_parms
,
PDSCH_CONFIG_DEDICATED
*
pdsch_config_dedicated
,
uint8_t
beamforming_mode
,
uint8_t
dci_fields_sizes
[
NBR_NR_DCI_FIELDS
][
NBR_NR_FORMATS
],
uint16_t
n_RB_ULBWP
,
uint16_t
n_RB_DLBWP
,
uint16_t
crc_scrambled_values
[
TOTAL_NBR_SCRAMBLED_VALUES
],
NR_DCI_INFO_EXTRACTED_t
*
nr_dci_info_extracted
);
int
nr_rx_pdsch
(
PHY_VARS_NR_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
nr_tti_rx
,
unsigned
char
symbol
,
unsigned
char
first_symbol_flag
,
RX_type_t
rx_type
,
unsigned
char
i_mod
,
unsigned
char
harq_pid
);
uint32_t
nr_get_G
(
uint16_t
nb_rb
,
uint16_t
nb_symb_sch
,
uint8_t
nb_re_dmrs
,
uint16_t
length_dmrs
,
uint8_t
Qm
,
uint8_t
Nl
)
;
uint32_t
nr_dlsch_decoding
(
PHY_VARS_NR_UE
*
phy_vars_ue
,
short
*
dlsch_llr
,
NR_DL_FRAME_PARMS
*
frame_parms
,
NR_UE_DLSCH_t
*
dlsch
,
NR_DL_UE_HARQ_t
*
harq_process
,
uint32_t
frame
,
uint16_t
nb_symb_sch
,
uint8_t
nr_tti_rx
,
uint8_t
harq_pid
,
uint8_t
is_crnti
,
uint8_t
llr8_flag
);
/**@}*/
#endif
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
2bfbad92
...
...
@@ -206,5 +206,6 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
}
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX
+
offset
,
0
);
}
openair1/SCHED_NR_UE/defs.h
View file @
2bfbad92
...
...
@@ -368,6 +368,11 @@ int nr_is_srs_occasion_common(NR_DL_FRAME_PARMS *frame_parms,int frame_tx,int su
void
nr_compute_srs_pos
(
lte_frame_type_t
frameType
,
uint16_t
isrs
,
uint16_t
*
psrsPeriodicity
,
uint16_t
*
psrsOffset
);
void
set_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
harq_pid
,
int
slot_tx
);
int
get_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
slot_tx
);
/*@}*/
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
2bfbad92
This diff is collapsed.
Click to expand it.
targets/RT/USER/nr-ue.c
View file @
2bfbad92
...
...
@@ -442,6 +442,8 @@ static void *UE_thread_synch(void *arg) {
#endif
if
(
nr_initial_sync
(
UE
,
UE
->
mode
)
==
0
)
{
//write_output("txdata_sym.m", "txdata_sym", UE->common_vars.rxdata[0], (10*UE->frame_parms.samples_per_subframe), 1, 1);
hw_slot_offset
=
(
UE
->
rx_offset
<<
1
)
/
UE
->
frame_parms
.
samples_per_subframe
;
printf
(
"Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d
\n
"
,
hw_slot_offset
,
...
...
@@ -594,7 +596,7 @@ static void *UE_thread_synch(void *arg) {
break
;
}
#if
def
XFORMS
#if
0 //defined
XFORMS
if (do_forms) {
extern FD_lte_phy_scope_ue *form_ue[NUMBER_OF_UE_MAX];
...
...
@@ -683,15 +685,14 @@ static void *UE_thread_rxn_txnp4(void *arg) {
phy_procedures_slot_parallelization_UE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
,
NULL
);
#else
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
);
printf
(
">>> nr_ue_pdcch_procedures ended
\n
"
);
//printf(">>> nr_ue_pdcch_procedures ended\n");
#endif
}
#if UE_TIMING_TRACE
start_meas
(
&
UE
->
generic_stat
);
#endif
printf
(
">>> mac init
\n
"
);
//
printf(">>> mac init\n");
if
(
UE
->
mac_enabled
==
1
)
{
...
...
@@ -762,7 +763,7 @@ printf(">>> mac init\n");
#if UE_TIMING_TRACE
stop_meas
(
&
UE
->
generic_stat
);
#endif
printf
(
">>> mac ended
\n
"
);
//
printf(">>> mac ended\n");
// Prepare the future Tx data
#if 0
...
...
@@ -932,10 +933,10 @@ nb_sf_init=5;
}
UE
->
rx_offset
=
0
;
UE
->
time_sync_cell
=
0
;
//
UE->proc.proc_rxtx[0].frame_rx++;
UE
->
proc
.
proc_rxtx
[
0
].
frame_rx
++
;
//UE->proc.proc_rxtx[1].frame_rx++;
for
(
th_id
=
0
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
for
(
th_id
=
1
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
=
UE
->
proc
.
proc_rxtx
[
0
].
frame_rx
;
}
//printf("first stream frame rx %d\n",UE->proc.proc_rxtx[0].frame_rx);
...
...
@@ -954,6 +955,10 @@ nb_sf_init=5;
rt_sleep_ns
(
1000
*
1000
);
}
else
{
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
thread_idx
=
0
;
subframe_nr
++
;
subframe_nr
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
UE_nr_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
thread_idx
];
...
...
@@ -974,9 +979,6 @@ nb_sf_init=5;
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
thread_idx
=
0
;
if
(
UE
->
mode
!=
loop_through_memory
)
{
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
...
...
@@ -1045,10 +1047,10 @@ nb_sf_init=5;
// operate on thread sf mod 2
AssertFatal
(
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
)
==
0
,
""
);
if
(
subframe_nr
==
0
)
{
//
UE->proc.proc_rxtx[0].frame_rx++;
UE
->
proc
.
proc_rxtx
[
0
].
frame_rx
++
;
//UE->proc.proc_rxtx[1].frame_rx++;
for
(
th_id
=
0
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
for
(
th_id
=
1
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
=
UE
->
proc
.
proc_rxtx
[
0
].
frame_rx
;
}
#ifdef SAIF_ENABLED
if
(
!
(
proc
->
frame_rx
%
4000
))
...
...
targets/RT/USER/nr-uesoftmodem.c
View file @
2bfbad92
...
...
@@ -443,7 +443,7 @@ static void *scope_thread(void *arg) {
fl_clear_browser
(
form_stats
->
stats_text
);
fl_add_browser_line
(
form_stats
->
stats_text
,
stats_buffer
);
if
(
PHY_vars_UE_g
[
0
][
0
]
->
is_synchronized
==
1
)
//
if (PHY_vars_UE_g[0][0]->is_synchronized == 1)
phy_scope_UE
(
form_ue
[
0
],
PHY_vars_UE_g
[
0
][
0
],
0
,
0
,
7
);
...
...
@@ -876,23 +876,6 @@ int main( int argc, char **argv ) {
T_Config_Init
();
#endif
// initialize the log (see log.h for details)
set_glog
(
OAILOG_DEBUG
);
set_log
(
HW
,
OAILOG_DEBUG
);
set_log
(
PHY
,
OAILOG_DEBUG
);
set_log
(
MAC
,
OAILOG_INFO
);
set_log
(
RLC
,
OAILOG_INFO
);
set_log
(
PDCP
,
OAILOG_INFO
);
set_log
(
OTG
,
OAILOG_INFO
);
set_log
(
RRC
,
OAILOG_INFO
);
#if defined(ENABLE_ITTI)
set_log
(
SIM
,
OAILOG_INFO
);
# if defined(ENABLE_USE_MME)
set_log
(
NAS
,
OAILOG_INFO
);
# endif
#endif
//randominit (0);
set_taus_seed
(
0
);
...
...
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