diff options
Diffstat (limited to 'epan')
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; |