[CUWiN-Dev] Atheros rx sensitivity bug
David Young
dyoung at pobox.com
Tue Feb 5 16:58:51 CST 2008
On Mon, Feb 04, 2008 at 04:52:23PM -0800, Jeongkeun Lee wrote:
> Hi,
>
> It seems like that current atheros driver & HAL used in cuwin have
> some bugs with the rx sensitivity. When operating with OFDM phy and
> non-Sta mode (ad-hoc mode), the rx sensitivity is abnormally high and it
> severely reduces the communication range and degrades performance.
>
> In my cuwin0.6.0+soekris+cm9 testbed, at least 20dB SNR is required to
> receive 1000-byte size packets with 90% or higher reception ratio. Phy
> rate is fixed at 802.11a 6Mbps and we tested on clear 11a channels
> after scanning them to ensure that they are interference-free.
> Assuming -95dBm noise level, 20dB SNR is -75dBm which is much higher
> than the expected -88 dBm sensitivity level from the card
> manufacturers. (source: http://metrix.net/datasheets/CM9.pdf)
>
> This has been the hottest bug for debate in madwifi community for last
> few months.
> http://madwifi.org/ticket/705
I am just curious, but does this bug also affect 802.11b and 802.11g?
I think that would probably explain a lot!
> I have applied the bug fix from madwifi : turning off ANI (ambient
> noise immunity) according to
> http://madwifi.org/attachment/ticket/705/ani_sensitity_fix.diff
>
> Because of the variable name differences in madwifi and netbsd driver,
> I revised the madwifi code as follows:
> ---------------------------------------------------------------------
> /usr/src/cuwin-0.6.0-netbsd-src/sys/dev/ic/ath.c
> ---------------------------------------------------------------------
> if (ic->ic_opmode != IEEE80211_M_STA)
> {
> /* Turn off ANI (ambient noise immunity) in other modes than station
> * because it causes receive sensitivity problems in OFDM modulations.
> */
> if (ath_hal_getcapability(ah, HAL_CAP_INTMIT,0, NULL) == HAL_OK)
> ath_hal_setcapability(ah, HAL_CAP_INTMIT, 1, 0, NULL);
> }
> ---------------------------------------------------------------------
>
>
> As HAL_CAP_INTMIT was not defined in the original netbsd hal code, I also
> added its declaration into :
I am using newer NetBSD code that actually does define this constant.
I think that you cannot use that constant because it is not supported
by the much older version of the Atheros HAL that you use. In fact,
I think that if you change the code above to the following, then you
may see the kernel print 'HAL_CAP_INTMIT not supported?'.
if (ic->ic_opmode != IEEE80211_M_STA)
{
/* Turn off ANI (ambient noise immunity) in other modes than station
* because it causes receive sensitivity problems in OFDM modulations.
*/
if (ath_hal_getcapability(ah, HAL_CAP_INTMIT,0, NULL) == HAL_OK)
ath_hal_setcapability(ah, HAL_CAP_INTMIT, 1, 0, NULL);
else
printf("HAL_CAP_INTMIT not supported?\n");
}
I am going to try to produce a new snapshot of sources, soon.
Dave
--
David Young OJC Technologies
dyoung at ojctech.com Urbana, IL * (217) 278-3933 ext 24
More information about the CU-Wireless-Dev
mailing list