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
lizhongxiao
OpenXG-RAN
Commits
638b5f7f
Commit
638b5f7f
authored
Feb 14, 2022
by
Hongzhi Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding ulsch id to offload harq buffer offset for multiple users
parent
3df0b895
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
10 deletions
+16
-10
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
+12
-6
openair1/PHY/CODING/nrLDPC_defs.h
openair1/PHY/CODING/nrLDPC_defs.h
+1
-1
openair1/PHY/CODING/nrLDPC_load.c
openair1/PHY/CODING/nrLDPC_load.c
+2
-2
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+1
-1
No files found.
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
View file @
638b5f7f
...
...
@@ -167,6 +167,7 @@ struct thread_params {
int8_t
*
p_out
;
uint8_t
r
;
uint8_t
harq_pid
;
uint8_t
ulsch_id
;
rte_atomic16_t
nb_dequeued
;
rte_atomic16_t
processing_status
;
rte_atomic16_t
burst_sz
;
...
...
@@ -813,6 +814,7 @@ set_ldpc_dec_op(struct rte_bbdev_dec_op **ops, unsigned int n,
struct
rte_bbdev_dec_op
*
ref_op
,
uint8_t
r
,
uint8_t
harq_pid
,
uint8_t
ulsch_id
,
t_nrLDPCoffload_params
*
p_offloadParams
)
{
unsigned
int
i
;
...
...
@@ -843,9 +845,9 @@ set_ldpc_dec_op(struct rte_bbdev_dec_op **ops, unsigned int n,
ops
[
i
]
->
ldpc_dec
.
rv_index
=
p_offloadParams
->
rv
;
ops
[
i
]
->
ldpc_dec
.
op_flags
=
RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
|
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE
|
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE
;
//|RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP;
ops
[
i
]
->
ldpc_dec
.
code_block_mode
=
1
;
//ldpc_dec->code_block_mode;
ops
[
i
]
->
ldpc_dec
.
harq_combined_input
.
offset
=
harq_pid
*
1024
*
32
*
32
+
r
*
1024
*
32
;
ops
[
i
]
->
ldpc_dec
.
harq_combined_output
.
offset
=
harq_pid
*
1024
*
32
*
32
+
r
*
1024
*
32
;
//printf("set ldpc ulsch_id %d\n",ulsch_id);
ops
[
i
]
->
ldpc_dec
.
harq_combined_input
.
offset
=
ulsch_id
*
1024
*
32
*
32
*
16
+
harq_pid
*
1024
*
32
*
32
+
r
*
1024
*
32
;
ops
[
i
]
->
ldpc_dec
.
harq_combined_output
.
offset
=
ulsch_id
*
1024
*
32
*
32
*
16
+
harq_pid
*
1024
*
32
*
32
+
r
*
1024
*
32
;
if
(
hard_outputs
!=
NULL
)
...
...
@@ -1061,6 +1063,7 @@ pmd_lcore_ldpc_dec(void *arg)
struct
rte_bbdev_dec_op
*
ref_op
=
tp
->
op_params
->
ref_dec_op
;
uint8_t
r
=
tp
->
r
;
uint8_t
harq_pid
=
tp
->
harq_pid
;
uint8_t
ulsch_id
=
tp
->
ulsch_id
;
struct
test_buffers
*
bufs
=
NULL
;
int
i
,
j
,
ret
;
struct
rte_bbdev_info
info
;
...
...
@@ -1105,7 +1108,7 @@ pmd_lcore_ldpc_dec(void *arg)
set_ldpc_dec_op
(
ops_enq
,
num_ops
,
0
,
bufs
->
inputs
,
bufs
->
hard_outputs
,
bufs
->
soft_outputs
,
bufs
->
harq_inputs
,
bufs
->
harq_outputs
,
ref_op
,
r
,
harq_pid
,
p_offloadParams
);
bufs
->
harq_inputs
,
bufs
->
harq_outputs
,
ref_op
,
r
,
harq_pid
,
ulsch_id
,
p_offloadParams
);
/* Set counter to validate the ordering */
for
(
j
=
0
;
j
<
num_ops
;
++
j
)
...
...
@@ -1227,6 +1230,7 @@ start_pmd_dec(struct active_device *ad,
t_nrLDPCoffload_params
*
p_offloadParams
,
uint8_t
r
,
uint8_t
harq_pid
,
uint8_t
ulsch_id
,
int8_t
*
p_out
)
{
int
ret
;
...
...
@@ -1270,6 +1274,7 @@ start_pmd_dec(struct active_device *ad,
t_params
[
0
].
p_offloadParams
=
p_offloadParams
;
t_params
[
0
].
r
=
r
;
t_params
[
0
].
harq_pid
=
harq_pid
;
t_params
[
0
].
ulsch_id
=
ulsch_id
;
RTE_LCORE_FOREACH_SLAVE
(
lcore_id
)
{
if
(
used_cores
>=
num_lcores
)
...
...
@@ -1283,6 +1288,7 @@ start_pmd_dec(struct active_device *ad,
t_params
[
used_cores
].
p_offloadParams
=
p_offloadParams
;
t_params
[
used_cores
].
r
=
r
;
t_params
[
used_cores
].
harq_pid
=
harq_pid
;
t_params
[
used_cores
].
ulsch_id
=
ulsch_id
;
rte_eal_remote_launch
(
pmd_lcore_ldpc_dec
,
&
t_params
[
used_cores
++
],
lcore_id
);
...
...
@@ -1417,7 +1423,7 @@ struct rte_mbuf *m_head[DATA_NUM_TYPES];
struct
thread_params
*
t_params
;
int32_t
nrLDPC_decod_offload
(
t_nrLDPC_dec_params
*
p_decParams
,
uint8_t
harq_pid
,
uint8_t
C
,
uint8_t
rv
,
uint16_t
F
,
int32_t
nrLDPC_decod_offload
(
t_nrLDPC_dec_params
*
p_decParams
,
uint8_t
harq_pid
,
uint8_t
ulsch_id
,
uint8_t
C
,
uint8_t
rv
,
uint16_t
F
,
uint32_t
E
,
uint8_t
Qm
,
int8_t
*
p_llr
,
int8_t
*
p_out
,
uint8_t
mode
)
{
t_nrLDPCoffload_params
offloadParams
;
...
...
@@ -1635,7 +1641,7 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t harq_pid,
LOG_E
(
PHY
,
" ldpc decoder mode 1 first: %u
\n
"
,(
uint
)
(
total_time_init
/
3000
));
start_time1
=
rte_rdtsc_precise
();
ret
=
start_pmd_dec
(
ad
,
op_params
,
t_params
,
p_offloadParams
,
C
,
harq_pid
,
p_out
);
ret
=
start_pmd_dec
(
ad
,
op_params
,
t_params
,
p_offloadParams
,
C
,
harq_pid
,
ulsch_id
,
p_out
);
if
(
ret
<
0
)
{
printf
(
"Couldn't start pmd dec"
);
return
(
-
1
);
...
...
openair1/PHY/CODING/nrLDPC_defs.h
View file @
638b5f7f
...
...
@@ -74,7 +74,7 @@ typedef int(*nrLDPC_encoderfunc_t)(unsigned char **,unsigned char **,int,int,sho
*/
typedef
int32_t
(
*
nrLDPC_decoderfunc_t
)(
t_nrLDPC_dec_params
*
,
int8_t
*
,
int8_t
*
,
t_nrLDPC_procBuf
*
,
t_nrLDPC_time_stats
*
);
typedef
int32_t
(
*
nrLDPC_decoffloadfunc_t
)(
t_nrLDPC_dec_params
*
,
int8_t
,
uint8_t
,
uint8_t
,
uint16_t
,
uint32_t
,
uint8_t
,
int8_t
*
,
int8_t
*
,
uint8_t
);
typedef
int32_t
(
*
nrLDPC_decoffloadfunc_t
)(
t_nrLDPC_dec_params
*
,
uint8_t
,
u
int8_t
,
uint8_t
,
uint8_t
,
uint16_t
,
uint32_t
,
uint8_t
,
int8_t
*
,
int8_t
*
,
uint8_t
);
typedef
int32_t
(
*
nrLDPC_dectopfunc_t
)(
void
);
#endif
openair1/PHY/CODING/nrLDPC_load.c
View file @
638b5f7f
...
...
@@ -87,7 +87,7 @@ int load_nrLDPClib_offload(void) {
p_decParams
->
Z
=
384
;
p_decParams
->
BG
=
1
;
AssertFatal
(
nrLDPC_decoder_offload
(
p_decParams
,
0
,
AssertFatal
(
nrLDPC_decoder_offload
(
p_decParams
,
0
,
0
,
1
,
0
,
0
,
...
...
@@ -110,7 +110,7 @@ t_nrLDPC_dec_params decParams;
p_decParams
->
Z
=
384
;
p_decParams
->
BG
=
1
;
nrLDPC_decoder_offload
(
p_decParams
,
0
,
nrLDPC_decoder_offload
(
p_decParams
,
0
,
0
,
1
,
0
,
0
,
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
638b5f7f
...
...
@@ -613,7 +613,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
}
ret
=
nrLDPC_decoder_offload
(
p_decParams
,
harq_pid
,
r
,
ULSCH_id
,
r
,
pusch_pdu
->
pusch_data
.
rv_index
,
harq_process
->
F
,
E
,
...
...
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