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".