Commit 17e5a808 authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville

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: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0bda6523
...@@ -1400,6 +1400,7 @@ enum nl80211_reg_rule_flags { ...@@ -1400,6 +1400,7 @@ enum nl80211_reg_rule_flags {
* @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
* @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
* @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) * @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 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
* currently defined * currently defined
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
...@@ -1408,6 +1409,7 @@ enum nl80211_survey_info { ...@@ -1408,6 +1409,7 @@ enum nl80211_survey_info {
__NL80211_SURVEY_INFO_INVALID, __NL80211_SURVEY_INFO_INVALID,
NL80211_SURVEY_INFO_FREQUENCY, NL80211_SURVEY_INFO_FREQUENCY,
NL80211_SURVEY_INFO_NOISE, NL80211_SURVEY_INFO_NOISE,
NL80211_SURVEY_INFO_IN_USE,
/* keep last */ /* keep last */
__NL80211_SURVEY_INFO_AFTER_LAST, __NL80211_SURVEY_INFO_AFTER_LAST,
......
...@@ -293,12 +293,14 @@ struct key_params { ...@@ -293,12 +293,14 @@ struct key_params {
* enum survey_info_flags - survey information flags * enum survey_info_flags - survey information flags
* *
* @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in * @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 * Used by the driver to indicate which info in &struct survey_info
* it has filled in during the get_survey(). * it has filled in during the get_survey().
*/ */
enum survey_info_flags { enum survey_info_flags {
SURVEY_INFO_NOISE_DBM = 1<<0, SURVEY_INFO_NOISE_DBM = 1<<0,
SURVEY_INFO_IN_USE = 1<<1,
}; };
/** /**
......
...@@ -3489,6 +3489,8 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 pid, u32 seq, ...@@ -3489,6 +3489,8 @@ static int nl80211_send_survey(struct sk_buff *msg, u32 pid, u32 seq,
if (survey->filled & SURVEY_INFO_NOISE_DBM) if (survey->filled & SURVEY_INFO_NOISE_DBM)
NLA_PUT_U8(msg, NL80211_SURVEY_INFO_NOISE, NLA_PUT_U8(msg, NL80211_SURVEY_INFO_NOISE,
survey->noise); survey->noise);
if (survey->filled & SURVEY_INFO_IN_USE)
NLA_PUT_FLAG(msg, NL80211_SURVEY_INFO_IN_USE);
nla_nest_end(msg, infoattr); nla_nest_end(msg, infoattr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment