WPA handshake times out under Windows CE 5

Jouni Malinen j at w1.fi
Tue Feb 24 14:05:04 EST 2009


On Tue, Feb 24, 2009 at 10:30:12AM +0100, Peter Schottland wrote:

> When the supplicant has been compiled (EVC4) with debug configuration the
> handshake fails virtually always (success rate below 10%). When compiled
> with release configuration it fails much less often. But it still fails
> sometimes.

That sounds a bit odd.. Maybe some kind of timing issue in the l2_packet
thread use.

> 1235037319.000000: l2_packet_rx_thread: Read 54 byte packet
> 1235037319.000000: L2(NDISUIO): Read 54 bytes
> 1235037319.000000: RX EAPOL from 02:c8:40:39:32:f0
> 1235037319.000000: WPA: EAPOL frame too short to be a WPA EAPOL-Key (len 40,
> expecting at least 99)

> The last received packet is too short (just 54 bytes). As no other packets
> seem to arrive the handshake times out. What can be the reason? Does anyone
> on the list has observed similar problems under Windows CE?

I've never seen something like this before.. Sure, there has been issues
in trying to get the EAPOL frames in the first place, but them getting
truncated (if that is what happened here) is something new.. Could you
please dump the contents of that frame so that we can verify whether it
is indeed truncated or whether it is something completely different? You
can do this with, e.g., something like this:


diff --git a/src/l2_packet/l2_packet_ndis.c b/src/l2_packet/l2_packet_ndis.c
index 7de5880..4619249 100644
--- a/src/l2_packet/l2_packet_ndis.c
+++ b/src/l2_packet/l2_packet_ndis.c
@@ -284,6 +284,8 @@ static void l2_packet_callback(struct l2_packet_data *l2)
 
 	wpa_printf(MSG_DEBUG, "L2(NDISUIO): Read %d bytes",
 		   (int) l2->rx_written);
+	wpa_hexdump(MSG_DEBUG, "L2(NDISUIO): Packet data",
+		    l2->rx_buf, l2->rx_written);
 
 	if (l2->l2_hdr || l2->rx_written < sizeof(*ethhdr)) {
 		rx_buf = (u8 *) ethhdr;

 
-- 
Jouni Malinen                                            PGP id EFC895FA


More information about the HostAP mailing list