summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorAhmed ElArabawy <arabawy@google.com>2020-05-13 05:14:11 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-13 05:14:11 +0000
commitfa786b55f344df0beb69bae8d227c59ca6aa41e0 (patch)
tree25cf907f73c78d32676f4cbb27d1dc2461543258 /service
parente68b566d2b8c728a481ece9a741ea75af1d9443d (diff)
parentc16ea099626a7afe0d368cf68d1a1a61cff7c3b2 (diff)
Merge "Include 6GHz band in scanning" into rvc-dev am: e6653aa67e am: c16ea09962
Change-Id: Id798ddb7a77fd77fa4a2076722429b5ea98f4a19
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/ScanRequestProxy.java4
-rw-r--r--service/java/com/android/server/wifi/WakeupController.java6
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java12
-rw-r--r--service/java/com/android/server/wifi/WifiHealthMonitor.java7
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkFactory.java2
-rw-r--r--service/java/com/android/server/wifi/WifiVendorHal.java3
-rw-r--r--service/java/com/android/server/wifi/scanner/KnownBandsChannelHelper.java8
-rw-r--r--service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java7
-rw-r--r--service/java/com/android/server/wifi/scanner/WificondScannerImpl.java21
9 files changed, 31 insertions, 39 deletions
diff --git a/service/java/com/android/server/wifi/ScanRequestProxy.java b/service/java/com/android/server/wifi/ScanRequestProxy.java
index ce6a4a422..c054b90a4 100644
--- a/service/java/com/android/server/wifi/ScanRequestProxy.java
+++ b/service/java/com/android/server/wifi/ScanRequestProxy.java
@@ -139,7 +139,7 @@ public class ScanRequestProxy {
Log.d(TAG, "Received " + scanResults.length + " scan results");
}
// Only process full band scan results.
- if (scanData.getBandScanned() == WifiScanner.WIFI_BAND_BOTH_WITH_DFS) {
+ if (WifiScanner.isFullBandScan(scanData.getBandScanned(), false)) {
// Store the last scan results & send out the scan completion broadcast.
mLastScanResults.clear();
mLastScanResults.addAll(Arrays.asList(scanResults));
@@ -442,7 +442,7 @@ public class ScanRequestProxy {
settings.type = WifiScanner.SCAN_TYPE_HIGH_ACCURACY;
}
// always do full scans
- settings.band = WifiScanner.WIFI_BAND_BOTH_WITH_DFS;
+ settings.band = WifiScanner.WIFI_BAND_ALL;
settings.reportEvents = WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN
| WifiScanner.REPORT_EVENT_FULL_SCAN_RESULT;
if (mScanningForHiddenNetworksEnabled) {
diff --git a/service/java/com/android/server/wifi/WakeupController.java b/service/java/com/android/server/wifi/WakeupController.java
index 1da8fe58a..b003b74b9 100644
--- a/service/java/com/android/server/wifi/WakeupController.java
+++ b/service/java/com/android/server/wifi/WakeupController.java
@@ -74,10 +74,8 @@ public class WakeupController {
@Override
public void onResults(WifiScanner.ScanData[] results) {
// We treat any full band scans (with DFS or not) as "full".
- boolean isFullBandScanResults =
- results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH_WITH_DFS
- || results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH;
- if (results.length == 1 && isFullBandScanResults) {
+ if (results.length == 1
+ && WifiScanner.isFullBandScan(results[0].getBandScanned(), true)) {
handleScanResults(filterDfsScanResults(Arrays.asList(results[0].getResults())));
}
}
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java
index 975d446ea..ed647cb69 100644
--- a/service/java/com/android/server/wifi/WifiConnectivityManager.java
+++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java
@@ -492,9 +492,11 @@ public class WifiConnectivityManager {
}
// We treat any full band scans (with DFS or not) as "full".
- boolean isFullBandScanResults =
- results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH_WITH_DFS
- || results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH;
+ boolean isFullBandScanResults = false;
+ if (results != null && results.length > 0) {
+ isFullBandScanResults =
+ WifiScanner.isFullBandScan(results[0].getBandScanned(), true);
+ }
// Full band scan results only.
if (mWaitForFullBandScanResults) {
if (!isFullBandScanResults) {
@@ -505,7 +507,7 @@ public class WifiConnectivityManager {
mWaitForFullBandScanResults = false;
}
}
- if (results.length > 0) {
+ if (results != null && results.length > 0) {
mWifiMetrics.incrementAvailableNetworksHistograms(mScanDetails,
isFullBandScanResults);
}
@@ -966,7 +968,7 @@ public class WifiConnectivityManager {
private int getScanBand(boolean isFullBandScan) {
if (isFullBandScan) {
- return WifiScanner.WIFI_BAND_BOTH_WITH_DFS;
+ return WifiScanner.WIFI_BAND_ALL;
} else {
// Use channel list instead.
return WifiScanner.WIFI_BAND_UNSPECIFIED;
diff --git a/service/java/com/android/server/wifi/WifiHealthMonitor.java b/service/java/com/android/server/wifi/WifiHealthMonitor.java
index 065ef3fd0..27167dccf 100644
--- a/service/java/com/android/server/wifi/WifiHealthMonitor.java
+++ b/service/java/com/android/server/wifi/WifiHealthMonitor.java
@@ -1046,15 +1046,12 @@ public class WifiHealthMonitor {
@Override
public void onResults(WifiScanner.ScanData[] results) {
- if (!mWifiEnabled) {
+ if (!mWifiEnabled || results == null || results.length == 0) {
clearScanDetails();
return;
}
- boolean isFullBandScanResults =
- results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH_WITH_DFS
- || results[0].getBandScanned() == WifiScanner.WIFI_BAND_BOTH;
- if (isFullBandScanResults) {
+ if (WifiScanner.isFullBandScan(results[0].getBandScanned(), true)) {
handleScanResults(mScanDetails);
}
clearScanDetails();
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index 52fc0e5a7..b47afc851 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -371,7 +371,7 @@ public class WifiNetworkFactory extends NetworkFactory {
// Create the scan settings.
mScanSettings = new WifiScanner.ScanSettings();
mScanSettings.type = WifiScanner.SCAN_TYPE_HIGH_ACCURACY;
- mScanSettings.band = WifiScanner.WIFI_BAND_BOTH_WITH_DFS;
+ mScanSettings.band = WifiScanner.WIFI_BAND_ALL;
mScanSettings.reportEvents = WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN;
mScanListener = new NetworkFactoryScanListener();
mPeriodicScanTimerListener = new PeriodicScanAlarmListener();
diff --git a/service/java/com/android/server/wifi/WifiVendorHal.java b/service/java/com/android/server/wifi/WifiVendorHal.java
index d85d535fa..ed6ac7fdd 100644
--- a/service/java/com/android/server/wifi/WifiVendorHal.java
+++ b/service/java/com/android/server/wifi/WifiVendorHal.java
@@ -747,6 +747,9 @@ public class WifiVendorHal {
/**
* Makes the Hal flavor of WifiScanner's band indication
*
+ * Note: This method is only used by background scan which does not
+ * support 6GHz, hence band combinations including 6GHz are considered invalid
+ *
* @param frameworkBand one of WifiScanner.WIFI_BAND_*
* @return A WifiBand value
* @throws IllegalArgumentException if frameworkBand is not recognized
diff --git a/service/java/com/android/server/wifi/scanner/KnownBandsChannelHelper.java b/service/java/com/android/server/wifi/scanner/KnownBandsChannelHelper.java
index ec43cde6c..2de70d55e 100644
--- a/service/java/com/android/server/wifi/scanner/KnownBandsChannelHelper.java
+++ b/service/java/com/android/server/wifi/scanner/KnownBandsChannelHelper.java
@@ -20,12 +20,12 @@ import static android.net.wifi.WifiScanner.WIFI_BAND_24_GHZ;
import static android.net.wifi.WifiScanner.WIFI_BAND_5_GHZ;
import static android.net.wifi.WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY;
import static android.net.wifi.WifiScanner.WIFI_BAND_6_GHZ;
+import static android.net.wifi.WifiScanner.WIFI_BAND_ALL;
import static android.net.wifi.WifiScanner.WIFI_BAND_COUNT;
import static android.net.wifi.WifiScanner.WIFI_BAND_INDEX_24_GHZ;
import static android.net.wifi.WifiScanner.WIFI_BAND_INDEX_5_GHZ;
import static android.net.wifi.WifiScanner.WIFI_BAND_INDEX_5_GHZ_DFS_ONLY;
import static android.net.wifi.WifiScanner.WIFI_BAND_INDEX_6_GHZ;
-import static android.net.wifi.WifiScanner.WIFI_BAND_MAX;
import static android.net.wifi.WifiScanner.WIFI_BAND_UNSPECIFIED;
import android.net.wifi.ScanResult;
@@ -106,7 +106,7 @@ public class KnownBandsChannelHelper extends ChannelHelper {
@Override
public WifiScanner.ChannelSpec[][] getAvailableScanChannels(int band) {
- if (band <= WIFI_BAND_UNSPECIFIED || band >= WIFI_BAND_MAX) {
+ if (band <= WIFI_BAND_UNSPECIFIED || band > WIFI_BAND_ALL) {
// Invalid value for band.
return null;
}
@@ -301,7 +301,7 @@ public class KnownBandsChannelHelper extends ChannelHelper {
@Override
public boolean isAllChannels() {
- return containsBand(WIFI_BAND_MAX - 1);
+ return containsBand(WIFI_BAND_ALL);
}
@Override
@@ -369,7 +369,7 @@ public class KnownBandsChannelHelper extends ChannelHelper {
@Override
public Set<Integer> getScanFreqs() {
- if (mExactBands == WIFI_BAND_MAX - 1) {
+ if (mExactBands == WIFI_BAND_ALL) {
return null;
} else {
return new ArraySet<Integer>(mChannels);
diff --git a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
index b81c842e4..716b206c3 100644
--- a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
+++ b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
@@ -920,9 +920,7 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub {
}
if (validateScanRequest(ci, handler, scanSettings)) {
mWifiMetrics.incrementOneshotScanCount();
- if (scanSettings.band == WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY
- || scanSettings.band == WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS
- || scanSettings.band == WifiScanner.WIFI_BAND_BOTH_WITH_DFS) {
+ if ((scanSettings.band & WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY) != 0) {
mWifiMetrics.incrementOneshotScanWithDfsCount();
}
logScanRequest("addSingleScanRequest", ci, handler, workSource,
@@ -1283,8 +1281,7 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub {
}
// Cache full band (with DFS or not) scan results.
- if (results.getBandScanned() == WifiScanner.WIFI_BAND_BOTH_WITH_DFS
- || results.getBandScanned() == WifiScanner.WIFI_BAND_BOTH) {
+ if (WifiScanner.isFullBandScan(results.getBandScanned(), true)) {
mCachedScanResults.clear();
mCachedScanResults.addAll(Arrays.asList(results.getResults()));
}
diff --git a/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java b/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
index 287a3e144..4a48ed252 100644
--- a/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
+++ b/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java
@@ -20,6 +20,7 @@ import android.app.AlarmManager;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiScanner;
+import android.net.wifi.WifiScanner.WifiBandIndex;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -344,20 +345,14 @@ public class WificondScannerImpl extends WifiScannerImpl implements Handler.Call
* Return one of the WIFI_BAND_# values that was scanned for in this scan.
*/
private static int getBandScanned(ChannelCollection channelCollection) {
- if (channelCollection.containsBand(WifiScanner.WIFI_BAND_BOTH_WITH_DFS)) {
- return WifiScanner.WIFI_BAND_BOTH_WITH_DFS;
- } else if (channelCollection.containsBand(WifiScanner.WIFI_BAND_BOTH)) {
- return WifiScanner.WIFI_BAND_BOTH;
- } else if (channelCollection.containsBand(WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS)) {
- return WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS;
- } else if (channelCollection.containsBand(WifiScanner.WIFI_BAND_5_GHZ)) {
- return WifiScanner.WIFI_BAND_5_GHZ;
- } else if (channelCollection.containsBand(WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY)) {
- return WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY;
- } else if (channelCollection.containsBand(WifiScanner.WIFI_BAND_24_GHZ)) {
- return WifiScanner.WIFI_BAND_24_GHZ;
+ int bandScanned = WifiScanner.WIFI_BAND_UNSPECIFIED;
+
+ for (@WifiBandIndex int i = 0; i < WifiScanner.WIFI_BAND_COUNT; i++) {
+ if (channelCollection.containsBand(1 << i)) {
+ bandScanned |= 1 << i;
+ }
}
- return WifiScanner.WIFI_BAND_UNSPECIFIED;
+ return bandScanned;
}
private void pollLatestScanData() {