1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
|
|
Ethereal - Interactively browse network traffic
|
|
|
|
|
|
|
|
|
|
=head1 SYNOPSYS
|
|
|
|
|
|
|
|
|
|
B<ethereal>
|
|
|
|
|
S<[ B<-B> byte view height ]>
|
|
|
|
|
S<[ B<-c> count ]>
|
2001-01-10 09:39:24 +00:00
|
|
|
|
S<[ B<-f> capture filter expression ]>
|
1998-09-17 02:01:50 +00:00
|
|
|
|
S<[ B<-h> ]>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
S<[ B<-i> interface ]>
|
1999-05-11 20:07:12 +00:00
|
|
|
|
S<[ B<-k> ]>
|
1998-09-17 02:01:50 +00:00
|
|
|
|
S<[ B<-m> font ]>
|
|
|
|
|
S<[ B<-n> ]>
|
2000-07-09 04:09:09 +00:00
|
|
|
|
S<[ B<-o> preference setting ] ...>
|
2000-09-15 05:32:49 +00:00
|
|
|
|
S<[ B<-p> ]>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
S<[ B<-P> packet list height ]>
|
1999-05-11 20:07:12 +00:00
|
|
|
|
S<[ B<-Q> ]>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
S<[ B<-r> infile ]>
|
2001-01-10 09:39:24 +00:00
|
|
|
|
S<[ B<-R> display filter expression ]>
|
1999-05-11 20:07:12 +00:00
|
|
|
|
S<[ B<-S> ]>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
S<[ B<-s> snaplen ]>
|
|
|
|
|
S<[ B<-T> tree view height ]>
|
1998-09-27 22:12:47 +00:00
|
|
|
|
S<[ B<-t> time stamp format ]>
|
1998-09-17 02:01:50 +00:00
|
|
|
|
S<[ B<-v> ]>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
S<[ B<-w> savefile]>
|
|
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
1999-11-29 07:33:53 +00:00
|
|
|
|
B<Ethereal> is a GUI network protocol analyzer. It lets you
|
|
|
|
|
interactively browse packet data from a live network or from a
|
1999-12-16 08:05:46 +00:00
|
|
|
|
previously saved capture file. B<Ethereal> knows how to read B<libpcap>
|
2000-01-14 08:14:33 +00:00
|
|
|
|
capture files, including those of B<tcpdump>. In addition, B<Ethereal>
|
|
|
|
|
can read capture files from B<snoop> (including B<Shomiti>) and
|
2000-05-25 09:00:24 +00:00
|
|
|
|
B<atmsnoop>, B<LanAlyzer>, B<Sniffer> (compressed or uncompressed),
|
|
|
|
|
Microsoft B<Network Monitor>, AIX's B<iptrace>, B<NetXray>, B<Sniffer
|
2001-03-06 20:52:32 +00:00
|
|
|
|
Pro>, B<Etherpeek>, B<RADCOM>'s WAN/LAN analyzer, B<Lucent/Ascend>
|
|
|
|
|
router debug output, HP-UX's B<nettl>, the dump output from B<Toshiba's>
|
|
|
|
|
ISDN routers, the output from B<i4btrace> from the ISDN4BSD project, the
|
|
|
|
|
output in B<IPLog> format from the Cisco Secure Intrusion Detection
|
|
|
|
|
System, and B<pppd logs> (pppdump format). There is no need to tell
|
|
|
|
|
B<Ethereal> what type of file you are reading; it will determine the
|
|
|
|
|
file type by itself. B<Ethereal> is also capable of reading any of
|
|
|
|
|
these file formats if they are compressed using gzip. B<Ethereal>
|
|
|
|
|
recognizes this directly from the file; the '.gz' extension is not
|
|
|
|
|
required for this purpose.
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Like other protocol analyzers, B<Ethereal>'s main window shows 3 views
|
|
|
|
|
of a packet. It shows a summary line, briefly describing what the
|
|
|
|
|
packet is. A protocol tree is shown, allowing you to drill down to
|
|
|
|
|
exact protocol or field that you interested in. Finally, a hex dump
|
1999-08-03 16:33:12 +00:00
|
|
|
|
shows you exactly what the packet looks like when it goes over the wire.
|
|
|
|
|
|
1999-10-30 06:42:10 +00:00
|
|
|
|
In addition, B<Ethereal> has some features that make it unique. It can
|
|
|
|
|
assemble all the packets in a TCP conversation and show you the ASCII
|
2000-08-09 06:38:53 +00:00
|
|
|
|
(or EBCDIC, or hex) data in that conversation. Display filters in
|
|
|
|
|
B<Ethereal> are very powerful; more fields are filterable in B<Ethereal>
|
|
|
|
|
than in other protocol analyzers, and the syntax you can use to create
|
|
|
|
|
your filters is richer. As B<Ethereal> progresses, expect more and more
|
|
|
|
|
protocol fields to be allowed in display filters.
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Packet capturing is performed with the pcap library. The capture filter
|
|
|
|
|
syntax follows the rules of the pcap library. This syntax is different
|
|
|
|
|
from the display filter syntax.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Compressed file support uses (and therefore requires) the zlib library.
|
|
|
|
|
If the zlib library is not present, B<Ethereal> will compile, but will
|
|
|
|
|
be unable to read compressed files.
|
1999-09-22 01:38:00 +00:00
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=head1 OPTIONS
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item -B
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Sets the initial height of the byte view (bottom) pane.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item -c
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Sets the default number of packets to read when capturing live
|
|
|
|
|
data.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-05-11 20:07:12 +00:00
|
|
|
|
=item -f
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Sets the capture filter expression.
|
1999-05-11 20:07:12 +00:00
|
|
|
|
|
1998-09-17 02:01:50 +00:00
|
|
|
|
=item -h
|
|
|
|
|
|
|
|
|
|
Prints the version and options and exits.
|
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item -i
|
|
|
|
|
|
2000-07-30 16:54:12 +00:00
|
|
|
|
Sets the name of the network interface or pipe to use for live packet capture.
|
|
|
|
|
Network interface names should match one of the names listed in "B<netstat -i>"
|
|
|
|
|
or "B<ifconfig -a>".
|
|
|
|
|
Pipe names should be either the name of a FIFO (named pipe) or ``-'' to read
|
|
|
|
|
data from the standard input. Data read from pipes must be in libpcap format.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-05-11 20:07:12 +00:00
|
|
|
|
=item -k
|
|
|
|
|
|
2000-01-15 06:05:21 +00:00
|
|
|
|
Starts the capture session immediately. If the B<-i> flag was
|
|
|
|
|
specified, the capture uses the specified interface. Otherwise,
|
2000-01-16 02:48:12 +00:00
|
|
|
|
B<Ethereal> searches the list of interfaces, choosing the first
|
|
|
|
|
non-loopback interface if there are any non-loopback interfaces, and
|
|
|
|
|
choosing the first loopback interface if there are no non-loopback
|
|
|
|
|
interfaces; if there are no interfaces, B<Ethereal> reports an error and
|
|
|
|
|
doesn't start the capture.
|
1999-05-11 20:07:12 +00:00
|
|
|
|
|
1998-09-17 02:01:50 +00:00
|
|
|
|
=item -m
|
|
|
|
|
|
Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:
"fetch" - fetch from the notebook tab any values not already
stored in "prefs", and store them there, but doesn't apply them;
"apply" - apply the settings in "prefs";
"destroy" - clean up any windows created from the tab.
As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.
Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.
Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".
Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows. Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".
Make the font one of the preferences we can set on the fly for protocol
tree widgets. Also make it something we can set on the fly for the
packet list widget.
svn path=/trunk/; revision=2317
2000-08-21 08:15:48 +00:00
|
|
|
|
Sets the name of the font used by B<Ethereal> for most text.
|
|
|
|
|
B<Ethereal> will construct the name of the bold font used for the data
|
|
|
|
|
in the byte view pane that corresponds to the field selected in the
|
|
|
|
|
protocol tree pane from the name of the main text font.
|
1998-09-17 02:01:50 +00:00
|
|
|
|
|
|
|
|
|
=item -n
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Disables network object name resolution (such as hostname, TCP and UDP port
|
1998-09-17 02:01:50 +00:00
|
|
|
|
names).
|
|
|
|
|
|
2000-07-09 04:09:09 +00:00
|
|
|
|
=item -o
|
|
|
|
|
|
|
|
|
|
Sets a preference value, overriding the default value and any value read
|
|
|
|
|
from a preference file. The argument to the flag is a string of the
|
|
|
|
|
form I<prefname>B<:>I<value>, where I<prefname> is the name of the
|
|
|
|
|
preference (which is the same name that would appear in the preference
|
|
|
|
|
file), and I<value> is the value to which it should be set.
|
|
|
|
|
|
2000-09-15 05:32:49 +00:00
|
|
|
|
=item -p
|
|
|
|
|
|
|
|
|
|
I<Don't> put the interface into promiscuous mode. Note that the
|
|
|
|
|
interface might be in promiscuous mode for some other reason; hence,
|
|
|
|
|
B<-p> cannot be used to ensure that the only traffic that is captured is
|
|
|
|
|
traffic sent to or from the machine on which B<Ethereal> is running,
|
|
|
|
|
broadcast traffic, and multicast traffic to addresses received by that
|
|
|
|
|
machine.
|
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item -P
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Sets the initial height of the packet list (top) pane.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-05-11 20:07:12 +00:00
|
|
|
|
=item -Q
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Causes B<Ethereal> to exit after the end of capture session (useful in
|
|
|
|
|
batch mode with B<-c> option for instance); this option requires the
|
|
|
|
|
B<-i> and B<-w> parameters.
|
1999-05-11 20:07:12 +00:00
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item -r
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Reads packet data from I<file>.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-08-08 01:29:24 +00:00
|
|
|
|
=item -R
|
|
|
|
|
|
2000-02-19 00:18:45 +00:00
|
|
|
|
When reading a capture file specified with the B<-r> flag, causes the
|
|
|
|
|
specified filter (which uses the syntax of display filters, rather than
|
|
|
|
|
that of capture filters) to be applied to all packets read from the
|
|
|
|
|
capture file; packets not matching the filter are discarded.
|
1999-08-08 01:29:24 +00:00
|
|
|
|
|
1999-05-11 20:07:12 +00:00
|
|
|
|
=item -S
|
|
|
|
|
|
|
|
|
|
Specifies that the live packet capture will be performed in a separate
|
1999-10-02 20:00:46 +00:00
|
|
|
|
process, and that the packet display will automatically be updated as
|
|
|
|
|
packets are seen.
|
1999-05-11 20:07:12 +00:00
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item -s
|
|
|
|
|
|
1999-07-20 03:54:53 +00:00
|
|
|
|
Sets the default snapshot length to use when capturing live data.
|
|
|
|
|
No more than I<snaplen> bytes of each network packet will be read into
|
|
|
|
|
memory, or saved to disk.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item -T
|
|
|
|
|
|
1999-08-08 01:29:24 +00:00
|
|
|
|
Sets the initial height of the tree view (middle) pane.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1998-09-27 22:12:47 +00:00
|
|
|
|
=item -t
|
|
|
|
|
|
|
|
|
|
Sets the format of the packet timestamp displayed in the packet list
|
2000-11-01 08:31:36 +00:00
|
|
|
|
window. The format can be one of 'r' (relative), 'a' (absolute), 'ad'
|
|
|
|
|
(absolute with date), or 'd' (delta). The relative time is the time
|
|
|
|
|
elapsed between the first packet and the current packet. The absolute
|
|
|
|
|
time is the actual time the packet was captured, with no date displayed;
|
|
|
|
|
the absolute date and time is the actual time and date the packet was
|
|
|
|
|
captured. The delta time is the time since the previous packet was
|
|
|
|
|
captured. The default is relative.
|
1998-09-27 22:12:47 +00:00
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item -v
|
|
|
|
|
|
|
|
|
|
Prints the version and exits.
|
|
|
|
|
|
|
|
|
|
=item -w
|
|
|
|
|
|
|
|
|
|
Sets the default capture file name.
|
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
|
|
=head1 INTERFACE
|
|
|
|
|
|
|
|
|
|
=head2 MENU ITEMS
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=item File:Open, File:Close, File:Reload
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-08-10 07:16:47 +00:00
|
|
|
|
Open, close, or reload a capture file. The I<File:Open> dialog box
|
|
|
|
|
allows a filter to be specified; when the capture file is read, the
|
|
|
|
|
filter is applied to all packets read from the file, and packets not
|
|
|
|
|
matching the filter are discarded.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
Allow the user to save either all of the current capture, or only the
packets that are currently being displayed from that capture.
Centralize the code to control whether "File:Save" and "File:Save As"
are enabled (and *always* have "File:Save As" enabled if you have a
capture; "File:Save" is enabled only if you have a live capture you've
not yet saved, although it does the same thing as "File:Save As").
Have the "save_file" member of a "capture_file" structure represent
*only* the file currently being *written* to by a capture, and, if there
is no capture currently in progress, have it be NULL; the name of the
file currently being *displayed" is in the "filename" member, and an
"is_tempfile" member indicates whether it's a temporary file for a live
capture or not.
Have "close_cap_file()" delete the current capture file if it's a
temporary capture file that hasn't been saved (in its entirety - saving
selected frames doesn't count). Do the same (if there *is* a current
capture file) when exiting.
The "Ready to load or capture" message is the only statusbar message in
the "main" context; "close_cap_file()" should never pop it, it should
only pop whatever message exists in the "file" context, and thus has no
need to take, as an argument, the context for the message it should pop.
Update the man page to reflect the new behavior of "File:Save" and
"File:Save As", and to reflect recent changes to "Display:Match Selected".
svn path=/trunk/; revision=1170
1999-11-30 20:50:15 +00:00
|
|
|
|
=item File:Save, File:Save As
|
|
|
|
|
|
|
|
|
|
Save the current capture, or the packets currently displayed from that
|
2000-08-23 19:40:12 +00:00
|
|
|
|
capture, to a file. Check boxes let you select whether to save all
|
|
|
|
|
packets, or just those that have passed the current display filter and/or
|
|
|
|
|
those that are currently marked, and an option menu lets you select (from
|
|
|
|
|
a list of file formats in which at particular capture, or the packets
|
|
|
|
|
currently displayed from that capture, can be saved), a file format in
|
|
|
|
|
which to save it.
|
Allow the user to save either all of the current capture, or only the
packets that are currently being displayed from that capture.
Centralize the code to control whether "File:Save" and "File:Save As"
are enabled (and *always* have "File:Save As" enabled if you have a
capture; "File:Save" is enabled only if you have a live capture you've
not yet saved, although it does the same thing as "File:Save As").
Have the "save_file" member of a "capture_file" structure represent
*only* the file currently being *written* to by a capture, and, if there
is no capture currently in progress, have it be NULL; the name of the
file currently being *displayed" is in the "filename" member, and an
"is_tempfile" member indicates whether it's a temporary file for a live
capture or not.
Have "close_cap_file()" delete the current capture file if it's a
temporary capture file that hasn't been saved (in its entirety - saving
selected frames doesn't count). Do the same (if there *is* a current
capture file) when exiting.
The "Ready to load or capture" message is the only statusbar message in
the "main" context; "close_cap_file()" should never pop it, it should
only pop whatever message exists in the "file" context, and thus has no
need to take, as an argument, the context for the message it should pop.
Update the man page to reflect the new behavior of "File:Save" and
"File:Save As", and to reflect recent changes to "Display:Match Selected".
svn path=/trunk/; revision=1170
1999-11-30 20:50:15 +00:00
|
|
|
|
|
1999-07-23 08:33:44 +00:00
|
|
|
|
=item File:Print
|
|
|
|
|
|
2000-01-06 07:32:44 +00:00
|
|
|
|
Prints, for all the packets in the current capture, either the summary
|
|
|
|
|
line for the packet or the protocol tree view of the packet; when
|
|
|
|
|
printing the protocol tree view, the hex dump of the packet can be
|
|
|
|
|
printed as well. Printing options can be set with the
|
1999-07-23 08:33:44 +00:00
|
|
|
|
I<Edit:Preferences> menu item, or in the dialog box popped up by this
|
|
|
|
|
item.
|
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item File:Print Packet
|
|
|
|
|
|
2000-01-06 07:32:44 +00:00
|
|
|
|
Print a fully-expanded protocol tree view of the currently-selected
|
|
|
|
|
packet. Printing options can be set with the I<Edit:Preferences> menu
|
|
|
|
|
item.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item File:Quit
|
|
|
|
|
|
|
|
|
|
Exits the application.
|
|
|
|
|
|
2000-01-18 09:05:30 +00:00
|
|
|
|
=item Edit:Find Frame
|
|
|
|
|
|
|
|
|
|
Allows you to search forward or backward, starting with the currently
|
|
|
|
|
selected packet (or the most recently selected packet, if no packet is
|
|
|
|
|
selected), for a packet matching a given display filter.
|
|
|
|
|
|
|
|
|
|
=item Edit:Go To Frame
|
|
|
|
|
|
|
|
|
|
Allows you to go to a particular numbered packet.
|
|
|
|
|
|
2000-08-23 19:40:12 +00:00
|
|
|
|
=item Edit:Mark Frame
|
|
|
|
|
|
|
|
|
|
Allows you to mark (or unmark if currently marked) the selected packet.
|
|
|
|
|
|
|
|
|
|
=item Edit:Mark All Frames
|
|
|
|
|
|
|
|
|
|
Allows you to mark all packets that are currently displayed.
|
|
|
|
|
|
|
|
|
|
=item Edit:Unmark All Frames
|
|
|
|
|
|
|
|
|
|
Allows you to unmark all packets that are currently displayed.
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=item Edit:Preferences
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-01-06 07:32:44 +00:00
|
|
|
|
Sets the packet printing, column display, TCP stream coloring, and GUI
|
1999-12-10 06:28:24 +00:00
|
|
|
|
options (see L<"Preferences"> below).
|
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
=item Edit:Capture Filters
|
1999-12-10 06:28:24 +00:00
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
Edits the saved list of capture filters, allowing filters to be added,
|
|
|
|
|
changed, or deleted.
|
|
|
|
|
|
|
|
|
|
=item Edit:Display Filters
|
|
|
|
|
|
|
|
|
|
Edits the saved list of display filters, allowing filters to be added,
|
|
|
|
|
changed, or deleted.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
Add the "Edit:Protocols..." feature which currently only implements
the following:
It is now possible to enable/disable a particular protocol decoding
(i.e. the protocol dissector is void or not). When a protocol
is disabled, it is displayed as Data and of course, all linked
sub-protocols are disabled as well.
Disabling a protocol could be interesting:
- in case of buggy dissectors
- in case of wrong heuristics
- for performance reasons
- to decode the data as another protocol (TODO)
Currently (if I am not wrong), all dissectors but NFS can be disabled
(and dissectors that do not register protocols :-)
I do not like the way the RPC sub-dissectors are disabled (in the
sub-dissectors) since this could be done in the RPC dissector itself,
knowing the sub-protocol hfinfo entry (this is why, I've not modified
the NFS one yet).
Two functions are added in proto.c :
gboolean proto_is_protocol_enabled(int n);
void proto_set_decoding(int n, gboolean enabled);
and two MACROs which can be used in dissectors:
OLD_CHECK_DISPLAY_AS_DATA(index, pd, offset, fd, tree)
CHECK_DISPLAY_AS_DATA(index, tvb, pinfo, tree)
See also the XXX in proto_dlg.c and proto.c around the new functions.
svn path=/trunk/; revision=2268
2000-08-13 14:20:32 +00:00
|
|
|
|
=item Edit:Protocols
|
|
|
|
|
|
|
|
|
|
Edits the list of protocols, allowing protocol dissection to be
|
|
|
|
|
enabled or disabled.
|
|
|
|
|
|
1999-06-19 08:48:30 +00:00
|
|
|
|
=item Capture:Start
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Initiates a live packet capture (see L<"Capture Preferences"> below). A
|
|
|
|
|
temporary file will be created to hold the capture. The location of the
|
1999-04-06 16:35:47 +00:00
|
|
|
|
file can be chosen by setting your TMPDIR environment variable before
|
1999-12-16 08:05:46 +00:00
|
|
|
|
starting B<Ethereal>. Otherwise, the default TMPDIR location is
|
2000-05-10 06:00:22 +00:00
|
|
|
|
system-dependent, but is likely either F</var/tmp> or F</tmp>.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-10-11 06:01:16 +00:00
|
|
|
|
=item Capture:Stop
|
|
|
|
|
|
|
|
|
|
In a capture that updates the packet display as packets arrive (so that
|
|
|
|
|
Ethereal responds to user input other than pressing the "Stop" button in
|
|
|
|
|
the capture packet statistics dialog box), stops the capture.
|
|
|
|
|
|
1999-06-19 08:48:30 +00:00
|
|
|
|
=item Display:Options
|
|
|
|
|
|
2000-01-24 04:44:58 +00:00
|
|
|
|
Allows you to sets the format of the packet timestamp displayed in the
|
2000-11-01 08:31:36 +00:00
|
|
|
|
packet list window to relative, absolute, absolute date and time, or
|
|
|
|
|
delta, to enable or disable the automatic scrolling of the packet list
|
|
|
|
|
while a live capture is in progress or to enable or disable translation
|
|
|
|
|
of addresses to names in the display.
|
1999-06-19 08:48:30 +00:00
|
|
|
|
|
1999-08-28 23:47:50 +00:00
|
|
|
|
=item Display:Match Selected
|
|
|
|
|
|
|
|
|
|
Creates and applies a display filter based on the data that is currently
|
Allow the user to save either all of the current capture, or only the
packets that are currently being displayed from that capture.
Centralize the code to control whether "File:Save" and "File:Save As"
are enabled (and *always* have "File:Save As" enabled if you have a
capture; "File:Save" is enabled only if you have a live capture you've
not yet saved, although it does the same thing as "File:Save As").
Have the "save_file" member of a "capture_file" structure represent
*only* the file currently being *written* to by a capture, and, if there
is no capture currently in progress, have it be NULL; the name of the
file currently being *displayed" is in the "filename" member, and an
"is_tempfile" member indicates whether it's a temporary file for a live
capture or not.
Have "close_cap_file()" delete the current capture file if it's a
temporary capture file that hasn't been saved (in its entirety - saving
selected frames doesn't count). Do the same (if there *is* a current
capture file) when exiting.
The "Ready to load or capture" message is the only statusbar message in
the "main" context; "close_cap_file()" should never pop it, it should
only pop whatever message exists in the "file" context, and thus has no
need to take, as an argument, the context for the message it should pop.
Update the man page to reflect the new behavior of "File:Save" and
"File:Save As", and to reflect recent changes to "Display:Match Selected".
svn path=/trunk/; revision=1170
1999-11-30 20:50:15 +00:00
|
|
|
|
highlighted in the protocol tree. If that data is a field that can be
|
|
|
|
|
tested in a display filter expression, the display filter will test that
|
|
|
|
|
field; otherwise, the display filter will be based on absolute offset
|
|
|
|
|
within the packet, and so could be unreliable if the packet contains
|
|
|
|
|
protocols with variable-length headers, such as a source-routed
|
|
|
|
|
token-ring packet.
|
1999-08-28 23:47:50 +00:00
|
|
|
|
|
|
|
|
|
=item Display:Colorize Display
|
|
|
|
|
|
|
|
|
|
Allows you to change the foreground and background colors of the packet
|
|
|
|
|
information in the list of packets, based upon display filters. The list
|
|
|
|
|
of display filters is applied to each packet sequentially. After the first
|
|
|
|
|
display filter matches a packet, any additional display filters in the list
|
|
|
|
|
are ignored. Therefore, if you are filtering on the existence of protocols,
|
|
|
|
|
you should list the higher-level protocols first, and the lower-level
|
|
|
|
|
protocols last.
|
|
|
|
|
|
1999-09-11 15:47:38 +00:00
|
|
|
|
=item Display:Collapse All
|
|
|
|
|
|
|
|
|
|
Collapses the protocol tree branches.
|
|
|
|
|
|
|
|
|
|
=item Display:Expand All
|
|
|
|
|
|
|
|
|
|
Expands all branches of the protocol tree.
|
|
|
|
|
|
2000-02-29 06:24:41 +00:00
|
|
|
|
=item Display:Expand All
|
|
|
|
|
|
|
|
|
|
Expands all branches of the protocol tree.
|
|
|
|
|
|
|
|
|
|
=item Display:Show Packet In New Window
|
|
|
|
|
|
|
|
|
|
Creates a new window containing a protocol tree view and a hex dump
|
|
|
|
|
window of the currently selected packet; this window will continue to
|
|
|
|
|
display that packet's protocol tree and data even if another packet is
|
|
|
|
|
selected.
|
|
|
|
|
|
2001-02-14 07:15:39 +00:00
|
|
|
|
=item Display:User Specified Decodes
|
|
|
|
|
|
|
|
|
|
Creates a new window showing whether any protocol ID to dissector
|
|
|
|
|
mappings have been changed by the user. This window also allows the
|
|
|
|
|
user to reset all decodes to their default values.
|
|
|
|
|
|
1999-12-13 12:29:42 +00:00
|
|
|
|
=item Tools:Plugins
|
|
|
|
|
|
2001-01-28 21:22:54 +00:00
|
|
|
|
Allows you to see what dynamically loadable dissector plugin modules
|
|
|
|
|
have been loaded (see I<"Plugins"> below).
|
1999-12-13 12:29:42 +00:00
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=item Tools:Follow TCP Stream
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-10-30 06:42:10 +00:00
|
|
|
|
If you have a TCP packet selected, it will display the contents of the
|
|
|
|
|
data stream for the TCP connection to which that packet belongs, as
|
|
|
|
|
text, in a separate window, and will leave the list of packets in a
|
|
|
|
|
filtered state, with only those packets that are part of that TCP
|
|
|
|
|
connection being displayed. You can revert to your old view by pressing
|
|
|
|
|
ENTER in the display filter text box, thereby invoking your old display
|
|
|
|
|
filter (or resetting it back to no display filter).
|
|
|
|
|
|
|
|
|
|
The window in which the data stream is displayed lets you select whether
|
2000-08-09 06:38:53 +00:00
|
|
|
|
to display:
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item
|
|
|
|
|
|
|
|
|
|
whether to display the entire conversation, or one or the other side of
|
|
|
|
|
it;
|
|
|
|
|
|
|
|
|
|
=item
|
|
|
|
|
|
|
|
|
|
whether the data being displayed is to be treated as ASCII or EBCDIC
|
|
|
|
|
text or as raw hex data;
|
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item
|
|
|
|
|
|
|
|
|
|
and lets you print what's currently being displayed, using the same
|
|
|
|
|
print options that are used for the I<File:Print Packet> menu item, or
|
|
|
|
|
save it as text to a file.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
2001-02-14 07:15:39 +00:00
|
|
|
|
=item Tools:Decode As
|
|
|
|
|
|
|
|
|
|
If you have a packet selected, this menu item will present a dialog
|
|
|
|
|
allowing you to change which dissectors are used to decode this
|
|
|
|
|
packet. The dialog has one panel each for the link layer, network
|
|
|
|
|
layer and transport layer protocol/port numbers, and will allow each
|
|
|
|
|
of these to be changed independently. For example, if the selected
|
|
|
|
|
packet is a TCP packet to port 12345, using this dialog you can
|
|
|
|
|
instruct Ethereal to decode all packets to or from that TCP port as
|
|
|
|
|
HTTP packets.
|
|
|
|
|
|
2001-03-22 23:54:47 +00:00
|
|
|
|
=item Tools:Protocol Hierarchy Statistics
|
|
|
|
|
|
|
|
|
|
This shows the number of packets, and the number of bytes
|
|
|
|
|
in those packets, for each protocol in the trace. It
|
|
|
|
|
organizes the protocols in the same hierarchy in which
|
|
|
|
|
they were found in the trace. Besides counting the packets
|
|
|
|
|
in which the protocol exists, a count is also made
|
|
|
|
|
for packets in which the protocol is the last protocol in
|
|
|
|
|
the stack. These "Last Protocol" counts show you how many packets
|
|
|
|
|
(and the byte count associated with those packets) B<ended> in a particular
|
|
|
|
|
protocol.
|
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=head2 WINDOWS
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item Main Window
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
The main window is split into three panes. You can resize each pane using
|
|
|
|
|
a "thumb" at the right end of each divider line. Below the panes is a
|
2000-07-03 08:36:52 +00:00
|
|
|
|
strip that shows the current filter and informational text.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
=over 6
|
|
|
|
|
|
|
|
|
|
=item Top Pane
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
The top pane contains the list of network packets that you can scroll
|
2000-05-10 06:00:22 +00:00
|
|
|
|
through and select. By default, the packet number, packet timestamp,
|
|
|
|
|
source and destination addresses, protocol, and description are
|
|
|
|
|
displayed for each packet; the I<Columns> page in the dialog box popped
|
|
|
|
|
up by I<Edit:Preferences> lets you change this (although, unfortunately,
|
|
|
|
|
you currently have to save the preferences, and exit and restart
|
|
|
|
|
Ethereal, for those changes to take effect).
|
|
|
|
|
|
|
|
|
|
If you click on the heading for a column, the display will be sorted by
|
|
|
|
|
that column; clicking on the heading again will reverse the sort order
|
|
|
|
|
for that column.
|
|
|
|
|
|
|
|
|
|
An effort is made to display information as high up the protocol stack
|
|
|
|
|
as possible, e.g. IP addresses are displayed for IP packets, but the
|
|
|
|
|
MAC layer address is displayed for unknown packet types.
|
|
|
|
|
|
|
|
|
|
The right mouse button can be used to pop up a menu of operations.
|
|
|
|
|
|
2000-08-23 19:40:12 +00:00
|
|
|
|
The middle mouse button can be used to mark a packet.
|
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
=item Middle Pane
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
The middle pane contains a I<protocol tree> for the currently-selected
|
2000-01-18 08:38:18 +00:00
|
|
|
|
packet. The tree displays each field and its value in each protocol
|
|
|
|
|
header in the stack. The right mouse button can be used to pop up a
|
|
|
|
|
menu of operations.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
=item Bottom Pane
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
The lowest pane contains a hex dump of the actual packet data.
|
|
|
|
|
Selecting a field in the I<protocol tree> highlights the corresponding
|
|
|
|
|
bytes in this section.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-08-23 19:40:12 +00:00
|
|
|
|
The right mouse button can be used to pop up a menu of operations.
|
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
=item Current Filter
|
|
|
|
|
|
1999-07-15 15:33:52 +00:00
|
|
|
|
A display filter can be entered into the strip at the bottom.
|
|
|
|
|
A filter for HTTP, HTTPS, and DNS traffic might look like this:
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-07-12 05:47:29 +00:00
|
|
|
|
tcp.port == 80 || tcp.port == 443 || tcp.port == 53
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
Selecting the I<Filter:> button lets you choose from a list of named
|
1999-07-12 05:47:29 +00:00
|
|
|
|
filters that you can optionally save. Pressing the Return or Enter
|
|
|
|
|
keys will cause the filter to be applied to the current list of packets.
|
1999-11-22 08:09:16 +00:00
|
|
|
|
Selecting the I<Reset> button clears the display filter so that all
|
|
|
|
|
packets are displayed.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
=back
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=item Preferences
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
The I<Preferences> dialog lets you control various personal preferences
|
|
|
|
|
for the behavior of B<Ethereal>.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=over 6
|
|
|
|
|
|
|
|
|
|
=item Printing Preferences
|
|
|
|
|
|
|
|
|
|
The radio buttons at the top of the I<Printing> page allow you choose
|
1999-12-16 08:05:46 +00:00
|
|
|
|
between printing packets with the I<File:Print Packet> menu item as text
|
|
|
|
|
or PostScript, and sending the output directly to a command or saving it
|
|
|
|
|
to a file. The I<Command:> text entry box is the command to send files
|
|
|
|
|
to (usually B<lpr>), and the I<File:> entry box lets you enter the name
|
|
|
|
|
of the file you wish to save to. Additionally, you can select the
|
|
|
|
|
I<File:> button to browse the file system for a particular save file.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
=item Column Preferences
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
The I<Columns> page lets you specify the number, title, and format
|
|
|
|
|
of each column in the packet list.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
The I<Column title> entry is used to specify the title of the column
|
|
|
|
|
displayed at the top of the packet list. The type of data that the column
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
displays can be specified using the I<Column format> option menu.
|
|
|
|
|
The row of buttons on the left perform the following actions:
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
1998-12-29 04:05:38 +00:00
|
|
|
|
=over 6
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item New
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
Adds a new column to the list.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item Change
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
Modifies the currently selected list item.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item Delete
|
|
|
|
|
|
|
|
|
|
Deletes the currently selected list item.
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
=item Up / Down
|
|
|
|
|
|
|
|
|
|
Moves the selected list item up or down one position.
|
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=item OK
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
Currently has no effect.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item Save
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
Saves the current column format as the default.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=item Cancel
|
|
|
|
|
|
|
|
|
|
Closes the dialog without making any changes.
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=back
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
=item TCP Stream Preferences
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
The I<TCP Streams> page can be used to change the color of the text
|
|
|
|
|
displayed in the TCP stream window. To change a color, simply select
|
|
|
|
|
an attribute from the "Set:" menu and use the color selector to get the
|
|
|
|
|
desired color. The new text colors are displayed in a sample window.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
1999-12-16 06:20:18 +00:00
|
|
|
|
=item GUI Preferences
|
|
|
|
|
|
|
|
|
|
The I<GUI> page is used to modify small aspects of the GUI to your own
|
Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:
"fetch" - fetch from the notebook tab any values not already
stored in "prefs", and store them there, but doesn't apply them;
"apply" - apply the settings in "prefs";
"destroy" - clean up any windows created from the tab.
As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.
Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.
Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".
Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows. Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".
Make the font one of the preferences we can set on the fly for protocol
tree widgets. Also make it something we can set on the fly for the
packet list widget.
svn path=/trunk/; revision=2317
2000-08-21 08:15:48 +00:00
|
|
|
|
personal taste:
|
|
|
|
|
|
|
|
|
|
=over 6
|
|
|
|
|
|
|
|
|
|
=item Scrollbars
|
|
|
|
|
|
|
|
|
|
The vertical scrollbars in the three panes can be set to be either on
|
|
|
|
|
the left or the right.
|
|
|
|
|
|
|
|
|
|
=item Selection Bars
|
|
|
|
|
|
|
|
|
|
The selection bar in the
|
Changed the protocol tree widget from a GtkTree to a GtkCTree. The two reasons
I did this:
First, Havoc Pennington, in "GTK+/Gnome Application Development", in
Appendix seciton A.3.88, recommends using GtkCTree instead of GtkTree
because GtkCtree is faster, and GtkTree has limitation on its total row
height: since it must fit inside a GdkWindow, it is limited to 32,768
pixels of height. GtkTree is more flexible with regards to the types of
widgets that can be placed in the tree, but since we deal only with text,
that doesn't matter, at least for now.
Secondly, a GtkTree doesn't allow arrow-key navigation (at least as far
as I could tell). It always bothered me that the up and down arrow keys
worked in the packet list and in the hex dump, but no in the protocol tree.
GtkCTree does allow arrow-key navigation. In fact, GtkCTree is a subclass
of GtkCList (the packet list widget), so they behave a lot alike.
I went ahead and fixed the selection bar which has been bothering Richard
for a long time now. :) In the GUI preferences dialogue, you can now set
both the packet list selection bar and the protocol tree selection bar
to either "browse" or "select" mode. "browse" mode is what you're used to:
the arrow keys move an outline of the selection bar, but do not change
the selection. "select" mode does change the selection when the arrow keys
are pressed. The default behavior is set to "select", which seems more
natural for a first-time user.
svn path=/trunk/; revision=1393
1999-12-29 20:10:12 +00:00
|
|
|
|
packet list and protocol tree can have either a "browse" or "select"
|
|
|
|
|
behavior. If the selection bar has a "browse" behavior, the arrow keys
|
|
|
|
|
will move an outline of the selection bar, allowing you to browse
|
|
|
|
|
the rest of the list or tree without changing the selection
|
|
|
|
|
until you press the space bar. If the selection bar has a "select"
|
|
|
|
|
behavior, the arrow keys will move the selection bar and change
|
|
|
|
|
the selection to the new item in the packet list or protocol tree.
|
2000-09-08 09:50:08 +00:00
|
|
|
|
The highlight method in the hex dump display for the selected protocol
|
|
|
|
|
item can be set to use either inverse video, or bold characters.
|
1999-12-16 06:20:18 +00:00
|
|
|
|
|
Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:
"fetch" - fetch from the notebook tab any values not already
stored in "prefs", and store them there, but doesn't apply them;
"apply" - apply the settings in "prefs";
"destroy" - clean up any windows created from the tab.
As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.
Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.
Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".
Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows. Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".
Make the font one of the preferences we can set on the fly for protocol
tree widgets. Also make it something we can set on the fly for the
packet list widget.
svn path=/trunk/; revision=2317
2000-08-21 08:15:48 +00:00
|
|
|
|
=item Fonts
|
|
|
|
|
|
|
|
|
|
The "Font..." button lets you select the font to be used for most text.
|
|
|
|
|
|
2000-08-23 19:40:12 +00:00
|
|
|
|
=item Colors
|
|
|
|
|
|
|
|
|
|
The "Colors..." button lets you select the colors to be used for instance
|
|
|
|
|
for the marked frames.
|
|
|
|
|
|
Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:
"fetch" - fetch from the notebook tab any values not already
stored in "prefs", and store them there, but doesn't apply them;
"apply" - apply the settings in "prefs";
"destroy" - clean up any windows created from the tab.
As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.
Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.
Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".
Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows. Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".
Make the font one of the preferences we can set on the fly for protocol
tree widgets. Also make it something we can set on the fly for the
packet list widget.
svn path=/trunk/; revision=2317
2000-08-21 08:15:48 +00:00
|
|
|
|
=back
|
|
|
|
|
|
2000-07-09 04:09:09 +00:00
|
|
|
|
=item Protocol Preferences
|
|
|
|
|
|
|
|
|
|
There are also pages for various protocols that Ethereal dissects,
|
|
|
|
|
controlling the way Ethereal handles those protocols.
|
|
|
|
|
|
1999-12-16 06:20:18 +00:00
|
|
|
|
=back
|
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
=item Edit Capture Filter List
|
|
|
|
|
|
|
|
|
|
=item Edit Display Filter List
|
|
|
|
|
|
|
|
|
|
=item Capture Filter
|
|
|
|
|
|
|
|
|
|
=item Display Filter
|
|
|
|
|
|
|
|
|
|
=item Read Filter
|
|
|
|
|
|
|
|
|
|
=item Search Filter
|
|
|
|
|
|
|
|
|
|
The I<Edit Capture Filter List> dialog lets you create, modify, and
|
|
|
|
|
delete capture filters, and the I<Edit Display Filter List> dialog lets
|
|
|
|
|
you create, modify, and delete display filters.
|
|
|
|
|
|
|
|
|
|
The I<Capture Filter> dialog lets you do all of the editing operations
|
|
|
|
|
listed, and also lets you choose or construct a filter to be used when
|
|
|
|
|
capturing packets.
|
|
|
|
|
|
|
|
|
|
The I<Display Filter> dialog lets you do all of the editing operations
|
|
|
|
|
listed, and also lets you choose or construct a filter to be used to
|
|
|
|
|
filter the current capture being viewed.
|
|
|
|
|
|
|
|
|
|
The I<Read Filter> dialog lets you do all of the editing operations
|
|
|
|
|
listed, and also lets you choose or construct a filter to be used to
|
|
|
|
|
as a read filter for a capture file you open.
|
1999-12-10 06:28:24 +00:00
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
The I<Search Filter> dialog lets you do all of the editing operations
|
|
|
|
|
listed, and also lets you choose or construct a filter expression to be
|
|
|
|
|
used in a find operation.
|
1999-12-10 06:28:24 +00:00
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
In all of those dialogs, the I<Filter name> entry specifies a
|
|
|
|
|
descriptive name for a filter, e.g. B<Web and DNS traffic>. The
|
|
|
|
|
I<Filter string> entry is the text that actually describes the filtering
|
|
|
|
|
action to take, as described above.The dialog buttons perform the
|
|
|
|
|
following actions:
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=over 6
|
|
|
|
|
|
|
|
|
|
=item New
|
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
If there is text in the two entry boxes, creates a new associated list
|
1999-12-10 06:28:24 +00:00
|
|
|
|
item.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=item Change
|
|
|
|
|
|
1999-12-10 06:28:24 +00:00
|
|
|
|
Modifies the currently selected list item to match what's in the entry
|
|
|
|
|
boxes.
|
|
|
|
|
|
|
|
|
|
=item Copy
|
|
|
|
|
|
|
|
|
|
Makes a copy of the currently selected list item.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=item Delete
|
|
|
|
|
|
|
|
|
|
Deletes the currently selected list item.
|
|
|
|
|
|
2001-01-02 01:32:21 +00:00
|
|
|
|
=item Add Expression...
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
For display filter expressions, pops up a dialog box to allow you to
|
|
|
|
|
construct a filter expression to test a particular field; it offers
|
|
|
|
|
lists of field names, and, when appropriate, lists from which to select
|
|
|
|
|
tests to perform on the field and values with which to compare it. In
|
|
|
|
|
that dialog box, the OK button will cause the filter expression you
|
|
|
|
|
constructed to be entered into the I<Filter string> entry at the current
|
|
|
|
|
cursor position.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=item OK
|
|
|
|
|
|
2001-01-28 21:30:53 +00:00
|
|
|
|
In the I<Capture Filter> dialog, closes the dialog box and makes the
|
|
|
|
|
filter in the I<Filter string> entry the filter in the I<Capture
|
|
|
|
|
Preferences> dialog. In the I<Display Filter> dialog, closes the dialog
|
|
|
|
|
box and makes the filter in the I<Filter string> entry the current
|
|
|
|
|
display filter, and applies it to the current capture. In the I<Read
|
|
|
|
|
Filter> dialog, closes the dialog box and makes the filter in the
|
|
|
|
|
I<Filter string> entry the filter in the I<Open Capture File> dialog.
|
|
|
|
|
In the I<Search Filter> dialog, closes the dialog box and makes the
|
|
|
|
|
filter in the I<Filter string> entry the filter in the I<Find Frame>
|
|
|
|
|
dialog.
|
2001-01-02 01:32:21 +00:00
|
|
|
|
|
|
|
|
|
=item Apply
|
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
Makes the filter in the I<Filter string> entry the current display
|
|
|
|
|
filter, and applies it to the current capture.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=item Save
|
|
|
|
|
|
Have separate capture and display filter lists; some filter dialog boxes
use the capture filter lists, and others use the display filter list, as
appropriate.
Have separate menu items for editing the capture and display filter
lists.
Have separate "~/.ethereal/cfilters" and "~/.ethereal/dfilters" files
for the two lists; if either of those files isn't found, we try
"~/.ethereal/filters", which means that you will start out with two
identical lists holding all your filters - if certain filters belong
only in one list, you'll have to delete them by hand from the other
list.
Do I/O error checking when reading and writing filter lists; when
writing a filter list, write it to a new file, and then rename the new
file on top of the old file, so that you don't lose your old filter list
if, for example, you run out of disk space or disk quota.
svn path=/trunk/; revision=2948
2001-01-28 09:13:10 +00:00
|
|
|
|
Saves the current filter list in F<$HOME/.ethereal/cfilters> if the list
|
|
|
|
|
of filters being edited is the list of capture filters or in
|
|
|
|
|
F<$HOME/.ethereal/dfilters> if the list of filters being edited is the
|
|
|
|
|
list of display filters.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
2001-01-28 21:30:53 +00:00
|
|
|
|
=item Close
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
2001-01-28 21:30:53 +00:00
|
|
|
|
Closes the dialog without doing anything with the filter in the I<Filter
|
|
|
|
|
string> entry.
|
1998-12-29 04:05:38 +00:00
|
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
1998-10-13 02:10:57 +00:00
|
|
|
|
=item Capture Preferences
|
|
|
|
|
|
|
|
|
|
The I<Capture Preferences> dialog lets you specify various parameters for
|
|
|
|
|
capturing live packet data.
|
|
|
|
|
|
1999-09-23 06:34:18 +00:00
|
|
|
|
The I<Interface:> combo box lets you specify the interface from which to
|
2000-09-15 05:32:49 +00:00
|
|
|
|
capture packet data, or the name of a FIFO from which to get the packet
|
|
|
|
|
data. The I<Count:> entry specifies the number of packets to capture.
|
|
|
|
|
Entering 0 will capture packets indefinitely. The I<Filter:> entry lets
|
|
|
|
|
you specify the capture filter using a tcpdump-style filter string as
|
|
|
|
|
described above. The I<File:> entry specifies the file to save to, as
|
|
|
|
|
in the I<Printer Options> dialog above. You can specify the maximum
|
|
|
|
|
number of bytes to capture per packet with the I<Capture length> entry,
|
|
|
|
|
can specify whether the interface is to be put in promiscuous mode or
|
|
|
|
|
not with the I<Capture packets in promiscuous mode> check box, can
|
|
|
|
|
specify that the display should be updated as packets are captured with
|
|
|
|
|
the I<Update list of packets in real time> check box, can specify
|
|
|
|
|
whether in such a capture the packet list pane should scroll to show the
|
|
|
|
|
most recently captured packets with the I<Automatic scrolling in live
|
|
|
|
|
capture> check box, and can specify whether addresses should be
|
|
|
|
|
translated to names in the display with the I<Enable name resolution>
|
|
|
|
|
check box.
|
1998-10-13 02:10:57 +00:00
|
|
|
|
|
1999-06-19 08:48:30 +00:00
|
|
|
|
=item Display Options
|
|
|
|
|
|
2000-11-01 08:31:36 +00:00
|
|
|
|
The I<Display Options> dialog lets you specify the format of the time
|
|
|
|
|
stamp in the packet list. You can select "Time of day" for absolute
|
|
|
|
|
time stamps, "Date and time of day" for absolute time stamps with the
|
|
|
|
|
date, "Seconds since beginning of capture" for relative time stamps, or
|
1999-09-23 06:34:18 +00:00
|
|
|
|
"Seconds since previous frame" for delta time stamps. You can also
|
|
|
|
|
specify whether, when the display is updated as packets are captured,
|
|
|
|
|
the list should automatically scroll to show the most recently captured
|
2000-11-01 08:31:36 +00:00
|
|
|
|
packets or not and whether addresses should be translated to names in
|
|
|
|
|
the display.
|
1999-06-19 08:48:30 +00:00
|
|
|
|
|
1999-12-13 12:29:42 +00:00
|
|
|
|
=item Plugins
|
|
|
|
|
|
2001-01-28 21:22:54 +00:00
|
|
|
|
The I<Plugins> dialog lets you view the dissector plugin modules
|
|
|
|
|
available on your system.
|
|
|
|
|
|
|
|
|
|
The I<Plugins List> shows the name and version of each dissector plugin
|
|
|
|
|
module found on your system. The plugins are searched in the following
|
|
|
|
|
directories: F</usr/share/ethereal/plugins>,
|
|
|
|
|
F</usr/local/share/ethereal/plugins> and F<~/.ethereal/plugins>. Note
|
|
|
|
|
that a dissector plugin module may support more than one protocol; there
|
|
|
|
|
is not necessarily a one-to-one correspondence between dissector plugin
|
|
|
|
|
modules and protocols. Protocols supported by a dissector plugin module
|
|
|
|
|
are enabled and disabled using the I<Edit:Protocols> dialog box, just as
|
|
|
|
|
protocols built into Ethereal are.
|
1999-12-13 12:29:42 +00:00
|
|
|
|
|
1999-10-10 16:25:28 +00:00
|
|
|
|
=head1 CAPTURE FILTER SYNTAX
|
|
|
|
|
|
|
|
|
|
See manual page of tcpdump(8).
|
|
|
|
|
|
1999-07-15 15:33:52 +00:00
|
|
|
|
=head1 DISPLAY FILTER SYNTAX
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Display filters help you remove the noise from a packet trace and let
|
|
|
|
|
you see only the packets that interest you. If a packet meets the
|
|
|
|
|
requirements expressed in your display filter, then it is displayed in
|
|
|
|
|
the list of packets. Display filters let you compare the fields within
|
|
|
|
|
a protocol against a specific value, compare fields against fields, and
|
|
|
|
|
to check the existence of specified fields or protocols.
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
The simplest display filter allows you to check for the existence of a
|
|
|
|
|
protocol or field. If you want to see all packets which contain the IPX
|
|
|
|
|
protocol, the filter would be "ipx". (Without the quotation marks) To
|
|
|
|
|
see all packets that contain a Token-Ring RIF field, use "tr.rif".
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Fields can also be compared against values. The comparison operators
|
|
|
|
|
can be expressed either through C-like symbols, or through English-like
|
|
|
|
|
abbreviations:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
eq, == Equal
|
|
|
|
|
ne, != Not equal
|
|
|
|
|
gt, > Greater than
|
|
|
|
|
lt, < Less Than
|
|
|
|
|
ge, >= Greater than or Equal to
|
|
|
|
|
le, <= Less than or Equal to
|
|
|
|
|
|
|
|
|
|
Furthermore, each protocol field is typed. The types are:
|
|
|
|
|
|
1999-10-14 17:21:12 +00:00
|
|
|
|
Unsigned integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
|
|
|
|
|
Signed integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
|
1999-08-27 19:27:22 +00:00
|
|
|
|
Boolean
|
1999-08-03 16:33:12 +00:00
|
|
|
|
Ethernet address (6 bytes)
|
|
|
|
|
Byte string (n-number of bytes)
|
|
|
|
|
IPv4 address
|
1999-10-14 17:21:12 +00:00
|
|
|
|
IPv6 address
|
|
|
|
|
IPX network number
|
1999-10-19 05:45:56 +00:00
|
|
|
|
String (text)
|
|
|
|
|
Double-precision floating point number
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
An integer may be expressed in decimal, octal, or hexadecimal notation.
|
|
|
|
|
The following three display filters are equivalent:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
frame.pkt_len > 10
|
|
|
|
|
frame.pkt_len > 012
|
|
|
|
|
frame.pkt_len > 0xa
|
|
|
|
|
|
2001-02-23 07:17:07 +00:00
|
|
|
|
Boolean values are either true or false. In a display filter expression
|
|
|
|
|
testing the value of a Boolean field, "true" is expressed as 1 or any
|
|
|
|
|
other non-zero value, and "false" is expressed as zero. For example, a
|
|
|
|
|
token-ring packet's source route field is boolean. To find any
|
|
|
|
|
source-routed packets, a display filter would be:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
2001-02-23 07:17:07 +00:00
|
|
|
|
tr.sr == 1
|
1999-08-27 19:27:22 +00:00
|
|
|
|
|
2001-02-23 07:17:07 +00:00
|
|
|
|
Non source-routed packets can be found with:
|
1999-08-27 19:27:22 +00:00
|
|
|
|
|
2001-02-23 07:17:07 +00:00
|
|
|
|
tr.sr == 0
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Ethernet addresses, as well as a string of bytes, are represented in hex
|
|
|
|
|
digits. The hex digits may be separated by colons, periods, or hyphens:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
fddi.dst eq ff:ff:ff:ff:ff:ff
|
|
|
|
|
ipx.srcnode == 0.0.0.0.0.1
|
1999-09-16 01:24:01 +00:00
|
|
|
|
eth.src == aa-aa-aa-aa-aa-aa
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
If a string of bytes contains only one byte, then it is represented as
|
|
|
|
|
an unsigned integer. That is, if you are testing for hex value 'ff' in
|
|
|
|
|
a one-byte byte-string, you must compare it agains '0xff' and not 'ff'.
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
IPv4 addresses can be represented in either dotted decimal notation, or
|
|
|
|
|
by using the hostname:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
ip.dst eq www.mit.edu
|
|
|
|
|
ip.src == 192.168.1.1
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
IPv4 address can be compared with the same logical relations as numbers:
|
|
|
|
|
eq, ne, gt, ge, lt, and le. The IPv4 address is stored in host order,
|
|
|
|
|
so you do not have to worry about how the endianness of an IPv4 address
|
|
|
|
|
when using it in a display filter.
|
1999-11-15 06:32:38 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
IPX networks are represented by unsigned 32-bit integers. Most likely
|
|
|
|
|
you will be using hexadecimal when testing for IPX network values:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
ipx.srcnet == 0xc0a82c00
|
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
A slice operator also exists. You can check the substring
|
1999-12-16 08:05:46 +00:00
|
|
|
|
(byte-string) of any protocol or field. For example, you can filter on
|
|
|
|
|
the vendor portion of an ethernet address (the first three bytes) like
|
|
|
|
|
this:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-09-16 01:24:01 +00:00
|
|
|
|
eth.src[0:3] == 00:00:83
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
If the length of your byte-slice is only one byte, then it is still
|
|
|
|
|
represented in hex, but without the preceding "0x":
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
llc[3] == aa
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
You can use the slice operator on a protocol name, too. And
|
1999-12-16 08:05:46 +00:00
|
|
|
|
remember, the "frame" protocol encompasses the entire packet, allowing
|
|
|
|
|
you to look at the nth byte of a packet regardless of its frame type
|
|
|
|
|
(Ethernet, token-ring, etc.).
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
token[0:5] ne 0.0.0.1.1
|
|
|
|
|
ipx[0:2] == ff:ff
|
|
|
|
|
llc[3:1] eq 0xaa
|
|
|
|
|
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
The following syntax governs slices:
|
|
|
|
|
|
|
|
|
|
[i:j] i = start_offset, j = length
|
|
|
|
|
[i-j] i = start_offet, j = end_offset, inclusive.
|
|
|
|
|
[i] i = start_offset, length = 1
|
|
|
|
|
[:j] start_offset = 0, length = j
|
|
|
|
|
[i:] start_offset = i, end_offset = end_of_field
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
2001-03-06 18:38:47 +00:00
|
|
|
|
|
|
|
|
|
Offsets and lengths can be negative, in which case they indicate the offset from the
|
|
|
|
|
*end* of the field. Here's how to check the last 4 bytes of a frame:
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
|
|
|
|
frame[-4:4] == 0.1.2.3
|
2001-03-06 18:38:47 +00:00
|
|
|
|
or
|
|
|
|
|
frame[-4:] == 0.1.2.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can create complex concatenations of slices using the comma operator:
|
|
|
|
|
|
|
|
|
|
field[1,3-5,9:] == 01:03:04:05:09:0a:0b
|
|
|
|
|
|
1999-10-14 17:21:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
All the above tests can be combined together with logical expressions.
|
|
|
|
|
These too are expressable in C-like syntax or with English-like
|
|
|
|
|
abbreviations:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
and, && Logical AND
|
|
|
|
|
or, || Logical OR
|
|
|
|
|
not, ! Logical NOT
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
Expressions can be grouped by parentheses as well. The following are
|
|
|
|
|
all valid display filter expression:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
tcp.port == 80 and ip.src == 192.168.2.1
|
|
|
|
|
not llc
|
|
|
|
|
(ipx.srcnet == 0xbad && ipx.srnode == 0.0.0.0.0.1) || ip
|
|
|
|
|
tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
A special caveat must be given regarding fields that occur more than
|
|
|
|
|
once per packet. "ip.addr" occurs twice per IP packet, once for the
|
|
|
|
|
source address, and once for the destination address. Likewise,
|
|
|
|
|
tr.rif.ring fields can occur more than once per packet. The following
|
|
|
|
|
two expressions are not equivalent:
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
ip.addr ne 192.168.4.1
|
|
|
|
|
not ip.addr eq 192.168.4.1
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
The first filter says "show me all packets where an ip.addr exists that
|
|
|
|
|
does not equal 192.168.4.1". That is, as long as one ip.addr in the
|
|
|
|
|
packet does not equal 192.168.44.1, the packet passes the display
|
|
|
|
|
filter. The second filter "don't show me any packets that have at least
|
|
|
|
|
one ip.addr field equal to 192.168.4.1". If one ip.addr is 192.168.4.1,
|
|
|
|
|
the packet does not pass. If B<neither> ip.addr fields is 192.168.4.1,
|
|
|
|
|
then the packet passes.
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
It is easy to think of the 'ne' and 'eq' operators as having an implict
|
|
|
|
|
"exists" modifier when dealing with multiply-recurring fields. "ip.addr
|
|
|
|
|
ne 192.168.4.1" can be thought of as "there exists an ip.addr that does
|
|
|
|
|
not equal 192.168.4.1".
|
1999-08-03 16:33:12 +00:00
|
|
|
|
|
|
|
|
|
Be careful with multiply-recurring fields; they can be confusing.
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
The following is a table of protocol and protocol fields that are
|
|
|
|
|
filterable in B<Ethereal>. The abbreviation of the protocol or field is
|
|
|
|
|
given. This abbreviation is what you use in the display filter. The
|
|
|
|
|
type of the field is also given.
|
1999-07-15 15:33:52 +00:00
|
|
|
|
|
|
|
|
|
=insert_dfilter_table
|
|
|
|
|
|
1999-11-20 03:39:27 +00:00
|
|
|
|
=head1 FILES
|
1999-11-20 03:56:10 +00:00
|
|
|
|
|
2000-07-09 04:09:09 +00:00
|
|
|
|
F</usr/local/etc/ethereal.conf> and F<$HOME/.ethereal/preferences>
|
|
|
|
|
contain system-wide and personal preference settings, respectively. The
|
|
|
|
|
file contains preference settings of the form I<prefname>B<:>I<value>,
|
|
|
|
|
one per line, where I<prefname> is the name of the preference (which is
|
|
|
|
|
the same name that would appear in the preference file), and I<value> is
|
|
|
|
|
the value to which it should be set; white space is allowed between B<:>
|
|
|
|
|
and I<value>. A preference setting can be continued on subsequent lines
|
|
|
|
|
by indenting the continuation lines with white space. A B<#> character
|
|
|
|
|
starts a comment that runs to the end of the line.
|
|
|
|
|
|
|
|
|
|
The system-wide preference file is read first, if it exists, overriding
|
|
|
|
|
B<Ethereal>'s default values; the personal preferences file is then
|
|
|
|
|
read, if it exists, overriding default values and values read from the
|
|
|
|
|
system-wide preference file.
|
|
|
|
|
|
|
|
|
|
Note that whenever the preferences are saved by using the I<Save> button
|
|
|
|
|
in the I<Edit:Preferences> dialog box, F<$HOME/.ethereal/preferences>
|
|
|
|
|
will be overwritten with the new settings, destroying any comments that
|
|
|
|
|
were in the file.
|
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
F</etc/ethers> is consulted to correlate 6-byte hardware addresses to
|
|
|
|
|
names. If an address is not found in F</etc/ethers>, the
|
|
|
|
|
F<$HOME/.ethereal/ethers> file is consulted next. Each line contains
|
1999-12-16 08:05:46 +00:00
|
|
|
|
one hardware address and name, separated by whitespace. The digits of
|
|
|
|
|
the hardware address are separated by either a colon (:), a dash (-), or
|
|
|
|
|
a period (.). The following three lines are valid lines of an ethers
|
|
|
|
|
file:
|
1999-11-21 16:32:23 +00:00
|
|
|
|
|
|
|
|
|
ff:ff:ff:ff:ff:ff Broadcast
|
|
|
|
|
c0-00-ff-ff-ff-ff TR_broadcast
|
|
|
|
|
00.00.00.00.00.00 Zero_broadcast
|
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
F</usr/local/etc/manuf> matches the 3-byte vendor portion of a 6-byte
|
1999-12-16 08:05:46 +00:00
|
|
|
|
hardware address with the manufacturer's name. The format of the file
|
2000-05-10 06:00:22 +00:00
|
|
|
|
is the same as the F</etc/ethers> file, except that each address is
|
1999-12-16 08:05:46 +00:00
|
|
|
|
three bytes instead of six.
|
1999-11-21 16:32:23 +00:00
|
|
|
|
|
2000-05-10 06:00:22 +00:00
|
|
|
|
F</etc/ipxnets> and F<$HOME/.ethereal/ipxnets> correlate 4-byte IPX
|
|
|
|
|
network numbers to names. The format is the same as the F</etc/ethers>
|
1999-12-16 08:05:46 +00:00
|
|
|
|
file, except that each address if four bytes instead of six.
|
|
|
|
|
Additionally, the address can be represented a single hexadecimal
|
|
|
|
|
number, as is more common in the IPX world, rather than four hex octets.
|
|
|
|
|
For example, these four lines are valid lines of an ipxnets file.
|
1999-11-21 16:32:23 +00:00
|
|
|
|
|
|
|
|
|
C0.A8.2C.00 HR
|
|
|
|
|
c0-a8-1c-00 CEO
|
|
|
|
|
00:00:BE:EF IT_Server1
|
|
|
|
|
110f FileServer3
|
1999-11-20 03:39:27 +00:00
|
|
|
|
|
1998-09-16 02:39:15 +00:00
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
|
2000-11-07 19:54:53 +00:00
|
|
|
|
L<tethereal(1)>, L<editcap(1)>, L<tcpdump(8)>, L<pcap(3)>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
|
1999-12-16 08:05:46 +00:00
|
|
|
|
The latest version of B<Ethereal> can be found at
|
2000-10-09 03:10:01 +00:00
|
|
|
|
B<http://www.ethereal.com>.
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
=head1 AUTHORS
|
|
|
|
|
|
|
|
|
|
Original Author
|
|
|
|
|
-------- ------
|
2000-11-07 19:54:53 +00:00
|
|
|
|
Gerald Combs <gerald@ethereal.com>
|
1998-09-16 02:39:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Contributors
|
|
|
|
|
------------
|
2000-04-12 20:24:43 +00:00
|
|
|
|
Gilbert Ramirez <gram@xiexie.org>
|
1999-04-06 16:24:50 +00:00
|
|
|
|
Hannes R. Boehm <hannes@boehm.org>
|
|
|
|
|
Mike Hall <mlh@io.com>
|
|
|
|
|
Bobo Rajec <bobo@bsp-consulting.sk>
|
|
|
|
|
Laurent Deniel <deniel@worldnet.fr>
|
|
|
|
|
Don Lafontaine <lafont02@cn.ca>
|
1999-11-11 08:45:34 +00:00
|
|
|
|
Guy Harris <guy@alum.mit.edu>
|
1999-04-06 16:24:50 +00:00
|
|
|
|
Simon Wilkinson <sxw@dcs.ed.ac.uk>
|
|
|
|
|
Joerg Mayer <jmayer@telemation.de>
|
|
|
|
|
Martin Maciaszek <fastjack@i-s-o.net>
|
|
|
|
|
Didier Jorand <Didier.Jorand@alcatel.fr>
|
|
|
|
|
Jun-ichiro itojun Hagino <itojun@iijlab.net>
|
|
|
|
|
Richard Sharpe <sharpe@ns.aus.com>
|
1999-05-12 06:04:47 +00:00
|
|
|
|
John McDermott <jjm@jkintl.com>
|
1999-06-11 15:30:55 +00:00
|
|
|
|
Jeff Jahr <jjahr@shastanets.com>
|
|
|
|
|
Brad Robel-Forrest <bradr@watchguard.com>
|
1999-06-11 16:45:02 +00:00
|
|
|
|
Ashok Narayanan <ashokn@cisco.com>
|
1999-06-22 22:02:39 +00:00
|
|
|
|
Aaron Hillegass <aaron@classmax.com>
|
1999-07-08 04:23:28 +00:00
|
|
|
|
Jason Lango <jal@netapp.com>
|
|
|
|
|
Johan Feyaerts <Johan.Feyaerts@siemens.atea.be>
|
2000-05-28 17:04:47 +00:00
|
|
|
|
Olivier Abad <oabad@cybercable.fr>
|
1999-08-01 05:24:19 +00:00
|
|
|
|
Thierry Andry <Thierry.Andry@advalvas.be>
|
1999-08-10 20:06:39 +00:00
|
|
|
|
Jeff Foster <jjfoste@woodward.com>
|
1999-09-14 08:06:47 +00:00
|
|
|
|
Peter Torvals <petertv@xoommail.com>
|
1999-10-11 18:04:48 +00:00
|
|
|
|
Christophe Tronche <ch.tronche@computer.org>
|
1999-10-14 01:29:07 +00:00
|
|
|
|
Nathan Neulinger <nneul@umr.edu>
|
1999-10-22 06:31:39 +00:00
|
|
|
|
Tomislav Vujec <tvujec@carnet.hr>
|
1999-10-24 00:56:11 +00:00
|
|
|
|
Kojak <kojak@bigwig.net>
|
1999-10-29 01:04:44 +00:00
|
|
|
|
Uwe Girlich <Uwe.Girlich@philosys.de>
|
1999-10-30 06:42:10 +00:00
|
|
|
|
Warren Young <tangent@mail.com>
|
1999-11-17 02:17:29 +00:00
|
|
|
|
Heikki Vatiainen <hessu@cs.tut.fi>
|
1999-11-23 04:43:44 +00:00
|
|
|
|
Greg Hankins <gregh@twoguys.org>
|
1999-12-06 20:27:40 +00:00
|
|
|
|
Jerry Talkington <jerryt@netapp.com>
|
1999-12-07 22:59:31 +00:00
|
|
|
|
Dave Chapeskie <dchapes@ddm.on.ca>
|
|
|
|
|
James Coe <jammer@cin.net>
|
1999-12-12 22:40:10 +00:00
|
|
|
|
Bert Driehuis <driehuis@playbeing.org>
|
1999-12-15 04:34:44 +00:00
|
|
|
|
Stuart Stanley <stuarts@mxmail.net>
|
2000-01-07 09:13:21 +00:00
|
|
|
|
John Thomes <john@ensemblecom.com>
|
2000-01-10 23:22:30 +00:00
|
|
|
|
Laurent Cazalet <laurent.cazalet@mailclub.net>
|
|
|
|
|
Thomas Parvais <thomas.parvais@advalvas.be>
|
2000-01-20 19:16:41 +00:00
|
|
|
|
Gerrit Gehnen <G.Gehnen@atrie.de>
|
2000-01-27 07:09:45 +00:00
|
|
|
|
Craig Newell <craign@cheque.uq.edu.au>
|
2000-02-03 06:31:30 +00:00
|
|
|
|
Ed Meaney <emeaney@altiga.com>
|
2000-02-09 17:15:59 +00:00
|
|
|
|
Dietmar Petras <DPetras@ELSA.de>
|
2000-02-28 08:17:39 +00:00
|
|
|
|
Fred Reimer <fwr@ga.prestige.net>
|
2000-03-20 18:30:59 +00:00
|
|
|
|
Florian Lohoff <flo@rfc822.org>
|
2000-03-21 04:15:14 +00:00
|
|
|
|
Jochen Friedrich <jochen+ethereal@scram.de>
|
2000-03-21 06:52:13 +00:00
|
|
|
|
Paul Welchinski <paul.welchinski@telusplanet.net>
|
2000-03-28 07:12:36 +00:00
|
|
|
|
Doug Nazar <nazard@dragoninc.on.ca>
|
2000-03-28 08:11:52 +00:00
|
|
|
|
Andreas Sikkema <andreas.sikkema@philips.com>
|
2000-04-12 20:43:53 +00:00
|
|
|
|
Mark Muhlestein <mmm@netapp.com>
|
2000-04-15 19:55:24 +00:00
|
|
|
|
Graham Bloice <graham.bloice@trihedral.com>
|
2000-04-15 22:11:26 +00:00
|
|
|
|
Ralf Schneider <ralf.schneider@alcatel.se>
|
2000-10-03 22:49:46 +00:00
|
|
|
|
Yaniv Kaul <ykaul@netvision.net.il>
|
2000-05-18 08:41:22 +00:00
|
|
|
|
Paul Ionescu <ipaul@romsys.ro>
|
2000-05-25 08:32:13 +00:00
|
|
|
|
Mark Burton <markb@ordern.com>
|
2001-02-14 17:01:44 +00:00
|
|
|
|
Stefan Raab <sraab@cisco.com>
|
2000-06-15 04:23:06 +00:00
|
|
|
|
Mark Clayton <clayton@shore.net>
|
2000-07-14 03:23:50 +00:00
|
|
|
|
Michael Rozhavsky <mike@tochna.technion.ac.il>
|
2000-07-17 20:34:00 +00:00
|
|
|
|
Dug Song <dugsong@monkey.org>
|
2000-07-22 20:00:29 +00:00
|
|
|
|
Michael Tuexen <Michael.Tuexen@icn.siemens.de>
|
|
|
|
|
Bruce Korb <bkorb@sco.com>
|
2000-07-25 21:26:08 +00:00
|
|
|
|
Jose Pedro Oliveira <jpo@di.uminho.pt>
|
2000-07-30 07:16:11 +00:00
|
|
|
|
David Frascone <dave@frascone.com>
|
2000-08-04 22:56:27 +00:00
|
|
|
|
Peter Kjellerstedt <pkj@axis.com>
|
2000-08-09 06:15:14 +00:00
|
|
|
|
Phil Techau <phil_t@altavista.net>
|
2000-08-11 03:32:53 +00:00
|
|
|
|
Wes Hardaker <wjhardaker@ucdavis.edu>
|
2000-08-12 05:41:10 +00:00
|
|
|
|
Robert Tsai <rtsai@netapp.com>
|
2000-09-13 07:47:21 +00:00
|
|
|
|
Craig Metz <cmetz@inner.net>
|
2000-10-02 17:42:38 +00:00
|
|
|
|
Per Flock <per.flock@axis.com>
|
2000-10-07 06:58:39 +00:00
|
|
|
|
Jack Keane <jkeane@OpenReach.com>
|
2000-10-11 04:12:06 +00:00
|
|
|
|
Brian Wellington <bwelling@xbill.org>
|
2000-10-11 06:01:16 +00:00
|
|
|
|
Santeri Paavolainen <santtu@ssh.com>
|
2000-10-12 15:05:27 +00:00
|
|
|
|
Ulrich Kiermayr <uk@ap.univie.ac.at>
|
2000-11-04 03:30:41 +00:00
|
|
|
|
Neil Hunter <neil.hunter@energis-squared.com>
|
2000-11-05 23:45:59 +00:00
|
|
|
|
Ralf Holzer <ralf@well.com>
|
2000-11-07 07:46:22 +00:00
|
|
|
|
Craig Rodrigues <rodrigc@mediaone.net>
|
2000-11-09 10:04:48 +00:00
|
|
|
|
Ed Warnicke <hagbard@physics.rutgers.edu>
|
2000-11-15 05:42:35 +00:00
|
|
|
|
Johan Jorgensen <johan.jorgensen@axis.com>
|
2000-11-15 20:10:22 +00:00
|
|
|
|
Frank Singleton <frank.singleton@ericsson.com>
|
2000-11-30 09:31:52 +00:00
|
|
|
|
Kevin Shi <techishi@ms22.hinet.net>
|
2000-12-01 00:38:20 +00:00
|
|
|
|
Mike Frisch <mfrisch@saturn.tlug.org>
|
2000-12-14 08:20:31 +00:00
|
|
|
|
Burke Lau <burke_lau@agilent.com>
|
2000-12-14 08:35:08 +00:00
|
|
|
|
Martti Kuparinen <martti.kuparinen@nomadiclab.com>
|
2001-01-03 03:40:29 +00:00
|
|
|
|
David Hampton <dhampton@mac.com>
|
2001-01-13 02:40:57 +00:00
|
|
|
|
Kent Engstr<74>m <kent@unit.liu.se>
|
2001-01-16 20:56:14 +00:00
|
|
|
|
Ronnie Sahlberg <rsahlber@bigpond.net.au>
|
2001-01-30 05:54:19 +00:00
|
|
|
|
Alexandre P. Ferreira <alexandref@spliceip.com.br>
|
2001-02-09 00:11:44 +00:00
|
|
|
|
Simharajan Srishylam <Simharajan.Srishylam@netapp.com>
|
2001-02-13 00:01:08 +00:00
|
|
|
|
Greg Kilfoyle <gregk@redback.com>
|
2001-02-21 19:35:50 +00:00
|
|
|
|
James E. Flemer <jflemer@acm.jhu.edu>
|
2001-02-27 00:27:27 +00:00
|
|
|
|
Peter Lei <peterlei@cisco.com>
|
2001-03-08 19:15:33 +00:00
|
|
|
|
Thomas Gimpel <thomas.gimpel@ferrari.de>
|
2001-03-09 04:35:25 +00:00
|
|
|
|
Albert Chin <china@thewrittenword.com>
|
2001-03-11 02:08:32 +00:00
|
|
|
|
Charles Levert <charles@comm.polymtl.ca>
|
2001-03-18 02:13:33 +00:00
|
|
|
|
Todd Sabin <tas@webspan.net>
|
2001-03-26 10:28:34 +00:00
|
|
|
|
Eduardo P<>rez Ureta <eperez@dei.inf.uc3m.es>
|
1999-06-11 15:30:55 +00:00
|
|
|
|
|
1998-09-17 02:01:50 +00:00
|
|
|
|
Alain Magloire <alainm@rcsm.ece.mcgill.ca> was kind enough to give his
|
1998-09-16 02:39:15 +00:00
|
|
|
|
permission to use his version of snprintf.c.
|
|
|
|
|
|
|
|
|
|
Dan Lasley <dlasley@promus.com> gave permission for his dumpit() hex-dump
|
|
|
|
|
routine to be used.
|