Ethereal-dev: Re: [Ethereal-dev] Review Request for New Dissector (LACP)

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

From: "Steve Housley" <Steve_Housley@xxxxxxxxxxxx>
Date: Wed, 12 Jun 2002 17:41:19 +0100

Hello Guy,

Thanks for your comments. I agree with all your suggestions and have
incorporated the changes into my build and tested them.
Attached are the latest files which have been modified. Would you please take a
further look (and that goes for anyone else)?

I hope to have this new dissector reviewed by close of business Friday 14th June
2002 (UK time) so that I can hand over the changes for incorporation into the
official software repository and builds. Also I'm eager to conclude this
exercise as it is eating in to my work time at 3Com.

(See attached file: packet-slowprotocols.c)

(See attached file: packet-ethertype.c)

(See attached file: etypes.h)

(See attached file: config.nmake)(See attached file: Makefile.am)(See attached
file: Makefile.nmake)

Thanks again.

Steve.




Guy Harris <gharris@xxxxxxxxx> on 12/06/2002 08:27:12

Sent by:  Guy Harris <gharris@xxxxxxxxx>


To:   Steve Housley/GB/3Com
cc:   ethereal-dev@xxxxxxxxxxxx
Subject:  Re: [Ethereal-dev] Review Request for New Dissector (LACP)




On Tue, Jun 11, 2002 at 11:02:35AM +0100, Steve Housley wrote:
> I have written and tested a new dissector for the IEEE Std 802.3ad-2000 Link
> Aggregation Control Protocol (LACP) that dissects LACP Data Units (LACPDUs).

At least as I read section 43.4.2.2 of IEEE Std 802.3, 2000 Edition, an
LACPDU starts with a standard Ethernet header, containing a destination
address that's the Slow_Protocols_Multicast address, a source address,
and a length/type field containing 0x8809.

As such, there shouldn't need to be any change to "packet-eth.c"
whatsoever; instead, a dissector for Slow Protocols should just register
itself as the handler for the Ethernet type value 0x8809 with a line
such as

     #define ETHERTYPE_SLOW_PROTOCOLS    0x8809

in "etypes.h" and a call such as

     dissector_handle_t slow_protocols_handle;

     slow_protocols_handle = create_dissector_handle(dissect_slow,
         protocol_slow);
     dissector_add("ethertype", ETHERTYPE_SLOW_PROTOCOLS,
         slow_protocols_handle);

to register a "dissect_slow()" routine for those protocols; that routine
would use the Protocol Subtype field (the first octet of the tvbuff
handed to it) to control whether to dissect the payload as an LACP frame
or a Marker Protocol frame.

In addition, an entry

     {ETHERTYPE_SLOW_PROTOCOLS,    "Slow Protocols"          },

should be added to the "etype_vals[]" array in "packet-ethertype.c".


Attachment: packet-slowprotocols.c
Description: Binary data

Attachment: packet-ethertype.c
Description: Binary data

Attachment: etypes.h
Description: Binary data

Attachment: config.nmake
Description: Binary data

Attachment: Makefile.am
Description: Binary data

Attachment: Makefile.nmake
Description: Binary data