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
420aaf37
Commit
420aaf37
authored
Jul 29, 2020
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added print messages for debugging
parent
8bebabc1
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
2 deletions
+21
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+11
-2
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+10
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
420aaf37
...
@@ -53,6 +53,7 @@
...
@@ -53,6 +53,7 @@
#include "NR_SearchSpace.h"
#include "NR_SearchSpace.h"
#include "NR_ControlResourceSet.h"
#include "NR_ControlResourceSet.h"
#define UL_HARQ_PRINT
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
const
uint8_t
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
const
uint8_t
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
...
@@ -783,16 +784,24 @@ uint8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
...
@@ -783,16 +784,24 @@ uint8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
NR_UE_ul_harq_t
cur_harq
;
NR_UE_ul_harq_t
cur_harq
;
for
(
hrq_id
=
0
;
hrq_id
<
max_ul_harq_pids
;
hrq_id
++
)
{
for
(
hrq_id
=
0
;
hrq_id
<
max_ul_harq_pids
;
hrq_id
++
)
{
cur_harq
=
sched_ctrl
->
ul_harq_processes
[
hrq_id
];
cur_harq
=
sched_ctrl
->
ul_harq_processes
[
hrq_id
];
if
(
cur_harq
.
state
==
ACTIVE_NOT_SCHED
)
if
(
cur_harq
.
state
==
ACTIVE_NOT_SCHED
)
{
#ifdef UL_HARQ_PRINT
printf
(
"[SCHED] Found active ulharq id %d, scheduling it for retransmission
\n
"
,
harq_id
);
#endif
return
hrq_id
;
return
hrq_id
;
}
}
}
// schedule new harq processes
// schedule new harq processes
for
(
hrq_id
=
0
;
hrq_id
<
max_ul_harq_pids
;
hrq_id
++
)
{
for
(
hrq_id
=
0
;
hrq_id
<
max_ul_harq_pids
;
hrq_id
++
)
{
cur_harq
=
sched_ctrl
->
ul_harq_processes
[
hrq_id
];
cur_harq
=
sched_ctrl
->
ul_harq_processes
[
hrq_id
];
if
(
cur_harq
.
state
==
INACTIVE
)
if
(
cur_harq
.
state
==
INACTIVE
)
{
#ifdef UL_HARQ_PRINT
printf
(
"[SCHED] Found inactive ulharq id %d, scheduling it
\n
"
,
harq_id
);
#endif
return
hrq_id
;
return
hrq_id
;
}
}
}
}
}
void
schedule_fapi_ul_pdu
(
int
Mod_idP
,
void
schedule_fapi_ul_pdu
(
int
Mod_idP
,
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
420aaf37
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
#include "executables/softmodem-common.h"
#include "executables/softmodem-common.h"
#define MAX_IF_MODULES 100
#define MAX_IF_MODULES 100
#define UL_HARQ_PRINT
NR_IF_Module_t
*
if_inst
[
MAX_IF_MODULES
];
NR_IF_Module_t
*
if_inst
[
MAX_IF_MODULES
];
NR_Sched_Rsp_t
Sched_INFO
[
MAX_IF_MODULES
][
MAX_NUM_CCs
];
NR_Sched_Rsp_t
Sched_INFO
[
MAX_IF_MODULES
][
MAX_NUM_CCs
];
...
@@ -141,15 +142,24 @@ void handle_nr_ul_harq(uint16_t slot, NR_UE_sched_ctrl_t *sched_ctrl, uint8_t cr
...
@@ -141,15 +142,24 @@ void handle_nr_ul_harq(uint16_t slot, NR_UE_sched_ctrl_t *sched_ctrl, uint8_t cr
cur_harq
.
ndi
^=
1
;
cur_harq
.
ndi
^=
1
;
cur_harq
.
round
=
0
;
cur_harq
.
round
=
0
;
cur_harq
.
state
=
INACTIVE
;
// passed -> make inactive. can be used by scheduder for next grant
cur_harq
.
state
=
INACTIVE
;
// passed -> make inactive. can be used by scheduder for next grant
#ifdef UL_HARQ_PRINT
printf
(
"[HARQ HANDLER] Ulharq id %d crc passed, freeing it for scheduler
\n
"
,
hrq_id
);
#endif
}
else
{
}
else
{
cur_harq
.
round
++
;
cur_harq
.
round
++
;
cur_harq
.
state
=
ACTIVE_NOT_SCHED
;
cur_harq
.
state
=
ACTIVE_NOT_SCHED
;
#ifdef UL_HARQ_PRINT
printf
(
"[HARQ HANDLER] Ulharq id %d crc failed, requesting retransmission
\n
"
,
hrq_id
);
#endif
}
}
if
(
!
(
cur_harq
.
round
<
max_harq_rounds
))
{
if
(
!
(
cur_harq
.
round
<
max_harq_rounds
))
{
cur_harq
.
ndi
^=
1
;
cur_harq
.
ndi
^=
1
;
cur_harq
.
state
=
INACTIVE
;
// failed after 4 rounds -> make inactive
cur_harq
.
state
=
INACTIVE
;
// failed after 4 rounds -> make inactive
cur_harq
.
round
=
0
;
cur_harq
.
round
=
0
;
#ifdef UL_HARQ_PRINT
printf
(
"[HARQ HANDLER] Ulharq id %d crc failed in all round, freeing it for scheduler
\n
"
,
hrq_id
);
#endif
}
}
return
;
return
;
}
}
...
...
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