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