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