183 Commits

Author SHA1 Message Date
Irfan Sheriff
6bfc88876a Fix DHCP handling at disconnect/reconnect
Wifi can have a quick disconnection followed by a reconnection. We used to
create a new DHCP state machine thread for every new connection and
never really waited until it quit after disconnect. This may have lead to
situations where repeated disconnect/reconnects resulted in multiple dhcp
start calls.

We now keep the statemachine after a disconnect and only shut it at supplicant
stop.

Bug: 6417686
Change-Id: Icf66efdc654be886e3eb46c81f09f8cce536f2f6
2012-08-29 15:35:57 -07:00
Irfan Sheriff
da6da0907b Captive portal handling
We now notify the user of a captive portal before switching to the network as default.
This allows background applications to continue to work until the user confirms he
wants to sign in to the captive portal.

Also, moved out captive portal handling out of wifi as a seperate component.

Change-Id: I7c7507481967e33a1afad0b4961688bd192f0d31
2012-08-27 22:27:06 -07:00
Irfan Sheriff
35bbe27d58 Fix permission issue on channel
Change-Id: I57f5d128dc2e2aa3bff93e82456f73cb96851f82
2012-08-23 16:57:43 -07:00
Yuhao Zheng
f6307820c8 CTS test for WiFi watchdog - framework support.
The new WiFi watchdog requires kernel/driver to export some packet loss
counters. This CTS tests whether those counters are correctly exported.

Change-Id: I41999676f8488e86f35f1f8214ce668f1a2b5638
2012-08-15 15:22:37 -07:00
Irfan Sheriff
10d940d99f Fix permission issues for apps
Add a work around and create a bug for proper fix

Bug: 6882233
Change-Id: I342ef7ecade8b9e2c7d16e82ea9031214b1b4462
2012-07-26 11:09:16 -07:00
Irfan Sheriff
c91f0595d3 Remove unusued scan stats
This is now part of BatteryStats

Change-Id: I7e16207276e28eea3be8666990ae958b8ea7a17a
2012-06-19 16:21:23 -07:00
Nick Pelly
6ccaa540a1 Include WIFI scan's in Battery Stats.
Call noteWifiScanStartedFromSource() when a scan is started.
Call noteWifiScanStoppedFromSource() when a scan is finished.

The current implementation tracks to UID that requested the scan, and
correctly tracks the duration of the scan. It ignores scan requests
that occur when a scan is already in progress. It does not distinguish
between active and passive scans.

Repurpose all the noteScanWifiLockAcquired/Released() plumbing
for WIFI scan tracking. The WIFI scan locks were never reported
to the user. Use noteFullWifiLock() when WIFI scan locks are used -
this makes sense because the power draw for a WIFI scan lock
should be about the same as for a full WIFI lock.

Bug: 6642581
Change-Id: Ida6e87992853698545b89f875c973a239218317d
2012-06-15 16:10:38 -07:00
Irfan Sheriff
f82e7693ca Merge "handleAirplaneModeToggled cleanup" into jb-dev 2012-05-17 14:19:46 -07:00
Irfan Sheriff
42d73bba66 handleAirplaneModeToggled cleanup
Addressing a cosmetic comment from the previous CL

Bug: 6504534
Change-Id: I04981f8b541611cb93110e8b88cd7751027060cc
2012-05-17 14:14:44 -07:00
Irfan Sheriff
ce66556a34 Merge "Fix persisting wifi state on setWifiEnabled() call" into jb-dev 2012-05-17 14:10:35 -07:00
Irfan Sheriff
f03d62007c Fix persisting wifi state on setWifiEnabled() call
When somebody makes a quick setWifiEnabled calls in back to back succession,
we were missing setting the last state because we were only doing that
when wifi was in a particular state from a state machine's perspective.

This was done to handle the interaction b/w airplane and wifi and was
done in the wrong way. That part is now moved to the code which detects
airplane mode changes.

In the longer term, I want to move the whole persisting code as part of
wifi state machine which is more aware of the exact states wifi is in.

Bug: 6504534
Change-Id: I452f3f4efdeb84458dcfd280269e09ffa3844f05
2012-05-17 14:05:56 -07:00
Irfan Sheriff
bd21b78f0f Add logging to capture wifi enable
Bug: 6504534
Change-Id: I3c3a803ce5bc53f1bdae697a23b95d63db82717c
2012-05-16 13:42:46 -07:00
Irfan Sheriff
6079237576 Log messages in dump
Remove event logging and add messages in dump

Change-Id: Ic79c68443bac9b7257644ed6941853f44a9b0661
2012-04-16 16:47:10 -07:00
Irfan Sheriff
262f766ac8 Control suspend optimizations from framework
The suspend optimizations handling in the driver is being removed.
The framework will hence forth control when these optimizations occur -
we do this at screen off and hold a short wakelock to ensure this.

We also remove the use of the now defunct setsuspendopt command and
handle the high perf locking with the new suspend mode command.

Change-Id: Ia12e38befb2c4f85cad6612bc8f807805bd0dae1
2012-03-26 23:48:53 -07:00
Irfan Sheriff
86a5f5b9af Enhance WPS
- Add a cancel API
- Add more error reporting on WPS
- Fix network status reporting that showed up with new implementation

Change-Id: I499796c80d16d18df95fb702d029aa7e7283b603
2012-03-02 14:09:53 -08:00
Irfan Sheriff
d3975a9177 Fix WifiManager async API
Fix the current asynchronous API to use callback like the way
was done with p2p API.

In the process, fix the use of WPS

Change-Id: Ib6f8714cf51b3525b655948268804e7eaaf17587
2012-03-01 13:57:23 -08:00
Irfan Sheriff
07573b3249 Improve Wi-Fi hand-off
When Wi-fi connects at L2 layer, the beacons reach and the device
can maintain a connection to the access point, but the application
connectivity can be flaky (due to bigger packet size exchange).

We now use Watchdog to monitor the quality of the last hop on
Wi-Fi using signal strength and ARP connectivity as indicators
to decide if the link is good enough to switch to Wi-Fi as the uplink.

ARP pings are useful for link validation but can still get through
when the application traffic fails to go through and thus not best indicator
real packet loss since they are tiny packets (28 bytes) and have
much low chance of packet corruption than the regular data
packets.

Signal strength and ARP used together ends up working well in tests.
The goal is to switch to Wi-Fi after validating ARP transfer
and RSSI and then switching out of Wi-Fi when we hit a low
signal strength threshold and waiting until the signal strength
improves and validating ARP transfer.

Change-Id: Ica593291ec7772da892f03cf45b649635b730c47
2012-02-29 17:33:36 -08:00
Irfan Sheriff
8cef06798e Track scan count by UID
Helps track down misbehaving apps that are initiating
too many scans

Bug:5722180
Change-Id: I0bc396cf5e68ed53b900e8a65abb56acdbd8d8a5
2011-12-14 10:58:49 -08:00
Irfan Sheriff
afb847a469 Merge "Clean up synchronization" 2011-12-12 15:35:25 -08:00
Irfan Sheriff
e744cfff7c Clean up synchronization
- Add delayed disk write in WifiConfigStore
- Remove synchronization and keep all access to config store
throught the state machine thread

Change-Id: I53768a17895e48da7b99542ac95c6c2fddbcb021
2011-12-12 15:00:02 -08:00
Irfan Sheriff
97ff789332 Merge "Fix wifi bring up at boot up" into ics-mr1 2011-12-08 15:59:26 -08:00
Irfan Sheriff
5401f0b87b Fix wifi bring up at boot up
Bug: 5719176
Change-Id: Iac879fc634f6ab6289b73c46931d754bc0af2f87
2011-12-08 15:50:47 -08:00
Irfan Sheriff
4494c90616 Handle emergency call back mode correctly
Bug: 5726996
Change-Id: I5815dd402bd73c530b9ba6d545d8956064949aa2
2011-12-08 11:31:52 -08:00
Irfan Sheriff
87f0a7b1aa Fix CS wakelock handling
Change-Id: Ibe1c1ab3e26ff0ae7cab7bfb0bd868bfab246037
2011-12-07 11:28:21 -08:00
Irfan Sheriff
9575a1bea1 Convert soft ap config store to state machine
- Create thread when needed
- asynchronous interaction with wifi state machine

Bug: 5587391
Change-Id: Ie6d01b5a6b398a3fa12c384920a473e242443131
2011-11-08 15:45:42 -08:00
Irfan Sheriff
e6daca5f53 Avoid quick shutdown after a driver start
Causes problems on our wext driver and potentially on cfg
based driver as well.

NLP can trigger very quick acquire and release within seconds
leading to driver switching between start and stop state.

We now keep driver up for atleast couple of minutes after a start

Bug: 5478196
Change-Id: I1b261578252c5fb9a65446241b51e5686d4d9cc3
2011-11-03 15:48:43 -07:00
Wink Saville
ce0ea1f2b9 In releaseWifiLockLocked call noteReleaseWifiLock.
Bug: 5452027
Change-Id: I45786a9cfe752f02a9c2e75e5b6f35bc5dfed6ae
2011-10-13 16:55:20 -07:00
Irfan Sheriff
31b92e28a5 Remember wifi disable due to airplane
Add the wifi disabled due to airplane mode as a seperate settings so
that wifi is restored after a reboot when airplane mode is turned off

Bug: 5365718
Change-Id: I36a9694bbcacd5bb5f89498e4adc47c81e611da6
2011-10-03 12:13:20 -07:00
Irfan Sheriff
651cdfcbac Unhide wifi p2p API
Bug: 5247957
Change-Id: Id93e30c0cb60f361ba13a840de8f843415777336
2011-09-13 16:04:00 -07:00
Irfan Sheriff
616f3173e0 Emergency callback mode handling
For wifi, track ECM and shut down and restart when device
goes in ECM and out

For p2p, simply turn off when in ECM mode

Bug: 5185246
Change-Id: I5f5bf75fac3e27db1d7c412135c796f2b137263d
2011-09-11 22:56:17 -07:00
Irfan Sheriff
489a9d81fd Rename WpsConfiguration to Wps
For the purpose of exposing the class as a storage for Wps
info with p2p, it is better to just call it Wps

Bug: 5247957
Change-Id: Iaebef958dd8f08fdbeb4b9d7fa5ad5527400710d
2011-09-06 22:32:58 -07:00
Isaac Levy
8dc6a1b282 Watchdog notify on explicit connect
Notifies when user explicitly clicks on wifi dialog.

Change-Id: I5eee37d68b422d748d41e9384d5006482a223dc5
2011-08-05 20:45:08 -07:00
Irfan Sheriff
fdd5f95a81 Update scanresult capability check
Scan results now have [ESS], [IBSS] & [P2P] to represent an
access point, ad-hoc network & p2p network.

Fix open network check.

Bug: 4998496
Change-Id: I0bf3f168677b0cd8cb27297427b539e768210995
2011-08-04 16:58:33 -07:00
Irfan Sheriff
b0c1b80f47 Fix multicast API
Fix multicast API and disable mutlicast V6 packets at driver start

Bug: 5016558
Change-Id: I1e04a905a36045e52c785c1dc702cc246a381a57
2011-07-21 13:37:57 -07:00
Isaac Levy
654f509075 WifiWatchdog rewrite to formal statemachine
Rewrote wifiwatchdog service to use net.statemachine

Change-Id: Id6fd42b13192ac2e99f842ff50e9edff1696675d
2011-07-15 12:31:58 -07:00
Isaac Levy
a7bc1135c2 Moved WifiWatchdogService and DnsPinger
- Moved WWS and DnsPinger in prep for StateMachine rewrite
 intent.

Change-Id: I912ca80d31ee2ded99eb345a2e5a55d01bd9910c
2011-07-06 13:54:48 -07:00
Isaac Levy
bc7dfb58bf WifiWatchdogService - disable bad connections
Complete rewrite of WifiWatchdogService.java.  Checking for connectivity and managing wifi upon failure detection.

Change-Id: Ifcb8b5d7e0112cbc2f2282d76fdc93ea15527a44
2011-06-24 15:48:10 -07:00
Dianne Hackborn
f741e679c4 resolved conflicts for merge of e2aa0490 to master
Change-Id: Id0448a1598fc93aca0652b29253e02586e35a067
2011-06-09 17:50:36 -07:00
Dianne Hackborn
a1396dfe7a am 02140891: Merge "Work on issue #4518815: Compatibility mode introduces compatibility regression..." into honeycomb-mr2
* commit '021408910af170268cb486910d4dd5a7d838c2bb':
  Work on issue #4518815: Compatibility mode introduces compatibility regression...
2011-06-08 20:02:43 -07:00
Dianne Hackborn
5fd2169eab Work on issue #4518815: Compatibility mode introduces compatibility regression...
...for Market App iRunner

There were a lot of serious issues with how we updated (or often didn't update)
the display and resource state when switching compatibility mode in conjunction
with restarting and updating application components.  This addresses everything
I could find.

Unfortunately it does *not* fix this particular app.  I am starting to think this
is just an issue in the app.  This change does fix a number of other problems
I could repro, such as switching the compatibility mode of an IME.

Also a few changes here and there to get rid of $#*&^!! debug logs.

Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
2011-06-08 18:45:43 -07:00
Irfan Sheriff
f596955372 am 5e4d0206: am b400184a: Merge "Handle AsyncChannel disconnect in WifiService" into honeycomb-LTE
* commit '5e4d0206486378ffc7d2992750e439d54df15147':
  Handle AsyncChannel disconnect in WifiService
2011-06-07 17:19:02 -07:00
Irfan Sheriff
6da83d5868 Handle AsyncChannel disconnect in WifiService
Backport change I928544a0 to LTE branch and also handle
disconnect on WifiStateMachine channel

Bug: 4473750
Change-Id: I556330c10243a1805555f6bf6dcc7e43b78e3bfd
2011-06-06 15:17:58 -07:00
Irfan Sheriff
e526cfb490 am 5b9ceeba: am a4815c0e: am 9c9088a5: Merge "Move softap config handling to WifiConfigStore" into honeycomb-mr2
* commit '5b9ceebafd36db4491a49c1f00750ce50c4d4433':
  Move softap config handling to WifiConfigStore
2011-05-19 15:17:33 -07:00
Irfan Sheriff
ffcea7ae73 Move softap config handling to WifiConfigStore
Move softap config to flat file and read/write on a seperate handler thread

Bug: 4391796

Change-Id: Iafe43200d7f829df7ced20a4e7b0ed451ad22a05
2011-05-18 15:29:31 -07:00
Irfan Sheriff
2b7f63887e Add support for supplicant SCAN_INTERVAL
Also, allow scan interval for framework and supplicant
to be configured at build time or run time

Bug: 4144882
Change-Id: I877f4bcc872597b44d3f4da85cf2bc0f16e09444
2011-04-06 09:11:15 -07:00
Irfan Sheriff
fd10d5cf56 am fb897110: am 9b1ea0bd: am e21110f8: Merge "Backup and restore IP and proxy settings" into honeycomb-mr1
* commit 'fb8971106e5ea105e176c995c1ff3b4fbe630710':
  Backup and restore IP and proxy settings
2011-03-14 12:10:27 -07:00
Irfan Sheriff
4aeca7c590 Backup and restore IP and proxy settings
Bug: 4081954
Change-Id: I27266637c6ade0c5c8242792176d1edae0983446
2011-03-10 16:57:10 -08:00
Irfan Sheriff
eddeecf059 am 86587185: am 7ad85eb6: Merge "Persist wifi override in airplane mode" into honeycomb-mr1
* commit '865871850bcedd4b9da0536c8b41f3c1816e5f43':
  Persist wifi override in airplane mode
2011-03-09 09:36:40 -08:00
Irfan Sheriff
658772f0e6 Persist wifi override in airplane mode
Persist the setting of wifi override in airplane mode
so that it can be restored on reboot

Bug: 3250824
Change-Id: I2af38c282ba55fc150fd9ef783d43600f0d4260f
2011-03-08 21:52:35 -08:00
Irfan Sheriff
c23971b3e4 Handle client loss for a full connection
Bug: 3513246
Change-Id: I928544a05702bb004457e2b0d2eeb3c34f98edf9
2011-03-08 10:18:38 -08:00