madwifi/ath
br1 b327291039 IBSS ATIM window fixes
due to unlucky timing of beacon timer configuration (which we try to avoid) and
due to unlucky timing of local TSF updates (triggered by the reception of a
beacon with the same BSSID - something we can't avoid) the beacon timers (we
have 4) can be updated seperately, leaving one of them in the past, not beeing
updated until the timers wrap around. due to the fact that the beacon interval
does not fit into the timer period (16 bit) a whole number of times the size of
the ATIM window can get bigger than desired (we don't use ATIM right now so the
window size should always be 1).

this results in a phaenome described as "ramping" (ticket #1154) which is
actually a transmission delay, since the hardware is not allowed to transmit
data in the ATIM period.

the problem is described and discussed in length at
http://thread.gmane.org/gmane.linux.drivers.madwifi.devel/6066

since we don't know of a way to disable ATIM alltogether, the following adds
some workarounds to this problem:

 1.) disable interrupts in timing critical function ath_beacon_config

 2.) stop beacons before reconfiguring them

 3.) check ATIM window after critical code which might have changed the timers

   3a.) beacon configuration

   3b.) reception of a beacon with the same BSSID. the hardware will have updated
     the local TSF and this might have left one of the beacon timers in the past.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3867 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-09-23 18:21:56 +00:00
..
if_ath_ahb.c Make pointer declarations and casting consistent. Some other formatting changes are made in passing 2008-06-06 20:32:29 +00:00
if_ath_ahb.h add missing #include statement 2008-01-28 21:04:23 +00:00
if_ath_debug.h Copy ath/if_ath_debug.h from madwifi-dfs, it has some enhanced macros 2008-07-17 07:05:15 +00:00
if_ath_hal_extensions.c IBSS ATIM window fixes 2008-09-23 18:21:56 +00:00
if_ath_hal_extensions.h IBSS ATIM window fixes 2008-09-23 18:21:56 +00:00
if_ath_hal_macros.h Whitespace for control statements 2008-05-14 19:11:57 +00:00
if_ath_hal_wrappers.h Merge -dfs r3410 and r3687 for proper multicast key search operation (disable 2008-06-01 09:34:30 +00:00
if_ath_hal.h Debugging updates: 2008-04-09 22:25:51 +00:00
if_ath_pci.c Protect against probing AR2425 if HAL doesn't support it 2008-07-30 21:33:40 +00:00
if_ath_pci.h Merge some whitespace changes from the DFS branch 2007-11-20 17:18:36 +00:00
if_ath_radar.c More typo fixes 2008-07-18 22:00:42 +00:00
if_ath_radar.h More typo fixes 2008-07-18 22:00:42 +00:00
if_ath.c IBSS ATIM window fixes 2008-09-23 18:21:56 +00:00
if_athioctl.h Typo fixes 2008-07-18 21:50:53 +00:00
if_athvar.h Warning fix for old Linux 2.6 for i386 2008-09-02 21:30:32 +00:00
Makefile Remove modules.order files in Makefile clean targets. 2008-06-04 12:25:31 +00:00
Makefile.kernel Fixed a compiling bug. Patch from XazZ. 2008-06-13 12:36:32 +00:00