On Thu, Apr 10, 2003 at 05:49:02PM +0200, Panos Kassianidis wrote:
> could somebody please tell me what procedure should I follow in order to
> extend ethereal to parse a proprietary protocol?
> Does ethereal support some kind of plug-in architecture that makes such a
> task easier?
There are two ways in which you could say it supports a "plug-in
architecture":
1) in many cases, if there's a fairly "standard" way in a
protocol to specify the protocol for which the first
protocol's payload is intended (Ethernet type fields, TCP or
UDP port numbers (although those don't rigidly specify a
protocol)), you shouldn't have to modify the dissector for
the protocol running atop your protocol in order to add a new
protocol (and some protocols also support calling "heuristic"
dissectors that look at the packet data to figure out whether
it's a packet for their protocol or not);
2) Ethereal supports, on most platforms (on platforms that have
run-time dynamic linking and where GLib supports the run-time
dynamic linking mechanism), protocol dissectors that can be
loaded at run time, rather than being linked into the
Ethereal executable.
> Where can I find more information on this subject?
See:
doc/README.dissector
doc/README.tvbuff
for information on how to write dissectors (including some information
on how to plug a dissector into another dissector), and
doc/README.plugins
for information on how to develop dissectors loaded at run time.