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
wangjie
OpenXG-RAN
Commits
e205a00b
Commit
e205a00b
authored
4 years ago
by
masayuki.harada
Committed by
Haruki NAOI
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add patch for x2ho.
(cherry picked from commit 88771693f0c45011ab2759819ea91ef2a7315acd)
parent
c3d09200
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
5 deletions
+39
-5
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+22
-0
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+17
-5
No files found.
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
e205a00b
...
@@ -179,6 +179,9 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
...
@@ -179,6 +179,9 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
//update CQI information across component carriers
//update CQI information across component carriers
eNB_UE_stats
=
&
pre_scd_eNB_UE_stats
[
CC_id
][
UE_id
];
eNB_UE_stats
=
&
pre_scd_eNB_UE_stats
[
CC_id
][
UE_id
];
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
cqi_to_mcs
[
UE_list
->
UE_sched_ctrl
[
UE_id
].
dl_cqi
[
CC_id
]];
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
cqi_to_mcs
[
UE_list
->
UE_sched_ctrl
[
UE_id
].
dl_cqi
[
CC_id
]];
if
(
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
rrc_status
==
RRC_HO_EXECUTION
)
{
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
6
;
}
if
(
UE_template
.
dl_buffer_total
>
0
)
{
if
(
UE_template
.
dl_buffer_total
>
0
)
{
nb_rbs_required
[
CC_id
][
UE_id
]
=
search_rbs_required
(
eNB_UE_stats
->
dlsch_mcs
[
TB1
],
UE_template
.
dl_buffer_total
,
N_RB_DL
,
step_size
);
nb_rbs_required
[
CC_id
][
UE_id
]
=
search_rbs_required
(
eNB_UE_stats
->
dlsch_mcs
[
TB1
],
UE_template
.
dl_buffer_total
,
N_RB_DL
,
step_size
);
...
@@ -1110,6 +1113,12 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -1110,6 +1113,12 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
cqi_to_mcs
[
ue_sched_ctl
->
dl_cqi
[
CC_id
]];
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
cqi_to_mcs
[
ue_sched_ctl
->
dl_cqi
[
CC_id
]];
eNB_UE_stats
->
dlsch_mcs
[
TB2
]
=
cqi_to_mcs
[
ue_sched_ctl
->
dl_cqi
[
CC_id
]];
eNB_UE_stats
->
dlsch_mcs
[
TB2
]
=
cqi_to_mcs
[
ue_sched_ctl
->
dl_cqi
[
CC_id
]];
}
}
if
(
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
rrc_status
==
RRC_HO_EXECUTION
)
{
eNB_UE_stats
->
dlsch_mcs
[
TB1
]
=
6
;
eNB_UE_stats
->
dlsch_mcs
[
TB2
]
=
6
;
ue_sched_ctl
->
aperiodic_ri_received
[
CC_id
]
=
SINGLE_RI
;
LOG_I
(
MAC
,
"%d %d %d Set mcs = 6 cause HO %d
\n
"
,
frameP
,
subframeP
,
UE_id
,
nb_available_rb
);
}
//eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, openair_daq_vars.target_ue_dl_mcs);
//eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, openair_daq_vars.target_ue_dl_mcs);
...
@@ -2073,6 +2082,10 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -2073,6 +2082,10 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
header_len_dtch_last
=
0
;
// the header length of the last mac sdu
header_len_dtch_last
=
0
;
// the header length of the last mac sdu
dtch_max_num
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
dl_dtch_num
;
dtch_max_num
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
dl_dtch_num
;
if
(
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
rrc_status
==
RRC_HO_EXECUTION
)
{
dtch_max_num
=
0
;
LOG_I
(
MAC
,
"%d %d %d Skip dtch scheduling %d %d %d %d
\n
"
,
frameP
,
subframeP
,
UE_id
,
TBS
,
ta_len
,
header_len_dcch
,
sdu_length_total
);
}
for
(
dtch
=
0
;
dtch
<
dtch_max_num
;
dtch
++
)
{
for
(
dtch
=
0
;
dtch
<
dtch_max_num
;
dtch
++
)
{
lcid
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
dl_dtch_list_priority
[
dtch
];
lcid
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
dl_dtch_list_priority
[
dtch
];
header_len_dtch
+=
3
;
header_len_dtch
+=
3
;
...
@@ -3541,6 +3554,10 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
...
@@ -3541,6 +3554,10 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
mcs
=
6
;
mcs
=
6
;
}
}
if
(
mac_eNB_get_rrc_status
(
module_idP
,
UE_RNTI
(
module_idP
,
UE_id
))
==
RRC_HO_EXECUTION
){
mcs
=
6
;
}
if
(
ulsch_ue_select
[
CC_id
].
list
[
ulsch_ue_num
].
ue_priority
==
SCH_UL_FIRST
)
{
if
(
ulsch_ue_select
[
CC_id
].
list
[
ulsch_ue_num
].
ue_priority
==
SCH_UL_FIRST
)
{
int
bytes_to_schedule
=
UE_template
->
estimated_ul_buffer
-
UE_template
->
scheduled_ul_bytes
;
int
bytes_to_schedule
=
UE_template
->
estimated_ul_buffer
-
UE_template
->
scheduled_ul_bytes
;
...
@@ -3615,6 +3632,11 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
...
@@ -3615,6 +3632,11 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pre_allocated_rb_table_index_ul
=
2
;
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pre_allocated_rb_table_index_ul
=
2
;
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pre_assigned_mcs_ul
=
10
;
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pre_assigned_mcs_ul
=
10
;
}
}
if
(
mac_eNB_get_rrc_status
(
module_idP
,
UE_RNTI
(
module_idP
,
UE_id
))
==
RRC_HO_EXECUTION
){
UE_list
->
UE_template
[
CC_id
][
UE_id
].
pre_assigned_mcs_ul
=
6
;
}
}
}
ue_num_temp
--
;
ue_num_temp
--
;
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_eNB.c
View file @
e205a00b
...
@@ -4685,7 +4685,7 @@ rrc_eNB_process_MeasurementReport(
...
@@ -4685,7 +4685,7 @@ rrc_eNB_process_MeasurementReport(
LOG_D
(
RRC
,
"A3 event is triggered...
\n
"
);
LOG_D
(
RRC
,
"A3 event is triggered...
\n
"
);
/* if the UE is not in handover mode, start handover procedure */
/* if the UE is not in handover mode, start handover procedure */
if
(
ue_context_pP
->
ue_context
.
Status
!=
RRC_HO_EXECUTION
)
{
if
(
ue_context_pP
->
ue_context
.
Status
!=
RRC_HO_EXECUTION
&&
ue_context_pP
->
ue_context
.
handover_info
==
NULL
)
{
MessageDef
*
msg
;
MessageDef
*
msg
;
LOG_I
(
RRC
,
"Send HO preparation message at frame %d and subframe %d
\n
"
,
ctxt_pP
->
frame
,
ctxt_pP
->
subframe
);
LOG_I
(
RRC
,
"Send HO preparation message at frame %d and subframe %d
\n
"
,
ctxt_pP
->
frame
,
ctxt_pP
->
subframe
);
/* HO info struct may not be needed anymore */
/* HO info struct may not be needed anymore */
...
@@ -7921,6 +7921,7 @@ rrc_eNB_decode_dcch(
...
@@ -7921,6 +7921,7 @@ rrc_eNB_decode_dcch(
}
}
}
else
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_HO_EXECUTION
)
{
}
else
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_HO_EXECUTION
)
{
int16_t
UE_id
=
find_UE_id
(
ctxt_pP
->
module_id
,
ctxt_pP
->
rnti
);
int16_t
UE_id
=
find_UE_id
(
ctxt_pP
->
module_id
,
ctxt_pP
->
rnti
);
int32_t
dedicated_DRB_tmp
=
3
;
if
(
UE_id
==
-
1
)
{
if
(
UE_id
==
-
1
)
{
LOG_E
(
RRC
,
LOG_E
(
RRC
,
...
@@ -7929,16 +7930,27 @@ rrc_eNB_decode_dcch(
...
@@ -7929,16 +7930,27 @@ rrc_eNB_decode_dcch(
break
;
break
;
}
}
if
(
ue_context_p
->
ue_context
.
handover_info
&&
ue_context_p
->
ue_context
.
handover_info
->
state
==
HO_COMPLETE
)
{
if
(
ue_context_p
->
ue_context
.
handover_info
&&
(
ue_context_p
->
ue_context
.
handover_info
->
state
==
HO_COMPLETE
||
ue_context_p
->
ue_context
.
handover_info
->
state
==
HO_REQUEST
))
{
if
(
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
crnti_reconfigurationcomplete_flag
==
1
)
{
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" UE State = RRC_HO_EXECUTION (dedicated DRB, xid %ld) ho state %d, C-RNTI Complete
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
rrcConnectionReconfigurationComplete
.
rrc_TransactionIdentifier
,
ue_context_p
->
ue_context
.
handover_info
->
state
);
dedicated_DRB_tmp
=
2
;
}
else
{
LOG_E
(
RRC
,
LOG_E
(
RRC
,
PROTOCOL_RRC_CTXT_UE_FMT
" RRCConnectionReconfigurationComplete ho state %d error, fault
\n
"
,
PROTOCOL_RRC_CTXT_UE_FMT
" RRCConnectionReconfigurationComplete ho state %d error, fault
\n
"
,
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ue_context_p
->
ue_context
.
handover_info
->
state
);
PROTOCOL_RRC_CTXT_UE_ARGS
(
ctxt_pP
),
ue_context_p
->
ue_context
.
handover_info
->
state
);
break
;
break
;
}
}
}
flexran_agent_handover
=
1
;
flexran_agent_handover
=
1
;
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
Nb_ue
++
;
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
Nb_ue
++
;
dedicated_DRB
=
3
;
dedicated_DRB
=
dedicated_DRB_tmp
;
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
crnti_reconfigurationcomplete_flag
=
0
;
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id
].
crnti_reconfigurationcomplete_flag
=
0
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
if
(
ue_context_p
->
ue_context
.
handover_info
->
state
!=
HO_END_MARKER
)
{
if
(
ue_context_p
->
ue_context
.
handover_info
->
state
!=
HO_END_MARKER
)
{
...
...
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