]> The Tcpdump Group git mirrors - tcpdump/blobdiff - ethertype.h
CI: Add warning exemptions for Sun C (suncc-5.14) on Solaris 10
[tcpdump] / ethertype.h
index fcfd3ec40a5bc991a14c0dd29d84403adfc9194b..8b71b3025523b0f04eac8f4d5a40a958bf302ca5 100644 (file)
  * 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.16 2001-06-21 17:56:02 itojun 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.
  *
  * <netinet/if_ether.h> 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,8 +81,8 @@
 #ifndef ETHERTYPE_SCA
 #define ETHERTYPE_SCA          0x6007
 #endif
-#ifndef ETHERTYPE_REVARP
-#define ETHERTYPE_REVARP       0x8035
+#ifndef ETHERTYPE_TEB
+#define ETHERTYPE_TEB          0x6558
 #endif
 #ifndef        ETHERTYPE_LANBRIDGE
 #define        ETHERTYPE_LANBRIDGE     0x8038
 #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
 #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
 #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 */
+#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
+
+extern const struct tok ethertype_values[];