diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-02-02 18:27:17 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-02-02 18:27:17 +0000 |
commit | 3a4903b71aa0a628db7b63806bb51a7c146ba5d0 (patch) | |
tree | c4e71d3edfd17d6c4ff616228d651021e304ca64 /gtk/sip_stat.c | |
parent | 821deda3ecf8c345e3760601169c00fc3282d4ba (diff) | |
download | wireshark-3a4903b71aa0a628db7b63806bb51a7c146ba5d0.tar.gz |
Calculate average max and min setup time.
svn path=/trunk/; revision=27353
Diffstat (limited to 'gtk/sip_stat.c')
-rw-r--r-- | gtk/sip_stat.c | 49 |
1 files changed, 36 insertions, 13 deletions
diff --git a/gtk/sip_stat.c b/gtk/sip_stat.c index aa28c60fc5..b04cd3002e 100644 --- a/gtk/sip_stat.c +++ b/gtk/sip_stat.c @@ -56,10 +56,14 @@ typedef struct _sip_stats_t { GHashTable *hash_requests; guint32 packets; /* number of sip packets, including continuations */ guint32 resent_packets; - guint32 avrage_setup_time; + guint32 average_setup_time; + guint32 max_setup_time; + guint32 min_setup_time; + guint32 no_of_completed_calls; + guint64 total_setup_time; GtkWidget *packets_label; GtkWidget *resent_label; - GtkWidget *avrage_setup_time_label; + GtkWidget *average_setup_time_label; GtkWidget *request_box; /* container for INVITE, ... */ @@ -340,7 +344,11 @@ sipstat_reset(void *psp) { sp->packets = 0; sp->resent_packets = 0; - sp->avrage_setup_time = 0; + sp->average_setup_time = 0; + sp->max_setup_time = 0; + sp->max_setup_time = 0; + sp->no_of_completed_calls = 0; + sp->total_setup_time = 0; g_hash_table_foreach(sp->hash_responses, (GHFunc)sip_reset_hash_responses, NULL); g_hash_table_foreach(sp->hash_requests, (GHFunc)sip_reset_hash_requests, NULL); } @@ -362,13 +370,26 @@ sipstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const sp->resent_packets++; } - /* Calculate avrage setup time */ + /* Calculate average setup time */ if (value->setup_time){ + sp->no_of_completed_calls++; /* Check if it's the first value */ - if ( sp->avrage_setup_time == 0 ){ - sp->avrage_setup_time = value->setup_time; + if ( sp->total_setup_time == 0 ){ + sp->average_setup_time = value->setup_time; + sp->total_setup_time = value->setup_time; + sp->max_setup_time = value->setup_time; + sp->min_setup_time = value->setup_time; + }else{ + sp->total_setup_time = sp->total_setup_time + value->setup_time; + if (sp->max_setup_time < value->setup_time){ + sp->max_setup_time = value->setup_time; + } + if (sp->min_setup_time > value->setup_time){ + sp->min_setup_time = value->setup_time; + } + /* Calculate average */ + sp->average_setup_time = (guint32)(sp->total_setup_time / sp->no_of_completed_calls); } - sp->avrage_setup_time = (sp->avrage_setup_time + value->setup_time)/2; } /* Looking at both requests and responses */ @@ -484,8 +505,8 @@ sipstat_draw(void *psp) /* Set resend count label */ g_snprintf(string_buff, sizeof(string_buff), - "(Avrage setup time %d ms)", sp->avrage_setup_time); - gtk_label_set(GTK_LABEL(sp->avrage_setup_time_label), string_buff); + "Average setup time %d ms\n Min %d ms\n Max %d ms", sp->average_setup_time, sp->min_setup_time, sp->max_setup_time); + gtk_label_set(GTK_LABEL(sp->average_setup_time_label), string_buff); gtk_widget_show_all(sp->win); } @@ -635,10 +656,12 @@ gtk_sipstat_init(const char *optarg, void *userdata _U_) sp->request_box = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(request_fr), sp->request_box); - sp->avrage_setup_time = 0; - sp->avrage_setup_time_label = gtk_label_new("(Not calculated)"); - gtk_container_add(GTK_CONTAINER(main_vb), sp->avrage_setup_time_label); - gtk_widget_show(sp->avrage_setup_time_label); + sp->average_setup_time = 0; + sp->max_setup_time =0; + sp->min_setup_time =0; + sp->average_setup_time_label = gtk_label_new("(Not calculated)"); + gtk_container_add(GTK_CONTAINER(main_vb), sp->average_setup_time_label); + gtk_widget_show(sp->average_setup_time_label); /* Register this tap listener now */ |