Ethereal-dev: Re: [Ethereal-dev] Some thoughts...
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: PC Drew <drewpc@xxxxxxxxxxxx>
Date: Thu, 26 Apr 2001 13:32:28 -0600
--On Thursday, April 26, 2001 11:09 AM -0700 Guy Harris <guy@xxxxxxxxxx> wrote:
I've got a bunch of ideas that I wanted to run by you guys before I started to implement them: 1. It'd be nice if the port numbers were on the summary line of the RTP header...does anyone mind if I add this?Well, I'm not one of the streaming guys in the NetCache group here at NetApp, so it wouldn't make a difference to me; however, note that you can include columns in the summary for the source and destination port number of the packet - see the "Columns" tab in the "Edit->Preferences" dialog box. (Note that the new columns currently don't show up until you exit Ethereal and restart, after saving the preferences with the "Save" button; that will probably be fixed at some point.)
Ah-hah! I did not realize this! Is there any way to do this in tethereal too? Probably not.
3. Right now (as I understand it), with tethereal you have "on" and "off" as to the verbosity level (either summary line or the whole tree). I'd like to make 2 changes if everyone's okay. I'd like the ability to specifiy "decode from this protocol down" in the tree. Meaning, if I'm looking at a SIP message, I only want to see the SIP stuff (and anythinb below it in the tree), but I don't want to see the tcp/udp, ip, or etherenet decodes.That'd probably be reasonable - the command-line option would control which tree levels were expanded, and, if the command-line option were specified, Tethereal would set "print_args.expand_all" to FALSE rather than TRUE, so the printing code would only expand the tree items in question.
exactly. Okay, I'll get started on this.
Secondly, it'd be nice if you could print out certain variables in addition to the summary line. If I can filter based on the variable, why not allow people to print it out? This way, I could print only the summary line, but I could also see certain variables (i.e. udp.srcport, sip.msg_hdr, etc).Well, "udp.srcport" could, as indicated above, be shown if you select "Src port" as one of the columns.
Sorry, I guess I wasn't very clear. I meant in tethereal. In ethereal, you already have access to those variables by looking in the tree (or adding it to the column as you recommended).
4. The concept of dissector summary statistics seems to be missing.That's because it *is* missing.
I tell ya, I'm a master of the obvious :)
For instance, I want to be able to display statistics related to the RTP conversations that have been captured (i.e. jitter, packet loss, latency, etc). I've been working on implementing this and I'll send my work to the group when I've got a working copy. Basically, it's setup just like the protocol registration...you call "register_summary" in the proto_register_* routine, giving it certain parameters that tell the system which functions to call to get the summary information for that protocol. Then, it's up to the dissector to update the summary information for itself, and finally, when the user wants to view the summary information for that protocol, the system calls a "get_summary"-ish function and hands the function a GtkWidget that's inside a newly created window for the dissector to display its stuff (i.e. numbers, graphs, images, etc). Don't worry, I've also accounted for tethereal :)How have you accounted for Tethereal? Note that "with ifdefs in the dissectors" is almost certainly the wrong answer; the same plugin dissector loadable modules must work with Ethereal and Tethereal, and the same non-plugin dissector object modules have to link into both Ethereal and Tethereal (unless you do some fairly major Makefile surgery, assuming that's even possible).
I agree.
"Tethereal now links with GTK+" is definitely the wrong answer, as there are people who want to be able to build Tethereal on machines that don't have X11 installed (which is why you *can* build only Tethereal - those people asked for it).
I agree.
Note also that there is no guarantee that even all future interactive versions of Ethereal will use GTK+ - we may do curses-based, or Qt/KDE-based, or Windows MFC-based, or... versions in the future, in addition to the current GTK+ one - so even for interactive versions, the dissectors should not do any GTK+ stuff, only GLib stuff.
I agree with that too.
What would, I suspect, work better would be if the "get_summary"-ish routine supplied a list of names and values, with the summary dialog box showing Name: value for each of them.
That is a good solution...except if you want to get into graphing stuff. I'm not there yet, but here's my proposed solution:
There's a register_summary function where you pass it the proto_id, the short name, a pointer to a gtk function that takes a conversation_t argument and a gpointer argument that points to a GTKWidget container (i.e. the summary window would already be created and the function would get passed the container GTKWidget in gpointer form.
The dissector is responsible for adding everything into a glist (or some container, I haven't decided yet) and calling a generic summary function called "done_creating_summary" or something. That in turn calls a GTK function that adds it to the window with the appropriate container.
For tethereal, it will call the terminal summary function (i.e. rtp_term_summary), which does the same thing as the GTK summary function, only it prints it to the terminal.
-- PC Drew Be nice or I'll replace you with a very small shell script.
- Follow-Ups:
- Re: [Ethereal-dev] Some thoughts...
- From: Guy Harris
- Re: [Ethereal-dev] Some thoughts...
- References:
- Re: [Ethereal-dev] Some thoughts...
- From: Guy Harris
- Re: [Ethereal-dev] Some thoughts...
- Prev by Date: Re: [Ethereal-dev] Some thoughts...
- Next by Date: Re: [Ethereal-dev] Some thoughts...
- Previous by thread: Re: [Ethereal-dev] Some thoughts...
- Next by thread: Re: [Ethereal-dev] Some thoughts...
- Index(es):