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