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
常顺宇
OpenXG-RAN
Commits
c6357850
Commit
c6357850
authored
Nov 28, 2018
by
Hongzhi Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update dlsch decoding worker threads
parent
252a1fbc
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
378 additions
and
1245 deletions
+378
-1245
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+347
-1232
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+18
-0
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+4
-4
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+6
-6
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+3
-3
No files found.
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
c6357850
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
c6357850
...
...
@@ -32,6 +32,7 @@
#ifndef __NR_TRANSPORT_PROTO_UE__H__
#define __NR_TRANSPORT_PROTO_UE__H__
#include "PHY/defs_nr_UE.h"
#include "SCHED_NR_UE/defs.h"
//#include "PHY/LTE_TRANSPORT/transport_common_proto.h"
#include <math.h>
#include "nfapi_interface.h"
...
...
@@ -1005,6 +1006,23 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
uint8_t
is_crnti
,
uint8_t
llr8_flag
);
uint32_t
nr_dlsch_decoding_mthread
(
PHY_VARS_NR_UE
*
phy_vars_ue
,
UE_nr_rxtx_proc_t
*
proc
,
int
eNB_id
,
short
*
dlsch_llr
,
NR_DL_FRAME_PARMS
*
frame_parms
,
NR_UE_DLSCH_t
*
dlsch
,
NR_DL_UE_HARQ_t
*
harq_process
,
uint32_t
frame
,
uint8_t
nr_tti_rx
,
uint8_t
harq_pid
,
uint8_t
is_crnti
,
uint8_t
llr8_flag
);
void
*
nr_dlsch_decoding_2thread0
(
void
*
arg
);
void
*
nr_dlsch_decoding_2thread1
(
void
*
arg
);
void
nr_dlsch_unscrambling
(
int16_t
*
llr
,
uint8_t
size
,
uint8_t
q
,
...
...
openair1/SCHED_NR_UE/defs.h
View file @
c6357850
...
...
@@ -112,7 +112,7 @@ int phy_procedures_RN_UE_RX(unsigned char last_slot, unsigned char next_slot, re
@param mode calib/normal mode
@param r_type indicates the relaying operation: 0: no_relaying, 1: unicast relaying type 1, 2: unicast relaying type 2, 3: multicast relaying
*/
void
phy_procedures_UE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
);
void
phy_procedures_
nr
UE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
);
/*! \brief Scheduling for UE RX procedures in normal subframes.
@param last_slot Index of last slot (0-19)
@param phy_vars_ue Pointer to UE variables on which to act
...
...
@@ -124,7 +124,7 @@ void phy_procedures_UE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB
@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
abstraction_flag
,
uint8_t
do_pdcch_flag
,
runmode_t
mode
,
relaying_type_t
r_type
);
int
phy_procedures_slot_parallelization_UE_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_
nr
UE_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
);
#ifdef UE_SLOT_PARALLELISATION
void
*
UE_thread_slot1_dl_processing
(
void
*
arg
);
...
...
@@ -136,7 +136,7 @@ void *UE_thread_slot1_dl_processing(void *arg);
@param abstraction_flag Indicator of PHY abstraction
@param r_type indicates the relaying operation: 0: no_relaying, 1: unicast relaying type 1, 2: unicast relaying type 2, 3: multicast relaying
*/
void
phy_procedures_UE_S_TX
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
relaying_type_t
r_type
);
//
void phy_procedures_UE_S_TX(PHY_VARS_NR_UE *ue,uint8_t eNB_id,uint8_t abstraction_flag,relaying_type_t r_type);
/*! \brief Scheduling for UE RX procedures in TDD S-subframes.
@param phy_vars_ue Pointer to UE variables on which to act
...
...
@@ -144,7 +144,7 @@ void phy_procedures_UE_S_TX(PHY_VARS_NR_UE *ue,uint8_t eNB_id,uint8_t abstractio
@param abstraction_flag Indicator of PHY abstraction
@param r_type indicates the relaying operation: 0: no_relaying, 1: unicast relaying type 1, 2: unicast relaying type 2, 3: multicast relaying
*/
void
phy_procedures_UE_S_RX
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
relaying_type_t
r_type
);
//
void phy_procedures_UE_S_RX(PHY_VARS_NR_UE *ue,uint8_t eNB_id,uint8_t abstraction_flag, relaying_type_t r_type);
/*! \brief Function to compute subframe type as a function of Frame type and TDD Configuration (implements Table 4.2.2 from 36.211, p.11 from version 8.6) and subframe index.
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
c6357850
...
...
@@ -40,7 +40,7 @@
#include "PHY/phy_extern_nr_ue.h"
#include "PHY/NR_REFSIG/refsig_defs_ue.h"
#include "PHY/MODULATION/modulation_UE.h"
//#include "PHY/NR_UE_TRANSPORT/nr_transport
_ue.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto
_ue.h"
//#include "PHY/extern.h"
#include "SCHED_NR_UE/defs.h"
#include "SCHED_NR/extern.h"
...
...
@@ -3936,7 +3936,7 @@ void ue_pmch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc,int eNB_id,i
ue
->
pdsch_vars_MCH
[
0
]
->
llr
[
0
],
0
,
nr_tti_rx
<<
1
);
#ifdef UE_DLSCH_PARALLELISATION
ret
=
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
ret
=
nr_
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
ue
->
pdsch_vars_MCH
[
0
]
->
llr
[
0
],
&
ue
->
frame_parms
,
ue
->
dlsch_MCH
[
0
],
...
...
@@ -3946,7 +3946,7 @@ void ue_pmch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc,int eNB_id,i
0
,
0
,
1
);
#else
ret
=
dlsch_decoding
(
ue
,
ret
=
nr_
dlsch_decoding
(
ue
,
ue
->
pdsch_vars_MCH
[
0
]
->
llr
[
0
],
&
ue
->
frame_parms
,
ue
->
dlsch_MCH
[
0
],
...
...
@@ -4370,7 +4370,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
#endif
#ifdef UE_DLSCH_PARALLELISATION
ret
=
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
ret
=
nr_
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
pdsch_vars
->
llr
[
0
],
&
ue
->
frame_parms
,
dlsch0
,
...
...
@@ -4446,7 +4446,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
#endif
#ifdef UE_DLSCH_PARALLELISATION
ret1
=
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
ret1
=
nr_
dlsch_decoding_mthread
(
ue
,
proc
,
eNB_id
,
pdsch_vars
->
llr
[
1
],
&
ue
->
frame_parms
,
dlsch1
,
...
...
@@ -4958,7 +4958,7 @@ void *UE_thread_slot1_dl_processing(void *arg) {
#endif
#ifdef UE_SLOT_PARALLELISATION
int
phy_procedures_slot_parallelization_UE_RX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
int
phy_procedures_slot_parallelization_
nr
UE_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
)
{
...
...
targets/RT/USER/nr-ue.c
View file @
c6357850
...
...
@@ -680,7 +680,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
//clean previous FAPI MESSAGE
#ifdef UE_SLOT_PARALLELISATION
phy_procedures_slot_parallelization_UE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
,
NULL
);
phy_procedures_slot_parallelization_
nr
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
"
);
...
...
@@ -1187,11 +1187,11 @@ void init_UE_threads(PHY_VARS_NR_UE *UE) {
#ifdef UE_DLSCH_PARALLELISATION
pthread_mutex_init
(
&
UE
->
proc
.
proc_rxtx
[
i
].
mutex_dlsch_td
,
NULL
);
pthread_cond_init
(
&
UE
->
proc
.
proc_rxtx
[
i
].
cond_dlsch_td
,
NULL
);
pthread_create
(
&
UE
->
proc
.
proc_rxtx
[
i
].
pthread_dlsch_td
,
NULL
,
dlsch_decoding_2thread0
,
rtd
);
pthread_create
(
&
UE
->
proc
.
proc_rxtx
[
i
].
pthread_dlsch_td
,
NULL
,
nr_
dlsch_decoding_2thread0
,
rtd
);
//thread 2
pthread_mutex_init
(
&
UE
->
proc
.
proc_rxtx
[
i
].
mutex_dlsch_td1
,
NULL
);
pthread_cond_init
(
&
UE
->
proc
.
proc_rxtx
[
i
].
cond_dlsch_td1
,
NULL
);
pthread_create
(
&
UE
->
proc
.
proc_rxtx
[
i
].
pthread_dlsch_td1
,
NULL
,
dlsch_decoding_2thread1
,
rtd
);
pthread_create
(
&
UE
->
proc
.
proc_rxtx
[
i
].
pthread_dlsch_td1
,
NULL
,
nr_
dlsch_decoding_2thread1
,
rtd
);
#endif
#ifdef UE_SLOT_PARALLELISATION
...
...
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