Ethereal-dev: [Ethereal-dev] Reassembling a Splited TCP packet

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Gilles Galipeau <ggalipeau@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 24 Nov 2003 18:59:17 -0500
All,

I am currently implementing a dissector that decode the data in a TCP V4
message and I need some help on how to reassemble a packet splited over
multiple TCP packet.

I have tried to do it using the tcp_dissect_pdus function provided in tcp.h,
but I could not get it to work.
Here is the code before:

 <<packet-vn_Back_2003-11-13.c>> 
And here is the decoding added in order to reassemble a packet splited over
multiple TCP packet:
 <<packet-vn_Back_2003-11-24_Splitted_Packet_Recover.c>> 

Here is how the Versatel Networks packet are composed:
0                               32
|-------------------------------|
|Versatel Header|Protoco|Signal |
|-------------------------------|
|Payload Size           |SN (1) |
|-------------------------------|
|SN (2) | Payload...            |
|-------------------------------|

The header is fixed and composed of 9 bytes and the remaining is payload of
variable length.

Here is a catured file where you can find a packet that is splited over
multiple TCP packet:
 <<DupTrace_HubFailure_Recovery_Sample.dump>> 

Ethereal version: 0.9.11 

Am I missing something, should I do this another way?

Thanks
Gilles Galipeau

Attachment: packet-vn_Back_2003-11-13.c
Description: Binary data

Attachment: packet-vn_Back_2003-11-24_Splitted_Packet_Recover.c
Description: Binary data

Attachment: DupTrace_HubFailure_Recovery_Sample.dump
Description: Binary data