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
promise
OpenXG-RAN
Commits
dcdee083
Commit
dcdee083
authored
Sep 18, 2020
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PreProc IF: RLC status per UE
parent
d12180b2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
25 deletions
+37
-25
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+32
-25
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+5
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
dcdee083
...
...
@@ -425,8 +425,32 @@ void nr_simple_dlsch_preprocessor(module_id_t module_id,
const
int
UE_id
=
0
;
const
int
CC_id
=
0
;
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
// TODO: reset per UE-info
/* Retrieve amount of data to send for this UE */
sched_ctrl
->
num_total_bytes
=
0
;
const
int
lcid
=
DL_SCH_LCID_DTCH
;
const
uint16_t
rnti
=
UE_list
->
rnti
[
UE_id
];
sched_ctrl
->
rlc_status
[
lcid
]
=
mac_rlc_status_ind
(
module_id
,
rnti
,
module_id
,
frame
,
slot
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
lcid
,
0
,
0
);
sched_ctrl
->
num_total_bytes
+=
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
;
if
(
sched_ctrl
->
num_total_bytes
==
0
&&
!
get_softmodem_params
()
->
phy_test
)
return
;
LOG_D
(
MAC
,
"%d.%d, DTCH%d->DLSCH, RLC status %d bytes
\n
"
,
frame
,
slot
,
lcid
,
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
);
const
int
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
sched_ctrl
->
search_space
=
get_searchspace
(
sched_ctrl
->
active_bwp
,
target_ss
);
...
...
@@ -441,36 +465,17 @@ void nr_schedule_ue_spec(module_id_t module_id,
if
(
UE_list
->
num_UEs
==
0
)
return
;
/* PREPROCESSOR */
nr_simple_dlsch_preprocessor
(
module_id
,
frame
,
slot
,
num_slots_per_tdd
);
const
int
ta_len
=
gNB_mac
->
ta_len
;
const
int
UE_id
=
0
;
const
int
CC_id
=
0
;
/* Retrieve amount of data to send for this UE */
const
int
lcid
=
DL_SCH_LCID_DTCH
;
const
uint16_t
rnti
=
UE_list
->
rnti
[
UE_id
];
const
mac_rlc_status_resp_t
rlc_status
=
mac_rlc_status_ind
(
module_id
,
rnti
,
module_id
,
frame
,
slot
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
lcid
,
0
,
0
);
if
(
rlc_status
.
bytes_in_buffer
==
0
&&
!
get_softmodem_params
()
->
phy_test
)
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
num_total_bytes
==
0
&&
!
get_softmodem_params
()
->
phy_test
)
return
;
LOG_D
(
MAC
,
"%d.%d, DTCH%d->DLSCH, RLC status %d bytes
\n
"
,
frame
,
slot
,
lcid
,
rlc_status
.
bytes_in_buffer
);
/* PREPROCESSOR */
nr_simple_dlsch_preprocessor
(
module_id
,
frame
,
slot
,
num_slots_per_tdd
);
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
//if (sched_ctrl->rbSize < 0 && !get_softmodem_params()->phy_test)
// return;
...
...
@@ -556,7 +561,9 @@ void nr_schedule_ue_spec(module_id_t module_id,
uint16_t
sdu_lengths
[
NB_RB_MAX
]
=
{
0
};
uint8_t
mac_sdus
[
MAX_NR_DLSCH_PAYLOAD_BYTES
];
unsigned
char
sdu_lcids
[
NB_RB_MAX
]
=
{
0
};
if
(
rlc_status
.
bytes_in_buffer
>
0
)
{
const
rnti_t
rnti
=
UE_list
->
rnti
[
UE_id
];
const
int
lcid
=
DL_SCH_LCID_DTCH
;
if
(
sched_ctrl
->
num_total_bytes
>
0
)
{
LOG_D
(
MAC
,
"[gNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting "
"%d bytes from RLC (lcid %d total hdr len %d), TBS: %d
\n
\n
"
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
dcdee083
...
...
@@ -283,6 +283,11 @@ typedef struct NR_UE_ul_harq {
/*! \brief scheduling control information set through an API */
typedef
struct
{
/// total amount of data awaiting for this UE
uint32_t
num_total_bytes
;
/// per-LC status data
mac_rlc_status_resp_t
rlc_status
[
MAX_NUM_LCID
];
/// the currently active BWP in DL
NR_BWP_Downlink_t
*
active_bwp
;
NR_sched_pucch
*
sched_pucch
;
...
...
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