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