Re: [Madwifi-devel] radar detection sensitivity
Status: Beta
Brought to you by:
otaku
From: Benoit P. <ben...@fr...> - 2007-05-11 21:49:54
|
Michael Taylor wrote: > Nick, > > The openhal doesn't appear to do anything special as far as PHY chip > configuration for detection. It supports the interruptRXPHY, which is > what radar comes in as. The problem is that RXPHY covers other PHY > errors as well. The error code for the receive is in the queue, so I go > scanning through the RX queue looking for an unprocessed buffers with > radar error codes. Subsequently, we do get the radar error in the > receive queue when the receive tasklet runs... I wanted to start > reacting on the interrupt in order to meet the channel closing time > requirements. > > I will look into the chirp thing, but since chirp is also possible on > the transmit queue... I believe it means something else in this > context. I just don't know all the details yet. > > I've read the Atheros patents on differentiating radar from regular > interference and I believe that the automatic gain control and an RSSI > threshold are what I am looking to tune. I am unable to figure out > which register might be RSSI threshold, but I do see how I might have to > wait for calibration to finish before starting the channel availability > check. > > -M Since I am always wondering how radar detection could work, i have analyzed the current source code myself (both madwifi trunk and madwifi-old-openhal). I don't have a radar generator myself, so everything is pure conjecture. I'd like to share my knowledge. Reference are against the madwifi-old-openhal. I saw two portion of code that might be used to detect radar: 1. Upon receiving an interrupt, the interrupt status can be checked with the AR5K_INT_RXPHY bits. However, since the interrupt status is ORed with the interrupt mask, this bit is never set. Is it what you called interruptRXPHY? Did you made changes to the source code to enable this interrupt? 2. Upon receiving a data packet, ds->ds_rxstat.rs_status is checked for the bits AR5K_RXERR_PHY. In this case, ds->ds_rxstat.rs_phyerr & 0x1f might contain AR5K_PHYERR_RADAR. Is it what you call "radar error code"? If so, i think that radar event could be filtered using ds->ds_rxstat.rs_rssi and some predefined threshold? Best regards, Benoit |