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