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
lizhongxiao
OpenXG-RAN
Commits
fd40aa26
Commit
fd40aa26
authored
Feb 09, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make nr_find_nb_rb() take minimum RBsize
Fixes a bug when scheduling multiple UEs
parent
af6836d9
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
4 deletions
+12
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+4
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+3
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+4
-1
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
fd40aa26
...
...
@@ -598,6 +598,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
temp_ps
.
nrOfSymbols
,
temp_ps
.
N_PRB_DMRS
*
temp_ps
.
N_DMRS_SLOT
,
retInfo
->
tb_size
,
1
,
/* minimum of 1RB: need to find exact TBS, don't preclude any number */
rbSize
,
&
new_tbs
,
&
new_rbSize
);
...
...
@@ -739,8 +740,9 @@ void pf_dl(module_id_t module_id,
}
}
const
int
min_rbSize
=
5
;
/* Loop UE_sched to find max coeff and allocate transmission */
while
(
max_num_ue
>
0
&&
n_rb_sched
>
0
&&
UE_sched
.
head
>=
0
)
{
while
(
max_num_ue
>
0
&&
n_rb_sched
>
=
min_rbSize
&&
UE_sched
.
head
>=
0
)
{
/* Find max coeff from UE_sched*/
int
*
max
=
&
UE_sched
.
head
;
/* assume head is max */
...
...
@@ -859,6 +861,7 @@ void pf_dl(module_id_t module_id,
ps
->
nrOfSymbols
,
ps
->
N_PRB_DMRS
*
ps
->
N_DMRS_SLOT
,
sched_ctrl
->
num_total_bytes
+
oh
,
min_rbSize
,
max_rbSize
,
&
TBS
,
&
rbSize
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
fd40aa26
...
...
@@ -388,6 +388,7 @@ bool nr_find_nb_rb(uint16_t Qm,
uint16_t
nb_symb_sch
,
uint16_t
nb_dmrs_prb
,
uint32_t
bytes
,
uint16_t
nb_rb_min
,
uint16_t
nb_rb_max
,
uint32_t
*
tbs
,
uint16_t
*
nb_rb
)
...
...
@@ -403,7 +404,7 @@ bool nr_find_nb_rb(uint16_t Qm,
return
true
;
/* is the minimum enough? */
*
nb_rb
=
5
;
*
nb_rb
=
nb_rb_min
;
*
tbs
=
nr_compute_tbs
(
Qm
,
R
,
*
nb_rb
,
nb_symb_sch
,
nb_dmrs_prb
,
0
,
0
,
1
)
>>
3
;
if
(
bytes
<=
*
tbs
)
return
true
;
...
...
@@ -411,7 +412,7 @@ bool nr_find_nb_rb(uint16_t Qm,
/* perform binary search to allocate all bytes within a TBS up to nb_rb_max
* RBs */
int
hi
=
nb_rb_max
;
int
lo
=
1
;
int
lo
=
nb_rb_min
;
for
(
int
p
=
(
hi
+
lo
)
/
2
;
lo
+
1
<
hi
;
p
=
(
hi
+
lo
)
/
2
)
{
const
uint32_t
TBS
=
nr_compute_tbs
(
Qm
,
R
,
p
,
nb_symb_sch
,
nb_dmrs_prb
,
0
,
0
,
1
)
>>
3
;
if
(
bytes
==
TBS
)
{
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
fd40aa26
...
...
@@ -1004,6 +1004,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
temp_ps
.
nrOfSymbols
,
temp_ps
.
N_PRB_DMRS
*
temp_ps
.
num_dmrs_symb
,
retInfo
->
tb_size
,
1
,
/* minimum of 1RB: need to find exact TBS, don't preclude any number */
rbSize
,
&
new_tbs
,
&
new_rbSize
);
...
...
@@ -1256,8 +1257,9 @@ void pf_ul(module_id_t module_id,
}
const
int
min_rbSize
=
5
;
/* Loop UE_sched to find max coeff and allocate transmission */
while
(
UE_sched
.
head
>=
0
&&
max_num_ue
>
0
&&
n_rb_sched
>
0
)
{
while
(
UE_sched
.
head
>=
0
&&
max_num_ue
>
0
&&
n_rb_sched
>
=
min_rbSize
)
{
/* Find max coeff */
int
*
max
=
&
UE_sched
.
head
;
/* Find max coeff: assume head is max */
int
*
p
=
&
UE_sched
.
next
[
*
max
];
...
...
@@ -1349,6 +1351,7 @@ void pf_ul(module_id_t module_id,
ps
->
nrOfSymbols
,
ps
->
N_PRB_DMRS
*
ps
->
num_dmrs_symb
,
B
,
min_rbSize
,
max_rbSize
,
&
TBS
,
&
rbSize
);
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
fd40aa26
...
...
@@ -463,6 +463,7 @@ bool nr_find_nb_rb(uint16_t Qm,
uint16_t
nb_symb_sch
,
uint16_t
nb_dmrs_prb
,
uint32_t
bytes
,
uint16_t
nb_rb_min
,
uint16_t
nb_rb_max
,
uint32_t
*
tbs
,
uint16_t
*
nb_rb
);
...
...
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