Ethereal-dev: Re: [ethereal-dev] Decoding OSI Transport protocol

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

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Tue, 1 Aug 2000 21:40:27 -0700
On Tue, Aug 01, 2000 at 10:40:17AM +0200, Norbert v. Bolhuis wrote:
> It looks like the OSI CLNP packet dissector (packet-clnp.[ch]) contains
> code to decode the OSI Transport protocol.
> 
> Is this true ?

Well, there's "dissect_ositp_internal()" and "dissect_ositp()", which
handle both the OSI connection-oriented and OSI connectionless transport
protocol.

> Anybody know how to activiate this ?

Arrange that one of those functions be called from the dissector for the
protocol above it, for example as the CLNP dissector "dissect_clnp()"
does if

	1) the NLPID for the CLNP protocol is for the inactive subset of
	   CLNP;

	2) the last octet of the destination address is 0x21, which, I
	   think, is what DECNet-OSI uses;

and as the X.25 dissector arranges to do for connections with an X.264
protocol identifier of 0x01.

> I would like ethereal to decode the OSI transport protocol. Problem, of
> course, is that there is no way to know whether CLNP carries Transport
> PDUs. This depends on the local network selector of the OSI End system.

If your end system uses the DECNet-OSI convention, it should Just Work.

If not, you'd have to add to "packet-clnp.c" code to create a
preferences item to specify what selector value or values should specify
COTP and/or CLTP, and change the CLNP dissector to use that item.

See other protocols that call the
"prefs_register_{uint,bool,enum,string}_preference()" routines for an
example of how to add preferences item.

Such a preferences item would let you specify from:

	the ".ethereal" file or the global "ethereal.conf" file;

	the command line;

	the GUI, in Ethereal;

how the selector value is to be interpreted.