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
canghaiwuhen
OpenXG-RAN
Commits
b8054b3b
Commit
b8054b3b
authored
Nov 07, 2019
by
Haruki NAOI
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: Drop dlsch re-transmission RB allocation.
parent
af43d14f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
22 deletions
+6
-22
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+6
-13
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+0
-9
No files found.
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
b8054b3b
...
@@ -750,6 +750,11 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
...
@@ -750,6 +750,11 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
MIMO_mode_indicator
);
MIMO_mode_indicator
);
temp_total_rbs_count
-=
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
];
temp_total_rbs_count
-=
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
];
temp_total_ue_count
--
;
temp_total_ue_count
--
;
LOG_D
(
MAC
,
"DLSCH UE Select: frame %d subframe %d pre_nb_available_rbs %d(i %d UE_id %d nb_rbs_required %d nb_rbs_required_remaining %d average_rbs_per_user %d (temp_total rbs_count %d ue_num %d) available_prbs %d)
\n
"
,
frameP
,
subframeP
,
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
],
i
,
UE_id
,
nb_rbs_required
[
CC_id
][
UE_id
],
nb_rbs_required_remaining
[
CC_id
][
UE_id
],
average_rbs_per_user
[
CC_id
],
temp_total_rbs_count
,
temp_total_ue_count
,
RC
.
mac
[
Mod_id
]
->
eNB_stats
[
CC_id
].
available_prbs
);
if
(
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
]
==
0
)
{
if
(
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
]
==
0
)
{
dlsch_ue_select
[
CC_id
].
ue_num
=
i
;
dlsch_ue_select
[
CC_id
].
ue_num
=
i
;
...
@@ -761,10 +766,6 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
...
@@ -761,10 +766,6 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
break
;
break
;
}
}
LOG_D
(
MAC
,
"DLSCH UE Select: frame %d subframe %d pre_nb_available_rbs %d(i %d UE_id %d nb_rbs_required %d nb_rbs_required_remaining %d average_rbs_per_user %d (temp_total rbs_count %d ue_num %d) available_prbs %d)
\n
"
,
frameP
,
subframeP
,
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
],
i
,
UE_id
,
nb_rbs_required
[
CC_id
][
UE_id
],
nb_rbs_required_remaining
[
CC_id
][
UE_id
],
average_rbs_per_user
[
CC_id
],
temp_total_rbs_count
,
temp_total_ue_count
,
RC
.
mac
[
Mod_id
]
->
eNB_stats
[
CC_id
].
available_prbs
);
#ifdef TM5
#ifdef TM5
// TODO: data channel TM5: to be re-visited
// TODO: data channel TM5: to be re-visited
#endif
#endif
...
@@ -1376,7 +1377,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -1376,7 +1377,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
if
(
header_len_dtch
==
0
)
if
(
header_len_dtch
==
0
)
header_len_dtch_last
=
0
;
header_len_dtch_last
=
0
;
// there is at least one SDU
// there is at least one SDU
// if (num_sdus > 0 ){
if
((
sdu_length_total
+
header_len_dcch
+
header_len_dtch
)
>
0
)
{
if
((
sdu_length_total
+
header_len_dcch
+
header_len_dtch
)
>
0
)
{
// Now compute number of required RBs for total sdu length
// Now compute number of required RBs for total sdu length
// Assume RAH format 2
// Assume RAH format 2
...
@@ -1841,7 +1841,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -1841,7 +1841,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
dlsch_mcs
[
TB2
]
=
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
dlsch_mcs
[
TB2
]
=
eNB_UE_stats
->
dlsch_mcs
[
TB2
];
eNB_UE_stats
->
dlsch_mcs
[
TB2
];
}
else
{
}
else
{
LOG_
D
(
MAC
,
LOG_
E
(
MAC
,
"[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have
\n
"
,
"[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have
\n
"
,
module_idP
,
frameP
,
CC_id
,
UE_id
);
module_idP
,
frameP
,
CC_id
,
UE_id
);
}
}
...
@@ -2131,7 +2131,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -2131,7 +2131,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
header_len_dtch_last
=
0
;
header_len_dtch_last
=
0
;
// there is at least one SDU
// there is at least one SDU
// if (num_sdus > 0 ){
if
((
sdu_length_total
+
header_len_dcch
+
if
((
sdu_length_total
+
header_len_dcch
+
header_len_dtch
)
>
0
)
{
header_len_dtch
)
>
0
)
{
// Now compute number of required RBs for total sdu length
// Now compute number of required RBs for total sdu length
...
@@ -2373,11 +2372,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -2373,11 +2372,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
first_TB_pdu_create_flg
=
1
;
first_TB_pdu_create_flg
=
1
;
}
//1st TB end
}
//1st TB end
else
{
LOG_D
(
MAC
,
"[eNB %d][DLSCH] Frame %d Subframe %d UE_id %x/%d sdu_length_total %d header_len_dcch %d header_len_dtch %d TBS %d
\n
"
,
module_idP
,
frameP
,
subframeP
,
rnti
,
UE_id
,
sdu_length_total
,
header_len_dcch
,
header_len_dtch
,
TBS
);
}
// printf("dl sfn=%d, sf=%d, buffer=%d, TBS=%d\n", frameP, subframeP, UE_list->UE_template[CC_id][UE_id].dl_buffer_total, UE_list->eNB_UE_stats[CC_id][UE_id].TBS[select_tb]);
// printf("dl sfn=%d, sf=%d, buffer=%d, TBS=%d\n", frameP, subframeP, UE_list->UE_template[CC_id][UE_id].dl_buffer_total, UE_list->eNB_UE_stats[CC_id][UE_id].TBS[select_tb]);
...
@@ -2568,7 +2562,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -2568,7 +2562,6 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
if
(
header_len_dtch
==
0
)
if
(
header_len_dtch
==
0
)
header_len_dtch_last
=
0
;
header_len_dtch_last
=
0
;
// there is at least one SDU
// there is at least one SDU
// if (num_sdus > 0 ){
if
((
sdu_length_total
+
header_len_dcch
+
header_len_dtch
)
>
0
)
{
if
((
sdu_length_total
+
header_len_dcch
+
header_len_dtch
)
>
0
)
{
// Now compute number of required RBs for total sdu length
// Now compute number of required RBs for total sdu length
// Assume RAH format 2
// Assume RAH format 2
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
b8054b3b
...
@@ -1622,13 +1622,8 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
...
@@ -1622,13 +1622,8 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
UE_list_t
*
UE_list
=
&
RC
.
mac
[
Mod_id
]
->
UE_list
;
UE_list_t
*
UE_list
=
&
RC
.
mac
[
Mod_id
]
->
UE_list
;
UE_sched_ctrl_t
*
ue_sched_ctl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
UE_sched_ctrl_t
*
ue_sched_ctl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
int
N_RB_DL
=
to_prb
(
RC
.
mac
[
Mod_id
]
->
common_channels
[
CC_id
].
mib
->
message
.
dl_Bandwidth
);
int
N_RB_DL
=
to_prb
(
RC
.
mac
[
Mod_id
]
->
common_channels
[
CC_id
].
mib
->
message
.
dl_Bandwidth
);
int
continue_flag
=
1
,
alloc_flag
=
0
;
for
(
i
=
0
;
i
<
N_RBG
;
i
++
)
{
for
(
i
=
0
;
i
<
N_RBG
;
i
++
)
{
if
((
alloc_flag
==
1
)
&&
(
continue_flag
==
1
)){
break
;
}
continue_flag
=
1
;
if
(
rballoc_sub
[
CC_id
][
i
]
!=
0
)
continue
;
if
(
rballoc_sub
[
CC_id
][
i
]
!=
0
)
continue
;
if
(
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
!=
0
)
continue
;
if
(
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
!=
0
)
continue
;
...
@@ -1644,8 +1639,6 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
...
@@ -1644,8 +1639,6 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
if
((
i
==
N_RBG
-
1
)
&&
((
N_RB_DL
==
25
)
||
(
N_RB_DL
==
50
)))
{
if
((
i
==
N_RBG
-
1
)
&&
((
N_RB_DL
==
25
)
||
(
N_RB_DL
==
50
)))
{
// Allocating last, smaller RBG
// Allocating last, smaller RBG
if
(
nb_rbs_remaining
[
CC_id
][
UE_id
]
>=
min_rb_unit
-
1
)
{
if
(
nb_rbs_remaining
[
CC_id
][
UE_id
]
>=
min_rb_unit
-
1
)
{
alloc_flag
=
1
;
continue_flag
=
0
;
rballoc_sub
[
CC_id
][
i
]
=
1
;
rballoc_sub
[
CC_id
][
i
]
=
1
;
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
=
1
;
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
=
1
;
MIMO_mode_indicator
[
CC_id
][
i
]
=
1
;
MIMO_mode_indicator
[
CC_id
][
i
]
=
1
;
...
@@ -1660,8 +1653,6 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
...
@@ -1660,8 +1653,6 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
}
else
{
}
else
{
// Allocating a standard-sized RBG
// Allocating a standard-sized RBG
if
(
nb_rbs_remaining
[
CC_id
][
UE_id
]
>=
min_rb_unit
)
{
if
(
nb_rbs_remaining
[
CC_id
][
UE_id
]
>=
min_rb_unit
)
{
alloc_flag
=
1
;
continue_flag
=
0
;
rballoc_sub
[
CC_id
][
i
]
=
1
;
rballoc_sub
[
CC_id
][
i
]
=
1
;
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
=
1
;
ue_sched_ctl
->
rballoc_sub_UE
[
CC_id
][
i
]
=
1
;
MIMO_mode_indicator
[
CC_id
][
i
]
=
1
;
MIMO_mode_indicator
[
CC_id
][
i
]
=
1
;
...
...
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