summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxshu <xshu@google.com>2022-04-29 18:07:26 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-29 18:07:26 +0000
commit408e235ff65522f4babf8e7cb6a0b2ddeb232072 (patch)
tree46fd966f4c496f514768646754fdb51cfd8db17e
parentc2ec960b2ab20da5ba6af1b0d112e59f0441f08c (diff)
parente0c8ad3477f3db9e58b8696dd4e03f1b48bef06f (diff)
downloadwificond-408e235ff65522f4babf8e7cb6a0b2ddeb232072.tar.gz
Filter out invalid frequencies for PNO scan am: e0c8ad3477
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/connectivity/wificond/+/17477523 Change-Id: If7868f8ea852c88118b98215c17a8d7c83e2e8b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--scanning/scanner_impl.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/scanning/scanner_impl.cpp b/scanning/scanner_impl.cpp
index bba3417..c7857df 100644
--- a/scanning/scanner_impl.cpp
+++ b/scanning/scanner_impl.cpp
@@ -225,6 +225,18 @@ void ScannerImpl::ParsePnoSettings(const PnoSettings& pno_settings,
vector<vector<uint8_t>> skipped_match_ssids;
std::set<int32_t> unique_frequencies;
int num_networks_no_freqs = 0;
+ // Get the list of supported frequencies
+ const auto band_2g = client_interface_->GetBandInfo().band_2g;
+ const auto band_5g = client_interface_->GetBandInfo().band_5g;
+ const auto band_dfs = client_interface_->GetBandInfo().band_dfs;
+ const auto band_6g = client_interface_->GetBandInfo().band_6g;
+ const auto band_60g = client_interface_->GetBandInfo().band_60g;
+ std::set<uint32_t> all_freqs;
+ all_freqs.insert(band_2g.begin(), band_2g.end());
+ all_freqs.insert(band_5g.begin(), band_5g.end());
+ all_freqs.insert(band_dfs.begin(), band_dfs.end());
+ all_freqs.insert(band_6g.begin(), band_6g.end());
+ all_freqs.insert(band_60g.begin(), band_60g.end());
for (auto& network : pno_settings.pno_networks_) {
// Add hidden network ssid.
if (network.is_hidden_) {
@@ -245,7 +257,11 @@ void ScannerImpl::ParsePnoSettings(const PnoSettings& pno_settings,
// build the set of unique frequencies to scan for.
for (const auto& frequency : network.frequencies_) {
- unique_frequencies.insert(frequency);
+ if (all_freqs.find(frequency) != all_freqs.end()) {
+ unique_frequencies.insert(frequency);
+ } else {
+ LOG(INFO) << "filtered out invalid frequency " << frequency;
+ }
}
if (network.frequencies_.empty()) {
num_networks_no_freqs++;
@@ -256,14 +272,12 @@ void ScannerImpl::ParsePnoSettings(const PnoSettings& pno_settings,
// networks don't have frequency data.
if (num_networks_no_freqs * 100 > kPercentNetworksWithFreq * match_ssids->size()) {
// Filter out frequencies not supported by chip.
- const auto band_2g = client_interface_->GetBandInfo().band_2g;
for (const auto frequency : kPnoScanDefaultFreqs2G) {
if (std::find(band_2g.begin(), band_2g.end(), frequency) != band_2g.end()) {
unique_frequencies.insert(frequency);
}
}
// Note: kPnoScanDefaultFreqs5G doesn't contain DFS frequencies.
- const auto band_5g = client_interface_->GetBandInfo().band_5g;
for (const auto frequency : kPnoScanDefaultFreqs5G) {
if (std::find(band_5g.begin(), band_5g.end(), frequency) != band_5g.end()) {
unique_frequencies.insert(frequency);