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
eee0c1b8
Commit
eee0c1b8
authored
Apr 27, 2017
by
shahab SHARIATBAGHERI
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
uplink percentage
parent
b9b45c4a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
13 deletions
+14
-13
openair2/LAYER2/MAC/flexran_agent_mac_proto.h
openair2/LAYER2/MAC/flexran_agent_mac_proto.h
+2
-3
openair2/LAYER2/MAC/flexran_agent_scheduler_ulsch_ue.c
openair2/LAYER2/MAC/flexran_agent_scheduler_ulsch_ue.c
+12
-10
No files found.
openair2/LAYER2/MAC/flexran_agent_mac_proto.h
View file @
eee0c1b8
...
...
@@ -138,12 +138,11 @@ void _assign_rbs_required (module_id_t Mod_id,
// void _sort_ue_ul (module_id_t module_idP,int frameP, sub_frame_t subframeP);
void
_assign_max_mcs_min_rb
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
void
_assign_max_mcs_min_rb
(
module_id_t
module_idP
,
int
slice_id
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
void
_ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
slice_id
,
uint16_t
nb_rbs_allowed_slice
[
MAX_NUM_CCs
][
MAX_NUM_SLICES
],
int
slice_id
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
...
...
openair2/LAYER2/MAC/flexran_agent_scheduler_ulsch_ue.c
View file @
eee0c1b8
...
...
@@ -65,6 +65,8 @@ float slice_percentage_uplink[MAX_NUM_SLICES] = {1.0, 0.0, 0.0, 0.0};
float
slice_percentage_current_uplink
[
MAX_NUM_SLICES
]
=
{
1
.
0
,
0
.
0
,
0
.
0
,
0
.
0
};
uint16_t
nb_rbs_allowed_slice
[
MAX_NUM_CCs
][
MAX_NUM_SLICES
];
uint16_t
flexran_nb_rbs_allowed_slice_uplink
(
float
rb_percentage
,
int
total_rbs
){
return
(
uint16_t
)
floor
(
rb_percentage
*
total_rbs
);
}
...
...
@@ -548,7 +550,7 @@ uint16_t flexran_nb_rbs_allowed_slice_uplink(float rb_percentage, int total_rbs)
void
_assign_max_mcs_min_rb
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
)
void
_assign_max_mcs_min_rb
(
module_id_t
module_idP
,
int
slice_id
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
)
{
int
i
;
...
...
@@ -621,7 +623,7 @@ void _assign_max_mcs_min_rb(module_id_t module_idP,int frameP, sub_frame_t subfr
}
while
((
tbs
<
UE_template
->
ul_total_buffer
)
&&
(
rb_table
[
rb_table_index
]
<
(
frame_parms
->
N_RB_UL
-
first_rb
[
CC_id
]))
&&
(
rb_table
[
rb_table_index
]
<
(
nb_rbs_allowed_slice
[
CC_id
][
slice_id
]
-
first_rb
[
CC_id
]))
&&
((
UE_template
->
phr_info
-
tx_power
)
>
0
)
&&
(
rb_table_index
<
32
))
{
// LOG_I(MAC,"tbs %d ul buffer %d rb table %d max ul rb %d\n", tbs, UE_template->ul_total_buffer, rb_table[rb_table_index], frame_parms->N_RB_UL-first_rb[CC_id]);
...
...
@@ -632,7 +634,7 @@ void _assign_max_mcs_min_rb(module_id_t module_idP,int frameP, sub_frame_t subfr
UE_template
->
ue_tx_power
=
tx_power
;
if
(
rb_table
[
rb_table_index
]
>
(
frame_parms
->
N_RB_UL
-
first_rb
[
CC_id
]
-
1
))
{
if
(
rb_table
[
rb_table_index
]
>
(
nb_rbs_allowed_slice
[
CC_id
][
slice_id
]
-
first_rb
[
CC_id
]
-
1
))
{
rb_table_index
--
;
}
...
...
@@ -662,7 +664,7 @@ void _assign_max_mcs_min_rb(module_id_t module_idP,int frameP, sub_frame_t subfr
void
_ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
slice_id
,
int
slice_id
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
)
...
...
@@ -679,11 +681,11 @@ void _ulsch_scheduler_pre_processor(module_id_t module_idP,
UE_TEMPLATE
*
UE_template
=
0
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
0
;
uint16_t
nb_rbs_allowed_slice
[
MAX_NUM_CCs
][
MAX_NUM_SLICES
];
//LOG_I(MAC,"assign max mcs min rb\n");
// maximize MCS and then allocate required RB according to the buffer occupancy with the limit of max available UL RB
_assign_max_mcs_min_rb
(
module_idP
,
frameP
,
subframeP
,
first_rb
);
_assign_max_mcs_min_rb
(
module_idP
,
slice_id
,
frameP
,
subframeP
,
first_rb
);
//LOG_I(MAC,"sort ue \n");
// sort ues
...
...
@@ -1056,9 +1058,9 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP,
int
slice_id
=
0
;
_ulsch_scheduler_pre_processor
(
module_idP
,
slice_id
,
slice_id
,
frameP
,
subframeP
,
first_rb
);
...
...
@@ -1225,7 +1227,7 @@ abort();
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_mcs2
=
mcs
;
// buffer_occupancy = UE_template->ul_total_buffer;
while
(((
rb_table
[
rb_table_index
]
>
(
frame_parms
->
N_RB_UL
-
1
-
first_rb
[
CC_id
]))
||
while
(((
rb_table
[
rb_table_index
]
>
(
nb_rbs_allowed_slice
[
CC_id
][
slice_id
]
-
1
-
first_rb
[
CC_id
]))
||
(
rb_table
[
rb_table_index
]
>
45
))
&&
(
rb_table_index
>
0
))
{
rb_table_index
--
;
...
...
@@ -1235,7 +1237,7 @@ abort();
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_rbs_used_rx
+=
rb_table
[
rb_table_index
];
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_TBS
=
TBS
;
// buffer_occupancy -= TBS;
rballoc
=
mac_xface
->
computeRIV
(
frame_parms
->
N_RB_UL
,
rballoc
=
mac_xface
->
computeRIV
(
nb_rbs_allowed_slice
[
CC_id
][
slice_id
]
,
first_rb
[
CC_id
],
rb_table
[
rb_table_index
]);
...
...
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