In net/mac80211/scan.c, function ieee80211_bss_info_update() passes
incoming scan results to the generic wireless layer, with indication of
the received signal level, but no indication of signal validity.
Before ieee80211_bss_info_update() is called, rx_status->flag can be set
to RX_FLAG_NO_SIGNAL_VAL by the ath9k driver and it won't be taken into
account in the wireless layer.
Even later in ieee80211_bss_info_update(), rx_status->flag can also be set
to RX_FLAG_NO_SIGNAL_VAL, and the wireless layer won't be aware of this.
I stumbled on this because, when using ath9k (WLE350NX) to do a passive scan
off-channel, the beacons received in a 30ms window after channel change show
a signal level +10dB above the real value. So I was looking for a way to
tell the above layers that the signal is invalid. RX_FLAG_NO_SIGNAL_VAL seems
to fit, but is not conveyed up to iw or wpa_supplicant.
In fact I did not find any such thing in net/wireless/nl80211.c, function
Any suggestion? Did I miss something?