Ethereal-dev: Re: [Ethereal-dev] [PATCH] T.38 over TPKT over TCP

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

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Mon, 26 Jan 2004 15:00:19 -0800

On Jan 24, 2004, at 1:37 AM, Martin Regner wrote:

I have made a patch to support both T.38IFP/TCP and T38IFP/TPKT/TCP.

I've checked in some changes atop that:

	rename "dissect_t38_tcp()" to "dissect_t38_tcp_pdu()" to make it
clearer what it does (dissect a single T.38-over-TCP or T.38-over-TPKT
PDU);

	have "dissect_t38_udp()" that does T.38-over-UDP dissection and
"dissect_t38_tcp()" that does T.38-over-TCP dissection; register handles
for them for the appropriate protocols, rather than having a single
dissector that checks the IP protocol type.

The T.38 dissector registers itself by name as "t38"; the dissector for that currently checks the IP protocol type. Does anything directly call the T.38 dissector, with a handle obtained from

	find_dissector("t38")

If not, the dissector that checks the IP protocol type can be removed.

There is also a new preference setting regarding TCP desegmentation. TCP
desegmentation is currently only supported when TPKT header
is used.

For T.38-over-TPKT, is there only one IFP packet inside a TPKT PDU, or can there be more than one IFP packet per TPKT PDU? If there is only one, a handle to a routine to dissect only one IFP packet should be supplied to the TPKT dissector.

For T.38-over-TCP, is there a convenient way to find the length of a PER sequence, using a bounded number of bytes from the beginning of the packet, and not using more bytes than the minimum length of a PER sequence? If so, that should perhaps be exported by packet-per.c - it'd let you use "tcp_dissect_pdus()" to handle T.38-over-TCP desegmentation. If not, the desegmentation might have to be done by hand.