Wireshark-dev: Re: [Wireshark-dev] Dynamically loading all dissectors (was: Re: Finding duplica
From: Jakub Zawadzki <[email protected]>
Date: Tue, 31 May 2011 20:54:42 +0200
On Tue, May 31, 2011 at 11:54:16AM -0600, Stephen Fisher wrote:
> On Wed, May 18, 2011 at 02:17:33PM -0400, Ed Beroset wrote:
> > Speaking of more limited platforms, I wonder about about a way of 
> > reducing both startup time and memory usage by having the dissectors 
> > dynamically loaded (as with the current plug-in mechanism) rather than 
> > statically linked.  The current model of adding all dissectors to the 
> > main code means that Wireshark will keep getting bigger and bigger.  I 
> > wonder if it might not be time to ponder if that's the best possible 
> > option.
> I thought about this not too long ago, and the problem is that the code 
> to determine which packets belong to which dissector is in the 
> dissectors themselves, so you have to load all of them anyway.

It's somehow related, so can we rediscuss idea about disabling compilation of some dissectors?

After exams I'll have some spare time, and I could work on it, but 
I'd really like to have some discussion before.

Some possibilites how to implement it:

1/ lot of new configuration options:
    ./configure --disable-udp --disable-ssl ...

	cmake have got some nice GUIs [1][2] for configuration but it can't do tree and dependencies 
	(like: disable POP dissector when !TCP).

2/ configuration file (easy to backup/restore)
   a/ kconfig - already used by some big projects (Linux, uclibc, Busybox)
      Syntax: http://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt

	  And there are already nice tools to do configuration (for Qt[3]/gtk[4]/ncurses[5])

   b/ our own syntax

Anyone is familliar with other configuration tools?

[1] http://www.cmake.org/cmake/img/CMakeGUI.gif
[2] http://www.cmake.org/cmake/img/ccmake.png
[3] http://www.q-vadis.net/img/homeserver/kernel-xconfig.jpg
[4] http://kerneltrap.org/sup/799/gconfig.png
[5] http://www.linux-ipv6.org/~kunitake/zaurus/menuconfig.png