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
canghaiwuhen
OpenXG-RAN
Commits
94b85c5e
Commit
94b85c5e
authored
Nov 06, 2020
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Log of HARQ NACKs
parent
5cd9390a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
3 deletions
+21
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+18
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+3
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
94b85c5e
...
...
@@ -356,7 +356,8 @@ void nr_rx_acknack(nfapi_nr_uci_pusch_pdu_t *uci_pusch,
int
harq_idx_s
=
0
;
// iterate over received harq bits
for
(
int
harq_bit
=
0
;
harq_bit
<
uci_01
->
harq
->
num_harq
;
harq_bit
++
)
{
const
int
num_harq
=
uci_01
->
harq
->
num_harq
;
for
(
int
harq_bit
=
0
;
harq_bit
<
num_harq
;
harq_bit
++
)
{
// search for the right harq process
for
(
int
harq_idx
=
harq_idx_s
;
harq_idx
<
NR_MAX_NB_HARQ_PROCESSES
;
harq_idx
++
)
{
// if the gNB received ack with a good confidence
...
...
@@ -367,12 +368,22 @@ void nr_rx_acknack(nfapi_nr_uci_pusch_pdu_t *uci_pusch,
sched_ctrl
->
harq_processes
[
harq_idx
].
ndi
^=
1
;
sched_ctrl
->
harq_processes
[
harq_idx
].
round
=
0
;
}
else
else
{
LOG_I
(
MAC
,
"%4d.%2d harq bit %d PUCCH 0_1 NACK for harq process %d last round %d num_harq %d
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
harq_bit
,
harq_idx
,
sched_ctrl
->
harq_processes
[
harq_idx
].
round
,
num_harq
);
sched_ctrl
->
harq_processes
[
harq_idx
].
round
++
;
}
sched_ctrl
->
harq_processes
[
harq_idx
].
is_waiting
=
0
;
harq_idx_s
=
harq_idx
+
1
;
// if the max harq rounds was reached
if
(
sched_ctrl
->
harq_processes
[
harq_idx
].
round
==
max_harq_rounds
)
{
LOG_I
(
MAC
,
"-> transmission error for harq process %d
\n
"
,
harq_idx
);
sched_ctrl
->
harq_processes
[
harq_idx
].
ndi
^=
1
;
sched_ctrl
->
harq_processes
[
harq_idx
].
round
=
0
;
stats
->
dlsch_errors
++
;
...
...
@@ -410,12 +421,16 @@ void nr_rx_acknack(nfapi_nr_uci_pusch_pdu_t *uci_pusch,
sched_ctrl
->
harq_processes
[
harq_idx
].
ndi
^=
1
;
sched_ctrl
->
harq_processes
[
harq_idx
].
round
=
0
;
}
else
else
{
LOG_I
(
MAC
,
"PUCCH 2_3_4 NACK for harq process %d last round %d
\n
"
,
harq_idx
,
sched_ctrl
->
harq_processes
[
harq_idx
].
round
);
sched_ctrl
->
harq_processes
[
harq_idx
].
round
++
;
}
sched_ctrl
->
harq_processes
[
harq_idx
].
is_waiting
=
0
;
harq_idx_s
=
harq_idx
+
1
;
// if the max harq rounds was reached
if
(
sched_ctrl
->
harq_processes
[
harq_idx
].
round
==
max_harq_rounds
)
{
LOG_I
(
MAC
,
"PUCCH 2_3_4 transmission error for harq process %d
\n
"
,
harq_idx
);
sched_ctrl
->
harq_processes
[
harq_idx
].
ndi
^=
1
;
sched_ctrl
->
harq_processes
[
harq_idx
].
round
=
0
;
stats
->
dlsch_errors
++
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
94b85c5e
...
...
@@ -551,6 +551,9 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
// harq pid and ndi
dci_pdu_rel15
[
0
].
harq_pid
=
harq_pid
;
dci_pdu_rel15
[
0
].
ndi
=
ndi
;
if
(
round
>
0
)
{
LOG_I
(
MAC
,
"retx for UE: round %d ndi %d harq_pid %d
\n
"
,
round
,
ndi
,
harq_pid
);
}
// DAI
dci_pdu_rel15
[
0
].
dai
[
0
].
val
=
(
pucch_sched
->
dai_c
-
1
)
&
3
;
...
...
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