add new function tvb_get_ephemeral_stringz()
[obnox/wireshark/wip.git] / etypes.h
1 /* etypes.h
2  * Defines ethernet packet types, similar to tcpdump's ethertype.h
3  *
4  * $Id$
5  *
6  * Ethereal - Network traffic analyzer
7  * By Gerald Combs <gerald@ethereal.com>
8  * Copyright 1998 Gerald Combs
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  */
24
25 #ifndef __ETYPES_H__
26 #define __ETYPES_H__
27
28 /*
29  * Maximum length of an IEEE 802.3 frame; Ethernet type/length values
30  * greater than it are types, Ethernet type/length values less than or
31  * equal to it are lengths.
32  */
33 #define IEEE_802_3_MAX_LEN 1500
34
35 #ifndef ETHERTYPE_UNK
36 #define ETHERTYPE_UNK           0x0000
37 #endif
38
39 /* Sources:
40  * http://www.iana.org/assignments/ethernet-numbers
41  * TCP/IP Illustrated, Volume 1
42  * RFCs 894, 1042, 826
43  * tcpdump's ethertype.h
44  * http://www.cavebear.com/CaveBear/Ethernet/
45  * http://standards.ieee.org/regauth/ethertype/type-pub.html
46  * http://standards.ieee.org/regauth/ethertype/eth.txt
47  * (The first of the two IEEE URLs is the one that the "EtherType Field
48  * Public Assignments" link on the page at
49  *
50  *      http://standards.ieee.org/regauth/ethertype/index.shtml
51  *
52  * goes to, but it is redirected to the second of those - i.e., both
53  * of the IEEE URLs ultimately go to the same page.)
54  */
55
56 #ifndef ETHERTYPE_VINES_IP
57 #define ETHERTYPE_VINES_IP      0x0bad
58 #endif
59
60 #ifndef ETHERTYPE_VINES_ECHO
61 #define ETHERTYPE_VINES_ECHO    0x0baf
62 #endif
63
64 #ifndef ETHERTYPE_TRAIN
65 /*
66  * Created by Microsoft Network Monitor as a summary packet.
67  */
68 #define ETHERTYPE_TRAIN         0x1984
69 #endif
70
71 #ifndef ETHERTYPE_CGMP
72 #define ETHERTYPE_CGMP          0x2001
73 #endif
74
75 #ifndef ETHERTYPE_CENTRINO_PROMISC
76 #define ETHERTYPE_CENTRINO_PROMISC      0x2452  /* Intel Centrino promiscuous packets */
77 #endif
78
79 #ifndef ETHERTYPE_3C_NBP_DGRAM
80 #define ETHERTYPE_3C_NBP_DGRAM  0x3c07
81 #endif
82
83 #ifndef ETHERTYPE_XNS_IDP
84 #define ETHERTYPE_XNS_IDP       0x0600
85 #endif
86
87 #ifndef ETHERTYPE_IP
88 #define ETHERTYPE_IP            0x0800
89 #endif
90
91 #ifndef ETHERTYPE_X25L3
92 #define ETHERTYPE_X25L3         0x0805
93 #endif
94
95 #ifndef ETHERTYPE_ARP
96 #define ETHERTYPE_ARP           0x0806
97 #endif
98
99 #ifndef ETHERTYPE_DEC
100 #define ETHERTYPE_DEC           0x6000
101 #endif
102
103 #ifndef ETHERTYPE_DNA_DL
104 #define ETHERTYPE_DNA_DL        0x6001
105 #endif
106
107 #ifndef ETHERTYPE_DNA_RC
108 #define ETHERTYPE_DNA_RC        0x6002
109 #endif
110
111 #ifndef ETHERTYPE_DNA_RT
112 #define ETHERTYPE_DNA_RT        0x6003
113 #endif
114
115 #ifndef ETHERTYPE_LAT
116 #define ETHERTYPE_LAT           0x6004
117 #endif
118
119 #ifndef ETHERTYPE_DEC_DIAG
120 #define ETHERTYPE_DEC_DIAG      0x6005
121 #endif
122
123 #ifndef ETHERTYPE_DEC_CUST
124 #define ETHERTYPE_DEC_CUST      0x6006
125 #endif
126
127 #ifndef ETHERTYPE_DEC_SCA
128 #define ETHERTYPE_DEC_SCA       0x6007
129 #endif
130
131 #ifndef ETHERTYPE_ETHBRIDGE
132 #define ETHERTYPE_ETHBRIDGE     0x6558  /* transparent Ethernet bridging [RFC1701]*/
133 #endif
134
135 #ifndef ETHERTYPE_RAW_FR
136 #define ETHERTYPE_RAW_FR        0x6559  /* Raw Frame Relay        [RFC1701] */
137 #endif
138
139 #ifndef ETHERTYPE_REVARP
140 #define ETHERTYPE_REVARP        0x8035
141 #endif
142
143 #ifndef ETHERTYPE_DEC_LB
144 #define ETHERTYPE_DEC_LB        0x8038
145 #endif
146
147 #ifndef ETHERTYPE_DEC_LAST
148 #define ETHERTYPE_DEC_LAST      0x8041  /* DEC Local Area Systems Transport */
149 #endif
150
151 #ifndef ETHERTYPE_ATALK
152 #define ETHERTYPE_ATALK         0x809b
153 #endif
154
155 #ifndef ETHERTYPE_SNA
156 #define ETHERTYPE_SNA           0x80d5
157 #endif
158
159 #ifndef ETHERTYPE_AARP
160 #define ETHERTYPE_AARP          0x80f3
161 #endif
162
163 #ifndef ETHERTYPE_IPX
164 #define ETHERTYPE_IPX           0x8137
165 #endif
166
167 #ifndef ETHERTYPE_VLAN
168 #define ETHERTYPE_VLAN          0x8100  /* 802.1Q Virtual LAN */
169 #endif
170
171 #ifndef ETHERTYPE_SNMP
172 #define ETHERTYPE_SNMP          0x814c  /* SNMP over Ethernet, RFC 1089 */
173 #endif
174
175 #ifndef ETHERTYPE_WCP
176 #define ETHERTYPE_WCP           0x80ff  /* Wellfleet Compression Protocol */
177 #endif
178
179 #ifndef ETHERTYPE_ISMP
180 #define ETHERTYPE_ISMP          0x81fd  /* Cabletron Interswitch Message Protocol */
181 #endif
182
183 #ifndef ETHERTYPE_ISMP_TBFLOOD
184 #define ETHERTYPE_ISMP_TBFLOOD  0x81ff  /* Cabletron Interswitch Message Protocol */
185 #endif
186
187 #ifndef ETHERTYPE_IPv6
188 #define ETHERTYPE_IPv6          0x86dd
189 #endif
190
191 #ifndef ETHERTYPE_MAC_CONTROL
192 #define ETHERTYPE_MAC_CONTROL   0x8808
193 #endif
194
195 #ifndef ETHERTYPE_SLOW_PROTOCOLS
196 #define ETHERTYPE_SLOW_PROTOCOLS        0x8809
197 #endif
198
199 #ifndef ETHERTYPE_PPP
200 #define ETHERTYPE_PPP           0x880b  /* no, this is not PPPoE */
201 #endif
202
203 #ifndef ETHERTYPE_MPLS
204 #define ETHERTYPE_MPLS          0x8847  /* MPLS unicast packet */
205 #endif
206
207 #ifndef ETHERTYPE_MPLS_MULTI
208 #define ETHERTYPE_MPLS_MULTI    0x8848  /* MPLS multicast packet */
209 #endif
210
211 #ifndef ETHERTYPE_PPPOED
212 #define ETHERTYPE_PPPOED        0x8863  /* PPPoE Discovery Protocol */
213 #endif
214
215 #ifndef ETHERTYPE_PPPOES
216 #define ETHERTYPE_PPPOES        0x8864  /* PPPoE Session Protocol */
217 #endif
218
219 #ifndef ETHERTYPE_INTEL_ANS
220 #define ETHERTYPE_INTEL_ANS     0x886d  /* Intel ANS (NIC teaming) http://www.intel.com/support/network/adapter/ans/probes.htm */
221 #endif
222
223 #ifndef ETHERTYPE_MS_NLB_HEARTBEAT
224 #define ETHERTYPE_MS_NLB_HEARTBEAT      0x886f  /* MS Network Load Balancing heartbeat http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/deploy/confeat/nlbovw.asp */
225 #endif
226
227 #ifndef ETHERTYPE_CDMA2000_A10_UBS
228 #define ETHERTYPE_CDMA2000_A10_UBS      0x8881  /* the byte stream protocol that is used for IP based micro-mobility bearer interfaces (A10) in CDMA2000(R)-based wireless networks */
229 #endif
230
231 #ifndef ETHERTYPE_EAPOL
232 #define ETHERTYPE_EAPOL         0x888e  /* 802.1x Authentication */
233 #endif
234
235 #ifndef ETHERTYPE_PROFINET
236 #define ETHERTYPE_PROFINET      0x8892  /* PROFIBUS PROFInet protocol */
237 #endif
238
239 #ifndef ETHERTYPE_HYPERSCSI
240 #define ETHERTYPE_HYPERSCSI     0x889A  /* HyperSCSI */
241 #endif
242
243 #ifndef ETHERTYPE_CSM_ENCAPS
244 #define ETHERTYPE_CSM_ENCAPS    0x889B /* Mindspeed Technologies www.mindspeed.com */
245 #endif
246
247 #ifndef ETHERTYPE_AOE
248 #define ETHERTYPE_AOE           0x88A2
249 #endif
250
251 #ifndef ETHERTYPE_BRDWALK
252 #define ETHERTYPE_BRDWALK       0x88AE
253 #endif
254
255 #ifndef ETHERTYPE_IEEE802_OUI_EXTENDED
256 #define ETHERTYPE_IEEE802_OUI_EXTENDED 0x88B7   /* IEEE 802a OUI Extended Ethertype */
257 #endif
258
259 #ifndef ETHERTYPE_RSN_PREAUTH
260 #define ETHERTYPE_RSN_PREAUTH   0x88c7  /* 802.11i Pre-Authentication */
261 #endif
262
263 #ifndef ETHERTYPE_LLDP
264 #define ETHERTYPE_LLDP          0x88cc  /* IEEE 802.1 Link Layer Discovery Protocol (LLDP) */
265 #endif
266
267 #ifndef ETHERTYPE_3GPP2
268 #define ETHERTYPE_3GPP2         0x88d2  /* This will be used in a revision of the Interoperabi */
269 #endif                                                                  /* Specification (IOS) for cdma2000 Access Network Interfaces (document numbers A.S0011-B */
270                                                                                 /* through A.S0017-B v1.0). This document already uses the Ether type 8881 */
271
272 #ifndef ETHERTYPE_LOOP
273 #define ETHERTYPE_LOOP          0x9000  /* used for layer 2 testing (do i see my own frames on the wire) */
274 #endif
275
276 #ifndef ETHERTYPE_RTMAC
277 #define ETHERTYPE_RTMAC         0x9021  /* RTnet: Real-Time Media Access Control */
278 #endif
279
280 #ifndef ETHERTYPE_RTCFG
281 #define ETHERTYPE_RTCFG         0x9022  /* RTnet: Real-Time Configuration Protocol */
282 #endif
283
284 #ifndef ETHERTYPE_FCFT
285 /* type used to transport FC frames+MDS hdr internal to Cisco's MDS switch */
286 #define ETHERTYPE_FCFT          0xFCFC
287 #endif
288
289 extern const value_string etype_vals[];
290
291 #endif /* etypes.h */