nl80211: allow drivers to indicate whether the survey data channel is in use
authorFelix Fietkau <nbd@openwrt.org>
Wed, 29 Sep 2010 15:15:30 +0000 (17:15 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 5 Oct 2010 17:35:22 +0000 (13:35 -0400)
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>
include/linux/nl80211.h
include/net/cfg80211.h
net/wireless/nl80211.c

index f0518b0278a927b0998659daf1aed1c5e7793bc6..edd21ae6acf702f9a8f24dc7a7ac4316c4c551f3 100644 (file)
@@ -1400,6 +1400,7 @@ enum nl80211_reg_rule_flags {
  * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
  * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
  * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
+ * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
  * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
  *     currently defined
  * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
@@ -1408,6 +1409,7 @@ enum nl80211_survey_info {
        __NL80211_SURVEY_INFO_INVALID,
        NL80211_SURVEY_INFO_FREQUENCY,
        NL80211_SURVEY_INFO_NOISE,
+       NL80211_SURVEY_INFO_IN_USE,
 
        /* keep last */
        __NL80211_SURVEY_INFO_AFTER_LAST,
index a0613ff62c97b3e6811f15f28b5950e8b3644e0d..ecc0403b918afc204dc1bc0dcc55387dd43b9d90 100644 (file)
@@ -293,12 +293,14 @@ struct key_params {
  * enum survey_info_flags - survey information flags
  *
  * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in
+ * @SURVEY_INFO_IN_USE: channel is currently being used
  *
  * Used by the driver to indicate which info in &struct survey_info
  * it has filled in during the get_survey().
  */
 enum survey_info_flags {
        SURVEY_INFO_NOISE_DBM = 1<<0,
+       SURVEY_INFO_IN_USE = 1<<1,
 };
 
 /**
index 9c84825803ceb13de075a1e763e0c72fd4217b66..0087c4323c53566a97f4ff70a745c40bef05164f 100644 (file)
@@ -3489,6 +3489,8 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 pid, u32 seq,
        if (survey->filled & SURVEY_INFO_NOISE_DBM)
                NLA_PUT_U8(msg, NL80211_SURVEY_INFO_NOISE,
                            survey->noise);
+       if (survey->filled & SURVEY_INFO_IN_USE)
+               NLA_PUT_FLAG(msg, NL80211_SURVEY_INFO_IN_USE);
 
        nla_nest_end(msg, infoattr);