summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorXiao Ma <xiaom@google.com>2020-04-02 23:20:53 +0900
committerXiao Ma <xiaom@google.com>2020-04-02 23:53:47 +0900
commitd7780038bd3d67d5344fb1fd6569a55cba6caac2 (patch)
treeb6113b548e217e392310b1504f6b4ea9b1825ce5 /service
parentc8e9ee6d5a3c085972947e9a11aa71ca7c42ab7b (diff)
Update the bssid, L2Key and GroupHint information upon L2 roaming completes.
Bug: 131797393 Test: atest FrameworksWifiTests Change-Id: Ic5ad351a3d56cedc4ec9bfce7279f8687ad0b51b
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/ClientModeImpl.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java
index 85eeb22fa..e0a30384f 100644
--- a/service/java/com/android/server/wifi/ClientModeImpl.java
+++ b/service/java/com/android/server/wifi/ClientModeImpl.java
@@ -64,6 +64,7 @@ import android.net.ip.IIpClient;
import android.net.ip.IpClientCallbacks;
import android.net.ip.IpClientManager;
import android.net.shared.Inet4AddressUtils;
+import android.net.shared.Layer2Information;
import android.net.shared.ProvisioningConfiguration;
import android.net.shared.ProvisioningConfiguration.ScanResultInfo;
import android.net.util.NetUtils;
@@ -2623,7 +2624,7 @@ public class ClientModeImpl extends StateMachine {
mWifiInfo.setSSID(null);
mWifiInfo.setWifiStandard(ScanResult.WIFI_STANDARD_UNKNOWN);
}
- updateL2KeyAndGroupHint();
+ updateLayer2Information();
// SSID might have been updated, so call updateCapabilities
updateCapabilities();
@@ -2681,13 +2682,16 @@ public class ClientModeImpl extends StateMachine {
}
/**
- * Tells IpClient what L2Key and GroupHint to use for IpMemoryStore.
+ * Tells IpClient what BSSID, L2Key and GroupHint to use for IpMemoryStore.
*/
- private void updateL2KeyAndGroupHint() {
+ private void updateLayer2Information() {
if (mIpClient != null) {
Pair<String, String> p = mWifiScoreCard.getL2KeyAndGroupHint(mWifiInfo);
if (!p.equals(mLastL2KeyAndGroupHint)) {
- if (mIpClient.setL2KeyAndGroupHint(p.first, p.second)) {
+ final Layer2Information l2Information = new Layer2Information(
+ p.first, p.second,
+ mLastBssid != null ? MacAddress.fromString(mLastBssid) : null);
+ if (mIpClient.updateLayer2Information(l2Information)) {
mLastL2KeyAndGroupHint = p;
} else {
mLastL2KeyAndGroupHint = null;
@@ -2760,7 +2764,7 @@ public class ClientModeImpl extends StateMachine {
checkAbnormalDisconnectionAndTakeBugReport();
mWifiScoreCard.resetConnectionState();
mWifiDataStall.reset();
- updateL2KeyAndGroupHint();
+ updateLayer2Information();
}
void handlePreDhcpSetup() {
@@ -6411,7 +6415,8 @@ public class ClientModeImpl extends StateMachine {
new ScanResultInfo.InformationElement(ie.getId(), ie.getBytes());
ies.add(scanResultInfoIe);
}
- scanResultInfo = new ProvisioningConfiguration.ScanResultInfo(scanResult.SSID, ies);
+ scanResultInfo = new ProvisioningConfiguration.ScanResultInfo(scanResult.SSID,
+ scanResult.BSSID, ies);
}
if (!isUsingStaticIp) {