Yves Geissb�hler wrote:
I am working on a dissector for the MPA protocol (RFC 5044) which  
runs on top of TCP. In some configurations, this protocol inserts so  
called Markers (each 4 bytes long) every 512th octet relative to the  
TCP sequence number of the first MPA FPDU.
I would like to remove these Markers from the MPA payload before it  
is passed to the next dissector (DDP, RFC 5042). To assemble a Marker  
free MPA payload I have used the procedures of tvbuff.c:
- next_tvb = tvb_new_composite()
- tvb_composite_append(...)
- tvb_composite_append(next_tvb, tvb_new_subset(tvb, start, end, end- 
start))
- tvb_composite_finalize(next_tvb)
But the resulting new next_tvb buffer behaves weird in the next  
dissector and is not usable.
Form previous mailinglist posts, I know that there are some issues  
with these procedures. Are these problems still present or have I  
made any mistake using them?
They're not used much, so nobody's taken the time to fix them.
Except for using these 'composite' procedures or mem copy are there  
any other feasible solutions to get rid of unwanted parts in a payload?
It sounds as if MPA is similar to the record-marking scheme for ONC RPC 
atop TCP; that uses copying as part of the reassembly process (and 
you'll probably need to do the same kind of reassembly, etc.).
You might want to look at that part of packet-rpc.c, and handle MPA 
similarly.