summaryrefslogtreecommitdiffstats
path: root/wifi
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Add address flags and scope to LinkAddress."Lorenzo Colitti2013-12-071-10/+11
|\
| * Add address flags and scope to LinkAddress.Lorenzo Colitti2013-12-061-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary so that the framework can know whether an IPv6 address is likely to be usable (i.e., if it's global scope and preferred). Also, it will simplify the address notification methods in INetworkManagementEventObserver, which currently take the address, the flags, and the scope as separate arguments. 1. Add flags and scope to the class and update the unit test. Use the IFA_F_* and RT_SCOPE_* constants defined by libcore. Since most callers don't know about flags and scope, provide constructors that default the flags to zero and determine the scope from the address. Addresses notified by the kernel will have these properly set. Make multicast addresses invalid. Update the class documentation. 2. Provide an isSameAddressAs() method that compares only the address and prefix information between two LinkAddress objects. This is necessary because an interface can't have two addresses with the same address/prefix but different flags. 3. Update LinkProperties's addLinkAddress and removeLinkAddress to identify existing addresses to add/remove using isSameAddressAs instead of implicit equals(). Specifically: - If addLinkAddress is called with an address that is already present, the existing address's flags and scope are updated. This allows, for example, an address on an interface to go from preferred to deprecated when it expires, without it having to be removed and re-added. - If removeLinkAddress is called with an address that is present but with different flags, it deletes that address instead of failing to find a match. 4. Update the INetworkManagementEventObserver address notification methods to take just a LinkAddress instead of LinkAddress, flags, and scope. While I'm at it, change the order of the arguments for consistency with the other functions in the interface. Change-Id: Id8fe0f09a7e8f6bee1ea3b52102178b689a9336e
* | Merge commit 'bac61807d3bcfff957b358cb9ad77850bd373689' into HEADThe Android Open Source Project2013-12-056-40/+138
|\ \ | |/ |/| | | Change-Id: I29374270c8e0c2f2859efaf1d55af9f73da0f8d7
| * Increase Reject threshold for disabling networksVinit Deshapnde2013-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This change modifies a framework optimization. The framework optimization disables a network when an access point repeatedly rejects requests to associate with it. This change has some problems; one being that it counts the rejects for all networks, and not for a specific network. This incorrectly penalizes last networks at times; and since the current threshold is 4 rejects, the probability of penalizing wrong networks is high. This change ups that number to 16 to reduce that probability. Bug: 11654725 Change-Id: I7150a9ccbb54bac44f2c2ba100fb6617ded33616
| * Add BatteryStats for Wifi Batched Scanning.Robert Greenwalt2013-11-064-36/+105
| | | | | | | | | | bug:10690989 Change-Id: Ia39b715ee6d5733970095bc76de0ed40ff8208c0
| * Don't set same country code on supplicant again and againVinit Deshapnde2013-10-212-3/+32
| | | | | | | | | | | | | | | | Setting the same code is redundant, and may cause supplicant to drop currently connected connection. Bug: 11303252 Change-Id: I1af57b3af2d0b8cc51939a8b9872fb3fe0105a91
* | Use LinkAddress in address notifications.Lorenzo Colitti2013-11-261-4/+4
|/ | | | | | | | | | | | | Currently address{Updated,Removed} pass in the address as a string such as "fe80::1/64". Use LinkAddresses instead, since that's what it is. This makes the code more robust in the unlikely case that netd passes in an invalid string. In the future we can move flags and scope into the LinkAddress itself and simplify the code further. Bug: 9180552 Change-Id: I66599f9529cf421caa7676fdd0141bb110b8589e
* Make Wifi Scans more heap-efficientRobert Greenwalt2013-10-111-4/+8
| | | | | | | | | We were ending up with 1 reference to every char array in which a new AP was discovered. In a busy env this could cost several hundred K from the dalvik heap. bug:11087956 Change-Id: I3b14c39fd0c98e4aea08a406e80bcf6af40d0664
* Merge "WifiStateMachine: fix for exiting L2ConnectedState" into klp-devYuhao Zheng2013-10-101-4/+1
|\
| * WifiStateMachine: fix for exiting L2ConnectedStateYuhao Zheng2013-10-081-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | After a L2ConnectedState to WpsRunningState transition, network is disconnected. However, the disconnected message is ignored by WpsRunningState, leaving DHCP still running. When entering L2ConnectedState again, WifiStateMachine gets stuck on waiting for DhcpStateMachine, because DHCP is already running and the command CMD_START_DHCP is ignored. Calling handleNetworkDisconnect() when exiting L2ConnectedState fixes this problem, plus it handles disconnection correctly. Bug: 10900241 Change-Id: Id29e4989b29db7e64719940cf93eba1f1a90912a
* | Narrow previous fix for this issue.Robert Greenwalt2013-10-091-1/+1
| | | | | | | | | | | | | | | | Networks should be unconditionally disabled when going to scan only state or we risk connecting when we don't want to. bug:11062188 Change-Id: If89621ca07d86673a661d2e5fe4ce89286f8835e
* | Don't mark wifi disabled unless it's off.Robert Greenwalt2013-10-091-2/+4
|/ | | | | | | | | | The transition from driver-started to scan-only state was incorrectly always marking wifi disabled, but transitioning back only marked it enabled if we were exiting due to leaving the scan-only-with-wifi-off mode. bug:11062188 Change-Id: I44fe64fd8dac8f36f4e22cb1c16b9d7a06bdbac0
* Merge "Revert "Use a build-specific wifi country code"" into klp-devRobert Greenwalt2013-10-042-2/+18
|\
| * Revert "Use a build-specific wifi country code"Robert Greenwalt2013-10-032-2/+18
| | | | | | | | | | | | | | This reverts commit c33cd23c17c24df33550a6662cedfe60b323604a. bug:11064682 Change-Id: I35825a7005e75f3abf02f23f31dee1cb7b101c31
* | Un-deprecate getDhcpInfoRobert Greenwalt2013-10-041-1/+0
| | | | | | | | | | | | | | Replacement api isn't available. bug:10003785 Change-Id: Ibe981ae90e1c6c2f1b65fa225443ae4cc92c2a3a
* | Merge "Fix EAP-TLS reconnect after reboot issue" into klp-devVinit Deshapnde2013-10-033-4/+133
|\ \ | |/ |/|
| * Fix EAP-TLS reconnect after reboot issueVinit Deshapnde2013-10-023-4/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a reboot, KeyStore is locked, and certificates encrypted with user PIN are not accessible. So statemachines are not able to connect to EAP-TLS networks. This change makes the problem less severe by 1. Not signing certificates with user PIN on devices with hardware backed KeyStore. 2. Issuing a reconnect upon first USER_PRESENT event. This means HH (which has a hardware backed keystore) can connect to EAP-TLS networks without requiring user intervention and other devices will automatically connect to those networks after user punches PIN. Bug: 10325089 Change-Id: I023d60e58d8214152f051bd9ec84b85b702d829a
* | Use a build-specific wifi country codeRobert Greenwalt2013-09-292-18/+2
|/ | | | | | | | | | This ignores any previous setting and instead uses a value set at build time. This does not preclude us from using some other signal to determine country for wifi channel limits. bug:10513734 Change-Id: Ib82c07285af70fbd82eb0466b7391979ebc8be10
* Fix an incorrectly created race accessing Wifi SupplicantVinit Deshapnde2013-09-241-19/+35
| | | | | | | | | | | | | | | | | | | | | ScanModeState is trying to undo whatever it did in its enter(), in its exit() function. But doing that is incorrect because it is possible to transition to multiple states that require different conditions. In this bug, the state machine transitioned from ScanModeState to WaitForP2pDisabled state; in response to Stop Supplicant command. Well, when we are trying to stop supplicant, there is clearly no need to enable P2P or load all networks. But since this code exists in exit(), it is executed nonetheless, causing race conditions accessing the wpa_supplicant (WifiStateMachine is trying to shut it down, but P2pStateMachine is trying to bring up the p2p interfaces). We solve that problem by moving this code to the place where we transition to DisconnectedState - since that's the state that needs this as a precondition. Bug: 10761752 Change-Id: Iaf0ffd8056de8533b5d2bfdf8c440fbb7e406dac
* Merge "Allow yet another combination of key management options" into klp-devVinit Deshapnde2013-09-231-1/+2
|\
| * Allow yet another combination of key management optionsVinit Deshapnde2013-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | Framework sets allowedKeyManagement to WPA_EAP + WPA_PSK, if WifiConfiguration didn't supply any value for it. It should probably change to NONE; but that is post K thing. I am allowing that combination for now. Bug: 10843500 Change-Id: Id0c28f4aaf32c6a7e7dca07114a2452ce194a798
* | Merge "Fix BatchScan request coalesing" into klp-devRobert Greenwalt2013-09-221-0/+36
|\ \
| * | Fix BatchScan request coalesingRobert Greenwalt2013-09-201-0/+36
| | | | | | | | | | | | | | | bug:10407896 Change-Id: Ic22c7d8b2a80d490d208570782a12e42d4690f5c
* | | Merge "Clear names from externally supplied WorkSources to WifiManager ↵David Christie2013-09-201-6/+9
|\ \ \ | | | | | | | | | | | | (b/10733757)" into klp-dev
| * | | Clear names from externally supplied WorkSources to WifiManager (b/10733757)David Christie2013-09-201-6/+9
| | | | | | | | | | | | | | | | Change-Id: I36102f13962df2093c1e35fb40081ead647eff32
* | | | Merge "Fix incorrect exception being thrown from WifiConfiguration" into klp-devVinit Deshapnde2013-09-201-2/+2
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix incorrect exception being thrown from WifiConfigurationVinit Deshapnde2013-09-201-2/+2
| | |/ | |/| | | | | | | | | | | | | Bug: 10817189 Change-Id: Ib2985f50080cb9d983a6de6ce668223e8782c3b6
* | | Merge "Supsend/resume batched scans around dhcp." into klp-devRobert Greenwalt2013-09-201-3/+30
|\ \ \
| * | | Supsend/resume batched scans around dhcp.Robert Greenwalt2013-09-201-3/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scanning while dhcp is running breaks dhcp, so stop the batched scans when we need dhcp and start it up again after. bug:10691401 Change-Id: Ifdeb6f35cfe4509b90fed1e1e694d0c107f24a7e
* | | | Merge "Cleanup the shutdown of BatchedScans." into klp-devRobert Greenwalt2013-09-202-2/+2
|\ \ \ \
| * | | | Cleanup the shutdown of BatchedScans.Robert Greenwalt2013-09-202-2/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Fixes binder-death as well as disambiguation when an app has multiple requests in. bug:10641931 Change-Id: Ib701d531fa51e7e2a027848cfdfcad3b47056923
* | | | Remove STOPSHIP in WifiWatchdogStateMachineYuhao Zheng2013-09-191-6/+1
| |/ / |/| | | | | | | | | | | | | | | | | | | | There used to be some STOPSHIP code in WifiWatchdogStateMachine for debug purposes. We don't need them for the release. Bug: 10841961 Change-Id: I501d62e9891ace52317e6c1d399b877175099a3c
* | | Consider current EAP TLS configurations as 'valid'Vinit Deshapnde2013-09-161-1/+9
| |/ |/| | | | | | | | | | | | | | | | | Multiple authentication methods are currently considered invalid; but WPA_EAP and IEEE8021X are set simultaneously. This means we need to fix code to consider them a valid combination. Bug: 10325089 Change-Id: I2b4f4d75f21df78bfca66a930e85214c0cd6922e
* | Merge "Fix Batched Scan Results to give Timestamp in uS" into klp-devRobert Greenwalt2013-09-131-1/+3
|\ \
| * | Fix Batched Scan Results to give Timestamp in uSRobert Greenwalt2013-09-121-1/+3
| |/ | | | | | | | | | | | | | | | | ScanResult should have timestamp in uS but we are getting age in ms from the wifi driver - multiply to have the same units though not the implied precision. bug: 10410465 Change-Id: Idf5c5996d69a4793dae3d74edb790d40b9bd3298
* | Fix build break with missing VDBG.Stephen Hines2013-09-121-0/+1
| | | | | | | | Change-Id: Iaf64cf49300a6a0a91374efa3030d6894367c9b8
* | Disable additional logging in WifiConfigStore/WifiNativeVinit Deshapnde2013-09-122-29/+33
| | | | | | | | | | | | | | | | | | | | It was introduced to debug the disappearing APs; now that we think that we've got to the bottom of it, it is being disabled by default. Set VDBG to true to get it back. Bug: 10568538 Change-Id: I226cacf48cccba9671f09164bbb50380adc6b322
* | Merge "Fix invalid Wifi Network system crash" into klp-devVinit Deshapnde2013-09-122-0/+21
|\ \ | |/ |/|
| * Fix invalid Wifi Network system crashVinit Deshapnde2013-09-092-0/+21
| | | | | | | | | | | | | | | | | | | | | | There is some validation code that is eventually detecting that we have an invalid network; only the result is a crash. The right thing to do is to do validation up front; and fail calls if the network configuration looks invalid. Bug: 10571289 Change-Id: I100506b777a34b26ac9a310ba508140560f87a90
* | Fix Wifi Batch ScanningRobert Greenwalt2013-09-113-32/+57
| | | | | | | | | | | | | | Some parsing bugs, more debug logs, etc. bug:9301872 Change-Id: I245ab00955e245be81a019750be0f8491aa505fd
* | Fix issue #10688644: Java crash in com.android.phone:Dianne Hackborn2013-09-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | java.lang.SecurityException: Operation not allowed There was a situation I wasn't taking into account -- components declared by the system has a special ability to run in the processes of other uids. This means that if that code loaded into another process tries to do anything needing an app op verification, it will fail, because it will say it is calling as the system package name but it is not actually coming from the system uid. To fix this, we add a new Context.getOpPackageName() to go along-side getBasePackageName(). This is a special call for use by all app ops verification, which will be initialized with either the base package name, the actual package name, or now the default package name of the process if we are creating a context for system code being loaded into a non-system process. I had to update all of the code doing app ops checks to switch to this method to get the calling package name. Also improve the security exception throw to have a more descriptive error message. Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
* | Merge "Set country code on P2p interfaces as well" into klp-devVinit Deshapnde2013-09-103-4/+19
|\ \
| * | Set country code on P2p interfaces as wellVinit Deshapnde2013-09-093-4/+19
| |/ | | | | | | | | | | | | | | | | | | This change will set country code on P2p interfaces as well, so the drivers are free to use channels that are permitted regionally. This is required for FCC style compliance and Miracast certification. Bug: 10513263 Change-Id: I88c645bd488066d5167e23e2772f2e0e1f40fa8a
* | wifi: Fix cleaning scan result cacheDmitry Shmidt2013-09-061-1/+1
| | | | | | | | | | | | | | Bug: 10198923 Change-Id: I18dfc10860b8fb623751c62a4bc54b628246cf0c Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
* | Merge "Fix duplicate SSID entries in the WifiSettings UI" into klp-devVinit Deshapnde2013-09-061-3/+9
|\ \
| * | Fix duplicate SSID entries in the WifiSettings UIVinit Deshapnde2013-09-051-3/+9
| |/ | | | | | | | | | | | | | | | | | | | | | | The root cause is likely our 'no networks' problem; it caused people to add new (and duplicate) entries to their list of networks; which are haunting us now. This change looks up the dupes, and discards them, even if they came wifi supplicant. Bug: 10633813 Change-Id: I656b6bf7240de6763bf84b5b406c50444af6dd48
* | Merge "Track IP addresses in WifiStateMachine." into klp-devLorenzo Colitti2013-09-061-34/+151
|\ \
| * | Track IP addresses in WifiStateMachine.Lorenzo Colitti2013-09-061-34/+151
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes WifiStateMachine listen for interface address changes. When an address changes, WifiStateMachine will update its LinkProperties to match reality and notify the system that the link configuration has changed. This allows wifi to keep track of IPv6 addresses as well (previously it only knew about the IPv4 address passed in by DHCP). IP addresses are obtained directly from the kernel and always match those configured on the interface, so we treat them as authoritative and ignore addresses passed in via DHCP (by the time DHCP passes them in we've already been notified by the kernel anyway). Since we now have multiple sources of link information (the kernel for addresses and DHCP for routes and DNS, plus various bits of static information), also move all the code that sets mLinkProperties into one place. This allows us to be clearer about who is authoritative for which parts of mLinkProperties. Bug: 10232006 Change-Id: I4f262342379ce7fed172b67a1d403e3cd34f4232
* | Merge "Rename LinkInfo to LinkQualityInfo" into klp-devVinit Deshapnde2013-09-051-13/+13
|\ \ | |/ |/|
| * Rename LinkInfo to LinkQualityInfoVinit Deshapnde2013-09-041-13/+13
| | | | | | | | | | | | | | | | | | This change renames the LinkInfo objects to LinkQuailtyInfo. The API is still hidden; but it can be accessed via reflection. Bug: 10342372 Change-Id: Ieccea87c467ceae5d7f76298b137573f67396cd6