cfg80211/mac80211: report signal strength for mgmt frames
Add the signal strength (in dBm only for now) to frames that are received via nl80211's various frame APIs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Kalle Valo <kvalo@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
769009b89d
commit
804483e907
@@ -2188,9 +2188,14 @@ ieee80211_rx_h_mgmt_check(struct ieee80211_rx_data *rx)
|
||||
if (rx->sdata->vif.type == NL80211_IFTYPE_AP &&
|
||||
ieee80211_is_beacon(mgmt->frame_control) &&
|
||||
!(rx->flags & IEEE80211_RX_BEACON_REPORTED)) {
|
||||
int sig = 0;
|
||||
|
||||
if (rx->local->hw.flags & IEEE80211_HW_SIGNAL_DBM)
|
||||
sig = status->signal;
|
||||
|
||||
cfg80211_report_obss_beacon(rx->local->hw.wiphy,
|
||||
rx->skb->data, rx->skb->len,
|
||||
status->freq, GFP_ATOMIC);
|
||||
status->freq, sig, GFP_ATOMIC);
|
||||
rx->flags |= IEEE80211_RX_BEACON_REPORTED;
|
||||
}
|
||||
|
||||
@@ -2414,6 +2419,7 @@ static ieee80211_rx_result debug_noinline
|
||||
ieee80211_rx_h_userspace_mgmt(struct ieee80211_rx_data *rx)
|
||||
{
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb);
|
||||
int sig = 0;
|
||||
|
||||
/* skip known-bad action frames and return them in the next handler */
|
||||
if (status->rx_flags & IEEE80211_RX_MALFORMED_ACTION_FRM)
|
||||
@@ -2426,7 +2432,10 @@ ieee80211_rx_h_userspace_mgmt(struct ieee80211_rx_data *rx)
|
||||
* it transmitted were processed or returned.
|
||||
*/
|
||||
|
||||
if (cfg80211_rx_mgmt(rx->sdata->dev, status->freq,
|
||||
if (rx->local->hw.flags & IEEE80211_HW_SIGNAL_DBM)
|
||||
sig = status->signal;
|
||||
|
||||
if (cfg80211_rx_mgmt(rx->sdata->dev, status->freq, sig,
|
||||
rx->skb->data, rx->skb->len,
|
||||
GFP_ATOMIC)) {
|
||||
if (rx->sta)
|
||||
|
Reference in New Issue
Block a user