Sync with libpcap-1.8.1

This commit is contained in:
christos 2017-01-24 22:12:42 +00:00
parent a40cc363b3
commit 0e249c9092
1 changed files with 94 additions and 38 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: dlt.h,v 1.16 2015/03/31 21:42:16 christos Exp $ */
/* $NetBSD: dlt.h,v 1.17 2017/01/24 22:12:42 christos Exp $ */
/*-
* Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
@ -38,8 +38,6 @@
* SUCH DAMAGE.
*
* @(#)bpf.h 7.1 (Berkeley) 5/7/91
*
* @(#) Header: /tcpdump/master/libpcap/pcap/bpf.h,v 1.32 2008-12-23 20:13:29 guy Exp (LBL)
*/
#ifndef _NET_DLT_H_
@ -303,40 +301,62 @@
/*
* Sigh.
*
* This was reserved for Siemens HiPath HDLC on 2002-01-25, as
* 121 was reserved for Siemens HiPath HDLC on 2002-01-25, as
* requested by Tomas Kukosa.
*
* On 2004-02-25, a FreeBSD checkin to sys/net/bpf.h was made that
* assigned 121 as DLT_PFSYNC. Its libpcap does DLT_ <-> LINKTYPE_
* mapping, so it probably supports capturing on the pfsync device
* but not saving the captured data to a pcap file.
* assigned 121 as DLT_PFSYNC. In current versions, its libpcap
* does DLT_ <-> LINKTYPE_ mapping, mapping DLT_PFSYNC to a
* LINKTYPE_PFSYNC value of 246, so it should write out DLT_PFSYNC
* dump files with 246 as the link-layer header type. (Earlier
* versions might not have done mapping, in which case they would
* have written them out with a link-layer header type of 121.)
*
* OpenBSD, from which pf came, however, uses 18 for DLT_PFSYNC;
* their libpcap does no DLT_ <-> LINKTYPE_ mapping, so it would
* use 18 in pcap files as well.
* its libpcap does no DLT_ <-> LINKTYPE_ mapping, so it would
* write out DLT_PFSYNC dump files with use 18 as the link-layer
* header type.
*
* NetBSD and DragonFly BSD also use 18 for DLT_PFSYNC; their
* libpcaps do DLT_ <-> LINKTYPE_ mapping, and neither has an entry
* for DLT_PFSYNC, so it might not be able to write out dump files
* with 18 as the link-layer header type. (Earlier versions might
* not have done mapping, in which case they'd work the same way
* OpenBSD does.)
* NetBSD, DragonFly BSD, and Darwin also use 18 for DLT_PFSYNC; in
* current versions, their libpcaps do DLT_ <-> LINKTYPE_ mapping,
* mapping DLT_PFSYNC to a LINKTYPE_PFSYNC value of 246, so they
* should write out DLT_PFSYNC dump files with 246 as the link-layer
* header type. (Earlier versions might not have done mapping,
* in which case they'd work the same way OpenBSD does, writing
* them out with a link-layer header type of 18.)
*
* Mac OS X defines it as 18, but doesn't appear to use it as of
* Mac OS X 10.7.3. Its libpcap does DLT_ <-> LINKTYPE_ mapping.
* We'll define DLT_PFSYNC as:
*
* We'll define DLT_PFSYNC as 121 on FreeBSD and define it as 18 on
* all other platforms. We'll define DLT_HHDLC as 121 on everything
* except for FreeBSD; anybody who wants to compile, on FreeBSD, code
* that uses DLT_HHDLC is out of luck.
* 18 on NetBSD, OpenBSD, DragonFly BSD, and Darwin;
*
* We'll define LINKTYPE_PFSYNC as 18, *even on FreeBSD*, and map
* it, so that savefiles won't use 121 for PFSYNC - they'll all
* use 18. Code that uses pcap_datalink() to determine the link-layer
* header type of a savefile won't, when built and run on FreeBSD,
* be able to distinguish between LINKTYPE_PFSYNC and LINKTYPE_HHDLC
* capture files; code that doesn't, such as the code in Wireshark,
* will be able to distinguish between them.
* 121 on FreeBSD;
*
* 246 everywhere else.
*
* We'll define DLT_HHDLC as 121 on everything except for FreeBSD;
* anybody who wants to compile, on FreeBSD, code that uses DLT_HHDLC
* is out of luck.
*
* We'll define LINKTYPE_PFSYNC as 246 on *all* platforms, so that
* savefiles written using *this* code won't use 18 or 121 for PFSYNC,
* they'll all use 246.
*
* Code that uses pcap_datalink() to determine the link-layer header
* type of a savefile won't, when built and run on FreeBSD, be able
* to distinguish between LINKTYPE_PFSYNC and LINKTYPE_HHDLC capture
* files, as pcap_datalink() will give 121 for both of them. Code
* that doesn't, such as the code in Wireshark, will be able to
* distinguish between them.
*
* FreeBSD's libpcap won't map a link-layer header type of 18 - i.e.,
* DLT_PFSYNC files from OpenBSD and possibly older versions of NetBSD,
* DragonFly BSD, and OS X - to DLT_PFSYNC, so code built with FreeBSD's
* libpcap won't treat those files as DLT_PFSYNC files.
*
* Other libpcaps won't map a link-layer header type of 121 to DLT_PFSYNC;
* this means they can read DLT_HHDLC files, if any exist, but won't
* treat pcap files written by any older versions of FreeBSD libpcap that
* didn't map to 246 as DLT_PFSYNC files.
*/
#ifdef __FreeBSD__
#define DLT_PFSYNC 121
@ -653,9 +673,23 @@
#define DLT_A653_ICM 185
/*
* USB packets, beginning with a USB setup header; requested by
* Paolo Abeni <paolo.abeni@email.it>.
* This used to be "USB packets, beginning with a USB setup header;
* requested by Paolo Abeni <paolo.abeni@email.it>."
*
* However, that header didn't work all that well - it left out some
* useful information - and was abandoned in favor of the DLT_USB_LINUX
* header.
*
* This is now used by FreeBSD for its BPF taps for USB; that has its
* own headers. So it is written, so it is done.
*
* For source-code compatibility, we also define DLT_USB to have this
* value. We do it numerically so that, if code that includes this
* file (directly or indirectly) also includes an OS header that also
* defines DLT_USB as 186, we don't get a redefinition warning.
* (NetBSD 7 does that.)
*/
#define DLT_USB_FREEBSD 186
#define DLT_USB 186
/*
@ -965,8 +999,10 @@
/*
* CAN (Controller Area Network) frames, with a pseudo-header as supplied
* by Linux SocketCAN. See Documentation/networking/can.txt in the Linux
* source.
* by Linux SocketCAN, and with multi-byte numerical fields in that header
* in big-endian byte order.
*
* See Documentation/networking/can.txt in the Linux source.
*
* Requested by Felix Obenhuber <felix@obenhuber.de>.
*/
@ -1073,7 +1109,7 @@
#define DLT_NETANALYZER_TRANSPARENT 241
/*
* IP-over-Infiniband, as specified by RFC 4391.
* IP-over-InfiniBand, as specified by RFC 4391.
*
* Requested by Petr Sumbera <petr.sumbera@oracle.com>.
*/
@ -1105,17 +1141,16 @@
#define DLT_NFC_LLCP 245
/*
* 245 is used as LINKTYPE_PFSYNC; do not use it for any other purpose.
* 246 is used as LINKTYPE_PFSYNC; do not use it for any other purpose.
*
* DLT_PFSYNC has different values on different platforms, and all of
* them collide with something used elsewhere. On platforms that
* don't already define it, define it as 245.
* don't already define it, define it as 246.
*/
#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__) && !defined(__APPLE__)
#define DLT_PFSYNC 246
#endif
/*
* Raw InfiniBand packets, starting with the Local Routing Header.
*
@ -1154,7 +1189,7 @@
/*
* DLT type for upper-protocol layer PDU saves from wireshark.
*
*
* the actual contents are determined by two TAGs stored with each
* packet:
* EXP_PDU_TAG_LINKTYPE the link type (LINKTYPE_ value) of the
@ -1266,7 +1301,28 @@
*/
#define DLT_WATTSTOPPER_DLM 263
#define DLT_MATCHING_MAX 263 /* highest value in the "matching" range */
/*
* ISO 14443 contactless smart card messages.
*/
#define DLT_ISO_14443 264
/*
* Radio data system (RDS) groups. IEC 62106.
* Per Jonathan Brucker <jonathan.brucke@gmail.com>.
*/
#define DLT_RDS 265
/*
* In case the code that includes this file (directly or indirectly)
* has also included OS files that happen to define DLT_MATCHING_MAX,
* with a different value (perhaps because that OS hasn't picked up
* the latest version of our DLT definitions), we undefine the
* previous value of DLT_MATCHING_MAX.
*/
#ifdef DLT_MATCHING_MAX
#undef DLT_MATCHING_MAX
#endif
#define DLT_MATCHING_MAX 265 /* highest value in the "matching" range */
/*
* DLT and savefile link type values are split into a class and