linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dcbw@redhat.com>
To: "Chatre, Reinette" <reinette.chatre@intel.com>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
	ipw3945-devel@lists.sourceforge.net, abertensu@yahoo.com,
	Johannes Berg <johannes@sipsolutions.net>
Subject: Re: FW: [ipw3945-devel] iwl3945: disassociation from AP (reason=4) andtimeout, a solution
Date: Mon, 31 Mar 2008 17:41:36 -0400	[thread overview]
Message-ID: <1206999696.20744.2.camel@localhost.localdomain> (raw)
In-Reply-To: <D936D925018D154694D8A362EEB08920040FA26C@orsmsx416.amr.corp.intel.com>

On Mon, 2008-03-31 at 14:17 -0700, Chatre, Reinette wrote:
> Forwarding this to linux-wireless where there is more knowledge about
> association. The attached patch is also to the mac80211 stack, so we
> need to involve the mac80211 maintainer.
> 
> Reinette
> 
> On Friday, March 28, 2008 4:00 PM, Andres Bertens  wrote:
> 
> > Hi,
> > 
> > Recently I moved from ipw3945 to iwl3945 and I was having an AP
> > association timeout after some inactivity.
> > Card is Intel 3945bg, router is DLink DI524, driver is
> > compat-wireless-2.6 (2008-03-28) or older and mode is (WEP, open) on
> > linux-2.6.24.4. It does not recover magically.
> > 
> > The trace is:
> > 
> > wlan0: RX disassociation from 00:17:9a:63:d2:21 (reason=4)
> > wlan0: disassociated
> > wlan0: associate with AP 00:17:9a:63:d2:21
> > wlan0: RX ReassocResp from 00:17:9a:63:d2:21 (capab=0x431 status=17
> > aid=1) wlan0: AP denied association (code=17)
> > wlan0: associate with AP 00:17:9a:63:d2:21
> > wlan0: RX AssocResp from 00:17:9a:63:d2:21 (capab=0x431 status=17
> > aid=1073) wlan0: AP denied association (code=17)
> > wlan0: associate with AP 00:17:9a:63:d2:21
> > wlan0: RX AssocResp from 00:17:9a:63:d2:21 (capab=0x431 status=17
> > aid=1073) wlan0: AP denied association (code=17)
> > wlan0: association with AP 00:17:9a:63:d2:21 timed out
> > 
> > After browsing the internet, I found a lot of people with the same
> > problem and no solution. So, I dived into the code and found a simple
> > solution: ignore disassociation. When a new request arrives to the
> > wireless, a reconnection is done automatically.

Ignoring the disassociation from the AP is suspect...  wouldn't the AP
be releasing resources associated with the station, requiring a
reassociate/reauth from the station?  Reason 4 seems to mean "Inactivity
timer expired and station was disassociated".

A better solution would be to queue up a reassocation worker if the AP
kicked you off for reason 4, maybe?

Dan

> > I patched the code, modifying net/mac80211/ieee80211_sta.c, and trace
> > is as follow:
> > 
> > wlan0: RX disassociation for reason=4 received from 00:17:9a:63:d2:21
> > - ignored
> > wlan0: RX deauthentication from 00:17:9a:63:d2:21 (reason=6)
> > wlan0: deauthenticated
> > wlan0: authenticate with AP 00:17:9a:63:d2:21
> > wlan0: RX authentication from 00:17:9a:63:d2:21 (alg=0 transaction=2
> > status=0)
> > wlan0: authenticated
> > wlan0: associate with AP 00:17:9a:63:d2:21
> > wlan0: RX ReassocResp from 00:17:9a:63:d2:21 (capab=0x431 status=0
> > aid=2) wlan0: associated
> > 
> > and these entries repeats in time. As you can see, the disassociation
> > still ocurrs but a new request afterwards generates a deauthentication
> > (reason=6) and a reconnection takes place (transparent to the user).
> > 
> > Attached is patch to compat-wireless-2.6 (2008-03-28).  Please note
> > that this is for iwl3945+dlink+WEP combination (according to other
> > people, it seems to work for other combinations).
> > 
> > Hope this help.
> > 
> > Regards,
> > Andres Bertens
> 
> 	
> plain text document attachment (compat-wireless-2.6-ap-timeout.patch),
> "compat-wireless-2.6-ap-timeout.patch"
> diff -Naur compat-wireless-2008-03-28/net/mac80211/ieee80211_sta.c compat-wireless-2008-03-28-new/net/mac80211/ieee80211_sta.c
> --- compat-wireless-2008-03-28/net/mac80211/ieee80211_sta.c	2008-03-28 01:14:15.000000000 -0400
> +++ compat-wireless-2008-03-28-new/net/mac80211/ieee80211_sta.c	2008-03-28 16:19:57.000000000 -0400
> @@ -1809,6 +1809,15 @@
>  
>  	reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code);
>  
> +/* ABU */
> +	if( reason_code == 4 ) {
> +		printk(KERN_DEBUG "%s: RX disassociation for reason=4 "
> +			"received from %s - ignored\n",
> +			dev->name, print_mac(mac, mgmt->sa));
> +		return;
> +	}
> +/* ABU */
> +
>  	printk(KERN_DEBUG "%s: RX disassociation from %s"
>  	       " (reason=%d)\n",
>  	       dev->name, print_mac(mac, mgmt->sa), reason_code);
> 


  reply	other threads:[~2008-04-01 11:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-31 21:17 FW: [ipw3945-devel] iwl3945: disassociation from AP (reason=4) andtimeout, a solution Chatre, Reinette
2008-03-31 21:41 ` Dan Williams [this message]
2008-04-01 12:03   ` Johannes Berg
2008-04-01 13:45     ` Andres Bertens
2008-04-01 16:42       ` Johannes Berg
2008-04-02 15:35         ` Andres Bertens
2008-04-03 22:03         ` Andres Bertens
2008-04-04 11:46           ` Tomas Winkler
2008-04-01 14:25     ` [ipw3945-devel] FW: " John W. Linville

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1206999696.20744.2.camel@localhost.localdomain \
    --to=dcbw@redhat.com \
    --cc=abertensu@yahoo.com \
    --cc=ipw3945-devel@lists.sourceforge.net \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=reinette.chatre@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).