Wireshark mailing list archives
Reassembly Fragment fail
From: Raj sekar <mrajsekar () gmail com>
Date: Tue, 17 Feb 2015 15:59:06 +0800
Hi, Hi , Iam developing a custom dissector on top of UDP which uses PDCP layer PDU RFC 2507 Selective Repeat ARQ Mechanism for segmentation and Reassembly. My message contains Beginning of Message continuation of message and end of message Messages are not coming in sequence and based on sequence number and message id i need to reassemble. I dont know whether i should use conversation or add_fragment_seq_next or add_fragment_seq_check Please suggest. I got stuck with this for long time. Why is my code below not working? The fragmentation itself not successful and thus reassembly not working. Please suggest! switch (stype) { case 0x00: // Continuation of Message msg_seqid = 2; rem_length = bctsdu_length; proto_tree_add_text(FT_BCnPDU_tree, next_tvb, offset_payload, rem_length, "PDU data : %d", rem_length); break; case 0x01: // Beginning of Message msg_seqid = 1; proto_tree_add_text(BCnPDU_bom_tree, next_tvb, offset_payload, 2, "PDU Length : 0x%02x (%d)", pdu_len, pdu_len); rem_length = tvb_length_remaining(next_tvb, offset_payload); rem_length -= 2; proto_tree_add_text(BCnPDU_bom_tree, next_tvb, offset_payload, rem_length, "PDU data : %d ", rem_length); break; case 0x02: // End of Message msg_seqid = 3; bctsdu_length += 2; more_frags = FALSE; rem_length = bctsdu_length; rem_length -= 2; proto_tree_add_text(FT_BCnPDU_tree, next_tvb, offset_payload, rem_length, "PDU data : %d", rem_length); disable_CRC = 1; break; case 0x04: // Single Segment Message ---- // doesn't need fragment/reassembly break; } if (msg_seqid == 1 || msg_seqid == 2 || msg_seqid == 3) { save_fragmented = pinfo->fragmented; pinfo->fragmented = TRUE; frag_msg = fragment_add_seq_check(&mns_reassembly_table, next_tvb, offset_payload, pinfo, mns_seqnum, NULL, mns_seqid, rem_length, more_frags); if (frag_msg) { col_append_fstr(pinfo->cinfo, COL_INFO, " mns segment of a FRAGMENT PDU"); } else { col_append_fstr(pinfo->cinfo, COL_INFO, " FRAGMENT NOT DONE "); } } if (more_frags == FALSE) { save_fragmented = pinfo->fragmented; pinfo->fragmented = FALSE; rass_tvb = process_reassembled_data(next_tvb, offset_payload, pinfo, "Reassembled Message", frag_msg, &mns_frag_items, NULL, FT_BCnPDU_tree); if (rass_tvb) { col_append_str(pinfo->cinfo, COL_INFO, "(Message reassembled ) "); ALSIGPDU(rass_tvb, pinfo, FT_BCnPDU_tree); } } I am always getting the FRAGMENT NOT DONE error. Thanks Raj
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Reassembly Fragment fail Raj sekar (Feb 16)
- Dissector plugin not working with wireshark 1.12.3 yannick omnes (Feb 17)
- Re: Dissector plugin not working with wireshark 1.12.3 Pascal Quantin (Feb 17)
- Re: Dissector plugin not working with wireshark 1.12.3 yannick omnes (Feb 17)
- Re: Dissector plugin not working with wireshark 1.12.3 Pascal Quantin (Feb 17)
- Re: Dissector plugin not working with wireshark 1.12.3 Bálint Réczey (Feb 17)
- Re: Dissector plugin not working with wireshark 1.12.3 Pascal Quantin (Feb 17)
- Dissector plugin not working with wireshark 1.12.3 yannick omnes (Feb 17)