wireshark.org protocol dissector with Osmocom additions
Go to file
Jun-ichiro itojun Hagino d856a9cee2 add string IP protocol name into info field of fragmented packet.
svn path=/trunk/; revision=833
1999-10-14 16:46:55 +00:00
doc Nathan Neulinger's dissector for the Yahoo messenger and pager 1999-10-14 01:29:07 +00:00
gtk Nathan Neulinger's dissector for the Yahoo messenger and pager 1999-10-14 01:29:07 +00:00
image * Added column formatting functionality. 1998-11-17 04:29:13 +00:00
wiretap implement ipprotostr() in ipproto.c, which basically does ipprotobynumber() 1999-10-14 03:50:51 +00:00
AUTHORS Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
COPYING * Copied in the correct GNU license (I'm such a goober) 1998-10-16 01:18:35 +00:00
ChangeLog Initial revision 1998-09-16 02:39:15 +00:00
INSTALL Updated docs. 1999-08-27 22:57:56 +00:00
INSTALL.configure * Installation documentation updates 1998-12-29 03:12:07 +00:00
Makefile.am Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
Makefile.nmake Put "packet-atm.c" in. 1999-08-22 07:10:08 +00:00
NEWS Changed version to 0.7.5 1999-09-24 14:59:32 +00:00
README Changed version to 0.7.5 1999-09-24 14:59:32 +00:00
README.irix Moved version to 0.7.4; updated documentation. 1999-09-24 03:28:59 +00:00
README.linux Added info about Linux libpcap misbehavior, and where to download the libpcap 1999-08-31 06:09:25 +00:00
README.tru64 Miscellaneous updates of README and README.tru64 created. 1999-04-30 21:16:31 +00:00
README.win32 Finally got the win32 ethereal to link properly with MSVC. 1999-07-21 17:40:42 +00:00
acconfig.h Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
acinclude.m4 Jun-ichiro itojun Hagino's changes for IPv6 extension header decoding 1999-10-12 23:12:06 +00:00
alignment.h Give it an RCS ID. 1999-09-23 05:26:18 +00:00
autogen.sh Changed gtk subdirectory to use only Makefile.am, and not have a configure 1999-08-31 05:52:08 +00:00
capture.c Get rid of "-F" - "-S" works, and has a more convenient UI. 1999-10-02 20:00:46 +00:00
capture.h Get rid of "-F" - "-S" works, and has a more convenient UI. 1999-10-02 20:00:46 +00:00
colors.c Have "dfilter_compile()" return 0 on success and 1 on failure, and 1999-10-12 05:01:07 +00:00
colors.h Phil Techau's patch to allocate colors read-only and, if we can't get 1999-10-07 22:50:45 +00:00
column.c Add summary-vs-detail radio buttons to the print dialog box; detail 1999-09-12 06:11:51 +00:00
column.h Add summary-vs-detail radio buttons to the print dialog box; detail 1999-09-12 06:11:51 +00:00
config.guess * Scripts needed for configure.in 1998-09-20 00:25:16 +00:00
config.h.win32 Added support for compiling on win32 with Visual C and 'nmake'. It compiles, 1999-07-13 02:53:26 +00:00
configure.in Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
dfilter-grammar.y Put back the "%expect 4" that I accidentally deleted. 1999-10-14 08:05:51 +00:00
dfilter-int.h - add handling of FT_IPv6 variables 1999-10-11 17:05:49 +00:00
dfilter-scanner.l New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
dfilter.c Have "dfilter_compile()" return 0 on success and 1 on failure, and 1999-10-12 05:01:07 +00:00
dfilter.h Have "dfilter_compile()" return 0 on success and 1 on failure, and 1999-10-12 05:01:07 +00:00
display.c Add an item to the "File/Print" dialog box to ask that the full hex data 1999-09-29 22:19:24 +00:00
display.h Added "Capture" and "Display" menus; "Capture" has a "Start" item, which 1999-06-19 01:14:51 +00:00
ethereal.spec.in Changed spec file for producing RPMs to ethereal.spec.in so that 1999-08-24 17:18:35 +00:00
ethertype.c Created a new protocol tree implementation and a new display filter 1999-07-07 22:52:57 +00:00
etypes.h Add a comment. 1999-08-22 01:35:34 +00:00
file.c Have "dfilter_compile()" return 0 on success and 1 on failure, and 1999-10-12 05:01:07 +00:00
file.h When a new display filter is to be applied, don't set "cf.dfilter" or 1999-10-11 06:39:26 +00:00
follow.c More shuffling of GTK-related files to gtk subdirectory. 1999-09-09 02:42:40 +00:00
follow.h Fix TCP follow stream feature: 1999-07-31 13:55:16 +00:00
globals.h Move the declaration of global variables involved with packet capture 1999-10-02 19:24:27 +00:00
inet_aton.c Solaris 7 doesn't have "inet_aton()", either; supply our own version on 1999-10-11 07:38:21 +00:00
inet_ntop.c Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
inet_pton.c Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
inet_v6defs.h Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
ipproto.c implement ipprotostr() in ipproto.c, which basically does ipprotobynumber() 1999-10-14 03:50:51 +00:00
manuf *** empty log message *** 1998-09-27 07:13:29 +00:00
mkstemp.c Uwe Girlich's patch to handle OSes (e.g., SINIX) that lack 1999-10-01 21:41:38 +00:00
packet-aarp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-arp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-ascend.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-atalk.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-atm.c Add support for reading Full Frontal ATM from an ATM Sniffer capture 1999-08-20 06:55:20 +00:00
packet-bootp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-bpdu.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-cdp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-clip.c In the summary display for CLIP frames, make the protocol CLIP (which 1999-08-24 06:16:27 +00:00
packet-data.c Properly pluralize "bytes" in the detail line for "dissect_data()". 1999-08-26 17:51:44 +00:00
packet-dns.c A DNS or NBNS name may contain pointers to other names in the packet; if 1999-10-07 09:21:38 +00:00
packet-dns.h Add more packet bounds checking to DNS, and add some to NetBIOS-over-TCP 1999-10-07 07:44:29 +00:00
packet-eth.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-fddi.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-ftp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-giop.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-gre.c Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a 1999-09-17 05:56:58 +00:00
packet-http.c Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a 1999-09-17 05:56:58 +00:00
packet-icmpv6.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-icp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-ip.c add string IP protocol name into info field of fragmented packet. 1999-10-14 16:46:55 +00:00
packet-ip.h PPP options in LCP, IPCP, etc. are like IP and TCP options - one octet 1999-08-28 08:31:28 +00:00
packet-ipp.c When we see a delimiter tag, if we've seen one before, we know how much 1999-09-17 06:25:41 +00:00
packet-ipsec.c implement ipprotostr() in ipproto.c, which basically does ipprotobynumber() 1999-10-14 03:50:51 +00:00
packet-ipv6.c use inet_pton() and inet_ntop(), which are RFC2553 standard function 1999-10-14 05:41:33 +00:00
packet-ipv6.h use inet_pton() and inet_ntop(), which are RFC2553 standard function 1999-10-14 05:41:33 +00:00
packet-ipx.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-ipx.h I've started to figure out the difference between NetBIOS over IPX for 1998-10-14 05:18:32 +00:00
packet-isakmp.c Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a 1999-09-17 05:56:58 +00:00
packet-lapb.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-llc.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-lpd.c Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a 1999-09-17 05:56:58 +00:00
packet-nbipx.c Stuff to IPX socket 0x0455 (NetBIOS), and to sockets 0x0551 and 0x0553 1999-09-03 03:22:19 +00:00
packet-nbns.c A DNS or NBNS name may contain pointers to other names in the packet; if 1999-10-07 09:21:38 +00:00
packet-ncp.c Have the IPX code set "pi.len" and "pi.captured_len" based on the length 1999-09-02 23:17:58 +00:00
packet-ncp.h Re-wrote the NCP module in accordance with how NCP is really organized. 1999-03-20 04:38:57 +00:00
packet-netbios.c Add in a bunch of changes based on the IBM specification for the NetBIOS 1999-09-03 07:20:15 +00:00
packet-netbios.h Use "process_netbios_name()", rather than "canonicalize_netbios_name()", 1999-09-03 01:43:09 +00:00
packet-nntp.c Declare the "packet_info" structure "pi" in "packet.h", rather than in a 1999-08-18 00:57:54 +00:00
packet-ntp.c Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
packet-ntp.h Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
packet-null.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-osi.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-ospf.c Convert a bunch of uses of "fd->cap_len" to use "pi.captured_len" (or to 1999-08-26 07:34:43 +00:00
packet-ospf.h Give them RCS IDs. 1999-10-06 03:33:48 +00:00
packet-pim.c implement ipprotostr() in ipproto.c, which basically does ipprotobynumber() 1999-10-14 03:50:51 +00:00
packet-pop.c Fix request argument display with some pop clients 1999-10-03 13:44:32 +00:00
packet-ppp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-pppoe.c Removed unnecessary #include "etypes.h" lines. 1999-08-24 17:26:16 +00:00
packet-pptp.c Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a 1999-09-17 05:56:58 +00:00
packet-radius.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-raw.c Created a new protocol tree implementation and a new display filter 1999-07-07 22:52:57 +00:00
packet-rip.c Convert a bunch of uses of "fd->cap_len" to use "pi.captured_len" (or to 1999-08-26 07:34:43 +00:00
packet-rip.h Give them RCS IDs. 1999-10-06 03:33:48 +00:00
packet-ripng.c implement ipprotostr() in ipproto.c, which basically does ipprotobynumber() 1999-10-14 03:50:51 +00:00
packet-ripng.h Jun-ichiro itojun Hagino's changes for IPv6 extension header decoding 1999-10-12 23:12:06 +00:00
packet-rsvp.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-rsvp.h "long" -> "gint32" ("gint32" is 32 bits, "long" isn't necessarily 32 1999-08-27 20:10:14 +00:00
packet-rtsp.c Made the protocol (but not the fields) use the new proto_tree routine, 1999-07-29 05:47:07 +00:00
packet-sdp.c Made the protocol (but not the fields) use the new proto_tree routine, 1999-07-29 05:47:07 +00:00
packet-smb.c Big bunch of fixes to packet-smb.c for things I need. 1999-10-10 11:50:45 +00:00
packet-sna.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-snmp.c Some old CPP or tools that take C code in input do 1999-09-12 14:34:36 +00:00
packet-tcp.c Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
packet-telnet.c Removed unnecessary #include "etypes.h" lines. 1999-08-24 17:26:16 +00:00
packet-tftp.c Made the protocol (but not the fields) use the new proto_tree routine, 1999-07-29 05:47:07 +00:00
packet-tr.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-trmac.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-udp.c Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
packet-vines.c Created a new protocol tree implementation and a new display filter 1999-07-07 22:52:57 +00:00
packet-vines.h * Added Joerg Mayer's Vines patch 1998-12-29 04:05:38 +00:00
packet-x25.c New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
packet-yhoo.c Updates from Nathan Neulinger. 1999-10-14 03:12:32 +00:00
packet-yhoo.h Updates from Nathan Neulinger. 1999-10-14 03:12:32 +00:00
packet.c Include <arpa/inet.h>, so we get a declaration of "inet_ntop()" on 1999-10-14 07:39:44 +00:00
packet.h use inet_pton() and inet_ntop(), which are RFC2553 standard function 1999-10-14 05:41:33 +00:00
prefs.c More shuffling of GTK-related routines to gtk subdirectory. 1999-09-09 03:32:03 +00:00
prefs.h More shuffling of GTK-related routines to gtk subdirectory. 1999-09-09 03:32:03 +00:00
print.c Add an item to the "File/Print" dialog box to ask that the full hex data 1999-09-29 22:19:24 +00:00
print.h Add an item to the "File/Print" dialog box to ask that the full hex data 1999-09-29 22:19:24 +00:00
print.ps * Added Joerg Mayer's Vines patch 1998-12-29 04:05:38 +00:00
proto.c Nathan Neulinger's NTP dissector. 1999-10-14 05:10:33 +00:00
proto.h New proto_tree header_field_info stuff. Header_field_infos now contain 1999-10-12 06:21:15 +00:00
ps.h Added ID tags to the beginning of each source file. 1998-09-16 03:22:19 +00:00
randpkt.c Add NBNS support. 1999-10-07 07:55:12 +00:00
rdps.c Finally got the win32 ethereal to link properly with MSVC. 1999-07-21 17:40:42 +00:00
resolv.c Make it build on systems lacking "inet_pton()", "inet_ntop()", and a 1999-10-14 06:55:11 +00:00
resolv.h Have "get_host_ipaddr()" return a Boolean indicating whether it 1999-10-11 03:03:12 +00:00
smb.h Added support for compiling on win32 with Visual C and 'nmake'. It compiles, 1999-07-13 02:53:26 +00:00
snprintf-imp.h Squelch a number of "-Wall" errors by: 1998-10-13 07:03:37 +00:00
snprintf.c Changed two #include <>'s to #include "" 's, for stylistic reasons only. 1999-08-11 17:02:28 +00:00
snprintf.h Squelch a number of "-Wall" errors by: 1998-10-13 07:03:37 +00:00
strerror.c Add our own "strerror()", which we use on platforms that don't have it 1999-06-14 21:46:36 +00:00
strerror.h Add our own "strerror()", which we use on platforms that don't have it 1999-06-14 21:46:36 +00:00
strncasecmp.c Uwe Girlich's patch to handle OSes (e.g., SINIX) that lack 1999-10-01 21:41:38 +00:00
summary.c When a new display filter is to be applied, don't set "cf.dfilter" or 1999-10-11 06:39:26 +00:00
summary.h Since ethereal is now dependent on GTK+-1.2.x (because of proto_tree and 1999-07-13 03:08:06 +00:00
timestamp.h Added support for compiling on win32 with Visual C and 'nmake'. It compiles, 1999-07-13 02:53:26 +00:00
util.c In "try_tempfile()", if the buffer is too short for the temporary file 1999-09-24 04:14:43 +00:00
util.h Make a "create_tempfile()" routine that constructs the template to be 1999-08-18 02:59:05 +00:00
xdlc.c Have "get_xdlc_control()" and "dissect_xdlc_control()" return the 1999-09-26 20:31:51 +00:00
xdlc.h Changed the macro XDLC_HAS_PAYLOAD(control) to look at only the first 1999-10-10 03:59:29 +00:00

README

General Information
------- -----------

Ethereal is a network traffic analyzer, or "sniffer", for Unix and
Unix-like operating systems.  It uses GTK+, a graphical user interface
library, and libpcap, a packet capture and filtering library.

The official home of Ethereal is

    http://ethereal.zing.org

The latest distribution can be found in the subdirectory

    http://ethereal.zing.org/distribution

Interesting and exotic packet traces can be found at

    http://ethereal.zing.org/~gram/sample.html


Installation
------------

Ethereal is known to compile and run on the following systems:

  - Linux (2.0.x, 2.1.x, 2.2.x)
  - Solaris (2.5.1, 2.6)
  - FreeBSD (2.2.5, 2.2.6)
  - Sequent PTX v4.4.5  (Nick Williams <njw@sequent.com>)
  - Tru64 UNIX (formerly Digital UNIX) (3.2, 4.0)
  - Irix (version?)

It should run on other systems without too much trouble.

NOTE: the Makefile appears to depend on GNU "make"; it doesn't appear to
work with the "make" that comes with Solaris 7 nor the BSD "make".
Perl is also needed to create the man page.

If you decide to modify the yacc grammar or lex scanner, then
you need "flex" - it cannot be built with vanilla "lex" -
and either "bison" or the Berkeley "yacc". Your flex
version must be 2.5.1 or greater. Check this with 'flex -V'.

You must therefore install Perl, GNU "make", "flex", and either "bison" or
Berkeley "yacc" on systems that lack them.

Full installation instructions can be found in the INSTALL file.
         
See also the appropriate README.<OS> files for OS-specific installation
instructions.

Usage
-----          

In order to capture packets from the network, you need to be running
as root, or have access to the appropriate entry under /dev if your
system is so inclined (BSD-derived systems and Solaris typically fall
into this category.  Although it might be tempting to make the
Ethereal executable setuid root, please don't - alpha code is by nature
not very robust, and liable to contain security holes.

Please consult the man page for a description of each command-line
option and interface feature.


Multiple File Types
-------------------

The wiretap library is a packet-capture library currently under
development parallel to ethereal.  In the future it is hoped that
wiretap will have more features than libpcap, but wiretap is still in
its infancy. However, wiretap is used in ethereal for its ability
to read multiple file types. You can read the following file
formats, and create display filters for them as well:

libpcap, Sniffer (uncompresed), NetXray, Sniffer Pro, snoop,
Shomiti, LANalyzer, Network Monitor, iptrace 2.0 (AIX), RADCOM's
WAN/LAN Analyzer, and Lucent/Ascend access products.

Although Ethereal can read AIX iptrace files, the documentation on
AIX's iptrace packet-trace command is sparse.  The 'iptrace' command
starts a daemon which you must kill in order to stop the trace. Through
experimentation it appears that sending a HUP signal to that iptrace
daemon causes a graceful shutdown and a complete packet is written
to the trace file. If a partial packet is saved at the end, Ethereal
will complain when reading that file, but you will be able to read all
other packets.  If this occurs, please let the Ethereal developers know
at ethereal-dev@zing.org, and be sure to send us a copy of that trace
file if it's small and contains non-sensitive data.

Support for Lucent/Ascend products is limited to the debug trace output
generated by the MAX and Pipline series of products.  Ethereal can read
the output of the "wandsession" "wandisplay", "wannext", and "wdd"
commands.  For detailed information on use of these commands, please refer
the following pages:

"wandsession", "wandisplay", and "wannext" on the Pipeline series:
  http://aos.ascend.com/aos:/gennavviewer.html?doc_id=0900253d80006c79

"wandsession", "wandisplay", and "wannext" on the MAX series:
  http://aos.ascend.com/aos:/gennavviewer.html?doc_id=0900253d80006972

"wdd" on the Pipeline series:
  http://aos.ascend.com/aos:/gennavviewer.html?doc_id=0900253d80006877

To use these commands in conjunction with Ethereal, you must capture the
trace output to a file on disk.  An easy way of doing this under Unix is
to run "telnet <ascend> | tee <outfile>".


IPv6
----
If your operating system includes IPv6 support, ethereal will attempt to
use reverse name resolution capabilities when decoding IPv6 packets. If
you want to turn off name resolution while using ethereal, start ethereal
with the "-n" option. If you would like to compile ethereal without
support for IPv6 name resolution, use the "--disable-ipv6" option with
"./configure". If you compile ethereal without IPv6 name resolution,
you will still be able to decode IPv6 packets, but you'll only see IPv6
addresses, not host names.

The "Follow TCP Stream" feature only supports TCP over IPv4. Support for TCP
over IPv6 is planned.


SNMP
----
Ethereal can do some basic decoding of SNMP packets, but it relies on an
external SNMP library to do this. You can use either the UCD or the CMU
SNMP libraries. The configure script will automatically determine which
library you have on your system and will use it. If you have an SNMP
library but _do not_ want to have ethereal use it, you can run configure
with the "--disable-snmp" option. No SNMP support will be compiled into
ethereal with this option.


How to Report a Bug
-------------------
Ethereal is still under constant development, so it is possible that you will
encounter a bug while using it. Please report bugs to ethereal-dev@zing.org.
Be sure you tell us:

	1) Operating System and version
	2) Version of GTK+ (the command 'gtk-config --version' will tell you)
	3) The command you used to invoke Ethereal

If the bug is produced by a particular trace file, please be sure to send
a trace file along with your bug description. Please don't send a trace file
greather than 1 MB when compressed. If the trace file contains sensitive
information (e.g., passwords), then please do not send it.

If Ethereal died on you with a 'segmentation violation', you can help the
developers a lot if you have a debugger installed. A stack trace can be
obtained by using your debugger ('gdb' in this example), the ethereal binary,
and the resulting core file. Here's an example of how to use the gdb
command 'backtrace' to do so.

$ gdb ethereal core
(gdb) backtrace
..... prints the stack trace
(gdb) quit
$

Disclaimer
----------

There is no warranty, expressed or implied, associated with this product.
Use at your own risk.


Gerald Combs <gerald@zing.org>
Gilbert Ramirez <gram@xiexie.org>