Ethereal-dev: [Ethereal-dev] Ethereal patch for IEEE 802.11i/RSN pre-authentication ethertype

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Jouni Malinen <jkmaline@xxxxxxxxx>
Date: Sat, 3 Apr 2004 20:43:53 -0800
IEEE 802.11i/RSN uses a new ethertype for pre-authentication. Otherwise,
these packets are identical to IEEE 802.1X/EAPOL packets. This patch
adds the new ethertype and uses the existing EAPOL dissector to parse
pre-authentication packets.

-- 
Jouni Malinen                                            PGP id EFC895FA
Index: etypes.h
===================================================================
RCS file: /cvsroot/ethereal/etypes.h,v
retrieving revision 1.38
diff -u -p -r1.38 etypes.h
--- etypes.h	28 Feb 2004 22:56:35 -0000	1.38
+++ etypes.h	4 Apr 2004 04:39:51 -0000
@@ -212,6 +212,10 @@
 #define ETHERTYPE_BRDWALK       0x88AE
 #endif
 
+#ifndef ETHERTYPE_RSN_PREAUTH
+#define ETHERTYPE_RSN_PREAUTH	0x88c7  /* 802.11i Pre-Authentication */
+#endif
+
 #ifndef ETHERTYPE_LOOP
 #define ETHERTYPE_LOOP		0x9000 	/* used for layer 2 testing (do i see my own frames on the wire) */
 #endif
Index: packet-eapol.c
===================================================================
RCS file: /cvsroot/ethereal/packet-eapol.c,v
retrieving revision 1.18
diff -u -p -r1.18 packet-eapol.c
--- packet-eapol.c	30 Mar 2004 19:15:24 -0000	1.18
+++ packet-eapol.c	4 Apr 2004 04:39:53 -0000
@@ -427,4 +427,5 @@ proto_reg_handoff_eapol(void)
 
   eapol_handle = create_dissector_handle(dissect_eapol, proto_eapol);
   dissector_add("ethertype", ETHERTYPE_EAPOL, eapol_handle);
+  dissector_add("ethertype", ETHERTYPE_RSN_PREAUTH, eapol_handle);
 }
Index: packet-ethertype.c
===================================================================
RCS file: /cvsroot/ethereal/packet-ethertype.c,v
retrieving revision 1.45
diff -u -p -r1.45 packet-ethertype.c
--- packet-ethertype.c	21 Feb 2004 05:12:44 -0000	1.45
+++ packet-ethertype.c	4 Apr 2004 04:39:53 -0000
@@ -69,6 +69,7 @@ const value_string etype_vals[] = {
     {ETHERTYPE_MS_NLB_HEARTBEAT,	"MS NLB heartbeat"	},
     {ETHERTYPE_VLAN,		"802.1Q Virtual LAN"		},
     {ETHERTYPE_EAPOL,		"802.1X Authentication"         },
+    {ETHERTYPE_RSN_PREAUTH,	"802.11i Pre-Authentication"    },
     {ETHERTYPE_MPLS,		"MPLS label switched packet"	},
     {ETHERTYPE_MPLS_MULTI,	"MPLS multicast label switched packet" },
     {ETHERTYPE_3C_NBP_DGRAM,	"3Com NBP Datagram"		},