Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #965 (closed enhancement: fixed)

Opened 13 years ago

Last modified 11 years ago

[patch] dynamic Beacon Interval (enhancement for STA mode)

Reported by: xmxwx@asn.pl Assigned to:
Priority: major Milestone: version 0.9.5
Component: madwifi: other Version: v0.9.2
Keywords: Cc:
Patch is attached: 1 Pending:

Description

This patch makes STA monitor Beacon Interval in incoming Beacon frames for changes. If a change is detected, hardware Beacon miss timers are reprogrammed so that they match the new value. It is a new functionality, but it can be perceived as a bugfix as well. AP's Beacon Interval change causes STA's spurious beacon misses (and thus, unstable connection).

IEEE802.11-1999 does not make it clear whether such a change can occur within BSS's lifetime. The deafult action (in ROAMING_AUTO mode) is to reassociate after missing a beacon. However this does not neccessarily cause rescanning (for updating stored AP's bintval) and under some circumstances can inflict in going into an infinie loop (repeating beacon_miss and reassociation - complete disruption of data interchange).

IMHO it is important to monitor incoming beacon frames, so that APs that change their BI without prior disassociation of all the stations don't lead them into problems.

It may be easily noticed that such an improvement can be easily exploited using malicious frame injection, therefore this enhancement/bugfix consists of two parts (the basic functionality + protection against an attack).

http: //dev.lintrack.org/browser/trunk/packages/madwifi/patches/003-dynamic_bintval.diff.bz2?format=raw

http: //dev.lintrack.org/browser/trunk/packages/madwifi/patches/006-smart_dynamic_bintval.diff.bz2?format=raw

Signed-off-by: Michal Wrobel <xmxwx@asn.pl>

Attachments

003-dynamic_bintval.diff (2.9 kB) - added by xmxwx@asn.pl on 10/19/06 01:52:00.
006-smart_dynamic_bintval.diff (3.3 kB) - added by xmxwx@asn.pl on 10/19/06 01:52:16.
madwifi-0.9.3-bmiss-threshold-fix.diff (3.1 kB) - added by mtaylor on 05/22/07 23:46:51.
The companion patch to the two already posted.

Change History

10/19/06 01:52:00 changed by xmxwx@asn.pl

  • attachment 003-dynamic_bintval.diff added.

10/19/06 01:52:16 changed by xmxwx@asn.pl

  • attachment 006-smart_dynamic_bintval.diff added.

10/19/06 11:16:01 changed by Ċ½ilvinas Valinskas <valins@soften.ktu.lt>

I see exactly the same problem, as described in the patch. 003-dynamic_bintval.diff - is trivial and right patch of course. One can see bintval = le16toh(...) in the code! Then described problem is seen with default bintval as well. (no need to increase it beyound 255). This only provokes bug sooner ...

I will give a try with these patches. (x86/WRAP.2c, ixp425/Xscale/BE platforms).

10/19/06 13:15:46 changed by mrenzmann

  • version set to v0.9.2.
  • milestone set to version 0.9.x - progressive release candidate phase.

05/22/07 23:46:51 changed by mtaylor

  • attachment madwifi-0.9.3-bmiss-threshold-fix.diff added.

The companion patch to the two already posted.

05/22/07 23:48:17 changed by mtaylor

I've had these three patches installed for some time. They collectively provide much more stable operation with increased beacon intervals. Has anyone else tried them out recently? I think we should consider putting them in.

05/23/07 06:02:06 changed by mrenzmann

  • milestone changed from version 0.9.x - progressive release candidate phase to version 0.9.4.

06/08/07 19:43:26 changed by mtaylor

  • status changed from new to closed.
  • resolution set to fixed.

Commit to trunk r2434.

02/11/08 06:13:16 changed by mrenzmann

  • milestone changed from version 0.9.4 to version 0.9.5.