summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2017-03-23 16:18:08 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-03-23 16:18:09 +0000
commita23a5d97595e973f2a0aa6028473259f47934d4c (patch)
treefcbf979c50cb2bd7bb9d3ae8fe5a031c56e8de9d
parente8de163ec30f575280b907b0e4f836c67b43948d (diff)
parent50bc1e851d073d4a986f5b32072f94bbaba86a95 (diff)
Merge "hotspot2: dump Passpoint related info to dumpsys"
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java2
-rw-r--r--service/java/com/android/server/wifi/hotspot2/ANQPData.java8
-rw-r--r--service/java/com/android/server/wifi/hotspot2/AnqpCache.java4
-rw-r--r--service/java/com/android/server/wifi/hotspot2/PasspointManager.java30
-rw-r--r--service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java5
-rw-r--r--service/java/com/android/server/wifi/hotspot2/PasspointProvider.java10
6 files changed, 50 insertions, 9 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 20f7ac5af..77d9dd13d 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -2154,6 +2154,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
mWifiConfigManager.dump(fd, pw, args);
pw.println();
+ mPasspointManager.dump(pw);
+ pw.println();
mWifiDiagnostics.captureBugReportData(WifiDiagnostics.REPORT_REASON_USER_ACTION);
mWifiDiagnostics.dump(fd, pw, args);
dumpIpManager(fd, pw, args);
diff --git a/service/java/com/android/server/wifi/hotspot2/ANQPData.java b/service/java/com/android/server/wifi/hotspot2/ANQPData.java
index 7a708c5dd..6dbbe8ac0 100644
--- a/service/java/com/android/server/wifi/hotspot2/ANQPData.java
+++ b/service/java/com/android/server/wifi/hotspot2/ANQPData.java
@@ -70,16 +70,10 @@ public class ANQPData {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- if (mANQPElements == null) {
- sb.append(", unresolved, ");
- }
- else {
- sb.append(", ").append(mANQPElements.size()).append(" elements, ");
- }
+ sb.append(mANQPElements.size()).append(" elements, ");
long now = mClock.getElapsedSinceBootMillis();
sb.append(" expires in ").append(Utils.toHMS(mExpiryTime - now)).append(' ');
sb.append(expired(now) ? 'x' : '-');
- sb.append(mANQPElements == null ? 'u' : '-');
return sb.toString();
}
}
diff --git a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
index ba96cff39..215f6a354 100644
--- a/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
+++ b/service/java/com/android/server/wifi/hotspot2/AnqpCache.java
@@ -96,8 +96,8 @@ public class AnqpCache {
public void dump(PrintWriter out) {
out.println("Last sweep " + Utils.toHMS(mClock.getElapsedSinceBootMillis() - mLastSweep)
+ " ago.");
- for (ANQPData anqpData : mANQPCache.values()) {
- out.println(anqpData);
+ for (Map.Entry<ANQPNetworkKey, ANQPData> entry : mANQPCache.entrySet()) {
+ out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java
index c3acd39c3..0e4620673 100644
--- a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java
+++ b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java
@@ -49,6 +49,7 @@ import com.android.server.wifi.hotspot2.anqp.Constants;
import com.android.server.wifi.util.InformationElementUtil;
import com.android.server.wifi.util.ScanResultUtil;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -239,6 +240,7 @@ public class PasspointManager {
mProviders.put(config.getHomeSp().getFqdn(), newProvider);
mWifiConfigManager.saveToStore(true /* forceWrite */);
+ Log.d(TAG, "Added/updated Passpoint configuration: " + config.getHomeSp().getFqdn());
return true;
}
@@ -257,6 +259,7 @@ public class PasspointManager {
mProviders.get(fqdn).uninstallCertsAndKeys();
mProviders.remove(fqdn);
mWifiConfigManager.saveToStore(true /* forceWrite */);
+ Log.d(TAG, "Removed Passpoint configuration: " + fqdn);
return true;
}
@@ -311,6 +314,7 @@ public class PasspointManager {
mAnqpRequestManager.requestANQPElements(bssid, anqpKey,
roamingConsortium.anqpOICount > 0,
vsa.hsRelease == NetworkDetail.HSRelease.R2);
+ Log.d(TAG, "ANQP entry not found for: " + anqpKey);
return null;
}
@@ -326,6 +330,14 @@ public class PasspointManager {
bestMatch = Pair.create(provider, matchStatus);
}
}
+ if (bestMatch != null) {
+ Log.d(TAG, String.format("Matched %s to %s as %s", scanResult.SSID,
+ bestMatch.first.getConfig().getHomeSp().getFqdn(),
+ bestMatch.second == PasspointMatch.HomeProvider ? "Home Provider"
+ : "Roaming Provider"));
+ } else {
+ Log.d(TAG, "Match not found for " + scanResult.SSID);
+ }
return bestMatch;
}
@@ -345,6 +357,7 @@ public class PasspointManager {
Log.e(TAG, "PasspointManager have not been initialized yet");
return false;
}
+ Log.d(TAG, "Installing legacy Passpoint configuration: " + config.FQDN);
return sPasspointManager.addWifiConfig(config);
}
@@ -424,6 +437,7 @@ public class PasspointManager {
*/
public WifiConfiguration getMatchingWifiConfig(ScanResult scanResult) {
if (scanResult == null) {
+ Log.e(TAG, "Attempt to get matching config for a null ScanResult");
return null;
}
Pair<PasspointProvider, PasspointMatch> matchedProvider = matchProvider(scanResult);
@@ -436,6 +450,22 @@ public class PasspointManager {
}
/**
+ * Dump the current state of PasspointManager to the provided output stream.
+ *
+ * @param pw The output stream to write to
+ */
+ public void dump(PrintWriter pw) {
+ pw.println("Dump of PasspointManager");
+ pw.println("PasspointManager - Providers Begin ---");
+ for (Map.Entry<String, PasspointProvider> entry : mProviders.entrySet()) {
+ pw.println(entry.getValue());
+ }
+ pw.println("PasspointManager - Providers End ---");
+ pw.println("PasspointManager - Next provider ID to be assigned " + mProviderIndex);
+ mAnqpCache.dump(pw);
+ }
+
+ /**
* Add a legacy Passpoint configuration represented by a {@link WifiConfiguration}.
*
* @param wifiConfig {@link WifiConfiguration} representation of the Passpoint configuration
diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java
index 740a302cc..3baf5c6da 100644
--- a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java
+++ b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkEvaluator.java
@@ -84,6 +84,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva
// Done if no matching provider is found.
if (providerList.isEmpty()) {
+ localLog("No suitable Passpoint network found");
return null;
}
@@ -94,6 +95,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva
// Return the configuration for the current connected network if it is the best network.
if (currentNetwork != null && TextUtils.equals(currentNetwork.SSID,
ScanResultUtil.createQuotedSSID(bestNetwork.second.getSSID()))) {
+ localLog("Staying with current Passpoint network " + currentNetwork.SSID);
connectableNetworks.add(Pair.create(bestNetwork.second, currentNetwork));
return currentNetwork;
}
@@ -101,6 +103,7 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva
WifiConfiguration config =
createWifiConfigForProvider(bestNetwork.first, bestNetwork.second);
connectableNetworks.add(Pair.create(bestNetwork.second, config));
+ localLog("Passpoint network to connect to: " + config.SSID);
return config;
}
@@ -163,6 +166,8 @@ public class PasspointNetworkEvaluator implements WifiNetworkSelector.NetworkEva
bestScore = score;
}
}
+ localLog("Best Passpoint network " + bestScanDetail.getSSID() + " provided by "
+ + bestProvider.getConfig().getHomeSp().getFqdn());
return Pair.create(bestProvider, bestScanDetail);
}
diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
index 40f34ded6..1f3b9bbd8 100644
--- a/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
+++ b/service/java/com/android/server/wifi/hotspot2/PasspointProvider.java
@@ -381,6 +381,16 @@ public class PasspointProvider {
mClientPrivateKeyAlias, mConfig);
}
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("ProviderId: ").append(mProviderId).append("\n");
+ builder.append("Configuration Begin ---\n");
+ builder.append(mConfig);
+ builder.append("Configuration End ---\n");
+ return builder.toString();
+ }
+
/**
* Retrieve the client certificate from the certificates chain. The certificate
* with the matching SHA256 digest is the client certificate.