Ethereal-dev: Re: [Ethereal-dev] Proposal: Menu structure for protocol specificthings
Olivier Biot wrote:
From: Ulf Lamping
| Guy Harris wrote:
|
| >On Sat, Feb 14, 2004 at 10:44:24AM +0100, Ulf Lamping wrote:
| >
| >>I might be an idea to sort this by protocol layer,
| >
| >Where do you propose to do the sorting?
| >
| >Note that menu items for taps aren't set up from a list in menu.c -
the
| >menu items are added by the tap's register routine.
| >"register_tap_menu_item()" would either have to figure out from the
menu
| >path where to put the items, or would have to be told where to put
them
| >by the taps.
| >
| I would think, that the tap should additionally have to tell this
| function into which layer it should be placed:
|
| 0 - TAP_LAYER_GENERIC
| 1 - TAP_LAYER_PHYSICAL (shouldn't happen with ethereal?)
| 2 - TAP_LAYER_LINK
| 3 - TAP_LAYER_NETWORK
| 4 - TAP_LAYER_TRANSPORT
| 5 - TAP_LAYER_SESSION
| 6 - TAP_LAYER_PRESENTATION
| 7 - TAP_LAYER_APPLICATION
|
| this would be an additional parameter for the
register_tap_menu_item()
| function. If a protocol handles more than one layer,
| it should be registered at the lowest layer. This is especially true
for
| the layers 5 to 7.
Please note that depending on the Ethereal use(r), the application
layer will be another one. For instance, a person tapping into a
mobile switch may have up to 12 protocols stacked on top of each
other, sometimes even more. However a GPRS capture's *application*
layer is the IP layer transported in an opaque manner (including
anything running on top of this IP), while the whole IP and up stack
starts at the *network* layer to people interested in the end-user
data.
There is no such "the" application layer (or any OSI layer name),
unless you define the *scope* of your protocol stack. Defining the
scope may be worthwile doing, though. One might want to run Ethereal
in "IP LAN" mode and then have the menu items sorted in a specific
way, and maybe have some protocols automatically disabled. Similarly
one may run Ethereal in "mobile telco" mode etc. Maybe we then can
define other values for the default preferences per scope?
I understand your problem with it, you are thinking of protocol
encapsulation and such,
but it's no problem, as it's not uncommon to have several protocols in
one layer, or even switch
back some layers when an encapsulation is done.
Regardless what's "above" and "below" the IP protocol in your particular
protocol stack,
IP is still a (or in this case maybe one of several) network layer
protocol(s).
If you are a telco user, you will still understand, that the usual place
to find IP is the network layer,
even if it's in your special case somewhere else in your protocol stack.
Please note: this is only a tip where to find that protocol in the menu.
If you have a better idea how to sort this, just give me a hint :-)
I hope it will be possible to find a *typical* layer for each protocol.
It might be an idea to define such profiles you describe, but I fear
this will be a *lot* more work to do,
as this will take many more things to do than only this menu items.
Anyway, I think my proposal will still be much better than the current
state :-)
Regards, ULFL