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
zzha zzha
OpenXG-RAN
Commits
9565544e
Commit
9565544e
authored
Mar 28, 2019
by
Cedric Roux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugfix: test free RBs and CCE allocation feasible only for new transmissions
parent
04c24ff6
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
106 deletions
+104
-106
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+104
-106
No files found.
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
9565544e
...
...
@@ -1415,34 +1415,6 @@ schedule_ulsch_rnti(module_id_t module_idP,
/* This is the actual CC_id in the list */
CC_id
=
UE_list
->
ordered_ULCCids
[
n
][
UE_id
];
/* Be sure that there are some free RBs */
if
(
first_rb_slice
[
CC_id
]
>=
n_rb_ul_tab
[
CC_id
]
-
1
)
{
LOG_W
(
MAC
,
"[eNB %d] frame %d, subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
continue
;
}
/* Should format_flag be 2 in CCE_allocation_infeasible??? */
/* This test seems to be way too long, can we provide an optimization? */
if
(
CCE_allocation_infeasible
(
module_idP
,
CC_id
,
1
,
subframeP
,
aggregation
,
rnti
))
{
LOG_W
(
MAC
,
"[eNB %d] frame %d, subframe %d, UE %d/%x CC %d: not enough CCE
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
continue
;
}
/* UE is active and can be scheduled, setting up struct */
UE_template_ptr
=
&
(
UE_list
->
UE_template
[
CC_id
][
UE_id
]);
UE_sched_ctrl_ptr
=
&
(
UE_list
->
UE_sched_ctrl
[
UE_id
]);
harq_pid
=
subframe2harqpid
(
&
cc
[
CC_id
],
sched_frame
,
sched_subframeP
);
...
...
@@ -1474,7 +1446,6 @@ schedule_ulsch_rnti(module_id_t module_idP,
* If there is information on bsr of DCCH, DTCH or if there is UL_SR,
* or if there is a packet to retransmit, or we want to schedule a periodic feedback
*/
/* Shouldn't this test be done earlier?? */
if
(
UE_is_to_be_scheduled
(
module_idP
,
CC_id
,
UE_id
)
>
0
||
round_index
>
0
)
{
LOG_D
(
MAC
,
"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x in round %d(SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)
\n
"
,
module_idP
,
...
...
@@ -1492,10 +1463,39 @@ schedule_ulsch_rnti(module_id_t module_idP,
// reset the scheduling request
UE_template_ptr
->
ul_SR
=
0
;
status
=
mac_eNB_get_rrc_status
(
module_idP
,
rnti
);
cqi_req
=
0
;
/* New transmission */
if
(
round_index
==
0
)
{
/* Be sure that there are some free RBs */
if
(
first_rb_slice
[
CC_id
]
>=
n_rb_ul_tab
[
CC_id
]
-
1
)
{
LOG_W
(
MAC
,
"[eNB %d] frame %d, subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
continue
;
}
/* Should format_flag be 2 in CCE_allocation_infeasible??? */
/* This test seems to be way too long, can we provide an optimization? */
if
(
CCE_allocation_infeasible
(
module_idP
,
CC_id
,
1
,
subframeP
,
aggregation
,
rnti
))
{
LOG_W
(
MAC
,
"[eNB %d] frame %d, subframe %d, UE %d/%x CC %d: not enough CCE
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
continue
;
}
/* Handle the aperiodic CQI report */
/* These aperiodic reports behave as periodic ones... */
cqi_req
=
0
;
if
(
status
>=
RRC_CONNECTED
&&
UE_sched_ctrl_ptr
->
cqi_req_timer
>
30
)
{
if
(
UE_sched_ctrl_ptr
->
cqi_received
==
0
)
{
if
(
nfapi_mode
)
{
...
...
@@ -1582,8 +1582,6 @@ schedule_ulsch_rnti(module_id_t module_idP,
target_rx_power
);
}
/* New transmission */
if
(
round_index
==
0
)
{
ndi
=
1
-
UE_template_ptr
->
oldNDI_UL
[
harq_pid
];
// NDI: new data indicator
UE_template_ptr
->
oldNDI_UL
[
harq_pid
]
=
ndi
;
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
normalized_rx_power
=
normalized_rx_power
;
...
...
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