From Benjamin Roch:
[obnox/wireshark/wip.git] / epan / etypes.h
1 /* etypes.h
2  * Defines ethernet packet types, similar to tcpdump's ethertype.h
3  *
4  * $Id$
5  *
6  * Wireshark - Network traffic analyzer
7  * By Gerald Combs <gerald@wireshark.org>
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 /* Order these values by number */
57
58 #ifndef ETHERTYPE_XNS_IDP
59 #define ETHERTYPE_XNS_IDP       0x0600
60 #endif
61
62 #ifndef ETHERTYPE_IP
63 #define ETHERTYPE_IP            0x0800
64 #endif
65
66 #ifndef ETHERTYPE_X25L3
67 #define ETHERTYPE_X25L3         0x0805
68 #endif
69
70 #ifndef ETHERTYPE_ARP
71 #define ETHERTYPE_ARP           0x0806
72 #endif
73
74 #ifndef ETHERTYPE_WOL
75 #define ETHERTYPE_WOL           0x0842 /* Wake on LAN.  Not offically registered. */
76 #endif
77
78 #ifndef ETHERTYPE_WMX_M2M
79 #define ETHERTYPE_WMX_M2M       0x08f0
80 #endif
81
82 #ifndef ETHERTYPE_VINES_IP
83 #define ETHERTYPE_VINES_IP      0x0bad
84 #endif
85
86 #ifndef ETHERTYPE_VINES_ECHO
87 #define ETHERTYPE_VINES_ECHO    0x0baf
88 #endif
89
90 #ifndef ETHERTYPE_TRAIN
91 /*
92  * Created by Microsoft Network Monitor as a summary packet.
93  */
94 #define ETHERTYPE_TRAIN         0x1984
95 #endif
96
97 #ifndef ETHERTYPE_CGMP
98 #define ETHERTYPE_CGMP          0x2001
99 #endif
100
101 #ifndef ETHERTYPE_CENTRINO_PROMISC
102 #define ETHERTYPE_CENTRINO_PROMISC      0x2452  /* Intel Centrino promiscuous packets */
103 #endif
104
105 #ifndef ETHERTYPE_3C_NBP_DGRAM
106 #define ETHERTYPE_3C_NBP_DGRAM  0x3c07
107 #endif
108
109 #ifndef ETHERTYPE_EPL_V1
110 #define ETHERTYPE_EPL_V1        0x3E3F
111 #endif
112
113 #ifndef ETHERTYPE_DEC
114 #define ETHERTYPE_DEC           0x6000
115 #endif
116
117 #ifndef ETHERTYPE_DNA_DL
118 #define ETHERTYPE_DNA_DL        0x6001
119 #endif
120
121 #ifndef ETHERTYPE_DNA_RC
122 #define ETHERTYPE_DNA_RC        0x6002
123 #endif
124
125 #ifndef ETHERTYPE_DNA_RT
126 #define ETHERTYPE_DNA_RT        0x6003
127 #endif
128
129 #ifndef ETHERTYPE_LAT
130 #define ETHERTYPE_LAT           0x6004
131 #endif
132
133 #ifndef ETHERTYPE_DEC_DIAG
134 #define ETHERTYPE_DEC_DIAG      0x6005
135 #endif
136
137 #ifndef ETHERTYPE_DEC_CUST
138 #define ETHERTYPE_DEC_CUST      0x6006
139 #endif
140
141 #ifndef ETHERTYPE_DEC_SCA
142 #define ETHERTYPE_DEC_SCA       0x6007
143 #endif
144
145 #ifndef ETHERTYPE_ETHBRIDGE
146 #define ETHERTYPE_ETHBRIDGE     0x6558  /* transparent Ethernet bridging [RFC1701]*/
147 #endif
148
149 #ifndef ETHERTYPE_RAW_FR
150 #define ETHERTYPE_RAW_FR        0x6559  /* Raw Frame Relay        [RFC1701] */
151 #endif
152
153 #ifndef ETHERTYPE_REVARP
154 #define ETHERTYPE_REVARP        0x8035
155 #endif
156
157 #ifndef ETHERTYPE_DEC_LB
158 #define ETHERTYPE_DEC_LB        0x8038
159 #endif
160
161 #ifndef ETHERTYPE_DEC_LAST
162 #define ETHERTYPE_DEC_LAST      0x8041  /* DEC Local Area Systems Transport */
163 #endif
164
165 #ifndef ETHERTYPE_ATALK
166 #define ETHERTYPE_ATALK         0x809b
167 #endif
168
169 #ifndef ETHERTYPE_SNA
170 #define ETHERTYPE_SNA           0x80d5
171 #endif
172
173 #ifndef ETHERTYPE_AARP
174 #define ETHERTYPE_AARP          0x80f3
175 #endif
176
177 #ifndef ETHERTYPE_VLAN
178 #define ETHERTYPE_VLAN          0x8100  /* 802.1Q Virtual LAN */
179 #endif
180
181 #ifndef ETHERTYPE_NSRP
182 #define ETHERTYPE_NSRP          0x8133
183 #endif
184
185 #ifndef ETHERTYPE_IPX
186 #define ETHERTYPE_IPX           0x8137
187 #endif
188
189 #ifndef ETHERTYPE_SNMP
190 #define ETHERTYPE_SNMP          0x814c  /* SNMP over Ethernet, RFC 1089 */
191 #endif
192
193 #ifndef ETHERTYPE_WCP
194 #define ETHERTYPE_WCP           0x80ff  /* Wellfleet Compression Protocol */
195 #endif
196
197 #ifndef ETHERTYPE_STP
198 #define ETHERTYPE_STP           0x8181  /* STP, HIPPI-ST */
199 #endif
200
201 #ifndef ETHERTYPE_ISMP
202 #define ETHERTYPE_ISMP          0x81fd  /* Cabletron Interswitch Message Protocol */
203 #endif
204
205 #ifndef ETHERTYPE_ISMP_TBFLOOD
206 #define ETHERTYPE_ISMP_TBFLOOD  0x81ff  /* Cabletron Interswitch Message Protocol */
207 #endif
208
209 #ifndef ETHERTYPE_IPv6
210 #define ETHERTYPE_IPv6          0x86dd
211 #endif
212
213 #ifndef ETHERTYPE_WLCCP
214 #define ETHERTYPE_WLCCP         0x872d  /* Cisco Wireless Lan Context Control Protocol */
215 #endif
216
217 #ifndef ETHERTYPE_MAC_CONTROL
218 #define ETHERTYPE_MAC_CONTROL   0x8808
219 #endif
220
221 #ifndef ETHERTYPE_SLOW_PROTOCOLS
222 #define ETHERTYPE_SLOW_PROTOCOLS        0x8809
223 #endif
224
225 #ifndef ETHERTYPE_PPP
226 #define ETHERTYPE_PPP           0x880b  /* no, this is not PPPoE */
227 #endif
228
229 #ifndef ETHERTYPE_COBRANET
230 #define ETHERTYPE_COBRANET      0x8819  /* Cirrus cobranet */
231 #endif
232
233 #ifndef ETHERTYPE_MPLS
234 #define ETHERTYPE_MPLS          0x8847  /* MPLS unicast packet */
235 #endif
236
237 #ifndef ETHERTYPE_MPLS_MULTI
238 #define ETHERTYPE_MPLS_MULTI    0x8848  /* MPLS multicast packet */
239 #endif
240
241 #ifndef ETHERTYPE_FOUNDRY
242 #define ETHERTYPE_FOUNDRY       0x885a  /* Some Foundry proprietary protocol */
243 #endif
244
245 #ifndef ETHERTYPE_PPPOED
246 #define ETHERTYPE_PPPOED        0x8863  /* PPPoE Discovery Protocol */
247 #endif
248
249 #ifndef ETHERTYPE_PPPOES
250 #define ETHERTYPE_PPPOES        0x8864  /* PPPoE Session Protocol */
251 #endif
252
253 #ifndef ETHERTYPE_INTEL_ANS
254 #define ETHERTYPE_INTEL_ANS     0x886d  /* Intel ANS (NIC teaming) http://www.intel.com/support/network/adapter/ans/probes.htm */
255 #endif
256
257 #ifndef ETHERTYPE_MS_NLB_HEARTBEAT
258 #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 */
259 #endif
260
261 #ifndef ETHERTYPE_HOMEPLUG
262 #define ETHERTYPE_HOMEPLUG    0x887B  /* IEEE assigned Ethertype */
263 #endif
264
265 #ifndef ETHERTYPE_CDMA2000_A10_UBS
266 #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 */
267 #endif
268
269 #ifndef ETHERTYPE_EAPOL
270 #define ETHERTYPE_EAPOL         0x888e  /* 802.1x Authentication */
271 #endif
272
273 #ifndef ETHERTYPE_PROFINET
274 #define ETHERTYPE_PROFINET      0x8892  /* PROFIBUS PROFINET protocol */
275 #endif
276
277 #ifndef ETHERTYPE_HYPERSCSI
278 #define ETHERTYPE_HYPERSCSI     0x889A  /* HyperSCSI */
279 #endif
280
281 #ifndef ETHERTYPE_CSM_ENCAPS
282 #define ETHERTYPE_CSM_ENCAPS    0x889B /* Mindspeed Technologies www.mindspeed.com */
283 #endif
284
285 #ifndef ETHERTYPE_TELKONET
286 #define ETHERTYPE_TELKONET      0x88A1 /* Telkonet powerline ethernet */
287 #endif
288
289 #ifndef ETHERTYPE_AOE
290 #define ETHERTYPE_AOE           0x88A2
291 #endif
292
293 #ifndef ETHERTYPE_ECATF
294 #define ETHERTYPE_ECATF 0x88A4 /* Ethernet type for EtherCAT frames */
295 #endif
296
297 #ifndef ETHERTYPE_IEEE_802_1AD
298 #define ETHERTYPE_IEEE_802_1AD  0x88A8 /* IEEE 802.1ad Provider Bridge, Q-in-Q */
299 #endif
300
301 #ifndef ETHERTYPE_EPL_V2
302 #define ETHERTYPE_EPL_V2        0x88AB
303 #endif
304
305 #ifndef ETHERTYPE_BRDWALK
306 #define ETHERTYPE_BRDWALK       0x88AE
307 #endif
308
309 #ifndef ETHERTYPE_IEEE802_OUI_EXTENDED
310 #define ETHERTYPE_IEEE802_OUI_EXTENDED 0x88B7   /* IEEE 802a OUI Extended Ethertype */
311 #endif
312
313 #ifndef ETHERTYPE_IEC61850_GOOSE
314 #define ETHERTYPE_IEC61850_GOOSE        0x88b8  /* IEC 61850 is a global standard for the use in utility communication,*/
315 #endif                                          /* in particular for the information exchange between IED's in a power */
316                                                 /* transmission or distribution substation. */
317                                                 /*  There are three types of application services
318                                                     that use a specific EtherType. GOOSE uses
319                                                     EtherType field 88b8, GSE management services
320                                                     uses EtherType field 88b9. These two protocols
321                                                     are defined in IEC 61850-8-1. SV (Sampled
322                                                     Value Transmission) uses EtherType field
323                                                     88ba; the protocol is defined in IEC 61850-9-1
324                                                     and IEC 61850-9-2. */
325
326 #ifndef ETHERTYPE_IEC61850_GSE
327 #define ETHERTYPE_IEC61850_GSE          0x88b9  /* IEC 61850 is a global standard for the use in utility communication,*/
328 #endif                                          /* in particular for the information exchange between IED's in a power */
329
330 #ifndef ETHERTYPE_IEC61850_SV
331 #define ETHERTYPE_IEC61850_SV           0x88ba  /* IEC 61850 is a global standard for the use in utility communication,*/
332 #endif                                          /* in particular for the information exchange between IED's in a power */
333
334 #ifndef ETHERTYPE_TIPC
335 #define ETHERTYPE_TIPC  0x88ca  /* TIPC  (Transparent Inter Process Communication, */
336 #endif                          /* http://tipc.sourceforge.net/) Ericsson Research Canada Inc */
337
338 #ifndef ETHERTYPE_RSN_PREAUTH
339 #define ETHERTYPE_RSN_PREAUTH   0x88c7  /* 802.11i Pre-Authentication */
340 #endif
341
342 #ifndef ETHERTYPE_LLDP
343 #define ETHERTYPE_LLDP          0x88cc  /* IEEE 802.1AB Link Layer Discovery Protocol (LLDP) */
344 #endif
345
346 #ifndef ETHERTYPE_SERCOS
347 #define ETHERTYPE_SERCOS        0x88cd  /* SERCOS interface real-time protocol for motion control */
348 #endif
349
350 #ifndef ETHERTYPE_3GPP2
351 #define ETHERTYPE_3GPP2         0x88d2  /* This will be used in a revision of the Interoperabi */
352 #endif                                  /* Specification (IOS) for cdma2000 Access Network Interfaces (document numbers A.S0011-B */
353                                         /* through A.S0017-B v1.0). This document already uses the Ether type 8881 */
354
355 #ifndef ETHERTYPE_LLTD
356 #define ETHERTYPE_LLTD                  0x88d9  /* Link Layer Topology Discovery (LLTD) */
357 #endif
358
359 #ifndef ETHERTYPE_WSMP                                  /* Wireless Access in a Vehicle Environment */
360 #define ETHERTYPE_WSMP                  0x88dc  /*(WAVE) Short Message Protocol (WSM) as defined */
361 #endif                                                                  /* in IEEE P1609.3. */
362
363 #ifndef ETHERTYPE_MRP
364 #define ETHERTYPE_MRP           0x88e3  /* IEC 61158-6-10 Media Redundancy Protocol (MRP) */
365 #endif
366
367 #ifndef ETHERTYPE_IEEE_802_1AH
368 #define ETHERTYPE_IEEE_802_1AH  0x88E7  /* IEEE 802.1ah Provider Backbone Bridge Mac-in-Mac */
369 #endif
370
371 #ifndef ETHERTYPE_PTP
372 #define ETHERTYPE_PTP           0x88F7  /* IEEE1588v2 (PTPv2) over Ethernet */
373 #endif                                  /* in particular for the information exchange between IED's in a power */
374                                         /* transmission or distribution substation. */
375                                         /*  There are three types of application services */
376
377 #ifndef ETHERTYPE_PRP
378 #define ETHERTYPE_PRP           0x88FB  /* Parallel Redundancy Protocol (IEC62439 Chapter 6) */
379 #endif
380
381 #ifndef ETHERTYPE_CFM
382 #define ETHERTYPE_CFM           0x8902  /* IEEE 802.1ag Connectivity Fault Management */
383 #endif                                                          /* (CFM) protocol. */
384
385 #ifndef ETHERTYPE_FCOE
386 #define ETHERTYPE_FCOE          0x8906  /* Fibre Channel over Ethernet */
387 #endif
388
389 #ifndef ETHERTYPE_FIP
390 #define ETHERTYPE_FIP           0x8914  /* FCoE Initialization Protocol */
391 #endif
392
393 #ifndef ETHERTYPE_TTE_PCF
394 #define ETHERTYPE_TTE_PCF       0x891d  /* TTEthernet Protocol Control Frame */
395 #endif
396
397 #ifndef ETHERTYPE_LOOP
398 #define ETHERTYPE_LOOP          0x9000  /* used for layer 2 testing (do i see my own frames on the wire) */
399 #endif
400
401 #ifndef ETHERTYPE_RTMAC
402 #define ETHERTYPE_RTMAC         0x9021  /* RTnet: Real-Time Media Access Control */
403 #endif
404
405 #ifndef ETHERTYPE_RTCFG
406 #define ETHERTYPE_RTCFG         0x9022  /* RTnet: Real-Time Configuration Protocol */
407 #endif
408
409 #ifndef ETHERTYPE_LLT
410 #define ETHERTYPE_LLT           0xCAFE /* Veritas Low Latency Transport (not officially registered) */
411 #endif
412
413 #ifndef ETHERTYPE_FCFT
414 /* type used to transport FC frames+MDS hdr internal to Cisco's MDS switch */
415 #define ETHERTYPE_FCFT          0xFCFC
416 #endif
417
418 extern const value_string etype_vals[];
419
420 #endif /* etypes.h */