clients don't associate to 0.1.0 --> AP: drop packet to non-associated STA

Jouni Malinen jkmaline
Sat Oct 18 11:19:22 PDT 2003


On Sat, Oct 18, 2003 at 11:12:23AM +0200, Jirka Bohac wrote:

> yesterday I upgraded form a September-24's CVS version of hostap to
> 0.1.0. HostAP manages 3 cards (ZCOM XI626), two of them in master mode, one
> managed.
> 
> I've seen strange problems with client's not associating correctly to
> the AP:

Could you and others reporting similar problems with Host AP driver
v0.1.0 give some more details about the AP and STAs that failed to
associate? I would like to know the NICID and firmware versions of each
device, the driver version from the STAs and some information about what
kind of wireless LAN configuration (plaintext / WEP / something special)
was used. What is the distance between the AP and the STAs?

I tried to reproduce association issues with Prism2.5 and Prism3 cards
using STA f/w 1.7.4 (card NICIDs were 8013 and 801b; both with PRI f/w
1.1.1). I had no problems associating with either system (I tested with
about six or so Prism2/2.5/3 cards and couple of other IEEE 802.11b
cards).

The only IEEE 802.11 auth/assoc related change in the CVS between
September 24 and v0.1.0 release was in making STAs authenticated before
they ACKed authentication frame from the AP. I would not expect this to
break association, but just to be sure, I've attached a patch to revert
this change. Please try whether it changes the behavior of the v0.1.0
release.

> After a while, a few windows-based clients associated, but none of the
> many linux+hostap based clients (using a mixture of older hostap
> versions). All clients' MAC addresses appeared in the ARP table,
> although there was no message in syslog saying that the clients
> associated. Also, their MAC could not be found in
> /proc/net/hostap/wlanX.

Could you please send me full 'dmesg' output from the AP?

> I loaded the previous hostap modules, let the clients associate. Then I
> put the MAC policy to closed, and kicked them all out. After that, when
> I unloaded the old hostap modules and reloaded 0.1.0, the clients
> associated to the AP. However, still not all of them (maybe because they
> did not associate to the old version and were not kicked...)

Were the clients sending anything? That should also trigger new
authentication if AP does not think the STA is associated. You could
also try running 'iwpriv wlan0 reset 2' in the client if it was using
Host AP driver. This will make the card re-try association.

> I just can't find an explanation to this - how could kicking the clients
> from the previous hostap version help them associate with the new one?
> I tried several times, and this really seems to work.

Kicking the clients away send deauthentication frames to the STAs and
may thus reset their state machines so that they will try to associate
again.

-- 
Jouni Malinen                                            PGP id EFC895FA
-------------- next part --------------
diff -upr hostap-driver-0.1.0.orig/driver/modules/hostap_ap.c hostap-driver-0.1.0/driver/modules/hostap_ap.c
--- hostap-driver-0.1.0.orig/driver/modules/hostap_ap.c	2003-10-11 10:25:44.000000000 -0700
+++ hostap-driver-0.1.0/driver/modules/hostap_ap.c	2003-10-18 11:06:10.000000000 -0700
@@ -1509,12 +1509,14 @@ static void handle_authen(local_info_t *
 	switch (auth_alg) {
 	case WLAN_AUTH_OPEN:
 		txt = "authOK";
+#if 0
 		/* IEEE 802.11 standard is not completely clear about
 		 * whether STA is considered authenticated after
 		 * authentication OK frame has been send or after it
 		 * has been ACKed. In order to reduce interoperability
 		 * issues, mark the STA authenticated before ACK. */
 		sta->flags |= WLAN_STA_AUTH;
+#endif
 		break;
 
 	case WLAN_AUTH_SHARED_KEY:
@@ -1539,12 +1541,14 @@ static void handle_authen(local_info_t *
 			}
 
 			txt = "challenge OK - authOK";
+#if 0
 			/* IEEE 802.11 standard is not completely clear about
 			 * whether STA is considered authenticated after
 			 * authentication OK frame has been send or after it
 			 * has been ACKed. In order to reduce interoperability
 			 * issues, mark the STA authenticated before ACK. */
 			sta->flags |= WLAN_STA_AUTH;
+#endif
 			kfree(sta->u.sta.challenge);
 			sta->u.sta.challenge = NULL;
 		}



More information about the Hostap mailing list