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
Michael Black
OpenXG-RAN
Commits
c31fe381
Commit
c31fe381
authored
Nov 19, 2022
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplified function args
removed gNB_id and slot from function calls where proc is used.
parent
573e7fd9
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
76 additions
and
149 deletions
+76
-149
executables/nr-ue.c
executables/nr-ue.c
+3
-4
openair1/PHY/MODULATION/modulation_UE.h
openair1/PHY/MODULATION/modulation_UE.h
+0
-2
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+2
-2
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+9
-12
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
+1
-12
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
+2
-2
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
+6
-4
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+4
-11
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+4
-12
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+2
-3
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+0
-5
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
+1
-2
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h
+1
-1
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+6
-13
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+27
-49
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
+1
-2
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
+0
-1
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+1
-1
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
+0
-2
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+4
-7
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+2
-2
No files found.
executables/nr-ue.c
View file @
c31fe381
...
...
@@ -689,7 +689,7 @@ void processSlotTX(void *arg) {
stop_meas
(
&
UE
->
ue_ul_indication_stats
);
}
phy_procedures_nrUE_TX
(
UE
,
proc
,
proc
->
gNB_id
,
&
phy_data
);
phy_procedures_nrUE_TX
(
UE
,
proc
,
&
phy_data
);
}
RU_write
(
rxtxD
);
...
...
@@ -699,7 +699,6 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) {
UE_nr_rxtx_proc_t
*
proc
=
&
rxtxD
->
proc
;
PHY_VARS_NR_UE
*
UE
=
rxtxD
->
UE
;
uint8_t
gNB_id
=
0
;
nr_phy_data_t
phy_data
=
{
0
};
if
(
IS_SOFTMODEM_NOS1
||
get_softmodem_params
()
->
sa
)
{
...
...
@@ -716,7 +715,7 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) {
if
(
UE
->
if_inst
!=
NULL
&&
UE
->
if_inst
->
dl_indication
!=
NULL
)
{
nr_downlink_indication_t
dl_indication
;
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
NULL
,
proc
,
UE
,
gNB_id
,
&
phy_data
);
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
NULL
,
proc
,
UE
,
&
phy_data
);
UE
->
if_inst
->
dl_indication
(
&
dl_indication
,
NULL
);
}
...
...
@@ -725,7 +724,7 @@ void UE_processing(nr_rxtx_thread_data_t *rxtxD) {
phy_procedures_slot_parallelization_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
no_relay
,
NULL
);
#else
uint64_t
a
=
rdtsc_oai
();
phy_procedures_nrUE_RX
(
UE
,
proc
,
gNB_id
,
&
phy_data
);
phy_procedures_nrUE_RX
(
UE
,
proc
,
&
phy_data
);
LOG_D
(
PHY
,
"In %s: slot %d, time %llu
\n
"
,
__FUNCTION__
,
proc
->
nr_slot_rx
,
(
rdtsc_oai
()
-
a
)
/
3500
);
#endif
...
...
openair1/PHY/MODULATION/modulation_UE.h
View file @
c31fe381
...
...
@@ -51,13 +51,11 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue,
int
nr_slot_fep
(
PHY_VARS_NR_UE
*
phy_vars_ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
l
,
unsigned
char
Ns
,
c16_t
rxdataF
[][
phy_vars_ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_slot_fep_init_sync
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
unsigned
char
Ns
,
int
sample_offset
,
bool
pbch_decoded
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
...
...
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
c31fe381
...
...
@@ -37,11 +37,11 @@
int
nr_slot_fep
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
unsigned
char
Ns
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
NR_UE_COMMON
*
common_vars
=
&
ue
->
common_vars
;
int
Ns
=
proc
->
nr_slot_rx
;
AssertFatal
(
symbol
<
frame_parms
->
symbols_per_slot
,
"slot_fep: symbol must be between 0 and %d
\n
"
,
frame_parms
->
symbols_per_slot
-
1
);
AssertFatal
(
Ns
<
frame_parms
->
slots_per_frame
,
"slot_fep: Ns must be between 0 and %d
\n
"
,
frame_parms
->
slots_per_frame
-
1
);
...
...
@@ -150,13 +150,13 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
int
nr_slot_fep_init_sync
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
unsigned
char
Ns
,
int
sample_offset
,
bool
pbch_decoded
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
NR_UE_COMMON
*
common_vars
=
&
ue
->
common_vars
;
int
Ns
=
proc
->
nr_slot_rx
;
AssertFatal
(
symbol
<
frame_parms
->
symbols_per_slot
,
"slot_fep: symbol must be between 0 and %d
\n
"
,
frame_parms
->
symbols_per_slot
-
1
);
AssertFatal
(
Ns
<
frame_parms
->
slots_per_frame
,
"slot_fep: Ns must be between 0 and %d
\n
"
,
frame_parms
->
slots_per_frame
-
1
);
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
c31fe381
...
...
@@ -61,14 +61,14 @@ void peak_estimator(int32_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t
*
peak_idx
=
max_idx
;
}
int
nr_prs_channel_estimation
(
uint8_t
gNB_id
,
uint8_t
rsc_id
,
int
nr_prs_channel_estimation
(
uint8_t
rsc_id
,
uint8_t
rep_num
,
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
NR_DL_FRAME_PARMS
*
frame_params
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
gNB_id
=
proc
->
gNB_id
;
uint8_t
rxAnt
=
0
,
idx
=
0
;
prs_config_t
*
prs_cfg
=
&
ue
->
prs_vars
[
gNB_id
]
->
prs_resource
[
rsc_id
].
prs_cfg
;
prs_meas_t
**
prs_meas
=
ue
->
prs_vars
[
gNB_id
]
->
prs_resource
[
rsc_id
].
prs_meas
;
...
...
@@ -567,8 +567,6 @@ int nr_prs_channel_estimation(uint8_t gNB_id,
int
nr_pbch_dmrs_correlation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
int
dmrss
,
NR_UE_SSB
*
current_ssb
,
...
...
@@ -600,7 +598,7 @@ int nr_pbch_dmrs_correlation(PHY_VARS_NR_UE *ue,
k
=
nushift
;
#ifdef DEBUG_PBCH
printf
(
"PBCH DMRS Correlation : gNB_id %d , OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d
\n
"
,
gNB_id
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
Ns
,
k
,
symbol
);
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
);
#endif
// generate pilot
...
...
@@ -730,14 +728,13 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
struct
complex16
dl_ch_estimates
[][
estimateSz
],
struct
complex16
dl_ch_estimates_time
[][
ue
->
frame_parms
.
ofdm_symbol_size
],
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
int
dmrss
,
uint8_t
ssb_index
,
uint8_t
n_hf
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
Ns
=
proc
->
nr_slot_rx
;
int
pilot
[
200
]
__attribute__
((
aligned
(
16
)));
unsigned
short
k
;
unsigned
int
pilot_cnt
;
...
...
@@ -763,7 +760,7 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
k
=
nushift
;
#ifdef DEBUG_PBCH
printf
(
"PBCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d
\n
"
,
gNB_id
,
ch_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
Ns
,
k
,
symbol
);
printf
(
"PBCH Channel Estimation : gNB_id %d ch_offset %d, OFDM size %d, Ncp=%d, Ns=%d, k=%d symbol %d
\n
"
,
proc
->
gNB_id
,
ch_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
Ns
,
k
,
symbol
);
#endif
switch
(
k
)
{
...
...
@@ -993,8 +990,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
void
nr_pdcch_channel_estimation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
fapi_nr_coreset_t
*
coreset
,
uint16_t
first_carrier_offset
,
...
...
@@ -1004,6 +999,8 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
Ns
=
proc
->
nr_slot_rx
;
int
gNB_id
=
proc
->
gNB_id
;
unsigned
char
aarx
;
unsigned
short
k
;
unsigned
int
pilot_cnt
;
...
...
@@ -1237,9 +1234,7 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
int
nr_pdsch_channel_estimation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
bool
is_SI
,
unsigned
char
Ns
,
unsigned
short
p
,
unsigned
char
symbol
,
unsigned
char
nscid
,
...
...
@@ -1252,6 +1247,8 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
int32_t
dl_ch_estimates
[][
pdsch_est_size
],
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
gNB_id
=
proc
->
gNB_id
;
int
Ns
=
proc
->
nr_slot_rx
;
int
pilot
[
3280
]
__attribute__
((
aligned
(
16
)));
unsigned
char
aarx
;
unsigned
short
k
;
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
View file @
c31fe381
...
...
@@ -33,8 +33,7 @@
#define SYNCH_HYST 2
/* A function to perform the channel estimation of DL PRS signal */
int
nr_prs_channel_estimation
(
uint8_t
gNB_id
,
uint8_t
rsc_id
,
int
nr_prs_channel_estimation
(
uint8_t
rsc_id
,
uint8_t
rep_num
,
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
...
...
@@ -53,8 +52,6 @@ void peak_estimator(int32_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t
*/
void
nr_pdcch_channel_estimation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
fapi_nr_coreset_t
*
coreset
,
uint16_t
first_carrier_offset
,
...
...
@@ -65,8 +62,6 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
int
nr_pbch_dmrs_correlation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
int
dmrss
,
NR_UE_SSB
*
current_ssb
,
...
...
@@ -77,8 +72,6 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
struct
complex16
dl_ch_estimates
[][
estimateSz
],
struct
complex16
dl_ch_estimates_time
[][
estimateSz
],
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
unsigned
char
Ns
,
unsigned
char
symbol
,
int
dmrss
,
uint8_t
ssb_index
,
...
...
@@ -87,9 +80,7 @@ int nr_pbch_channel_estimation(PHY_VARS_NR_UE *ue,
int
nr_pdsch_channel_estimation
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
bool
is_SI
,
unsigned
char
Ns
,
unsigned
short
p
,
unsigned
char
symbol
,
unsigned
char
nscid
,
...
...
@@ -121,12 +112,10 @@ void nr_ue_measurements(PHY_VARS_NR_UE *ue,
void
nr_ue_ssb_rsrp_measurements
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_index
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
slot
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
void
nr_ue_rrc_measurements
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
slot
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
void
phy_adjust_gain_nr
(
PHY_VARS_NR_UE
*
ue
,
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
View file @
c31fe381
...
...
@@ -172,11 +172,11 @@ void nr_ue_measurements(PHY_VARS_NR_UE *ue,
void
nr_ue_ssb_rsrp_measurements
(
PHY_VARS_NR_UE
*
ue
,
int
ssb_index
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
slot
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
k_start
=
56
;
int
k_end
=
183
;
int
slot
=
proc
->
nr_slot_rx
;
unsigned
int
ssb_offset
=
ue
->
frame_parms
.
first_carrier_offset
+
ue
->
frame_parms
.
ssb_start_subcarrier
;
int
symbol_offset
=
nr_get_ssb_start_symbol
(
&
ue
->
frame_parms
,
ssb_index
);
...
...
@@ -228,10 +228,10 @@ void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue,
// - psd_awgn (AWGN power spectral density): dBm/Hz
void
nr_ue_rrc_measurements
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
slot
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]){
uint8_t
k
;
int
slot
=
proc
->
nr_slot_rx
;
int
aarx
,
nb_nulls
;
int16_t
*
rxF_sss
;
uint8_t
k_left
=
48
;
...
...
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
View file @
c31fe381
...
...
@@ -800,8 +800,9 @@ int nr_csi_im_power_estimation(const PHY_VARS_NR_UE *ue,
return
0
;
}
int
nr_ue_csi_im_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
nr_ue_csi_im_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
gNB_id
=
proc
->
gNB_id
;
if
(
!
ue
->
csiim_vars
[
gNB_id
]
->
active
)
{
return
-
1
;
}
...
...
@@ -824,8 +825,9 @@ int nr_ue_csi_im_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
return
0
;
}
int
nr_ue_csi_rs_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
nr_ue_csi_rs_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
gNB_id
=
proc
->
gNB_id
;
if
(
!
ue
->
csirs_vars
[
gNB_id
]
->
active
)
{
return
-
1
;
}
...
...
@@ -959,8 +961,8 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
csirs_measurements
.
cqi
=
cqi
;
nr_downlink_indication_t
dl_indication
;
fapi_nr_rx_indication_t
*
rx_ind
=
calloc
(
sizeof
(
*
rx_ind
),
1
);
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
gNB_id
,
NULL
);
nr_fill_rx_indication
(
rx_ind
,
FAPI_NR_CSIRS_IND
,
gNB_id
,
ue
,
NULL
,
NULL
,
1
,
proc
,
(
void
*
)
&
csirs_measurements
);
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
NULL
);
nr_fill_rx_indication
(
rx_ind
,
FAPI_NR_CSIRS_IND
,
ue
,
NULL
,
NULL
,
1
,
proc
,
(
void
*
)
&
csirs_measurements
);
if
(
ue
->
if_inst
&&
ue
->
if_inst
->
dl_indication
)
{
ue
->
if_inst
->
dl_indication
(
&
dl_indication
,
NULL
);
}
else
{
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
c31fe381
...
...
@@ -115,8 +115,6 @@ static int nr_dlsch_llr(uint32_t rx_size,
NR_DL_UE_HARQ_t
*
dlsch0_harq
,
NR_DL_UE_HARQ_t
*
dlsch1_harq
,
unsigned
char
harq_pid
,
unsigned
char
gNB_id
,
unsigned
char
gNB_id_i
,
unsigned
char
first_symbol_flag
,
unsigned
char
symbol
,
unsigned
short
nb_rb
,
...
...
@@ -131,10 +129,6 @@ static int nr_dlsch_llr(uint32_t rx_size,
int
nr_rx_pdsch
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
NR_UE_DLSCH_t
dlsch
[
2
],
unsigned
char
gNB_id
,
unsigned
char
gNB_id_i
,
uint32_t
frame
,
uint8_t
nr_slot_rx
,
unsigned
char
symbol
,
unsigned
char
first_symbol_flag
,
unsigned
char
harq_pid
,
...
...
@@ -160,6 +154,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
NR_UE_COMMON
*
common_vars
=
&
ue
->
common_vars
;
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
PHY_NR_MEASUREMENTS
*
measurements
=
&
ue
->
measurements
;
int
frame
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
int
gNB_id
=
proc
->
gNB_id
;
int
avg
[
16
];
// int avg_0[2];
...
...
@@ -492,8 +489,6 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
dlsch0_harq
,
dlsch1_harq
,
harq_pid
,
gNB_id
,
gNB_id_i
,
first_symbol_flag
,
i
,
nb_rb_pdsch
,
...
...
@@ -1626,7 +1621,7 @@ void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
for
(
unsigned
char
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
int32_t
*
rxF_ext
=
&
rxdataF_ext
[
aarx
][
symbol
*
nb_rb_pdsch
*
NR_NB_SC_PER_RB
];
int32_t
*
rxF
=
&
rxdataF
[
aarx
][
symbol
*
frame_parms
->
ofdm_symbol_size
];
int32_t
*
rxF
=
(
int32_t
*
)
&
rxdataF
[
aarx
][
symbol
*
frame_parms
->
ofdm_symbol_size
];
for
(
unsigned
char
aatx
=
0
;
aatx
<
Nl
;
aatx
++
)
{
...
...
@@ -2384,8 +2379,6 @@ static int nr_dlsch_llr(uint32_t rx_size,
NR_DL_UE_HARQ_t
*
dlsch0_harq
,
NR_DL_UE_HARQ_t
*
dlsch1_harq
,
unsigned
char
harq_pid
,
unsigned
char
gNB_id
,
unsigned
char
gNB_id_i
,
unsigned
char
first_symbol_flag
,
unsigned
char
symbol
,
unsigned
short
nb_rb
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
c31fe381
...
...
@@ -127,7 +127,7 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
// computing correlation between received DMRS symbols and transmitted sequence for current i_ssb and n_hf
for
(
int
i
=
pbch_initial_symbol
;
i
<
pbch_initial_symbol
+
3
;
i
++
)
nr_pbch_dmrs_correlation
(
ue
,
proc
,
0
,
0
,
i
,
i
-
pbch_initial_symbol
,
current_ssb
,
rxdataF
);
nr_pbch_dmrs_correlation
(
ue
,
proc
,
i
,
i
-
pbch_initial_symbol
,
current_ssb
,
rxdataF
);
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
current_ssb
->
metric
=
current_ssb
->
c_re
*
current_ssb
->
c_re
+
current_ssb
->
c_im
*
current_ssb
->
c_im
;
...
...
@@ -152,7 +152,7 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini
for
(
int
i
=
pbch_initial_symbol
;
i
<
pbch_initial_symbol
+
3
;
i
++
)
nr_pbch_channel_estimation
(
ue
,
estimateSz
,
dl_ch_estimates
,
dl_ch_estimates_time
,
proc
,
0
,
0
,
i
,
i
-
pbch_initial_symbol
,
temp_ptr
->
i_ssb
,
temp_ptr
->
n_hf
,
rxdataF
);
proc
,
i
,
i
-
pbch_initial_symbol
,
temp_ptr
->
i_ssb
,
temp_ptr
->
n_hf
,
rxdataF
);
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
fapiPbch_t
result
;
...
...
@@ -162,7 +162,6 @@ int nr_pbch_detection(UE_nr_rxtx_proc_t * proc, PHY_VARS_NR_UE *ue, int pbch_ini
dl_ch_estimates
,
ue
->
pbch_vars
[
0
],
frame_parms
,
0
,
temp_ptr
->
i_ssb
,
SISO
,
phy_data
,
...
...
@@ -305,7 +304,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
nr_slot_fep_init_sync
(
ue
,
proc
,
i
,
0
,
is
*
fp
->
samples_per_frame
+
ue
->
ssb_offset
,
false
,
rxdataF
);
...
...
@@ -529,7 +527,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
if
(
sa
==
1
&&
ret
==
0
)
{
nr_ue_dlsch_init
(
phy_data
.
dlsch
,
1
,
ue
->
max_ldpc_iterations
);
bool
dec
=
false
;
int
gnb
_id
=
0
;
//FIXME
proc
->
gNB
_id
=
0
;
//FIXME
// Hold the channel estimates in frequency domain.
int32_t
pdcch_est_size
=
((((
fp
->
symbols_per_slot
*
(
fp
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
))
+
15
)
/
16
)
*
16
);
...
...
@@ -543,15 +541,12 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
nr_slot_fep_init_sync
(
ue
,
proc
,
l
,
// the UE PHY has no notion of the symbols to be monitored in the search space
phy_pdcch_config
->
slot
,
is
*
fp
->
samples_per_frame
+
phy_pdcch_config
->
sfn
*
fp
->
samples_per_frame
+
ue
->
rx_offset
,
true
,
rxdataF
);
nr_pdcch_channel_estimation
(
ue
,
proc
,
0
,
phy_pdcch_config
->
slot
,
l
,
&
phy_pdcch_config
->
pdcch_config
[
n_ss
].
coreset
,
fp
->
first_carrier_offset
,
...
...
@@ -561,7 +556,7 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
rxdataF
);
}
int
dci_cnt
=
nr_ue_pdcch_procedures
(
gnb_id
,
ue
,
proc
,
pdcch_est_size
,
pdcch_dl_ch_estimates
,
&
phy_data
,
n_ss
,
rxdataF
);
int
dci_cnt
=
nr_ue_pdcch_procedures
(
ue
,
proc
,
pdcch_est_size
,
pdcch_dl_ch_estimates
,
&
phy_data
,
n_ss
,
rxdataF
);
if
(
dci_cnt
>
0
){
NR_UE_DLSCH_t
*
dlsch
=
phy_data
.
dlsch
;
if
(
dlsch
[
0
].
active
==
1
)
{
...
...
@@ -572,7 +567,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
nr_slot_fep_init_sync
(
ue
,
proc
,
m
,
phy_pdcch_config
->
slot
,
// same slot and offset as pdcch
is
*
fp
->
samples_per_frame
+
phy_pdcch_config
->
sfn
*
fp
->
samples_per_frame
+
ue
->
rx_offset
,
true
,
rxdataF
);
...
...
@@ -602,7 +596,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
int
ret
=
nr_ue_pdsch_procedures
(
ue
,
proc
,
gnb_id
,
phy_data
.
dlsch
,
llr
,
layer_llr
,
...
...
@@ -610,7 +603,6 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
if
(
ret
>=
0
)
dec
=
nr_ue_dlsch_procedures
(
ue
,
proc
,
gnb_id
,
phy_data
.
dlsch
,
llr
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
c31fe381
...
...
@@ -389,7 +389,6 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
int
estimateSz
,
struct
complex16
dl_ch_estimates
[][
estimateSz
],
NR_UE_PBCH
*
nr_ue_pbch_vars
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
gNB_id
,
uint8_t
i_ssb
,
MIMO_mode_t
mimo_mode
,
nr_phy_data_t
*
phy_data
,
...
...
@@ -582,8 +581,8 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
fapi_nr_rx_indication_t
*
rx_ind
=
calloc
(
sizeof
(
*
rx_ind
),
1
);
uint16_t
number_pdus
=
1
;
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
gNB_id
,
phy_data
);
nr_fill_rx_indication
(
rx_ind
,
FAPI_NR_RX_PDU_TYPE_SSB
,
gNB_id
,
ue
,
NULL
,
NULL
,
number_pdus
,
proc
,(
void
*
)
result
);
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
phy_data
);
nr_fill_rx_indication
(
rx_ind
,
FAPI_NR_RX_PDU_TYPE_SSB
,
ue
,
NULL
,
NULL
,
number_pdus
,
proc
,(
void
*
)
result
);
if
(
ue
->
if_inst
&&
ue
->
if_inst
->
dl_indication
)
ue
->
if_inst
->
dl_indication
(
&
dl_indication
,
NULL
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
c31fe381
...
...
@@ -779,7 +779,6 @@ int nr_rx_pbch(PHY_VARS_NR_UE *ue,
struct
complex16
dl_ch_estimates
[][
estimateSz
],
NR_UE_PBCH
*
nr_ue_pbch_vars
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
eNB_id
,
uint8_t
i_ssb
,
MIMO_mode_t
mimo_mode
,
nr_phy_data_t
*
phy_data
,
...
...
@@ -871,10 +870,6 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
int
nr_rx_pdsch
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
NR_UE_DLSCH_t
dlsch
[
2
],
unsigned
char
gNB_id
,
unsigned
char
gNB_id_i
,
uint32_t
frame
,
uint8_t
nr_slot_rx
,
unsigned
char
symbol
,
unsigned
char
first_symbol_flag
,
unsigned
char
harq_pid
,
...
...
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
View file @
c31fe381
...
...
@@ -432,9 +432,8 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
* send srs according to current configuration
*
*********************************************************************/
int
ue_srs_procedures_nr
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
)
int
ue_srs_procedures_nr
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
)
{
if
(
!
ue
->
srs_vars
[
0
]
->
active
)
{
return
-
1
;
}
...
...
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.h
View file @
c31fe381
...
...
@@ -175,7 +175,7 @@ int is_srs_period_nr(SRS_Resource_t *p_SRS_Resource,
@param current gNB_id identifier
@returns 0 if srs is transmitted -1 otherwise */
int
ue_srs_procedures_nr
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
int
ue_srs_procedures_nr
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
);
#undef EXTERN
#undef INIT_VARIABLES_SRS_MODULATION_NR_H
...
...
openair1/SCHED_NR_UE/defs.h
View file @
c31fe381
...
...
@@ -96,22 +96,20 @@ typedef struct {
@param proc Pointer to RXn-TXnp4 proc information
@param eNB_id Local id of eNB on which to act
*/
void
phy_procedures_nrUE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
nr_phy_data_tx_t
*
phy_data
);
void
phy_procedures_nrUE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
nr_phy_data_tx_t
*
phy_data
);
/*! \brief Scheduling for UE RX procedures in normal subframes.
@param ue Pointer to UE variables on which to act
@param proc Pointer to proc information
@param gNB_id Local id of eNB on which to act
@param dlsch_parallel use multithreaded dlsch processing
@param phy_pdcch_config PDCCH Config for this slot
@param txFifo Result fifo if PDSCH is run in parallel
*/
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
nr_phy_data_t
*
phy_data
);
int
phy_procedures_slot_parallelization_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
uint8_t
abstraction_flag
,
uint8_t
do_pdcch_flag
,
relaying_type_t
r_type
);
int
phy_procedures_slot_parallelization_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
abstraction_flag
,
uint8_t
do_pdcch_flag
,
relaying_type_t
r_type
);
void
processSlotTX
(
void
*
arg
);
...
...
@@ -120,7 +118,7 @@ void processSlotTX(void *arg);
@param
@param
*/
void
nr_ue_prach_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
void
nr_ue_prach_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
);
int8_t
nr_find_ue
(
uint16_t
rnti
,
PHY_VARS_eNB
*
phy_vars_eNB
);
...
...
@@ -151,7 +149,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
fapi_nr_rx_indication_t
*
rx_ind
,
UE_nr_rxtx_proc_t
*
proc
,
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
void
*
phy_data
);
/*@}*/
...
...
@@ -164,7 +161,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
*/
void
nr_fill_rx_indication
(
fapi_nr_rx_indication_t
*
rx_ind
,
uint8_t
pdu_type
,
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
NR_UE_DLSCH_t
*
dlsch0
,
NR_UE_DLSCH_t
*
dlsch1
,
...
...
@@ -174,20 +170,17 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
bool
nr_ue_dlsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
]);
int
nr_ue_pdsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
],
int16_t
*
layer_llr
[
NR_MAX_NB_LAYERS
],
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_ue_pdcch_procedures
(
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
int
nr_ue_pdcch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int32_t
pdcch_est_size
,
int32_t
pdcch_dl_ch_estimates
[][
pdcch_est_size
],
...
...
@@ -195,9 +188,9 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
int
n_ss
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_ue_csi_im_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_ue_csi_im_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_ue_csi_rs_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
int
nr_ue_csi_rs_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]);
#endif
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
c31fe381
...
...
@@ -90,12 +90,11 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
fapi_nr_rx_indication_t
*
rx_ind
,
UE_nr_rxtx_proc_t
*
proc
,
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
void
*
phy_data
){
memset
((
void
*
)
dl_ind
,
0
,
sizeof
(
nr_downlink_indication_t
));
dl_ind
->
gNB_index
=
gNB_id
;
dl_ind
->
gNB_index
=
proc
->
gNB_id
;
dl_ind
->
module_id
=
ue
->
Mod_id
;
dl_ind
->
cc_id
=
ue
->
CC_id
;
dl_ind
->
frame
=
proc
->
frame_rx
;
...
...
@@ -117,7 +116,6 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
void
nr_fill_rx_indication
(
fapi_nr_rx_indication_t
*
rx_ind
,
uint8_t
pdu_type
,
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
NR_UE_DLSCH_t
*
dlsch0
,
NR_UE_DLSCH_t
*
dlsch1
,
...
...
@@ -271,11 +269,11 @@ void ue_ta_procedures(PHY_VARS_NR_UE *ue, int slot_tx, int frame_tx){
void
phy_procedures_nrUE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
nr_phy_data_tx_t
*
phy_data
)
{
int
slot_tx
=
proc
->
nr_slot_tx
;
int
frame_tx
=
proc
->
frame_tx
;
int
gNB_id
=
proc
->
gNB_id
;
AssertFatal
(
ue
->
CC_id
==
0
,
"Transmission on secondary CCs is not supported yet
\n
"
);
...
...
@@ -296,11 +294,10 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
}
}
ue_srs_procedures_nr
(
ue
,
proc
,
gNB_id
);
ue_srs_procedures_nr
(
ue
,
proc
);
if
(
ue
->
UE_mode
[
gNB_id
]
<=
PUSCH
)
{
pucch_procedures_ue_nr
(
ue
,
gNB_id
,
proc
,
phy_data
);
}
...
...
@@ -312,7 +309,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
ue
->
frame_parms
.
nb_antennas_tx
);
if
(
ue
->
UE_mode
[
gNB_id
]
>
NOT_SYNCHED
&&
ue
->
UE_mode
[
gNB_id
]
<
PUSCH
)
nr_ue_prach_procedures
(
ue
,
proc
,
proc
->
gNB_id
);
nr_ue_prach_procedures
(
ue
,
proc
);
LOG_D
(
PHY
,
"****** end TX-Chain for AbsSubframe %d.%d ******
\n
"
,
proc
->
frame_tx
,
proc
->
nr_slot_tx
);
...
...
@@ -323,7 +320,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
void
nr_ue_measurement_procedures
(
uint16_t
l
,
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
NR_UE_DLSCH_t
*
dlsch
,
uint32_t
pdsch_est_size
,
int32_t
dl_ch_estimates
[][
pdsch_est_size
])
{
...
...
@@ -331,6 +327,7 @@ void nr_ue_measurement_procedures(uint16_t l,
NR_DL_FRAME_PARMS
*
frame_parms
=&
ue
->
frame_parms
;
int
frame_rx
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
int
gNB_id
=
proc
->
gNB_id
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_MEASUREMENT_PROCEDURES
,
VCD_FUNCTION_IN
);
if
(
l
==
2
)
{
...
...
@@ -374,8 +371,7 @@ void nr_ue_measurement_procedures(uint16_t l,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_MEASUREMENT_PROCEDURES
,
VCD_FUNCTION_OUT
);
}
static
void
nr_ue_pbch_procedures
(
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
static
void
nr_ue_pbch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
estimateSz
,
struct
complex16
dl_ch_estimates
[][
estimateSz
],
...
...
@@ -387,6 +383,7 @@ static void nr_ue_pbch_procedures(uint8_t gNB_id,
int
frame_rx
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
int
gNB_id
=
proc
->
gNB_id
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES
,
VCD_FUNCTION_IN
);
...
...
@@ -398,7 +395,6 @@ static void nr_ue_pbch_procedures(uint8_t gNB_id,
dl_ch_estimates
,
ue
->
pbch_vars
[
gNB_id
],
&
ue
->
frame_parms
,
gNB_id
,
(
ue
->
frame_parms
.
ssb_index
)
&
7
,
SISO
,
phy_data
,
...
...
@@ -504,8 +500,7 @@ unsigned int nr_get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb
#ifdef NR_PDCCH_SCHED
int
nr_ue_pdcch_procedures
(
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
int
nr_ue_pdcch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int32_t
pdcch_est_size
,
int32_t
pdcch_dl_ch_estimates
[][
pdcch_est_size
],
...
...
@@ -513,6 +508,7 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
int
n_ss
,
c16_t
rxdataF
[][
ue
->
frame_parms
.
samples_per_slot_wCP
])
{
int
gNB_id
=
proc
->
gNB_id
;
int
frame_rx
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
unsigned
int
dci_cnt
=
0
;
...
...
@@ -561,7 +557,7 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
dci_ind
.
number_of_dcis
=
dci_cnt
;
// fill dl_indication message
nr_fill_dl_indication
(
&
dl_indication
,
&
dci_ind
,
NULL
,
proc
,
ue
,
gNB_id
,
phy_data
);
nr_fill_dl_indication
(
&
dl_indication
,
&
dci_ind
,
NULL
,
proc
,
ue
,
phy_data
);
// send to mac
ue
->
if_inst
->
dl_indication
(
&
dl_indication
,
NULL
);
...
...
@@ -575,7 +571,6 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
int
nr_ue_pdsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
],
int16_t
*
layer_llr
[
NR_MAX_NB_LAYERS
],
...
...
@@ -584,7 +579,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
int
frame_rx
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
int
m
;
int
gNB_id_i
;
int
first_symbol_flag
=
0
;
if
(
!
dlsch
[
0
].
active
)
...
...
@@ -615,9 +609,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
LOG_D
(
PHY
,
"PDSCH Channel estimation gNB id %d, PDSCH antenna port %d, slot %d, symbol %d
\n
"
,
0
,
aatx
,
nr_slot_rx
,
m
);
nr_pdsch_channel_estimation
(
ue
,
proc
,
gNB_id
,
is_SI
,
nr_slot_rx
,
get_dmrs_port
(
aatx
,
dlsch0
->
dlsch_config
.
dmrs_ports
),
m
,
dlsch0
->
dlsch_config
.
nscid
,
...
...
@@ -642,7 +634,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
}
}
}
nr_ue_measurement_procedures
(
2
,
ue
,
proc
,
gNB_id
,
&
dlsch
[
0
],
pdsch_est_size
,
pdsch_dl_ch_estimates
);
nr_ue_measurement_procedures
(
2
,
ue
,
proc
,
&
dlsch
[
0
],
pdsch_est_size
,
pdsch_dl_ch_estimates
);
if
(
ue
->
chest_time
==
1
)
{
// averaging time domain channel estimates
nr_chest_time_domain_avg
(
&
ue
->
frame_parms
,
...
...
@@ -699,7 +691,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
start_meas
(
&
ue
->
rx_pdsch_stats
);
for
(
m
=
s0
;
m
<
(
s1
+
s0
);
m
++
)
{
gNB_id_i
=
gNB_id
+
1
;
if
(
m
==
first_symbol_with_data
)
first_symbol_flag
=
1
;
else
...
...
@@ -714,10 +705,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
if
(
nr_rx_pdsch
(
ue
,
proc
,
dlsch
,
gNB_id
,
gNB_id_i
,
frame_rx
,
nr_slot_rx
,
m
,
first_symbol_flag
,
harq_pid
,
...
...
@@ -763,7 +750,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
bool
nr_ue_dlsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
])
{
...
...
@@ -772,6 +758,7 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
return
1
;
}
int
gNB_id
=
proc
->
gNB_id
;
bool
dec
=
false
;
int
harq_pid
=
dlsch
[
0
].
dlsch_config
.
harq_process_nbr
;
int
frame_rx
=
proc
->
frame_rx
;
...
...
@@ -864,8 +851,8 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
break
;
}
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
gNB_id
,
NULL
);
nr_fill_rx_indication
(
rx_ind
,
ind_type
,
gNB_id
,
ue
,
&
dlsch
[
0
],
NULL
,
number_pdus
,
proc
,
NULL
);
nr_fill_dl_indication
(
&
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
NULL
);
nr_fill_rx_indication
(
rx_ind
,
ind_type
,
ue
,
&
dlsch
[
0
],
NULL
,
number_pdus
,
proc
,
NULL
);
LOG_D
(
PHY
,
"In %s DL PDU length in bits: %d, in bytes: %d
\n
"
,
__FUNCTION__
,
dlsch
[
0
].
dlsch_config
.
TBS
,
dlsch
[
0
].
dlsch_config
.
TBS
/
8
);
...
...
@@ -1067,11 +1054,11 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
nr_phy_data_t
*
phy_data
)
{
int
frame_rx
=
proc
->
frame_rx
;
int
nr_slot_rx
=
proc
->
nr_slot_rx
;
int
gNB_id
=
proc
->
gNB_id
;
fapi_nr_config_request_t
*
cfg
=
&
ue
->
nrUE_config
;
NR_DL_FRAME_PARMS
*
fp
=
&
ue
->
frame_parms
;
NR_UE_PDCCH_CONFIG
*
phy_pdcch_config
=
&
phy_data
->
phy_pdcch_config
;
...
...
@@ -1112,7 +1099,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_slot_fep
(
ue
,
proc
,
(
ssb_start_symbol
+
i
)
%
(
fp
->
symbols_per_slot
),
nr_slot_rx
,
rxdataF
);
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
...
...
@@ -1121,8 +1107,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
dl_ch_estimates
,
dl_ch_estimates_time
,
proc
,
gNB_id
,
nr_slot_rx
,
(
ssb_start_symbol
+
i
)
%
(
fp
->
symbols_per_slot
),
i
-
1
,
ssb_index
&
7
,
...
...
@@ -1131,7 +1115,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
}
nr_ue_ssb_rsrp_measurements
(
ue
,
ssb_index
,
proc
,
nr_slot_rx
,
rxdataF
);
nr_ue_ssb_rsrp_measurements
(
ue
,
ssb_index
,
proc
,
rxdataF
);
// resetting ssb index for PBCH detection if there is a stronger SSB index
if
(
ue
->
measurements
.
ssb_rsrp_dBm
[
ssb_index
]
>
ue
->
measurements
.
ssb_rsrp_dBm
[
fp
->
ssb_index
])
...
...
@@ -1140,7 +1124,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
if
(
ssb_index
==
fp
->
ssb_index
)
{
LOG_D
(
PHY
,
" ------ Decode MIB: frame.slot %d.%d ------
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
);
nr_ue_pbch_procedures
(
gNB_id
,
ue
,
proc
,
estimateSz
,
dl_ch_estimates
,
phy_data
,
rxdataF
);
nr_ue_pbch_procedures
(
ue
,
proc
,
estimateSz
,
dl_ch_estimates
,
phy_data
,
rxdataF
);
if
(
ue
->
no_timing_correction
==
0
)
{
LOG_D
(
PHY
,
"start adjust sync slot = %d no timing %d
\n
"
,
nr_slot_rx
,
ue
->
no_timing_correction
);
...
...
@@ -1156,7 +1140,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
}
}
LOG_D
(
PHY
,
"Doing N0 measurements in %s
\n
"
,
__FUNCTION__
);
nr_ue_rrc_measurements
(
ue
,
proc
,
nr_slot_rx
,
rxdataF
);
nr_ue_rrc_measurements
(
ue
,
proc
,
rxdataF
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PBCH
,
VCD_FUNCTION_OUT
);
}
}
...
...
@@ -1178,11 +1162,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_slot_fep
(
ue
,
proc
,
(
j
%
fp
->
symbols_per_slot
),
nr_slot_rx
,
rxdataF
);
}
nr_prs_channel_estimation
(
gNB_id
,
rsc_id
,
nr_prs_channel_estimation
(
rsc_id
,
i
,
ue
,
proc
,
...
...
@@ -1221,7 +1203,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_slot_fep
(
ue
,
proc
,
l
,
nr_slot_rx
,
rxdataF
);
}
...
...
@@ -1237,8 +1218,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_pdcch_channel_estimation
(
ue
,
proc
,
gNB_id
,
nr_slot_rx
,
l
,
&
phy_pdcch_config
->
pdcch_config
[
n_ss
].
coreset
,
fp
->
first_carrier_offset
,
...
...
@@ -1250,7 +1229,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
stop_meas
(
&
ue
->
ofdm_demod_stats
);
}
dci_cnt
=
dci_cnt
+
nr_ue_pdcch_procedures
(
gNB_id
,
ue
,
proc
,
pdcch_est_size
,
pdcch_dl_ch_estimates
,
phy_data
,
n_ss
,
rxdataF
);
dci_cnt
=
dci_cnt
+
nr_ue_pdcch_procedures
(
ue
,
proc
,
pdcch_est_size
,
pdcch_dl_ch_estimates
,
phy_data
,
n_ss
,
rxdataF
);
}
phy_pdcch_config
->
nb_search_space
=
0
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PDCCH
,
VCD_FUNCTION_OUT
);
...
...
@@ -1272,7 +1251,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
nr_slot_fep
(
ue
,
proc
,
m
,
//to be updated from higher layer
nr_slot_rx
,
rxdataF
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_PDSCH
,
VCD_FUNCTION_OUT
);
...
...
@@ -1316,7 +1294,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_C
,
VCD_FUNCTION_IN
);
ret_pdsch
=
nr_ue_pdsch_procedures
(
ue
,
proc
,
gNB_id
,
dlsch
,
llr
,
layer_llr
,
...
...
@@ -1332,7 +1309,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
start_meas
(
&
ue
->
dlsch_procedures_stat
);
if
(
ret_pdsch
>=
0
)
nr_ue_dlsch_procedures
(
ue
,
proc
,
gNB_id
,
dlsch
,
llr
);
nr_ue_dlsch_procedures
(
ue
,
proc
,
dlsch
,
llr
);
stop_meas
(
&
ue
->
dlsch_procedures_stat
);
if
(
cpumeas
(
CPUMEAS_GETSTATE
))
{
...
...
@@ -1364,10 +1341,10 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
}
l_csiim
[
symb_idx
]
=
ue
->
csiim_vars
[
gNB_id
]
->
csiim_config_pdu
.
l_csiim
[
symb_idx
];
if
(
nr_slot_fep_done
==
false
)
{
nr_slot_fep
(
ue
,
proc
,
ue
->
csiim_vars
[
gNB_id
]
->
csiim_config_pdu
.
l_csiim
[
symb_idx
],
nr_slot_rx
,
rxdataF
);
nr_slot_fep
(
ue
,
proc
,
ue
->
csiim_vars
[
gNB_id
]
->
csiim_config_pdu
.
l_csiim
[
symb_idx
],
rxdataF
);
}
}
nr_ue_csi_im_procedures
(
ue
,
proc
,
gNB_id
,
rxdataF
);
nr_ue_csi_im_procedures
(
ue
,
proc
,
rxdataF
);
ue
->
csiim_vars
[
gNB_id
]
->
active
=
0
;
}
...
...
@@ -1375,10 +1352,10 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
if
((
ue
->
csirs_vars
[
gNB_id
])
&&
(
ue
->
csirs_vars
[
gNB_id
]
->
active
==
1
))
{
for
(
int
symb
=
0
;
symb
<
NR_SYMBOLS_PER_SLOT
;
symb
++
)
{
if
(
is_csi_rs_in_symbol
(
ue
->
csirs_vars
[
gNB_id
]
->
csirs_config_pdu
,
symb
))
{
nr_slot_fep
(
ue
,
proc
,
symb
,
nr_slot_rx
,
rxdataF
);
nr_slot_fep
(
ue
,
proc
,
symb
,
rxdataF
);
}
}
nr_ue_csi_rs_procedures
(
ue
,
proc
,
gNB_id
,
rxdataF
);
nr_ue_csi_rs_procedures
(
ue
,
proc
,
rxdataF
);
ue
->
csirs_vars
[
gNB_id
]
->
active
=
0
;
}
...
...
@@ -1431,8 +1408,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
// todo:
// - power control as per 38.213 ch 7.4
void
nr_ue_prach_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
)
{
void
nr_ue_prach_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
)
{
int
gNB_id
=
proc
->
gNB_id
;
int
frame_tx
=
proc
->
frame_tx
,
nr_slot_tx
=
proc
->
nr_slot_tx
,
prach_power
;
// tx_amp
uint8_t
mod_id
=
ue
->
Mod_id
;
uint8_t
nr_prach
=
0
;
...
...
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
View file @
c31fe381
...
...
@@ -199,11 +199,10 @@ void nr_generate_pucch3_4(int32_t **txdataF,
*********************************************************************/
void
pucch_procedures_ue_nr
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
UE_nr_rxtx_proc_t
*
proc
,
nr_phy_data_tx_t
*
phy_data
)
{
int
nr_slot_tx
=
proc
->
nr_slot_tx
;
int
nr_slot_tx
=
proc
->
nr_slot_tx
;
fapi_nr_ul_config_pucch_pdu
*
pucch_pdu
;
NR_UE_PUCCH
*
pucch_vars
=
&
phy_data
->
pucch_vars
;
...
...
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
View file @
c31fe381
...
...
@@ -60,7 +60,6 @@
/*************** FUNCTIONS ****************************************/
void
pucch_procedures_ue_nr
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
UE_nr_rxtx_proc_t
*
proc
,
nr_phy_data_tx_t
*
phy_data
);
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
c31fe381
...
...
@@ -1096,6 +1096,7 @@ int main(int argc, char **argv)
UE
->
rx_offset
=
0
;
UE_proc
.
frame_rx
=
frame
;
UE_proc
.
nr_slot_rx
=
slot
;
UE_proc
.
gNB_id
=
0
;
dcireq
.
frame
=
frame
;
dcireq
.
slot
=
slot
;
...
...
@@ -1277,7 +1278,6 @@ int main(int argc, char **argv)
phy_procedures_nrUE_RX
(
UE
,
&
UE_proc
,
0
,
&
phy_data
);
//----------------------------------------------------------
...
...
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
View file @
c31fe381
...
...
@@ -78,11 +78,9 @@ void nr_fill_dl_indication(nr_downlink_indication_t *dl_ind,
fapi_nr_rx_indication_t
*
rx_ind
,
UE_nr_rxtx_proc_t
*
proc
,
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
void
*
phy_data
)
{}
void
nr_fill_rx_indication
(
fapi_nr_rx_indication_t
*
rx_ind
,
uint8_t
pdu_type
,
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
NR_UE_DLSCH_t
*
dlsch0
,
NR_UE_DLSCH_t
*
dlsch1
,
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
c31fe381
...
...
@@ -81,8 +81,7 @@ nrUE_params_t *get_nrUE_params(void) {
void
init_downlink_harq_status
(
NR_DL_UE_HARQ_t
*
dl_harq
)
{}
int
nr_ue_pdcch_procedures
(
uint8_t
gNB_id
,
PHY_VARS_NR_UE
*
ue
,
int
nr_ue_pdcch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int32_t
pdcch_est_size
,
int32_t
pdcch_dl_ch_estimates
[][
pdcch_est_size
],
...
...
@@ -94,7 +93,6 @@ int nr_ue_pdcch_procedures(uint8_t gNB_id,
int
nr_ue_pdsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
],
int16_t
*
layer_llr
[
NR_MAX_NB_LAYERS
],
...
...
@@ -104,7 +102,6 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue,
bool
nr_ue_dlsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
gNB_id
,
NR_UE_DLSCH_t
dlsch
[
2
],
int16_t
*
llr
[
2
])
{
return
false
;
...
...
@@ -762,15 +759,16 @@ int main(int argc, char **argv)
UE
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
,
ssb_index
);
int
ssb_slot
=
(
UE
->
symbol_offset
/
14
)
+
(
n_hf
*
(
frame_parms
->
slots_per_frame
>>
1
));
proc
.
nr_slot_rx
=
ssb_slot
;
proc
.
gNB_id
=
0
;
for
(
int
i
=
UE
->
symbol_offset
+
1
;
i
<
UE
->
symbol_offset
+
4
;
i
++
)
{
nr_slot_fep
(
UE
,
&
proc
,
i
%
frame_parms
->
symbols_per_slot
,
ssb_slot
,
rxdataF
);
nr_pbch_channel_estimation
(
UE
,
estimateSz
,
dl_ch_estimates
,
dl_ch_estimates_time
,
&
proc
,
0
,
ssb_slot
,
i
%
frame_parms
->
symbols_per_slot
,
i
-
(
UE
->
symbol_offset
+
1
),
ssb_index
%
8
,
n_hf
,
rxdataF
);
i
%
frame_parms
->
symbols_per_slot
,
i
-
(
UE
->
symbol_offset
+
1
),
ssb_index
%
8
,
n_hf
,
rxdataF
);
}
fapiPbch_t
result
;
...
...
@@ -779,7 +777,6 @@ int main(int argc, char **argv)
estimateSz
,
dl_ch_estimates
,
UE
->
pbch_vars
[
0
],
frame_parms
,
0
,
ssb_index
%
8
,
SISO
,
&
phy_data
,
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
c31fe381
...
...
@@ -304,7 +304,6 @@ int main(int argc, char **argv)
uint16_t
nb_rb
=
50
;
int
Imcs
=
9
;
uint8_t
precod_nbr_layers
=
1
;
int
gNB_id
=
0
;
int
tx_offset
;
int32_t
txlev_sum
=
0
,
atxlev
[
4
];
int
start_rb
=
0
;
...
...
@@ -1101,6 +1100,7 @@ int main(int argc, char **argv)
UE_proc
.
nr_slot_tx
=
slot
;
UE_proc
.
frame_tx
=
frame
;
UE_proc
.
gNB_id
=
0
;
UL_tti_req
->
SFN
=
frame
;
UL_tti_req
->
Slot
=
slot
;
...
...
@@ -1244,7 +1244,7 @@ int main(int argc, char **argv)
/////////////////////////phy_procedures_nr_ue_TX///////////////////////
///////////
phy_procedures_nrUE_TX
(
UE
,
&
UE_proc
,
gNB_id
,
&
phy_data
);
phy_procedures_nrUE_TX
(
UE
,
&
UE_proc
,
&
phy_data
);
if
(
n_trials
==
1
)
{
LOG_M
(
"txsig0.m"
,
"txs0"
,
&
UE
->
common_vars
.
txdata
[
0
][
slot_offset
],
slot_length
,
1
,
1
);
...
...
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