summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
Commit message (Collapse)AuthorAgeFilesLines
* Fix scan result age on log dumpingNingyuan Wang2017-08-171-5/+6
| | | | | | Bug: 64812119 Test: compile, unit tests, verify it by looking at bug report Change-Id: I4ce439e2c2e1bce19eed6ef4a80cc9fe141b4e61
* Dump latest unfiltered scan resultNingyuan Wang2017-07-281-0/+3
| | | | | | | Bug: 63810310 Test: compile, unit tests, manual test Change-Id: I090aaacb00c3a774edd5c353037f2265f3bf138f
* WifiScanningService: Cache only results of full single scansRoshan Pius2017-06-201-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the single scan results caching logic inside WifiScanner: 1. Only cache scan results if they were for full scans. We've expanded the meaning of "full scans" to include both 2g + 5g and 2g + 5g + dfs. 2. Filter out any scan results from the cache if they're over 3 minutes old. The motivation of this CL is to solve these problems: 1. Do not overwrite full scan results requested by an external app (ex. Settings) with results from a partial scan (ex. from WifiConnectivityManager). This avoids the race condition where the settings app performs a scan and gets a partial list of results back because it was ovewritten by an internal partial scan request in between. 2. Scan results retrieved by apps will not contain stale scan results. In N, wpa_supplicant evicted any scan results which were older than 3 minutes from the cache. So, this CL restores that behavior. Bug: 38212080 Test: Verified that both the settings and wifi wake is working properly with the fix. Test: Will send for full regression tests (b/62711875). Test: New unit tests to verify that the partial scan results don't override the cache. Test: Modified existing unit tests to account for the change in behavior. The broadcast (and cache) is now only updated on full scans. Some of the tests were modified to produce full scan results, while the other tests expectations were modified for partial scan results. Change-Id: I4d6fb994d50995434f76218386272aa2562476fe
* Merge "Revert "WifiScanningService: Don't cache results of partial scan"" ↵TreeHugger Robot2017-06-081-6/+2
|\ | | | | | | into oc-dev
| * Revert "WifiScanningService: Don't cache results of partial scan"Roshan Pius2017-06-071-6/+2
| | | | | | | | | | | | | | This reverts commit 24dc6bb288a15516c89ab507bb86511556824144. BUG: 62394341 Change-Id: Ice9c5d34a374d5a600e0797504d3c4774e4b2ace
* | Merge "Dump SingleScanStateMachine events" into oc-devNingyuan Wang2017-06-011-1/+3
|\ \ | |/ |/|
| * Dump SingleScanStateMachine eventsNingyuan Wang2017-05-311-1/+3
| | | | | | | | | | | | | | | | | | | | This is useful for single scan debugging. This also reduces the PnoScanStateMachine's locallog size, so as a result we won't increase the total log size. Bug: 62019591 Test: compile, unit tests, manual tests Change-Id: Ia59f24a977d332d7993448c0df41b4df6d038922
* | WifiScanningService: Don't cache results of partial scanRoshan Pius2017-05-311-2/+6
|/ | | | | | | | | | | | | | | These partial scan requests are initiated by the wifi stack when connected to a network for network selection purposes. This might interfere with full scan requests made by external apps. So, don't cache such partial scan results. The apps will always get results of the last full scan request made. Bug: 38212080 Test: Unit tests Test: Verified manually that the WifiManager#getScanResults() no longer outputs partial scan results. Change-Id: I5e320435e34c6bd74639dd13a480bb26ecea1edb
* Cherry-picl: Remove bssid hotlist from frameworkMichael Plass2017-03-291-606/+1
| | | | | | Bug: 30147676 Test: Relevant unit tests pass, wifi functions Change-Id: Iac6a4c3d4a9e842e73b6122218fe0842126e43e7
* Fix hidden network list comparision for scan mergingNingyuan Wang2017-03-281-2/+3
| | | | | | | | | | This fixes the case where we reject the scan merging because we think a null hidden network list and an empty hidden network list is practically different. Bug: 36697185 Test: compile, unit tests, integration test Change-Id: Ib0185f3ad962805b1939d2d108f82506eccf5940
* Merge "Do not return member array reference upon ↵Ningyuan Wang2017-03-231-1/+1
|\ | | | | | | | | | | | | | | CMD_GET_SINGLE_SCAN_RESULTS" am: 4990cf1ecd am: a94723b115 am: 1f16394997 Change-Id: I12f870225685ef48f680b6a32930455643696013
| * Do not return member array reference upon CMD_GET_SINGLE_SCAN_RESULTSNingyuan Wang2017-03-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | If the caller is within the same process, this might cause concurrent access of mCachedScanResults. This patch uses a copy of this array instead. Bug: 34670610 Test: compile, unit tests, integration test Change-Id: I143ce97f21f172fe195a3b97383b9fb8d6e5e5b2
* | Rename SupplicantWifiScannerImpl to WificondScannerImpl am: 05d51a2d8e am: ↵Ningyuan Wang2017-03-131-2/+2
|\| | | | | | | | | | | | | | | e11ddc06aa am: bea1f6ae58 Change-Id: Ic65d1cc964329c93e53b5a3f3bc39a8bc9f68b06
| * Rename SupplicantWifiScannerImpl to WificondScannerImplNingyuan Wang2017-03-121-2/+2
| | | | | | | | | | | | | | | | | | This also fixes a few formatting issues. Bug: 35707137 Test: compile, unit tests, integration test Change-Id: I1b6642b723c5676620d65136cc6c773b49e28559
* | Request Pno scan via wificond and re-enable pno scan am: 04c453c2e0 am: ↵Ningyuan Wang2017-03-071-2/+5
|\| | | | | | | | | | | | | | | aa4cd04469 am: d591170013 Change-Id: Ie9b5bac0c47e7dc2faee7efec73e3597aa1e7c3e
| * Request Pno scan via wificond and re-enable pno scanNingyuan Wang2017-03-071-2/+5
| | | | | | | | | | | | | | Bug: 32977707 Test: compile, unit tests, manual test, will do integration test Change-Id: I3b7d5020aa695120a047a2d228fc6be5760e2343
| * Fix WifiScanningServiceImpl stand-alone unit test failureSohani Rao2017-01-251-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WifiAsyncChannel and WifiHandler objects use lazy intialization for the logging objects. WifiInjector.getInstance() may return a null object if the unit test is run by itself or if earlier tests have not created it. If the unit tests are able to update these instances with a logging objects that are not null, then unit test can pass stand-alone. - Add a method in FrameworkFacade to return new instances of WifiAsyncChannel - Update WifiAsyncChannel to expose setWifiLog() API for testing only - Call this method on instances of WifiAsyncChannel returned by the mock of FrameworkFacade factory to ensure mLog is not null - Add a method in WifiScanningServiceImpl, also meant for testing only to update WifiHandler with logging object - Change unit tests to call this method after starting scanning service Bug: 34127212 Test: WifiScanningServiceTest by itself and all unit tests pass Change-Id: I0bc7a55d6d6862e2360bfb20897828e84358dd39 Merged-In: I0bc7a55d6d6862e2360bfb20897828e84358dd39
* | Fix WifiScanningServiceImpl stand-alone unit test failureSohani Rao2017-01-191-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WifiAsyncChannel and WifiHandler objects use lazy intialization for the logging objects. WifiInjector.getInstance() may return a null object if the unit test is run by itself or if earlier tests have not created it. If the unit tests are able to update these instances with a logging objects that are not null, then unit test can pass stand-alone. - Add a method in FrameworkFacade to return new instances of WifiAsyncChannel - Update WifiAsyncChannel to expose setWifiLog() API for testing only - Call this method on instances of WifiAsyncChannel returned by the mock of FrameworkFacade factory to ensure mLog is not null - Add a method in WifiScanningServiceImpl, also meant for testing only to update WifiHandler with logging object - Change unit tests to call this method after starting scanning service Bug: 34127212 Test: WifiScanningServiceTest by itself and all unit tests pass Change-Id: I0bc7a55d6d6862e2360bfb20897828e84358dd39
* | Log API surfaces of WifiScanningService am: 4fbaf3821b am: 993626cd83 am: ↵Sohani Rao2016-12-191-11/+21
|\| | | | | | | | | | | | | | | 688db32a92 am: 8e3ac94e9d Change-Id: I7f6df4508e7be56abd00f2392b56f270809b3bb6
| * Log API surfaces of WifiScanningServiceSohani Rao2016-12-161-11/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add logging to trace the following API surfaces in WifiScanningService - AIDL methods calls, - Async Channel messages sent to the scanning service - Use WifiHandler instead of Handler to define the client handler to trace incoming messsages - Async Channel messages sent by the service - Use WifiAsyncChannel to trace reply messages sent by the service - Fully connected Async Channel is used here, therefore, it can send messages directly to the client's messenger without using Async channel methods. Add logging in replySucceeded() and replyFailed() to trace messages sent by the service directly to the client. Bug: 33085782 Test: Unit test suite, verify logging, sanity test (power on and connect to Wifi Access Point) Change-Id: I8df4f4077801c359e11a93fde2c1ce5ea811a0e4
* | Merge "WifiScanninService: Reject bgscan requests on invalid caps" am: ↵Roshan Pius2016-12-131-0/+5
|\| | | | | | | | | | | | | | | cb5d15ae89 am: 22be8e6da9 am: cf13c9cb33 am: c8ec943671 Change-Id: I39d0c640877baae11c3fbdffb57374e93bc06fe4
| * WifiScanninService: Reject bgscan requests on invalid capsRoshan Pius2016-12-131-0/+5
| | | | | | | | | | | | | | | | | | Reject any bgscan requests if the HAL returns invalid capabilities at startup. Bug: 33566846 Test: Added unit test. Change-Id: I1a6a986194dd0da2ef139f13307657aafd67b4e4
* | Update package names to work with the proto3 compilerTamas Berghammer2016-11-071-1/+1
|/ | | | | Bug: b/28974522 Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
* WifiServiceImpl: move scan results dump to scannerRebecca Silberstein2016-09-221-0/+37
| | | | | | | | | | | | | | | | | | | | The dump command includes the most recent scan results. This information should be dumped directly from WifiScanningServiceImpl instead of WifiServiceImpl. The output was also updated to better reflect the age of the entries. Invalid scan result timestamps are output with "___?___". Values that are older than the allotted characters are displayed as ">1000.0". Valid ages were not changed. The character representing isAutoJoinCandidate was removed from the output. SSID names that are longer than 32 characters are truncated. BUG: 31523862 Test: manual check of bugreport output Test: manual check of adb shell dumpsys wifi output Test: manual check of adb shell dumpsys wifiscanner output Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I6529fa7b125a6d7d283fd7dc5f8938632ae4e93f
* Ignore disconnect messages that don't indicate the channel is deadMitchell Wills2016-09-211-1/+3
| | | | | | | | Bug: 29368784 Test: mmma frameworks/opt/net/wifi/tests && runtest frameworks-wifi Change-Id: I5ae3665898565379b101c4ac0c5570c9debb1228 (cherry picked from commit d76a14997a969ea44daa47756dcc8f83aee96935) (also includes cherry picked from commit ca0add40bb7138b361c8a86e42aa5facc4fa5f2d)
* WifiService: get scan results from WifiScannerRebecca Silberstein2016-09-171-2/+15
| | | | | | | | | | | | | | | | | Retrieve scan results in WifiServiceImpl from WifiScanner instead of WifiStateMachine. This utilizes a new method and message type in WifiScanner. Tests are added to verify the scan results are returned, updated and cleared properly. This CL additionally fixes a few typos in tests. Removal of cached scan results from WifiStateMachine will be included in a separate CL. BUG: 31444878 Test: manually tested from settings UI Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: ran GTS CtsNetTestCases Change-Id: I02c4e24030d2801eb195a84177d908574de0596e
* WifiScanningService: Change hidden/PNO scan paramsRoshan Pius2016-09-161-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | Since networks are no longer configured in wpa_supplicant, network IDs/priorities being passed around for hidden/PNO scanning does not make any sense. Changing the wifi scanner interface to remove all network ID/priority references. For hidden networks, we'll now send a sorted array of <ssid> for each network (similar to PNO). This should help wificond prioritize networks when the size exceed the max supported by driver. Also, since wpa_supplicant already supports sending a list of ssids for scanning, plumb it all the way through. NOTE: 1. The backend for all these scans will eventually be replaced by wificond. 2. Hidden networks are no longer considered in bgscan requests. This was anyway not workin in HalWifiScanner's gscan backed bgscan. BUG: 29503772 TEST: Existing unit tests. TEST: Successfully connected to a hidden network on device Change-Id: Ie7783353d2eb87c2fd7b9a10f44e3e5df4cbc218
* WifiScanningService: Move scan results bcastRebecca Silberstein2016-09-141-0/+18
| | | | | | | | | | | | | A WifiManager.SCAN_RESULTS_AVIALABLE_ACTION broadcast is sent when scan results are returned for an app/user initiated scan. This broadcast is now located in the WifiScanningService instead of WifiStateMachine. Further cleanup will move retrieval of the scan results from WifiStateMachine to WifiScanningService. Tests were added to WifiScanningServiceTest to verify the broadcast is sent in both scanning success and failure cases. BUG: 31347837 TEST: frameworks/opt/net/wifi/tests/wifitests/runtests.sh on angler Change-Id: I7c11d571552090057593539b0ed736bc2cedeb00
* [WifiScanningServiceImpl]:Fixes the system server crash issue.songjinshi2016-09-051-0/+4
| | | | | | | | | When the ScanData results is null we should return to aviod the crash issue. https://code.google.com/p/android/issues/detail?id=219999 Change-Id: I4ccf4808208ec8dc7a96b798330cfc99551100cc Signed-off-by: songjinshi <songjinshi@xiaomi.com>
* Log the message contents received from disconnected clientsMitchell Wills2016-08-051-1/+1
| | | | | | BUG=29368784 Change-Id: I7c34366132985de93e03d9b316c137dcbc99fbcb
* WifiScanningServiceImpl: Add ClientInfo null checks am: 5382acb5ebRoshan Pius2016-07-201-17/+44
|\ | | | | | | | | | | am: 0df9502510 Change-Id: Ibd4c01c4a32935d2a1d72ef179dbca9d8b3ff2c7
| * WifiScanningServiceImpl: Add ClientInfo null checksRoshan Pius2016-07-201-17/+44
| | | | | | | | | | | | | | | | | | | | | | | | Add missing null checks for |ClientInfo| in a few places. ClientInfo could end up being null if there was a pending cleanup of the client before processing of the request in the appropriate state machine. Also, add a unit test to simulate the scenario in the bug specified. BUG: 30241457 Change-Id: Ic4412ae03b5176764b10cba357d19086c0c09e6e TEST: Unit tests
* | Merge \\"Fix NPE in WifiScanningService\\" into nyc-mr1-dev am: a03e931932Mitchell Wills2016-07-011-0/+3
|\| | | | | | | | | | | am: e5911436b9 Change-Id: I28c07eff5677aa01e76998c463ad30e17ff7a8cb
| * Fix NPE in WifiScanningServiceMitchell Wills2016-07-011-0/+3
| | | | | | | | | | | | Fixes: 29924121 Change-Id: Iabb8111d0d4cdef6b02710f6ea2b3545f1b6d70b
* | Merge \\"Add a WifiScanner API to listen for ongoing scans\\" into ↵Mitchell Wills2016-06-271-4/+28
|\| | | | | | | | | | | | | | | nyc-mr1-dev am: 450fee26a2 am: f12262368a Change-Id: I159d7a82a9cf965b90284174c635090ee8704c26
| * Add a WifiScanner API to listen for ongoing scansMitchell Wills2016-06-241-4/+28
| | | | | | | | | | Bug: 29412469 Change-Id: I1b8c6f3524e937cbc902af0be391b5e6b23e8ee2
* | Merge \\"Reuse single scan results if a request comes in during an ongoing ↵Mitchell Wills2016-06-241-5/+56
|\| | | | | | | | | | | | | | | scan\\" into nyc-mr1-dev am: 55b1b58e72 am: b5dcbf476f Change-Id: I341a4d5523ef20e0e44558ee12d448fd7324e0e4
| * Reuse single scan results if a request comes in during an ongoing scanMitchell Wills2016-06-231-5/+56
| | | | | | | | | | Change-Id: I590c64a4718385214e4ba803112ed7283f69b3be Fixes: 28936380
* | Merge \\"Cut down Wifi local log buffers size\\" into nyc-mr1-dev am: 4301f4786eRandy Pan2016-06-201-1/+1
|\| | | | | | | | | | | am: 4a770e2e3f Change-Id: Ibd4f5d9e77ddab7ea16ee4f9a8af736d601f9648
| * Cut down Wifi local log buffers sizeRandy Pan2016-06-171-1/+1
| | | | | | | | | | | | | | | | | | The new buffer size can hold up to around 3 hours of logs. This can be further optimized later after we have more usage data. The goal is to save the logs from the last one hour only. Bug: 29179543 Change-Id: I99e15531328fdb03df28dcf5a014deb2f074b254
* | Merge \\"Better distinguish between WifiScanner clients in logs\\" into ↵Mitchell Wills2016-06-161-8/+12
|\| | | | | | | | | | | | | | | nyc-mr1-dev am: b271c249de am: 8b35350228 Change-Id: I8f827d683a15c285194b7e4a773368dd02e9d85e
| * Better distinguish between WifiScanner clients in logsMitchell Wills2016-06-151-8/+12
| | | | | | | | | | Change-Id: I15327935f4b9ccdf3d3244087c508f19fd275c1f Fixes: 29385784
* | Fix crash when cleaning up WifiScanner client before Wifi enabled am: ↵Mitchell Wills2016-06-101-0/+9
|\| | | | | | | | | | | | | | | 3040b86393 am: 82f4aada1c am: cecab03d5d Change-Id: I1378659fc87d0b419a8f96e4fec779e4251db158
| * Fix crash when cleaning up WifiScanner client before Wifi enabledMitchell Wills2016-06-101-0/+9
| | | | | | | | | | Change-Id: Ia212840fcf781740d5e185d3e3c2e30a477e25f0 Fixes: 29250616
* | Fix crashes in significant change when wifi hasn\\\'t started am: 11bb0926a6 ↵Mitchell Wills2016-06-091-3/+7
|\| | | | | | | | | | | | | | | am: f1f88eebd8 am: 49872c10dc Change-Id: I118db5b04233a512ba43349dfa1d9da3536fc37e
| * Fix crashes in significant change when wifi hasn't startedMitchell Wills2016-06-091-3/+7
| | | | | | | | | | | | | | | | | | The SignificantChange state machine doesn't actually have a concept of if Wifi is on or not. This will simply ensure that it is not possible to cause a crash. Change-Id: I8ff87364bf7d5c87f0519b6cdc32d164facf30eb Fixes: 29237535
* | Migrating existing code to Clock abstraction part 1Ningyuan Wang2016-06-011-2/+2
|/ | | | | | | | | | | | | This CL includes the following changes: Refactor Clock.java for better readability Use Clock abstraction for classes which already have a reference of Clock obejct. BUG=28701686 TEST=compile TEST=runtest frameworks-wifi Change-Id: I49e896a91a63cf4519368a9de259046c21c94ddb
* Merge "Make sure that all ways a scan can fail get logged" into nyc-devMitchell Wills2016-05-231-1/+6
|\
| * Make sure that all ways a scan can fail get loggedMitchell Wills2016-05-201-1/+6
| | | | | | | | | | Bug: 28682351 Change-Id: If9296d862adbd479e8600699f06f4684d377ae6a
* | Change clock for time interval/elapsed measurmentsRoshan Pius2016-05-191-8/+9
|/ | | | | | | | | | | | | | | | | | 1. Use the clock retrieved from WifiInjector in more modules: QNS, Scanner, WifiConfigManager. 2. Use |elapsedRealtime| for time interval/elapsed measurments. Things like scan results, config elements still continue to use |currentTimeMillis| Also, 1. Had to make |tryEnableQualifiedNetwork| public to prevent mockito from calling the real method in WifiConfigManager. 2. Move keystore also into WifiInjector. BUG: 28299258 BUG: 28824635 Change-Id: I91272aa5665abb741da7530d8920d09c8c5ea41f TEST: Compiles & unit-test passes