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: Guy Harris <gharris@xxxxxxxxx>
Date: Wed, 12 Jun 2002 00:27:12 -0700
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".