X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/8027f41d715d93872a3d3f42316ad10edb6f21cc..a63600a1fc28dbc7ae7ce9f996829c49a25fb33c:/ethertype.h diff --git a/ethertype.h b/ethertype.h index 15bfb83d..8b71b302 100644 --- a/ethertype.h +++ b/ethertype.h @@ -17,10 +17,15 @@ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * @(#) $Header: /tcpdump/master/tcpdump/ethertype.h,v 1.19 2003-05-28 08:59:14 hannes Exp $ (LBL) */ +/* + * Maximum length of the length field in an Ethernet header; any value + * greater than this is not a length value, so it's either an Ethernet + * type or an invalid value. + */ +#define MAX_ETHERNET_LENGTH_VAL 1500 + /* * Ethernet types. * @@ -33,6 +38,13 @@ * if all it needs are ETHERTYPE_ values. */ +#ifndef ETHERTYPE_LEN +#define ETHERTYPE_LEN 2 +#endif + +#ifndef ETHERTYPE_GRE_ISO +#define ETHERTYPE_GRE_ISO 0x00FE /* not really an ethertype only used in GRE */ +#endif #ifndef ETHERTYPE_PUP #define ETHERTYPE_PUP 0x0200 /* PUP protocol */ #endif @@ -69,6 +81,9 @@ #ifndef ETHERTYPE_SCA #define ETHERTYPE_SCA 0x6007 #endif +#ifndef ETHERTYPE_TEB +#define ETHERTYPE_TEB 0x6558 +#endif #ifndef ETHERTYPE_LANBRIDGE #define ETHERTYPE_LANBRIDGE 0x8038 #endif @@ -90,9 +105,29 @@ #ifndef ETHERTYPE_AARP #define ETHERTYPE_AARP 0x80f3 #endif +#ifndef ETHERTYPE_TIPC +#define ETHERTYPE_TIPC 0x88ca +#endif #ifndef ETHERTYPE_8021Q #define ETHERTYPE_8021Q 0x8100 #endif + +/* see: + https://en.wikipedia.org/wiki/IEEE_802.1Q + and https://en.wikipedia.org/wiki/QinQ +*/ +#ifndef ETHERTYPE_8021Q9100 +#define ETHERTYPE_8021Q9100 0x9100 +#endif +#ifndef ETHERTYPE_8021Q9200 +#define ETHERTYPE_8021Q9200 0x9200 +#endif +#ifndef ETHERTYPE_8021QinQ +#define ETHERTYPE_8021QinQ 0x88a8 +#endif +#ifndef ETHERTYPE_MACSEC +#define ETHERTYPE_MACSEC 0x88e5 +#endif #ifndef ETHERTYPE_IPX #define ETHERTYPE_IPX 0x8137 #endif @@ -102,6 +137,12 @@ #ifndef ETHERTYPE_PPP #define ETHERTYPE_PPP 0x880b #endif +#ifndef ETHERTYPE_MPCP +#define ETHERTYPE_MPCP 0x8808 +#endif +#ifndef ETHERTYPE_SLOW +#define ETHERTYPE_SLOW 0x8809 +#endif #ifndef ETHERTYPE_MPLS #define ETHERTYPE_MPLS 0x8847 #endif @@ -114,45 +155,65 @@ #ifndef ETHERTYPE_PPPOES #define ETHERTYPE_PPPOES 0x8864 #endif +#ifndef ETHERTYPE_NSH +#define ETHERTYPE_NSH 0x894F +#endif +#ifndef ETHERTYPE_PPPOED2 +#define ETHERTYPE_PPPOED2 0x3c12 +#endif +#ifndef ETHERTYPE_PPPOES2 +#define ETHERTYPE_PPPOES2 0x3c13 +#endif +#ifndef ETHERTYPE_MS_NLB_HB +#define ETHERTYPE_MS_NLB_HB 0x886f /* MS Network Load Balancing Heartbeat */ +#endif +#ifndef ETHERTYPE_JUMBO +#define ETHERTYPE_JUMBO 0x8870 +#endif +#ifndef ETHERTYPE_LLDP +#define ETHERTYPE_LLDP 0x88cc +#endif +#ifndef ETHERTYPE_EAPOL +#define ETHERTYPE_EAPOL 0x888e +#endif +#ifndef ETHERTYPE_REALTEK +#define ETHERTYPE_REALTEK 0x8899 /* Realtek layer 2 protocols and switch tags */ +#endif +#ifndef ETHERTYPE_AOE +#define ETHERTYPE_AOE 0x88a2 +#endif +#ifndef ETHERTYPE_PTP +#define ETHERTYPE_PTP 0x88f7 +#endif #ifndef ETHERTYPE_LOOPBACK #define ETHERTYPE_LOOPBACK 0x9000 #endif #ifndef ETHERTYPE_VMAN -#define ETHERTYPE_VMAN 0x9100 /* Extreme VMAN Protocol */ +#define ETHERTYPE_VMAN 0x9100 /* Extreme VMAN Protocol */ +#endif +#ifndef ETHERTYPE_CFM_OLD +#define ETHERTYPE_CFM_OLD 0xabcd /* 802.1ag depreciated */ +#endif +#ifndef ETHERTYPE_CFM +#define ETHERTYPE_CFM 0x8902 /* 802.1ag */ +#endif +#ifndef ETHERTYPE_IEEE1905_1 +#define ETHERTYPE_IEEE1905_1 0x893a /* IEEE 1905.1 */ #endif #ifndef ETHERTYPE_ISO #define ETHERTYPE_ISO 0xfefe /* nonstandard - used in Cisco HDLC encapsulation */ #endif +#ifndef ETHERTYPE_CALM_FAST +#define ETHERTYPE_CALM_FAST 0x1111 /* ISO CALM FAST */ +#endif +#ifndef ETHERTYPE_GEONET_OLD +#define ETHERTYPE_GEONET_OLD 0x0707 /* ETSI GeoNetworking (before Jan 2013) */ +#endif +#ifndef ETHERTYPE_GEONET +#define ETHERTYPE_GEONET 0x8947 /* ETSI GeoNetworking (Official IEEE registration from Jan 2013) */ +#endif +#ifndef ETHERTYPE_ARISTA +#define ETHERTYPE_ARISTA 0xd28b /* Arista Networks vendor specific EtherType */ +#endif -static const struct tok ethertype_values[] = { - { ETHERTYPE_IP, "IPv4" }, - { ETHERTYPE_MPLS, "MPLS unicast" }, - { ETHERTYPE_MPLS_MULTI, "MPLS multicast" }, - { ETHERTYPE_IPV6, "IPv6" }, - { ETHERTYPE_8021Q, "802.1Q" }, - { ETHERTYPE_VMAN, "VMAN" }, - { ETHERTYPE_PUP, "PUP" }, - { ETHERTYPE_ARP, "ARP"}, - { ETHERTYPE_REVARP , "Reverse ARP"}, - { ETHERTYPE_NS, "NS" }, - { ETHERTYPE_SPRITE, "Sprite" }, - { ETHERTYPE_TRAIL, "Trail" }, - { ETHERTYPE_MOPDL, "MOP DL" }, - { ETHERTYPE_MOPRC, "MOP RC" }, - { ETHERTYPE_DN, "DN" }, - { ETHERTYPE_LAT, "LAT" }, - { ETHERTYPE_SCA, "SCA" }, - { ETHERTYPE_LANBRIDGE, "Lanbridge" }, - { ETHERTYPE_DECDNS, "DEC DNS" }, - { ETHERTYPE_DECDTS, "DEC DTS" }, - { ETHERTYPE_VEXP, "VEXP" }, - { ETHERTYPE_VPROD, "VPROD" }, - { ETHERTYPE_ATALK, "Appletalk" }, - { ETHERTYPE_AARP, "Appletalk ARP" }, - { ETHERTYPE_IPX, "IPX" }, - { ETHERTYPE_PPP, "PPP" }, - { ETHERTYPE_PPPOED, "PPPoE D" }, - { ETHERTYPE_PPPOES, "PPPoE S" }, - { ETHERTYPE_LOOPBACK, "Loopback" }, - { 0, NULL} -}; +extern const struct tok ethertype_values[];