Atheros HAL: Radar Detection on Atheros chipsets

| Driver | HAL | Supported Hardware |

Overview

Radar detection in Atheros wireless chips is done by exporting potential radar pulses from the PHY; radar classification is then done in software.

As covered in US6891496, the detection is controlled via a variety of pulse and level threshold values. Radar event data is exported as PHY error frames which are then decoded by software.

Software then must filter out potential radar pulses from the background of potential events. If done incorrectly, it either will miss out on radar events, or (what madwifi-dfs suffered from) suffer from far too many false radar classifications.

Please read the available patents for more background into the hardware and software algorithms involved.

PLEASE NOTE: Coding a radar detection algorithm to both meet compliance and not suffer from false negatives/false positives is likely much tricker than you think.

Layout

The madwifi-dfs branch placed the radar event handling, radar pulse handling/detection and per-channel DFS machinery in the ath driver.

In FreeBSD, the DFS/Radar detection code is split:

The dev/ath(4) driver passes radar PHY error frames to the ath_dfs module. The ath_dfs module uses the HAL to set radio-specific configuration values and to extract the relevant radar event data. If a valid radar pulse stream is found, calls ieee80211_radar_notify(). The net80211 DFS code interprets this as a radar event and begins the process of marking the current channel as temporarily unavailable and shifting the associated stations to a different channel.

Chipset Overview

The following information has been gleaned from public sources (including the FreeBSD HAL, madwifi-dfs and Linux ath9k). Exceptions are otherwise noted.

Available Radar Event Data

Further information may be available which is not documented here.

Notes

TBD

Patents

dev/ath_hal(4)/RadarDetection (last edited 2012-06-21 00:52:57 by AdrianChadd)