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
ZhouShuya
OpenXG-RAN
Commits
cba2d9e4
Commit
cba2d9e4
authored
4 years ago
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Schedule UEs on SR or BSR
parent
a8149b5e
rh_ci_test_nsa
NR_cleanup_PUCCH_resources
NR_multiplexing_HARQ_CSI_PUCCH
NR_scheduling_CSIRS
NR_scheduling_request
bugfix-nr-t-reordering
bugfix_gnb_rt_stats_html
ci_test_nsa_fix_quectel_nic
develop
develop-CCE
develop-NR_SA_F1AP_5GRECORDS
develop-NR_SA_F1AP_5GRECORDS-hs
fix-physim-deploy
fix_nr_ulsim
integration_2021_wk18_a
integration_2021_wk18_b
integration_2021_wk19
nr-dl-mimo-2layer
nr-dmrs-fixes
oairu
physim-deploy-handle-error-cases
prb_based_dl_channel_estimation
rh_ci_test_benetel
2021.w18_b
2021.w18_a
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
12 deletions
+14
-12
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+5
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+7
-12
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+2
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
cba2d9e4
...
@@ -1034,6 +1034,11 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id,
...
@@ -1034,6 +1034,11 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id,
handle_dl_harq
(
mod_id
,
UE_id
,
pid
,
harq_value
==
1
&&
harq_confidence
==
0
);
handle_dl_harq
(
mod_id
,
UE_id
,
pid
,
harq_value
==
1
&&
harq_confidence
==
0
);
}
}
}
}
// check scheduling request result, confidence_level == 0 is good
if
(
uci_01
->
pduBitmap
&
0x1
)
{
sched_ctrl
->
SR
|=
uci_01
->
sr
->
sr_indication
&&
uci_01
->
sr
->
sr_confidence_level
==
0
;
}
}
}
void
handle_nr_uci_pucch_2_3_4
(
module_id_t
mod_id
,
void
handle_nr_uci_pucch_2_3_4
(
module_id_t
mod_id
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
cba2d9e4
...
@@ -874,7 +874,6 @@ void update_ul_ue_R_Qm(NR_sched_pusch_t *sched_pusch, const NR_pusch_semi_static
...
@@ -874,7 +874,6 @@ void update_ul_ue_R_Qm(NR_sched_pusch_t *sched_pusch, const NR_pusch_semi_static
float
ul_thr_ue
[
MAX_MOBILES_PER_GNB
];
float
ul_thr_ue
[
MAX_MOBILES_PER_GNB
];
uint32_t
ul_pf_tbs
[
3
][
28
];
// pre-computed, approximate TBS values for PF coefficient
uint32_t
ul_pf_tbs
[
3
][
28
];
// pre-computed, approximate TBS values for PF coefficient
int
bsr0ue
=
-
1
;
void
pf_ul
(
module_id_t
module_id
,
void
pf_ul
(
module_id_t
module_id
,
frame_t
frame
,
frame_t
frame
,
sub_frame_t
slot
,
sub_frame_t
slot
,
...
@@ -894,12 +893,6 @@ void pf_ul(module_id_t module_id,
...
@@ -894,12 +893,6 @@ void pf_ul(module_id_t module_id,
int
ue_array
[
MAX_MOBILES_PER_GNB
];
int
ue_array
[
MAX_MOBILES_PER_GNB
];
NR_list_t
UE_sched
=
{
.
head
=
-
1
,
.
next
=
ue_array
,
.
tail
=
-
1
,
.
len
=
MAX_MOBILES_PER_GNB
};
NR_list_t
UE_sched
=
{
.
head
=
-
1
,
.
next
=
ue_array
,
.
tail
=
-
1
,
.
len
=
MAX_MOBILES_PER_GNB
};
/* Hack: currently, we do not have SR, and need to schedule UEs continuously.
* To keep the wasted resources low, we switch UEs to be scheduled in a
* round-robin fashion below, and only schedule a UE with BSR=0 if it is the
* selected one */
bsr0ue
=
next_list_entry_looped
(
UE_list
,
bsr0ue
);
/* Loop UE_list to calculate throughput and coeff */
/* Loop UE_list to calculate throughput and coeff */
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
...
@@ -931,11 +924,12 @@ void pf_ul(module_id_t module_id,
...
@@ -931,11 +924,12 @@ void pf_ul(module_id_t module_id,
continue
;
continue
;
}
}
/* Check BSR and schedule UE if it is zero to avoid starvation, since we do
if
(
sched_ctrl
->
estimated_ul_buffer
-
sched_ctrl
->
sched_ul_bytes
<=
0
&&
!
sched_ctrl
->
SR
)
* not have SR (yet) */
continue
;
if
(
sched_ctrl
->
estimated_ul_buffer
-
sched_ctrl
->
sched_ul_bytes
<=
0
)
{
if
(
UE_id
!=
bsr0ue
)
/* Schedule UE if there is a SR and no data (otherwise, will be scheduled
continue
;
* baded on data to transmit) */
if
(
sched_ctrl
->
estimated_ul_buffer
-
sched_ctrl
->
sched_ul_bytes
<=
0
&&
sched_ctrl
->
SR
)
{
/* if no data, pre-allocate 5RB */
/* if no data, pre-allocate 5RB */
bool
freeCCE
=
find_free_CCE
(
module_id
,
slot
,
UE_id
);
bool
freeCCE
=
find_free_CCE
(
module_id
,
slot
,
UE_id
);
if
(
!
freeCCE
)
{
if
(
!
freeCCE
)
{
...
@@ -1225,6 +1219,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
...
@@ -1225,6 +1219,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
continue
;
continue
;
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
sched_ctrl
->
SR
=
false
;
int8_t
harq_id
=
sched_pusch
->
ul_harq_pid
;
int8_t
harq_id
=
sched_pusch
->
ul_harq_pid
;
if
(
harq_id
<
0
)
{
if
(
harq_id
<
0
)
{
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
cba2d9e4
...
@@ -561,6 +561,8 @@ typedef struct {
...
@@ -561,6 +561,8 @@ typedef struct {
int
pucch_snrx10
;
int
pucch_snrx10
;
struct
CSI_Report
CSI_report
[
MAX_CSI_REPORTS
];
struct
CSI_Report
CSI_report
[
MAX_CSI_REPORTS
];
bool
SR
;
/// information about every HARQ process
/// information about every HARQ process
NR_UE_harq_t
harq_processes
[
NR_MAX_NB_HARQ_PROCESSES
];
NR_UE_harq_t
harq_processes
[
NR_MAX_NB_HARQ_PROCESSES
];
/// HARQ processes that are free
/// HARQ processes that are free
...
...
This diff is collapsed.
Click to expand it.
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