2013-09-12 14:00:06

by Adrien Decostre

[permalink] [raw]
Subject: Huge value read when requesting NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY

Dear all,


We are currently doing some tests to retrieve the channel busy time,
Rx time and Tx time from the ath9k driver. For this purpose, we
started our implementation from the initial ACS algorithm
implementation provided at https://github.com/mcgrof/acs.

The data are read in the following way:
channel_time_busy = nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY]);
channel_time_rx = nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX]);
channel_time_tx = nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX]);

In most of the cases, the received data are OK but when generating
heavy interferences (actually when saturating the channel), very huge
values are read. For example, the
NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY for 3 consecutive measurements
was 439270ms, 439411ms and 439555ms while the interface should not
have listened to this channel for more than 60ms.


Would anyone have already encountered a similar issue with the ath9k driver?
Does the driver do some accumulation over time and should a reset be
needed before doing any measurement?


I thank you in advance for any help.


Best regards


Adrien