Ethereal-dev: Re: [Ethereal-dev] dissector for FrameRelay

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: Sun, 7 Jan 2001 14:13:14 -0800
On Sun, Jan 07, 2001 at 09:07:56PM +0200, Paul Ionescu wrote:
> Well, I just discovered that Cisco routers support Frame Relay over GRE.
> So I have attached a patch for packet-gre.c to interpret the FR over
> GRE.

I've checked that in, along with the Frame Relay dissector;
I changed "packet-fr.c to make "dissect_fr()" static and to register it
as a dissector, and changed "packet-gre.c" to find the handle for the
Frame Relay dissector and call it through the handle.

I also made the FR dissector put the DLCI and protocol into the Info
column, and fixed the GRE dissector to call the subdissector regardless
of whether a full protocol tree dissection is being done or not.

I haven't yet put in a Wiretap encapsulation for raw Frame Relay - I'll
wait until we get a raw Frame Relay capture of some sort.

> I know that there are FR with 2/3/4 byte DLCI but right now if you have
> in ethereal a bitmaped field with the bitmask 0xFCF0 (for calculating
> the DLCI number for 2 byte long address field) you get a wrong number
> because the bitmask is not contiguous.
> So I leaved that way until it will be clear if I will implement some
> decoding of DLCI in the dissector or I will wait until the bitmaped
> variables will support discontiguous bitmasks.

The DLCI is variable-length, so, even though discontiguous bitmask
support in the dissector might be useful for other purposes, it's not
clear whether that's what should be used for the DLCI.  (It might be
something that should be dissected the way some stuff is done in Q.931,
as I think some Q.931 stuff is laid out in a similar fashion.)