aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-p_mul.c
diff options
context:
space:
mode:
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2007-12-19 11:25:47 +0000
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2007-12-19 11:25:47 +0000
commit84719b7670b06bf23ec5a71e5a7dbc51608cf4da (patch)
treefaba3995377a198ce6b0d90bef92a3e6cb63ff81 /epan/dissectors/packet-p_mul.c
parentd582169d82f026c5fa1510ce5e4e14960ebd73c6 (diff)
Added total retransmission time analysis field.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@23924 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-p_mul.c')
-rw-r--r--epan/dissectors/packet-p_mul.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index 67d8bcdf43..55175bfa3b 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -116,7 +116,8 @@ static int hf_msg_reassembled_in = -1;
static int hf_analysis_ack_time = -1;
static int hf_analysis_total_time = -1;
-static int hf_analysis_rto_time = -1;
+static int hf_analysis_retrans_time = -1;
+static int hf_analysis_total_retrans_time = -1;
static int hf_analysis_last_pdu_num = -1;
static int hf_analysis_addr_pdu_num = -1;
static int hf_analysis_addr_pdu_time = -1;
@@ -516,9 +517,20 @@ static p_mul_id_val *p_mul_add_seq_ack (tvbuff_t *tvb, packet_info *pinfo,
pkg_data->msg_resend_count);
nstime_delta (&ns, &pinfo->fd->abs_ts, &pkg_data->prev_msg_time);
- en = proto_tree_add_time (analysis_tree, hf_analysis_rto_time,
+ en = proto_tree_add_time (analysis_tree, hf_analysis_retrans_time,
tvb, 0, 0, &ns);
PROTO_ITEM_SET_GENERATED (en);
+
+ nstime_delta (&ns, &pinfo->fd->abs_ts, &pkg_data->first_msg_time);
+ eh = proto_tree_add_time (analysis_tree, hf_analysis_total_retrans_time,
+ tvb, 0, 0, &ns);
+ PROTO_ITEM_SET_GENERATED (eh);
+
+ if (pkg_data->first_msg_time.secs == pkg_data->prev_msg_time.secs &&
+ pkg_data->first_msg_time.nsecs == pkg_data->prev_msg_time.nsecs) {
+ /* Time values does not differ, hide the total time */
+ PROTO_ITEM_SET_HIDDEN (eh);
+ }
}
} else if (pdu_type == Ack_PDU) {
if (pkg_data->msg_type != Ack_PDU) {
@@ -1138,9 +1150,12 @@ void proto_register_p_mul (void)
{ &hf_analysis_total_time,
{ "Total Time", "p_mul.analysis.total_time", FT_RELATIVE_TIME, BASE_NONE,
NULL, 0x0, "The time between the first Address PDU and the Ack", HFILL } },
- { &hf_analysis_rto_time,
+ { &hf_analysis_retrans_time,
{ "Retransmission Time", "p_mul.analysis.retrans_time", FT_RELATIVE_TIME, BASE_NONE,
NULL, 0x0, "The time between the last PDU and this PDU", HFILL } },
+ { &hf_analysis_total_retrans_time,
+ { "Total Retransmission Time", "p_mul.analysis.total_retrans_time", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0x0, "The time between the first PDU and this PDU", HFILL } },
{ &hf_analysis_addr_pdu_time,
{ "Time since Address PDU", "p_mul.analysis.elapsed_time", FT_RELATIVE_TIME, BASE_NONE,
NULL, 0x0, "The time between the Address PDU and this PDU", HFILL } },