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
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
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
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
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
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
- Add a cancel API
- Add more error reporting on WPS
- Fix network status reporting that showed up with new implementation
Change-Id: I499796c80d16d18df95fb702d029aa7e7283b603
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
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
- Add delayed disk write in WifiConfigStore
- Remove synchronization and keep all access to config store
throught the state machine thread
Change-Id: I53768a17895e48da7b99542ac95c6c2fddbcb021
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
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
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
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
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
Complete rewrite of WifiWatchdogService.java. Checking for connectivity and managing wifi upon failure detection.
Change-Id: Ifcb8b5d7e0112cbc2f2282d76fdc93ea15527a44
...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
Backport change I928544a0 to LTE branch and also handle
disconnect on WifiStateMachine channel
Bug: 4473750
Change-Id: I556330c10243a1805555f6bf6dcc7e43b78e3bfd
Also, allow scan interval for framework and supplicant
to be configured at build time or run time
Bug: 4144882
Change-Id: I877f4bcc872597b44d3f4da85cf2bc0f16e09444
Persist the setting of wifi override in airplane mode
so that it can be restored on reboot
Bug: 3250824
Change-Id: I2af38c282ba55fc150fd9ef783d43600f0d4260f