Home | History | Annotate | Line # | Download | only in dist
README.md revision 1.1
      1  1.1  christos To report a security issue please send an e-mail to security (a] tcpdump.org.
      2  1.1  christos 
      3  1.1  christos To report bugs and other problems, contribute patches, request a
      4  1.1  christos feature, provide generic feedback etc please see the file
      5  1.1  christos [CONTRIBUTING](CONTRIBUTING.md) in the libpcap source tree root.
      6  1.1  christos 
      7  1.1  christos The directory doc/ has README files about specific operating systems and
      8  1.1  christos options.
      9  1.1  christos 
     10  1.1  christos LIBPCAP 1.x.y
     11  1.1  christos Now maintained by "The Tcpdump Group"
     12  1.1  christos https://www.tcpdump.org
     13  1.1  christos 
     14  1.1  christos Anonymous Git is available via:
     15  1.1  christos         https://github.com/the-tcpdump-group/libpcap.git
     16  1.1  christos 
     17  1.1  christos formerly from 	Lawrence Berkeley National Laboratory
     18  1.1  christos 		Network Research Group <libpcap (a] ee.lbl.gov>
     19  1.1  christos 		ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
     20  1.1  christos 
     21  1.1  christos This directory contains source code for libpcap, a system-independent
     22  1.1  christos interface for user-level packet capture.  libpcap provides a portable
     23  1.1  christos framework for low-level network monitoring.  Applications include
     24  1.1  christos network statistics collection, security monitoring, network debugging,
     25  1.1  christos etc.  Since almost every system vendor provides a different interface
     26  1.1  christos for packet capture, and since we've developed several tools that
     27  1.1  christos require this functionality, we've created this system-independent API
     28  1.1  christos to ease in porting and to alleviate the need for several
     29  1.1  christos system-dependent packet capture modules in each application.
     30  1.1  christos 
     31  1.1  christos For some platforms there are README.{system} files that discuss issues
     32  1.1  christos with the OS's interface for packet capture on those platforms, such as
     33  1.1  christos how to enable support for that interface in the OS, if it's not built in
     34  1.1  christos by default.
     35  1.1  christos 
     36  1.1  christos The libpcap interface supports a filtering mechanism based on the
     37  1.1  christos architecture in the BSD packet filter.  BPF is described in the 1993
     38  1.1  christos Winter Usenix paper ``The BSD Packet Filter: A New Architecture for
     39  1.1  christos User-level Packet Capture''.  A compressed PostScript version can be
     40  1.1  christos found at
     41  1.1  christos 
     42  1.1  christos 	ftp://ftp.ee.lbl.gov/papers/bpf-usenix93.ps.Z
     43  1.1  christos 
     44  1.1  christos or
     45  1.1  christos 
     46  1.1  christos 	https://www.tcpdump.org/papers/bpf-usenix93.ps.Z
     47  1.1  christos 
     48  1.1  christos and a gzipped version can be found at
     49  1.1  christos 
     50  1.1  christos 	https://www.tcpdump.org/papers/bpf-usenix93.ps.gz
     51  1.1  christos 
     52  1.1  christos A PDF version can be found at
     53  1.1  christos 
     54  1.1  christos 	https://www.tcpdump.org/papers/bpf-usenix93.pdf
     55  1.1  christos 
     56  1.1  christos Although most packet capture interfaces support in-kernel filtering,
     57  1.1  christos libpcap utilizes in-kernel filtering only for the BPF interface.
     58  1.1  christos On systems that don't have BPF, all packets are read into user-space
     59  1.1  christos and the BPF filters are evaluated in the libpcap library, incurring
     60  1.1  christos added overhead (especially, for selective filters).  Ideally, libpcap
     61  1.1  christos would translate BPF filters into a filter program that is compatible
     62  1.1  christos with the underlying kernel subsystem, but this is not yet implemented.
     63  1.1  christos 
     64  1.1  christos BPF is standard in 4.4BSD, BSD/OS, NetBSD, FreeBSD, OpenBSD, DragonFly
     65  1.1  christos BSD, and macOS; an older, modified and undocumented version is standard
     66  1.1  christos in AIX.  {DEC OSF/1, Digital UNIX, Tru64 UNIX} uses the packetfilter
     67  1.1  christos interface but has been extended to accept BPF filters (which libpcap
     68  1.1  christos utilizes).  Also, you can add BPF filter support to Ultrix using the
     69  1.1  christos kernel source and/or object patches available in:
     70  1.1  christos 
     71  1.1  christos 	https://www.tcpdump.org/other/bpfext42.tar.Z
     72  1.1  christos 
     73  1.1  christos Linux has a number of BPF based systems, and libpcap does not support
     74  1.1  christos any of the eBPF mechanisms as yet, although it supports many of the
     75  1.1  christos memory mapped receive mechanisms.
     76  1.1  christos See the [README.linux](doc/README.linux.md) file for more information.
     77  1.1  christos 
     78  1.1  christos Note to Linux distributions and *BSD systems that include libpcap:
     79  1.1  christos 
     80  1.1  christos There's now a rule to make a shared library, which should work on Linux
     81  1.1  christos and *BSD, among other platforms.
     82  1.1  christos 
     83  1.1  christos It sets the soname of the library to "libpcap.so.1"; this is what it
     84  1.1  christos should be, *NOT* libpcap.so.1.x or libpcap.so.1.x.y or something such as
     85  1.1  christos that.
     86  1.1  christos 
     87  1.1  christos We've been maintaining binary compatibility between libpcap releases for
     88  1.1  christos quite a while; there's no reason to tie a binary linked with libpcap to
     89  1.1  christos a particular release of libpcap.
     90  1.1  christos 
     91  1.1  christos Current versions can be found at https://www.tcpdump.org.
     92  1.1  christos 
     93  1.1  christos  - The TCPdump group
     94