| 1 | initial version |
If I understand correctly, your custom log file does not have the TCP layer at all, and just has the PDUs from each frame. I presume that is from original packet data as you have partial PDUs, though I suppose PDUs could be split before sending to TCP. (That matters because without the TCP sequence number information, if this comes from actual packet data you can have reordered or missing frames.)
If so, there is no way to make tcp_dissect_pdus work. tcp_dissect_pdus is a function that puts various information into the packet_info struct that TCP uses to do reassembly. The TCP dissector does various work before calling the other protocol dissectors (including, as you noticed, setting pinfo->can_desegment if the TCP checksum is not known to be incorrect) and then does the reassembly afterwards.
If you need to dissect this protocol and reassemble it without ever calling the TCP dissector, you will need to implement reassembly in the dissector for your protocols. There are other protocols that do their own reassembly for various reasons and you can look at those. (Protocols on top of TCP prefer to have TCP do it because TCP has the sequence number that can be used to put frames in order if they are received out of order, and can be used to ignore retransmitted data.)