summaryrefslogtreecommitdiff
path: root/ui/gtk/mac_lte_stat_dlg.c
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2012-11-27 01:11:41 +0000
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2012-11-27 01:11:41 +0000
commit85e8ebaf1984d81ffd7d6a15e3a2cfaf6ecf82fc (patch)
tree53da835bb0c2bac2e2c1d26f863e0e9c84dad64a /ui/gtk/mac_lte_stat_dlg.c
parentc4e5b4745a3646f5110cb2ef2687cf302d461547 (diff)
downloadwireshark-85e8ebaf1984d81ffd7d6a15e3a2cfaf6ecf82fc.tar.gz
Add %DL padding to LTE MAC stats.
svn path=/trunk/; revision=46215
Diffstat (limited to 'ui/gtk/mac_lte_stat_dlg.c')
-rw-r--r--ui/gtk/mac_lte_stat_dlg.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/ui/gtk/mac_lte_stat_dlg.c b/ui/gtk/mac_lte_stat_dlg.c
index f90602cb82..927b1433a3 100644
--- a/ui/gtk/mac_lte_stat_dlg.c
+++ b/ui/gtk/mac_lte_stat_dlg.c
@@ -63,6 +63,7 @@ enum {
DL_FRAMES_COLUMN,
DL_BYTES_COLUMN,
DL_BW_COLUMN,
+ DL_PADDING_PERCENT_COLUMN,
DL_CRC_FAILED_COLUMN,
DL_CRC_HIGH_CODE_RATE_COLUMN,
DL_CRC_PDSCH_LOST_COLUMN,
@@ -90,7 +91,7 @@ enum {
static const gchar *ue_titles[] = { "RNTI", "Type", "UEId",
"UL Frames", "UL Bytes", "UL MBit/sec", "UL Padding %", "UL ReTX",
- "DL Frames", "DL Bytes", "DL MBit/sec", "DL CRC Failed", "DL CRC High Code Rate", "DL CRC PDSCH Lost", "DL CRC Dup NonZero RV", "DL ReTX"};
+ "DL Frames", "DL Bytes", "DL MBit/sec", "DL Padding %", "DL CRC Failed", "DL CRC High Code Rate", "DL CRC PDSCH Lost", "DL CRC Dup NonZero RV", "DL ReTX"};
static const gchar *channel_titles[] = { "CCCH",
"LCID 1", "LCID 2", "LCID 3", "LCID 4", "LCID 5",
@@ -117,9 +118,11 @@ typedef struct mac_lte_row_data {
guint32 UL_retx_frames;
guint32 DL_frames;
+ guint32 DL_raw_bytes; /* all bytes */
guint32 DL_total_bytes;
nstime_t DL_time_start;
nstime_t DL_time_stop;
+ guint32 DL_padding_bytes;
guint32 DL_CRC_failures;
guint32 DL_CRC_high_code_rate;
guint32 DL_CRC_PDSCH_lost;
@@ -283,7 +286,9 @@ static mac_lte_ep_t* alloc_mac_lte_ep(struct mac_lte_tap_info *si, packet_info *
ep->stats.DL_frames = 0;
ep->stats.UL_total_bytes = 0;
ep->stats.UL_raw_bytes = 0;
+ ep->stats.DL_raw_bytes = 0;
ep->stats.UL_padding_bytes = 0;
+ ep->stats.DL_padding_bytes = 0;
ep->stats.DL_total_bytes = 0;
ep->stats.UL_CRC_errors = 0;
ep->stats.DL_CRC_failures = 0;
@@ -501,6 +506,9 @@ static int mac_lte_stat_packet(void *phs, packet_info *pinfo, epan_dissect_t *ed
te->stats.DL_frames++;
+ te->stats.DL_raw_bytes += si->raw_length;
+ te->stats.DL_padding_bytes += si->padding_bytes;
+
if (si->isPredefinedData) {
te->stats.DL_total_bytes += si->single_number_of_bytes;
}
@@ -731,6 +739,10 @@ static void mac_lte_stat_draw(void *phs)
DL_FRAMES_COLUMN, tmp->stats.DL_frames,
DL_BYTES_COLUMN, tmp->stats.DL_total_bytes,
DL_BW_COLUMN, DL_bw,
+ DL_PADDING_PERCENT_COLUMN,
+ tmp->stats.DL_raw_bytes ?
+ (((float)tmp->stats.DL_padding_bytes / (float)tmp->stats.DL_raw_bytes) * 100.0) :
+ 0.0,
DL_CRC_FAILED_COLUMN, tmp->stats.DL_CRC_failures,
DL_CRC_HIGH_CODE_RATE_COLUMN, tmp->stats.DL_CRC_high_code_rate,
DL_CRC_PDSCH_LOST_COLUMN, tmp->stats.DL_CRC_PDSCH_lost,
@@ -1146,7 +1158,7 @@ static void gtk_mac_lte_stat_init(const char *optarg, void *userdata _U_)
/* Create the table of UE data */
store = gtk_list_store_new(NUM_UE_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT,
G_TYPE_INT, G_TYPE_INT, G_TYPE_FLOAT, G_TYPE_FLOAT, G_TYPE_INT, /* UL */
- G_TYPE_INT, G_TYPE_INT, G_TYPE_FLOAT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, /* DL */
+ G_TYPE_INT, G_TYPE_INT, G_TYPE_FLOAT, G_TYPE_FLOAT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, /* DL */
G_TYPE_POINTER);
hs->ue_table = GTK_TREE_VIEW(tree_view_new(GTK_TREE_MODEL(store)));
gtk_container_add(GTK_CONTAINER (ues_scrolled_window), GTK_WIDGET(hs->ue_table));
@@ -1158,7 +1170,8 @@ static void gtk_mac_lte_stat_init(const char *optarg, void *userdata _U_)
/* Create the titles for each column of the per-UE table */
for (i = 0; i < TABLE_COLUMN; i++) {
- if (i == UL_PADDING_PERCENT_COLUMN) {
+ if ((i == UL_PADDING_PERCENT_COLUMN) ||
+ (i == DL_PADDING_PERCENT_COLUMN)) {
/* Show % as progress bar */
renderer = gtk_cell_renderer_progress_new();
column = gtk_tree_view_column_new_with_attributes(ue_titles[i], renderer,