Update the manual pages to reflect the addition of support for reading
[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 ]>
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<[ infile ]>
34
35 =head1 DESCRIPTION
36
37 B<Ethereal> is a GUI network protocol analyzer.  It lets you
38 interactively browse packet data from a live network or from a
39 previously saved capture file.  B<Ethereal> knows how to read B<libpcap>
40 capture files, including those of B<tcpdump>.  In addition, B<Ethereal>
41 can read capture files from B<snoop> (including B<Shomiti>) and
42 B<atmsnoop>, B<LanAlyzer>, B<Sniffer> (compressed or uncompressed),
43 Microsoft B<Network Monitor>, AIX's B<iptrace>, B<NetXray>, B<Sniffer
44 Pro>, B<Etherpeek>, B<RADCOM>'s WAN/LAN analyzer, B<Lucent/Ascend>
45 router debug output, HP-UX's B<nettl>, the dump output from B<Toshiba's>
46 ISDN routers, the output from B<i4btrace> from the ISDN4BSD project, the
47 output in B<IPLog> format from the Cisco Secure Intrusion Detection
48 System, B<pppd logs> (pppdump format), the output from VMS's
49 B<TCPIPtrace> utility, the text output from the B<DBS Etherwatch> VMS
50 utility, and traffic capture files from Visual Networks' software. 
51 There is no need to tell B<Ethereal> what type of file you are reading;
52 it will determine the file type by itself.  B<Ethereal> is also capable
53 of reading any of these file formats if they are compressed using gzip. 
54 B<Ethereal> recognizes this directly from the file; the '.gz' extension
55 is not required for this purpose.
56
57 Like other protocol analyzers, B<Ethereal>'s main window shows 3 views
58 of a packet.  It shows a summary line, briefly describing what the
59 packet is.  A protocol tree is shown, allowing you to drill down to
60 exact protocol or field that you interested in.  Finally, a hex dump
61 shows you exactly what the packet looks like when it goes over the wire.
62
63 In addition, B<Ethereal> has some features that make it unique.  It can
64 assemble all the packets in a TCP conversation and show you the ASCII
65 (or EBCDIC, or hex) data in that conversation.  Display filters in
66 B<Ethereal> are very powerful; more fields are filterable in B<Ethereal>
67 than in other protocol analyzers, and the syntax you can use to create
68 your filters is richer.  As B<Ethereal> progresses, expect more and more
69 protocol fields to be allowed in display filters.
70
71 Packet capturing is performed with the pcap library.  The capture filter
72 syntax follows the rules of the pcap library.  This syntax is different
73 from the display filter syntax.
74
75 Compressed file support uses (and therefore requires) the zlib library. 
76 If the zlib library is not present, B<Ethereal> will compile, but will
77 be unable to read compressed files.
78
79 The pathname of a capture file to be read can be specified with the
80 B<-r> option or can be specified as a command-line argument.
81
82 =head1 OPTIONS
83
84 =over 4
85
86 =item -a
87
88 Specify a criterion that specifies when B<Tethereal> is to stop writing
89 to a capture file.  The criterion is of the form I<test>B<:>I<value>,
90 where I<test> is one of:
91
92 =for man .RS
93
94 =for html <P><DL>
95
96 =item duration
97
98 Stop writing to a capture file after I<value> seconds have elapsed.
99
100 =item filesize
101
102 Stop writing to a capture file after it reaches a size of I<value>
103 kilobytes (where a kilobyte is 1000 bytes, not 1024 bytes).
104
105 =for man .RE
106
107 =for html </DL>
108
109 =item -b
110
111 If a maximum capture file size was specified, causes B<Ethereal> to run
112 in "ring buffer" mode, with the specified number of files.  In "ring
113 buffer" mode, B<Ethereal> will write to several capture files; the name
114 of the first file, while the capture is in progress, will be the name
115 specified by the B<-w> flag, and subsequent files with have .I<n>
116 appended, with I<n> counting up.
117
118 When the first capture file fills up, B<Ethereal> will switch to writing
119 to the next file, until it fills up the last file, at which point it'll
120 discard the data in the first file and start writing to that file.  When
121 that file fills up, B<Ethereal> will discard the data in the next file
122 and start writing to it, and so on.
123
124 When the capture completes, the files will be renamed to have names
125 based on the number of the file and on the date and time at which
126 packets most recently started being written to the file.
127
128 =item -B
129
130 Sets the initial height of the byte view (bottom) pane.
131
132 =item -c
133
134 Sets the default number of packets to read when capturing live
135 data.
136
137 =item -f
138
139 Sets the capture filter expression.
140
141 =item -h
142
143 Prints the version and options and exits.
144
145 =item -i
146
147 Sets the name of the network interface or pipe to use for live packet capture.
148 Network interface names should match one of the names listed in "B<netstat -i>"
149 or "B<ifconfig -a>".
150 Pipe names should be either the name of a FIFO (named pipe) or ``-'' to read
151 data from the standard input. Data read from pipes must be in libpcap format.
152
153 =item -k
154
155 Starts the capture session immediately.  If the B<-i> flag was
156 specified, the capture uses the specified interface.  Otherwise,
157 B<Ethereal> searches the list of interfaces, choosing the first
158 non-loopback interface if there are any non-loopback interfaces, and
159 choosing the first loopback interface if there are no non-loopback
160 interfaces; if there are no interfaces, B<Ethereal> reports an error and
161 doesn't start the capture.
162
163 =item -l
164
165 Turns on automatic scrolling if the packet display is being updated
166 automatically as packets arrive during a capture (as specified by the
167 B<-S> flag).
168
169 =item -m
170
171 Sets the name of the font used by B<Ethereal> for most text. 
172 B<Ethereal> will construct the name of the bold font used for the data
173 in the byte view pane that corresponds to the field selected in the
174 protocol tree pane from the name of the main text font.
175
176 =item -n
177
178 Disables network object name resolution (such as hostname, TCP and UDP port
179 names).
180
181 =item -N
182
183 Turns on name resolving for particular types of addresses and port
184 numbers; the argument is a string that may contain the letters B<m> to
185 enable MAC address resolution, B<n> to enable network address
186 resolution, and B<t> to enable transport-layer port number resolution. 
187 This overrides B<-n> if both B<-N> and B<-n> are present.
188
189 =item -o
190
191 Sets a preference value, overriding the default value and any value read
192 from a preference file.  The argument to the flag is a string of the
193 form I<prefname>B<:>I<value>, where I<prefname> is the name of the
194 preference (which is the same name that would appear in the preference
195 file), and I<value> is the value to which it should be set.
196
197 =item -p
198
199 I<Don't> put the interface into promiscuous mode.  Note that the
200 interface might be in promiscuous mode for some other reason; hence,
201 B<-p> cannot be used to ensure that the only traffic that is captured is
202 traffic sent to or from the machine on which B<Ethereal> is running,
203 broadcast traffic, and multicast traffic to addresses received by that
204 machine.
205
206 =item -P
207
208 Sets the initial height of the packet list (top) pane.
209
210 =item -Q
211
212 Causes B<Ethereal> to exit after the end of capture session (useful in
213 batch mode with B<-c> option for instance); this option requires the
214 B<-i> and B<-w> parameters.
215
216 =item -r
217
218 Reads packet data from I<infile>.
219
220 =item -R
221
222 When reading a capture file specified with the B<-r> flag, causes the
223 specified filter (which uses the syntax of display filters, rather than
224 that of capture filters) to be applied to all packets read from the
225 capture file; packets not matching the filter are discarded.
226
227 =item -S
228
229 Specifies that the live packet capture will be performed in a separate
230 process, and that the packet display will automatically be updated as
231 packets are seen.
232
233 =item -s
234
235 Sets the default snapshot length to use when capturing live data. 
236 No more than I<snaplen> bytes of each network packet will be read into
237 memory, or saved to disk.
238
239 =item -T
240
241 Sets the initial height of the tree view (middle) pane.
242
243 =item -t
244
245 Sets the format of the packet timestamp displayed in the packet list
246 window.  The format can be one of 'r' (relative), 'a' (absolute), 'ad'
247 (absolute with date), or 'd' (delta).  The relative time is the time
248 elapsed between the first packet and the current packet.  The absolute
249 time is the actual time the packet was captured, with no date displayed;
250 the absolute date and time is the actual time and date the packet was
251 captured.  The delta time is the time since the previous packet was
252 captured.  The default is relative.
253
254 =item -v
255
256 Prints the version and exits.
257
258 =item -w
259
260 Sets the default capture file name.
261
262 =back
263
264 =head1 INTERFACE
265
266 =head2 MENU ITEMS
267
268 =over 4
269
270 =item File:Open, File:Close, File:Reload
271
272 Open, close, or reload a capture file.  The I<File:Open> dialog box
273 allows a filter to be specified; when the capture file is read, the
274 filter is applied to all packets read from the file, and packets not
275 matching the filter are discarded.
276
277 =item File:Save, File:Save As
278
279 Save the current capture, or the packets currently displayed from that
280 capture, to a file.  Check boxes let you select whether to save all
281 packets, or just those that have passed the current display filter and/or
282 those that are currently marked, and an option menu lets you select (from 
283 a list of file formats in which at particular capture, or the packets 
284 currently displayed from that capture, can be saved), a file format in 
285 which to save it.
286
287 =item File:Print
288
289 Prints, for all the packets in the current capture, either the summary
290 line for the packet or the protocol tree view of the packet; when
291 printing the protocol tree view, the hex dump of the packet can be
292 printed as well.  Printing options can be set with the
293 I<Edit:Preferences> menu item, or in the dialog box popped up by this
294 item.
295
296 =item File:Print Packet
297
298 Print a fully-expanded protocol tree view of the currently-selected
299 packet.  Printing options can be set with the I<Edit:Preferences> menu
300 item.
301
302 =item File:Quit
303
304 Exits the application.
305
306 =item Edit:Find Frame
307
308 Allows you to search forward or backward, starting with the currently
309 selected packet (or the most recently selected packet, if no packet is
310 selected), for a packet matching a given display filter.
311
312 =item Edit:Go To Frame
313
314 Allows you to go to a particular numbered packet.
315
316 =item Edit:Mark Frame
317
318 Allows you to mark (or unmark if currently marked) the selected packet.
319
320 =item Edit:Mark All Frames
321
322 Allows you to mark all packets that are currently displayed.
323
324 =item Edit:Unmark All Frames
325
326 Allows you to unmark all packets that are currently displayed.
327
328 =item Edit:Preferences
329
330 Sets the packet printing, column display, TCP stream coloring, and GUI
331 options (see L<"Preferences"> below).
332
333 =item Edit:Capture Filters
334
335 Edits the saved list of capture filters, allowing filters to be added,
336 changed, or deleted.
337
338 =item Edit:Display Filters
339
340 Edits the saved list of display filters, allowing filters to be added,
341 changed, or deleted.
342
343 =item Edit:Protocols
344
345 Edits the list of protocols, allowing protocol dissection to be 
346 enabled or disabled.
347
348 =item Capture:Start
349
350 Initiates a live packet capture (see L<"Capture Preferences"> below).  A
351 temporary file will be created to hold the capture.  The location of the
352 file can be chosen by setting your TMPDIR environment variable before
353 starting B<Ethereal>.  Otherwise, the default TMPDIR location is
354 system-dependent, but is likely either F</var/tmp> or F</tmp>.
355
356 =item Capture:Stop
357
358 In a capture that updates the packet display as packets arrive (so that
359 Ethereal responds to user input other than pressing the "Stop" button in
360 the capture packet statistics dialog box), stops the capture.
361
362 =item Display:Options
363
364 Allows you to sets the format of the packet timestamp displayed in the
365 packet list window to relative, absolute, absolute date and time, or
366 delta, to enable or disable the automatic scrolling of the packet list
367 while a live capture is in progress or to enable or disable translation
368 of addresses to names in the display.
369
370 =item Display:Match Selected
371
372 Creates and applies a display filter based on the data that is currently
373 highlighted in the protocol tree.  If that data is a field that can be
374 tested in a display filter expression, the display filter will test that
375 field; otherwise, the display filter will be based on absolute offset
376 within the packet, and so could be unreliable if the packet contains
377 protocols with variable-length headers, such as a source-routed
378 token-ring packet.
379
380 =item Display:Colorize Display
381
382 Allows you to change the foreground and background colors of the packet
383 information in the list of packets, based upon display filters.  The list
384 of display filters is applied to each packet sequentially. After the first
385 display filter matches a packet, any additional display filters in the list
386 are ignored. Therefore, if you are filtering on the existence of protocols,
387 you should list the higher-level protocols first, and the lower-level
388 protocols last.
389
390 =item Display:Collapse All
391
392 Collapses the protocol tree branches.
393
394 =item Display:Expand All
395
396 Expands all branches of the protocol tree.
397
398 =item Display:Expand All
399
400 Expands all branches of the protocol tree.
401
402 =item Display:Show Packet In New Window
403
404 Creates a new window containing a protocol tree view and a hex dump
405 window of the currently selected packet; this window will continue to
406 display that packet's protocol tree and data even if another packet is
407 selected.
408
409 =item Display:User Specified Decodes
410
411 Creates a new window showing whether any protocol ID to dissector
412 mappings have been changed by the user.  This window also allows the
413 user to reset all decodes to their default values.
414
415 =item Tools:Plugins
416
417 Allows you to see what dynamically loadable dissector plugin modules
418 have been loaded (see I<"Plugins"> below).
419
420 =item Tools:Follow TCP Stream
421
422 If you have a TCP packet selected, it will display the contents of the
423 data stream for the TCP connection to which that packet belongs, as
424 text, in a separate window, and will leave the list of packets in a
425 filtered state, with only those packets that are part of that TCP
426 connection being displayed.  You can revert to your old view by pressing
427 ENTER in the display filter text box, thereby invoking your old display
428 filter (or resetting it back to no display filter).
429
430 The window in which the data stream is displayed lets you select whether
431 to display:
432
433 =over 4
434
435 =item
436
437 whether to display the entire conversation, or one or the other side of
438 it;
439
440 =item
441
442 whether the data being displayed is to be treated as ASCII or EBCDIC
443 text or as raw hex data;
444
445 =back
446
447 =back
448
449 =over 4
450
451 =item
452
453 and lets you print what's currently being displayed, using the same
454 print options that are used for the I<File:Print Packet> menu item, or
455 save it as text to a file.
456
457 =back
458
459 =item Tools:Decode As
460
461 If you have a packet selected, this menu item will present a dialog
462 allowing you to change which dissectors are used to decode this
463 packet.  The dialog has one panel each for the link layer, network
464 layer and transport layer protocol/port numbers, and will allow each
465 of these to be changed independently.  For example, if the selected
466 packet is a TCP packet to port 12345, using this dialog you can
467 instruct Ethereal to decode all packets to or from that TCP port as
468 HTTP packets.
469
470 =item Tools:Protocol Hierarchy Statistics
471
472 This shows the number of packets, and the number of bytes
473 in those packets, for each protocol in the trace. It
474 organizes the protocols in the same hierarchy in which
475 they were found in the trace. Besides counting the packets
476 in which the protocol exists, a count is also made
477 for packets in which the protocol is the last protocol in
478 the stack. These last-protocol counts show you how many packets
479 (and the byte count associated with those packets) B<ended> in a particular
480 protocol. In the table, they are listed under "End Packets" and
481 "End Bytes".
482
483 =head2 WINDOWS
484
485 =over 4
486
487 =item Main Window
488
489 The main window is split into three panes.  You can resize each pane using
490 a "thumb" at the right end of each divider line.  Below the panes is a
491 strip that shows the current filter and informational text.
492
493 =over 6
494
495 =item Top Pane
496
497 The top pane contains the list of network packets that you can scroll
498 through and select.  By default, the packet number, packet timestamp,
499 source and destination addresses, protocol, and description are
500 displayed for each packet; the I<Columns> page in the dialog box popped
501 up by I<Edit:Preferences> lets you change this (although, unfortunately,
502 you currently have to save the preferences, and exit and restart
503 Ethereal, for those changes to take effect).
504
505 If you click on the heading for a column, the display will be sorted by
506 that column; clicking on the heading again will reverse the sort order
507 for that column.
508
509 An effort is made to display information as high up the protocol stack
510 as possible, e.g. IP addresses are displayed for IP packets, but the
511 MAC layer address is displayed for unknown packet types.
512
513 The right mouse button can be used to pop up a menu of operations.
514
515 The middle mouse button can be used to mark a packet.
516
517 =item Middle Pane
518
519 The middle pane contains a I<protocol tree> for the currently-selected
520 packet.  The tree displays each field and its value in each protocol
521 header in the stack.  The right mouse button can be used to pop up a
522 menu of operations.
523
524 =item Bottom Pane
525
526 The lowest pane contains a hex dump of the actual packet data. 
527 Selecting a field in the I<protocol tree> highlights the corresponding
528 bytes in this section.
529
530 The right mouse button can be used to pop up a menu of operations.
531
532 =item Current Filter
533
534 A display filter can be entered into the strip at the bottom. 
535 A filter for HTTP, HTTPS, and DNS traffic might look like this:
536
537   tcp.port == 80 || tcp.port == 443 || tcp.port == 53
538
539 Selecting the I<Filter:> button lets you choose from a list of named
540 filters that you can optionally save.  Pressing the Return or Enter
541 keys will cause the filter to be applied to the current list of packets.
542 Selecting the I<Reset> button clears the display filter so that all
543 packets are displayed.
544
545 =back
546
547 =item Preferences
548
549 The I<Preferences> dialog lets you control various personal preferences
550 for the behavior of B<Ethereal>.
551
552 =over 6
553
554 =item Printing Preferences
555
556 The radio buttons at the top of the I<Printing> page allow you choose
557 between printing packets with the I<File:Print Packet> menu item as text
558 or PostScript, and sending the output directly to a command or saving it
559 to a file.  The I<Command:> text entry box is the command to send files
560 to (usually B<lpr>), and the I<File:> entry box lets you enter the name
561 of the file you wish to save to.  Additionally, you can select the
562 I<File:> button to browse the file system for a particular save file.
563
564 =item Column Preferences
565
566 The I<Columns> page lets you specify the number, title, and format
567 of each column in the packet list.
568
569 The I<Column title> entry is used to specify the title of the column
570 displayed at the top of the packet list.  The type of data that the column
571 displays can be specified using the I<Column format> option menu.
572 The row of buttons on the left perform the following actions:
573
574 =over 6
575
576 =item New
577
578 Adds a new column to the list.
579
580 =item Change
581
582 Modifies the currently selected list item.
583
584 =item Delete
585
586 Deletes the currently selected list item.
587
588 =item Up / Down
589
590 Moves the selected list item up or down one position.
591
592 =item OK
593
594 Currently has no effect.
595
596 =item Save
597
598 Saves the current column format as the default.
599
600 =item Cancel
601
602 Closes the dialog without making any changes.
603
604 =back
605
606 =item TCP Stream Preferences
607
608 The I<TCP Streams> page can be used to change the color of the text
609 displayed in the TCP stream window.  To change a color, simply select
610 an attribute from the "Set:" menu and use the color selector to get the
611 desired color.  The new text colors are displayed in a sample window.
612
613 =item GUI Preferences
614
615 The I<GUI> page is used to modify small aspects of the GUI to your own
616 personal taste:
617
618 =over 6
619
620 =item Scrollbars
621
622 The vertical scrollbars in the three panes can be set to be either on
623 the left or the right. 
624
625 =item Selection Bars
626
627 The selection bar in the
628 packet list and protocol tree can have either a "browse" or "select"
629 behavior. If the selection bar has a "browse" behavior, the arrow keys
630 will move an outline of the selection bar, allowing you to browse
631 the rest of the list or tree without changing the selection
632 until you press the space bar. If the selection bar has a "select"
633 behavior, the arrow keys will move the selection bar and change
634 the selection to the new item in the packet list or protocol tree.
635 The highlight method in the hex dump display for the selected protocol
636 item can be set to use either inverse video, or bold characters.
637
638 =item Fonts
639
640 The "Font..." button lets you select the font to be used for most text.
641
642 =item Colors
643
644 The "Colors..." button lets you select the colors to be used for instance
645 for the marked frames.
646
647 =back
648
649 =item Protocol Preferences
650
651 There are also pages for various protocols that Ethereal dissects,
652 controlling the way Ethereal handles those protocols.
653
654 =back
655
656 =item Edit Capture Filter List
657
658 =item Edit Display Filter List
659
660 =item Capture Filter
661
662 =item Display Filter
663
664 =item Read Filter
665
666 =item Search Filter
667
668 The I<Edit Capture Filter List> dialog lets you create, modify, and
669 delete capture filters, and the I<Edit Display Filter List> dialog lets
670 you create, modify, and delete display filters.
671
672 The I<Capture Filter> dialog lets you do all of the editing operations
673 listed, and also lets you choose or construct a filter to be used when
674 capturing packets.
675
676 The I<Display Filter> dialog lets you do all of the editing operations
677 listed, and also lets you choose or construct a filter to be used to
678 filter the current capture being viewed.
679
680 The I<Read Filter> dialog lets you do all of the editing operations
681 listed, and also lets you choose or construct a filter to be used to
682 as a read filter for a capture file you open.
683
684 The I<Search Filter> dialog lets you do all of the editing operations
685 listed, and also lets you choose or construct a filter expression to be
686 used in a find operation.
687
688 In all of those dialogs, the I<Filter name> entry specifies a
689 descriptive name for a filter, e.g.  B<Web and DNS traffic>.  The
690 I<Filter string> entry is the text that actually describes the filtering
691 action to take, as described above.The dialog buttons perform the
692 following actions:
693
694 =over 6
695
696 =item New
697
698 If there is text in the two entry boxes, creates a new associated list
699 item.
700
701 =item Change
702
703 Modifies the currently selected list item to match what's in the entry
704 boxes.
705
706 =item Copy
707
708 Makes a copy of the currently selected list item.
709
710 =item Delete
711
712 Deletes the currently selected list item.
713
714 =item Add Expression...
715
716 For display filter expressions, pops up a dialog box to allow you to
717 construct a filter expression to test a particular field; it offers
718 lists of field names, and, when appropriate, lists from which to select
719 tests to perform on the field and values with which to compare it.  In
720 that dialog box, the OK button will cause the filter expression you
721 constructed to be entered into the I<Filter string> entry at the current
722 cursor position.
723
724 =item OK
725
726 In the I<Capture Filter> dialog, closes the dialog box and makes the
727 filter in the I<Filter string> entry the filter in the I<Capture
728 Preferences> dialog.  In the I<Display Filter> dialog, closes the dialog
729 box and makes the filter in the I<Filter string> entry the current
730 display filter, and applies it to the current capture.  In the I<Read
731 Filter> dialog, closes the dialog box and makes the filter in the
732 I<Filter string> entry the filter in the I<Open Capture File> dialog. 
733 In the I<Search Filter> dialog, closes the dialog box and makes the
734 filter in the I<Filter string> entry the filter in the I<Find Frame>
735 dialog.
736
737 =item Apply
738
739 Makes the filter in the I<Filter string> entry the current display
740 filter, and applies it to the current capture.
741
742 =item Save
743
744 Saves the current filter list in F<$HOME/.ethereal/cfilters> on
745 UNIX-compatible systems, and F<%APPDATA%\Ethereal\cfilters> (or, if
746 %APPDATA% isn't defined,
747 F<%USERPROFILE%\Application Data\Ethereal\cfilters>)
748 on Windows systems, if the list of filters being edited is the list of
749 capture filters, or in F<$HOME/.ethereal/dfilters> on UNIX-compatible
750 systems, and F<%APPDATA%\Ethereal\dfilters> (or, if %APPDATA% isn't
751 defined, F<%USERPROFILE%\Application Data\Ethereal\dfilters>) on Windows
752 systems, if the list of filters being edited is the list of display
753 filters.
754
755 =item Close
756
757 Closes the dialog without doing anything with the filter in the I<Filter
758 string> entry.
759
760 =back
761
762 =item Capture Preferences
763
764 The I<Capture Preferences> dialog lets you specify various parameters for
765 capturing live packet data.
766
767 The I<Interface:> combo box lets you specify the interface from which to
768 capture packet data, or the name of a FIFO from which to get the packet
769 data.  The I<Count:> entry specifies the number of packets to capture. 
770 Entering 0 will capture packets indefinitely.  The I<Filter:> entry lets
771 you specify the capture filter using a tcpdump-style filter string as
772 described above.  The I<File:> entry specifies the file to save to, as
773 in the I<Printer Options> dialog above.  You can specify the maximum
774 number of bytes to capture per packet with the I<Capture length> entry,
775 can specify whether the interface is to be put in promiscuous mode or
776 not with the I<Capture packets in promiscuous mode> check box, can
777 specify that the display should be updated as packets are captured with
778 the I<Update list of packets in real time> check box, can specify
779 whether in such a capture the packet list pane should scroll to show the
780 most recently captured packets with the I<Automatic scrolling in live
781 capture> check box, and can specify whether addresses should be
782 translated to names in the display with the I<Enable MAC name resolution>,
783 I<Enable network name resolution> and I<Enable transport name resolution>
784 check boxes.
785
786 =item Display Options
787
788 The I<Display Options> dialog lets you specify the format of the time
789 stamp in the packet list.  You can select "Time of day" for absolute
790 time stamps, "Date and time of day" for absolute time stamps with the
791 date, "Seconds since beginning of capture" for relative time stamps, or
792 "Seconds since previous frame" for delta time stamps.  You can also
793 specify whether, when the display is updated as packets are captured,
794 the list should automatically scroll to show the most recently captured
795 packets or not and whether addresses or port numbers should be
796 translated to names in the display on a MAC, network and transport layer
797 basis.
798
799 =item Plugins
800
801 The I<Plugins> dialog lets you view the dissector plugin modules
802 available on your system.
803
804 The I<Plugins List> shows the name and version of each dissector plugin
805 module found on your system.  The plugins are searched in the following
806 directories: the F<lib/ethereal/plugins/$VERSION> directory under the
807 main installation directory (for example,
808 F</usr/local/lib/ethereal/plugins/$VERSION>),
809 F</usr/lib/ethereal/plugins/$VERSION>,
810 F</usr/local/lib/ethereal/plugins/$VERSION>, and
811 F<$HOME/.ethereal/plugins> on UNIX-compatible systems, and in the
812 F<plugins\$VERSION> directory under the main installation directory (for
813 example, F<C:\Program Files\Ethereal\plugins\$VERSION>) and
814 F<%APPDATA%\Ethereal\plugins\$VERSION> (or, if %APPDATA% isn't defined,
815 F<%USERPROFILE%\Application Data\Ethereal\plugins\$VERSION>) on Windows
816 systems; $VERSION is the version number of the plugin interface, which
817 is typically the version number of Ethereal.  Note that a dissector
818 plugin module may support more than one protocol; there is not
819 necessarily a one-to-one correspondence between dissector plugin modules
820 and protocols.  Protocols supported by a dissector plugin module are
821 enabled and disabled using the I<Edit:Protocols> dialog box, just as
822 protocols built into Ethereal are.
823
824 =head1 CAPTURE FILTER SYNTAX
825
826 See manual page of tcpdump(8).
827
828 =head1 DISPLAY FILTER SYNTAX
829
830 Display filters help you remove the noise from a packet trace and let
831 you see only the packets that interest you.  If a packet meets the
832 requirements expressed in your display filter, then it is displayed in
833 the list of packets.  Display filters let you compare the fields within
834 a protocol against a specific value, compare fields against fields, and
835 to check the existence of specified fields or protocols.
836
837 The simplest display filter allows you to check for the existence of a
838 protocol or field.  If you want to see all packets which contain the IPX
839 protocol, the filter would be "ipx".  (Without the quotation marks) To
840 see all packets that contain a Token-Ring RIF field, use "tr.rif".
841
842 Fields can also be compared against values.  The comparison operators
843 can be expressed either through C-like symbols, or through English-like
844 abbreviations:
845
846     eq, ==    Equal
847     ne, !=    Not equal
848     gt, >     Greater than
849     lt, <     Less Than
850     ge, >=    Greater than or Equal to
851     le, <=    Less than or Equal to
852
853 Furthermore, each protocol field is typed. The types are:
854
855     Unsigned integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
856     Signed integer (either 8-bit, 16-bit, 24-bit, or 32-bit)
857     Boolean
858     Ethernet address (6 bytes)
859     Byte string (n-number of bytes)
860     IPv4 address
861     IPv6 address
862     IPX network number
863     String (text)
864     Double-precision floating point number
865
866 An integer may be expressed in decimal, octal, or hexadecimal notation. 
867 The following three display filters are equivalent:
868
869     frame.pkt_len > 10
870     frame.pkt_len > 012
871     frame.pkt_len > 0xa
872
873 Boolean values are either true or false.  In a display filter expression
874 testing the value of a Boolean field, "true" is expressed as 1 or any
875 other non-zero value, and "false" is expressed as zero.  For example, a
876 token-ring packet's source route field is boolean.  To find any
877 source-routed packets, a display filter would be:
878
879     tr.sr == 1
880
881 Non source-routed packets can be found with:
882
883     tr.sr == 0
884
885 Ethernet addresses, as well as a string of bytes, are represented in hex
886 digits.  The hex digits may be separated by colons, periods, or hyphens:
887
888     fddi.dst eq ff:ff:ff:ff:ff:ff
889     ipx.srcnode == 0.0.0.0.0.1
890     eth.src == aa-aa-aa-aa-aa-aa
891
892 If a string of bytes contains only one byte, then it is represented as
893 an unsigned integer.  That is, if you are testing for hex value 'ff' in
894 a one-byte byte-string, you must compare it agains '0xff' and not 'ff'. 
895
896 IPv4 addresses can be represented in either dotted decimal notation, or
897 by using the hostname:
898
899     ip.dst eq www.mit.edu
900     ip.src == 192.168.1.1
901
902 IPv4 addresses can be compared with the same logical relations as numbers:
903 eq, ne, gt, ge, lt, and le.  The IPv4 address is stored in host order,
904 so you do not have to worry about how the endianness of an IPv4 address
905 when using it in a display filter.
906
907 Classless InterDomain Routing (CIDR) notation can be used to test if an
908 IPv4 address is in a certain subnet.  For example, this display filter
909 will find all packets in the 129.111 Class-B network:
910
911     ip.addr == 129.111.0.0/16
912
913 Remember, the number after the slash represents the number of bits used
914 to represent the network.  CIDR notation can also be used with
915 hostnames, in this example of finding IP addresses on the same Class C
916 network as 'sneezy':
917
918     ip.addr eq sneezy/24
919
920 The CIDR notation can only be used on IP addresses or hostnames, not in
921 variable names.  So, a display filter like "ip.src/24 == ip.dst/24" is
922 not valid.  (yet)
923
924 IPX networks are represented by unsigned 32-bit integers.  Most likely
925 you will be using hexadecimal when testing for IPX network values:
926
927     ipx.srcnet == 0xc0a82c00
928
929 A slice operator also exists.  You can check the substring
930 (byte-string) of any protocol or field.  For example, you can filter on
931 the vendor portion of an ethernet address (the first three bytes) like
932 this:
933
934     eth.src[0:3] == 00:00:83
935
936 If the length of your byte-slice is only one byte, then it is still
937 represented in hex, but without the preceding "0x": 
938
939     llc[3] == aa
940
941 You can use the slice operator on a protocol name, too.  And
942 remember, the "frame" protocol encompasses the entire packet, allowing
943 you to look at the nth byte of a packet regardless of its frame type
944 (Ethernet, token-ring, etc.).
945
946     token[0:5] ne 0.0.0.1.1
947     ipx[0:2] == ff:ff
948     llc[3:1] eq 0xaa
949
950 The following syntax governs slices:
951
952         [i:j]   i = start_offset, j = length
953         [i-j]   i = start_offet, j = end_offset, inclusive.
954         [i]     i = start_offset, length = 1
955         [:j]    start_offset = 0, length = j
956         [i:]    start_offset = i, end_offset = end_of_field
957
958 Offsets and lengths can be negative, in which case they indicate the
959 offset from the B<end> of the field.  Here's how to check the last 4
960 bytes of a frame:
961
962     frame[-4:4] == 0.1.2.3
963
964 or
965
966     frame[-4:] == 0.1.2.3
967
968 You can create complex concatenations of slices using the comma operator:
969
970         field[1,3-5,9:] == 01:03:04:05:09:0a:0b
971
972 All the above tests can be combined together with logical expressions. 
973 These too are expressable in C-like syntax or with English-like
974 abbreviations:
975
976     and, &&   Logical AND
977     or, ||    Logical OR
978     not, !    Logical NOT
979
980 Expressions can be grouped by parentheses as well.  The following are
981 all valid display filter expression:
982
983     tcp.port == 80 and ip.src == 192.168.2.1
984     not llc
985     (ipx.srcnet == 0xbad && ipx.srnode == 0.0.0.0.0.1) || ip
986     tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
987
988 A special caveat must be given regarding fields that occur more than
989 once per packet.  "ip.addr" occurs twice per IP packet, once for the
990 source address, and once for the destination address.  Likewise,
991 tr.rif.ring fields can occur more than once per packet.  The following
992 two expressions are not equivalent:
993
994         ip.addr ne 192.168.4.1
995     not ip.addr eq 192.168.4.1
996
997 The first filter says "show me all packets where an ip.addr exists that
998 does not equal 192.168.4.1".  That is, as long as one ip.addr in the
999 packet does not equal 192.168.44.1, the packet passes the display
1000 filter.  The second filter "don't show me any packets that have at least
1001 one ip.addr field equal to 192.168.4.1".  If one ip.addr is 192.168.4.1,
1002 the packet does not pass.  If B<neither> ip.addr fields is 192.168.4.1,
1003 then the packet passes.
1004
1005 It is easy to think of the 'ne' and 'eq' operators as having an implict
1006 "exists" modifier when dealing with multiply-recurring fields.  "ip.addr
1007 ne 192.168.4.1" can be thought of as "there exists an ip.addr that does
1008 not equal 192.168.4.1".
1009
1010 Be careful with multiply-recurring fields; they can be confusing.
1011
1012 The following is a table of protocol and protocol fields that are
1013 filterable in B<Ethereal>.  The abbreviation of the protocol or field is
1014 given.  This abbreviation is what you use in the display filter.  The
1015 type of the field is also given.
1016
1017 =insert_dfilter_table
1018
1019 =head1 FILES
1020
1021 The F<ethereal.conf> file, which is installed in the F<etc> directory
1022 under the main installation directory (for example, F</usr/local/etc>)
1023 on UNIX-compatible systems, and in the main installation directory (for
1024 example, F<C:\Program Files\Ethereal>) on Windows systems, and the
1025 personal preferences file, which is F<$HOME/.ethereal/preferences> on
1026 UNIX-compatible systems and F<%APPDATA%\Ethereal\preferences> (or, if
1027 %APPDATA% isn't defined,
1028 F<%USERPROFILE%\Application Data\Ethereal\preferences>) on
1029 Windows systems, contain system-wide and personal preference settings,
1030 respectively.  The file contains preference settings of the form
1031 I<prefname>B<:>I<value>, one per line, where I<prefname> is the name of
1032 the preference (which is the same name that would appear in the
1033 preference file), and I<value> is the value to which it should be set;
1034 white space is allowed between B<:> and I<value>.  A preference setting
1035 can be continued on subsequent lines by indenting the continuation lines
1036 with white space.  A B<#> character starts a comment that runs to the
1037 end of the line.
1038
1039 The system-wide preference file is read first, if it exists, overriding
1040 B<Ethereal>'s default values; the personal preferences file is then
1041 read, if it exists, overriding default values and values read from the
1042 system-wide preference file.
1043
1044 Note that whenever the preferences are saved by using the I<Save> button
1045 in the I<Edit:Preferences> dialog box, your personal preferences file
1046 will be overwritten with the new settings, destroying any comments that
1047 were in the file.
1048
1049 The F<ethers> file, which is found in the F</etc> directory on
1050 UNIX-compatible systems, and in the main installation directory (for
1051 example, F<C:\Program Files\Ethereal>) on Windows systems, is consulted
1052 to correlate 6-byte hardware addresses to names.  If an address is not
1053 found in the F<ethers> file, the F<$HOME/.ethereal/ethers> file on
1054 UNIX-compatible systems, and the F<%APPDATA%\Ethereal\ethers> file (or, if
1055 %APPDATA% isn't defined, the
1056 F<%USERPROFILE%\Application Data\Ethereal\ethers> file) on Windows
1057 systems is consulted next.  Each line contains one hardware
1058 address and name, separated by whitespace.  The digits of the hardware
1059 address are separated by either a colon (:), a dash (-), or a period
1060 (.).  The following three lines are valid lines of an ethers file:
1061
1062   ff:ff:ff:ff:ff:ff          Broadcast
1063   c0-00-ff-ff-ff-ff          TR_broadcast
1064   00.00.00.00.00.00          Zero_broadcast
1065
1066 The F<manuf> file, which is installed in the F<etc> directory under the
1067 main installation directory (for example, F</usr/local/etc>) on
1068 UNIX-compatible systems, and in the main installation directory (for
1069 example, F<C:\Program Files\Ethereal>) on Windows systems, matches the
1070 3-byte vendor portion of a 6-byte hardware address with the
1071 manufacturer's name.  The format of the file is the same as the
1072 F<ethers> file, except that each address is three bytes instead of six.
1073
1074 The F<ipxnets> file, which is found in the F</etc> directory on
1075 UNIX-compatible systems, and in the main installation directory (for
1076 example, F<C:\Program Files\Ethereal>) on Windows systems, correlates
1077 4-byte IPX network numbers to names.  If a network number is not found
1078 in the F<ipxnets> file, the F<$HOME/.ethereal/ipxnets> file on
1079 UNIX-compatible systems, and the F<%APPDATA%\Ethereal\ipxnets> file (or,
1080 if %APPDATA% isn't defined, the
1081 F<%USERPROFILE%\Application Data\Ethereal\ipxnets> file)
1082 on Windows systems, is consulted next.  The format is the same as the
1083 F<ethers> file, except that each address if four bytes instead of six. 
1084 Additionally, the address can be represented a single hexadecimal
1085 number, as is more common in the IPX world, rather than four hex octets. 
1086 For example, these four lines are valid lines of an ipxnets file.
1087
1088   C0.A8.2C.00              HR
1089   c0-a8-1c-00              CEO
1090   00:00:BE:EF              IT_Server1
1091   110f                     FileServer3
1092
1093 =head1 SEE ALSO
1094
1095 L<tethereal(1)>, L<editcap(1)>, L<tcpdump(8)>, L<pcap(3)>
1096
1097 =head1 NOTES
1098
1099 The latest version of B<Ethereal> can be found at
1100 B<http://www.ethereal.com>.
1101
1102 =head1 AUTHORS
1103
1104   Original Author
1105   -------- ------
1106   Gerald Combs  <gerald[AT]ethereal.com>
1107
1108
1109   Contributors
1110   ------------
1111   Gilbert Ramirez          <gram[AT]alumni.rice.edu>
1112   Hannes R. Boehm          <hannes[AT]boehm.org>
1113   Mike Hall                <mlh[AT]io.com>
1114   Bobo Rajec               <bobo[AT]bsp-consulting.sk>
1115   Laurent Deniel           <deniel[AT]worldnet.fr>
1116   Don Lafontaine           <lafont02[AT]cn.ca>
1117   Guy Harris               <guy[AT]alum.mit.edu>
1118   Simon Wilkinson          <sxw[AT]dcs.ed.ac.uk>
1119   Joerg Mayer              <jmayer[AT]loplof.de>
1120   Martin Maciaszek         <fastjack[AT]i-s-o.net>
1121   Didier Jorand            <Didier.Jorand[AT]alcatel.fr>
1122   Jun-ichiro itojun Hagino <itojun[AT]iijlab.net>
1123   Richard Sharpe           <sharpe[AT]ns.aus.com>
1124   John McDermott           <jjm[AT]jkintl.com> 
1125   Jeff Jahr                <jjahr[AT]shastanets.com>
1126   Brad Robel-Forrest       <bradr[AT]watchguard.com>
1127   Ashok Narayanan          <ashokn[AT]cisco.com>
1128   Aaron Hillegass          <aaron[AT]classmax.com>
1129   Jason Lango              <jal[AT]netapp.com>
1130   Johan Feyaerts           <Johan.Feyaerts[AT]siemens.atea.be>
1131   Olivier Abad             <oabad[AT]cybercable.fr>
1132   Thierry Andry            <Thierry.Andry[AT]advalvas.be>
1133   Jeff Foster              <jjfoste[AT]woodward.com>
1134   Peter Torvals            <petertv[AT]xoommail.com>
1135   Christophe Tronche       <ch.tronche[AT]computer.org>
1136   Nathan Neulinger         <nneul[AT]umr.edu>
1137   Tomislav Vujec           <tvujec[AT]carnet.hr>
1138   Kojak                    <kojak[AT]bigwig.net>
1139   Uwe Girlich              <Uwe.Girlich[AT]philosys.de>
1140   Warren Young             <tangent[AT]mail.com>
1141   Heikki Vatiainen         <hessu[AT]cs.tut.fi>
1142   Greg Hankins             <gregh[AT]twoguys.org>
1143   Jerry Talkington         <jerryt[AT]netapp.com>
1144   Dave Chapeskie           <dchapes[AT]ddm.on.ca>
1145   James Coe                <jammer[AT]cin.net>
1146   Bert Driehuis            <driehuis[AT]playbeing.org>
1147   Stuart Stanley           <stuarts[AT]mxmail.net>
1148   John Thomes              <john[AT]ensemblecom.com>
1149   Laurent Cazalet          <laurent.cazalet[AT]mailclub.net>
1150   Thomas Parvais           <thomas.parvais[AT]advalvas.be>
1151   Gerrit Gehnen            <G.Gehnen[AT]atrie.de>
1152   Craig Newell             <craign[AT]cheque.uq.edu.au>
1153   Ed Meaney                <emeaney[AT]altiga.com>
1154   Dietmar Petras           <DPetras[AT]ELSA.de> 
1155   Fred Reimer              <fwr[AT]ga.prestige.net>
1156   Florian Lohoff           <flo[AT]rfc822.org>
1157   Jochen Friedrich         <jochen+ethereal[AT]scram.de>
1158   Paul Welchinski          <paul.welchinski[AT]telusplanet.net>
1159   Doug Nazar               <nazard[AT]dragoninc.on.ca>
1160   Andreas Sikkema          <andreas.sikkema[AT]philips.com>
1161   Mark Muhlestein          <mmm[AT]netapp.com>
1162   Graham Bloice            <graham.bloice[AT]trihedral.com>
1163   Ralf Schneider           <ralf.schneider[AT]alcatel.se>
1164   Yaniv Kaul               <ykaul[AT]netvision.net.il>
1165   Paul Ionescu             <ipaul[AT]romsys.ro>
1166   Mark Burton              <markb[AT]ordern.com>
1167   Stefan Raab              <sraab[AT]cisco.com>
1168   Mark Clayton             <clayton[AT]shore.net>
1169   Michael Rozhavsky        <mike[AT]tochna.technion.ac.il>
1170   Dug Song                 <dugsong[AT]monkey.org>
1171   Michael Tuexen           <Michael.Tuexen[AT]icn.siemens.de>
1172   Bruce Korb               <bkorb[AT]sco.com>
1173   Jose Pedro Oliveira      <jpo[AT]di.uminho.pt>
1174   David Frascone           <dave[AT]frascone.com>
1175   Peter Kjellerstedt       <pkj[AT]axis.com>
1176   Phil Techau              <phil_t[AT]altavista.net>
1177   Wes Hardaker             <wjhardaker[AT]ucdavis.edu>
1178   Robert Tsai              <rtsai[AT]netapp.com>
1179   Craig Metz               <cmetz[AT]inner.net>
1180   Per Flock                <per.flock[AT]axis.com>
1181   Jack Keane               <jkeane[AT]OpenReach.com>
1182   Brian Wellington         <bwelling[AT]xbill.org>
1183   Santeri Paavolainen      <santtu[AT]ssh.com>
1184   Ulrich Kiermayr          <uk[AT]ap.univie.ac.at>
1185   Neil Hunter              <neil.hunter[AT]energis-squared.com>
1186   Ralf Holzer              <ralf[AT]well.com>
1187   Craig Rodrigues          <rodrigc[AT]mediaone.net>
1188   Ed Warnicke              <hagbard[AT]physics.rutgers.edu>
1189   Johan Jorgensen          <johan.jorgensen[AT]axis.com>
1190   Frank Singleton          <frank.singleton[AT]ericsson.com>
1191   Kevin Shi                <techishi[AT]ms22.hinet.net>
1192   Mike Frisch              <mfrisch[AT]saturn.tlug.org>
1193   Burke Lau                <burke_lau[AT]agilent.com>
1194   Martti Kuparinen         <martti.kuparinen[AT]iki.fi>
1195   David Hampton            <dhampton[AT]mac.com>
1196   Kent Engström            <kent[AT]unit.liu.se>
1197   Ronnie Sahlberg          <rsahlber[AT]bigpond.net.au>
1198   Alexandre P. Ferreira    <alexandref[AT]spliceip.com.br>
1199   Simharajan Srishylam     <Simharajan.Srishylam[AT]netapp.com>
1200   Greg Kilfoyle            <gregk[AT]redback.com>
1201   James E. Flemer          <jflemer[AT]acm.jhu.edu>
1202   Peter Lei                <peterlei[AT]cisco.com>
1203   Thomas Gimpel            <thomas.gimpel[AT]ferrari.de>
1204   Albert Chin              <china[AT]thewrittenword.com>
1205   Charles Levert           <charles[AT]comm.polymtl.ca>
1206   Todd Sabin               <tas[AT]webspan.net>
1207   Eduardo Pérez Ureta      <eperez[AT]dei.inf.uc3m.es>
1208   Martin Thomas            <martin_a_thomas[AT]yahoo.com>
1209   Hartmut Mueller          <hartmut[AT]wendolene.ping.de>
1210   Michal Melerowicz        <Michal.Melerowicz[AT]nokia.com>
1211   Hannes Gredler           <hannes[AT]juniper.net>
1212   Inoue                    <inoue[AT]ainet.or.jp>
1213   Olivier Biot             <Olivier.Biot[AT]siemens.atea.be>
1214   Patrick Wolfe            <pjw[AT]zocalo.cellular.ameritech.com>
1215   Martin Held              <Martin.Held[AT]icn.siemens.de>
1216   Riaan Swart              <rswart[AT]cs.sun.ac.za>
1217   Christian Lacunza        <celacunza[AT]gmx.net>
1218   Michael Rozhavsky        <mike[AT]tochna.technion.ac.il>
1219   Scott Renfro             <scott[AT]renfro.org>
1220   Juan Toledo              <toledo[AT]users.sourceforge.net>
1221   Jean-Christian Pennetier <jeanchristian.pennetier[AT]rd.francetelecom.fr>
1222   Jian Yu                  <bgp4news[AT]yahoo.com>
1223   Eran Mann                <emann[AT]opticalaccess.com>
1224   Andy Hood                <ahood[AT]westpac.com.au>
1225   Randy McEoin             <rmceoin[AT]pe.net>
1226   Edgar Iglesias           <edgar.iglesias[AT]axis.com>
1227   Martina Obermeier        <Martina.Obermeier[AT]icn.siemens.de>
1228   Mark Burton              <markb[AT]ordern.com>
1229   Javier Achirica          <achirica[AT]ttd.net>
1230   B. Johannessen           <bob[AT]havoq.com>
1231   Thierry Pelle            <thierry.pelle[AT]rd.francetelecom.fr>
1232   Francisco Javier Cabello <fjcabello[AT]vtools.es>
1233   Laurent Rabret           <laurent.rabret[AT]rd.francetelecom.fr>
1234   nuf si                   <gnippiks[AT]yahoo.com>
1235   Jeff Morriss             <jeff.morriss[AT]ulticom.com>
1236   Aamer Akhter             <aakhter[AT]cisco.com>
1237   Pekka Savola             <pekkas[AT]netcore.fi>
1238   David Eisner             <cradle[AT]Glue.umd.edu>
1239   Steve Dickson            <steved[AT]talarian.com>
1240   Markus Seehofer          <mseehofe[AT]nt.hirschmann.de>
1241   Lee Berger               <lberger[AT]roy.org>
1242   Motonori Shindo          <mshindo[AT]mshindo.net>
1243   Terje Krogdahl           <tekr[AT]nextra.com>
1244   Jean-Francois Mule       <jfmule[AT]clarent.com>
1245   Thomas Wittwer           <thomas.wittwer[AT]iclip.ch>
1246   Matthias Nyffenegger     <matthias.nyffenegger[AT]iclip.ch>
1247   Palle Lyckegaard         <Palle[AT]lyckegaard.dk>
1248   Nicolas Balkota          <balkota[AT]mac.com>
1249   Tom Uijldert             <Tom.Uijldert[AT]cmg.nl>
1250   Endoh Akira              <endoh[AT]netmarks.co.jp>
1251   Graeme Hewson            <graeme.hewson[AT]oracle.com>
1252   Pasi Eronen              <pasi.eronen[at]nixu.com>
1253   Georg von Zezschwitz     <gvz[AT]2scale.net>
1254   Steffen Weinreich        <steve[AT]weinreich.org>
1255   Marc Milgram             <mmilgram[AT]arrayinc.com>
1256   Gordon McKinney          <gordon[AT]night-ray.com>
1257   Tim Farley               <tfarley[AT]iss.net>
1258   Daniel Thompson          <daniel.thompson[AT]st.com>
1259   Chris Jepeway            <thai-dragon[AT]eleven29.com>
1260   Pavel Novotny            <Pavel.Novotny[AT]icn.siemens.de>
1261   Shinsuke Suzuki          <suz[AT]kame.net>
1262   Andrew C. Feren          <aferen[AT]cetacean.com>
1263   Tomas Kukosa             <tomas.kukosa[AT]anfdata.cz>
1264   Andreas Stockmeier       <a.stockmeier[AT]avm.de>
1265   Pekka Nikander           <pekka.nikander[AT]nomadiclab.com>
1266   Hamish Moffatt           <hamish[AT]cloud.net.au>
1267   Kazushi Sugyo            <k-sugyou[AT]nwsl.mesh.ad.jp>
1268   Tim Potter               <tpot[AT]samba.org>
1269   Raghu Angadi             <rangadi[AT]inktomi.com>
1270   Taisuke Sasaki           <sasaki[AT]soft.net.fujitsu.co.jp>
1271   Tim Newsham              <newsham[AT]lava.net>
1272   Tom Nisbet               <Tnisbet[AT]VisualNetworks.com>
1273
1274 Alain Magloire <alainm[AT]rcsm.ece.mcgill.ca> was kind enough to give his
1275 permission to use his version of snprintf.c.
1276
1277 Dan Lasley <dlasley[AT]promus.com> gave permission for his dumpit() hex-dump
1278 routine to be used.
1279
1280 Mattia Cazzola <mattiac[AT]alinet.it> provided a patch to the hex dump
1281 display routine.
1282
1283 We use the exception module from Kazlib, a C library written by
1284 Kaz Kylheku <kaz[AT]ashi.footprints.net>. Thanks goes to him for his
1285 well-written library. The Kazlib home page can be found at
1286 http://users.footprints.net/~kaz/kazlib.html