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
spbro
OpenXG-RAN
Commits
8af206c6
Commit
8af206c6
authored
Sep 15, 2021
by
Hongzhi Wang
Committed by
Hongzhi Wang
Mar 09, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding allocation free function for offload
parent
2423996b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
115 additions
and
249 deletions
+115
-249
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
+93
-247
openair1/PHY/CODING/nrLDPC_extern.h
openair1/PHY/CODING/nrLDPC_extern.h
+1
-0
openair1/PHY/CODING/nrLDPC_load.c
openair1/PHY/CODING/nrLDPC_load.c
+20
-0
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+1
-2
No files found.
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c
View file @
8af206c6
...
@@ -582,17 +582,16 @@ static void
...
@@ -582,17 +582,16 @@ static void
testsuite_teardown
(
void
)
testsuite_teardown
(
void
)
{
{
uint8_t
dev_id
;
uint8_t
dev_id
;
printf
(
"testsuite teardown
\n
"
);
/* Unconfigure devices */
/* Unconfigure devices */
//
RTE_BBDEV_FOREACH(dev_id)
RTE_BBDEV_FOREACH
(
dev_id
)
//
rte_bbdev_close(dev_id);
rte_bbdev_close
(
dev_id
);
/* Clear active devices structs. */
/* Clear active devices structs. */
//
memset(active_devs, 0, sizeof(active_devs));
memset
(
active_devs
,
0
,
sizeof
(
active_devs
));
//
nb_active_devs = 0;
nb_active_devs
=
0
;
/* Disable interrupts */
/* Disable interrupts */
//
intr_enabled = false;
intr_enabled
=
false
;
}
}
static
int
static
int
...
@@ -624,7 +623,7 @@ ut_teardown(void)
...
@@ -624,7 +623,7 @@ ut_teardown(void)
/* read stats and print */
/* read stats and print */
rte_bbdev_stats_get
(
dev_id
,
&
stats
);
rte_bbdev_stats_get
(
dev_id
,
&
stats
);
/* Stop the device */
/* Stop the device */
//
rte_bbdev_stop(dev_id);
rte_bbdev_stop
(
dev_id
);
}
}
}
}
...
@@ -756,46 +755,6 @@ allocate_buffers_on_socket(struct rte_bbdev_op_data **buffers, const int len,
...
@@ -756,46 +755,6 @@ allocate_buffers_on_socket(struct rte_bbdev_op_data **buffers, const int len,
}
}
static
void
ldpc_input_llr_scaling
(
struct
rte_bbdev_op_data
*
input_ops
,
const
uint16_t
n
,
const
int8_t
llr_size
,
const
int8_t
llr_decimals
)
{
if
(
input_ops
==
NULL
)
return
;
uint16_t
i
,
byte_idx
;
int16_t
llr_max
,
llr_min
,
llr_tmp
;
llr_max
=
(
1
<<
(
llr_size
-
1
))
-
1
;
llr_min
=
-
llr_max
;
for
(
i
=
0
;
i
<
n
;
++
i
)
{
struct
rte_mbuf
*
m
=
input_ops
[
i
].
data
;
while
(
m
!=
NULL
)
{
int8_t
*
llr
=
rte_pktmbuf_mtod_offset
(
m
,
int8_t
*
,
input_ops
[
i
].
offset
);
for
(
byte_idx
=
0
;
byte_idx
<
rte_pktmbuf_data_len
(
m
);
++
byte_idx
)
{
llr_tmp
=
llr
[
byte_idx
];
if
(
llr_decimals
==
4
)
llr_tmp
*=
8
;
else
if
(
llr_decimals
==
2
)
llr_tmp
*=
2
;
else
if
(
llr_decimals
==
0
)
llr_tmp
/=
2
;
llr_tmp
=
RTE_MIN
(
llr_max
,
RTE_MAX
(
llr_min
,
llr_tmp
));
llr
[
byte_idx
]
=
(
int8_t
)
llr_tmp
;
}
m
=
m
->
next
;
}
}
}
static
int
static
int
fill_queue_buffers
(
struct
test_op_params
*
op_params
,
int8_t
*
p_llr
,
uint32_t
data_len
,
fill_queue_buffers
(
struct
test_op_params
*
op_params
,
int8_t
*
p_llr
,
uint32_t
data_len
,
struct
rte_mempool
*
in_mp
,
struct
rte_mempool
*
hard_out_mp
,
struct
rte_mempool
*
in_mp
,
struct
rte_mempool
*
hard_out_mp
,
...
@@ -808,9 +767,9 @@ fill_queue_buffers(struct test_op_params *op_params,int8_t* p_llr, uint32_t data
...
@@ -808,9 +767,9 @@ fill_queue_buffers(struct test_op_params *op_params,int8_t* p_llr, uint32_t data
int
ret
;
int
ret
;
enum
op_data_type
type
;
enum
op_data_type
type
;
const
uint16_t
n
=
op_params
->
num_to_process
;
const
uint16_t
n
=
op_params
->
num_to_process
;
int
ldpc_llr_decimals
;
//
int ldpc_llr_decimals;
int
ldpc_llr_size
;
//
int ldpc_llr_size;
uint32_t
ldpc_cap_flags
;
//
uint32_t ldpc_cap_flags;
struct
rte_mempool
*
mbuf_pools
[
DATA_NUM_TYPES
]
=
{
struct
rte_mempool
*
mbuf_pools
[
DATA_NUM_TYPES
]
=
{
in_mp
,
in_mp
,
...
@@ -1064,7 +1023,7 @@ create_reference_ldpc_dec_op(struct rte_bbdev_dec_op *op, t_nrLDPCoffload_params
...
@@ -1064,7 +1023,7 @@ create_reference_ldpc_dec_op(struct rte_bbdev_dec_op *op, t_nrLDPCoffload_params
static
uint32_t
/*
static uint32_t
calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op)
calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op)
{
{
uint8_t i;
uint8_t i;
...
@@ -1085,7 +1044,7 @@ calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op)
...
@@ -1085,7 +1044,7 @@ calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op)
}
}
return tb_size;
return tb_size;
}
}
*/
static
int
static
int
init_test_op_params
(
struct
test_op_params
*
op_params
,
init_test_op_params
(
struct
test_op_params
*
op_params
,
...
@@ -1118,124 +1077,12 @@ init_test_op_params(struct test_op_params *op_params,
...
@@ -1118,124 +1077,12 @@ init_test_op_params(struct test_op_params *op_params,
return
0
;
return
0
;
}
}
static
int
decod_on_device
(
uint8_t
dev_id
,
struct
test_op_params
*
op_params
,
int8_t
*
p_llr
,
t_nrLDPCoffload_params
*
p_offloadParams
,
int8_t
*
p_out
)
{
int
t_ret
,
f_ret
,
socket_id
=
SOCKET_ID_ANY
;
unsigned
int
i
;
struct
active_device
*
ad
;
unsigned
int
burst_sz
=
get_burst_sz
();
enum
rte_bbdev_op_type
op_type
=
RTE_BBDEV_OP_LDPC_DEC
;
const
struct
rte_bbdev_op_cap
*
capabilities
=
NULL
;
ad
=
&
active_devs
[
dev_id
];
/* Check if device supports op_type */
if
(
!
is_avail_op
(
ad
,
op_type
))
return
TEST_SUCCESS
;
struct
rte_bbdev_info
info
;
rte_bbdev_info_get
(
ad
->
dev_id
,
&
info
);
socket_id
=
GET_SOCKET
(
info
.
socket_id
);
f_ret
=
create_mempools
(
ad
,
socket_id
,
op_type
,
get_num_ops
(),
p_offloadParams
);
if
(
f_ret
!=
TEST_SUCCESS
)
{
printf
(
"Couldn't create mempools"
);
goto
fail
;
}
f_ret
=
init_test_op_params
(
op_params
,
op_type
,
0
,
0
,
ad
->
ops_mempool
,
burst_sz
,
get_num_ops
(),
get_num_lcores
());
if
(
f_ret
!=
TEST_SUCCESS
)
{
printf
(
"Couldn't init test op params"
);
goto
fail
;
}
/* Find capabilities */
const
struct
rte_bbdev_op_cap
*
cap
=
info
.
drv
.
capabilities
;
for
(
i
=
0
;
i
<
RTE_BBDEV_OP_TYPE_COUNT
;
i
++
)
{
if
(
cap
->
type
==
op_type
)
{
capabilities
=
cap
;
break
;
}
cap
++
;
}
TEST_ASSERT_NOT_NULL
(
capabilities
,
"Couldn't find capabilities"
);
create_reference_ldpc_dec_op
(
op_params
->
ref_dec_op
,
p_offloadParams
);
printf
(
"info alig %d queue id %d nb queue %d socket id %d
\n
"
,
info
.
drv
.
min_alignment
,
ad
->
queue_ids
[
i
],
ad
->
nb_queues
,
socket_id
);
for
(
i
=
0
;
i
<
ad
->
nb_queues
;
++
i
)
{
f_ret
=
fill_queue_buffers
(
op_params
,
p_llr
,
p_offloadParams
->
E
,
ad
->
in_mbuf_pool
,
ad
->
hard_out_mbuf_pool
,
ad
->
soft_out_mbuf_pool
,
ad
->
harq_in_mbuf_pool
,
ad
->
harq_out_mbuf_pool
,
ad
->
queue_ids
[
i
],
capabilities
,
info
.
drv
.
min_alignment
,
socket_id
);
if
(
f_ret
!=
TEST_SUCCESS
)
{
printf
(
"Couldn't init queue buffers"
);
goto
fail
;
}
}
// t_ret = start_pmd_dec(ad, op_params, p_offloadParams, p_out);
/* Free active device resources and return */
//free_buffers(ad, op_params);
return
t_ret
;
fail:
free_buffers
(
ad
,
op_params
);
return
TEST_FAILED
;
}
/* Run ldpc per active device per supported op type
* per burst size.
*/
static
int
ldpc_decod_ut
(
struct
test_op_params
*
op_params
,
int8_t
*
p_llr
,
t_nrLDPCoffload_params
*
p_offloadParams
,
int8_t
*
p_out
)
{
int
ret
=
0
;
uint8_t
dev
;
/* Alloc op_params */
/*struct test_op_params *op_params = rte_zmalloc(NULL,
sizeof(struct test_op_params), RTE_CACHE_LINE_SIZE);
TEST_ASSERT_NOT_NULL(op_params, "Failed to alloc %zuB for op_params",
RTE_ALIGN(sizeof(struct test_op_params),
RTE_CACHE_LINE_SIZE));
*/
/* For each device run test case function */
for
(
dev
=
0
;
dev
<
nb_active_devs
;
++
dev
)
ret
|=
decod_on_device
(
dev
,
op_params
,
p_llr
,
p_offloadParams
,
p_out
);
// rte_free(op_params);
return
ret
;
}
static
int
static
int
pmd_lcore_ldpc_dec
(
void
*
arg
)
pmd_lcore_ldpc_dec
(
void
*
arg
)
{
{
struct
thread_params
*
tp
=
arg
;
struct
thread_params
*
tp
=
arg
;
uint16_t
enq
,
deq
;
uint16_t
enq
,
deq
;
uint64_t
total_time
=
0
,
start_time
;
//
uint64_t total_time = 0, start_time;
const
uint16_t
queue_id
=
tp
->
queue_id
;
const
uint16_t
queue_id
=
tp
->
queue_id
;
const
uint16_t
burst_sz
=
tp
->
op_params
->
burst_sz
;
const
uint16_t
burst_sz
=
tp
->
op_params
->
burst_sz
;
const
uint16_t
num_ops
=
tp
->
op_params
->
num_to_process
;
const
uint16_t
num_ops
=
tp
->
op_params
->
num_to_process
;
...
@@ -1389,7 +1236,7 @@ start_pmd_dec(struct active_device *ad,
...
@@ -1389,7 +1236,7 @@ start_pmd_dec(struct active_device *ad,
int
ret
;
int
ret
;
unsigned
int
lcore_id
,
used_cores
=
0
;
unsigned
int
lcore_id
,
used_cores
=
0
;
struct
thread_params
*
t_params
,
*
tp
;
struct
thread_params
*
t_params
,
*
tp
;
struct
rte_bbdev_info
info
;
//
struct rte_bbdev_info info;
uint16_t
num_lcores
;
uint16_t
num_lcores
;
//rte_bbdev_info_get(ad->dev_id, &info);
//rte_bbdev_info_get(ad->dev_id, &info);
...
@@ -1572,81 +1419,75 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t C, uint8_
...
@@ -1572,81 +1419,75 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t C, uint8_
struct
active_device
*
ad
;
struct
active_device
*
ad
;
ad
=
&
active_devs
[
0
];
ad
=
&
active_devs
[
0
];
if
(
mode
==
0
){
int
socket_id
;
int
i
,
f_ret
;
ret
=
rte_eal_init
(
argc_re
,
argv_re
);
struct
rte_bbdev_info
info
;
if
(
ret
<
0
)
{
enum
rte_bbdev_op_type
op_type
=
RTE_BBDEV_OP_LDPC_DEC
;
printf
(
"Could not init EAL, ret %d
\n
"
,
ret
);
return
(
-
1
);
switch
(
mode
)
{
}
case
0
:
ret
=
device_setup
();
ret
=
rte_eal_init
(
argc_re
,
argv_re
);
if
(
ret
!=
TEST_SUCCESS
)
{
if
(
ret
<
0
)
{
printf
(
"Couldn't create mempools"
);
printf
(
"Could not init EAL, ret %d
\n
"
,
ret
);
return
(
-
1
);
return
(
-
1
);
}
}
ret
=
ut_setup
();
ret
=
device_setup
();
if
(
ret
!=
TEST_SUCCESS
)
{
if
(
ret
!=
TEST_SUCCESS
)
{
printf
(
"Couldn't create mempools"
);
printf
(
"Couldn't setup device"
);
return
(
-
1
);
return
(
-
1
);
}
}
ret
=
ut_setup
();
if
(
ret
!=
TEST_SUCCESS
)
{
printf
(
"Couldn't setup ut"
);
return
(
-
1
);
}
p_offloadParams
->
E
=
E
;
p_offloadParams
->
E
=
E
;
p_offloadParams
->
n_cb
=
(
p_decParams
->
BG
==
1
)
?
(
66
*
p_decParams
->
Z
)
:
(
50
*
p_decParams
->
Z
);
p_offloadParams
->
n_cb
=
(
p_decParams
->
BG
==
1
)
?
(
66
*
p_decParams
->
Z
)
:
(
50
*
p_decParams
->
Z
);
p_offloadParams
->
BG
=
p_decParams
->
BG
;
p_offloadParams
->
BG
=
p_decParams
->
BG
;
p_offloadParams
->
Z
=
p_decParams
->
Z
;
p_offloadParams
->
Z
=
p_decParams
->
Z
;
p_offloadParams
->
rv
=
rv
;
p_offloadParams
->
rv
=
rv
;
p_offloadParams
->
F
=
F
;
p_offloadParams
->
F
=
F
;
p_offloadParams
->
Qm
=
Qm
;
p_offloadParams
->
Qm
=
Qm
;
//struct test_op_params *op_params = rte_zmalloc(NULL,
op_params
=
rte_zmalloc
(
NULL
,
op_params
=
rte_zmalloc
(
NULL
,
sizeof
(
struct
test_op_params
),
RTE_CACHE_LINE_SIZE
);
sizeof
(
struct
test_op_params
),
RTE_CACHE_LINE_SIZE
);
TEST_ASSERT_NOT_NULL
(
op_params
,
"Failed to alloc %zuB for op_params"
,
TEST_ASSERT_NOT_NULL
(
op_params
,
"Failed to alloc %zuB for op_params"
,
RTE_ALIGN
(
sizeof
(
struct
test_op_params
),
RTE_ALIGN
(
sizeof
(
struct
test_op_params
),
RTE_CACHE_LINE_SIZE
));
RTE_CACHE_LINE_SIZE
));
int
socket_id
;
rte_bbdev_info_get
(
ad
->
dev_id
,
&
info
);
int
f_ret
;
socket_id
=
GET_SOCKET
(
info
.
socket_id
);
struct
rte_bbdev_info
info
;
f_ret
=
create_mempools
(
ad
,
socket_id
,
op_type
,
rte_bbdev_info_get
(
ad
->
dev_id
,
&
info
);
get_num_ops
(),
p_offloadParams
);
socket_id
=
GET_SOCKET
(
info
.
socket_id
);
if
(
f_ret
!=
TEST_SUCCESS
)
{
enum
rte_bbdev_op_type
op_type
=
RTE_BBDEV_OP_LDPC_DEC
;
printf
(
"Couldn't create mempools"
);
f_ret
=
create_mempools
(
ad
,
socket_id
,
op_type
,
}
get_num_ops
(),
p_offloadParams
);
f_ret
=
init_test_op_params
(
op_params
,
op_type
,
if
(
f_ret
!=
TEST_SUCCESS
)
{
0
,
printf
(
"Couldn't create mempools"
);
0
,
return
(
-
1
);
ad
->
ops_mempool
,
}
1
,
f_ret
=
init_test_op_params
(
op_params
,
op_type
,
get_num_ops
(),
0
,
get_num_lcores
());
0
,
if
(
f_ret
!=
TEST_SUCCESS
)
{
ad
->
ops_mempool
,
printf
(
"Couldn't init test op params"
);
1
,
}
get_num_ops
(),
break
;
get_num_lcores
());
case
1
:
if
(
f_ret
!=
TEST_SUCCESS
)
{
//printf("offload param E %d BG %d F %d Z %d Qm %d\n", E,p_decParams->BG, F,p_decParams->Z, Qm);
printf
(
"Couldn't init test op params"
);
p_offloadParams
->
E
=
E
;
return
(
-
1
);
p_offloadParams
->
n_cb
=
(
p_decParams
->
BG
==
1
)
?
(
66
*
p_decParams
->
Z
)
:
(
50
*
p_decParams
->
Z
);
}
p_offloadParams
->
BG
=
p_decParams
->
BG
;
p_offloadParams
->
Z
=
p_decParams
->
Z
;
p_offloadParams
->
rv
=
rv
;
p_offloadParams
->
F
=
F
;
p_offloadParams
->
Qm
=
Qm
;
}
else
{
//printf("offload param E %d BG %d F %d Z %d Qm %d\n", E,p_decParams->BG, F,p_decParams->Z, Qm);
p_offloadParams
->
E
=
E
;
p_offloadParams
->
n_cb
=
(
p_decParams
->
BG
==
1
)
?
(
66
*
p_decParams
->
Z
)
:
(
50
*
p_decParams
->
Z
);
p_offloadParams
->
BG
=
p_decParams
->
BG
;
p_offloadParams
->
Z
=
p_decParams
->
Z
;
p_offloadParams
->
rv
=
rv
;
p_offloadParams
->
F
=
F
;
p_offloadParams
->
Qm
=
Qm
;
int
socket_id
;
int
f_ret
,
i
;
const
struct
rte_bbdev_op_cap
*
capabilities
=
NULL
;
const
struct
rte_bbdev_op_cap
*
capabilities
=
NULL
;
struct
rte_bbdev_info
info
;
rte_bbdev_info_get
(
ad
->
dev_id
,
&
info
);
rte_bbdev_info_get
(
ad
->
dev_id
,
&
info
);
socket_id
=
GET_SOCKET
(
info
.
socket_id
);
socket_id
=
GET_SOCKET
(
info
.
socket_id
);
enum
rte_bbdev_op_type
op_type
=
RTE_BBDEV_OP_LDPC_DEC
;
//
enum rte_bbdev_op_type op_type = RTE_BBDEV_OP_LDPC_DEC;
const
struct
rte_bbdev_op_cap
*
cap
=
info
.
drv
.
capabilities
;
const
struct
rte_bbdev_op_cap
*
cap
=
info
.
drv
.
capabilities
;
for
(
i
=
0
;
i
<
RTE_BBDEV_OP_TYPE_COUNT
;
i
++
)
{
for
(
i
=
0
;
i
<
RTE_BBDEV_OP_TYPE_COUNT
;
i
++
)
{
...
@@ -1677,18 +1518,23 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t C, uint8_
...
@@ -1677,18 +1518,23 @@ int32_t nrLDPC_decod_offload(t_nrLDPC_dec_params* p_decParams, uint8_t C, uint8_
}
}
}
}
ret
=
start_pmd_dec
(
ad
,
op_params
,
p_offloadParams
,
p_out
);
ret
=
start_pmd_dec
(
ad
,
op_params
,
p_offloadParams
,
p_out
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
printf
(
"Couldn't start pmd dec"
);
printf
(
"Couldn't start pmd dec"
);
return
(
-
1
);
return
(
-
1
);
}
}
break
;
case
2
:
// free_buffers(ad, op_params);
free_buffers
(
ad
,
op_params
);
// rte_free(op_params);
rte_free
(
op_params
);
}
ut_teardown
();
//ut_teardown();
testsuite_teardown
();
break
;
default:
printf
(
"Unknown mode: %d
\n
"
,
mode
);
return
;
}
return
numIter
;
return
numIter
;
}
}
...
...
openair1/PHY/CODING/nrLDPC_extern.h
View file @
8af206c6
...
@@ -30,6 +30,7 @@ nrLDPC_dectopfunc_t top_testsuite;
...
@@ -30,6 +30,7 @@ nrLDPC_dectopfunc_t top_testsuite;
/* functions to load the LDPC shared lib, implemented in openair1/PHY/CODING/nrLDPC_load.c */
/* functions to load the LDPC shared lib, implemented in openair1/PHY/CODING/nrLDPC_load.c */
extern
int
load_nrLDPClib
(
char
*
version
)
;
extern
int
load_nrLDPClib
(
char
*
version
)
;
extern
int
load_nrLDPClib_offload
(
void
)
;
extern
int
load_nrLDPClib_offload
(
void
)
;
extern
int
free_nrLDPClib_offload
(
void
)
;
extern
int
load_nrLDPClib_ref
(
char
*
libversion
,
nrLDPC_encoderfunc_t
*
nrLDPC_encoder_ptr
);
// for ldpctest
extern
int
load_nrLDPClib_ref
(
char
*
libversion
,
nrLDPC_encoderfunc_t
*
nrLDPC_encoder_ptr
);
// for ldpctest
/* ldpc coder/decoder functions, as loaded by load_nrLDPClib(). */
/* ldpc coder/decoder functions, as loaded by load_nrLDPClib(). */
extern
nrLDPC_initcallfunc_t
nrLDPC_initcall
;
extern
nrLDPC_initcallfunc_t
nrLDPC_initcall
;
...
...
openair1/PHY/CODING/nrLDPC_load.c
View file @
8af206c6
...
@@ -101,6 +101,26 @@ int load_nrLDPClib_offload(void) {
...
@@ -101,6 +101,26 @@ int load_nrLDPClib_offload(void) {
return
0
;
return
0
;
}
}
int
free_nrLDPClib_offload
(
void
)
{
t_nrLDPC_dec_params
decParams
;
t_nrLDPC_dec_params
*
p_decParams
=
&
decParams
;
int8_t
l
[
68
*
384
];
int8_t
llrProcBuf
[
22
*
384
];
p_decParams
->
Z
=
384
;
p_decParams
->
BG
=
1
;
nrLDPC_decoder_offload
(
p_decParams
,
1
,
0
,
0
,
25344
,
8
,
l
,
llrProcBuf
,
2
);
return
0
;
}
int
load_nrLDPClib_ref
(
char
*
libversion
,
nrLDPC_encoderfunc_t
*
nrLDPC_encoder_ptr
)
{
int
load_nrLDPClib_ref
(
char
*
libversion
,
nrLDPC_encoderfunc_t
*
nrLDPC_encoder_ptr
)
{
loader_shlibfunc_t
shlib_encoder_fdesc
;
loader_shlibfunc_t
shlib_encoder_fdesc
;
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
8af206c6
...
@@ -647,8 +647,6 @@ int main(int argc, char **argv)
...
@@ -647,8 +647,6 @@ int main(int argc, char **argv)
get_softmodem_params
()
->
do_ra
=
0
;
get_softmodem_params
()
->
do_ra
=
0
;
get_softmodem_params
()
->
usim_test
=
1
;
get_softmodem_params
()
->
usim_test
=
1
;
//load_nrLDPClib_offload();
if
(
snr1set
==
0
)
if
(
snr1set
==
0
)
snr1
=
snr0
+
10
;
snr1
=
snr0
+
10
;
double
sampling_frequency
;
double
sampling_frequency
;
...
@@ -1544,6 +1542,7 @@ int main(int argc, char **argv)
...
@@ -1544,6 +1542,7 @@ int main(int argc, char **argv)
LOG_MM
(
"ulsimStats.m"
,
"EffTP"
,
effTP
,
snrRun
,
1
,
7
);
LOG_MM
(
"ulsimStats.m"
,
"EffTP"
,
effTP
,
snrRun
,
1
,
7
);
free
(
test_input_bit
);
free
(
test_input_bit
);
free
(
estimated_output_bit
);
free
(
estimated_output_bit
);
free_nrLDPClib_offload
();
if
(
output_fd
)
if
(
output_fd
)
fclose
(
output_fd
);
fclose
(
output_fd
);
...
...
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