This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

Can anyone help me on Reassembly of PDU

0

alt text

Hi Iam developing custom dissector. I have almost Finished everything except this reassembly.

I could not understand realy. The basic Scenario is for reassembly is

create table fragment_add_seq_next and process process_reassembled_data .

But my reassembly not happening?? Can anyone tell me what i have left and why my code not showing reassembly?

static reassembly_table mine_reassembly_table;

static int hf_mine_fragments = -1;
static int hf_mine_fragment = -1;
static int hf_mine_fragment_overlap = -1;
static int hf_mine_fragment_overlap_conflicts = -1;
static int hf_mine_fragment_multiple_tails = -1;
static int hf_mine_fragment_too_long_fragment = -1;
static int hf_mine_fragment_error = -1;
static int hf_mine_fragment_count = -1;
static int hf_mine_reassembled_in = -1;
static int hf_mine_reassembled_length = -1;

static gint ett_mine_fragment = -1; static gint ett_mine_fragments = -1;

static const fragment_items mine_frag_items = { /* Fragment subtrees */ &ett_mine_fragment, &ett_mine_fragments, /* Fragment fields */ &hf_mine_fragments, &hf_mine_fragment, &hf_mine_fragment_overlap, &hf_mine_fragment_overlap_conflicts, &hf_mine_fragment_multiple_tails, &hf_mine_fragment_too_long_fragment, &hf_mine_fragment_error, &hf_mine_fragment_count, /* Reassembled in field */ &hf_mine_reassembled_in, /* Reassembled length field */ &hf_mine_reassembled_length, /* Reassembled data field */ NULL, /* Tag */ "mine fragments" };

static void mine_init_protocol(void) {

    /* fragment_table_init(&mine_fragment_table); */
    /* reassembled_table_init(&mine_reassembled_table); */
    reassembly_table_init(&mine_reassembly_table, &addresses_reassembly_table_functions);
}

save_fragmented = pinfo->fragmented;

pinfo->fragmented = TRUE;

mine_frag_msg = fragment_add_seq_next(&mine_reassembly_table,next_tvb, offset_payload, pinfo, mine_seqid, NULL, reassebled_data_total_length, more_frags);

mine_tvb = process_reassembled_data( next_tvb, offset_payload, pinfo, "Reassembled PDU", mine_frag_msg, &mine_frag_items, NULL, FT_BCnPDU_tree );

reassebled_data_total_length =0;

proto_tree_add_text(FT_BCnPDU_tree, mine_tvb, offset_payload, 1, " reassebled data ");

ALSIGPDU(mine_tvb, pinfo, tree);

asked 24 Nov ‘14, 01:13

umar's gravatar image

umar
26222427
accept rate: 0%

edited 24 Nov ‘14, 01:59