summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/bpf/net/dlt.h
blob: a6aa18fa1aa47240f753f9a37863164ec0efeaaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/*	$NetBSD: dlt.h,v 1.11 2006/02/27 14:22:26 drochner Exp $	*/

/*
 * Copyright (c) 1990, 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from the Stanford/CMU enet packet filter,
 * (net/enet.c) distributed as part of 4.3BSD, and code contributed
 * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
 * Berkeley Laboratory.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)bpf.h	8.2 (Berkeley) 1/9/95
 * @(#) Header: bpf.h,v 1.36 97/06/12 14:29:53 leres Exp  (LBL)
 */
/*
 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef _NET_DLT_H_
#define	_NET_DLT_H_

/*
 * Data-link level type codes.
 */
#define	DLT_NULL	0	/* no link-layer encapsulation */
#define	DLT_EN10MB	1	/* Ethernet (10Mb) */
#define	DLT_EN3MB	2	/* Experimental Ethernet (3Mb) */
#define	DLT_AX25	3	/* Amateur Radio AX.25 */
#define	DLT_PRONET	4	/* Proteon ProNET Token Ring */
#define	DLT_CHAOS	5	/* Chaos */
#define	DLT_IEEE802	6	/* IEEE 802 Networks */
#define	DLT_ARCNET	7	/* ARCNET */
#define	DLT_SLIP	8	/* Serial Line IP */
#define	DLT_PPP		9	/* Point-to-point Protocol */
#define	DLT_FDDI	10	/* FDDI */
#define	DLT_ATM_RFC1483	11	/* LLC/SNAP encapsulated atm */
#define	DLT_RAW		12	/* raw IP */
#define	DLT_SLIP_BSDOS	13	/* BSD/OS Serial Line IP */
#define	DLT_PPP_BSDOS	14	/* BSD/OS Point-to-point Protocol */
#define	DLT_HIPPI	15	/* HIPPI */
#define	DLT_HDLC	16	/* HDLC framing */

#define	DLT_PFSYNC	18	/* Packet filter state syncing */
#define	DLT_ATM_CLIP	19	/* Linux Classical-IP over ATM */
#define	DLT_ENC		109	/* Encapsulated packets for IPsec */
#define	DLT_LINUX_SLL	113	/* Linux cooked sockets */
#define	DLT_LTALK	114	/* Apple LocalTalk hardware */
#define	DLT_PFLOG	117	/* Packet filter logging, by pcap people */
#define	DLT_CISCO_IOS	118	/* Registered for Cisco-internal use */

/* Axent Raptor / Symantec Enterprise Firewall */
#define	DLT_SYMANTEC_FIREWALL	99

#define	DLT_C_HDLC		104	/* Cisco HDLC */
#define	DLT_IEEE802_11		105	/* IEEE 802.11 wireless */
#define	DLT_FRELAY		107	/* Frame Relay */
#define	DLT_LOOP		108	/* OpenBSD DLT_LOOP */
#define	DLT_ECONET		115	/* Acorn Econet */
#define	DLT_PRISM_HEADER	119	/* 802.11 header plus Prism II info. */
#define	DLT_AIRONET_HEADER 	120	/* 802.11 header plus Aironet info. */
#define	DLT_HHDLC		121	/* Reserved for Siemens HiPath HDLC */
#define	DLT_IP_OVER_FC		122	/* RFC 2625 IP-over-Fibre Channel */
#define	DLT_SUNATM		123	/* Solaris+SunATM */
#define	DLT_RIO			124	/* RapidIO */
#define	DLT_PCI_EXP		125	/* PCI Express */
#define	DLT_AURORA		126	/* Xilinx Aurora link layer */
#define	DLT_IEEE802_11_RADIO 	127	/* 802.11 header plus radio info. */
#define	DLT_TZSP		128	/* Tazmen Sniffer Protocol */
#define	DLT_ARCNET_LINUX	129	/* ARCNET */
#define	DLT_JUNIPER_MLPPP	130	/* Juniper-private data link types. */
#define	DLT_JUNIPER_MLFR	131
#define	DLT_JUNIPER_ES		132
#define	DLT_JUNIPER_GGSN	133
#define	DLT_JUNIPER_MFR		134
#define	DLT_JUNIPER_ATM2	135
#define	DLT_JUNIPER_SERVICES	136
#define	DLT_JUNIPER_ATM1	137
#define	DLT_APPLE_IP_OVER_IEEE1394	138	/* Apple IP-over-IEEE 1394 */

/* Various SS7 encapsulations */
#define	DLT_MTP2_WITH_PHDR	139	/* pseudo-header with various info, */
					/* followed by MTP2 */
#define	DLT_MTP2		140	/* MTP2, no pseudo-header */
#define	DLT_MTP3		141	/* MTP3, no pseudo-header or MTP2 */
#define	DLT_SCCP		142	/* SCCP, no pseudo-header or MTP2 */
					/* or MTP3 */

#define	DLT_DOCSIS		143	/* Reserved for DOCSIS MAC frames. */
#define	DLT_LINUX_IRDA		144	/* Linux-IrDA packets */

/* Reserved for IBM SP switch and IBM Next Federation switch. */
#define	DLT_IBM_SP		145
#define	DLT_IBM_SN		146

#define	DLT_IEEE802_11_RADIO_AVS	163	/* 802.11 plus AVS header */
#define	DLT_JUNIPER_MONITOR	164	/* Juniper-private data link type */
#define	DLT_BACNET_MS_TP	165
#define	DLT_PPP_PPPD		166	/* Another PPP variant (Linux? */

#define	DLT_JUNIPER_PPPOE	167
#define	DLT_JUNIPER_PPPOE_ATM	168
#define	DLT_JUNIPER_PIC_PEER	174
#define	DLT_JUNIPER_ETHER	178
#define	DLT_JUNIPER_PPP		179
#define	DLT_JUNIPER_FRELAY	180
#define	DLT_JUNIPER_CHDLC	181

#define	DLT_GPRS_LLC		169	/* GPRS LLC */
#define	DLT_GPF_T		170	/* GPF-T (ITU-T G.7041/Y.1303) */
#define	DLT_GPF_F		171	/* GPF-F (ITU-T G.7041/Y.1303) */

#define	DLT_GCOM_T1E1		172
#define	DLT_GCOM_SERIAL		173

/* "EndaceRecordFormat" */
#define	DLT_ERF_ETH		175	/* Ethernet */
#define	DLT_ERF_POS		176	/* Packet-over-SONET */

#define	DLT_LINUX_LAPD		177	/* Raw LAPD for vISDN */

#define	DLT_IPNET		226	/* MAC client view on Solaris */
/*
 * A number reserved for private user use is currently assigned, pending
 * a real one from tcpdump.org. A description of the link layer frame
 * is a requisite for this.
 */
#define	DLT_IPOIB		162	/* Infiniband (IPoIB) on Solaris */

/*
 * NetBSD-specific generic "raw" link type.  The upper 16-bits indicate
 * that this is the generic raw type, and the lower 16-bits are the
 * address family we're dealing with.
 */
#define	DLT_RAWAF_MASK		0x02240000
#define	DLT_RAWAF(af)		(DLT_RAWAF_MASK | (af))
#define	DLT_RAWAF_AF(x)		((x) & 0x0000ffff)
#define	DLT_IS_RAWAF(x)		(((x) & 0xffff0000) == DLT_RAWAF_MASK)

/*
 * Solaris specific function to map DLPI DL_ data link types to BPF DLT_
 */
extern int bpf_dl_to_dlt(int);
extern int bpf_dl_hdrsize(int);

#endif /* !_NET_DLT_H_ */