12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 1993, 1994, 1996
32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *	The Regents of the University of California.  All rights reserved.
42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without
62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that: (1) source code distributions
72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * retain the above copyright notice and this paragraph in its entirety, (2)
82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * distributions including binary code include the above copyright notice and
92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * this paragraph in its entirety in the documentation or other materials
102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * provided with the distribution, and (3) all advertising materials mentioning
112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * features or use of this software display the following acknowledgement:
122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ``This product includes software developed by the University of California,
132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the University nor the names of its contributors may be used to endorse
152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * or promote products derived from this software without specific prior
162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * written permission.
172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * @(#) $Header: /tcpdump/master/tcpdump/ethertype.h,v 1.24.2.1 2005/07/10 14:51:10 hannes Exp $ (LBL)
222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Ethernet types.
262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * We wrap the declarations with #ifdef, so that if a file includes
282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * <netinet/if_ether.h>, which may declare some of these, we don't
292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * get a bunch of complaints from the C compiler about redefinitions
302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * of these values.
312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * We declare all of them here so that no file has to include
332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * <netinet/if_ether.h> if all it needs are ETHERTYPE_ values.
342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_LEN
372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_LEN           2
382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_GRE_ISO
412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_GRE_ISO       0x00FE  /* not really an ethertype only used in GRE */
422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_PUP
442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_PUP		0x0200	/* PUP protocol */
452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_IP
472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_IP		0x0800	/* IP protocol */
482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_ARP
502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_ARP		0x0806	/* Addr. resolution protocol */
512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_REVARP
532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_REVARP	0x8035	/* reverse Addr. resolution protocol */
542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_NS
562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_NS		0x0600
572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_SPRITE
592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_SPRITE	0x0500
602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_TRAIL
622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_TRAIL		0x1000
632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_MOPDL
652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_MOPDL		0x6001
662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_MOPRC
682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_MOPRC		0x6002
692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_DN
712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_DN		0x6003
722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_LAT
742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_LAT		0x6004
752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_SCA
772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_SCA		0x6007
782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_LANBRIDGE
802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_LANBRIDGE	0x8038
812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_DECDNS
832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_DECDNS	0x803c
842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_DECDTS
862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_DECDTS	0x803e
872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_VEXP
892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_VEXP		0x805b
902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_VPROD
922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_VPROD		0x805c
932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_ATALK
952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_ATALK		0x809b
962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_AARP
982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_AARP		0x80f3
992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_8021Q
1012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_8021Q		0x8100
1022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_IPX
1042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_IPX		0x8137
1052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_IPV6
1072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_IPV6		0x86dd
1082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_PPP
1102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_PPP		0x880b
1112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_SLOW
1132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_SLOW		0x8809
1142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_MPLS
1162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_MPLS		0x8847
1172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_MPLS_MULTI
1192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_MPLS_MULTI	0x8848
1202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_PPPOED
1222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_PPPOED	0x8863
1232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_PPPOES
1252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_PPPOES	0x8864
1262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_JUMBO
1282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_JUMBO         0x8870
1292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef ETHERTYPE_EAPOL
1312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ETHERTYPE_EAPOL  	0x888e
1322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_LOOPBACK
1342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_LOOPBACK	0x9000
1352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_VMAN
1372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_VMAN	        0x9100 /* Extreme VMAN Protocol */
1382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef	ETHERTYPE_ISO
1402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define	ETHERTYPE_ISO           0xfefe  /* nonstandard - used in Cisco HDLC encapsulation */
1412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
1422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const struct tok ethertype_values[];
144