diff options
author | vandwalle <vandwalle@google.com> | 2014-08-19 12:01:03 -0700 |
---|---|---|
committer | Pierre Vandwalle <vandwalle@google.com> | 2014-08-19 21:44:48 +0000 |
commit | e6574ec7b6b2e7a678da7f77bdaaf31463852b2f (patch) | |
tree | a691ccc749bbca5c2263b09abac9e4f9624b5c14 /service/java/com/android/server/wifi/WifiMonitor.java | |
parent | 8c0a54e9b0d3713cab52d06ad8fd7f3a1b6f73a8 (diff) | |
download | frameworks_opt_net_wifi-e6574ec7b6b2e7a678da7f77bdaaf31463852b2f.tar.gz frameworks_opt_net_wifi-e6574ec7b6b2e7a678da7f77bdaaf31463852b2f.tar.bz2 frameworks_opt_net_wifi-e6574ec7b6b2e7a678da7f77bdaaf31463852b2f.zip |
debug messages for link loss issues
Change-Id: Icbea4bac528eac8f25b8d1f9f1fa79d1ecadb7da
Diffstat (limited to 'service/java/com/android/server/wifi/WifiMonitor.java')
-rw-r--r-- | service/java/com/android/server/wifi/WifiMonitor.java | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/service/java/com/android/server/wifi/WifiMonitor.java b/service/java/com/android/server/wifi/WifiMonitor.java index 2eb1a65..74a29fc 100644 --- a/service/java/com/android/server/wifi/WifiMonitor.java +++ b/service/java/com/android/server/wifi/WifiMonitor.java @@ -66,7 +66,9 @@ public class WifiMonitor { private static final int ASSOC_REJECT = 9; private static final int SSID_TEMP_DISABLE = 10; private static final int SSID_REENABLE = 11; - private static final int UNKNOWN = 12; + private static final int BSS_ADDED = 12; + private static final int BSS_REMOVED = 13; + private static final int UNKNOWN = 14; /** All events coming from the supplicant start with this prefix */ private static final String EVENT_PREFIX_STR = "CTRL-EVENT-"; @@ -204,6 +206,15 @@ public class WifiMonitor { */ private static final String REENABLED_STR = "SSID-REENABLED"; + /** + * This indicates supplicant found a given BSS + */ + private static final String BSS_ADDED_STR = "BSS-ADDED"; + + /** + * This indicates supplicant removed a given BSS + */ + private static final String BSS_REMOVED_STR = "BSS-REMOVED"; /** * Regex pattern for extracting an Ethernet-style MAC address from a string. @@ -232,6 +243,16 @@ public class WifiMonitor { "status_code=([0-9]+)"); /** + * Regex pattern for extracting an Ethernet-style MAC address from a string. + * Matches a strings like the following:<pre> + * IFNAME=wlan0 Trying to associate with 6c:f3:7f:ae:87:71 + */ + private static final String TARGET_BSSID_STR = "Trying to associate with "; + + private static Pattern mTargetBSSIDPattern = + Pattern.compile("Trying to associate with ((?:[0-9a-f]{2}:){5}[0-9a-f]{2}).*"); + + /** * Regex pattern for extracting SSIDs from request identity string. * Matches a strings like the following:<pre> * CTRL-REQ-SIM-<network id>:GSM-AUTH:<RAND1>:<RAND2>[:<RAND3>] needed for SSID <SSID> @@ -690,8 +711,11 @@ public class WifiMonitor { private boolean dispatchEvent(String eventStr, String iface) { if (DBG) { - logDbg("WifiMonitor:" + iface + " cnt=" + Integer.toString(eventLogCounter) - + " dispatchEvent: " + eventStr); + // Dont log CTRL-EVENT-BSS-ADDED which are too verbose and not handled + if (eventStr != null && !eventStr.contains("CTRL-EVENT-BSS-ADDED")) { + logDbg("WifiMonitor:" + iface + " cnt=" + Integer.toString(eventLogCounter) + + " dispatchEvent: " + eventStr); + } } if (!eventStr.startsWith(EVENT_PREFIX_STR)) { @@ -720,6 +744,8 @@ public class WifiMonitor { handleHs20Events(eventStr); } else if (eventStr.startsWith(REQUEST_PREFIX_STR)) { handleRequests(eventStr); + } else if (eventStr.startsWith(TARGET_BSSID_STR)) { + handleTargetBSSIDEvent(eventStr); } else { if (DBG) Log.w(TAG, "couldn't identify event type - " + eventStr); } @@ -762,6 +788,10 @@ public class WifiMonitor { event = SSID_TEMP_DISABLE; } else if (eventName.equals(REENABLED_STR)) { event = SSID_REENABLE; + } else if (eventName.equals(BSS_ADDED_STR)) { + event = BSS_ADDED; + } else if (eventName.equals(BSS_REMOVED_STR)) { + event = BSS_REMOVED; } else event = UNKNOWN; @@ -852,8 +882,12 @@ public class WifiMonitor { } } mStateMachine.sendMessage(ASSOCIATION_REJECTION_EVENT, eventLogCounter, status, BSSID); - } else { - handleEvent(event, eventData); + } else if (event == BSS_ADDED && !VDBG) { + // Ignore that event - it is not handled, and dont log it as it is too verbose + } else if (event == BSS_REMOVED && !VDBG) { + // Ignore that event - it is not handled, and dont log it as it is too verbose + } else { + handleEvent(event, eventData); } sRecvErrors = 0; eventLogCounter++; @@ -897,7 +931,20 @@ public class WifiMonitor { logDbg("handleEvent unknown: " + Integer.toString(event) + " " + remainder); } break; + default: + break; + } + } + + private void handleTargetBSSIDEvent(String eventStr) { + String BSSID = null; + Matcher match = mTargetBSSIDPattern.matcher(eventStr); + if (match.find()) { + BSSID = match.group(1); + } else { + Log.e(TAG, "didn't find BSSID " + eventStr); } + mStateMachine.sendMessage(WifiStateMachine.CMD_TARGET_BSSID, eventLogCounter, 0, BSSID); } private void handleWpsFailEvent(String dataString) { |