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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG-RAN
Commits
3df0b895
Commit
3df0b895
authored
Feb 10, 2022
by
Hongzhi Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
re-activating HARQ for UL. break loop when one segment is in error
parent
65b0e7a8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
31 deletions
+35
-31
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+35
-31
No files found.
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
3df0b895
...
...
@@ -602,8 +602,8 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
E
=
nr_get_E
(
G
,
harq_process
->
C
,
Qm
,
n_layers
,
r
);
memset
(
harq_process
->
c
[
r
],
0
,
Kr_bytes
);
if
((
dtx_det
==
0
)
&&
(
pusch_pdu
->
pusch_data
.
rv_index
==
0
)){
//
if (dtx_det==0){
//
if ((dtx_det==0)&&(pusch_pdu->pusch_data.rv_index==0)){
if
(
dtx_det
==
0
){
if
(
mcs
>
9
){
memcpy
((
&
z_ol
[
0
]),
ulsch_llr
+
r_offset
,
E
*
sizeof
(
short
));
...
...
@@ -705,6 +705,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
else
{
no_iteration_ldpc
=
ulsch
->
max_ldpc_iterations
+
1
;
}
bool
decodeSuccess
=
(
no_iteration_ldpc
<=
ulsch
->
max_ldpc_iterations
);
if
(
decodeSuccess
)
{
memcpy
(
harq_process
->
b
+
offset
,
...
...
@@ -716,9 +717,13 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
else
{
LOG_D
(
PHY
,
"uplink segment error %d/%d
\n
"
,
r
,
harq_process
->
C
);
LOG_D
(
PHY
,
"ULSCH %d in error
\n
"
,
ULSCH_id
);
break
;
//don't even attempt to decode other segments
}
}
if
(
r
==
(
harq_process
->
C
-
1
)){
if
((
decodeSuccess
)
&&
(
harq_process
->
processedSegments
==
(
harq_process
->
C
)))
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
0
);
if
((
harq_process
->
processedSegments
==
(
harq_process
->
C
)))
{
LOG_D
(
PHY
,
"[gNB %d] ULSCH: Setting ACK for slot %d TBS %d
\n
"
,
phy_vars_gNB
->
Mod_id
,
harq_process
->
slot
,
harq_process
->
TBS
);
harq_process
->
status
=
SCH_IDLE
;
...
...
@@ -745,8 +750,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
}
ulsch
->
last_iteration_cnt
=
no_iteration_ldpc
;
}
}
}
else
{
void
(
*
nr_processULSegment_ptr
)(
void
*
)
=
&
nr_processULSegment
;
...
...
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