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
alex037yang
OpenXG-RAN
Commits
75f47316
Commit
75f47316
authored
Jan 25, 2017
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added per-ue, per-cc throughput plots
parent
42154589
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
103 additions
and
56 deletions
+103
-56
common/utils/T/tracer/enb.c
common/utils/T/tracer/enb.c
+101
-56
common/utils/T/tracer/logger/logger.h
common/utils/T/tracer/logger/logger.h
+2
-0
No files found.
common/utils/T/tracer/enb.c
View file @
75f47316
...
@@ -171,6 +171,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -171,6 +171,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
filter_evarg
(
database
,
"ENB_PHY_INPUT_SIGNAL"
,
"CC_id"
),
filter_evarg
(
database
,
"ENB_PHY_INPUT_SIGNAL"
,
"CC_id"
),
filter_int
(
0
)));
filter_int
(
0
)));
#if 0
/* input signal CC 1 */
/* input signal CC 1 */
input_signal_plot = new_xy_plot(g, 256, 55, "input signal CC 1", 20);
input_signal_plot = new_xy_plot(g, 256, 55, "input signal CC 1", 20);
widget_add_child(g, line, input_signal_plot, -1);
widget_add_child(g, line, input_signal_plot, -1);
...
@@ -188,6 +189,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -188,6 +189,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
filter_eq(
filter_eq(
filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"),
filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"),
filter_int(1)));
filter_int(1)));
#endif
/* UE 0 PUSCH IQ data */
/* UE 0 PUSCH IQ data */
w
=
new_xy_plot
(
g
,
55
,
55
,
"PUSCH IQ [UE 0]"
,
50
);
w
=
new_xy_plot
(
g
,
55
,
55
,
"PUSCH IQ [UE 0]"
,
50
);
...
@@ -250,30 +252,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -250,30 +252,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
filter_evarg
(
database
,
"ENB_PHY_PUCCH_1AB_IQ"
,
"UE_ID"
),
filter_evarg
(
database
,
"ENB_PHY_PUCCH_1AB_IQ"
,
"UE_ID"
),
filter_int
(
0
)));
filter_int
(
0
)));
/* UE x DL mcs */
#if 0
line
=
new_container
(
g
,
HORIZONTAL
);
widget_add_child
(
g
,
top_container
,
line
,
-
1
);
w
=
new_xy_plot
(
g
,
128
,
55
,
""
,
20
);
xy_plot_set_range
(
g
,
w
,
0
,
1024
*
10
,
-
1
,
29
);
e
->
dl_mcs_xy_plot
=
w
;
widget_add_child
(
g
,
line
,
w
,
-
1
);
l
=
new_ticked_ttilog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_DLSCH_UE_DCI"
,
"mcs"
,
0
,
-
1
);
v
=
new_view_tti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
));
logger_add_view
(
l
,
v
);
e
->
dl_mcs_logger
=
l
;
/* UE x UL mcs */
w
=
new_xy_plot
(
g
,
128
,
55
,
""
,
20
);
xy_plot_set_range
(
g
,
w
,
0
,
1024
*
10
,
-
1
,
29
);
e
->
ul_mcs_xy_plot
=
w
;
widget_add_child
(
g
,
line
,
w
,
-
1
);
l
=
new_ticked_ttilog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_ULSCH_UE_DCI"
,
"mcs"
,
0
,
-
1
);
v
=
new_view_tti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
));
logger_add_view
(
l
,
v
);
e
->
ul_mcs_logger
=
l
;
/* UE x DL mcs */
/* UE x DL mcs */
line = new_container(g, HORIZONTAL);
line = new_container(g, HORIZONTAL);
widget_add_child(g, top_container, line, -1);
widget_add_child(g, top_container, line, -1);
...
@@ -297,36 +276,102 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -297,36 +276,102 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
logger_add_view(l, v);
logger_add_view(l, v);
e->ul_mcs_logger = l;
e->ul_mcs_logger = l;
#endif
/* UE x DL PHY (truly: DCI) throughput */
line
=
new_container
(
g
,
HORIZONTAL
);
col
=
new_container
(
g
,
VERTICAL
);
widget_add_child
(
g
,
top_container
,
line
,
-
1
);
widget_add_child
(
g
,
line
,
col
,
-
1
);
w
=
new_xy_plot
(
g
,
70
,
10
,
"DL PHY [0]"
,
35
);
w2
=
new_textarea
(
g
,
70
,
11
,
64
);
xy_plot_set_range
(
g
,
w
,
0
,
1000
,
0
,
100000
);
xy_plot_set_tick_type
(
g
,
w
,
XY_PLOT_SCROLL_TICK
);
widget_add_child
(
g
,
col
,
w2
,
-
1
);
widget_add_child
(
g
,
col
,
w
,
-
1
);
container_set_child_growable
(
g
,
col
,
w
,
1
);
l
=
new_throughputlog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_DLSCH_UE_DCI"
,
"TBS"
);
v
=
new_view_scrolltti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
),
w2
);
logger_add_view
(
l
,
v
);
/* UE x UL PHY (truly: DCI) throughput */
for
(
i
=
0
;
i
<
2
;
i
++
)
{
col
=
new_container
(
g
,
VERTICAL
);
char
s
[
64
];
widget_add_child
(
g
,
line
,
col
,
-
1
);
/* UE x DL PHY (truly: DCI) throughput CC 0 */
w
=
new_xy_plot
(
g
,
70
,
10
,
"UL PHY [0]"
,
35
);
col
=
new_container
(
g
,
VERTICAL
);
w2
=
new_textarea
(
g
,
70
,
11
,
64
);
widget_add_child
(
g
,
line
,
col
,
-
1
);
xy_plot_set_range
(
g
,
w
,
0
,
1000
,
0
,
100000
);
sprintf
(
s
,
" DL [CC 0 UE %d]"
,
i
);
xy_plot_set_tick_type
(
g
,
w
,
XY_PLOT_SCROLL_TICK
);
w
=
new_xy_plot
(
g
,
80
,
50
,
s
,
35
);
widget_add_child
(
g
,
col
,
w2
,
-
1
);
w2
=
new_textarea
(
g
,
70
,
11
,
64
);
widget_add_child
(
g
,
col
,
w
,
-
1
);
xy_plot_set_range
(
g
,
w
,
0
,
1000
,
0
,
100000
);
container_set_child_growable
(
g
,
col
,
w
,
1
);
xy_plot_set_tick_type
(
g
,
w
,
XY_PLOT_SCROLL_TICK
);
l
=
new_throughputlog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
widget_add_child
(
g
,
col
,
w2
,
-
1
);
"ENB_PHY_ULSCH_UE_DCI"
,
"TBS"
);
widget_add_child
(
g
,
col
,
w
,
-
1
);
v
=
new_view_scrolltti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
),
w2
);
container_set_child_growable
(
g
,
col
,
w
,
1
);
logger_add_view
(
l
,
v
);
l
=
new_throughputlog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_DLSCH_UE_DCI"
,
"TBS"
);
v
=
new_view_scrolltti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
),
w2
);
logger_add_view
(
l
,
v
);
throughputlog_set_tick_filter
(
l
,
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DL_TICK"
,
"CC_id"
),
filter_int
(
0
)));
logger_set_filter
(
l
,
filter_and
(
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
"CC_id"
),
filter_int
(
0
)),
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
"UE_id"
),
filter_int
(
i
))));
/* UE x DL PHY (truly: DCI) throughput CC 1 */
col
=
new_container
(
g
,
VERTICAL
);
widget_add_child
(
g
,
line
,
col
,
-
1
);
sprintf
(
s
,
" DL [CC 1 UE %d]"
,
i
);
w
=
new_xy_plot
(
g
,
80
,
50
,
s
,
35
);
w2
=
new_textarea
(
g
,
70
,
11
,
64
);
xy_plot_set_range
(
g
,
w
,
0
,
1000
,
0
,
100000
);
xy_plot_set_tick_type
(
g
,
w
,
XY_PLOT_SCROLL_TICK
);
widget_add_child
(
g
,
col
,
w2
,
-
1
);
widget_add_child
(
g
,
col
,
w
,
-
1
);
container_set_child_growable
(
g
,
col
,
w
,
1
);
l
=
new_throughputlog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_DLSCH_UE_DCI"
,
"TBS"
);
v
=
new_view_scrolltti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
),
w2
);
logger_add_view
(
l
,
v
);
throughputlog_set_tick_filter
(
l
,
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DL_TICK"
,
"CC_id"
),
filter_int
(
1
)));
logger_set_filter
(
l
,
filter_and
(
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
"CC_id"
),
filter_int
(
1
)),
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
"UE_id"
),
filter_int
(
i
))));
/* UE x UL PHY (truly: DCI) throughput CC 0 */
col
=
new_container
(
g
,
VERTICAL
);
widget_add_child
(
g
,
line
,
col
,
-
1
);
sprintf
(
s
,
" UL [CC 0 UE %d]"
,
i
);
w
=
new_xy_plot
(
g
,
80
,
50
,
s
,
35
);
w2
=
new_textarea
(
g
,
70
,
11
,
64
);
xy_plot_set_range
(
g
,
w
,
0
,
1000
,
0
,
100000
);
xy_plot_set_tick_type
(
g
,
w
,
XY_PLOT_SCROLL_TICK
);
widget_add_child
(
g
,
col
,
w2
,
-
1
);
widget_add_child
(
g
,
col
,
w
,
-
1
);
container_set_child_growable
(
g
,
col
,
w
,
1
);
l
=
new_throughputlog
(
h
,
database
,
"ENB_PHY_DL_TICK"
,
"frame"
,
"subframe"
,
"ENB_PHY_ULSCH_UE_DCI"
,
"TBS"
);
v
=
new_view_scrolltti
(
10
,
g
,
w
,
new_color
(
g
,
"#0c0c72"
),
w2
);
logger_add_view
(
l
,
v
);
throughputlog_set_tick_filter
(
l
,
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_DL_TICK"
,
"CC_id"
),
filter_int
(
0
)));
logger_set_filter
(
l
,
filter_and
(
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_ULSCH_UE_DCI"
,
"CC_id"
),
filter_int
(
0
)),
filter_eq
(
filter_evarg
(
database
,
"ENB_PHY_ULSCH_UE_DCI"
,
"UE_id"
),
filter_int
(
i
))));
if
(
i
==
0
)
{
w
=
new_space
(
g
,
50
,
2
);
widget_add_child
(
g
,
line
,
w
,
-
1
);
}
}
/* downlink/uplink UE DCIs */
/* downlink/uplink UE DCIs */
widget_add_child
(
g
,
top_container
,
widget_add_child
(
g
,
top_container
,
...
@@ -339,7 +384,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -339,7 +384,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
for
(
i
=
0
;
i
<
8
;
i
++
)
for
(
i
=
0
;
i
<
8
;
i
++
)
timeline_set_subline_background_color
(
g
,
timeline_plot
,
i
,
timeline_set_subline_background_color
(
g
,
timeline_plot
,
i
,
new_color
(
g
,
i
==
0
||
i
==
4
?
"#aaf"
:
"#eee"
));
new_color
(
g
,
i
==
0
||
i
==
4
?
"#aaf"
:
"#eee"
));
timeview
=
new_view_time
(
3600
,
1
0
,
g
,
timeline_plot
);
timeview
=
new_view_time
(
3600
,
1
,
g
,
timeline_plot
);
/* DL tick logging */
/* DL tick logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB_PHY_DL_TICK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_PHY_DL_TICK"
);
subview
=
new_subview_time
(
timeview
,
0
,
new_color
(
g
,
"#77c"
),
600
*
1000
);
subview
=
new_subview_time
(
timeview
,
0
,
new_color
(
g
,
"#77c"
),
600
*
1000
);
...
@@ -394,7 +439,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
...
@@ -394,7 +439,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
timeline_set_subline_background_color
(
g
,
timeline_plot
,
i
,
timeline_set_subline_background_color
(
g
,
timeline_plot
,
i
,
new_color
(
g
,
i
>=
9
&&
i
<=
16
?
(
i
%
8
)
&
1
?
"#e6e6bb"
:
"#eeb"
:
new_color
(
g
,
i
>=
9
&&
i
<=
16
?
(
i
%
8
)
&
1
?
"#e6e6bb"
:
"#eeb"
:
i
==
0
||
i
==
9
+
8
?
"#ddd"
:
(
i
%
9
)
&
1
?
"#e6e6e6"
:
"#eee"
));
i
==
0
||
i
==
9
+
8
?
"#ddd"
:
(
i
%
9
)
&
1
?
"#e6e6e6"
:
"#eee"
));
timeview
=
new_view_ticktime
(
10
,
g
,
timeline_plot
);
timeview
=
new_view_ticktime
(
2
,
g
,
timeline_plot
);
ticktime_set_tick
(
timeview
,
ticktime_set_tick
(
timeview
,
new_ticklog
(
h
,
database
,
"ENB_MASTER_TICK"
,
"frame"
,
"subframe"
));
new_ticklog
(
h
,
database
,
"ENB_MASTER_TICK"
,
"frame"
,
"subframe"
));
/* tick */
/* tick */
...
@@ -647,8 +692,8 @@ int main(int n, char **v)
...
@@ -647,8 +692,8 @@ int main(int n, char **v)
free
(
desc
);
free
(
desc
);
}
}
on_off
(
database
,
"ENB_PHY_INPUT_SIGNAL"
,
is_on
,
1
);
//
on_off(database, "ENB_PHY_INPUT_SIGNAL", is_on, 1);
on_off
(
database
,
"ENB_PHY_UL_CHANNEL_ESTIMATE"
,
is_on
,
1
);
//
on_off(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", is_on, 1);
on_off
(
database
,
"ENB_PHY_DL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_DL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_DLSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_DLSCH_UE_ACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_DLSCH_UE_ACK"
,
is_on
,
1
);
...
...
common/utils/T/tracer/logger/logger.h
View file @
75f47316
...
@@ -37,4 +37,6 @@ void logger_add_view(logger *l, view *v);
...
@@ -37,4 +37,6 @@ void logger_add_view(logger *l, view *v);
void
logger_set_filter
(
logger
*
l
,
void
*
filter
);
void
logger_set_filter
(
logger
*
l
,
void
*
filter
);
void
ticked_ttilog_set_tick_filter
(
logger
*
l
,
void
*
filter
);
void
ticked_ttilog_set_tick_filter
(
logger
*
l
,
void
*
filter
);
void
throughputlog_set_tick_filter
(
logger
*
_l
,
void
*
filter
);
#endif
/* _LOGGER_H_ */
#endif
/* _LOGGER_H_ */
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