Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
29d82dd1
Commit
29d82dd1
authored
Apr 27, 2017
by
shahab SHARIATBAGHERI
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
uplink percentage
parent
21d0b333
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 @
29d82dd1
...
@@ -138,12 +138,11 @@ void _assign_rbs_required (module_id_t Mod_id,
...
@@ -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 _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
,
void
_ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
slice_id
,
int
slice_id
,
uint16_t
nb_rbs_allowed_slice
[
MAX_NUM_CCs
][
MAX_NUM_SLICES
],
int
frameP
,
int
frameP
,
sub_frame_t
subframeP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
uint16_t
*
first_rb
);
...
...
openair2/LAYER2/MAC/flexran_agent_scheduler_ulsch_ue.c
View file @
29d82dd1
...
@@ -65,6 +65,8 @@ float slice_percentage_uplink[MAX_NUM_SLICES] = {1.0, 0.0, 0.0, 0.0};
...
@@ -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
};
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
){
uint16_t
flexran_nb_rbs_allowed_slice_uplink
(
float
rb_percentage
,
int
total_rbs
){
return
(
uint16_t
)
floor
(
rb_percentage
*
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)
...
@@ -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
;
int
i
;
...
@@ -621,7 +623,7 @@ void _assign_max_mcs_min_rb(module_id_t module_idP,int frameP, sub_frame_t subfr
...
@@ -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
)
&&
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
)
&&
((
UE_template
->
phr_info
-
tx_power
)
>
0
)
&&
(
rb_table_index
<
32
))
{
(
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]);
// 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
...
@@ -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
;
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
--
;
rb_table_index
--
;
}
}
...
@@ -662,7 +664,7 @@ void _assign_max_mcs_min_rb(module_id_t module_idP,int frameP, sub_frame_t subfr
...
@@ -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
,
void
_ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
slice_id
,
int
slice_id
,
int
frameP
,
int
frameP
,
sub_frame_t
subframeP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
)
uint16_t
*
first_rb
)
...
@@ -679,11 +681,11 @@ void _ulsch_scheduler_pre_processor(module_id_t module_idP,
...
@@ -679,11 +681,11 @@ void _ulsch_scheduler_pre_processor(module_id_t module_idP,
UE_TEMPLATE
*
UE_template
=
0
;
UE_TEMPLATE
*
UE_template
=
0
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
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");
//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
// 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");
//LOG_I(MAC,"sort ue \n");
// sort ues
// sort ues
...
@@ -1056,9 +1058,9 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP,
...
@@ -1056,9 +1058,9 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP,
int
slice_id
=
0
;
int
slice_id
=
0
;
_ulsch_scheduler_pre_processor
(
module_idP
,
_ulsch_scheduler_pre_processor
(
module_idP
,
slice_id
,
slice_id
,
frameP
,
frameP
,
subframeP
,
subframeP
,
first_rb
);
first_rb
);
...
@@ -1225,7 +1227,7 @@ abort();
...
@@ -1225,7 +1227,7 @@ abort();
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_mcs2
=
mcs
;
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_mcs2
=
mcs
;
// buffer_occupancy = UE_template->ul_total_buffer;
// 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
[
rb_table_index
]
>
45
))
&&
(
rb_table_index
>
0
))
{
(
rb_table_index
>
0
))
{
rb_table_index
--
;
rb_table_index
--
;
...
@@ -1235,7 +1237,7 @@ abort();
...
@@ -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
].
total_rbs_used_rx
+=
rb_table
[
rb_table_index
];
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_TBS
=
TBS
;
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_TBS
=
TBS
;
// buffer_occupancy -= 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
],
first_rb
[
CC_id
],
rb_table
[
rb_table_index
]);
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