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
zzha zzha
OpenXG-RAN
Commits
41b18e21
Commit
41b18e21
authored
Mar 11, 2019
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE SSB periodicity (hardcoded)
parent
aa12c954
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
15 deletions
+15
-15
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+10
-10
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+4
-4
No files found.
openair1/SCHED_NR_UE/defs.h
View file @
41b18e21
...
@@ -123,7 +123,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t e
...
@@ -123,7 +123,7 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t e
@param r_type indicates the relaying operation: 0: no_relaying, 1: unicast relaying type 1, 2: unicast relaying type 2, 3: multicast relaying
@param r_type indicates the relaying operation: 0: no_relaying, 1: unicast relaying type 1, 2: unicast relaying type 2, 3: multicast relaying
@param phy_vars_rn pointer to RN variables
@param phy_vars_rn pointer to RN variables
*/
*/
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
);
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
,
fapi_nr_pbch_config_t
pbch_config
);
int
phy_procedures_slot_parallelization_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
,
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
eNB_id
,
uint8_t
abstraction_flag
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
,
relaying_type_t
r_type
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
41b18e21
...
@@ -4958,18 +4958,20 @@ int phy_procedures_slot_parallelization_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_pr
...
@@ -4958,18 +4958,20 @@ int phy_procedures_slot_parallelization_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_pr
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
int
phy_procedures_nrUE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
)
{
uint8_t
do_pdcch_flag
,
runmode_t
mode
,
fapi_nr_pbch_config_t
pbch_config
)
{
int
l
,
l2
;
int
l
,
l2
;
int
pilot1
;
int
pilot1
;
int
frame_rx
=
proc
->
frame_rx
;
int
frame_rx
=
proc
->
frame_rx
;
int
nr_tti_rx
=
proc
->
nr_tti_rx
;
int
nr_tti_rx
=
proc
->
nr_tti_rx
;
NR_UE_PDCCH
*
pdcch_vars
=
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_rx
]][
0
];
NR_UE_PDCCH
*
pdcch_vars
=
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_rx
]][
0
];
uint16_t
nb_symb_sch
=
8
;
// to be updated by higher layer
uint16_t
nb_symb_sch
=
8
;
// to be updated by higher layer
uint8_t
nb_symb_pdcch
=
pdcch_vars
->
coreset
[
0
].
duration
;
uint8_t
nb_symb_pdcch
=
pdcch_vars
->
coreset
[
0
].
duration
;
uint8_t
ssb_periodicity
=
20
;
// TODO hardcoded to be taken from upper layers?
uint8_t
ssb_frame_periodicity
;
LOG_D
(
PHY
,
" ****** start RX-Chain for Frame.Slot %d.%d ******
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
LOG_D
(
PHY
,
" ****** start RX-Chain for Frame.Slot %d.%d ******
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
...
@@ -5094,18 +5096,16 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5094,18 +5096,16 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA
,
VCD_FUNCTION_OUT
);
}
}
ssb_frame_periodicity
=
ssb_periodicity
/
10
;
// 10ms is the frame length
// looking for pbch only in frames according to ssb periodicity
if
(
(
nr_tti_rx
==
0
)
&&
(
ue
->
decode_MIB
==
1
))
if
(
(
nr_tti_rx
==
0
)
&&
(
ue
->
decode_MIB
==
1
)
&&
!
((
frame_rx
-
(
pbch_config
.
system_frame_number
))
%
ssb_frame_periodicity
)
)
{
{
LOG_D
(
PHY
,
" ------ PBCH ChannelComp/LLR: frame.slot %d.%d ------
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
LOG_D
(
PHY
,
" ------ PBCH ChannelComp/LLR: frame.slot %d.%d ------
\n
"
,
frame_rx
%
1024
,
nr_tti_rx
);
uint8_t
i_ssb
=
ue
->
rx_ind
.
rx_indication_body
[
0
].
mib_pdu
.
ssb_index
;
uint8_t
n_hf
=
(((
ue
->
rx_ind
.
rx_indication_body
[
0
].
mib_pdu
.
additional_bits
)
>>
4
)
&
0x01
);
for
(
int
i
=
1
;
i
<
4
;
i
++
)
{
for
(
int
i
=
1
;
i
<
4
;
i
++
)
{
nr_slot_fep
(
ue
,
nr_slot_fep
(
ue
,
(
ue
->
symbol_offset
+
i
),
//mu=1 case B
(
ue
->
symbol_offset
+
i
),
nr_tti_rx
,
nr_tti_rx
,
0
,
0
,
0
,
0
,
...
@@ -5114,7 +5114,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5114,7 +5114,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
start_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
#endif
#endif
nr_pbch_channel_estimation
(
ue
,
0
,
0
,
ue
->
symbol_offset
+
i
,
i
-
1
,
i_ssb
,
n_hf
);
nr_pbch_channel_estimation
(
ue
,
0
,
0
,
ue
->
symbol_offset
+
i
,
i
-
1
,
(
pbch_config
.
ssb_index
)
&
7
,
pbch_config
.
half_frame_bit
);
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
stop_meas
(
&
ue
->
dlsch_channel_estimation_stats
);
#endif
#endif
...
@@ -5183,7 +5183,7 @@ start_meas(&ue->generic_stat);
...
@@ -5183,7 +5183,7 @@ start_meas(&ue->generic_stat);
if(nr_tti_rx==5 && ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){
if(nr_tti_rx==5 && ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){
//write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0);
//write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0);
//write_output("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
//write_output("llr.m","llr", &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
openair1/SCHED_NR/phy_procedures_nr_gNB.c
write_output("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
write_output("rxdataF0_current.m" , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[nr_tti_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
//write_output("rxdataF0_previous.m" , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
...
...
targets/RT/USER/nr-ue.c
View file @
41b18e21
...
@@ -638,7 +638,7 @@ static void *UE_thread_synch(void *arg) {
...
@@ -638,7 +638,7 @@ static void *UE_thread_synch(void *arg) {
return
&
UE_thread_synch_retval
;
return
&
UE_thread_synch_retval
;
}
}
void
processS
ubframe
RX
(
PHY_VARS_NR_UE
*
UE
,
UE_nr_rxtx_proc_t
*
proc
)
{
void
processS
lot
RX
(
PHY_VARS_NR_UE
*
UE
,
UE_nr_rxtx_proc_t
*
proc
)
{
// Process Rx data for one sub-frame
// Process Rx data for one sub-frame
if
(
slot_select_nr
(
&
UE
->
frame_parms
,
proc
->
frame_tx
,
proc
->
nr_tti_tx
)
&
NR_DOWNLINK_SLOT
)
{
if
(
slot_select_nr
(
&
UE
->
frame_parms
,
proc
->
frame_tx
,
proc
->
nr_tti_tx
)
&
NR_DOWNLINK_SLOT
)
{
//clean previous FAPI MESSAGE
//clean previous FAPI MESSAGE
...
@@ -661,7 +661,7 @@ void processSubframeRX( PHY_VARS_NR_UE *UE, UE_nr_rxtx_proc_t *proc) {
...
@@ -661,7 +661,7 @@ void processSubframeRX( PHY_VARS_NR_UE *UE, UE_nr_rxtx_proc_t *proc) {
#ifdef UE_SLOT_PARALLELISATION
#ifdef UE_SLOT_PARALLELISATION
phy_procedures_slot_parallelization_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
,
NULL
);
phy_procedures_slot_parallelization_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
,
NULL
);
#else
#else
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
1
,
UE
->
mode
);
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
1
,
UE
->
mode
,
UE_mac
->
phy_config
.
config_req
.
pbch_config
);
// printf(">>> nr_ue_pdcch_procedures ended\n");
// printf(">>> nr_ue_pdcch_procedures ended\n");
#endif
#endif
}
}
...
@@ -725,7 +725,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -725,7 +725,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
}
}
AssertFatal
(
0
==
pthread_mutex_unlock
(
&
proc
->
mutex_rxtx
),
"[SCHED][UE] error unlocking mutex for UE RXn_TXnp4
\n
"
);
AssertFatal
(
0
==
pthread_mutex_unlock
(
&
proc
->
mutex_rxtx
),
"[SCHED][UE] error unlocking mutex for UE RXn_TXnp4
\n
"
);
processS
ubframe
RX
(
UE
,
proc
);
processS
lot
RX
(
UE
,
proc
);
//printf(">>> mac ended\n");
//printf(">>> mac ended\n");
// Prepare the future Tx data
// Prepare the future Tx data
#if 0
#if 0
...
@@ -1123,7 +1123,7 @@ void *UE_thread(void *arg) {
...
@@ -1123,7 +1123,7 @@ void *UE_thread(void *arg) {
// pickStaticTime(lastTime);
// pickStaticTime(lastTime);
}
//UE->mode != loop_through_memory
}
//UE->mode != loop_through_memory
else
{
else
{
processS
ubframe
RX
(
UE
,
proc
);
processS
lot
RX
(
UE
,
proc
);
getchar
();
getchar
();
}
// else loop_through_memory
}
// else loop_through_memory
}
// while !oai_exit
}
// while !oai_exit
...
...
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