1511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/*- 2511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The Regents of the University of California. All rights reserved. 4511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 5511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This code is derived from the Stanford/CMU enet packet filter, 6511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (net/enet.c) distributed as part of 4.3BSD, and code contributed 7511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence 8511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Berkeley Laboratory. 9511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 10511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Redistribution and use in source and binary forms, with or without 11511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * modification, are permitted provided that the following conditions 12511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * are met: 13511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1. Redistributions of source code must retain the above copyright 14511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * notice, this list of conditions and the following disclaimer. 15511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 2. Redistributions in binary form must reproduce the above copyright 16511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * notice, this list of conditions and the following disclaimer in the 17511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * documentation and/or other materials provided with the distribution. 18511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 3. All advertising materials mentioning features or use of this software 19511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * must display the following acknowledgement: 20511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This product includes software developed by the University of 21511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * California, Berkeley and its contributors. 22511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 4. Neither the name of the University nor the names of its contributors 23511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * may be used to endorse or promote products derived from this software 24511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * without specific prior written permission. 25511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 26511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 27511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 30511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * SUCH DAMAGE. 37511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 38511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * @(#)bpf.h 7.1 (Berkeley) 5/7/91 39511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 40511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * @(#) $Header: /tcpdump/master/libpcap/pcap/bpf.h,v 1.32 2008-12-23 20:13:29 guy Exp $ (LBL) 41511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 42511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 43511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 44511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is libpcap's cut-down version of bpf.h; it includes only 45511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the stuff needed for the code generator and the userland BPF 46511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * interpreter, and the libpcap APIs for setting filters, etc.. 47511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 48511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * "pcap-bpf.c" will include the native OS version, as it deals with 49511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the OS's BPF implementation. 50511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 51511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * At least two programs found by Google Code Search explicitly includes 52511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <pcap/bpf.h> (even though <pcap.h>/<pcap/pcap.h> includes it for you), 53511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * so moving that stuff to <pcap/pcap.h> would break the build for some 54511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * programs. 55511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 56511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 57511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 58511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * If we've already included <net/bpf.h>, don't re-define this stuff. 59511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We assume BSD-style multiple-include protection in <net/bpf.h>, 60511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * which is true of all but the oldest versions of FreeBSD and NetBSD, 61511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * or Tru64 UNIX-style multiple-include protection (or, at least, 62511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Tru64 UNIX 5.x-style; I don't have earlier versions available to check), 63511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * or AIX-style multiple-include protection (or, at least, AIX 5.x-style; 64511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * I don't have earlier versions available to check). 65511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 66511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We do not check for BPF_MAJOR_VERSION, as that's defined by 67511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <linux/filter.h>, which is directly or indirectly included in some 68511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * programs that also include pcap.h, and <linux/filter.h> doesn't 69511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * define stuff we need. 70511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 71511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This also provides our own multiple-include protection. 72511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 73511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#if !defined(_NET_BPF_H_) && !defined(_BPF_H_) && !defined(_H_BPF) && !defined(lib_pcap_bpf_h) 74511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define lib_pcap_bpf_h 75511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 76511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __cplusplus 77511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallextern "C" { 78511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 79511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 80511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* BSD style release date */ 81511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_RELEASE 199606 82511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 83511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef MSDOS /* must be 32-bit */ 84511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgralltypedef long bpf_int32; 85511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgralltypedef unsigned long bpf_u_int32; 86511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 87511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgralltypedef int bpf_int32; 88511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgralltypedef u_int bpf_u_int32; 89511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 90511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 91511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 92511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Alignment macros. BPF_WORDALIGN rounds up to the next 93511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * even multiple of BPF_ALIGNMENT. 94511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 95511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Tcpdump's print-pflog.c uses this, so we define it here. 96511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 97511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifndef __NetBSD__ 98511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ALIGNMENT sizeof(bpf_int32) 99511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 100511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ALIGNMENT sizeof(long) 101511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 102511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1)) 103511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 104511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 105511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Structure for "pcap_compile()", "pcap_setfilter()", etc.. 106511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 107511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallstruct bpf_program { 108511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall u_int bf_len; 109511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall struct bpf_insn *bf_insns; 110511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall}; 111511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 112511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 113511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Link-layer header type codes. 114511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 115511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Do *NOT* add new values to this list without asking 116511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * "tcpdump-workers@lists.tcpdump.org" for a value. Otherwise, you run 117511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the risk of using a value that's already being used for some other 118511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * purpose, and of having tools that read libpcap-format captures not 119511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * being able to handle captures with your new DLT_ value, with no hope 120511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that they will ever be changed to do so (as that would destroy their 121511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * ability to read captures using that value for that other purpose). 122511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 123511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * See 124511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 125511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.tcpdump.org/linktypes.html 126511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 127511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for detailed descriptions of some of these link-layer header types. 128511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 129511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 130511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 131511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * These are the types that are the same on all platforms, and that 132511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * have been defined by <net/bpf.h> for ages. 133511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 134511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NULL 0 /* BSD loopback encapsulation */ 135511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_EN10MB 1 /* Ethernet (10Mb) */ 136511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */ 137511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_AX25 3 /* Amateur Radio AX.25 */ 138511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PRONET 4 /* Proteon ProNET Token Ring */ 139511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CHAOS 5 /* Chaos */ 140511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802 6 /* 802.5 Token Ring */ 141511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ARCNET 7 /* ARCNET, with BSD-style header */ 142511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SLIP 8 /* Serial Line IP */ 143511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP 9 /* Point-to-point Protocol */ 144511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FDDI 10 /* FDDI */ 145511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 146511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 147511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * These are types that are different on some platforms, and that 148511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * have been defined by <net/bpf.h> for ages. We use #ifdefs to 149511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * detect the BSDs that define them differently from the traditional 150511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * libpcap <net/bpf.h> 151511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 152511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * XXX - DLT_ATM_RFC1483 is 13 in BSD/OS, and DLT_RAW is 14 in BSD/OS, 153511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * but I don't know what the right #define is for BSD/OS. 154511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 155511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ATM_RFC1483 11 /* LLC-encapsulated ATM */ 156511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 157511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __OpenBSD__ 158511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_RAW 14 /* raw IP */ 159511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 160511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_RAW 12 /* raw IP */ 161511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 162511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 163511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 164511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Given that the only OS that currently generates BSD/OS SLIP or PPP 165511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * is, well, BSD/OS, arguably everybody should have chosen its values 166511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for DLT_SLIP_BSDOS and DLT_PPP_BSDOS, which are 15 and 16, but they 167511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * didn't. So it goes. 168511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 169511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#if defined(__NetBSD__) || defined(__FreeBSD__) 170511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifndef DLT_SLIP_BSDOS 171511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */ 172511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */ 173511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 174511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 175511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */ 176511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */ 177511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 178511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 179511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 180511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 17 was used for DLT_PFLOG in OpenBSD; it no longer is. 181511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 182511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * It was DLT_LANE8023 in SuSE 6.3, so we defined LINKTYPE_PFLOG 183511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as 117 so that pflog captures would use a link-layer header type 184511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * value that didn't collide with any other values. On all 185511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * platforms other than OpenBSD, we defined DLT_PFLOG as 117, 186511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and we mapped between LINKTYPE_PFLOG and DLT_PFLOG. 187511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 188511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OpenBSD eventually switched to using 117 for DLT_PFLOG as well. 189511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 190511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Don't use 17 for anything else. 191511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 192511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 193511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 194511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 18 is used for DLT_PFSYNC in OpenBSD, NetBSD, DragonFly BSD and 195511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Mac OS X; don't use it for anything else. (FreeBSD uses 121, 196511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * which collides with DLT_HHDLC, even though it doesn't use 18 197511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for anything and doesn't appear to have ever used it for anything.) 198511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 199511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We define it as 18 on those platforms; it is, unfortunately, used 200511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for DLT_CIP in Suse 6.3, so we don't define it as DLT_PFSYNC 201511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * in general. As the packet format for it, like that for 202511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_PFLOG, is not only OS-dependent but OS-version-dependent, 203511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * we don't support printing it in tcpdump except on OSes that 204511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * have the relevant header files, so it's not that useful on 205511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * other platforms. 206511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 207511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__APPLE__) 208511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PFSYNC 18 209511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 210511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 211511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */ 212511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 213511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 214511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Apparently Redback uses this for its SmartEdge 400/800. I hope 215511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * nobody else decided to use it, too. 216511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 217511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_REDBACK_SMARTEDGE 32 218511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 219511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 220511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * These values are defined by NetBSD; other platforms should refrain from 221511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * using them for other purposes, so that NetBSD savefiles with link 222511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * types of 50 or 51 can be read as this type on all platforms. 223511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 224511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */ 225511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_ETHER 51 /* PPP over Ethernet */ 226511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 227511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 228511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The Axent Raptor firewall - now the Symantec Enterprise Firewall - uses 229511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * a link-layer type of 99 for the tcpdump it supplies. The link-layer 230511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header has 6 bytes of unknown data, something that appears to be an 231511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Ethernet type, and 36 bytes that appear to be 0 in at least one capture 232511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * I've seen. 233511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 234511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SYMANTEC_FIREWALL 99 235511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 236511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 237511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Values between 100 and 103 are used in capture file headers as 238511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * link-layer header type LINKTYPE_ values corresponding to DLT_ types 239511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that differ between platforms; don't use those values for new DLT_ 240511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * new types. 241511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 242511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 243511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 244511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Values starting with 104 are used for newly-assigned link-layer 245511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header type values; for those link-layer header types, the DLT_ 246511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * value returned by pcap_datalink() and passed to pcap_open_dead(), 247511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and the LINKTYPE_ value that appears in capture files, are the 248511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * same. 249511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 250511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_MATCHING_MIN is the lowest such value; DLT_MATCHING_MAX is 251511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the highest such value. 252511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 253511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MATCHING_MIN 104 254511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 255511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 256511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This value was defined by libpcap 0.5; platforms that have defined 257511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * it with a different value should define it here with that value - 258511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * a link type of 104 in a save file will be mapped to DLT_C_HDLC, 259511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * whatever value that happens to be, so programs will correctly 260511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * handle files with that link type regardless of the value of 261511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_C_HDLC. 262511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 263511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The name DLT_C_HDLC was used by BSD/OS; we use that name for source 264511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * compatibility with programs written for BSD/OS. 265511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 266511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well, 267511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for source compatibility with programs written for libpcap 0.5. 268511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 269511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_C_HDLC 104 /* Cisco HDLC */ 270511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CHDLC DLT_C_HDLC 271511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 272511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */ 273511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 274511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 275511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 106 is reserved for Linux Classical IP over ATM; it's like DLT_RAW, 276511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * except when it isn't. (I.e., sometimes it's just raw IP, and 277511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * sometimes it isn't.) We currently handle it as DLT_LINUX_SLL, 278511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * so that we don't have to worry about the link-layer header.) 279511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 280511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 281511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 282511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Frame Relay; BSD/OS has a DLT_FR with a value of 11, but that collides 283511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with other values. 284511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_FR and DLT_FRELAY packets start with the Q.922 Frame Relay header 285511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (DLCI, etc.). 286511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 287511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FRELAY 107 288511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 289511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 290511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except 291511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that the AF_ type in the link-layer header is in network byte order. 292511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 293511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_LOOP is 12 in OpenBSD, but that's DLT_RAW in other OSes, so 294511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * we don't use 12 for it in OSes other than OpenBSD. 295511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 296511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __OpenBSD__ 297511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LOOP 12 298511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 299511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LOOP 108 300511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 301511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 302511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 303511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Encapsulated packets for IPsec; DLT_ENC is 13 in OpenBSD, but that's 304511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_SLIP_BSDOS in NetBSD, so we don't use 13 for it in OSes other 305511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * than OpenBSD. 306511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 307511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __OpenBSD__ 308511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ENC 13 309511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 310511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ENC 109 311511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 312511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 313511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 314511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Values between 110 and 112 are reserved for use in capture file headers 315511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as link-layer types corresponding to DLT_ types that might differ 316511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * between platforms; don't use those values for new DLT_ types 317511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * other than the corresponding DLT_ types. 318511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 319511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 320511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 321511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is for Linux cooked sockets. 322511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 323511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LINUX_SLL 113 324511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 325511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 326511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Apple LocalTalk hardware. 327511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 328511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LTALK 114 329511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 330511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 331511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Acorn Econet. 332511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 333511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ECONET 115 334511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 335511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 336511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved for use with OpenBSD ipfilter. 337511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 338511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPFILTER 116 339511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 340511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 341511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OpenBSD DLT_PFLOG. 342511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 343511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PFLOG 117 344511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 345511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 346511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Registered for Cisco-internal use. 347511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 348511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CISCO_IOS 118 349511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 350511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 351511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * For 802.11 cards using the Prism II chips, with a link-layer 352511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header including Prism monitor mode information plus an 802.11 353511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header. 354511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 355511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PRISM_HEADER 119 356511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 357511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 358511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved for Aironet 802.11 cards, with an Aironet link-layer header 359511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (see Doug Ambrisko's FreeBSD patches). 360511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 361511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_AIRONET_HEADER 120 362511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 363511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 364511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Sigh. 365511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 366511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This was reserved for Siemens HiPath HDLC on 2002-01-25, as 367511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * requested by Tomas Kukosa. 368511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 369511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * On 2004-02-25, a FreeBSD checkin to sys/net/bpf.h was made that 370511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * assigned 121 as DLT_PFSYNC. Its libpcap does DLT_ <-> LINKTYPE_ 371511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * mapping, so it probably supports capturing on the pfsync device 372511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * but not saving the captured data to a pcap file. 373511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 374511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OpenBSD, from which pf came, however, uses 18 for DLT_PFSYNC; 375511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * their libpcap does no DLT_ <-> LINKTYPE_ mapping, so it would 376511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * use 18 in pcap files as well. 377511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 378511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * NetBSD and DragonFly BSD also use 18 for DLT_PFSYNC; their 379511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * libpcaps do DLT_ <-> LINKTYPE_ mapping, and neither has an entry 380511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for DLT_PFSYNC, so it might not be able to write out dump files 381511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with 18 as the link-layer header type. (Earlier versions might 382511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * not have done mapping, in which case they'd work the same way 383511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * OpenBSD does.) 384511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 385511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Mac OS X defines it as 18, but doesn't appear to use it as of 386511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Mac OS X 10.7.3. Its libpcap does DLT_ <-> LINKTYPE_ mapping. 387511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 388511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We'll define DLT_PFSYNC as 121 on FreeBSD and define it as 18 on 389511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * all other platforms. We'll define DLT_HHDLC as 121 on everything 390511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * except for FreeBSD; anybody who wants to compile, on FreeBSD, code 391511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that uses DLT_HHDLC is out of luck. 392511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 393511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We'll define LINKTYPE_PFSYNC as 18, *even on FreeBSD*, and map 394511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * it, so that savefiles won't use 121 for PFSYNC - they'll all 395511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * use 18. Code that uses pcap_datalink() to determine the link-layer 396511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header type of a savefile won't, when built and run on FreeBSD, 397511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * be able to distinguish between LINKTYPE_PFSYNC and LINKTYPE_HHDLC 398511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * capture files; code that doesn't, such as the code in Wireshark, 399511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * will be able to distinguish between them. 400511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 401511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __FreeBSD__ 402511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PFSYNC 121 403511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 404511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_HHDLC 121 405511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 406511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 407511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 408511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is for RFC 2625 IP-over-Fibre Channel. 409511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 410511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is not for use with raw Fibre Channel, where the link-layer 411511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header starts with a Fibre Channel frame header; it's for IP-over-FC, 412511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * where the link-layer header starts with an RFC 2625 Network_Header 413511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * field. 414511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 415511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IP_OVER_FC 122 416511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 417511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 418511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is for Full Frontal ATM on Solaris with SunATM, with a 419511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * pseudo-header followed by an AALn PDU. 420511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 421511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * There may be other forms of Full Frontal ATM on other OSes, 422511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with different pseudo-headers. 423511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 424511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * If ATM software returns a pseudo-header with VPI/VCI information 425511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (and, ideally, packet type information, e.g. signalling, ILMI, 426511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * LANE, LLC-multiplexed traffic, etc.), it should not use 427511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_ATM_RFC1483, but should get a new DLT_ value, so tcpdump 428511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and the like don't have to infer the presence or absence of a 429511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * pseudo-header and the form of the pseudo-header. 430511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 431511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SUNATM 123 /* Solaris+SunATM */ 432511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 433511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 434511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved as per request from Kent Dahlgren <kent@praesum.com> 435511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for private use. 436511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 437511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_RIO 124 /* RapidIO */ 438511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PCI_EXP 125 /* PCI Express */ 439511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_AURORA 126 /* Xilinx Aurora link layer */ 440511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 441511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 442511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Header for 802.11 plus a number of bits of link-layer information 443511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * including radio information, used by some recent BSD drivers as 444511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * well as the madwifi Atheros driver for Linux. 445511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 446511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_11_RADIO 127 /* 802.11 plus radiotap radio header */ 447511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 448511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 449511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved for the TZSP encapsulation, as per request from 450511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Chris Waters <chris.waters@networkchemistry.com> 451511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * TZSP is a generic encapsulation for any other link type, 452511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * which includes a means to include meta-information 453511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with the packet, e.g. signal strength and channel 454511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for 802.11 packets. 455511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 456511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_TZSP 128 /* Tazmen Sniffer Protocol */ 457511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 458511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 459511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * BSD's ARCNET headers have the source host, destination host, 460511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and type at the beginning of the packet; that's what's handed 461511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * up to userland via BPF. 462511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 463511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Linux's ARCNET headers, however, have a 2-byte offset field 464511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * between the host IDs and the type; that's what's handed up 465511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * to userland via PF_PACKET sockets. 466511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 467511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * We therefore have to have separate DLT_ values for them. 468511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 469511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ARCNET_LINUX 129 /* ARCNET */ 470511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 471511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 472511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link types, as per request from 473511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. The DLT_s are used 474511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for passing on chassis-internal metainformation such as 475511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * QOS profiles, etc.. 476511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 477511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_MLPPP 130 478511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_MLFR 131 479511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ES 132 480511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_GGSN 133 481511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_MFR 134 482511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ATM2 135 483511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_SERVICES 136 484511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ATM1 137 485511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 486511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 487511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Apple IP-over-IEEE 1394, as per a request from Dieter Siegmund 488511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <dieter@apple.com>. The header that's presented is an Ethernet-like 489511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * header: 490511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 491511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * #define FIREWIRE_EUI64_LEN 8 492511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * struct firewire_header { 493511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_char firewire_dhost[FIREWIRE_EUI64_LEN]; 494511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_char firewire_shost[FIREWIRE_EUI64_LEN]; 495511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_short firewire_type; 496511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * }; 497511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 498511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with "firewire_type" being an Ethernet type value, rather than, 499511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for example, raw GASP frames being handed up. 500511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 501511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_APPLE_IP_OVER_IEEE1394 138 502511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 503511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 504511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Various SS7 encapsulations, as per a request from Jeff Morriss 505511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <jeff.morriss[AT]ulticom.com> and subsequent discussions. 506511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 507511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MTP2_WITH_PHDR 139 /* pseudo-header with various info, followed by MTP2 */ 508511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MTP2 140 /* MTP2, without pseudo-header */ 509511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MTP3 141 /* MTP3, without pseudo-header or MTP2 */ 510511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SCCP 142 /* SCCP, without pseudo-header or MTP2 or MTP3 */ 511511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 512511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 513511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DOCSIS MAC frames. 514511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 515511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_DOCSIS 143 516511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 517511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 518511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Linux-IrDA packets. Protocol defined at http://www.irda.org. 519511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Those packets include IrLAP headers and above (IrLMP...), but 520511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * don't include Phy framing (SOF/EOF/CRC & byte stuffing), because Phy 521511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * framing can be handled by the hardware and depend on the bitrate. 522511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is exactly the format you would get capturing on a Linux-IrDA 523511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * interface (irdaX), but not on a raw serial port. 524511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Note the capture is done in "Linux-cooked" mode, so each packet include 525511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * a fake packet header (struct sll_header). This is because IrDA packet 526511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * decoding is dependant on the direction of the packet (incomming or 527511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * outgoing). 528511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * When/if other platform implement IrDA capture, we may revisit the 529511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * issue and define a real DLT_IRDA... 530511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Jean II 531511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 532511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LINUX_IRDA 144 533511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 534511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 535511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved for IBM SP switch and IBM Next Federation switch. 536511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 537511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IBM_SP 145 538511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IBM_SN 146 539511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 540511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 541511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Reserved for private use. If you have some link-layer header type 542511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that you want to use within your organization, with the capture files 543511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * using that link-layer header type not ever be sent outside your 544511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * organization, you can use these values. 545511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 546511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * No libpcap release will use these for any purpose, nor will any 547511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * tcpdump release use them, either. 548511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 549511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Do *NOT* use these in capture files that you expect anybody not using 550511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * your private versions of capture-file-reading tools to read; in 551511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * particular, do *NOT* use them in products, otherwise you may find that 552511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * people won't be able to use tcpdump, or snort, or Ethereal, or... to 553511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * read capture files from your firewall/intrusion detection/traffic 554511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * monitoring/etc. appliance, or whatever product uses that DLT_ value, 555511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and you may also find that the developers of those applications will 556511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * not accept patches to let them read those files. 557511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 558511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Also, do not use them if somebody might send you a capture using them 559511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for *their* private type and tools using them for *your* private type 560511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * would have to read them. 561511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 562511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Instead, ask "tcpdump-workers@lists.tcpdump.org" for a new DLT_ value, 563511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as per the comment above, and use the type you're given. 564511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 565511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER0 147 566511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER1 148 567511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER2 149 568511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER3 150 569511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER4 151 570511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER5 152 571511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER6 153 572511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER7 154 573511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER8 155 574511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER9 156 575511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER10 157 576511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER11 158 577511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER12 159 578511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER13 160 579511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER14 161 580511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USER15 162 581511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 582511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 583511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * For future use with 802.11 captures - defined by AbsoluteValue 584511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Systems to store a number of bits of link-layer information 585511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * including radio information: 586511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 587511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.shaftnet.org/~pizza/software/capturefrm.txt 588511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 589511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * but it might be used by some non-AVS drivers now or in the 590511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * future. 591511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 592511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_11_RADIO_AVS 163 /* 802.11 plus AVS radio header */ 593511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 594511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 595511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 596511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. The DLT_s are used 597511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for passing on chassis-internal metainformation such as 598511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * QOS profiles, etc.. 599511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 600511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_MONITOR 164 601511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 602511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 603511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * BACnet MS/TP frames. 604511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 605511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_BACNET_MS_TP 165 606511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 607511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 608511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Another PPP variant as per request from Karsten Keil <kkeil@suse.de>. 609511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 610511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * This is used in some OSes to allow a kernel socket filter to distinguish 611511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * between incoming and outgoing packets, on a socket intended to 612511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * supply pppd with outgoing packets so it can do dial-on-demand and 613511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * hangup-on-lack-of-demand; incoming packets are filtered out so they 614511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * don't cause pppd to hold the connection up (you don't want random 615511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * input packets such as port scans, packets from old lost connections, 616511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * etc. to force the connection to stay up). 617511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 618511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The first byte of the PPP header (0xff03) is modified to accomodate 619511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the direction - 0x00 = IN, 0x01 = OUT. 620511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 621511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_PPPD 166 622511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 623511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 624511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Names for backwards compatibility with older versions of some PPP 625511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * software; new software should use DLT_PPP_PPPD. 626511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 627511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_WITH_DIRECTION DLT_PPP_PPPD 628511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LINUX_PPP_WITHDIRECTION DLT_PPP_PPPD 629511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 630511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 631511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 632511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. The DLT_s are used 633511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for passing on chassis-internal metainformation such as 634511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * QOS profiles, cookies, etc.. 635511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 636511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_PPPOE 167 637511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_PPPOE_ATM 168 638511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 639511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GPRS_LLC 169 /* GPRS LLC */ 640511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GPF_T 170 /* GPF-T (ITU-T G.7041/Y.1303) */ 641511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GPF_F 171 /* GPF-F (ITU-T G.7041/Y.1303) */ 642511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 643511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 644511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Oolan Zimmer <oz@gcom.com> for use in Gcom's T1/E1 line 645511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * monitoring equipment. 646511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 647511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GCOM_T1E1 172 648511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GCOM_SERIAL 173 649511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 650511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 651511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 652511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. The DLT_ is used 653511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for internal communication to Physical Interface Cards (PIC) 654511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 655511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_PIC_PEER 174 656511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 657511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 658511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Link types requested by Gregor Maier <gregor@endace.com> of Endace 659511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Measurement Systems. They add an ERF header (see 660511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.endace.com/support/EndaceRecordFormat.pdf) in front of 661511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the link-layer header. 662511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 663511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ERF_ETH 175 /* Ethernet */ 664511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ERF_POS 176 /* Packet-over-SONET */ 665511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 666511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 667511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Daniele Orlandi <daniele@orlandi.com> for raw LAPD 668511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for vISDN (http://www.orlandi.com/visdn/). Its link-layer header 669511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * includes additional information before the LAPD header, so it's 670511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * not necessarily a generic LAPD header. 671511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 672511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LINUX_LAPD 177 673511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 674511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 675511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 676511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 677511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The DLT_ are used for prepending meta-information 678511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * like interface index, interface name 679511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * before standard Ethernet, PPP, Frelay & C-HDLC Frames 680511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 681511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ETHER 178 682511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_PPP 179 683511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_FRELAY 180 684511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_CHDLC 181 685511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 686511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 687511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Multi Link Frame Relay (FRF.16) 688511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 689511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MFR 182 690511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 691511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 692511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 693511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 694511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The DLT_ is used for internal communication with a 695511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * voice Adapter Card (PIC) 696511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 697511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_VP 183 698511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 699511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 700511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Arinc 429 frames. 701511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_ requested by Gianluca Varenni <gianluca.varenni@cacetech.com>. 702511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Every frame contains a 32bit A429 label. 703511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * More documentation on Arinc 429 can be found at 704511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.condoreng.com/support/downloads/tutorials/ARINCTutorial.pdf 705511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 706511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_A429 184 707511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 708511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 709511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Arinc 653 Interpartition Communication messages. 710511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_ requested by Gianluca Varenni <gianluca.varenni@cacetech.com>. 711511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Please refer to the A653-1 standard for more information. 712511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 713511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_A653_ICM 185 714511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 715511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 716511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * USB packets, beginning with a USB setup header; requested by 717511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Paolo Abeni <paolo.abeni@email.it>. 718511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 719511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USB 186 720511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 721511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 722511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Bluetooth HCI UART transport layer (part H:4); requested by 723511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Paolo Abeni. 724511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 725511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_BLUETOOTH_HCI_H4 187 726511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 727511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 728511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IEEE 802.16 MAC Common Part Sublayer; requested by Maria Cruz 729511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <cruz_petagay@bah.com>. 730511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 731511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_16_MAC_CPS 188 732511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 733511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 734511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * USB packets, beginning with a Linux USB header; requested by 735511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Paolo Abeni <paolo.abeni@email.it>. 736511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 737511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USB_LINUX 189 738511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 739511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 740511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Controller Area Network (CAN) v. 2.0B packets. 741511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_ requested by Gianluca Varenni <gianluca.varenni@cacetech.com>. 742511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Used to dump CAN packets coming from a CAN Vector board. 743511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * More documentation on the CAN v2.0B frames can be found at 744511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.can-cia.org/downloads/?269 745511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 746511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CAN20B 190 747511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 748511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 749511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IEEE 802.15.4, with address fields padded, as is done by Linux 750511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * drivers; requested by Juergen Schimmer. 751511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 752511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_15_4_LINUX 191 753511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 754511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 755511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Per Packet Information encapsulated packets. 756511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_ requested by Gianluca Varenni <gianluca.varenni@cacetech.com>. 757511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 758511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPI 192 759511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 760511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 761511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Header for 802.16 MAC Common Part Sublayer plus a radiotap radio header; 762511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * requested by Charles Clancy. 763511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 764511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_16_MAC_CPS_RADIO 193 765511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 766511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 767511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 768511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 769511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The DLT_ is used for internal communication with a 770511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * integrated service module (ISM). 771511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 772511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ISM 194 773511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 774511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 775511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IEEE 802.15.4, exactly as it appears in the spec (no padding, no 776511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * nothing); requested by Mikko Saarnivala <mikko.saarnivala@sensinode.com>. 777511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * For this one, we expect the FCS to be present at the end of the frame; 778511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * if the frame has no FCS, DLT_IEEE802_15_4_NOFCS should be used. 779511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 780511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_15_4 195 781511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 782511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 783511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Various link-layer types, with a pseudo-header, for SITA 784511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (http://www.sita.aero/); requested by Fulko Hew (fulko.hew@gmail.com). 785511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 786511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SITA 196 787511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 788511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 789511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Various link-layer types, with a pseudo-header, for Endace DAG cards; 790511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * encapsulates Endace ERF records. Requested by Stephen Donnelly 791511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <stephen@endace.com>. 792511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 793511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_ERF 197 794511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 795511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 796511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Special header prepended to Ethernet packets when capturing from a 797511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u10 Networks board. Requested by Phil Mulholland 798511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <phil@u10networks.com>. 799511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 800511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_RAIF1 198 801511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 802511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 803511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IPMB packet for IPMI, beginning with the I2C slave address, followed 804511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * by the netFn and LUN, etc.. Requested by Chanthy Toeung 805511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <chanthy.toeung@ca.kontron.com>. 806511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 807511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPMB 199 808511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 809511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 810511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 811511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 812511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The DLT_ is used for capturing data on a secure tunnel interface. 813511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 814511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ST 200 815511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 816511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 817511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Bluetooth HCI UART transport layer (part H:4), with pseudo-header 818511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that includes direction information; requested by Paolo Abeni. 819511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 820511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_BLUETOOTH_HCI_H4_WITH_PHDR 201 821511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 822511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 823511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * AX.25 packet with a 1-byte KISS header; see 824511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 825511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.ax25.net/kiss.htm 826511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 827511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as per Richard Stearn <richard@rns-stearn.demon.co.uk>. 828511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 829511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_AX25_KISS 202 830511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 831511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 832511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * LAPD packets from an ISDN channel, starting with the address field, 833511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with no pseudo-header. 834511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Varuna De Silva <varunax@gmail.com>. 835511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 836511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LAPD 203 837511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 838511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 839511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Variants of various link-layer headers, with a one-byte direction 840511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * pseudo-header prepended - zero means "received by this host", 841511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * non-zero (any non-zero value) means "sent by this host" - as per 842511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Will Barker <w.barker@zen.co.uk>. 843511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 844511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PPP_WITH_DIR 204 /* PPP - don't confuse with DLT_PPP_WITH_DIRECTION */ 845511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_C_HDLC_WITH_DIR 205 /* Cisco HDLC */ 846511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FRELAY_WITH_DIR 206 /* Frame Relay */ 847511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LAPB_WITH_DIR 207 /* LAPB */ 848511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 849511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 850511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 208 is reserved for an as-yet-unspecified proprietary link-layer 851511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * type, as requested by Will Barker. 852511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 853511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 854511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 855511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IPMB with a Linux-specific pseudo-header; as requested by Alexey Neyman 856511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <avn@pigeonpoint.com>. 857511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 858511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPMB_LINUX 209 859511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 860511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 861511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * FlexRay automotive bus - http://www.flexray.com/ - as requested 862511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * by Hannes Kaelber <hannes.kaelber@x2e.de>. 863511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 864511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FLEXRAY 210 865511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 866511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 867511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Media Oriented Systems Transport (MOST) bus for multimedia 868511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * transport - http://www.mostcooperation.com/ - as requested 869511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * by Hannes Kaelber <hannes.kaelber@x2e.de>. 870511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 871511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MOST 211 872511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 873511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 874511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Local Interconnect Network (LIN) bus for vehicle networks - 875511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.lin-subbus.org/ - as requested by Hannes Kaelber 876511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <hannes.kaelber@x2e.de>. 877511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 878511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LIN 212 879511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 880511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 881511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * X2E-private data link type used for serial line capture, 882511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as requested by Hannes Kaelber <hannes.kaelber@x2e.de>. 883511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 884511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_X2E_SERIAL 213 885511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 886511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 887511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * X2E-private data link type used for the Xoraya data logger 888511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * family, as requested by Hannes Kaelber <hannes.kaelber@x2e.de>. 889511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 890511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_X2E_XORAYA 214 891511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 892511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 893511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IEEE 802.15.4, exactly as it appears in the spec (no padding, no 894511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * nothing), but with the PHY-level data for non-ASK PHYs (4 octets 895511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * of 0 as preamble, one octet of SFD, one octet of frame length+ 896511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * reserved bit, and then the MAC-layer data, starting with the 897511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * frame control field). 898511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 899511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Max Filippov <jcmvbkbc@gmail.com>. 900511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 901511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_15_4_NONASK_PHY 215 902511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 903511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 904511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * David Gibson <david@gibson.dropbear.id.au> requested this for 905511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * captures from the Linux kernel /dev/input/eventN devices. This 906511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * is used to communicate keystrokes and mouse movements from the 907511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Linux kernel to display systems, such as Xorg. 908511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 909511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_LINUX_EVDEV 216 910511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 911511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 912511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * GSM Um and Abis interfaces, preceded by a "gsmtap" header. 913511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 914511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Harald Welte <laforge@gnumonks.org>. 915511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 916511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GSMTAP_UM 217 917511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_GSMTAP_ABIS 218 918511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 919511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 920511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * MPLS, with an MPLS label as the link-layer header. 921511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Michele Marchetto <michele@openbsd.org> on behalf 922511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * of OpenBSD. 923511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 924511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MPLS 219 925511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 926511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 927511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * USB packets, beginning with a Linux USB header, with the USB header 928511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * padded to 64 bytes; required for memory-mapped access. 929511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 930511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USB_LINUX_MMAPPED 220 931511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 932511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 933511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DECT packets, with a pseudo-header; requested by 934511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Matthias Wenzel <tcpdump@mazzoo.de>. 935511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 936511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_DECT 221 937511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 938511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 939511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * From: "Lidwa, Eric (GSFC-582.0)[SGT INC]" <eric.lidwa-1@nasa.gov> 940511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Date: Mon, 11 May 2009 11:18:30 -0500 941511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 942511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_AOS. We need it for AOS Space Data Link Protocol. 943511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * I have already written dissectors for but need an OK from 944511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * legal before I can submit a patch. 945511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 946511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 947511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_AOS 222 948511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 949511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 950511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Wireless HART (Highway Addressable Remote Transducer) 951511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * From the HART Communication Foundation 952511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IES/PAS 62591 953511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 954511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Sam Roberts <vieuxtech@gmail.com>. 955511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 956511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_WIHART 223 957511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 958511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 959511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Fibre Channel FC-2 frames, beginning with a Frame_Header. 960511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Kahou Lei <kahou82@gmail.com>. 961511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 962511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FC_2 224 963511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 964511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 965511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Fibre Channel FC-2 frames, beginning with an encoding of the 966511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * SOF, and ending with an encoding of the EOF. 967511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 968511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The encodings represent the frame delimiters as 4-byte sequences 969511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * representing the corresponding ordered sets, with K28.5 970511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * represented as 0xBC, and the D symbols as the corresponding 971511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * byte values; for example, SOFi2, which is K28.5 - D21.5 - D1.2 - D21.2, 972511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * is represented as 0xBC 0xB5 0x55 0x55. 973511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 974511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Kahou Lei <kahou82@gmail.com>. 975511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 976511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_FC_2_WITH_FRAME_DELIMS 225 977511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 978511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 979511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Solaris ipnet pseudo-header; requested by Darren Reed <Darren.Reed@Sun.COM>. 980511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 981511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The pseudo-header starts with a one-byte version number; for version 2, 982511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the pseudo-header is: 983511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 984511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * struct dl_ipnetinfo { 985511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int8_t dli_version; 986511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int8_t dli_family; 987511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int16_t dli_htype; 988511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int32_t dli_pktlen; 989511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int32_t dli_ifindex; 990511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int32_t dli_grifindex; 991511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int32_t dli_zsrc; 992511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * u_int32_t dli_zdst; 993511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * }; 994511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 995511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_version is 2 for the current version of the pseudo-header. 996511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 997511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_family is a Solaris address family value, so it's 2 for IPv4 998511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * and 26 for IPv6. 999511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1000511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_htype is a "hook type" - 0 for incoming packets, 1 for outgoing 1001511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * packets, and 2 for packets arriving from another zone on the same 1002511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * machine. 1003511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1004511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_pktlen is the length of the packet data following the pseudo-header 1005511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (so the captured length minus dli_pktlen is the length of the 1006511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * pseudo-header, assuming the entire pseudo-header was captured). 1007511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1008511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_ifindex is the interface index of the interface on which the 1009511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * packet arrived. 1010511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1011511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_grifindex is the group interface index number (for IPMP interfaces). 1012511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1013511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_zsrc is the zone identifier for the source of the packet. 1014511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1015511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * dli_zdst is the zone identifier for the destination of the packet. 1016511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1017511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * A zone number of 0 is the global zone; a zone number of 0xffffffff 1018511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * means that the packet arrived from another host on the network, not 1019511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * from another zone on the same machine. 1020511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1021511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * An IPv4 or IPv6 datagram follows the pseudo-header; dli_family indicates 1022511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * which of those it is. 1023511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1024511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPNET 226 1025511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1026511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1027511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * CAN (Controller Area Network) frames, with a pseudo-header as supplied 1028511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * by Linux SocketCAN. See Documentation/networking/can.txt in the Linux 1029511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * source. 1030511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1031511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Felix Obenhuber <felix@obenhuber.de>. 1032511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1033511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CAN_SOCKETCAN 227 1034511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1035511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1036511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Raw IPv4/IPv6; different from DLT_RAW in that the DLT_ value specifies 1037511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * whether it's v4 or v6. Requested by Darren Reed <Darren.Reed@Sun.COM>. 1038511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1039511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPV4 228 1040511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPV6 229 1041511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1042511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1043511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IEEE 802.15.4, exactly as it appears in the spec (no padding, no 1044511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * nothing), and with no FCS at the end of the frame; requested by 1045511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Jon Smirl <jonsmirl@gmail.com>. 1046511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1047511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IEEE802_15_4_NOFCS 230 1048511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1049511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1050511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Raw D-Bus: 1051511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1052511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.freedesktop.org/wiki/Software/dbus 1053511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1054511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * messages: 1055511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1056511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-messages 1057511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1058511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * starting with the endianness flag, followed by the message type, etc., 1059511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * but without the authentication handshake before the message sequence: 1060511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1061511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://dbus.freedesktop.org/doc/dbus-specification.html#auth-protocol 1062511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1063511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Martin Vidner <martin@vidner.net>. 1064511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1065511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_DBUS 231 1066511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1067511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1068511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 1069511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 1070511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1071511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_VS 232 1072511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_SRX_E2E 233 1073511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_FIBRECHANNEL 234 1074511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1075511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1076511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DVB-CI (DVB Common Interface for communication between a PC Card 1077511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * module and a DVB receiver). See 1078511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1079511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * http://www.kaiser.cx/pcap-dvbci.html 1080511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1081511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for the specification. 1082511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1083511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Martin Kaiser <martin@kaiser.cx>. 1084511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1085511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_DVB_CI 235 1086511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1087511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1088511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Variant of 3GPP TS 27.010 multiplexing protocol (similar to, but 1089511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * *not* the same as, 27.010). Requested by Hans-Christoph Schemmel 1090511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <hans-christoph.schemmel@cinterion.com>. 1091511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1092511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MUX27010 236 1093511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1094511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1095511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * STANAG 5066 D_PDUs. Requested by M. Baris Demiray 1096511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * <barisdemiray@gmail.com>. 1097511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1098511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_STANAG_5066_D_PDU 237 1099511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1100511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1101511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Juniper-private data link type, as per request from 1102511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hannes Gredler <hannes@juniper.net>. 1103511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1104511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_JUNIPER_ATM_CEMIC 238 1105511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1106511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1107511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * NetFilter LOG messages 1108511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (payload of netlink NFNL_SUBSYS_ULOG/NFULNL_MSG_PACKET packets) 1109511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1110511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Jakub Zawadzki <darkjames-ws@darkjames.pl> 1111511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1112511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NFLOG 239 1113511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1114511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1115511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hilscher Gesellschaft fuer Systemautomation mbH link-layer type 1116511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for Ethernet packets with a 4-byte pseudo-header and always 1117511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with the payload including the FCS, as supplied by their 1118511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * netANALYZER hardware and software. 1119511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1120511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Holger P. Frommer <HPfrommer@hilscher.com> 1121511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1122511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NETANALYZER 240 1123511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1124511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1125511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Hilscher Gesellschaft fuer Systemautomation mbH link-layer type 1126511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * for Ethernet packets with a 4-byte pseudo-header and FCS and 1127511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * with the Ethernet header preceded by 7 bytes of preamble and 1128511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1 byte of SFD, as supplied by their netANALYZER hardware and 1129511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * software. 1130511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1131511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Holger P. Frommer <HPfrommer@hilscher.com> 1132511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1133511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NETANALYZER_TRANSPARENT 241 1134511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1135511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1136511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * IP-over-InfiniBand, as specified by RFC 4391. 1137511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1138511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Petr Sumbera <petr.sumbera@oracle.com>. 1139511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1140511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IPOIB 242 1141511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1142511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1143511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * MPEG-2 transport stream (ISO 13818-1/ITU-T H.222.0). 1144511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1145511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Guy Martin <gmsoft@tuxicoman.be>. 1146511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1147511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MPEG_2_TS 243 1148511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1149511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1150511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * ng4T GmbH's UMTS Iub/Iur-over-ATM and Iub/Iur-over-IP format as 1151511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * used by their ng40 protocol tester. 1152511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1153511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Jens Grimmer <jens.grimmer@ng4t.com>. 1154511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1155511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NG40 244 1156511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1157511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1158511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Pseudo-header giving adapter number and flags, followed by an NFC 1159511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * (Near-Field Communications) Logical Link Control Protocol (LLCP) PDU, 1160511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * as specified by NFC Forum Logical Link Control Protocol Technical 1161511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Specification LLCP 1.1. 1162511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1163511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Mike Wakerly <mikey@google.com>. 1164511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1165511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NFC_LLCP 245 1166511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1167511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1168511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 245 is used as LINKTYPE_PFSYNC; do not use it for any other purpose. 1169511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1170511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_PFSYNC has different values on different platforms, and all of 1171511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * them collide with something used elsewhere. On platforms that 1172511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * don't already define it, define it as 245. 1173511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1174511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__) && !defined(__APPLE__) 1175511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_PFSYNC 246 1176511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 1177511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1178511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1179511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Raw InfiniBand packets, starting with the Local Routing Header. 1180511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1181511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Oren Kladnitsky <orenk@mellanox.com>. 1182511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1183511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_INFINIBAND 247 1184511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1185511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1186511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * SCTP, with no lower-level protocols (i.e., no IPv4 or IPv6). 1187511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1188511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Michael Tuexen <Michael.Tuexen@lurchi.franken.de>. 1189511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1190511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_SCTP 248 1191511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1192511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1193511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * USB packets, beginning with a USBPcap header. 1194511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1195511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Tomasz Mon <desowin@gmail.com> 1196511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1197511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_USBPCAP 249 1198511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1199511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1200511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Schweitzer Engineering Laboratories "RTAC" product serial-line 1201511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * packets. 1202511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1203511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Chris Bontje <chris_bontje@selinc.com>. 1204511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1205511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_RTAC_SERIAL 250 1206511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1207511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1208511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Bluetooth Low Energy air interface link-layer packets. 1209511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1210511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Requested by Mike Kershaw <dragorn@kismetwireless.net>. 1211511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1212511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_BLUETOOTH_LE_LL 251 1213511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1214511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1215511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT type for upper-protocol layer PDU saves from wireshark. 1216511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1217511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * the actual contents are determined by two TAGs stored with each 1218511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * packet: 1219511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * EXP_PDU_TAG_LINKTYPE the link type (LINKTYPE_ value) of the 1220511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * original packet. 1221511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * 1222511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * EXP_PDU_TAG_PROTO_NAME the name of the wireshark dissector 1223511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that can make sense of the data stored. 1224511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1225511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_WIRESHARK_UPPER_PDU 252 1226511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1227511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_MATCHING_MAX 252 /* highest value in the "matching" range */ 1228511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1229511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1230511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT and savefile link type values are split into a class and 1231511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * a member of that class. A class value of 0 indicates a regular 1232511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * DLT_/LINKTYPE_ value. 1233511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1234511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CLASS(x) ((x) & 0x03ff0000) 1235511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1236511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1237511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * NetBSD-specific generic "raw" link type. The class value indicates 1238511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * that this is the generic raw type, and the lower 16 bits are the 1239511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * address family we're dealing with. Those values are NetBSD-specific; 1240511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * do not assume that they correspond to AF_ values for your operating 1241511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * system. 1242511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1243511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_CLASS_NETBSD_RAWAF 0x02240000 1244511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NETBSD_RAWAF(af) (DLT_CLASS_NETBSD_RAWAF | (af)) 1245511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_NETBSD_RAWAF_AF(x) ((x) & 0x0000ffff) 1246511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define DLT_IS_NETBSD_RAWAF(x) (DLT_CLASS(x) == DLT_CLASS_NETBSD_RAWAF) 1247511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1248511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1249511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1250511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The instruction encodings. 1251511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1252511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* instruction classes */ 1253511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_CLASS(code) ((code) & 0x07) 1254511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_LD 0x00 1255511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_LDX 0x01 1256511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ST 0x02 1257511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_STX 0x03 1258511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ALU 0x04 1259511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JMP 0x05 1260511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_RET 0x06 1261511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MISC 0x07 1262511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1263511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* ld/ldx fields */ 1264511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_SIZE(code) ((code) & 0x18) 1265511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_W 0x00 1266511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_H 0x08 1267511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_B 0x10 1268511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MODE(code) ((code) & 0xe0) 1269511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_IMM 0x00 1270511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ABS 0x20 1271511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_IND 0x40 1272511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MEM 0x60 1273511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_LEN 0x80 1274511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MSH 0xa0 1275511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1276511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* alu/jmp fields */ 1277511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_OP(code) ((code) & 0xf0) 1278511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_ADD 0x00 1279511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_SUB 0x10 1280511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MUL 0x20 1281511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_DIV 0x30 1282511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_OR 0x40 1283511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_AND 0x50 1284511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_LSH 0x60 1285511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_RSH 0x70 1286511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_NEG 0x80 1287511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JA 0x00 1288511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JEQ 0x10 1289511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JGT 0x20 1290511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JGE 0x30 1291511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JSET 0x40 1292511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_SRC(code) ((code) & 0x08) 1293511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_K 0x00 1294511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_X 0x08 1295511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1296511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* ret - BPF_K and BPF_X also apply */ 1297511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_RVAL(code) ((code) & 0x18) 1298511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_A 0x10 1299511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1300511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* misc */ 1301511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MISCOP(code) ((code) & 0xf8) 1302511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_TAX 0x00 1303511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_TXA 0x80 1304511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1305511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1306511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * The instruction data structure. 1307511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1308511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallstruct bpf_insn { 1309511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall u_short code; 1310511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall u_char jt; 1311511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall u_char jf; 1312511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall bpf_u_int32 k; 1313511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall}; 1314511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1315511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1316511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Macros for insn array initializers. 1317511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1318511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k } 1319511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k } 1320511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1321511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#if __STDC__ || defined(__cplusplus) 1322511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallextern int bpf_validate(const struct bpf_insn *, int); 1323511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallextern u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int); 1324511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#else 1325511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallextern int bpf_validate(); 1326511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrallextern u_int bpf_filter(); 1327511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 1328511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1329511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall/* 1330511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST). 1331511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall */ 1332511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#define BPF_MEMWORDS 16 1333511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1334511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#ifdef __cplusplus 1335511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall} 1336511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif 1337511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall 1338511eca30a483e912c274e1d8ba3a0f8f081e2227JP Abgrall#endif /* !defined(_NET_BPF_H_) && !defined(_BPF_H_) && !defined(_H_BPF) && !defined(lib_pcap_bpf_h) */ 1339