diff options
author | Xiao Ma <xiaom@google.com> | 2020-04-02 23:20:53 +0900 |
---|---|---|
committer | Xiao Ma <xiaom@google.com> | 2020-04-02 23:53:47 +0900 |
commit | d7780038bd3d67d5344fb1fd6569a55cba6caac2 (patch) | |
tree | b6113b548e217e392310b1504f6b4ea9b1825ce5 /service | |
parent | c8e9ee6d5a3c085972947e9a11aa71ca7c42ab7b (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.java | 17 |
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) { |