aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-09-29 11:15:30 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-05 13:35:22 -0400
commit17e5a8082894a4b66cb69e7ec16074f0f01281e1 (patch)
tree604746f9c4aa8d77c41f1e22e9f553b5cdcfa823
parent0bda652300dff8136c9d889f1133462c7c7d332c (diff)
nl80211: allow drivers to indicate whether the survey data channel is in use
Some user space applications only want to display survey data for the operating channel, however there is no API to get that yet. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--include/linux/nl80211.h2
-rw-r--r--include/net/cfg80211.h2
-rw-r--r--net/wireless/nl80211.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index f0518b0278a9..edd21ae6acf7 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1400,6 +1400,7 @@ enum nl80211_reg_rule_flags {
1400 * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved 1400 * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
1401 * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel 1401 * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
1402 * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) 1402 * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
1403 * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
1403 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number 1404 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
1404 * currently defined 1405 * currently defined
1405 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use 1406 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
@@ -1408,6 +1409,7 @@ enum nl80211_survey_info {
1408 __NL80211_SURVEY_INFO_INVALID, 1409 __NL80211_SURVEY_INFO_INVALID,
1409 NL80211_SURVEY_INFO_FREQUENCY, 1410 NL80211_SURVEY_INFO_FREQUENCY,
1410 NL80211_SURVEY_INFO_NOISE, 1411 NL80211_SURVEY_INFO_NOISE,
1412 NL80211_SURVEY_INFO_IN_USE,
1411 1413
1412 /* keep last */ 1414 /* keep last */
1413 __NL80211_SURVEY_INFO_AFTER_LAST, 1415 __NL80211_SURVEY_INFO_AFTER_LAST,
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index a0613ff62c97..ecc0403b918a 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -293,12 +293,14 @@ struct key_params {
293 * enum survey_info_flags - survey information flags 293 * enum survey_info_flags - survey information flags
294 * 294 *
295 * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in 295 * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in
296 * @SURVEY_INFO_IN_USE: channel is currently being used
296 * 297 *
297 * Used by the driver to indicate which info in &struct survey_info 298 * Used by the driver to indicate which info in &struct survey_info
298 * it has filled in during the get_survey(). 299 * it has filled in during the get_survey().
299 */ 300 */
300enum survey_info_flags { 301enum survey_info_flags {
301 SURVEY_INFO_NOISE_DBM = 1<<0, 302 SURVEY_INFO_NOISE_DBM = 1<<0,
303 SURVEY_INFO_IN_USE = 1<<1,
302}; 304};
303 305
304/** 306/**
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 9c84825803ce..0087c4323c53 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3489,6 +3489,8 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 pid, u32 seq,
3489 if (survey->filled & SURVEY_INFO_NOISE_DBM) 3489 if (survey->filled & SURVEY_INFO_NOISE_DBM)
3490 NLA_PUT_U8(msg, NL80211_SURVEY_INFO_NOISE, 3490 NLA_PUT_U8(msg, NL80211_SURVEY_INFO_NOISE,
3491 survey->noise); 3491 survey->noise);
3492 if (survey->filled & SURVEY_INFO_IN_USE)
3493 NLA_PUT_FLAG(msg, NL80211_SURVEY_INFO_IN_USE);
3492 3494
3493 nla_nest_end(msg, infoattr); 3495 nla_nest_end(msg, infoattr);
3494 3496