User Tools

Site Tools


en:users:documentation:acs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:users:documentation:acs [2015/01/26 09:49]
127.0.0.1 external edit
en:users:documentation:acs [2018/02/12 08:19] (current)
Chaitanya T K Fix typo in the heading
Line 16: Line 16:
 ===== Survey based algorithm ===== ===== Survey based algorithm =====
  
-The survey based algorithm relies on the nl80211 survey API command to query the interface for channel active time, channel busy time, channel tx time and noise. The active time consists of the amount of time the radio has spent on the channel. The busy time consists of the amount of time the channel ​has spent on the channel but noticed the channel was busy and could not initiate communication if it wanted to. The tx time is the amount of time the channel ​has spent on the channel transmitting data. The survey algorithm relies on these values to build an //​interference factor// to give a sense of how much interference was detected on the channel and then picks the channel with the lowest //​interference factor//​. ​+The survey based algorithm relies on the nl80211 survey API command to query the interface for channel active time, channel busy time, channel tx time and noise. The active time consists of the amount of time the radio has spent on the channel. The busy time consists of the amount of time the radio has spent on the channel but noticed the channel was busy and could not initiate communication if it wanted to. The tx time is the amount of time the radio has spent on the channel transmitting data. The survey algorithm relies on these values to build an //​interference factor// to give a sense of how much interference was detected on the channel and then picks the channel with the lowest //​interference factor//​. ​
  
 The //​interference factor// is defined as the ratio of the observed busy time over the time we spent on the channel, this value is then amplified by the noise floor observed on the channel in comparison to the lowest noise floor observed on the entire band.  The //​interference factor// is defined as the ratio of the observed busy time over the time we spent on the channel, this value is then amplified by the noise floor observed on the channel in comparison to the lowest noise floor observed on the entire band. 
Line 66: Line 66:
  
  
-===== Example ​survet-based ACS analysis printout from hostapd =====+===== Example ​survey-based ACS analysis printout from hostapd =====
  
  
Line 176: Line 176:
 ACS:  * channel 13: total interference = 0.0680776 ACS:  * channel 13: total interference = 0.0680776
 ACS: Ideal channel is 13 (2472 MHz) with total interference factor of 0.0680776</​code>​ ACS: Ideal channel is 13 (2472 MHz) with total interference factor of 0.0680776</​code>​
 +
 +===== Driver implementation details =====
 +
 +User space can get survey using ''​NL80211_CMD_GET_SURVEY''​ command. It requires:
 +  * ''​cfg80211''​ drivers to implement ''​dump_survey''​ callback
 +  * ''​mac80211''​ drivers to implement ''​get_survey''​ callback
 +
 +As explained is algorithm section, driver needs to provide (fill) few different informations about a channel:
 +  * Noise floor (''​SURVEY_INFO_NOISE_DBM''​) put into ''​NL80211_SURVEY_INFO_NOISE''​
 +  * Channel time (''​SURVEY_INFO_TIME''​) put into ''​NL80211_SURVEY_INFO_TIME''​
 +  * Time of channel unavailability which is **one** of:
 +    * RX time (''​SURVEY_INFO_TIME_RX''​) put into ''​NL80211_SURVEY_INFO_TIME_RX''​
 +    * Busy time (''​SURVEY_INFO_TIME_BUSY''​) put into ''​NL80211_SURVEY_INFO_TIME_BUSY''​
  
 ===== Hostapd setup ===== ===== Hostapd setup =====
Line 181: Line 194:
 Only the following drivers support the current (2014-08-19) survey based ACS implmenetation in hostapd ([[http://​w1.fi/​cgit/​hostap/​tree/​hostapd/​defconfig#​n309|http://​w1.fi/​cgit/​hostap/​tree/​hostapd/​defconfig#​n309]]). ​ Only the following drivers support the current (2014-08-19) survey based ACS implmenetation in hostapd ([[http://​w1.fi/​cgit/​hostap/​tree/​hostapd/​defconfig#​n309|http://​w1.fi/​cgit/​hostap/​tree/​hostapd/​defconfig#​n309]]). ​
   * ath5k    * ath5k 
-  * ath9k +  * ath9k (The pcie version only)
   * ath10k When building make sure you enable ACS in hostapd'​s .config file:    * ath10k When building make sure you enable ACS in hostapd'​s .config file: 
  
en/users/documentation/acs.1422265793.txt.gz · Last modified: 2015/05/14 21:47 (external edit)