Ringbuffer rework.
[obnox/wireshark/wip.git] / doc / ethereal.pod.template
1
2 =head1 NAME
3
4 ethereal - Interactively browse network traffic
5
6 =head1 SYNOPSYS
7
8 B<ethereal>
9 S<[ B<-a> capture autostop condition ] ...>
10 S<[ B<-b> number of ring buffer files [:duration] ]>
11 S<[ B<-B> byte view height ]>
12 S<[ B<-c> count ]>
13 S<[ B<-f> capture filter expression ]>
14 S<[ B<-h> ]>
15 S<[ B<-i> interface ]> 
16 S<[ B<-k> ]>
17 S<[ B<-l> ]>
18 S<[ B<-m> font ]>
19 S<[ B<-n> ]>
20 S<[ B<-N> resolving flags ] >
21 S<[ B<-o> preference setting ] ...>
22 S<[ B<-p> ]>
23 S<[ B<-P> packet list height ]>
24 S<[ B<-Q> ]>
25 S<[ B<-r> infile ]>
26 S<[ B<-R> display filter expression ]>
27 S<[ B<-S> ]>
28 S<[ B<-s> snaplen ]>
29 S<[ B<-T> tree view height ]>
30 S<[ B<-t> time stamp format ]>
31 S<[ B<-v> ]>
32 S<[ B<-w> savefile]>
33 S<[ B<-z> statistics-string ]>
34 S<[ infile ]>
35
36 =head1 DESCRIPTION
37
38 B<Ethereal> is a GUI network protocol analyzer.  It lets you
39 interactively browse packet data from a live network or from a
40 previously saved capture file.  B<Ethereal>'s native capture file format
41 is B<libpcap> format, which is also the format used by B<tcpdump> and
42 various other tools.  In addition, B<Ethereal> can read capture files
43 from B<snoop> and B<atmsnoop>, Shomiti/Finisar B<Surveyor>, Novell
44 B<LANalyzer>, Network General/Network Associates DOS-based B<Sniffer>
45 (compressed or uncompressed), Microsoft B<Network Monitor>, AIX's
46 B<iptrace>, Cinco Networks B<NetXRay>, Network Associates Windows-based
47 B<Sniffer>, AG Group/WildPackets B<EtherPeek>/B<TokenPeek>/B<AiroPeek>,
48 B<RADCOM>'s WAN/LAN analyzer, B<Lucent/Ascend> router debug output,
49 HP-UX's B<nettl>, the dump output from B<Toshiba's> ISDN routers, the
50 output from B<i4btrace> from the ISDN4BSD project, the output in
51 B<IPLog> format from the Cisco Secure Intrusion Detection System, B<pppd
52 logs> (pppdump format), the output from VMS's
53 B<TCPIPtrace>/B<TCPtrace>/B<UCX$TRACE> utilities, the text output from
54 the B<DBS Etherwatch> VMS utility, traffic capture files from Visual
55 Networks' Visual UpTime, and the output from B<CoSine> L2 debug.  There
56 is no need to tell B<Ethereal> what type of file you are reading; it
57 will determine the file type by itself.  B<Ethereal> is also capable of
58 reading any of these file formats if they are compressed using gzip. 
59 B<Ethereal> recognizes this directly from the file; the '.gz' extension
60 is not required for this purpose.
61
62 Like other protocol analyzers, B<Ethereal>'s main window shows 3 views
63 of a packet.  It shows a summary line, briefly describing what the
64 packet is.  A protocol tree is shown, allowing you to drill down to
65 exact protocol or field that you interested in.  Finally, a hex dump
66 shows you exactly what the packet looks like when it goes over the wire.
67
68 In addition, B<Ethereal> has some features that make it unique.  It can
69 assemble all the packets in a TCP conversation and show you the ASCII
70 (or EBCDIC, or hex) data in that conversation.  Display filters in
71 B<Ethereal> are very powerful; more fields are filterable in B<Ethereal>
72 than in other protocol analyzers, and the syntax you can use to create
73 your filters is richer.  As B<Ethereal> progresses, expect more and more
74 protocol fields to be allowed in display filters.
75
76 Packet capturing is performed with the pcap library.  The capture filter
77 syntax follows the rules of the pcap library.  This syntax is different
78 from the display filter syntax.
79
80 Compressed file support uses (and therefore requires) the zlib library. 
81 If the zlib library is not present, B<Ethereal> will compile, but will
82 be unable to read compressed files.
83
84 The pathname of a capture file to be read can be specified with the
85 B<-r> option or can be specified as a command-line argument.
86
87 =head1 OPTIONS
88
89 =over 4
90
91 Most users will want to start B<Ethereal> without options and configure
92 it from the menus instead. Those users may just skip this section.
93
94 =item -a
95
96 Specify a criterion that specifies when B<Ethereal> is to stop writing
97 to a capture file.  The criterion is of the form I<test>B<:>I<value>,
98 where I<test> is one of:
99
100 =for man .RS
101
102 =for html <P><DL>
103
104 =item duration
105
106 Stop writing to a capture file after I<value> seconds have elapsed.
107
108 =item filesize
109
110 Stop writing to a capture file after it reaches a size of I<value>
111 kilobytes (where a kilobyte is 1000 bytes, not 1024 bytes).
112
113 =for man .RE
114
115 =for html </DL>
116
117 =item -b
118
119 If a maximum capture file size was specified, cause B<Ethereal> to run
120 in "ring buffer" mode, with the specified number of files.  In "ring
121 buffer" mode, B<Ethereal> will write to several capture files. 
122 Their name is based on the number of the file and on the creation date 
123 and time.
124
125 When the first capture file fills up, B<Ethereal> will switch to writing
126 to the next file, until it fills up the last file, at which point it'll
127 discard the data in the first file (unless 0 is specified, in which case,
128 the number of files is unlimited) and start writing to that file and so on.
129
130 If the optional duration is specified, B<Ethereal> will switch also 
131 to the next file when the specified number of seconds has elapsed even
132 if the current file is not completely fills up.
133
134 =item -B
135
136 Set the initial height of the byte view (bottom) pane.
137
138 =item -c
139
140 Set the default number of packets to read when capturing live
141 data.
142
143 =item -f
144
145 Set the capture filter expression.
146
147 =item -h
148
149 Print the version and options and exit.
150
151 =item -i
152
153 Set the name of the network interface or pipe to use for live packet
154 capture.
155
156 Network interface names should match one of the names listed in
157 "B<tethereal -D>".  If you're using Unix, "B<netstat -i>" or "B<ifconfig
158 -a>" might also work to list interface names, although not all versions
159 of Unix support the B<-a> flag to B<ifconfig>.
160
161 Pipe names should be either the name of a FIFO (named pipe) or ``-'' to
162 read data from the standard input.  Data read from pipes must be in
163 standard libpcap format.
164
165 =item -k
166
167 Start the capture session immediately.  If the B<-i> flag was
168 specified, the capture uses the specified interface.  Otherwise,
169 B<Ethereal> searches the list of interfaces, choosing the first
170 non-loopback interface if there are any non-loopback interfaces, and
171 choosing the first loopback interface if there are no non-loopback
172 interfaces; if there are no interfaces, B<Ethereal> reports an error and
173 doesn't start the capture.
174
175 =item -l
176
177 Turn on automatic scrolling if the packet display is being updated
178 automatically as packets arrive during a capture (as specified by the
179 B<-S> flag).
180
181 =item -m
182
183 Set the name of the font used by B<Ethereal> for most text. 
184 B<Ethereal> will construct the name of the bold font used for the data
185 in the byte view pane that corresponds to the field selected in the
186 protocol tree pane from the name of the main text font.
187
188 =item -n
189
190 Disable network object name resolution (such as hostname, TCP and UDP port
191 names).
192
193 =item -N
194
195 Turn on name resolving for particular types of addresses and port
196 numbers, with name resolving for other types of addresses and port
197 numbers turned off; the argument is a string that may contain the
198 letters B<m> to enable MAC address resolution, B<n> to enable network
199 address resolution, and B<t> to enable transport-layer port number
200 resolution.  This overrides B<-n> if both B<-N> and B<-n> are present.
201
202 =item -o
203
204 Set a preference value, overriding the default value and any value read
205 from a preference file.  The argument to the flag is a string of the
206 form I<prefname>B<:>I<value>, where I<prefname> is the name of the
207 preference (which is the same name that would appear in the preference
208 file), and I<value> is the value to which it should be set.
209
210 =item -p
211
212 I<Don't> put the interface into promiscuous mode.  Note that the
213 interface might be in promiscuous mode for some other reason; hence,
214 B<-p> cannot be used to ensure that the only traffic that is captured is
215 traffic sent to or from the machine on which B<Ethereal> is running,
216 broadcast traffic, and multicast traffic to addresses received by that
217 machine.
218
219 =item -P
220
221 Set the initial height of the packet list (top) pane.
222
223 =item -Q
224
225 Cause B<Ethereal> to exit after the end of capture session (useful in
226 batch mode with B<-c> option for instance); this option requires the
227 B<-i> and B<-w> parameters.
228
229 =item -r
230
231 Read packet data from I<infile>.
232
233 =item -R
234
235 When reading a capture file specified with the B<-r> flag, causes the
236 specified filter (which uses the syntax of display filters, rather than
237 that of capture filters) to be applied to all packets read from the
238 capture file; packets not matching the filter are discarded.
239
240 =item -S
241
242 Perform the live packet capture in a separate process, and automatically
243 update the packet display as packets are seen.
244
245 =item -s
246
247 Set the default snapshot length to use when capturing live data. 
248 No more than I<snaplen> bytes of each network packet will be read into
249 memory, or saved to disk.
250
251 =item -T
252
253 Set the initial height of the tree view (middle) pane.
254
255 =item -t
256
257 Set the format of the packet timestamp displayed in the packet list
258 window.  The format can be one of 'r' (relative), 'a' (absolute), 'ad'
259 (absolute with date), or 'd' (delta).  The relative time is the time
260 elapsed between the first packet and the current packet.  The absolute
261 time is the actual time the packet was captured, with no date displayed;
262 the absolute date and time is the actual time and date the packet was
263 captured.  The delta time is the time since the previous packet was
264 captured.  The default is relative.
265
266 =item -v
267
268 Print the version and exit.
269
270 =item -w
271
272 Set the default capture file name.
273
274 =item -z
275
276 Get B<Ethereal> to collect various types of statistics and display the result
277 in a window that updates in semi-real time.
278 Currently implemented statistics are:
279
280 B<-z> dcerpc,srt,I<uuid>,I<major>.I<minor>[,I<filter>]
281
282 Collect call/reply SRT (Service Response Time) data for DCERPC interface I<uuid>, 
283 version I<major>.I<minor>.
284 Data collected is number of calls for each procedure, MinSRT, MaxSRT 
285 and AvgSRT. 
286 Example: use B<-z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0> to collect data for CIFS SAMR Interface.  
287 This option can be used multiple times on the command line. 
288
289 If the optional filterstring is provided, the stats will only be calculated
290 on those calls that match that filter.
291 Example: use B<-z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0,ip.addr==1.2.3.4> to collect SAMR
292 SRT statistics for a specific host.
293
294 B<-z> io,stat
295
296 Collect frame/bytes statistics for the capture in intervals of 1 seconds.
297 This option will open a window with up to 5 color-coded graphs where
298 number-of-frames-per-second or number-of-bytes-per-second statistics
299 can be calculated and displayed.
300
301 This option can be used multiple times on the command line. 
302
303 This graph window can also be opened from the Tools:Statistics:Traffic:IO-Stat
304 menu item.
305
306
307 B<-z> rpc,srt,I<program>,I<version>[,<filter>]
308
309 Collect call/reply SRT (Service Response Time) data for I<program>/I<version>.  Data collected
310 is number of calls for each procedure, MinSRT, MaxSRT and AvgSRT. 
311 Example: use B<-z rpc,srt,100003,3> to collect data for NFS v3.  This
312 option can be used multiple times on the command line. 
313
314 If the optional filter string is provided, the stats will only be calculated
315 on those calls that match that filter.
316 Example: use B<-z rpc,srt,100003,3,nfs.fh.hash==0x12345678> to collect NFS v3
317 SRT statistics for a specific file.
318
319 B<-z> rpc,programs
320
321 Collect call/reply RTT data for all known ONC-RPC programs/versions.  
322 Data collected is number of calls for each protocol/version, MinRTT, 
323 MaxRTT and AvgRTT. 
324
325 B<-z> smb,srt[,I<filter>]
326
327 Collect call/reply SRT (Service Response Time) data for SMB.  Data collected
328 is number of calls for each SMB command, MinSRT, MaxSRT and AvgSRT. 
329 Example: use B<-z smb,srt>.
330
331 The data will be presented as separate tables for all normal SMB commands,
332 all Transaction2 commands and all NT Transaction commands.
333 Only those commands that are seen in the capture will have its stats
334 displayed.
335 Only the first command in a xAndX command chain will be used in the
336 calculation.  So for common SessionSetupAndX + TreeConnectAndX chains,
337 only the SessionSetupAndX call will be used in the statistics.
338 This is a flaw that might be fixed in the future.
339
340 This option can be used multiple times on the command line. 
341
342 If the optional filterstring is provided, the stats will only be calculated
343 on those calls that match that filter.
344 Example: use B<-z "smb,srt,ip.addr==1.2.3.4"> to only collect stats for
345 SMB packets echanged by the host at IP address 1.2.3.4 .
346
347 B<-z> mgcp,rtd[I<,filter>]
348
349 Collect requests/response RTD (Response Time Delay) data for MGCP. 
350 This is similar to B<-z smb,rtt>). Data collected is number of calls
351 for each known MGCP Type, MinRTD, MaxRTD and AvgRTD.
352 Example: use B<-z mgcp,rtd>.
353
354 This option can be used multiple times on the command line. 
355
356 If the optional filterstring is provided, the stats will only be calculated
357 on those calls that match that filter.
358 Example: use B<-z "mgcp,rtd,ip.addr==1.2.3.4"> to only collect stats for
359 MGCP packets exchanged by the host at IP address 1.2.3.4 .
360
361 =back
362
363 =head1 INTERFACE
364
365 =head2 MENU ITEMS
366
367 =over 4
368
369 =item File:Open, File:Close, File:Reload
370
371 Open, close, or reload a capture file.  The I<File:Open> dialog box
372 allows a filter to be specified; when the capture file is read, the
373 filter is applied to all packets read from the file, and packets not
374 matching the filter are discarded.
375
376 =item File:Save, File:Save As
377
378 Save the current capture, or the packets currently displayed from that
379 capture, to a file.  Check boxes let you select whether to save all
380 packets, or just those that have passed the current display filter and/or
381 those that are currently marked, and an option menu lets you select (from 
382 a list of file formats in which at particular capture, or the packets 
383 currently displayed from that capture, can be saved), a file format in 
384 which to save it.
385
386 =item File:Print
387
388 Print, for all the packets in the current capture, either the summary
389 line for the packet or the protocol tree view of the packet; when
390 printing the protocol tree view, the hex dump of the packet can be
391 printed as well.  Printing options can be set with the
392 I<Edit:Preferences> menu item, or in the dialog box popped up by this
393 item.
394
395 =item File:Print Packet
396
397 Print a fully-expanded protocol tree view of the currently-selected
398 packet.  Printing options can be set with the I<Edit:Preferences> menu
399 item.
400
401 =item File:Quit
402
403 Exit the application.
404
405 =item Edit:Find Frame
406
407 Search forward or backward, starting with the currently selected packet
408 (or the most recently selected packet, if no packet is selected), for a
409 packet matching a given display filter expression.
410
411 =item Edit:Find Next
412
413 Search forward, starting with the currently selected packet
414 (or the most recently selected packet, if no packet is selected), for a
415 packet matching the filter from the previous search.
416
417 =item Edit:Find Previous
418
419 Search backward, starting with the currently selected packet (or the
420 most recently selected packet, if no packet is selected), for a packet
421 matching the filter from the previous search.
422
423 =item Edit:Go To Frame
424
425 Go to a particular numbered packet.
426
427 =item Edit:Mark Frame
428
429 Mark (or unmark if currently marked) the selected packet.  The field
430 "frame.marked" is set for frames that are marked, so that, for example,
431 a display filters can be used to display only marked frames, and so that
432 the L<Find Frame> menu item can be used to find the next or previous
433 marked frame.
434
435 =item Edit:Mark All Frames
436
437 Mark all packets that are currently displayed.
438
439 =item Edit:Unmark All Frames
440
441 Unmark all packets that are currently displayed.
442
443 =item Edit:Preferences
444
445 Set the packet printing, column display, TCP stream coloring, and GUI
446 options (see L<"Preferences"> below).
447
448 =item Edit:Capture Filters
449
450 Edit the saved list of capture filters, allowing filters to be added,
451 changed, or deleted.
452
453 =item Edit:Display Filters
454
455 Edit the saved list of display filters, allowing filters to be added,
456 changed, or deleted.
457
458 =item Edit:Protocols
459
460 Allow protocol dissection to be enabled or disabled for a specific
461 protocol.  Individual protocols can be enabled or disabled by clicking
462 on them in the list or by highlighting them and pressing the space bar.
463 The entire list can be enabled, disabled, or inverted using the buttons
464 below the list.
465
466 When a protocol is disabled, dissection in a particular packet stops
467 when that protocol is reached, and Ethereal moves on to the next packet.
468 Any higher-layer protocols that would otherwise have been processed will
469 not be displayed.  For example, disabling TCP will prevent the dissection
470 and display of TCP, HTTP, SMTP, Telnet, and any other protocol exclusively
471 dependent on TCP.
472
473 =item Capture:Start
474
475 Initiate a live packet capture (see L<"Capture Options"> below).  A
476 temporary file will be created to hold the capture.  The location of the
477 file can be chosen by setting your TMPDIR environment variable before
478 starting B<Ethereal>.  Otherwise, the default TMPDIR location is
479 system-dependent, but is likely either F</var/tmp> or F</tmp>.
480
481 =item Capture:Stop
482
483 In a capture that updates the packet display as packets arrive (so that
484 Ethereal responds to user input other than pressing the "Stop" button in
485 the capture packet statistics dialog box), stop the capture.
486
487 =item Display:Options
488
489 Pop up a dialog allowing you to set the format of the packet timestamp
490 displayed in the packet list window to relative, absolute, absolute date
491 and time, or delta, to enable or disable the automatic scrolling of the
492 packet list while a live capture is in progress or to enable or disable
493 translation of addresses to names in the display.
494
495 =item Display:Match
496
497 Create a display filter, or add to the display filter strip at the
498 bottom, a display filter based on the data currently highlighted in the
499 protocol tree, and apply the filter.
500
501 If that data is a field that can be tested in a display filter
502 expression, the display filter will test that field; otherwise, the
503 display filter will be based on absolute offset within the packet, and
504 so could be unreliable if the packet contains protocols with
505 variable-length headers, such as a source-routed token-ring packet.
506
507 The B<Selected> option creates a display filter that tests for a match
508 of the data; the B<Not Selected> option creates a display filter that
509 tests for a non-match of the data.  The B<And Selected>, B<Or Selected>,
510 B<And Not Selected>, and B<Or Not Selected> options add to the end of
511 the display filter in the strip at the bottom an AND or OR operator
512 followed by the new display filter expression.
513
514 =item Display:Prepare
515
516 Create a display filter, or add to the display filter strip at the
517 bottom, a display filter based on the data currently highlighted in the
518 protocol tree, but don't apply the filter.
519
520 =item Display:Colorize Display
521
522 Change the foreground and background colors of the packet information in
523 the list of packets, based upon display filters.  The list of display
524 filters is applied to each packet sequentially.  After the first display
525 filter matches a packet, any additional display filters in the list are
526 ignored.  Therefore, if you are filtering on the existence of protocols,
527 you should list the higher-level protocols first, and the lower-level
528 protocols last.
529
530 =item Display:Collapse All
531
532 Collapse the protocol tree branches.
533
534 =item Display:Expand All
535
536 Expand all branches of the protocol tree.
537
538 =item Display:Expand All
539
540 Expands all branches of the protocol tree.
541
542 =item Display:Show Packet In New Window
543
544 Create a new window containing a protocol tree view and a hex dump
545 window of the currently selected packet; this window will continue to
546 display that packet's protocol tree and data even if another packet is
547 selected.
548
549 =item Display:User Specified Decodes
550
551 Create a new window showing whether any protocol ID to dissector
552 mappings have been changed by the user.  This window also allows the
553 user to reset all decodes to their default values.
554
555 =item Tools:Plugins
556
557 See what dynamically loadable dissector plugin modules have been loaded
558 (see I<"Plugins"> below).
559
560 =item Tools:Follow TCP Stream
561
562 If you have a TCP packet selected, display the contents of the data
563 stream for the TCP connection to which that packet belongs, as text, in
564 a separate window, and leave the list of packets in a filtered state,
565 with only those packets that are part of that TCP connection being
566 displayed.  You can revert to your old view by pressing ENTER in the
567 display filter text box, thereby invoking your old display filter (or
568 resetting it back to no display filter).
569
570 The window in which the data stream is displayed lets you select:
571
572 =over 8
573
574 =item *
575
576 whether to display the entire conversation, or one or the other side of
577 it;
578
579 =item *
580
581 whether the data being displayed is to be treated as ASCII or EBCDIC
582 text or as raw hex data;
583
584 =back 4
585
586 and lets you print what's currently being displayed, using the same
587 print options that are used for the I<File:Print Packet> menu item, or
588 save it as text to a file.
589
590 =item Tools:Decode As
591
592 If you have a packet selected, present a dialog allowing you to change
593 which dissectors are used to decode this packet.  The dialog has one
594 panel each for the link layer, network layer and transport layer
595 protocol/port numbers, and will allow each of these to be changed
596 independently.  For example, if the selected packet is a TCP packet to
597 port 12345, using this dialog you can instruct Ethereal to decode all
598 packets to or from that TCP port as HTTP packets.
599
600 =item Tools:Go To Corresponding Frame
601
602 If a field in the protocol tree pane containing a frame number is
603 selected, go to the frame number specified by that field.  (This works
604 only if the dissector that put that entry into the protocol tree put it
605 into the tree as a filterable field rather than just as text.)  This can
606 be used, for example, to go to the frame for the request corresponding
607 to a reply, or the reply corresponding to a request, if that frame
608 number has been put into the protocol tree.
609
610 =item Tools:Protocol Hierarchy Statistics
611
612 Show the number of packets, and the number of bytes in those packets,
613 for each protocol in the trace.  It organizes the protocols in the same
614 hierarchy in which they were found in the trace.  Besides counting the
615 packets in which the protocol exists, a count is also made for packets
616 in which the protocol is the last protocol in the stack.  These
617 last-protocol counts show you how many packets (and the byte count
618 associated with those packets) B<ended> in a particular protocol.  In
619 the table, they are listed under "End Packets" and "End Bytes".
620
621 =item Tools:Statistics:ONC-RPC:Programs
622
623 This dialog will open a window showing aggregated RTT statistics for all
624 ONC-RPC Programs/versions that exist in the capture file.
625
626 =item Tools:Statistics:Service Response Time:DCE-RPC
627
628 Open a window to display Service Response Time statistics for an 
629 arbitrary DCE-RPC program
630 interface and display B<Procedure>, B<Number of Calls>, B<Minimum SRT>,
631 B<Maximum SRT> and B<Average SRT> for all procedures for that
632 program/version.  These windows opened will update in semi-real time to
633 reflect changes when doing live captures or when reading new capture
634 files into B<Ethereal>.
635
636 This dialog will also allow an optional filter string to be used.
637 If an optional filter string is used only such DCE-RPC request/response pairs 
638 that match that filter will be used to calculate the statistics. If no filter 
639 string is specified all request/response pairs will be used.
640
641 =item Tools:Statistics:Service Response Time:ONC-RPC
642
643 Open a window to display statistics for an arbitrary ONC-RPC program interface
644 and display B<Procedure>, B<Number of Calls>, B<Minimum SRT>, B<Maximum SRT> and B<Average SRT> for all procedures for that program/version.
645 These windows opened will update in semi-real time to reflect changes when
646 doing live captures or when reading new capture files into B<Ethereal>.
647
648 This dialog will also allow an optional filter string to be used.
649 If an optional filter string is used only such ONC-RPC request/response pairs 
650 that match that filter will be used to calculate the statistics. If no filter 
651 string is specified all request/response pairs will be used.
652
653 =item Tools:Statistics:Service Response Time:SMB
654
655 Collect call/reply SRT (Service Response Time) data for SMB.  Data collected
656 is number of calls for each SMB command, MinSRT, MaxSRT and AvgSRT. 
657
658 The data will be presented as separate tables for all normal SMB commands,
659 all Transaction2 commands and all NT Transaction commands.
660 Only those commands that are seen in the capture will have its stats
661 displayed.
662 Only the first command in a xAndX command chain will be used in the
663 calculation.  So for common SessionSetupAndX + TreeConnectAndX chains,
664 only the SessionSetupAndX call will be used in the statistics.
665 This is a flaw that might be fixed in the future.
666
667 You can apply an optional filter string in a dialog box, before starting
668 the calculation. The stats will only be calculated 
669 on those calls matching that filter.
670
671
672 =item Tools:Statistics:Traffic:IO-Stat
673
674 Open a window where up to 5 graphs in different colors can be displayed
675 to indicate number of frames or number of bytes per second for all packets
676 matching the specified filter.
677 By default only one graph will be displayed showing number of frames per second.
678
679 The top part of the window contains the graphs and scales for the X and
680 Y axis.  If the graph is too long to fit inside the window there is a
681 horizontal scrollbar below the drawing area that can scroll the graphs
682 to the left or the right.  The horizontal axis displays the time into
683 the capture and the vertical axis will display the measured quantity at
684 that time.
685
686 Below the drawing area and the scrollbar are the controls.  On the
687 bottom left there will be five similar sets of controls to control each
688 induvidual graph such as "Display:<button>" which button will toggle
689 that individual graph on/off.  If <button> is ticked, the graph will be
690 displayed.  "Color:<color>" which is just a button to show which color
691 will be used to draw that graph (color is only available in Gtk2
692 version) and finally "Filter:<filter-text>" which can be used to specify
693 a display filter for that particular graph.
694
695 If filter-text is empty then all packets will be used to calculate the
696 quantity for that graph.  If filter-text is specified only those packets
697 that match that display filter will be considered in the calculation of
698 quantity.
699
700 To the right of the 5 graph controls there are four menus to control
701 global aspects of the draw area and graphs.  The "Unit:" menu is used to
702 control what to measure; "frames/tick", "bytes/tick" or "advanced..."
703
704 frames/tick will measure the number of frames matching the (if
705 specified) display filter for the graph in each measurement interval. 
706
707 bytes/tick will measure the total number of bytes in all frames matching
708 the (if specified) display filter for the graph in each measurement
709 interval.
710
711 advanced... see below
712
713 "Tick interval:" specifies what measurement intervals to use.  The
714 default is 1 second and means that the data will be counted over 1
715 second intervals. 
716
717 "Pixels per tick:" specifies how many pixels wide each measurement
718 interval will be in the drawing area.  The default is 5 pixels per tick. 
719
720 "Y-scale:" controls the max value for the y-axis.  Default value is
721 "auto" which means that B<Ethereal> will try to adjust the maxvalue
722 automatically.
723
724 "advanced..." If Unit:advanced...  is selected the window will display
725 two more controls for each of the five graphs.  One control will be a
726 menu where the type of calculation can be selected from
727 SUM,COUNT,MAX,MIN and AVG, and one control, textbox, where the name of a
728 single display filter field can be specified.
729
730 The following restrictions apply to type and field combinations:
731 SUM: available for all types of integers.
732 COUNT: available for all field types.
733 MAX: available for all integer and relative time fields.
734 MIN: available for all integer and relative time fields.
735 AVG: available for all integer and relative time fields.
736
737 NOTE: due to the way this is implemented in B<Ethereal> there is a
738 requirement that whatever field is specified in the textbox, that field
739 MUST also be part of the filter for the graph or else the calculations
740 will fail.
741
742 Example of advanced:
743 Display how NFS response time MAX/MIN/AVG changes over time:
744
745 Set first graph to   filter:nfs&&rpc.time Calc:MAX rpc.time
746 Set second graph to  filter:nfs&&rpc.time Calc:AVG rpc.time
747 Set third graph to   filter:nfs&&rpc.time Calc:MIN rpc.time
748
749
750 Example of advanced:
751 Display how the average packetsize from host a.b.c.d changes over time.
752
753 Set first graph to   filter:ip.addr==a.b.c.d&&frame.pkt_len  Calc:AVG frame.pkt_len
754
755
756 =item Tools:Statistics:MGCP:RTD
757
758 Collect requests/response RTD (Response Time Delay) data for MGCP. 
759 Data collected is number of calls for each known MGCP Type, 
760 MinRTD, MaxRTD and AvgRTD. The data will be presented in a table.
761
762 You can apply an optional filter string in a dialog box, before starting
763 the calculation. The stats will only be calculated 
764 on those calls matching that filter.
765
766 =back
767
768 =head2 WINDOWS
769
770 =over 4
771
772 =item Main Window
773
774 The main window is split into three panes.  You can resize each pane using
775 a "thumb" at the right end of each divider line.  Below the panes is a
776 strip that shows the current filter and informational text.
777
778 =over 6
779
780 =item Top Pane
781
782 The top pane contains the list of network packets that you can scroll
783 through and select.  By default, the packet number, packet timestamp,
784 source and destination addresses, protocol, and description are
785 displayed for each packet; the I<Columns> page in the dialog box popped
786 up by I<Edit:Preferences> lets you change this (although, unfortunately,
787 you currently have to save the preferences, and exit and restart
788 Ethereal, for those changes to take effect).
789
790 If you click on the heading for a column, the display will be sorted by
791 that column; clicking on the heading again will reverse the sort order
792 for that column.
793
794 An effort is made to display information as high up the protocol stack
795 as possible, e.g. IP addresses are displayed for IP packets, but the
796 MAC layer address is displayed for unknown packet types.
797
798 The right mouse button can be used to pop up a menu of operations.
799
800 The middle mouse button can be used to mark a packet.
801
802 =item Middle Pane
803
804 The middle pane contains a I<protocol tree> for the currently-selected
805 packet.  The tree displays each field and its value in each protocol
806 header in the stack.  The right mouse button can be used to pop up a
807 menu of operations.
808
809 =item Bottom Pane
810
811 The lowest pane contains a hex dump of the actual packet data. 
812 Selecting a field in the I<protocol tree> highlights the corresponding
813 bytes in this section.
814
815 The right mouse button can be used to pop up a menu of operations.
816
817 =item Current Filter
818
819 A display filter can be entered into the strip at the bottom. 
820 A filter for HTTP, HTTPS, and DNS traffic might look like this:
821
822   tcp.port == 80 || tcp.port == 443 || tcp.port == 53
823
824 Selecting the I<Filter:> button lets you choose from a list of named
825 filters that you can optionally save.  Pressing the Return or Enter
826 keys, or selecting the I<Apply> button, will cause the filter to be
827 applied to the current list of packets.  Selecting the I<Reset> button
828 clears the display filter so that all packets are displayed.
829
830 =back
831
832 =item Preferences
833
834 The I<Preferences> dialog lets you control various personal preferences
835 for the behavior of B<Ethereal>.
836
837 =over 6
838
839 =item Printing Preferences
840
841 The radio buttons at the top of the I<Printing> page allow you choose
842 between printing packets with the I<File:Print Packet> menu item as text
843 or PostScript, and sending the output directly to a command or saving it
844 to a file.  The I<Command:> text entry box, on UNIX-compatible systems,
845 is the command to send files to (usually B<lpr>), and the I<File:> entry
846 box lets you enter the name of the file you wish to save to. 
847 Additionally, you can select the I<File:> button to browse the file
848 system for a particular save file.
849
850 =item Column Preferences
851
852 The I<Columns> page lets you specify the number, title, and format
853 of each column in the packet list.
854
855 The I<Column title> entry is used to specify the title of the column
856 displayed at the top of the packet list.  The type of data that the column
857 displays can be specified using the I<Column format> option menu.
858 The row of buttons on the left perform the following actions:
859
860 =over 6
861
862 =item Add New
863
864 Adds a new column to the list.
865
866 =item Delete
867
868 Deletes the currently selected list item.
869
870 =item Up / Down
871
872 Moves the selected list item up or down one position.
873
874 =item OK
875
876 Currently has no effect.
877
878 =item Save
879
880 Saves the current column format as the default.
881
882 =item Cancel
883
884 Closes the dialog without making any changes.
885
886 =back
887
888 =item TCP Streams Preferences
889
890 The I<TCP Streams> page can be used to change the color of the text
891 displayed in the TCP stream window.  To change a color, simply select
892 an attribute from the "Set:" menu and use the color selector to get the
893 desired color.  The new text colors are displayed in a sample window.
894
895 =item User Interface Preferences
896
897 The I<User Interface> page is used to modify small aspects of the GUI to
898 your own personal taste:
899
900 =over 6
901
902 =item Scrollbars
903
904 The vertical scrollbars in the three panes can be set to be either on
905 the left or the right. 
906
907 =item Selection Bars
908
909 The selection bar in the packet list and protocol tree can have either a
910 "browse" or "select" behavior.  If the selection bar has a "browse"
911 behavior, the arrow keys will move an outline of the selection bar,
912 allowing you to browse the rest of the list or tree without changing the
913 selection until you press the space bar.  If the selection bar has a
914 "select" behavior, the arrow keys will move the selection bar and change
915 the selection to the new item in the packet list or protocol tree.
916
917 =item Tree Line Style
918
919 Trees can be drawn with no lines, solid lines, or dotted lines between
920 items, or can be drawn with "tab" headings.
921
922 =item Tree Expander Style
923
924 The expander item that can be clicked to show or hide items under a tree
925 item can be omitted (note that this will prevent you from changing
926 whether those items are shown or hidden!), or can be drawn as squares,
927 triangles, or circles.
928
929 =item Hex Display
930
931 The highlight method in the hex dump display for the selected protocol
932 item can be set to use either inverse video, or bold characters.
933
934 =item Save Window Position
935
936 If this item is selected, the position of the main Ethereal window will
937 be saved when Ethereal exits, and used when Ethereal is started again.
938
939 =item Save Window Size
940
941 If this item is selected, the size of the main Ethereal window will
942 be saved when Ethereal exits, and used when Ethereal is started again.
943
944 =item Fonts
945
946 The "Font..." button lets you select the font to be used for most text.
947
948 =item Colors
949
950 The "Colors..." button lets you select the colors to be used for instance
951 for the marked frames.
952
953 =back
954
955 =item Capture Preferences
956
957 The I<Capture> page lets you specify various parameters for capturing
958 live packet data; these are used the first time a capture is started.
959
960 The I<Interface:> combo box lets you specify the interface from which to
961 capture packet data, or the name of a FIFO from which to get the packet
962 data.  You can specify whether the interface is to be put in promiscuous
963 mode or not with the I<Capture packets in promiscuous mode> check box,
964 can specify that the display should be updated as packets are captured
965 with the I<Update list of packets in real time> check box, and can
966 specify whether in such a capture the packet list pane should scroll to
967 show the most recently captured packets with the I<Automatic scrolling
968 in live capture> check box.
969
970 =item Protocol Preferences
971
972 There are also pages for various protocols that Ethereal dissects,
973 controlling the way Ethereal handles those protocols.
974
975 =back
976
977 =item Edit Capture Filter List
978
979 =item Edit Display Filter List
980
981 =item Capture Filter
982
983 =item Display Filter
984
985 =item Read Filter
986
987 =item Search Filter
988
989 The I<Edit Capture Filter List> dialog lets you create, modify, and
990 delete capture filters, and the I<Edit Display Filter List> dialog lets
991 you create, modify, and delete display filters.
992
993 The I<Capture Filter> dialog lets you do all of the editing operations
994 listed, and also lets you choose or construct a filter to be used when
995 capturing packets.
996
997 The I<Display Filter> dialog lets you do all of the editing operations
998 listed, and also lets you choose or construct a filter to be used to
999 filter the current capture being viewed.
1000
1001 The I<Read Filter> dialog lets you do all of the editing operations
1002 listed, and also lets you choose or construct a filter to be used to
1003 as a read filter for a capture file you open.
1004
1005 The I<Search Filter> dialog lets you do all of the editing operations
1006 listed, and also lets you choose or construct a filter expression to be
1007 used in a find operation.
1008
1009 In all of those dialogs, the I<Filter name> entry specifies a
1010 descriptive name for a filter, e.g.  B<Web and DNS traffic>.  The
1011 I<Filter string> entry is the text that actually describes the filtering
1012 action to take, as described above.The dialog buttons perform the
1013 following actions:
1014
1015 =over 6
1016
1017 =item New
1018
1019 If there is text in the two entry boxes, creates a new associated list
1020 item.
1021
1022 =item Change
1023
1024 Modifies the currently selected list item to match what's in the entry
1025 boxes.
1026
1027 =item Copy
1028
1029 Makes a copy of the currently selected list item.
1030
1031 =item Delete
1032
1033 Deletes the currently selected list item.
1034
1035 =item Add Expression...
1036
1037 For display filter expressions, pops up a dialog box to allow you to
1038 construct a filter expression to test a particular field; it offers
1039 lists of field names, and, when appropriate, lists from which to select
1040 tests to perform on the field and values with which to compare it.  In
1041 that dialog box, the OK button will cause the filter expression you
1042 constructed to be entered into the I<Filter string> entry at the current
1043 cursor position.
1044
1045 =item OK
1046
1047 In the I<Capture Filter> dialog, closes the dialog box and makes the
1048 filter in the I<Filter string> entry the filter in the I<Capture
1049 Preferences> dialog.  In the I<Display Filter> dialog, closes the dialog
1050 box and makes the filter in the I<Filter string> entry the current
1051 display filter, and applies it to the current capture.  In the I<Read
1052 Filter> dialog, closes the dialog box and makes the filter in the
1053 I<Filter string> entry the filter in the I<Open Capture File> dialog. 
1054 In the I<Search Filter> dialog, closes the dialog box and makes the
1055 filter in the I<Filter string> entry the filter in the I<Find Frame>
1056 dialog.
1057
1058 =item Apply
1059
1060 Makes the filter in the I<Filter string> entry the current display
1061 filter, and applies it to the current capture.
1062
1063 =item Save
1064
1065 Saves the current filter list in F<$HOME/.ethereal/cfilters> on
1066 UNIX-compatible systems, and F<%APPDATA%\Ethereal\cfilters> (or, if
1067 %APPDATA% isn't defined,
1068 F<%USERPROFILE%\Application Data\Ethereal\cfilters>)
1069 on Windows systems, if the list of filters being edited is the list of
1070 capture filters, or in F<$HOME/.ethereal/dfilters> on UNIX-compatible
1071 systems, and F<%APPDATA%\Ethereal\dfilters> (or, if %APPDATA% isn't
1072 defined, F<%USERPROFILE%\Application Data\Ethereal\dfilters>) on Windows
1073 systems, if the list of filters being edited is the list of display
1074 filters.
1075
1076 =item Close
1077
1078 Closes the dialog without doing anything with the filter in the I<Filter
1079 string> entry.
1080
1081 =back
1082
1083 =item Capture Options
1084
1085 The I<Capture Options> dialog lets you specify various parameters for
1086 capturing live packet data.
1087
1088 The I<Interface:> field lets you specify the interface from which to
1089 capture packet data or a command from which to get the packet data via a
1090 pipe.
1091
1092 The I<Limit each packet to ... bytes> check box and field lets you
1093 specify a maximum number of bytes per packet to capture and save; if the
1094 check box is not checked, the limit will be 65535 bytes.
1095
1096 The I<Capture packets in promiscuous mode> check box lets you specify
1097 whether the interface should be put into promiscuous mode when
1098 capturing.
1099
1100 The I<Filter:> entry lets you specify the capture filter using a
1101 tcpdump-style filter string as described above.
1102
1103 The I<File:> entry lets you specify the file into which captured packets
1104 should be saved, as in the I<Printer Options> dialog above.  If not
1105 specified, the captured packets will be saved in a temporary file; you
1106 can save those packets to a file with the I<File:Save As> menu item.
1107
1108 The I<Use ring buffer> check box lets you specify that the capture
1109 should be done in "ring buffer" mode; the I<Number of files> field
1110 lets you specify the number of files in the ring buffer (0 means unlimited).
1111
1112 The I<Rotate capture file every ...  second(s)> check box and field lets
1113 you to specify that the swith to a next ring buffer file should be done
1114 if the specified duration has elapsed even if the specified capture size
1115 is not reached.
1116
1117 The I<Update list of packets in real time> check box lets you specify
1118 whether the display should be updated as packets are captured and, if
1119 you specify that, the I<Automatic scrolling in live capture> check box
1120 lets you specify the packet list pane should automatically scroll to
1121 show the most recently captured packets as new packets arrive.
1122
1123 The I<Stop capture after ... packet(s) captured> check box and field let
1124 you specify that Ethereal should stop capturing after having captured
1125 some number of packets; if the check box is not checked, Ethereal will
1126 not stop capturing at some fixed number of captured packets.
1127
1128 If "ring buffer" mode is not specified, the I<Stop capture after ...
1129 kilobyte(s) captured> check box and field let you specify that Ethereal
1130 should stop capturing after the the file to which captured packets are
1131 being saved grows as large as or larger than some specified number of
1132 kilobytes (where a kilobyte is 1000 bytes, not 1024 bytes).  If the
1133 check box is not checked, Ethereal will not stop capturing at some
1134 capture file size (although the operating system on which Ethereal is
1135 running, or the available disk space, may still limit the maximum size
1136 of a capture file).
1137
1138 If "ring buffer" mode is specified, that field becomes the I<Rotate
1139 capture file every ...  kilobyte(s)> field, and specifies the number
1140 of kilobytes at which to start writing to a new ring buffer file; the
1141 check box is forced to be checked, as "ring buffer" mode requires a file
1142 size to be specified.
1143
1144 The I<Stop capture after ...  second(s)> check box and field let you
1145 specify that Ethereal should stop capturing after it has been capturing
1146 for some number of seconds; if the check box is not checked, Ethereal
1147 will not stop capturing after some fixed time has elapsed.
1148
1149 The I<Enable MAC name resolution>, I<Enable network name resolution> and
1150 I<Enable transport name resolution> check boxes let you specify whether
1151 MAC addresses, network addresses, and transport-layer port numbers
1152 should be translated to names.
1153
1154 =item Display Options
1155
1156 The I<Display Options> dialog lets you specify the format of the time
1157 stamp in the packet list.  You can select "Time of day" for absolute
1158 time stamps, "Date and time of day" for absolute time stamps with the
1159 date, "Seconds since beginning of capture" for relative time stamps, or
1160 "Seconds since previous frame" for delta time stamps.  You can also
1161 specify whether, when the display is updated as packets are captured,
1162 the list should automatically scroll to show the most recently captured
1163 packets or not and whether addresses or port numbers should be
1164 translated to names in the display on a MAC, network and transport layer
1165 basis.
1166
1167 =item Plugins
1168
1169 The I<Plugins> dialog lets you view the dissector plugin modules
1170 available on your system.
1171
1172 The I<Plugins List> shows the name and version of each dissector plugin
1173 module found on your system.  The plugins are searched in the following
1174 directories: the F<lib/ethereal/plugins/$VERSION> directory under the
1175 main installation directory (for example,
1176 F</usr/local/lib/ethereal/plugins/$VERSION>),
1177 F</usr/lib/ethereal/plugins/$VERSION>,
1178 F</usr/local/lib/ethereal/plugins/$VERSION>, and
1179 F<$HOME/.ethereal/plugins> on UNIX-compatible systems, and in the
1180 F<plugins\$VERSION> directory under the main installation directory (for
1181 example, F<C:\Program Files\Ethereal\plugins\$VERSION>) and
1182 F<%APPDATA%\Ethereal\plugins\$VERSION> (or, if %APPDATA% isn't defined,
1183 F<%USERPROFILE%\Application Data\Ethereal\plugins\$VERSION>) on Windows
1184 systems; $VERSION is the version number of the plugin interface, which
1185 is typically the version number of Ethereal.  Note that a dissector
1186 plugin module may support more than one protocol; there is not
1187 necessarily a one-to-one correspondence between dissector plugin modules
1188 and protocols.  Protocols supported by a dissector plugin module are
1189 enabled and disabled using the I<Edit:Protocols> dialog box, just as
1190 protocols built into Ethereal are.
1191
1192 =back
1193
1194 =head1 CAPTURE FILTER SYNTAX
1195
1196 See manual page of tcpdump(8).
1197
1198 =head1 DISPLAY FILTER SYNTAX
1199
1200 Display filters help you remove the noise from a packet trace and let
1201 you see only the packets that interest you.  If a packet meets the
1202 requirements expressed in your display filter, then it is displayed in
1203 the list of packets.  Display filters let you compare the fields within
1204 a protocol against a specific value, compare fields against fields, and
1205 to check the existence of specified fields or protocols.
1206
1207 The simplest display filter allows you to check for the existence of a
1208 protocol or field.  If you want to see all packets which contain the IPX
1209 protocol, the filter would be "ipx".  (Without the quotation marks) To
1210 see all packets that contain a Token-Ring RIF field, use "tr.rif".
1211
1212 Fields can also be compared against values.  The comparison operators
1213 can be expressed either through C-like symbols, or through English-like
1214 abbreviations:
1215
1216     eq, ==    Equal
1217     ne, !=    Not equal
1218     gt, >     Greater than
1219     lt, <     Less Than
1220     ge, >=    Greater than or Equal to
1221     le, <=    Less than or Equal to
1222
1223 Furthermore, each protocol field is typed. The types are:
1224
1225     Unsigned integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
1226     Signed integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
1227     Boolean
1228     Ethernet address (6 bytes)
1229     Byte string (n-number of bytes)
1230     IPv4 address
1231     IPv6 address
1232     IPX network number
1233     String (text)
1234     Double-precision floating point number
1235
1236 An integer may be expressed in decimal, octal, or hexadecimal notation. 
1237 The following three display filters are equivalent:
1238
1239     frame.pkt_len > 10
1240     frame.pkt_len > 012
1241     frame.pkt_len > 0xa
1242
1243 Boolean values are either true or false.  In a display filter expression
1244 testing the value of a Boolean field, "true" is expressed as 1 or any
1245 other non-zero value, and "false" is expressed as zero.  For example, a
1246 token-ring packet's source route field is boolean.  To find any
1247 source-routed packets, a display filter would be:
1248
1249     tr.sr == 1
1250
1251 Non source-routed packets can be found with:
1252
1253     tr.sr == 0
1254
1255 Ethernet addresses, as well as a string of bytes, are represented in hex
1256 digits.  The hex digits may be separated by colons, periods, or hyphens:
1257
1258     fddi.dst eq ff:ff:ff:ff:ff:ff
1259     ipx.srcnode == 0.0.0.0.0.1
1260     eth.src == aa-aa-aa-aa-aa-aa
1261
1262 If a string of bytes contains only one byte, then it is represented as
1263 an unsigned integer.  That is, if you are testing for hex value 'ff' in
1264 a one-byte byte-string, you must compare it agains '0xff' and not 'ff'. 
1265
1266 IPv4 addresses can be represented in either dotted decimal notation, or
1267 by using the hostname:
1268
1269     ip.dst eq www.mit.edu
1270     ip.src == 192.168.1.1
1271
1272 IPv4 addresses can be compared with the same logical relations as numbers:
1273 eq, ne, gt, ge, lt, and le.  The IPv4 address is stored in host order,
1274 so you do not have to worry about how the endianness of an IPv4 address
1275 when using it in a display filter.
1276
1277 Classless InterDomain Routing (CIDR) notation can be used to test if an
1278 IPv4 address is in a certain subnet.  For example, this display filter
1279 will find all packets in the 129.111 Class-B network:
1280
1281     ip.addr == 129.111.0.0/16
1282
1283 Remember, the number after the slash represents the number of bits used
1284 to represent the network.  CIDR notation can also be used with
1285 hostnames, in this example of finding IP addresses on the same Class C
1286 network as 'sneezy':
1287
1288     ip.addr eq sneezy/24
1289
1290 The CIDR notation can only be used on IP addresses or hostnames, not in
1291 variable names.  So, a display filter like "ip.src/24 == ip.dst/24" is
1292 not valid.  (yet)
1293
1294 IPX networks are represented by unsigned 32-bit integers.  Most likely
1295 you will be using hexadecimal when testing for IPX network values:
1296
1297     ipx.srcnet == 0xc0a82c00
1298
1299 A slice operator also exists.  You can check the substring
1300 (byte-string) of any protocol or field.  For example, you can filter on
1301 the vendor portion of an ethernet address (the first three bytes) like
1302 this:
1303
1304     eth.src[0:3] == 00:00:83
1305
1306 If the length of your byte-slice is only one byte, then it is still
1307 represented in hex, but without the preceding "0x": 
1308
1309     llc[3] == aa
1310
1311 You can use the slice operator on a protocol name, too.  And
1312 remember, the "frame" protocol encompasses the entire packet, allowing
1313 you to look at the nth byte of a packet regardless of its frame type
1314 (Ethernet, token-ring, etc.).
1315
1316     token[0:5] ne 0.0.0.1.1
1317     ipx[0:2] == ff:ff
1318     llc[3:1] eq 0xaa
1319
1320 The following syntax governs slices:
1321
1322         [i:j]   i = start_offset, j = length
1323         [i-j]   i = start_offset, j = end_offset, inclusive.
1324         [i]     i = start_offset, length = 1
1325         [:j]    start_offset = 0, length = j
1326         [i:]    start_offset = i, end_offset = end_of_field
1327
1328 Offsets and lengths can be negative, in which case they indicate the
1329 offset from the B<end> of the field.  Here's how to check the last 4
1330 bytes of a frame:
1331
1332     frame[-4:4] == 0.1.2.3
1333
1334 or
1335
1336     frame[-4:] == 0.1.2.3
1337
1338 You can create complex concatenations of slices using the comma operator:
1339
1340         field[1,3-5,9:] == 01:03:04:05:09:0a:0b
1341
1342 All the above tests can be combined together with logical expressions. 
1343 These too are expressable in C-like syntax or with English-like
1344 abbreviations:
1345
1346     and, &&   Logical AND
1347     or, ||    Logical OR
1348     not, !    Logical NOT
1349
1350 Expressions can be grouped by parentheses as well.  The following are
1351 all valid display filter expression:
1352
1353     tcp.port == 80 and ip.src == 192.168.2.1
1354     not llc
1355     (ipx.srcnet == 0xbad && ipx.srnode == 0.0.0.0.0.1) || ip
1356     tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
1357
1358 A special caveat must be given regarding fields that occur more than
1359 once per packet.  "ip.addr" occurs twice per IP packet, once for the
1360 source address, and once for the destination address.  Likewise,
1361 tr.rif.ring fields can occur more than once per packet.  The following
1362 two expressions are not equivalent:
1363
1364         ip.addr ne 192.168.4.1
1365     not ip.addr eq 192.168.4.1
1366
1367 The first filter says "show me IP packets where an ip.addr exists that
1368 does not equal 192.168.4.1".  That is, as long as one ip.addr in the
1369 packet does not equal 192.168.44.1, the packet passes the display
1370 filter.  The second filter "don't show me any packets that have at least
1371 one ip.addr field equal to 192.168.4.1".  If one ip.addr is 192.168.4.1,
1372 the packet does not pass.  If B<neither> ip.addr fields is 192.168.4.1,
1373 then the packet passes.
1374
1375 It is easy to think of the 'ne' and 'eq' operators as having an implict
1376 "exists" modifier when dealing with multiply-recurring fields.  "ip.addr
1377 ne 192.168.4.1" can be thought of as "there exists an ip.addr that does
1378 not equal 192.168.4.1".
1379
1380 Be careful with multiply-recurring fields; they can be confusing.
1381
1382 Care must also be taken when using the display filter to remove noise
1383 from the packet trace. If you want to e.g. filter out all IP multicast
1384 packets to address 224.1.2.3, then using:
1385
1386     ip.dst ne 224.1.2.3
1387
1388 may be too restrictive. Filtering with "ip.dst" selects only those
1389 B<IP> packets that satisfy the rule. Any other packets, including all
1390 non-IP packets, will not be displayed. For displaying also the non-IP
1391 packets, you can use one of the following two expressions:
1392
1393     not ip or ip.dst ne 224.1.2.3
1394     not ip.addr eq 224.1.2.3
1395
1396 The first filter uses "not ip" to include all non-IP packets and then
1397 lets "ip.dst ne 224.1.2.3" to filter out the unwanted IP packets. The
1398 second filter has already been explained above where filtering with
1399 multiply occuring fields was discussed.
1400
1401 The following is a table of protocol and protocol fields that are
1402 filterable in B<Ethereal>.  The abbreviation of the protocol or field is
1403 given.  This abbreviation is what you use in the display filter.  The
1404 type of the field is also given.
1405
1406 =insert_dfilter_table
1407
1408 =head1 FILES
1409
1410 The F<ethereal.conf> file, which is installed in the F<etc> directory
1411 under the main installation directory (for example, F</usr/local/etc>)
1412 on UNIX-compatible systems, and in the main installation directory (for
1413 example, F<C:\Program Files\Ethereal>) on Windows systems, and the
1414 personal preferences file, which is F<$HOME/.ethereal/preferences> on
1415 UNIX-compatible systems and F<%APPDATA%\Ethereal\preferences> (or, if
1416 %APPDATA% isn't defined,
1417 F<%USERPROFILE%\Application Data\Ethereal\preferences>) on
1418 Windows systems, contain system-wide and personal preference settings,
1419 respectively.  The file contains preference settings of the form
1420 I<prefname>B<:>I<value>, one per line, where I<prefname> is the name of
1421 the preference (which is the same name that would appear in the
1422 preference file), and I<value> is the value to which it should be set;
1423 white space is allowed between B<:> and I<value>.  A preference setting
1424 can be continued on subsequent lines by indenting the continuation lines
1425 with white space.  A B<#> character starts a comment that runs to the
1426 end of the line.
1427
1428 The system-wide preference file is read first, if it exists, overriding
1429 B<Ethereal>'s default values; the personal preferences file is then
1430 read, if it exists, overriding default values and values read from the
1431 system-wide preference file.
1432
1433 Note that whenever the preferences are saved by using the I<Save> button
1434 in the I<Edit:Preferences> dialog box, your personal preferences file
1435 will be overwritten with the new settings, destroying any comments that
1436 were in the file.
1437
1438 The F<ethers> file, which is found in the F</etc> directory on
1439 UNIX-compatible systems, and in the main installation directory (for
1440 example, F<C:\Program Files\Ethereal>) on Windows systems, is consulted
1441 to correlate 6-byte hardware addresses to names.  If an address is not
1442 found in the F<ethers> file, the F<$HOME/.ethereal/ethers> file on
1443 UNIX-compatible systems, and the F<%APPDATA%\Ethereal\ethers> file (or, if
1444 %APPDATA% isn't defined, the
1445 F<%USERPROFILE%\Application Data\Ethereal\ethers> file) on Windows
1446 systems is consulted next.  Each line contains one hardware
1447 address and name, separated by whitespace.  The digits of the hardware
1448 address are separated by either a colon (:), a dash (-), or a period
1449 (.).  The following three lines are valid lines of an ethers file:
1450
1451   ff:ff:ff:ff:ff:ff          Broadcast
1452   c0-00-ff-ff-ff-ff          TR_broadcast
1453   00.00.00.00.00.00          Zero_broadcast
1454
1455 The F<manuf> file, which is installed in the F<etc> directory under the
1456 main installation directory (for example, F</usr/local/etc>) on
1457 UNIX-compatible systems, and in the main installation directory (for
1458 example, F<C:\Program Files\Ethereal>) on Windows systems, matches the
1459 3-byte vendor portion of a 6-byte hardware address with the
1460 manufacturer's name; it can also contain well-known MAC addresses and
1461 address ranges specified with a netmask.  The format of the file is the
1462 same as the F<ethers> file, except that entries of the form
1463
1464   00:00:0C      Cisco
1465
1466 can be provided, with the 3-byte OUI and the name for a vendor, and
1467 entries of the form
1468
1469   00-00-0C-07-AC/40     All-HSRP-routers
1470
1471 can be specified, with a MAC address and a mask indicating how many bits
1472 of the address must match.  Trailing zero bytes can be omitted from
1473 address ranges.  That entry, for example, will match addresses from
1474 00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF.  The mask need not be a
1475 multiple of 8.
1476
1477 The F<ipxnets> file, which is found in the F</etc> directory on
1478 UNIX-compatible systems, and in the main installation directory (for
1479 example, F<C:\Program Files\Ethereal>) on Windows systems, correlates
1480 4-byte IPX network numbers to names.  If a network number is not found
1481 in the F<ipxnets> file, the F<$HOME/.ethereal/ipxnets> file on
1482 UNIX-compatible systems, and the F<%APPDATA%\Ethereal\ipxnets> file (or,
1483 if %APPDATA% isn't defined, the
1484 F<%USERPROFILE%\Application Data\Ethereal\ipxnets> file)
1485 on Windows systems, is consulted next.  The format is the same as the
1486 F<ethers> file, except that each address if four bytes instead of six. 
1487 Additionally, the address can be represented a single hexadecimal
1488 number, as is more common in the IPX world, rather than four hex octets. 
1489 For example, these four lines are valid lines of an ipxnets file.
1490
1491   C0.A8.2C.00              HR
1492   c0-a8-1c-00              CEO
1493   00:00:BE:EF              IT_Server1
1494   110f                     FileServer3
1495
1496 =head1 SEE ALSO
1497
1498 I<tethereal(1)>, I<editcap(1)>, I<tcpdump(8)>, I<pcap(3)>
1499
1500 =head1 NOTES
1501
1502 The latest version of B<Ethereal> can be found at
1503 B<http://www.ethereal.com>.
1504
1505 =head1 AUTHORS
1506
1507   Original Author
1508   -------- ------
1509   Gerald Combs  <gerald[AT]ethereal.com>
1510
1511
1512   Contributors
1513   ------------
1514   Gilbert Ramirez          <gram[AT]alumni.rice.edu>
1515   Hannes R. Boehm          <hannes[AT]boehm.org>
1516   Mike Hall                <mike [AT] hallzone.net>
1517   Bobo Rajec               <bobo[AT]bsp-consulting.sk>
1518   Laurent Deniel           <laurent.deniel[AT]free.fr>
1519   Don Lafontaine           <lafont02[AT]cn.ca>
1520   Guy Harris               <guy[AT]alum.mit.edu>
1521   Simon Wilkinson          <sxw[AT]dcs.ed.ac.uk>
1522   Joerg Mayer              <jmayer[AT]loplof.de>
1523   Martin Maciaszek         <fastjack[AT]i-s-o.net>
1524   Didier Jorand            <Didier.Jorand[AT]alcatel.fr>
1525   Jun-ichiro itojun Hagino <itojun[AT]itojun.org>
1526   Richard Sharpe           <sharpe[AT]ns.aus.com>
1527   John McDermott           <jjm[AT]jkintl.com> 
1528   Jeff Jahr                <jjahr[AT]shastanets.com>
1529   Brad Robel-Forrest       <bradr[AT]watchguard.com>
1530   Ashok Narayanan          <ashokn[AT]cisco.com>
1531   Aaron Hillegass          <aaron[AT]classmax.com>
1532   Jason Lango              <jal[AT]netapp.com>
1533   Johan Feyaerts           <Johan.Feyaerts[AT]siemens.atea.be>
1534   Olivier Abad             <oabad[AT]noos.fr>
1535   Thierry Andry            <Thierry.Andry[AT]advalvas.be>
1536   Jeff Foster              <jfoste[AT]woodward.com>
1537   Peter Torvals            <petertv[AT]xoommail.com>
1538   Christophe Tronche       <ch.tronche[AT]computer.org>
1539   Nathan Neulinger         <nneul[AT]umr.edu>
1540   Tomislav Vujec           <tvujec[AT]carnet.hr>
1541   Kojak                    <kojak[AT]bigwig.net>
1542   Uwe Girlich              <Uwe.Girlich[AT]philosys.de>
1543   Warren Young             <tangent[AT]mail.com>
1544   Heikki Vatiainen         <hessu[AT]cs.tut.fi>
1545   Greg Hankins             <gregh[AT]twoguys.org>
1546   Jerry Talkington         <jerryt[AT]netapp.com>
1547   Dave Chapeskie           <dchapes[AT]ddm.on.ca>
1548   James Coe                <jammer[AT]cin.net>
1549   Bert Driehuis            <driehuis[AT]playbeing.org>
1550   Stuart Stanley           <stuarts[AT]mxmail.net>
1551   John Thomes              <john[AT]ensemblecom.com>
1552   Laurent Cazalet          <laurent.cazalet[AT]mailclub.net>
1553   Thomas Parvais           <thomas.parvais[AT]advalvas.be>
1554   Gerrit Gehnen            <G.Gehnen[AT]atrie.de>
1555   Craig Newell             <craign[AT]cheque.uq.edu.au>
1556   Ed Meaney                <emeaney[AT]cisco.com>
1557   Dietmar Petras           <DPetras[AT]ELSA.de> 
1558   Fred Reimer              <fwr[AT]ga.prestige.net>
1559   Florian Lohoff           <flo[AT]rfc822.org>
1560   Jochen Friedrich         <jochen+ethereal[AT]scram.de>
1561   Paul Welchinski          <paul.welchinski[AT]telusplanet.net>
1562   Doug Nazar               <nazard[AT]dragoninc.on.ca>
1563   Andreas Sikkema          <andreas.sikkema[AT]philips.com>
1564   Mark Muhlestein          <mmm[AT]netapp.com>
1565   Graham Bloice            <graham.bloice[AT]trihedral.com>
1566   Ralf Schneider           <ralf.schneider[AT]alcatel.se>
1567   Yaniv Kaul               <ykaul[AT]netvision.net.il>
1568   Paul Ionescu             <paul[AT]acorp.ro>
1569   Mark Burton              <markb[AT]ordern.com>
1570   Stefan Raab              <sraab[AT]cisco.com>
1571   Mark Clayton             <clayton[AT]shore.net>
1572   Michael Rozhavsky        <mike[AT]tochna.technion.ac.il>
1573   Dug Song                 <dugsong[AT]monkey.org>
1574   Michael Tuexen           <Michael.Tuexen [AT] siemens.com>
1575   Bruce Korb               <bkorb[AT]sco.com>
1576   Jose Pedro Oliveira      <jpo[AT]di.uminho.pt>
1577   David Frascone           <dave[AT]frascone.com>
1578   Peter Kjellerstedt       <pkj[AT]axis.com>
1579   Phil Techau              <phil_t[AT]altavista.net>
1580   Wes Hardaker             <wjhardaker[AT]ucdavis.edu>
1581   Robert Tsai              <rtsai[AT]netapp.com>
1582   Craig Metz               <cmetz[AT]inner.net>
1583   Per Flock                <per.flock[AT]axis.com>
1584   Jack Keane               <jkeane[AT]OpenReach.com>
1585   Brian Wellington         <bwelling[AT]xbill.org>
1586   Santeri Paavolainen      <santtu[AT]ssh.com>
1587   Ulrich Kiermayr          <uk[AT]ap.univie.ac.at>
1588   Neil Hunter              <neil.hunter[AT]energis-squared.com>
1589   Ralf Holzer              <ralf[AT]well.com>
1590   Craig Rodrigues          <rodrigc [AT] attbi.com>
1591   Ed Warnicke              <hagbard[AT]physics.rutgers.edu>
1592   Johan Jorgensen          <johan.jorgensen[AT]axis.com>
1593   Frank Singleton          <frank.singleton[AT]ericsson.com>
1594   Kevin Shi                <techishi[AT]ms22.hinet.net>
1595   Mike Frisch              <mfrisch[AT]isurfer.ca>
1596   Burke Lau                <burke_lau[AT]agilent.com>
1597   Martti Kuparinen         <martti.kuparinen[AT]iki.fi>
1598   David Hampton            <dhampton[AT]mac.com>
1599   Kent Engström            <kent[AT]unit.liu.se>
1600   Ronnie Sahlberg          <sahlberg[AT]optushome.com.au>
1601   Borosa Tomislav          <tomislav.borosa[AT]SIEMENS.HR>
1602   Alexandre P. Ferreira    <alexandref[AT]tcoip.com.br>
1603   Simharajan Srishylam     <Simharajan.Srishylam[AT]netapp.com>
1604   Greg Kilfoyle            <gregk[AT]redback.com>
1605   James E. Flemer          <jflemer[AT]acm.jhu.edu>
1606   Peter Lei                <peterlei[AT]cisco.com>
1607   Thomas Gimpel            <thomas.gimpel[AT]ferrari.de>
1608   Albert Chin              <china[AT]thewrittenword.com>
1609   Charles Levert           <charles[AT]comm.polymtl.ca>
1610   Todd Sabin               <tas[AT]webspan.net>
1611   Eduardo Pérez Ureta      <eperez[AT]dei.inf.uc3m.es>
1612   Martin Thomas            <martin_a_thomas[AT]yahoo.com>
1613   Hartmut Mueller          <hartmut[AT]wendolene.ping.de>
1614   Michal Melerowicz        <Michal.Melerowicz[AT]nokia.com>
1615   Hannes Gredler           <hannes[AT]juniper.net>
1616   Inoue                    <inoue[AT]ainet.or.jp>
1617   Olivier Biot             <Olivier.Biot[AT]siemens.com>
1618   Patrick Wolfe            <pjw[AT]zocalo.cellular.ameritech.com>
1619   Martin Held              <Martin.Held[AT]icn.siemens.de>
1620   Riaan Swart              <rswart[AT]cs.sun.ac.za>
1621   Christian Lacunza        <celacunza[AT]gmx.net>
1622   Scott Renfro             <scott[AT]renfro.org>
1623   Juan Toledo              <toledo[AT]users.sourceforge.net>
1624   Jean-Christian Pennetier <jeanchristian.pennetier[AT]rd.francetelecom.fr>
1625   Jian Yu                  <bgp4news[AT]yahoo.com>
1626   Eran Mann                <emann[AT]opticalaccess.com>
1627   Andy Hood                <ahood[AT]westpac.com.au>
1628   Randy McEoin             <rmceoin[AT]pe.net>
1629   Edgar Iglesias           <edgar.iglesias[AT]axis.com>
1630   Martina Obermeier        <Martina.Obermeier[AT]icn.siemens.de>
1631   Javier Achirica          <achirica[AT]ttd.net>
1632   B. Johannessen           <bob[AT]havoq.com>
1633   Thierry Pelle            <thierry.pelle[AT]rd.francetelecom.fr>
1634   Francisco Javier Cabello <fjcabello[AT]vtools.es>
1635   Laurent Rabret           <laurent.rabret[AT]rd.francetelecom.fr>
1636   nuf si                   <gnippiks[AT]yahoo.com>
1637   Jeff Morriss             <jeff.morriss[AT]ulticom.com>
1638   Aamer Akhter             <aakhter[AT]cisco.com>
1639   Pekka Savola             <pekkas[AT]netcore.fi>
1640   David Eisner             <cradle[AT]Glue.umd.edu>
1641   Steve Dickson            <steved[AT]talarian.com>
1642   Markus Seehofer          <mseehofe[AT]nt.hirschmann.de>
1643   Lee Berger               <lberger[AT]roy.org>
1644   Motonori Shindo          <mshindo[AT]mshindo.net>
1645   Terje Krogdahl           <tekr[AT]nextra.com>
1646   Jean-Francois Mule       <jfm[AT]cablelabs.com>
1647   Thomas Wittwer           <thomas.wittwer[AT]iclip.ch>
1648   Matthias Nyffenegger     <matthias.nyffenegger[AT]iclip.ch>
1649   Palle Lyckegaard         <Palle[AT]lyckegaard.dk>
1650   Nicolas Balkota          <balkota[AT]mac.com>
1651   Tom Uijldert             <Tom.Uijldert[AT]cmg.nl>
1652   Akira Endoh              <endoh[AT]netmarks.co.jp>
1653   Graeme Hewson            <graeme.hewson[AT]oracle.com>
1654   Pasi Eronen              <pasi.eronen[at]nixu.com>
1655   Georg von Zezschwitz     <gvz[AT]2scale.net>
1656   Steffen Weinreich        <steve[AT]weinreich.org>
1657   Marc Milgram             <ethereal[AT]mmilgram.NOSPAMmail.net>
1658   Gordon McKinney          <gordon[AT]night-ray.com>
1659   Tim Farley               <tfarley[AT]iss.net>
1660   Daniel Thompson          <daniel.thompson[AT]st.com>
1661   Chris Jepeway            <thai-dragon[AT]eleven29.com>
1662   Pavel Novotny            <Pavel.Novotny[AT]icn.siemens.de>
1663   Shinsuke Suzuki          <suz[AT]kame.net>
1664   Andrew C. Feren          <aferen[AT]cetacean.com>
1665   Tomas Kukosa             <tomas.kukosa [AT] siemens.com>
1666   Andreas Stockmeier       <a.stockmeier[AT]avm.de>
1667   Pekka Nikander           <pekka.nikander[AT]nomadiclab.com>
1668   Hamish Moffatt           <hamish[AT]cloud.net.au>
1669   Kazushi Sugyo            <k-sugyou[AT]nwsl.mesh.ad.jp>
1670   Tim Potter               <tpot[AT]samba.org>
1671   Raghu Angadi             <rangadi[AT]inktomi.com>
1672   Taisuke Sasaki           <sasaki[AT]soft.net.fujitsu.co.jp>
1673   Tim Newsham              <newsham[AT]lava.net>
1674   Tom Nisbet               <Tnisbet[AT]VisualNetworks.com>
1675   Darren New               <dnew[AT]san.rr.com>
1676   Pavel Mores              <pvl[AT]uh.cz>
1677   Bernd Becker             <bb[AT]bernd-becker.de>
1678   Heinz Prantner           <Heinz.Prantner[AT]radisys.com>
1679   Irfan Khan               <ikhan[AT]qualcomm.com>
1680   Jayaram V.R              <vjayar[AT]cisco.com>
1681   Dinesh Dutt              <ddutt[AT]cisco.com>
1682   Nagarjuna Venna          <nvenna[AT]Brixnet.com>
1683   Jirka Novak              <j.novak[AT]netsystem.cz>
1684   Ricardo Barroetaveña     <rbarroetavena[AT]veufort.com>
1685   Alan Harrison            <alanharrison[AT]mail.com>
1686   Mike Frantzen            <frantzen[AT]w4g.org>
1687   Charlie Duke             <cduke[AT]fvc.com>
1688   Alfred Arnold            <Alfred.Arnold[AT]elsa.de>
1689   Dermot Bradley           <dermot.bradley[AT]openwave.com>
1690   Adam Sulmicki            <adam[AT]cfar.umd.edu>
1691   Kari Tiirikainen         <kari.tiirikainen[AT]nokia.com>
1692   John Mackenzie           <John.A.Mackenzie[AT]t-online.de>
1693   Peter Valchev            <pvalchev[AT]openbsd.org>
1694   Alex Ruzin               <alexr[AT]nbase.co.il>
1695   Jouni Malinen            <jkmaline[AT]cc.hut.fi>
1696   Paul E. Erkkila          <pee[AT]erkkila.org>
1697   Jakob Schlyter           <jakob[AT]crt.se>
1698   Jim Sienicki             <sienicki[AT]issanni.com>
1699   Steven French            <sfrench[AT]us.ibm.com>
1700   Diana Eichert            <deicher[AT]sandia.gov>
1701   Blair Cooper             <blair[AT]teamon.com>
1702   Kikuchi Ayamura          <ayamura[AT]ayamura.org>
1703   Didier Gautheron         <dgautheron[AT]magic.fr>
1704   Phil Williams            <csypbw[AT]comp.leeds.ac.uk>
1705   Kevin Humphries          <khumphries[AT]networld.com>
1706   Erik Nordström           <erik.nordstrom[AT]it.uu.se>
1707   Devin Heitmueller        <dheitmueller[AT]netilla.com>
1708   Chenjiang Hu             <chu[AT]chiaro.com>
1709   Kan Sasaki               <sasaki[AT]fcc.ad.jp>
1710   Stefan Wenk              <stefan.wenk[AT]gmx.at>
1711   Ruud Linders             <ruud[AT]lucent.com>
1712   Andrew Esh               <Andrew.Esh[AT]tricord.com>
1713   Greg Morris              <GMORRIS[AT]novell.com>
1714   Dirk Steinberg           <dws[AT]dirksteinberg.de>
1715   Kari Heikkila            <kari.o.heikkila[AT]nokia.com>
1716   Olivier Dreux            <Olivier.Dreux[AT]alcatel.fr>
1717   Michael Stiller          <ms[AT]2scale.net>
1718   Antti Tuominen           <ajtuomin[AT]tml.hut.fi>
1719   Martin Gignac            <lmcgign[AT]mobilitylab.net>
1720   John Wells               <wells[AT]ieee.org>
1721   Loic Tortay              <tortay[AT]cc.in2p3.fr>
1722   Steve Housley            <Steve_Housley[AT]eur.3com.com>
1723   Peter Hawkins            <peter[AT]hawkins.emu.id.au>
1724   Bill Fumerola            <billf[AT]FreeBSD.org>
1725   Chris Waters             <chris[AT]waters.co.nz>
1726   Solomon Peachy           <pizza[AT]shaftnet.org>
1727   Jaime Fournier           <jafour1[AT]yahoo.com>
1728   Markus Steinmann         <ms[AT]seh.de>
1729   Tsutomu Mieno            <iitom[AT]utouto.com>
1730   Yasuhiro Shirasaki       <yasuhiro[AT]gnome.gr.jp>
1731   Anand V. Narwani         <anand[AT]narwani.org>
1732   Christopher K. St. John  <cks[AT]distributopia.com>
1733   Nix                      <nix[AT]esperi.demon.co.uk>
1734   Liviu Daia               <Liviu.Daia[AT]imar.ro>
1735   Richard Urwin            <rurwin[AT]schenck.co.uk>
1736   Prabhakar Krishnan       <Prabhakar.Krishnan[AT]netapp.com>
1737   Jim McDonough            <jmcd[AT]us.ibm.com>
1738   Sergei Shokhor           <sshokhor[AT]uroam.com>
1739   Hidetaka Ogawa           <ogawa[AT]bs2.qnes.nec.co.jp>
1740   Jan Kratochvil           <short[AT]ucw.cz>
1741   Alfred Koebler           <ak[AT]icon-sult.de>
1742   Vassilii Khachaturov     <Vassilii.Khachaturov[AT]comverse.com>
1743   Bill Studenmund          <wrstuden[AT]wasabisystems.com>
1744   Brian Bruns              <camber[AT]ais.org>
1745   Flavio Poletti           <flavio[AT]polettix.it>
1746   Marcus Haebler           <haeblerm[AT]yahoo.com>
1747   Ulf Lamping              <ulf.lamping[AT]web.de>
1748   Matthew Smart            <smart[AT]monkey.org>
1749   Luke Howard              <lukeh[AT]au.padl.com>
1750   PC Drew                  <drewpc[AT]ibsncentral.com>
1751   Renzo Tomas              <renzo.toma [AT] xs4all.nl>
1752   Clive A. Stubbings       <eth[AT]vjet.demon.co.uk>
1753   Steve Langasek           <vorlon [AT] netexpress.net>
1754   Brad Hards               <bhards[AT]bigpond.net.au>
1755   cjs 2895                 <cjs2895[AT]hotmail.com>
1756   Lutz Jaenicke            <Lutz.Jaenicke [AT] aet.TU-Cottbus.DE>
1757   Senthil Kumar Nagappan   <sknagappan [AT] yahoo.com>
1758   Jason House              <jhouse [AT] mitre.org>
1759   Peter Fales              <psfales [AT] lucent.com>
1760   Fritz Budiyanto          <fritzb88 [AT] yahoo.com>
1761   Jean-Baptiste Marchand   <Jean-Baptiste.Marchand [AT] hsc.fr>
1762   Andreas Trauer           <andreas.trauer [AT] siemens.com>
1763   Ronald Henderson         <Ronald.Henderson [AT] CognicaseUSA.com>
1764   Brian Ginsbach           <ginsbach [AT] cray.com>
1765   Dave Richards            <d_m_richards [AT] attbi.com>
1766   Martin Regner            <martin.regner [AT] chello.se>
1767   Jason Greene             <jason [AT] inetgurus.net>
1768   Marco Molteni            <mmolteni [AT] cisco.com>
1769   James Harris             <jharris [AT] fourhorsemen.org>
1770   rmkml                    <rmkml [AT] wanadoo.fr>
1771   Anders Broman            <a.broman [AT] telia.com>
1772   Christian Falckenberg    <christian.falckenberg [AT] nortelnetworks.com>
1773   Huagang Xie              <xie [AT] lids.org>
1774   cjs 2895                 <cjs2895 [AT] hotmail.com>
1775   Pasi Kovanen             <Pasi.Kovanen [AT] tahoenetworks.fi>
1776   Teemu Rinta-aho          <teemu.rinta-aho [AT] nomadiclab.com>
1777   Martijn Schipper         <martijn.schipper [AT] intersil.com>
1778   Wayne Parrott            <wayne_p [AT] pacific.net.au>
1779   Laurent Meyer            <laurent.meyer6 [AT] wanadoo.fr>
1780   Lars Roland              <Lars.Roland [AT] gmx.net>
1781   Miha Jemec               <m.jemec [AT] iskratel.si>
1782   Markus Friedl            <markus [AT] openbsd.org>
1783   Todd Montgomery          <tmontgom [AT] tibco.com>
1784   emre                     <emre [AT] flash.net>
1785   Stephen Shelley          <steve.shelley [AT] attbi.com>
1786   Erwin Rol                <erwin [AT] muffin.org>
1787   Duncan Laurie            <duncan [AT] sun.com>
1788   Tony Schene              <schene [AT] pcisys.net>
1789   Matthijs Melchior        <mmelchior [AT] xs4all.nl>
1790   Garth Bushell            <gbushell [AT] elipsan.com>
1791   Mark C. Brown            <mbrown [AT] nosila.net>
1792   Can Erkin Acar           <canacar [AT] eee.metu.edu.tr>
1793   Martin Warnes            <martin.warnes [AT] ntlworld.com>
1794   J Bruce Fields           <bfields [AT] fieldses.org>
1795   tz                       <tz1 [AT] mac.com>
1796   Jeff Liu                 <jqliu [AT] broadcom.com>
1797   Niels Koot               <Niels.Koot [AT] logicacmg.com>
1798   Lionel Ains              <lains [AT] gmx.net>
1799   Joakim Wiberg            <jow [AT] hms-networks.com>
1800   Jeff Rizzo               <riz [AT] boogers.sf.ca.us>
1801   Pavel Roskin             <proski [AT] gnu.org>
1802   Georgi Guninski          <guninski [AT] guninski.com>
1803   Jason Copenhaver         <jcopenha [AT] typedef.org>
1804   Eric Perie               <eric.perie [AT] colubris.com>
1805   David Yon                <yon [AT] tacticalsoftware.com>
1806   Marcio Franco            <franco.marcio [AT] rd.francetelecom.fr>
1807   Kaloian Stoilov          <kalkata [AT] yahoo.com>
1808   Steven Lass              <stevenlass [AT] mail.com>
1809
1810 Alain Magloire <alainm[AT]rcsm.ece.mcgill.ca> was kind enough to give his
1811 permission to use his version of snprintf.c.
1812
1813 Dan Lasley <dlasley[AT]promus.com> gave permission for his dumpit() hex-dump
1814 routine to be used.
1815
1816 Mattia Cazzola <mattiac[AT]alinet.it> provided a patch to the hex dump
1817 display routine.
1818
1819 We use the exception module from Kazlib, a C library written by
1820 Kaz Kylheku <kaz[AT]ashi.footprints.net>. Thanks goes to him for his
1821 well-written library. The Kazlib home page can be found at
1822 http://users.footprints.net/~kaz/kazlib.html