aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2010-02-02 16:01:52 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2010-02-02 16:01:52 +0000
commit88b72356adcf886a2381572c758d4d4f881ba559 (patch)
treee7f51edf88c97e06325053a1bb28b7768e940a44 /epan
parent6dfde6891119b45e7ae543c4601ba69d5b833127 (diff)
Introduce "Reassembled length" filter element for all protocols doing
reassembly. svn path=/trunk/; revision=31767
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-6lowpan.c7
-rw-r--r--epan/dissectors/packet-atalk.c8
-rw-r--r--epan/dissectors/packet-bacapp.c8
-rw-r--r--epan/dissectors/packet-capwap.c6
-rw-r--r--epan/dissectors/packet-clnp.c8
-rw-r--r--epan/dissectors/packet-dcerpc.c7
-rw-r--r--epan/dissectors/packet-dcp-etsi.c8
-rw-r--r--epan/dissectors/packet-dnp.c8
-rw-r--r--epan/dissectors/packet-dtls.c7
-rw-r--r--epan/dissectors/packet-dtn.c7
-rw-r--r--epan/dissectors/packet-eap.c6
-rw-r--r--epan/dissectors/packet-gsm_sms.c10
-rw-r--r--epan/dissectors/packet-gsm_sms_ud.c10
-rw-r--r--epan/dissectors/packet-gssapi.c7
-rw-r--r--epan/dissectors/packet-h223.c12
-rw-r--r--epan/dissectors/packet-iax2.c9
-rw-r--r--epan/dissectors/packet-icmpv6.c6
-rw-r--r--epan/dissectors/packet-ieee80211.c7
-rw-r--r--epan/dissectors/packet-ip.c8
-rw-r--r--epan/dissectors/packet-ipv6.c7
-rw-r--r--epan/dissectors/packet-isakmp.c6
-rw-r--r--epan/dissectors/packet-isup.c7
-rw-r--r--epan/dissectors/packet-lapdm.c9
-rw-r--r--epan/dissectors/packet-mp2t.c7
-rw-r--r--epan/dissectors/packet-ncp2222.inc1
-rw-r--r--epan/dissectors/packet-ndmp.c6
-rw-r--r--epan/dissectors/packet-ndps.c6
-rw-r--r--epan/dissectors/packet-netbios.c6
-rw-r--r--epan/dissectors/packet-ositp.c5
-rw-r--r--epan/dissectors/packet-p_mul.c6
-rw-r--r--epan/dissectors/packet-pop.c6
-rw-r--r--epan/dissectors/packet-q931.c6
-rw-r--r--epan/dissectors/packet-rpc.c6
-rw-r--r--epan/dissectors/packet-rtp.c7
-rw-r--r--epan/dissectors/packet-rtse.c12
-rw-r--r--epan/dissectors/packet-sccp.c7
-rw-r--r--epan/dissectors/packet-scsi.c5
-rw-r--r--epan/dissectors/packet-smb-pipe.c5
-rw-r--r--epan/dissectors/packet-smb.c7
-rw-r--r--epan/dissectors/packet-smtp.c6
-rw-r--r--epan/dissectors/packet-sndcp.c9
-rw-r--r--epan/dissectors/packet-ssl.c6
-rw-r--r--epan/dissectors/packet-t38.c14
-rw-r--r--epan/dissectors/packet-tcp.c6
-rw-r--r--epan/dissectors/packet-tds.c7
-rw-r--r--epan/dissectors/packet-teamspeak2.c9
-rw-r--r--epan/dissectors/packet-tipc.c7
-rw-r--r--epan/dissectors/packet-wtp.c9
-rw-r--r--epan/dissectors/packet-x25.c6
-rw-r--r--epan/dissectors/packet-zbee-aps.c7
-rw-r--r--epan/reassemble.c12
-rw-r--r--epan/reassemble.h1
52 files changed, 353 insertions, 22 deletions
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c
index 8aa91b8445..e13c599c02 100644
--- a/epan/dissectors/packet-6lowpan.c
+++ b/epan/dissectors/packet-6lowpan.c
@@ -337,6 +337,7 @@ static int hf_6lowpan_fragment_multiple_tails = -1;
static int hf_6lowpan_fragment_too_long_fragment = -1;
static int hf_6lowpan_fragment_error = -1;
static int hf_6lowpan_reassembled_in = -1;
+static int hf_6lowpan_reassembled_length = -1;
static gint ett_6lowpan_fragment = -1;
static gint ett_6lowpan_fragments = -1;
@@ -354,6 +355,8 @@ static const fragment_items lowpan_frag_items = {
&hf_6lowpan_fragment_error,
/* Reassembled in field */
&hf_6lowpan_reassembled_in,
+ /* Reassembled length field */
+ &hf_6lowpan_reassembled_length,
/* Tag */
"6LoWPAN fragments"
};
@@ -2163,7 +2166,9 @@ proto_register_6lowpan(void)
{ &hf_6lowpan_fragment_error,
{ "Message defragmentation error", "6lowpan.fragment.error", FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }},
{ &hf_6lowpan_reassembled_in,
- { "Reassembled in", "6lowpan.reassembled.in",FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }}
+ { "Reassembled in", "6lowpan.reassembled.in",FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }},
+ { &hf_6lowpan_reassembled_length,
+ { "Reassembled length", "6lowpan.reassembled.length",FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }}
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-atalk.c b/epan/dissectors/packet-atalk.c
index 3c6205050e..dbb37a1966 100644
--- a/epan/dissectors/packet-atalk.c
+++ b/epan/dissectors/packet-atalk.c
@@ -132,6 +132,7 @@ static int hf_atp_segment_multiple_tails = -1;
static int hf_atp_segment_too_long_segment = -1;
static int hf_atp_segment_error = -1;
static int hf_atp_reassembled_in = -1;
+static int hf_atp_reassembled_length = -1;
/* ------------------------- */
static int proto_zip = -1;
@@ -348,6 +349,7 @@ static const fragment_items atp_frag_items = {
&hf_atp_segment_too_long_segment,
&hf_atp_segment_error,
&hf_atp_reassembled_in,
+ &hf_atp_reassembled_length,
"segments"
};
@@ -2093,7 +2095,11 @@ proto_register_atalk(void)
{ &hf_atp_reassembled_in,
{ "Reassembled ATP in frame", "atp.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
- "This ATP packet is reassembled in this frame", HFILL }}
+ "This ATP packet is reassembled in this frame", HFILL }},
+
+ { &hf_atp_reassembled_length,
+ { "Reassembled ATP length", "atp.reassembled_length", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }}
};
static hf_register_info hf_asp[] = {
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index 93f08bb83c..d26bb944bc 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -3859,6 +3859,7 @@ static int hf_msg_fragment_multiple_tails = -1;
static int hf_msg_fragment_too_long_fragment = -1;
static int hf_msg_fragment_error = -1;
static int hf_msg_reassembled_in = -1;
+static int hf_msg_reassembled_length = -1;
static gint ett_msg_fragment = -1;
static gint ett_msg_fragments = -1;
@@ -3891,6 +3892,8 @@ static const fragment_items msg_frag_items = {
&hf_msg_fragment_error,
/* Reassembled in field */
&hf_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_msg_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -8975,7 +8978,10 @@ proto_register_bacapp(void)
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
{&hf_msg_reassembled_in,
{"Reassembled in", "msg.reassembled.in",
- FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } }
+ FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_msg_reassembled_length,
+ {"Reassembled length", "msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } }
};
static gint *ett[] = {
&ett_bacapp,
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c
index 9f4d4e3ac6..60d421d35d 100644
--- a/epan/dissectors/packet-capwap.c
+++ b/epan/dissectors/packet-capwap.c
@@ -248,6 +248,7 @@ static int hf_msg_fragment_multiple_tails = -1;
static int hf_msg_fragment_too_long_fragment = -1;
static int hf_msg_fragment_error = -1;
static int hf_msg_reassembled_in = -1;
+static int hf_msg_reassembled_length = -1;
static dissector_handle_t dtls_handle;
static dissector_handle_t ieee8023_handle;
@@ -279,6 +280,8 @@ static const fragment_items capwap_frag_items = {
&hf_msg_fragment_error,
/* Reassembled in field */
&hf_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_msg_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -2143,6 +2146,9 @@ proto_register_capwap_control(void)
{ &hf_msg_reassembled_in,
{ "Reassembled in", "capwap.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, NULL, HFILL } },
+ { &hf_msg_reassembled_length,
+ { "Reassembled length", "capwap.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, NULL, HFILL } }
};
/* Setup protocol subtree array */
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index 04c904b878..88133ee247 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -68,6 +68,7 @@ static int hf_clnp_segment_multiple_tails = -1;
static int hf_clnp_segment_too_long_segment = -1;
static int hf_clnp_segment_error = -1;
static int hf_clnp_reassembled_in = -1;
+static int hf_clnp_reassembled_length = -1;
static const fragment_items clnp_frag_items = {
&ett_clnp_segment,
@@ -80,6 +81,7 @@ static const fragment_items clnp_frag_items = {
&hf_clnp_segment_too_long_segment,
&hf_clnp_segment_error,
&hf_clnp_reassembled_in,
+ &hf_clnp_reassembled_length,
"segments"
};
@@ -619,7 +621,11 @@ void proto_register_clnp(void)
{ &hf_clnp_reassembled_in,
{ "Reassembled CLNP in frame", "clnp.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
- "This CLNP packet is reassembled in this frame", HFILL }}
+ "This CLNP packet is reassembled in this frame", HFILL }},
+
+ { &hf_clnp_reassembled_length,
+ { "Reassembled length", "clnp.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }}
};
static gint *ett[] = {
&ett_clnp,
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c
index e7007a506f..e9c0600700 100644
--- a/epan/dissectors/packet-dcerpc.c
+++ b/epan/dissectors/packet-dcerpc.c
@@ -462,6 +462,7 @@ static int hf_dcerpc_fragment_multiple_tails = -1;
static int hf_dcerpc_fragment_too_long_fragment = -1;
static int hf_dcerpc_fragment_error = -1;
static int hf_dcerpc_reassembled_in = -1;
+static int hf_dcerpc_reassembled_length = -1;
static int hf_dcerpc_unknown_if_id = -1;
static gint ett_dcerpc = -1;
@@ -490,7 +491,7 @@ static const fragment_items dcerpc_frag_items = {
&hf_dcerpc_fragment_too_long_fragment,
&hf_dcerpc_fragment_error,
NULL,
-
+ &hf_dcerpc_reassembled_length,
"fragments"
};
@@ -5458,6 +5459,10 @@ proto_register_dcerpc (void)
{ "Reassembled PDU in frame", "dcerpc.reassembled_in", FT_FRAMENUM, BASE_NONE,
NULL, 0x0, "The DCE/RPC PDU is completely reassembled in the packet with this number", HFILL }},
+ { &hf_dcerpc_reassembled_length,
+ { "Reassembled length", "dcerpc.reassembled_length", FT_UINT32, BASE_DEC,
+ NULL, 0x0, "The total length of the reassembled payload", HFILL }},
+
{ &hf_dcerpc_unknown_if_id,
{ "Unknown DCERPC interface id", "dcerpc.unknown_if_id", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }},
};
diff --git a/epan/dissectors/packet-dcp-etsi.c b/epan/dissectors/packet-dcp-etsi.c
index 43568679b8..3b66fe9e1b 100644
--- a/epan/dissectors/packet-dcp-etsi.c
+++ b/epan/dissectors/packet-dcp-etsi.c
@@ -92,6 +92,7 @@ static int hf_edcp_fragment_multiple_tails = -1;
static int hf_edcp_fragment_too_long_fragment = -1;
static int hf_edcp_fragment_error = -1;
static int hf_edcp_reassembled_in = -1;
+static int hf_edcp_reassembled_length = -1;
/* Initialize the subtree pointers */
static gint ett_edcp = -1;
@@ -118,6 +119,8 @@ static const fragment_items dcp_frag_items = {
&hf_edcp_fragment_error,
/* Reassembled in field */
&hf_edcp_reassembled_in,
+/* Reassembled length field */
+ &hf_edcp_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -819,7 +822,10 @@ proto_register_dcp_etsi (void)
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL}},
{&hf_edcp_reassembled_in,
{"Reassembled in", "dcp-pft.reassembled.in",
- FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL}},
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL}},
+ {&hf_edcp_reassembled_length,
+ {"Reassembled length", "dcp-pft.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL}},
{&hf_edcp_c_max,
{"C max", "dcp-pft.cmax",
FT_UINT16, BASE_DEC, NULL, 0,
diff --git a/epan/dissectors/packet-dnp.c b/epan/dissectors/packet-dnp.c
index fc215b84cd..4ad4d0a720 100644
--- a/epan/dissectors/packet-dnp.c
+++ b/epan/dissectors/packet-dnp.c
@@ -939,6 +939,7 @@ static int hf_dnp3_fragment_multiple_tails = -1;
static int hf_dnp3_fragment_too_long_fragment = -1;
static int hf_dnp3_fragment_error = -1;
static int hf_dnp3_fragment_reassembled_in = -1;
+static int hf_dnp3_fragment_reassembled_length = -1;
static gint ett_dnp3_fragment = -1;
static gint ett_dnp3_fragments = -1;
@@ -953,6 +954,7 @@ static const fragment_items dnp3_frag_items = {
&hf_dnp3_fragment_too_long_fragment,
&hf_dnp3_fragment_error,
&hf_dnp3_fragment_reassembled_in,
+ &hf_dnp3_fragment_reassembled_length,
"DNP 3.0 fragments"
};
@@ -3033,7 +3035,11 @@ proto_register_dnp3(void)
{ &hf_dnp3_fragment_reassembled_in,
{ "Reassembled PDU In Frame", "dnp3.al.fragment.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
- "This PDU is reassembled in this frame", HFILL }}
+ "This PDU is reassembled in this frame", HFILL }},
+
+ { &hf_dnp3_fragment_reassembled_length,
+ { "Reassembled length", "dnp3.al.fragment.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }}
};
/* Setup protocol subtree array */
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index 6aae2d63c2..44dca723ca 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -147,6 +147,7 @@ static gint hf_dtls_fragment_multiple_tails = -1;
static gint hf_dtls_fragment_too_long_fragment = -1;
static gint hf_dtls_fragment_error = -1;
static gint hf_dtls_reassembled_in = -1;
+static gint hf_dtls_reassembled_length = -1;
/* Initialize the subtree pointers */
static gint ett_dtls = -1;
@@ -191,6 +192,8 @@ static const fragment_items dtls_frag_items = {
&hf_dtls_fragment_error,
/* Reassembled in field */
&hf_dtls_reassembled_in,
+ /* Reassembled length field */
+ &hf_dtls_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -2213,6 +2216,10 @@ proto_register_dtls(void)
{ "Reassembled in", "dtls.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ { &hf_dtls_reassembled_length,
+ { "Reassembled length", "dtls.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }
+ },
};
/* Setup protocol subtree array */
diff --git a/epan/dissectors/packet-dtn.c b/epan/dissectors/packet-dtn.c
index e64be30ec2..c4c0a904f6 100644
--- a/epan/dissectors/packet-dtn.c
+++ b/epan/dissectors/packet-dtn.c
@@ -103,6 +103,7 @@ static int hf_msg_fragment_multiple_tails = -1;
static int hf_msg_fragment_too_long_fragment = -1;
static int hf_msg_fragment_error = -1;
static int hf_msg_reassembled_in = -1;
+static int hf_msg_reassembled_length = -1;
/* Primary Header Processing Flag Variables */
static guint8 pri_hdr_procflags; /*This is global to allow processing Payload Header*/
@@ -258,6 +259,8 @@ static const fragment_items msg_frag_items = {
&hf_msg_fragment_error,
/*Reassembled in field*/
&hf_msg_reassembled_in,
+ /*Reassembled length field*/
+ &hf_msg_reassembled_length,
/*Tag*/
"Message fragments"
};
@@ -2235,6 +2238,10 @@ proto_register_bundle(void)
{"Reassembled in", "bundle.msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
+ {&hf_msg_reassembled_length,
+ {"Reassembled length", "bundle.msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}
+ },
{&hf_bundle_procflags,
{"Primary Header Processing Flags", "bundle.primary.proc.flag",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}
diff --git a/epan/dissectors/packet-eap.c b/epan/dissectors/packet-eap.c
index ff8ba5ee3b..0f56e47ebf 100644
--- a/epan/dissectors/packet-eap.c
+++ b/epan/dissectors/packet-eap.c
@@ -210,6 +210,7 @@ static int hf_eaptls_fragment_overlap_conflict = -1;
static int hf_eaptls_fragment_multiple_tails = -1;
static int hf_eaptls_fragment_too_long_fragment = -1;
static int hf_eaptls_fragment_error = -1;
+static int hf_eaptls_reassembled_length = -1;
static gint ett_eaptls_fragment = -1;
static gint ett_eaptls_fragments = -1;
static gint ett_eap_sim_attr = -1;
@@ -227,6 +228,7 @@ static const fragment_items eaptls_frag_items = {
&hf_eaptls_fragment_too_long_fragment,
&hf_eaptls_fragment_error,
NULL,
+ &hf_eaptls_reassembled_length,
"fragments"
};
@@ -1250,6 +1252,10 @@ proto_register_eap(void)
{ "Defragmentation error", "eaptls.fragment.error",
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"Defragmentation error due to illegal fragments", HFILL }},
+ { &hf_eaptls_reassembled_length,
+ { "Reassembled length", "eaptls.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
/* Expanded type fields */
{ &hf_eapext_vendorid,
diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c
index 30fd4a2adc..e6277ccca2 100644
--- a/epan/dissectors/packet-gsm_sms.c
+++ b/epan/dissectors/packet-gsm_sms.c
@@ -218,6 +218,7 @@ static int hf_gsm_sms_ud_fragment_multiple_tails = -1;
static int hf_gsm_sms_ud_fragment_too_long_fragment = -1;
static int hf_gsm_sms_ud_fragment_error = -1;
static int hf_gsm_sms_ud_reassembled_in = -1;
+static int hf_gsm_sms_ud_reassembled_length = -1;
static const fragment_items sm_frag_items = {
/* Fragment subtrees */
@@ -233,6 +234,8 @@ static const fragment_items sm_frag_items = {
&hf_gsm_sms_ud_fragment_error,
/* Reassembled in field */
&hf_gsm_sms_ud_reassembled_in,
+ /* Reassembled length field */
+ &hf_gsm_sms_ud_reassembled_length,
/* Tag */
"Short Message fragments"
};
@@ -3571,6 +3574,13 @@ proto_register_gsm_sms(void)
"GSM Short Message has been reassembled in this packet.", HFILL
}
},
+ { &hf_gsm_sms_ud_reassembled_length,
+ { "Reassembled length",
+ "gsm-sms-ud.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00,
+ "The total length of the reassembled payload", HFILL
+ }
+ },
{ &hf_gsm_sms_ud_multiple_messages_msg_id,
{ "Message identifier", "gsm-sms.udh.mm.msg_id",
FT_UINT16, BASE_DEC, NULL, 0x00,
diff --git a/epan/dissectors/packet-gsm_sms_ud.c b/epan/dissectors/packet-gsm_sms_ud.c
index c3f2f93b84..9491a0251b 100644
--- a/epan/dissectors/packet-gsm_sms_ud.c
+++ b/epan/dissectors/packet-gsm_sms_ud.c
@@ -87,6 +87,7 @@ static int hf_gsm_sms_ud_fragment_multiple_tails = -1;
static int hf_gsm_sms_ud_fragment_too_long_fragment = -1;
static int hf_gsm_sms_ud_fragment_error = -1;
static int hf_gsm_sms_ud_reassembled_in = -1;
+static int hf_gsm_sms_ud_reassembled_length = -1;
/*
* User Data Header section
*/
@@ -127,6 +128,8 @@ static const fragment_items sm_frag_items = {
&hf_gsm_sms_ud_fragment_error,
/* Reassembled in field */
&hf_gsm_sms_ud_reassembled_in,
+ /* Reassembled length field */
+ &hf_gsm_sms_ud_reassembled_length,
/* Tag */
"Short Message fragments"
};
@@ -572,6 +575,13 @@ proto_register_gsm_sms_ud(void)
"GSM Short Message has been reassembled in this packet.", HFILL
}
},
+ { &hf_gsm_sms_ud_reassembled_length,
+ { "Reassembled length",
+ "gsm-sms-ud.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00,
+ "The total length of the reassembled payload", HFILL
+ }
+ },
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-gssapi.c b/epan/dissectors/packet-gssapi.c
index faa0bd7c7f..03c16c19f1 100644
--- a/epan/dissectors/packet-gssapi.c
+++ b/epan/dissectors/packet-gssapi.c
@@ -60,6 +60,7 @@ static int hf_gssapi_segment_multiple_tails = -1;
static int hf_gssapi_segment_too_long_fragment = -1;
static int hf_gssapi_segment_error = -1;
static int hf_gssapi_reassembled_in = -1;
+static int hf_gssapi_reassembled_length = -1;
static gint ett_gssapi = -1;
static gint ett_gssapi_segment = -1;
@@ -94,7 +95,7 @@ static const fragment_items gssapi_frag_items = {
&hf_gssapi_segment_too_long_fragment,
&hf_gssapi_segment_error,
NULL,
-
+ &hf_gssapi_reassembled_length,
"fragments"
};
@@ -555,7 +556,9 @@ proto_register_gssapi(void)
{ &hf_gssapi_reassembled_in,
{ "Reassembled In", "gss-api.reassembled_in", FT_FRAMENUM, BASE_NONE,
NULL, 0x0, "The frame where this pdu is reassembled", HFILL }},
-
+ { &hf_gssapi_reassembled_length,
+ { "Reassembled length", "gss-api.reassembled_length", FT_UINT32, BASE_DEC,
+ NULL, 0x0, "The total length of the reassembled payload", HFILL }},
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-h223.c b/epan/dissectors/packet-h223.c
index 856829f546..bc7beff0ad 100644
--- a/epan/dissectors/packet-h223.c
+++ b/epan/dissectors/packet-h223.c
@@ -80,6 +80,7 @@ static int hf_h223_mux_fragment_multiple_tails = -1;
static int hf_h223_mux_fragment_too_long_fragment = -1;
static int hf_h223_mux_fragment_error = -1;
static int hf_h223_mux_reassembled_in = -1;
+static int hf_h223_mux_reassembled_length = -1;
static int hf_h223_al_fragments = -1;
static int hf_h223_al_fragment = -1;
@@ -89,6 +90,7 @@ static int hf_h223_al_fragment_multiple_tails = -1;
static int hf_h223_al_fragment_too_long_fragment = -1;
static int hf_h223_al_fragment_error = -1;
static int hf_h223_al_reassembled_in = -1;
+static int hf_h223_al_reassembled_length = -1;
static int hf_h223_al1 = -1;
static int hf_h223_al1_framed = -1;
@@ -133,6 +135,7 @@ static const fragment_items h223_mux_frag_items _U_ = {
&hf_h223_mux_fragment_too_long_fragment,
&hf_h223_mux_fragment_error,
&hf_h223_mux_reassembled_in,
+ &hf_h223_mux_reassembled_length,
"fragments"
};
@@ -147,6 +150,7 @@ static const fragment_items h223_al_frag_items = {
&hf_h223_al_fragment_too_long_fragment,
&hf_h223_al_fragment_error,
&hf_h223_al_reassembled_in,
+ &hf_h223_al_reassembled_length,
"fragments"
};
@@ -1448,6 +1452,10 @@ void proto_register_h223 (void)
{ "MUX-PDU fragment, reassembled in frame", "h223.mux.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This H.223 MUX-PDU packet is reassembled in this frame", HFILL }},
+ { &hf_h223_mux_reassembled_length,
+ { "Reassembled length", "h223.mux.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
/* fields for h.223-al fragments */
{ &hf_h223_al_fragment_overlap,
{ "Fragment overlap", "h223.al.fragment.overlap", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
@@ -1481,6 +1489,10 @@ void proto_register_h223 (void)
{ "AL-PDU fragment, reassembled in frame", "h223.al.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This H.223 AL-PDU packet is reassembled in this frame", HFILL }},
+ { &hf_h223_al_reassembled_length,
+ { "Reassembled length", "h223.al.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
/* h223-als */
{ &hf_h223_al1,
diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c
index 9661355071..9c64d3378c 100644
--- a/epan/dissectors/packet-iax2.c
+++ b/epan/dissectors/packet-iax2.c
@@ -129,6 +129,7 @@ static int hf_iax2_fragment_multiple_tails = -1;
static int hf_iax2_fragment_too_long_fragment = -1;
static int hf_iax2_fragment_error = -1;
static int hf_iax2_reassembled_in = -1;
+static int hf_iax2_reassembled_length = -1;
/* hf_iax2_ies is an array of header fields, one per potential Information
@@ -171,6 +172,7 @@ static const fragment_items iax2_fragment_items = {
&hf_iax2_fragment_too_long_fragment,
&hf_iax2_fragment_error,
&hf_iax2_reassembled_in,
+ &hf_iax2_reassembled_length,
"iax2 fragments"
};
@@ -2557,7 +2559,12 @@ proto_register_iax2 (void)
{&hf_iax2_reassembled_in,
{"IAX2 fragment, reassembled in frame", "iax2.reassembled_in",
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
- "This IAX2 packet is reassembled in this frame", HFILL }}
+ "This IAX2 packet is reassembled in this frame", HFILL }},
+
+ {&hf_iax2_reassembled_length,
+ {"Reassembled length", "iax2.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }}
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index 84d94346e8..55f22e759d 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -78,6 +78,7 @@ static int hf_icmpv6_type = -1;
static int hf_icmpv6_code = -1;
static int hf_icmpv6_checksum = -1;
static int hf_icmpv6_checksum_bad = -1;
+static int hf_icmpv6_nor = -1;
static int hf_icmpv6_haad_ha_addrs = -1;
static int hf_icmpv6_ra_cur_hop_limit = -1;
static int hf_icmpv6_ra_router_lifetime = -1;
@@ -1829,7 +1830,7 @@ dissect_icmpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint16 nbRecords;
nbRecords = tvb_get_ntohs( tvb, offset+4+2 );
- proto_tree_add_text( icmp6_tree, tvb, offset+4+2, 2, "Number of records: %u", nbRecords );
+ proto_tree_add_item( icmp6_tree, hf_icmpv6_nor, tvb, offset+4+2, 2, FALSE );
dissect_mldrv2( tvb, offset+4+2+2, nbRecords, icmp6_tree );
break;
}
@@ -2190,6 +2191,9 @@ proto_register_icmpv6(void)
{ &hf_icmpv6_checksum_bad,
{ "Bad Checksum", "icmpv6.checksum_bad", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
+ { &hf_icmpv6_nor,
+ { "Number of records", "icmpv6.nor", FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
{ &hf_icmpv6_haad_ha_addrs,
{ "Home Agent Addresses", "icmpv6.haad.ha_addrs", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index b7cb8a2a88..3041634d7e 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -881,7 +881,7 @@ static int hf_fragment_multiple_tails = -1;
static int hf_fragment_too_long_fragment = -1;
static int hf_fragment_error = -1;
static int hf_reassembled_in = -1;
-
+static int hf_reassembled_length = -1;
static int proto_wlan_mgt = -1;
@@ -1650,6 +1650,7 @@ static const fragment_items frag_items = {
&hf_fragment_too_long_fragment,
&hf_fragment_error,
&hf_reassembled_in,
+ &hf_reassembled_length,
"fragments"
};
@@ -9272,6 +9273,10 @@ proto_register_ieee80211 (void)
{"Reassembled 802.11 in frame", "wlan.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This 802.11 packet is reassembled in this frame", HFILL }},
+ {&hf_reassembled_length,
+ {"Reassembled 802.11 length", "wlan.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
{&hf_wep_iv,
{"Initialization Vector", "wlan.wep.iv", FT_UINT24, BASE_HEX, NULL, 0,
NULL, HFILL }},
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index a6d060c8ab..85061a509a 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -127,6 +127,7 @@ static int hf_ip_fragment_multiple_tails = -1;
static int hf_ip_fragment_too_long_fragment = -1;
static int hf_ip_fragment_error = -1;
static int hf_ip_reassembled_in = -1;
+static int hf_ip_reassembled_length = -1;
#ifdef HAVE_GEOIP
static int hf_geoip_country = -1;
@@ -180,6 +181,7 @@ static const fragment_items ip_frag_items = {
&hf_ip_fragment_too_long_fragment,
&hf_ip_fragment_error,
&hf_ip_reassembled_in,
+ &hf_ip_reassembled_length,
"IP fragments"
};
@@ -1945,7 +1947,11 @@ proto_register_ip(void)
{ &hf_ip_reassembled_in,
{ "Reassembled IP in frame", "ip.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
- "This IP packet is reassembled in this frame", HFILL }}
+ "This IP packet is reassembled in this frame", HFILL }},
+
+ { &hf_ip_reassembled_length,
+ { "Reassembled IP length", "ip.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }}
};
static gint *ett[] = {
&ett_ip,
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index ae53398f54..5815b55d81 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -129,6 +129,7 @@ static int hf_ipv6_fragment_multiple_tails = -1;
static int hf_ipv6_fragment_too_long_fragment = -1;
static int hf_ipv6_fragment_error = -1;
static int hf_ipv6_reassembled_in = -1;
+static int hf_ipv6_reassembled_length = -1;
static int hf_ipv6_mipv6_type = -1;
static int hf_ipv6_mipv6_length = -1;
@@ -200,6 +201,7 @@ static const fragment_items ipv6_frag_items = {
&hf_ipv6_fragment_too_long_fragment,
&hf_ipv6_fragment_error,
&hf_ipv6_reassembled_in,
+ &hf_ipv6_reassembled_length,
"fragments"
};
@@ -1766,6 +1768,11 @@ proto_register_ipv6(void)
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This IPv6 packet is reassembled in this frame", HFILL }},
+ { &hf_ipv6_reassembled_length,
+ { "Reassembled IPv6 length", "ipv6.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
/* Mobile IPv6 */
{ &hf_ipv6_mipv6_type,
{ "Option Type", "ipv6.mipv6_type",
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index 81745dee55..aa84d88bb8 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -108,6 +108,7 @@ static int hf_isakmp_fragment_multiple_tails = -1;
static int hf_isakmp_fragment_too_long_fragment = -1;
static int hf_isakmp_fragment_error = -1;
static int hf_isakmp_reassembled_in = -1;
+static int hf_isakmp_reassembled_length = -1;
static int hf_isakmp_cisco_frag_packetid = -1;
static int hf_isakmp_cisco_frag_seq = -1;
@@ -143,6 +144,8 @@ static const fragment_items isakmp_frag_items = {
&hf_isakmp_fragment_error,
/* Reassembled in field */
&hf_isakmp_reassembled_in,
+ /* Reassembled length field */
+ &hf_isakmp_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -3894,6 +3897,9 @@ proto_register_isakmp(void)
{ &hf_isakmp_reassembled_in,
{"Reassembled in", "msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ { &hf_isakmp_reassembled_length,
+ {"Reassembled length", "msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
{ &hf_isakmp_certificate_authority,
{ "Certificate Authority Distinguished Name", "ike.cert_authority_dn", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }
},
diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c
index 74bec78a02..f95355fea5 100644
--- a/epan/dissectors/packet-isup.c
+++ b/epan/dissectors/packet-isup.c
@@ -1729,6 +1729,7 @@ static int hf_isup_apm_msg_fragment_multiple_tails = -1;
static int hf_isup_apm_msg_fragment_too_long_fragment = -1;
static int hf_isup_apm_msg_fragment_error = -1;
static int hf_isup_apm_msg_reassembled_in = -1;
+static int hf_isup_apm_msg_reassembled_length = -1;
/* Initialize the subtree pointers */
static gint ett_isup = -1;
@@ -1767,6 +1768,8 @@ static const fragment_items isup_apm_msg_frag_items = {
&hf_isup_apm_msg_fragment_error,
/* Reassembled in field */
&hf_isup_apm_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_isup_apm_msg_reassembled_length,
/* Tag */
"ISUP APM Message fragments"
};
@@ -8183,6 +8186,10 @@ proto_register_isup(void)
{"Reassembled in", "isup_apm.msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ {&hf_isup_apm_msg_reassembled_length,
+ {"Reassembled length", "isup_apm.msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }
+ },
{&hf_isup_cvr_rsp_ind,
{"CVR Response Ind", "conn_rsp_ind",
FT_UINT8, BASE_DEC, VALS(isup_cvr_rsp_ind_value), BA_8BIT_MASK,
diff --git a/epan/dissectors/packet-lapdm.c b/epan/dissectors/packet-lapdm.c
index cf05fdffbd..4fdf74a389 100644
--- a/epan/dissectors/packet-lapdm.c
+++ b/epan/dissectors/packet-lapdm.c
@@ -97,6 +97,7 @@ static int hf_lapdm_fragment_multiple_tails = -1;
static int hf_lapdm_fragment_too_long_fragment = -1;
static int hf_lapdm_fragment_error = -1;
static int hf_lapdm_reassembled_in = -1;
+static int hf_lapdm_reassembled_length = -1;
static gint ett_lapdm = -1;
static gint ett_lapdm_address = -1;
@@ -195,6 +196,8 @@ static const fragment_items lapdm_frag_items = {
&hf_lapdm_fragment_error,
/* Reassembled in field */
&hf_lapdm_reassembled_in,
+ /* Reassembled length field */
+ &hf_lapdm_reassembled_length,
/* Tag */
"fragments"
};
@@ -447,7 +450,11 @@ proto_register_lapdm(void)
{ &hf_lapdm_reassembled_in,
{ "Reassembled in", "lapdm.reassembled.in", FT_FRAMENUM, BASE_NONE,
- NULL, 0x00, "LAPDm Message has been reassembled in this packet.", HFILL }}
+ NULL, 0x00, "LAPDm Message has been reassembled in this packet.", HFILL }},
+
+ { &hf_lapdm_reassembled_length,
+ { "Reassembled length", "lapdm.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL }}
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index f654863fbe..503da1b66f 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -212,6 +212,7 @@ static int hf_depi_msg_fragment_multiple_tails = -1;
static int hf_depi_msg_fragment_too_long_fragment = -1;
static int hf_depi_msg_fragment_error = -1;
static int hf_depi_msg_reassembled_in = -1;
+static int hf_depi_msg_reassembled_length = -1;
static const fragment_items depi_msg_frag_items = {
/* Fragment subtrees */
@@ -227,6 +228,8 @@ static const fragment_items depi_msg_frag_items = {
&hf_depi_msg_fragment_error,
/* Reassembled in field */
&hf_depi_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_depi_msg_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -1318,6 +1321,10 @@ proto_register_mp2t(void)
{ &hf_depi_msg_reassembled_in, {
"Reassembled in", "mp2t.depi_msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL
+ } },
+ { &hf_depi_msg_reassembled_length, {
+ "Reassembled length", "mp2t.depi_msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL
} }
};
diff --git a/epan/dissectors/packet-ncp2222.inc b/epan/dissectors/packet-ncp2222.inc
index 9dd856d024..959dbe56fb 100644
--- a/epan/dissectors/packet-ncp2222.inc
+++ b/epan/dissectors/packet-ncp2222.inc
@@ -76,6 +76,7 @@ const fragment_items nds_frag_items = {
&hf_nds_segment_too_long_segment,
&hf_nds_segment_error,
NULL,
+ &hf_nds_reassembled_length,
"segments"
};
diff --git a/epan/dissectors/packet-ndmp.c b/epan/dissectors/packet-ndmp.c
index a6151d284b..b85941b669 100644
--- a/epan/dissectors/packet-ndmp.c
+++ b/epan/dissectors/packet-ndmp.c
@@ -240,6 +240,7 @@ static int hf_ndmp_fragment_multiple_tails = -1;
static int hf_ndmp_fragment_too_long_fragment = -1;
static int hf_ndmp_fragment_error = -1;
static int hf_ndmp_reassembled_in = -1;
+static int hf_ndmp_reassembled_length = -1;
static gint ett_ndmp = -1;
static gint ett_ndmp_fraghdr = -1;
@@ -276,6 +277,8 @@ static const fragment_items ndmp_frag_items = {
&hf_ndmp_fragment_error,
/* Reassembled in field */
&hf_ndmp_reassembled_in,
+ /* Reassembled length field */
+ &hf_ndmp_reassembled_length,
/* Tag */
"NDMP fragments"
};
@@ -4270,6 +4273,9 @@ proto_register_ndmp(void)
{&hf_ndmp_reassembled_in,
{"Reassembled in", "ndmp.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_ndmp_reassembled_length,
+ {"Reassembled length", "ndmp.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-ndps.c b/epan/dissectors/packet-ndps.c
index 0c113d9186..1dc70327ec 100644
--- a/epan/dissectors/packet-ndps.c
+++ b/epan/dissectors/packet-ndps.c
@@ -70,6 +70,7 @@ static int hf_ndps_segment_overlap_conflict = -1;
static int hf_ndps_segment_multiple_tails = -1;
static int hf_ndps_segment_too_long_segment = -1;
static int hf_ndps_segment_error = -1;
+static int hf_ndps_reassembled_length = -1;
static gint ett_ndps_segments = -1;
static gint ett_ndps_segment = -1;
@@ -4034,6 +4035,7 @@ static const fragment_items ndps_frag_items = {
&hf_ndps_segment_too_long_segment,
&hf_ndps_segment_error,
NULL,
+ &hf_ndps_reassembled_length,
"segments"
};
@@ -9359,6 +9361,10 @@ proto_register_ndps(void)
{"Desegmentation error", "ndps.segment.error", FT_FRAMENUM, BASE_NONE,
NULL, 0x0, "Desegmentation error due to illegal segments", HFILL }},
+ { &hf_ndps_reassembled_length,
+ {"Reassembled length", "ndps.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x0, "The total length of the reassembled payload", HFILL }},
+
{ &hf_ndps_segment,
{ "NDPS Fragment", "ndps.fragment", FT_FRAMENUM, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-netbios.c b/epan/dissectors/packet-netbios.c
index d4c74a703b..f7edfe6a7a 100644
--- a/epan/dissectors/packet-netbios.c
+++ b/epan/dissectors/packet-netbios.c
@@ -113,6 +113,7 @@ static int hf_netb_fragment_overlap_conflict = -1;
static int hf_netb_fragment_multiple_tails = -1;
static int hf_netb_fragment_too_long_fragment = -1;
static int hf_netb_fragment_error = -1;
+static int hf_netb_reassembled_length = -1;
static gint ett_netb = -1;
static gint ett_netb_name = -1;
@@ -132,6 +133,7 @@ static const fragment_items netbios_frag_items = {
&hf_netb_fragment_too_long_fragment,
&hf_netb_fragment_error,
NULL,
+ &hf_netb_reassembled_length,
"fragments"
};
@@ -1396,6 +1398,10 @@ void proto_register_netbios(void)
{ &hf_netb_fragments,
{ "NetBIOS Fragments", "netbios.fragments", FT_NONE, BASE_NONE,
NULL, 0x0, NULL, HFILL }},
+
+ { &hf_netb_reassembled_length,
+ {"Reassembled length", "netbios.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x0, "The total length of the reassembled payload", HFILL }},
};
module_t *netbios_module;
diff --git a/epan/dissectors/packet-ositp.c b/epan/dissectors/packet-ositp.c
index 4b337d202c..d14643612b 100644
--- a/epan/dissectors/packet-ositp.c
+++ b/epan/dissectors/packet-ositp.c
@@ -77,6 +77,7 @@ static int hf_cotp_segment_multiple_tails = -1;
static int hf_cotp_segment_too_long_segment = -1;
static int hf_cotp_segment_error = -1;
static int hf_cotp_reassembled_in = -1;
+static int hf_cotp_reassembled_length = -1;
static const true_false_string fragment_descriptions = {
"Yes",
@@ -100,6 +101,7 @@ static const fragment_items cotp_frag_items = {
&hf_cotp_segment_too_long_segment,
&hf_cotp_segment_error,
&hf_cotp_reassembled_in,
+ &hf_cotp_reassembled_length,
"segments"
};
@@ -1799,6 +1801,9 @@ void proto_register_cotp(void)
{ &hf_cotp_reassembled_in,
{ "Reassembled COTP in frame", "cotp.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This COTP packet is reassembled in this frame", HFILL }},
+ { &hf_cotp_reassembled_length,
+ { "Reassembled COTP length", "cotp.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
/* ISO DP 8073 i13.3.4(a) Source and destination TSAPs are defined as
identifiers of unspecified type and length.
Some implementations of COTP use printable strings, others use raw bytes.
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index d6e6cce6aa..1fb1f440cf 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -125,6 +125,7 @@ static int hf_msg_fragment_multiple_tails = -1;
static int hf_msg_fragment_too_long_fragment = -1;
static int hf_msg_fragment_error = -1;
static int hf_msg_reassembled_in = -1;
+static int hf_msg_reassembled_length = -1;
static int hf_analysis_ack_time = -1;
static int hf_analysis_trans_time = -1;
@@ -219,6 +220,8 @@ static const fragment_items p_mul_frag_items = {
&hf_msg_fragment_error,
/* Reassembled in field */
&hf_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_msg_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -1485,6 +1488,9 @@ void proto_register_p_mul (void)
{ &hf_msg_reassembled_in,
{ "Reassembled in", "p_mul.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, NULL, HFILL } },
+ { &hf_msg_reassembled_length,
+ { "Reassembled length", "p_mul.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, NULL, HFILL } },
/*
** Ack matching / Resend
diff --git a/epan/dissectors/packet-pop.c b/epan/dissectors/packet-pop.c
index 18f1c9a848..117eeafe6e 100644
--- a/epan/dissectors/packet-pop.c
+++ b/epan/dissectors/packet-pop.c
@@ -61,6 +61,7 @@ static int hf_pop_data_fragment_multiple_tails = -1;
static int hf_pop_data_fragment_too_long_fragment = -1;
static int hf_pop_data_fragment_error = -1;
static int hf_pop_data_reassembled_in = -1;
+static int hf_pop_data_reassembled_length = -1;
static gint ett_pop = -1;
static gint ett_pop_reqresp = -1;
@@ -94,6 +95,8 @@ static const fragment_items pop_data_frag_items = {
&hf_pop_data_fragment_error,
/* Reassembled in field */
&hf_pop_data_reassembled_in,
+ /* Reassembled length field */
+ &hf_pop_data_reassembled_length,
/* Tag */
"DATA fragments"
};
@@ -420,6 +423,9 @@ proto_register_pop(void)
{ &hf_pop_data_reassembled_in,
{ "Reassembled DATA in frame", "pop.data.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "This DATA fragment is reassembled in this frame", HFILL } },
+ { &hf_pop_data_reassembled_length,
+ { "Reassembled DATA length", "pop.data.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL } },
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index 74e9818576..752d35c389 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -117,6 +117,7 @@ static int hf_q931_segment_multiple_tails = -1;
static int hf_q931_segment_too_long_segment = -1;
static int hf_q931_segment_error = -1;
static int hf_q931_reassembled_in = -1;
+static int hf_q931_reassembled_length = -1;
static gint ett_q931 = -1;
static gint ett_q931_ie = -1;
@@ -136,6 +137,7 @@ static const fragment_items q931_frag_items = {
&hf_q931_segment_too_long_segment,
&hf_q931_segment_error,
&hf_q931_reassembled_in,
+ &hf_q931_reassembled_length,
"segments"
};
@@ -3493,6 +3495,10 @@ proto_register_q931(void)
{ &hf_q931_reassembled_in,
{ "Reassembled Q.931 in frame", "q931.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This Q.931 message is reassembled in this frame", HFILL}},
+
+ { &hf_q931_reassembled_length,
+ { "Reassembled Q.931 length", "q931.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL}},
};
static gint *ett[] = {
&ett_q931,
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index e16309cf98..9a64dc591a 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -235,6 +235,7 @@ static int hf_rpc_fragment_overlap_conflict = -1;
static int hf_rpc_fragment_multiple_tails = -1;
static int hf_rpc_fragment_too_long_fragment = -1;
static int hf_rpc_fragment_error = -1;
+static int hf_rpc_reassembled_length = -1;
static gint ett_rpc = -1;
static gint ett_rpc_unknown_program = -1;
@@ -268,6 +269,7 @@ static const fragment_items rpc_frag_items = {
&hf_rpc_fragment_too_long_fragment,
&hf_rpc_fragment_error,
NULL,
+ &hf_rpc_reassembled_length,
"fragments"
};
@@ -3744,6 +3746,10 @@ proto_register_rpc(void)
{ &hf_rpc_fragments,
{ "RPC Fragments", "rpc.fragments", FT_NONE, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
+
+ { &hf_rpc_reassembled_length,
+ { "Reassembled length", "rpc.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
};
static gint *ett[] = {
&ett_rpc,
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index ca7225ae15..173ea41e1c 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -114,6 +114,7 @@ static int hf_rtp_fragment_multiple_tails = -1;
static int hf_rtp_fragment_too_long_fragment = -1;
static int hf_rtp_fragment_error = -1;
static int hf_rtp_reassembled_in = -1;
+static int hf_rtp_reassembled_length = -1;
static gint ett_rtp_fragment = -1;
static gint ett_rtp_fragments = -1;
@@ -129,6 +130,7 @@ static const fragment_items rtp_fragment_items = {
&hf_rtp_fragment_too_long_fragment,
&hf_rtp_fragment_error,
&hf_rtp_reassembled_in,
+ &hf_rtp_reassembled_length,
"RTP fragments"
};
@@ -1920,6 +1922,11 @@ proto_register_rtp(void)
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This RTP packet is reassembled in this frame", HFILL }
},
+ {&hf_rtp_reassembled_length,
+ {"Reassembled RTP length", "rtp.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }
+ },
{&hf_srtp_encrypted_payload,
{"SRTP Encrypted Payload", "srtp.enc_payload",
FT_BYTES, BASE_NONE, NULL, 0x0,
diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c
index 06ff20bfe2..1f7c10b68a 100644
--- a/epan/dissectors/packet-rtse.c
+++ b/epan/dissectors/packet-rtse.c
@@ -133,6 +133,7 @@ static int hf_rtse_fragment_multiple_tails = -1;
static int hf_rtse_fragment_too_long_fragment = -1;
static int hf_rtse_fragment_error = -1;
static int hf_rtse_reassembled_in = -1;
+static int hf_rtse_reassembled_length = -1;
static gint ett_rtse_fragment = -1;
static gint ett_rtse_fragments = -1;
@@ -151,6 +152,8 @@ static const fragment_items rtse_frag_items = {
&hf_rtse_fragment_error,
/* Reassembled in field */
&hf_rtse_reassembled_in,
+ /* Reassembled length field */
+ &hf_rtse_reassembled_length,
/* Tag */
"RTSE fragments"
};
@@ -688,7 +691,7 @@ dissect_rtse_RTSE_apdus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
/*--- End of included file: packet-rtse-fn.c ---*/
-#line 182 "packet-rtse-template.c"
+#line 185 "packet-rtse-template.c"
/*
* Dissect RTSE PDUs inside a PPDU.
@@ -851,6 +854,9 @@ void proto_register_rtse(void) {
{ &hf_rtse_reassembled_in,
{ "Reassembled RTSE in frame", "rtse.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "This RTSE packet is reassembled in this frame", HFILL } },
+ { &hf_rtse_reassembled_length,
+ { "Reassembled RTSE length", "rtse.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL } },
/*--- Included file: packet-rtse-hfarr.c ---*/
@@ -953,7 +959,7 @@ void proto_register_rtse(void) {
"rtse.T_octetString", HFILL }},
/*--- End of included file: packet-rtse-hfarr.c ---*/
-#line 346 "packet-rtse-template.c"
+#line 352 "packet-rtse-template.c"
};
/* List of subtrees */
@@ -975,7 +981,7 @@ void proto_register_rtse(void) {
&ett_rtse_CallingSSuserReference,
/*--- End of included file: packet-rtse-ettarr.c ---*/
-#line 355 "packet-rtse-template.c"
+#line 361 "packet-rtse-template.c"
};
module_t *rtse_module;
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index 7f99dabe90..ebf23bd39b 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -672,6 +672,7 @@ static int hf_sccp_xudt_msg_fragment_multiple_tails = -1;
static int hf_sccp_xudt_msg_fragment_too_long_fragment = -1;
static int hf_sccp_xudt_msg_fragment_error = -1;
static int hf_sccp_xudt_msg_reassembled_in = -1;
+static int hf_sccp_xudt_msg_reassembled_length = -1;
static int hf_sccp_assoc_msg = -1;
static int hf_sccp_assoc_id = -1;
@@ -715,6 +716,8 @@ static const fragment_items sccp_xudt_msg_frag_items = {
&hf_sccp_xudt_msg_fragment_error,
/* Reassembled in field */
&hf_sccp_xudt_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_sccp_xudt_msg_reassembled_length,
/* Tag */
"SCCP XUDT Message fragments"
};
@@ -3282,6 +3285,10 @@ proto_register_sccp(void)
{"Reassembled in", "sccp.msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ {&hf_sccp_xudt_msg_reassembled_length,
+ {"Reassembled length", "sccp.msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }
+ },
{ &hf_sccp_assoc_id,
{ "Association ID", "sccp.assoc.id",
FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
diff --git a/epan/dissectors/packet-scsi.c b/epan/dissectors/packet-scsi.c
index 7be14ad47f..06137113df 100644
--- a/epan/dissectors/packet-scsi.c
+++ b/epan/dissectors/packet-scsi.c
@@ -205,6 +205,7 @@ static int hf_scsi_fragment_multiple_tails = -1;
static int hf_scsi_fragment_too_long_fragment = -1;
static int hf_scsi_fragment_error = -1;
static int hf_scsi_reassembled_in = -1;
+static int hf_scsi_reassembled_length = -1;
static int hf_scsi_log_ppc_flags = -1;
static int hf_scsi_log_pc_flags = -1;
static int hf_scsi_log_ppc = -1;
@@ -317,6 +318,7 @@ static const fragment_items scsi_frag_items = {
&hf_scsi_fragment_too_long_fragment,
&hf_scsi_fragment_error,
&hf_scsi_reassembled_in,
+ &hf_scsi_reassembled_length,
"fragments"
};
@@ -5311,6 +5313,9 @@ proto_register_scsi (void)
{ &hf_scsi_reassembled_in,
{ "Reassembled SCSI DATA in frame", "scsi.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This SCSI DATA packet is reassembled in this frame", HFILL }},
+ { &hf_scsi_reassembled_length,
+ { "Reassembled SCSI DATA length", "scsi.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
{ &hf_scsi_log_ppc_flags,
{"PPC Flags", "scsi.log.ppc.flags", FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL}},
diff --git a/epan/dissectors/packet-smb-pipe.c b/epan/dissectors/packet-smb-pipe.c
index 88ed447bd6..1db6c3adb8 100644
--- a/epan/dissectors/packet-smb-pipe.c
+++ b/epan/dissectors/packet-smb-pipe.c
@@ -72,6 +72,7 @@ static int hf_pipe_fragment_multiple_tails = -1;
static int hf_pipe_fragment_too_long_fragment = -1;
static int hf_pipe_fragment_error = -1;
static int hf_pipe_reassembled_in = -1;
+static int hf_pipe_reassembled_length = -1;
static gint ett_smb_pipe = -1;
static gint ett_smb_pipe_fragment = -1;
@@ -88,6 +89,7 @@ static const fragment_items smb_pipe_frag_items = {
&hf_pipe_fragment_too_long_fragment,
&hf_pipe_fragment_error,
NULL,
+ &hf_pipe_reassembled_length,
"fragments"
};
@@ -3918,6 +3920,9 @@ proto_register_smb_pipe(void)
{ &hf_pipe_reassembled_in,
{ "This PDU is reassembled in", "pipe.reassembled_in", FT_FRAMENUM,
BASE_NONE, NULL, 0x0, "The DCE/RPC PDU is completely reassembled in this frame", HFILL }},
+ { &hf_pipe_reassembled_length,
+ { "Reassembled length", "pipe.reassembled_length", FT_UINT32,
+ BASE_DEC, NULL, 0x0, "The total length of the reassembled payload", HFILL }},
};
static gint *ett[] = {
&ett_smb_pipe,
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index e1a78aa55f..f672c02c79 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -642,6 +642,7 @@ static int hf_smb_segment_overlap_conflict = -1;
static int hf_smb_segment_multiple_tails = -1;
static int hf_smb_segment_too_long_fragment = -1;
static int hf_smb_segment_error = -1;
+static int hf_smb_reassembled_length = -1;
static int hf_smb_pipe_write_len = -1;
static int hf_smb_unix_major_version = -1;
static int hf_smb_unix_minor_version = -1;
@@ -782,7 +783,7 @@ static const fragment_items smb_frag_items = {
&hf_smb_segment_too_long_fragment,
&hf_smb_segment_error,
NULL,
-
+ &hf_smb_reassembled_length,
"segments"
};
@@ -19267,6 +19268,10 @@ proto_register_smb(void)
{ "Defragmentation error", "smb.segment.error", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"Defragmentation error due to illegal fragments", HFILL }},
+ { &hf_smb_reassembled_length,
+ { "Reassembled length", "smb.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
{ &hf_smb_opened_in,
{ "Opened in", "smb.fid.opened_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"The frame this fid was opened", HFILL }},
diff --git a/epan/dissectors/packet-smtp.c b/epan/dissectors/packet-smtp.c
index 5fec35fd68..14fb509363 100644
--- a/epan/dissectors/packet-smtp.c
+++ b/epan/dissectors/packet-smtp.c
@@ -67,6 +67,7 @@ static int hf_smtp_data_fragment_multiple_tails = -1;
static int hf_smtp_data_fragment_too_long_fragment = -1;
static int hf_smtp_data_fragment_error = -1;
static int hf_smtp_data_reassembled_in = -1;
+static int hf_smtp_data_reassembled_length = -1;
static int ett_smtp = -1;
static int ett_smtp_cmdresp = -1;
@@ -95,6 +96,8 @@ static const fragment_items smtp_data_frag_items = {
&hf_smtp_data_fragment_error,
/* Reassembled in field */
&hf_smtp_data_reassembled_in,
+ /* Reassembled length field */
+ &hf_smtp_data_reassembled_length,
/* Tag */
"DATA fragments"
};
@@ -904,6 +907,9 @@ proto_register_smtp(void)
{ &hf_smtp_data_reassembled_in,
{ "Reassembled DATA in frame", "smtp.data.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "This DATA fragment is reassembled in this frame", HFILL } },
+ { &hf_smtp_data_reassembled_length,
+ { "Reassembled DATA length", "smtp.data.reassembled.length", FT_UINT32, BASE_DEC,
+ NULL, 0x00, "The total length of the reassembled payload", HFILL } },
};
static gint *ett[] = {
&ett_smtp,
diff --git a/epan/dissectors/packet-sndcp.c b/epan/dissectors/packet-sndcp.c
index 2f8f008816..bca8d247a4 100644
--- a/epan/dissectors/packet-sndcp.c
+++ b/epan/dissectors/packet-sndcp.c
@@ -68,6 +68,7 @@ static int hf_npdu_fragment_multiple_tails = -1;
static int hf_npdu_fragment_too_long_fragment = -1;
static int hf_npdu_fragment_error = -1;
static int hf_npdu_reassembled_in = -1;
+static int hf_npdu_reassembled_length = -1;
/* Initialize the subtree pointers
*/
@@ -91,6 +92,7 @@ static const fragment_items npdu_frag_items = {
&hf_npdu_fragment_too_long_fragment,
&hf_npdu_fragment_error,
&hf_npdu_reassembled_in,
+ &hf_npdu_reassembled_length,
"fragments"
};
@@ -516,6 +518,13 @@ proto_register_sndcp(void)
"N-PDU fragments are reassembled in the given packet", HFILL
}
},
+ { &hf_npdu_reassembled_length,
+ { "Reassembled length",
+ "npdu.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL
+ }
+ },
{ &hf_npdu_fragment,
{ "N-PDU Fragment",
"npdu.fragment",
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index 0044984ec5..f66756be8e 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -220,6 +220,7 @@ static gint hf_pct_handshake_exch = -1;
static gint hf_pct_handshake_sig = -1;
static gint hf_pct_msg_error_type = -1;
static int hf_ssl_reassembled_in = -1;
+static int hf_ssl_reassembled_length = -1;
static int hf_ssl_segments = -1;
static int hf_ssl_segment = -1;
static int hf_ssl_segment_overlap = -1;
@@ -264,6 +265,7 @@ static const fragment_items ssl_segment_items = {
&hf_ssl_segment_too_long_fragment,
&hf_ssl_segment_error,
&hf_ssl_reassembled_in,
+ &hf_ssl_reassembled_length,
"Segments"
};
@@ -4391,6 +4393,10 @@ proto_register_ssl(void)
{ &hf_ssl_reassembled_in,
{ "Reassembled PDU in frame", "ssl.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"The PDU that doesn't end in this segment is reassembled in this frame", HFILL }},
+
+ { &hf_ssl_reassembled_length,
+ { "Reassembled PDU length", "ssl.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
};
/* Setup protocol subtree array */
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index b0845f9d96..d1722f0ac2 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -168,6 +168,7 @@ static int hf_t38_fragment_multiple_tails = -1;
static int hf_t38_fragment_too_long_fragment = -1;
static int hf_t38_fragment_error = -1;
static int hf_t38_reassembled_in = -1;
+static int hf_t38_reassembled_length = -1;
static gint ett_t38 = -1;
@@ -184,7 +185,7 @@ static gint ett_t38_T_fec_info = -1;
static gint ett_t38_T_fec_data = -1;
/*--- End of included file: packet-t38-ett.c ---*/
-#line 143 "packet-t38-template.c"
+#line 144 "packet-t38-template.c"
static gint ett_t38_setup = -1;
static gint ett_data_fragment = -1;
@@ -210,6 +211,8 @@ static const fragment_items data_frag_items = {
&hf_t38_fragment_error,
/* Reassembled in field */
&hf_t38_reassembled_in,
+ /* Reassembled length field */
+ &hf_t38_reassembled_length,
/* Tag */
"Data fragments"
};
@@ -965,7 +968,7 @@ static int dissect_UDPTLPacket_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
/*--- End of included file: packet-t38-fn.c ---*/
-#line 391 "packet-t38-template.c"
+#line 394 "packet-t38-template.c"
/* initialize the tap t38_info and the conversation */
static void
@@ -1320,7 +1323,7 @@ proto_register_t38(void)
"t38.OCTET_STRING", HFILL }},
/*--- End of included file: packet-t38-hfarr.c ---*/
-#line 669 "packet-t38-template.c"
+#line 672 "packet-t38-template.c"
{ &hf_t38_setup,
{ "Stream setup", "t38.setup", FT_STRING, BASE_NONE,
NULL, 0x0, "Stream setup, method and frame number", HFILL }},
@@ -1356,6 +1359,9 @@ proto_register_t38(void)
{&hf_t38_reassembled_in,
{"Reassembled in", "t38.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } },
+ {&hf_t38_reassembled_length,
+ {"Reassembled length", "t38.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
};
static gint *ett[] =
@@ -1375,7 +1381,7 @@ proto_register_t38(void)
&ett_t38_T_fec_data,
/*--- End of included file: packet-t38-ettarr.c ---*/
-#line 710 "packet-t38-template.c"
+#line 716 "packet-t38-template.c"
&ett_t38_setup,
&ett_data_fragment,
&ett_data_fragments
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index 0b5b7392ac..9d666c2690 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -117,6 +117,7 @@ static int hf_tcp_pdu_time = -1;
static int hf_tcp_pdu_size = -1;
static int hf_tcp_pdu_last_frame = -1;
static int hf_tcp_reassembled_in = -1;
+static int hf_tcp_reassembled_length = -1;
static int hf_tcp_segments = -1;
static int hf_tcp_segment = -1;
static int hf_tcp_segment_overlap = -1;
@@ -197,6 +198,7 @@ static const fragment_items tcp_segment_items = {
&hf_tcp_segment_too_long_fragment,
&hf_tcp_segment_error,
&hf_tcp_reassembled_in,
+ &hf_tcp_reassembled_length,
"Segments"
};
@@ -3824,6 +3826,10 @@ proto_register_tcp(void)
{ "Reassembled PDU in frame", "tcp.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"The PDU that doesn't end in this segment is reassembled in this frame", HFILL }},
+ { &hf_tcp_reassembled_length,
+ { "Reassembled length", "tcp.reassembled_length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
{ &hf_tcp_options,
{ "TCP Options", "tcp.options", FT_BYTES,
BASE_NONE, NULL, 0x0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index 27339363b1..8fab2264c0 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -317,6 +317,7 @@ static int hf_tds_channel = -1;
static int hf_tds_packet_number = -1;
static int hf_tds_window = -1;
static int hf_tds_reassembled_in = -1;
+static int hf_tds_reassembled_length = -1;
static int hf_tds_fragments = -1;
static int hf_tds_fragment = -1;
static int hf_tds_fragment_overlap = -1;
@@ -362,6 +363,7 @@ static const fragment_items tds_frag_items = {
&hf_tds_fragment_too_long_fragment,
&hf_tds_fragment_error,
&hf_tds_reassembled_in,
+ &hf_tds_reassembled_length,
"fragments"
};
@@ -2052,6 +2054,11 @@ proto_register_tds(void)
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"This TDS packet is reassembled in this frame", HFILL }
},
+ { &hf_tds_reassembled_length,
+ { "Reassembled TDS length", "tds.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }
+ },
{ &hf_tds7_login_total_size,
{ "Total Packet Length", "tds7login.total_len",
FT_UINT32, BASE_DEC, NULL, 0x0,
diff --git a/epan/dissectors/packet-teamspeak2.c b/epan/dissectors/packet-teamspeak2.c
index 9978874bfd..2a68dd56dc 100644
--- a/epan/dissectors/packet-teamspeak2.c
+++ b/epan/dissectors/packet-teamspeak2.c
@@ -117,6 +117,7 @@ static int hf_msg_fragment_multiple_tails = -1;
static int hf_msg_fragment_too_long_fragment = -1;
static int hf_msg_fragment_error = -1;
static int hf_msg_reassembled_in = -1;
+static int hf_msg_reassembled_length = -1;
static gint ett_msg_fragment = -1;
static gint ett_msg_fragments = -1;
@@ -135,6 +136,8 @@ static const fragment_items msg_frag_items = {
&hf_msg_fragment_error,
/* Reassembled in field */
&hf_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_msg_reassembled_length,
/* Tag */
"Message fragments"
};
@@ -1119,6 +1122,12 @@ void proto_register_ts2(void)
FT_FRAMENUM, BASE_NONE,
NULL, 0x00,
NULL, HFILL }
+ },
+ { &hf_msg_reassembled_length,
+ {"Reassembled length", "ts2.reassembled.length",
+ FT_UINT32, BASE_DEC,
+ NULL, 0x00,
+ NULL, HFILL }
}
};
diff --git a/epan/dissectors/packet-tipc.c b/epan/dissectors/packet-tipc.c
index 1c877e1a99..8d4b5bafeb 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -63,6 +63,7 @@ static int hf_tipc_msg_fragment_multiple_tails = -1;
static int hf_tipc_msg_fragment_too_long_fragment = -1;
static int hf_tipc_msg_fragment_error = -1;
static int hf_tipc_msg_reassembled_in = -1;
+static int hf_tipc_msg_reassembled_length = -1;
static int hf_tipc_ver = -1;
static int hf_tipc_usr = -1;
@@ -216,6 +217,8 @@ static const fragment_items tipc_msg_frag_items = {
&hf_tipc_msg_fragment_error,
/* Reassembled in field */
&hf_tipc_msg_reassembled_in,
+ /* Reassembled length field */
+ &hf_tipc_msg_reassembled_length,
/* Tag */
"TIPC Message fragments"
};
@@ -2349,6 +2352,10 @@ proto_register_tipc(void)
{ "Reassembled in", "tipc.msg.reassembled.in",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ { &hf_tipc_msg_reassembled_length,
+ { "Reassembled length", "tipc.msg.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }
+ },
{ &hf_tipc_ver,
{ "Version", "tipc.ver",
FT_UINT32, BASE_DEC, NULL, 0xe0000000,
diff --git a/epan/dissectors/packet-wtp.c b/epan/dissectors/packet-wtp.c
index b32b00d2b7..ae05fc78a9 100644
--- a/epan/dissectors/packet-wtp.c
+++ b/epan/dissectors/packet-wtp.c
@@ -193,6 +193,7 @@ static int hf_wtp_fragment_multiple_tails = HF_EMPTY;
static int hf_wtp_fragment_too_long_fragment = HF_EMPTY;
static int hf_wtp_fragment_error = HF_EMPTY;
static int hf_wtp_reassembled_in = HF_EMPTY;
+static int hf_wtp_reassembled_length = HF_EMPTY;
/* Initialize the subtree pointers */
static gint ett_wtp = ETT_EMPTY;
@@ -213,6 +214,7 @@ static const fragment_items wtp_frag_items = {
&hf_wtp_fragment_too_long_fragment,
&hf_wtp_fragment_error,
&hf_wtp_reassembled_in,
+ &hf_wtp_reassembled_length,
"fragments"
};
@@ -1036,6 +1038,13 @@ proto_register_wtp(void)
"WTP fragments are reassembled in the given packet", HFILL
}
},
+ { &hf_wtp_reassembled_length,
+ { "Reassembled length",
+ "wtp.reassembled.length",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL
+ }
+ },
{ &hf_wtp_fragment,
{ "WTP Fragment",
"wtp.fragment",
diff --git a/epan/dissectors/packet-x25.c b/epan/dissectors/packet-x25.c
index fcb021ea3f..8c0a4c09ef 100644
--- a/epan/dissectors/packet-x25.c
+++ b/epan/dissectors/packet-x25.c
@@ -177,6 +177,7 @@ static gint hf_x25_segment_overlap_conflict = -1;
static gint hf_x25_segment_multiple_tails = -1;
static gint hf_x25_segment_too_long_segment = -1;
static gint hf_x25_segment_error = -1;
+static gint hf_x25_reassembled_length = -1;
static const value_string vals_modulo[] = {
{ 1, "8" },
@@ -221,6 +222,7 @@ static const fragment_items x25_frag_items = {
&hf_x25_segment_too_long_segment,
&hf_x25_segment_error,
NULL,
+ &hf_x25_reassembled_length,
"segments"
};
@@ -2636,6 +2638,10 @@ proto_register_x25(void)
{ "Defragmentation error", "x25.fragment.error", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"Defragmentation error due to illegal fragments", HFILL }},
+ { &hf_x25_reassembled_length,
+ { "Reassembled length", "x25.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
{ &hf_x25_segment,
{ "X.25 Fragment", "x25.fragment", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
"X25 Fragment", HFILL }},
diff --git a/epan/dissectors/packet-zbee-aps.c b/epan/dissectors/packet-zbee-aps.c
index 52c4b6796a..5c477f6119 100644
--- a/epan/dissectors/packet-zbee-aps.c
+++ b/epan/dissectors/packet-zbee-aps.c
@@ -127,6 +127,7 @@ static int hf_zbee_aps_fragment_multiple_tails = -1;
static int hf_zbee_aps_fragment_too_long_fragment = -1;
static int hf_zbee_aps_fragment_error = -1;
static int hf_zbee_aps_reassembled_in = -1;
+static int hf_zbee_aps_reassembled_length = -1;
static gint ett_zbee_aps_fragment = -1;
static gint ett_zbee_aps_fragments = -1;
@@ -159,6 +160,8 @@ static const fragment_items zbee_aps_frag_items = {
&hf_zbee_aps_fragment_error,
/* Reassembled in field */
&hf_zbee_aps_reassembled_in,
+ /* Reassembled length field */
+ &hf_zbee_aps_reassembled_length,
/* Tag */
"APS Message fragments"
};
@@ -1920,6 +1923,10 @@ void proto_register_zbee_aps(void)
{ &hf_zbee_aps_reassembled_in,
{ "Reassembled in", "zbee.aps.reassembled.in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_zbee_aps_reassembled_length,
+ { "Reassembled length", "zbee.aps.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }}
};
diff --git a/epan/reassemble.c b/epan/reassemble.c
index c50de5fceb..851c5c7572 100644
--- a/epan/reassemble.c
+++ b/epan/reassemble.c
@@ -2073,6 +2073,12 @@ show_fragment_tree(fragment_data *fd_head, const fragment_items *fit,
first_frag = FALSE;
}
+ if (fit->hf_reassembled_length) {
+ proto_item *fli = proto_tree_add_uint(ft, *(fit->hf_reassembled_length),
+ tvb, 0, 0, tvb_length (tvb));
+ PROTO_ITEM_SET_GENERATED(fli);
+ }
+
return show_fragment_errs_in_col(fd_head, fit, pinfo);
}
@@ -2113,6 +2119,12 @@ show_fragment_seq_tree(fragment_data *fd_head, const fragment_items *fit,
first_frag = FALSE;
}
+ if (fit->hf_reassembled_length) {
+ proto_item *fli = proto_tree_add_uint(ft, *(fit->hf_reassembled_length),
+ tvb, 0, 0, tvb_length (tvb));
+ PROTO_ITEM_SET_GENERATED(fli);
+ }
+
return show_fragment_errs_in_col(fd_head, fit, pinfo);
}
diff --git a/epan/reassemble.h b/epan/reassemble.h
index 884f782d66..60232c4b88 100644
--- a/epan/reassemble.h
+++ b/epan/reassemble.h
@@ -303,6 +303,7 @@ typedef struct _fragment_items {
int *hf_fragment_too_long_fragment;
int *hf_fragment_error;
int *hf_reassembled_in;
+ int *hf_reassembled_length;
const char *tag;
} fragment_items;