From Harald Welte:
[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  * less than or equal to it are lengths.
31  */
32 #define IEEE_802_3_MAX_LEN              1500
33
34 /* 
35  * Minimum length of an Ethernet II frame;  Ethernet type/length values
36  * greater than or equal to it are types.
37  */
38 #define ETHERNET_II_MIN_LEN             1536
39
40 #ifndef ETHERTYPE_UNK
41 #define ETHERTYPE_UNK                   0x0000
42 #endif
43
44 /* Sources:
45  * http://www.iana.org/assignments/ethernet-numbers
46  * TCP/IP Illustrated, Volume 1
47  * RFCs 894, 1042, 826
48  * tcpdump's ethertype.h
49  * http://www.cavebear.com/CaveBear/Ethernet/
50  * http://standards.ieee.org/regauth/ethertype/type-pub.html
51  * http://standards.ieee.org/regauth/ethertype/eth.txt
52  * (The first of the two IEEE URLs is the one that the "EtherType Field
53  * Public Assignments" link on the page at
54  *
55  *      http://standards.ieee.org/regauth/ethertype/index.shtml
56  *
57  * goes to, but it is redirected to the second of those - i.e., both
58  * of the IEEE URLs ultimately go to the same page.)
59  */
60
61 /* Order these values by number */
62
63 #ifndef ETHERTYPE_XNS_IDP
64 #define ETHERTYPE_XNS_IDP               0x0600
65 #endif
66
67 #ifndef ETHERTYPE_IP
68 #define ETHERTYPE_IP                    0x0800
69 #endif
70
71 #ifndef ETHERTYPE_X25L3
72 #define ETHERTYPE_X25L3                 0x0805
73 #endif
74
75 #ifndef ETHERTYPE_ARP
76 #define ETHERTYPE_ARP                   0x0806
77 #endif
78
79 #ifndef ETHERTYPE_WOL
80 #define ETHERTYPE_WOL                   0x0842  /* Wake on LAN.  Not offically registered. */
81 #endif
82
83 #ifndef ETHERTYPE_WMX_M2M
84 #define ETHERTYPE_WMX_M2M               0x08F0
85 #endif
86
87 #ifndef ETHERTYPE_VINES_IP
88 #define ETHERTYPE_VINES_IP              0x0BAD
89 #endif
90
91 #ifndef ETHERTYPE_VINES_ECHO
92 #define ETHERTYPE_VINES_ECHO            0x0BAF
93 #endif
94
95 #ifndef ETHERTYPE_TRAIN
96 #define ETHERTYPE_TRAIN                 0x1984  /* Created by Microsoft Network Monitor as a summary packet */
97 #endif
98
99 #ifndef ETHERTYPE_CGMP
100 #define ETHERTYPE_CGMP                  0x2001
101 #endif
102
103 #ifndef ETHERTYPE_GIGAMON
104 #define ETHERTYPE_GIGAMON               0x22E5 /* Gigamon Header */
105 #endif
106
107 #ifndef ETHERTYPE_MSRP
108 #define ETHERTYPE_MSRP                  0x22EA
109 #endif
110
111 #ifndef ETHERTYPE_AVBTP
112 #define ETHERTYPE_AVBTP                 0x22F0
113 #endif
114
115 #ifndef ETHERTYPE_ROHC                                  /* ROHC (Robust Header Compression) is an IP header compression protocol specified in */
116 #define ETHERTYPE_ROHC                  0x22F1  /* IETF RFC 3095 "RObust Header Compression (ROHC): Framework and four profiles: RTP, */
117 #endif                                                                  /* UDP, ESP, and uncompressed". The specification is available at
118                                                                                  * http://www.ietf.org/rfc/rfc3095.txt.
119                                                                                  */
120
121 #ifndef ETHERTYPE_TRILL                                 /* Internet Engineering Task Force */
122 #define ETHERTYPE_TRILL                 0x22F3
123 #endif
124
125 #ifndef ETHERTYPE_L2ISIS                                /* Internet Engineering Task Force */
126 #define ETHERTYPE_L2ISIS                0x22F4
127 #endif
128
129 #ifndef ETHERTYPE_CENTRINO_PROMISC
130 #define ETHERTYPE_CENTRINO_PROMISC      0x2452  /* Intel Centrino promiscuous packets */
131 #endif
132
133 #ifndef ETHERTYPE_3C_NBP_DGRAM
134 #define ETHERTYPE_3C_NBP_DGRAM          0x3C07
135 #endif
136
137 #ifndef ETHERTYPE_EPL_V1
138 #define ETHERTYPE_EPL_V1                0x3E3F
139 #endif
140
141 #ifndef ETHERTYPE_DEC
142 #define ETHERTYPE_DEC                   0x6000
143 #endif
144
145 #ifndef ETHERTYPE_DNA_DL
146 #define ETHERTYPE_DNA_DL                0x6001
147 #endif
148
149 #ifndef ETHERTYPE_DNA_RC
150 #define ETHERTYPE_DNA_RC                0x6002
151 #endif
152
153 #ifndef ETHERTYPE_DNA_RT
154 #define ETHERTYPE_DNA_RT                0x6003
155 #endif
156
157 #ifndef ETHERTYPE_LAT
158 #define ETHERTYPE_LAT                   0x6004
159 #endif
160
161 #ifndef ETHERTYPE_DEC_DIAG
162 #define ETHERTYPE_DEC_DIAG              0x6005
163 #endif
164
165 #ifndef ETHERTYPE_DEC_CUST
166 #define ETHERTYPE_DEC_CUST              0x6006
167 #endif
168
169 #ifndef ETHERTYPE_DEC_SCA
170 #define ETHERTYPE_DEC_SCA               0x6007
171 #endif
172
173 #ifndef ETHERTYPE_ETHBRIDGE
174 #define ETHERTYPE_ETHBRIDGE             0x6558  /* transparent Ethernet bridging [RFC1701]*/
175 #endif
176
177 #ifndef ETHERTYPE_RAW_FR
178 #define ETHERTYPE_RAW_FR                0x6559  /* Raw Frame Relay        [RFC1701] */
179 #endif
180
181 #ifndef ETHERTYPE_REVARP
182 #define ETHERTYPE_REVARP                0x8035
183 #endif
184
185 #ifndef ETHERTYPE_DEC_LB
186 #define ETHERTYPE_DEC_LB                0x8038
187 #endif
188
189 #ifndef ETHERTYPE_DEC_LAST
190 #define ETHERTYPE_DEC_LAST              0x8041  /* DEC Local Area Systems Transport */
191 #endif
192
193 #ifndef ETHERTYPE_ATALK
194 #define ETHERTYPE_ATALK                 0x809B
195 #endif
196
197 #ifndef ETHERTYPE_SNA
198 #define ETHERTYPE_SNA                   0x80D5
199 #endif
200
201 #ifndef ETHERTYPE_DLR
202 #define ETHERTYPE_DLR                   0x80E1  /* Allen-Bradley Company, Inc., EtherNet/IP Device Level Ring */
203 #endif
204
205 #ifndef ETHERTYPE_AARP
206 #define ETHERTYPE_AARP                  0x80F3
207 #endif
208
209 #ifndef ETHERTYPE_VLAN
210 #define ETHERTYPE_VLAN                  0x8100  /* 802.1Q Virtual LAN */
211 #endif
212
213 #ifndef ETHERTYPE_NSRP
214 #define ETHERTYPE_NSRP                  0x8133
215 #endif
216
217 #ifndef ETHERTYPE_IPX
218 #define ETHERTYPE_IPX                   0x8137
219 #endif
220
221 #ifndef ETHERTYPE_SNMP
222 #define ETHERTYPE_SNMP                  0x814C  /* SNMP over Ethernet, RFC 1089 */
223 #endif
224
225 #ifndef ETHERTYPE_WCP
226 #define ETHERTYPE_WCP                   0x80FF  /* Wellfleet Compression Protocol */
227 #endif
228
229 #ifndef ETHERTYPE_STP
230 #define ETHERTYPE_STP                   0x8181  /* STP, HIPPI-ST */
231 #endif
232
233 #ifndef ETHERTYPE_ISMP
234 #define ETHERTYPE_ISMP                  0x81FD  /* Cabletron Interswitch Message Protocol */
235 #endif
236
237 #ifndef ETHERTYPE_ISMP_TBFLOOD
238 #define ETHERTYPE_ISMP_TBFLOOD          0x81FF  /* Cabletron Interswitch Message Protocol */
239 #endif
240
241 #ifndef ETHERTYPE_QNX_QNET6
242 #define ETHERTYPE_QNX_QNET6             0x8204  /* 0x8204 QNX QNET/LWL4 for QNX6 OS; 0x8203 for QNX4 OS QNET */
243 #endif
244
245 #ifndef ETHERTYPE_IPv6
246 #define ETHERTYPE_IPv6                  0x86DD
247 #endif
248
249 #ifndef ETHERTYPE_WLCCP
250 #define ETHERTYPE_WLCCP                 0x872D  /* Cisco Wireless Lan Context Control Protocol */
251 #endif
252
253 #ifndef ETHERTYPE_MAC_CONTROL
254 #define ETHERTYPE_MAC_CONTROL           0x8808
255 #endif
256
257 #ifndef ETHERTYPE_SLOW_PROTOCOLS
258 #define ETHERTYPE_SLOW_PROTOCOLS        0x8809
259 #endif
260
261 #ifndef ETHERTYPE_PPP
262 #define ETHERTYPE_PPP                   0x880B  /* no, this is not PPPoE */
263 #endif
264
265 #ifndef ETHERTYPE_COBRANET
266 #define ETHERTYPE_COBRANET              0x8819  /* Cirrus cobranet */
267 #endif
268
269 #ifndef ETHERTYPE_MPLS
270 #define ETHERTYPE_MPLS                  0x8847  /* MPLS unicast packet */
271 #endif
272
273 #ifndef ETHERTYPE_MPLS_MULTI
274 #define ETHERTYPE_MPLS_MULTI            0x8848  /* MPLS multicast packet */
275 #endif
276
277 #ifndef ETHERTYPE_FOUNDRY
278 #define ETHERTYPE_FOUNDRY               0x885A  /* Some Foundry proprietary protocol */
279 #endif
280
281 #ifndef ETHERTYPE_PPPOED
282 #define ETHERTYPE_PPPOED                0x8863  /* PPPoE Discovery Protocol */
283 #endif
284
285 #ifndef ETHERTYPE_PPPOES
286 #define ETHERTYPE_PPPOES                0x8864  /* PPPoE Session Protocol */
287 #endif
288
289 #ifndef ETHERTYPE_INTEL_ANS
290 #define ETHERTYPE_INTEL_ANS             0x886D  /* Intel ANS (NIC teaming) http://www.intel.com/support/network/adapter/ans/probes.htm */
291 #endif
292
293 #ifndef ETHERTYPE_MS_NLB_HEARTBEAT
294 #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 */
295 #endif
296
297 #ifndef ETHERTYPE_JUMBO_LLC
298 #define ETHERTYPE_JUMBO_LLC             0x8870  /* 802.2 jumbo frames http://tools.ietf.org/html/draft-ietf-isis-ext-eth */
299 #endif
300
301 #ifndef ETHERTYPE_HOMEPLUG
302 #define ETHERTYPE_HOMEPLUG              0x887B  /* IEEE assigned Ethertype */
303 #endif
304
305 #ifndef ETHERTYPE_CDMA2000_A10_UBS
306 #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 */
307 #endif
308
309 #ifndef ETHERTYPE_EAPOL
310 #define ETHERTYPE_EAPOL                 0x888E  /* 802.1x Authentication */
311 #endif
312
313 #ifndef ETHERTYPE_PROFINET
314 #define ETHERTYPE_PROFINET              0x8892  /* PROFIBUS PROFINET protocol */
315 #endif
316
317 #ifndef ETHERTYPE_HYPERSCSI
318 #define ETHERTYPE_HYPERSCSI             0x889A  /* HyperSCSI */
319 #endif
320
321 #ifndef ETHERTYPE_CSM_ENCAPS
322 #define ETHERTYPE_CSM_ENCAPS            0x889B  /* Mindspeed Technologies www.mindspeed.com */
323 #endif
324
325 #ifndef ETHERTYPE_TELKONET
326 #define ETHERTYPE_TELKONET              0x88A1  /* Telkonet powerline ethernet */
327 #endif
328
329 #ifndef ETHERTYPE_AOE
330 #define ETHERTYPE_AOE                   0x88A2
331 #endif
332
333 #ifndef ETHERTYPE_ECATF
334 #define ETHERTYPE_ECATF                 0x88A4  /* Ethernet type for EtherCAT frames */
335 #endif
336
337 #ifndef ETHERTYPE_IEEE_802_1AD
338 #define ETHERTYPE_IEEE_802_1AD          0x88A8  /* IEEE 802.1ad Provider Bridge, Q-in-Q */
339 #endif
340
341 #ifndef ETHERTYPE_EPL_V2
342 #define ETHERTYPE_EPL_V2                0x88AB  /* communication profile for Real-Time Ethernet */
343 #endif
344
345 #ifndef ETHERTYPE_XIMETA
346 #define ETHERTYPE_XIMETA                0x88AD  /* XiMeta Technology Americas Inc. proprietary communication protocol */
347 #endif
348
349 #ifndef ETHERTYPE_BRDWALK
350 #define ETHERTYPE_BRDWALK               0x88AE
351 #endif
352
353 #ifndef ETHERTYPE_WAI
354 #define ETHERTYPE_WAI                   0x88B4  /*  Instant Wireless Network Communications, Co. Ltd. */
355 #endif                                          /*  WAI is a new authentication protocol that
356                                                     will be used to access authentication in
357                                                     IP based networks. This protocol establishes
358                                                     a logic channel between a station and access
359                                                     equipment by using an EtherType Field to
360                                                     accomplish authentication. */
361
362
363 #ifndef ETHERTYPE_IEEE802_OUI_EXTENDED
364 #define ETHERTYPE_IEEE802_OUI_EXTENDED  0x88B7  /* IEEE 802a OUI Extended Ethertype */
365 #endif
366
367 #ifndef ETHERTYPE_IEC61850_GOOSE
368 #define ETHERTYPE_IEC61850_GOOSE        0x88B8  /* IEC 61850 is a global standard for the use in utility communication,*/
369 #endif                                          /* in particular for the information exchange between IED's in a power */
370                                                 /* transmission or distribution substation. */
371                                                 /*  There are three types of application services
372                                                     that use a specific EtherType. GOOSE uses
373                                                     EtherType field 88b8, GSE management services
374                                                     uses EtherType field 88b9. These two protocols
375                                                     are defined in IEC 61850-8-1. SV (Sampled
376                                                     Value Transmission) uses EtherType field
377                                                     88ba; the protocol is defined in IEC 61850-9-1
378                                                     and IEC 61850-9-2. */
379
380 #ifndef ETHERTYPE_IEC61850_GSE
381 #define ETHERTYPE_IEC61850_GSE          0x88B9  /* IEC 61850 is a global standard for the use in utility communication,*/
382 #endif                                          /* in particular for the information exchange between IED's in a power */
383
384 #ifndef ETHERTYPE_IEC61850_SV
385 #define ETHERTYPE_IEC61850_SV           0x88BA  /* IEC 61850 is a global standard for the use in utility communication,*/
386 #endif                                          /* in particular for the information exchange between IED's in a power */
387
388 #ifndef ETHERTYPE_TIPC
389 #define ETHERTYPE_TIPC                  0x88CA  /* TIPC  (Transparent Inter Process Communication, */
390 #endif                                          /* http://tipc.sourceforge.net/) Ericsson Research Canada Inc */
391
392 #ifndef ETHERTYPE_RSN_PREAUTH
393 #define ETHERTYPE_RSN_PREAUTH           0x88C7  /* 802.11i Pre-Authentication */
394 #endif
395
396 #ifndef ETHERTYPE_LLDP
397 #define ETHERTYPE_LLDP                  0x88CC  /* IEEE 802.1AB Link Layer Discovery Protocol (LLDP) */
398 #endif
399
400 #ifndef ETHERTYPE_SERCOS
401 #define ETHERTYPE_SERCOS                0x88CD  /* SERCOS interface real-time protocol for motion control */
402 #endif
403
404 #ifndef ETHERTYPE_3GPP2
405 #define ETHERTYPE_3GPP2                 0x88D2  /* This will be used in a revision of the Interoperabi */
406 #endif                                          /* Specification (IOS) for cdma2000 Access Network Interfaces (document numbers A.S0011-B */
407                                                 /* through A.S0017-B v1.0). This document already uses the Ether type 8881 */
408
409 #ifndef ETHERTYPE_LLTD
410 #define ETHERTYPE_LLTD                  0x88D9  /* Link Layer Topology Discovery (LLTD) */
411 #endif
412
413 #ifndef ETHERTYPE_WSMP                          /* Wireless Access in a Vehicle Environment */
414 #define ETHERTYPE_WSMP                  0x88DC  /* (WAVE) Short Message Protocol (WSM) as defined */
415 #endif                                          /* in IEEE P1609.3. */
416
417 #ifndef ETHERTYPE_VMLAB
418 #define ETHERTYPE_VMLAB                 0x88DE  /* VMware LabManager (used to be Akimbi Systems) */
419 #endif
420
421 #ifndef ETHERTYPE_HOMEPLUG_AV
422 #define ETHERTYPE_HOMEPLUG_AV           0x88E1  /* HomePlug AV */
423 #endif
424
425 #ifndef ETHERTYPE_MRP
426 #define ETHERTYPE_MRP                   0x88E3  /* IEC 61158-6-10 Media Redundancy Protocol (MRP) */
427 #endif
428
429 #ifndef ETHERTYPE_IEEE_802_1AH
430 #define ETHERTYPE_IEEE_802_1AH          0x88E7  /* IEEE 802.1ah Provider Backbone Bridge Mac-in-Mac */
431 #endif
432
433 #ifndef ETHERTYPE_MVRP
434 #define ETHERTYPE_MVRP                  0x88F5  /* IEEE 802.1ak Multiple VLAN Registration Protocol */
435 #endif
436
437 #ifndef ETHERTYPE_MMRP
438 #define ETHERTYPE_MMRP                  0x88F6  /* IEEE 802.1ak Multiple MAC Registration Protocol */
439 #endif
440
441 #ifndef ETHERTYPE_PTP
442 #define ETHERTYPE_PTP                   0x88F7  /* IEEE1588v2 (PTPv2) over Ethernet */
443 #endif                                                                  /* in particular for the information exchange between IED's in a power */
444                                                                                 /* transmission or distribution substation. */
445                                                                                 /*  There are three types of application services */
446
447 #ifndef ETHERTYPE_PRP
448 #define ETHERTYPE_PRP                   0x88FB  /* Parallel Redundancy Protocol (IEC62439 Part 3) */
449 #endif
450
451 #ifndef ETHERTYPE_FLIP
452 #define ETHERTYPE_FLIP                  0x8901  /* Nokia Siemens Networks Flow Layer Internal Protocol */
453 #endif
454
455 #ifndef ETHERTYPE_CFM
456 #define ETHERTYPE_CFM                   0x8902  /* IEEE 802.1ag Connectivity Fault Management(CFM) protocol */
457 #endif
458
459 #ifndef ETHERTYPE_DCE
460 #define ETHERTYPE_DCE                   0x8903  /* Cisco Systems Inc DCE */
461 #endif
462
463 #ifndef ETHERTYPE_FCOE
464 #define ETHERTYPE_FCOE                  0x8906  /* Fibre Channel over Ethernet */
465 #endif
466
467 #ifndef ETHERTYPE_IEEE80211_DATA_ENCAP
468 #define ETHERTYPE_IEEE80211_DATA_ENCAP  0x890d  /* IEEE 802.11 data encapsulation */
469 #endif
470
471 #ifndef ETHERTYPE_LINX
472 #define ETHERTYPE_LINX                  0x8911  /* ENEA LINX IPC protocol over Ethernet */
473 #endif
474
475 #ifndef ETHERTYPE_FIP
476 #define ETHERTYPE_FIP                   0x8914  /* FCoE Initialization Protocol */
477 #endif
478
479 #ifndef ETHERTYPE_TTE_PCF
480 #define ETHERTYPE_TTE_PCF               0x891D  /* TTEthernet Protocol Control Frame */
481 #endif
482
483 #ifndef ETHERTYPE_HSR
484 #define ETHERTYPE_HSR                   0x892F  /* High-availability Seamless Redundancy (IEC62439 Part 3) */
485 #endif
486
487 #ifndef ETHERTYPE_LOOP
488 #define ETHERTYPE_LOOP                  0x9000  /* used for layer 2 testing (do i see my own frames on the wire) */
489 #endif
490
491 #ifndef ETHERTYPE_RTMAC
492 #define ETHERTYPE_RTMAC                 0x9021  /* RTnet: Real-Time Media Access Control */
493 #endif
494
495 #ifndef ETHERTYPE_RTCFG
496 #define ETHERTYPE_RTCFG                 0x9022  /* RTnet: Real-Time Configuration Protocol */
497 #endif
498
499 #ifndef ETHERTYPE_LLT
500 #define ETHERTYPE_LLT                   0xCAFE  /* Veritas Low Latency Transport (not officially registered) */
501 #endif
502
503 #ifndef ETHERTYPE_TDMOE
504 #define ETHERTYPE_TDMOE                 0xD00D  /* Digium TDMoE packets (not officially registered) */
505 #endif
506
507 #ifndef ETHERTYPE_FCFT
508 #define ETHERTYPE_FCFT                  0xFCFC  /* used to transport FC frames+MDS hdr internal to Cisco's MDS switch */
509 #endif
510
511 #ifndef ETHERTYPE_ROCE
512 #define ETHERTYPE_ROCE          0x8915 /* Infiniband RDMA over Converged Ethernet */
513 #endif
514
515 WS_VAR_IMPORT const value_string etype_vals[];
516
517 #endif /* etypes.h */