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
lizhongxiao
OpenXG-RAN
Commits
e38d2c4a
Commit
e38d2c4a
authored
Mar 14, 2016
by
Navid Nikaein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update the x2 ho status
parent
eacf5525
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
8 deletions
+19
-8
openair2/RRC/LITE/defs.h
openair2/RRC/LITE/defs.h
+2
-0
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+7
-4
openair2/RRC/LITE/rrc_common.c
openair2/RRC/LITE/rrc_common.c
+7
-2
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+3
-2
No files found.
openair2/RRC/LITE/defs.h
View file @
e38d2c4a
...
...
@@ -534,8 +534,10 @@ typedef struct UE_RRC_INST_s {
// X2 HO stats and measurments
uint8_t
rrc_ue_do_meas
;
// flag to start the meas only once
time_stats_t
rrc_ue_x2_src_enb
;
// form connected to idle : include x2 delay
uint32_t
rrc_ue_x2_src_enb_ms
;
// form connected to idle : include x2 delay
struct
list
rrc_ue_x2_src_enb_list
;
time_stats_t
rrc_ue_x2_target_enb
;
// from idle to connected
uint32_t
rrc_ue_x2_target_enb_ms
;
// from idle to connected
struct
list
rrc_ue_x2_target_enb_list
;
}
UE_RRC_INST
;
...
...
openair2/RRC/LITE/rrc_UE.c
View file @
e38d2c4a
...
...
@@ -1968,10 +1968,12 @@ rrc_ue_decode_dcch(
if
(
target_eNB_index
!=
0xFF
)
{
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_do_meas
=
0
;
stop_meas
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb
);
double
t_x2_src_enb
=
(
double
)
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb
.
p_time
/
get_cpu_freq_GHz
()
/
1000
.
0
;
//stop_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_src_enb);
//double t_x2_src_enb = (double)UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_src_enb.p_time/get_cpu_freq_GHz()/1000.0;
double
t_x2_src_enb
=
(
double
)
ctxt_pP
->
frame
*
10
+
ctxt_pP
->
subframe
-
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb_ms
;
push_front
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb_list
,
t_x2_src_enb
);
start_meas
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb
);
//start_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb_ms
=
ctxt_pP
->
frame
*
10
+
ctxt_pP
->
subframe
;
init_meas_timers
(
ctxt_pP
);
// Initialize handover measurement timers
rrc_ue_generate_RRCConnectionReconfigurationComplete
(
ctxt_pP
,
...
...
@@ -3694,7 +3696,8 @@ void ue_measurement_report_triggering( const protocol_ctxt_t* const ctxt_pP, con
if
(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_do_meas
==
0
){
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_do_meas
=
1
;
start_meas
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb
);
//start_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_src_enb);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_src_enb_ms
=
ctxt_pP
->
frame
*
10
+
ctxt_pP
->
subframe
;
}
rrc_ue_generate_MeasurementReport
(
ctxt_pP
,
...
...
openair2/RRC/LITE/rrc_common.c
View file @
e38d2c4a
...
...
@@ -371,7 +371,10 @@ rrc_top_cleanup(
double
x2_src_median
=
x2_src_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb_list
.
size
/
2
];
double
x2_src_q1
=
x2_src_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb_list
.
size
/
4
];
// Q1
double
x2_src_q3
=
x2_src_table
[
3
*
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb_list
.
size
/
4
];
// Q3
LOG_I
(
RRC
,
"%lf;%lf;%lf;%d;%d;
\n
"
,
x2_src_median
,
x2_src_q1
,
x2_src_q3
,
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb
.
min
,
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb
.
max
);
double
x2_src_min
=
x2_src_table
[
0
];
// Q3
double
x2_src_max
=
x2_src_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_src_enb_list
.
size
-
1
];
// Q3
LOG_I
(
RRC
,
"%lf;%lf;%lf;%d;%d;
\n
"
,
x2_src_median
,
x2_src_q1
,
x2_src_q3
,
x2_src_min
,
x2_src_max
);
}
LOG_I
(
RRC
,
"[DST]median;q1;q3;min;max;
\n
"
);
for
(
module_id
=
0
;
module_id
<
NB_UE_INST
;
module_id
++
)
{
...
...
@@ -382,7 +385,9 @@ rrc_top_cleanup(
double
x2_target_median
=
x2_target_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb_list
.
size
/
2
];
double
x2_target_q1
=
x2_target_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb_list
.
size
/
4
];
// Q1
double
x2_target_q3
=
x2_target_table
[
3
*
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb_list
.
size
/
4
];
// Q3
LOG_I
(
RRC
,
"%lf;%lf;%lf;%d;%d;
\n
"
,
x2_target_median
,
x2_target_q1
,
x2_target_q3
,
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb
.
min
,
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb
.
max
);
double
x2_target_min
=
x2_target_table
[
0
];
// MIN
double
x2_target_max
=
x2_target_table
[
UE_rrc_inst
[
module_id
].
rrc_ue_x2_target_enb_list
.
size
-
1
];
// mAX
LOG_I
(
RRC
,
"%lf;%lf;%lf;%d;%d;
\n
"
,
x2_target_median
,
x2_target_q1
,
x2_target_q3
,
x2_target_min
,
x2_target_max
);
}
}
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
e38d2c4a
...
...
@@ -4294,8 +4294,9 @@ rrc_eNB_decode_dcch(
rrcConnectionReconfigurationComplete_r8
);
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_HO_EXECUTION
){
stop_meas
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb
);
double
t_x2_target_enb
=
(
double
)
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb
.
p_time
/
get_cpu_freq_GHz
()
/
1000
.
0
;
//stop_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb);
//double t_x2_target_enb = (double)UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb.p_time/get_cpu_freq_GHz()/1000.0;
double
t_x2_target_enb
=
(
double
)
ctxt_pP
->
frame
*
10
+
ctxt_pP
->
subframe
-
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb_ms
;
push_front
(
&
UE_rrc_inst
[
ctxt_pP
->
module_id
].
rrc_ue_x2_target_enb_list
,
t_x2_target_enb
);
}
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
...
...
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