Commit Graph

801 Commits

Author SHA1 Message Date
Lorenzo Colitti
4b06c53661 Support displaying a dialog when wifi becomes unvalidated. am: 477bf5caa9 am: 8591027b21
am: 56e32083b5

Change-Id: Id908683dce15ffbafc042d506a38ec26d5e9a6ee
2016-09-15 16:18:42 +00:00
Lorenzo Colitti
8591027b21 Support displaying a dialog when wifi becomes unvalidated.
am: 477bf5caa9

Change-Id: I8b8e2b652510ca75407a9ad3c29ed111367941e0
2016-09-15 16:04:03 +00:00
Lorenzo Colitti
477bf5caa9 Support displaying a dialog when wifi becomes unvalidated.
Bug: 31075769
Change-Id: I7a6e7580769365bea930f638bd44edcaa28df134
2016-09-15 23:33:34 +09:00
Lorenzo Colitti
27e1fd3169 Add a NET_CAPABILITY_FOREGROUND capability. am: 32237c7a69
am: aaec66110d

Change-Id: I78d6aa21f8e4c6bbd9cefb4a36f1b77f4bbe4104
2016-09-13 16:23:10 +00:00
Lorenzo Colitti
32237c7a69 Add a NET_CAPABILITY_FOREGROUND capability.
Bug: 23113288
Change-Id: I90cb9ffb5751f0d9ec822933f37680c401e49966
2016-09-13 12:02:13 +09:00
Lorenzo Colitti
18328033db Add a background NetworkRequest type for mobile data always on. am: b5b725df0c
am: 9396da4e10

Change-Id: I4b0e05e8bb87e37bf2564fd255b8be7a2b20118a
2016-09-12 13:48:53 +00:00
Lorenzo Colitti
b5b725df0c Add a background NetworkRequest type for mobile data always on.
Like a normal (foreground) request, a background request is only
satisfied by one network and will keep that network up. Unlike a
foreground request, when a network only has background requests,
it will linger, and after lingering is complete, it will become
a background network.

Future CLs will cause the system to treat background networks
differently, e.g., by requiring different permissions.

Bug: 23113288
Change-Id: I40f735269dad1042eb04fea15e64584fc903ccb3
2016-09-09 18:49:24 +09:00
Lorenzo Colitti
56b3b700f2 Merge \"Add an isListen method to NetworkRequests.\" into nyc-mr1-dev
am: b5239329b1

Change-Id: Ib712c3c7b44d3a623d5f5facf0c7f6844c3ebb82
2016-07-18 15:08:54 +00:00
Lorenzo Colitti
6737b64741 Add an isListen method to NetworkRequests.
This allows simplification of the ConnectivityService code.

Bug: 23113288
Change-Id: I124544b99c5a920124e9a3d31cda8c6d2abc21fd
2016-07-18 18:42:26 +09:00
Erik Kline
3a472faf15 Add IPv6 tethering coordinator
am: 4ab3a3a7f0

Change-Id: Icf8034276d4edc7167ad03ff8860ac8e3d05c464
2016-07-13 04:57:17 +00:00
Erik Kline
4ab3a3a7f0 Add IPv6 tethering coordinator
Add an IPv6TetheringCoordinator to TetheringMaster StateMachine, which
receives and processes NetworkState updates and passes the necessary IPv6
information to the revelant TetherInterfaceStateMachine.

Add an IPv6TetheringInterfaceServices to TetherInterfaceStateMachine, which
is responsible for adding local network routes and managing an IPv6
RouterAdvertisementDaemon.

Bug: 9580643
Change-Id: I3eaae460b80752e2115359d7bde873a1e9ea515a
2016-07-13 12:08:06 +09:00
Erik Kline
95d433f07a Support requesting async LinkProperties/NetworkCapabilities updates
am: aec3f5ef5b

Change-Id: Icc048323debbbe641941c5c0d993f4c9782c5d3e
2016-07-11 11:01:42 +00:00
Erik Kline
67fc452377 Basic IPv6 Router Advertisement daemon
am: e8782af491

Change-Id: I242eb8e932581a537a47f31e3f16c7e776da91cf
2016-07-11 10:38:49 +00:00
Erik Kline
aec3f5ef5b Support requesting async LinkProperties/NetworkCapabilities updates
Bug: 9580643
Change-Id: I1d7ba7645c20d7d53f6eef777dfce43727940f13
2016-07-11 19:17:41 +09:00
Erik Kline
e8782af491 Basic IPv6 Router Advertisement daemon
Bug: 9580643
Change-Id: Iebd4d1f694699ffd4daf7d71e9b9d8f49e9b632f
2016-07-11 18:37:25 +09:00
Hugo Benichi
e7b50f9ed8 Merge \"ConnectivityManager: no double callback remove\" into nyc-mr1-dev
am: cde023a3ea

Change-Id: Ib7b10c59c1f7c84ec78c7527fba8a6c9aa5b0c05
2016-07-07 09:38:29 +00:00
Hugo Benichi
1c17c30063 ConnectivityManager: no double callback remove
This patch partially undoes ag/869831 (Change-Id:
Ia42ed7aefaebd8caf3eada8e42b6cb7a940d7647) so that ConnectivityManager
does not remove callbacks from its internal request-to-callback map at
unregistration, but instead let the singleton CallbackHandler do it when
receiving a CALLBACK_RELEASED from ConnectivityService.

ag/869831 was thought to fix b/26749700 that reported a callback leak
from sNetworkCallback, but a finer analysis of the code shows that
callbacks were correctly removed by the CallbackHandler before
ag/869831. There was therefore no callback leak.

Bug: 26749700
Bug: 28537383
Change-Id: I421d889d0e225c0e3d1eebea664f44a1cc0f3191
2016-07-07 09:44:02 +09:00
Lorenzo Colitti
3e1d024327 Merge \"Unbreak unregisterNetworkCallback.\" into nyc-mr1-dev
am: 04401f0e0f

Change-Id: I35ee16554e17c503b1f5628629c2c0a48d85d399
2016-07-05 02:19:18 +00:00
Lorenzo Colitti
cef9c490ad Unbreak unregisterNetworkCallback.
http://ag/1194313 broke unregisterNetworkCallback because the
system does not parcel the type of the request back to the app.
So when the app calls unregisterNetworkCallback, the
NetworkRequest that's passed in does not have a type and thus
doesn't match the request in mNetworkRequests.

Fix this by parceling over the type as well.

This was not caught by the unit test because the unit test all
runs in the same process with no parceling.

Bug: 23113288
Change-Id: I58b2ed651b9bf5cbdcca5b25c3ca24db53cffdf1
2016-07-05 01:59:49 +09:00
Lorenzo Colitti
6c9dbf4d48 Merge changes from topic \'networkrequest_private\' into nyc-mr1-dev
am: 0317e03dc3

Change-Id: Ia063c378bd32fdb056c0ecdc0f721d32e9fa49af
2016-07-01 15:20:21 +00:00
Lorenzo Colitti
a4505cafab Move the request type from NetworkRequestInfo to NetworkRequest.
This will allow us to simplify code that deals with
NetworkRequests outside ConnectivityService.

Bug: 23113288
Change-Id: I9b3a859d0c68cad73d7f6baa4b584d13ffd2ae36
2016-07-01 20:15:19 +09:00
Tobias Thierer
17f75b01ef Merge \\\"Changes for upgrade to OkHttp 2.7.5\\\" am: 9ca932b06e am: 776136f77c
am: 6b473f7b67

Change-Id: I3a0dc1da2ee96d71c38cab727141efcb686627e1
2016-06-30 13:04:52 +00:00
Tobias Thierer
776136f77c Merge \"Changes for upgrade to OkHttp 2.7.5\"
am: 9ca932b06e

Change-Id: Id79249756929a61dca374f9f1d43d0ea9e6b1280
2016-06-30 12:49:47 +00:00
Tobias Thierer
852f2e2ec0 Changes for upgrade to OkHttp 2.7.5
- Use com.android.okhttp.Dns in place of com.android.okhttp.internal.Network
 - Specify TimeUnit.MILLISECONDS for timeouts which 2.7.5 allows and
   brings us closer to 3+

Change-Id: I95b5d72a94ebe1389f7c2e8d95903aa1aadd944b
2016-06-29 17:41:32 +01:00
fionaxu
a5011d73d6 Merge "cold sim clean up" into nyc-mr1-dev
am: ba3428f01b

* commit 'ba3428f01b8cc112cd85d1c4ffcc1407a3b8b7c6':
  cold sim clean up

Change-Id: I5a2e24d997408badd6db7576b2fa206eb9e5c4ca
2016-06-04 05:53:44 +00:00
fionaxu
5447c49f01 cold sim clean up
- add a new field: provisioningNotificationEnabled from NetworkMisc. set
  to false if we want to hide "sign in" notification and placed
  carrier-specific notification instead. it is set on connect, once set,
  it is carrier-app's responsibility to post new UI to users
- rework on the interaction between carrier app and framework
- code cleanup
- unit test support

Bug: 28567303
Change-Id: Ic84db7ffbb920d15344717f104496d3cb82e1a85
2016-06-03 11:45:12 -07:00
Jeff Sharkey
2690d59a11 Merge "API council feedback: hide and document." into nyc-dev am: d28e2363ed
am: 19e2f49181

* commit '19e2f49181b209d790f551b374d6d24002de7c9b':
  API council feedback: hide and document.

Change-Id: I3715fc6e824f2a55517788299afe36145db597d7
2016-05-25 20:54:18 +00:00
Jeff Sharkey
38af2337be Merge "API council feedback: hide and document." into nyc-dev
am: d28e2363ed

* commit 'd28e2363ed7c0d651f82c764328cea373920d906':
  API council feedback: hide and document.

Change-Id: I180f504fe21f6f90179d359e8808ffff006e4538
2016-05-25 20:51:03 +00:00
Jeff Sharkey
c8113cac70 API council feedback: hide and document.
Hide isMetered() and clarify moveDatabaseFrom() docs.

Bug: 28870582, 28775585
Change-Id: Iabe63045c39ce7f662488f4224b56387c3c59519
2016-05-20 11:34:55 -06:00
Erik Kline
57f4d9718e Merge "DHCPv4: lease expiration is fatal, renew failures are not" into nyc-dev am: 42a5755916
am: 8958153ac7

* commit '8958153ac7921349dd8770a33484ca96581277cc':
  DHCPv4: lease expiration is fatal, renew failures are not

Change-Id: I314ceed6380af58fb3f6308dde11f2d29b324c66
2016-05-19 04:24:16 +00:00
Erik Kline
81092a2de8 Merge "DHCPv4: lease expiration is fatal, renew failures are not" into nyc-dev
am: 42a5755916

* commit '42a5755916a21f01d264bdb58d2213dacf221cdf':
  DHCPv4: lease expiration is fatal, renew failures are not

Change-Id: Ic99edb732d532da27c042824e5ca07c4b35ccfa1
2016-05-19 04:21:17 +00:00
Erik Kline
c6c6abab82 DHCPv4: lease expiration is fatal, renew failures are not
Bug: 24837343

Change-Id: Ib330864f8376b0907390d581b48cff5446b3392b
2016-05-18 16:17:03 +09:00
Robin Lee
a7cc7c5b4e Merge "Make some of the UID-based VPN code reusable" into nyc-dev
am: b0f3016b64

* commit 'b0f3016b64552674681dbc742667203d36c4c86d':
  Make some of the UID-based VPN code reusable

Change-Id: I3f1b1a08059aa58cb76db6cdd070b103024b9bf3
2016-05-17 17:36:43 +00:00
TreeHugger Robot
b0f3016b64 Merge "Make some of the UID-based VPN code reusable" into nyc-dev 2016-05-17 17:30:01 +00:00
Felipe Leme
aeb254ec20 Merge "Documented return value of getRestrictBackgroundStatus()." into nyc-dev
am: 522787f39a

* commit '522787f39a759cf8af8438641fa8df7470a1b959':
  Documented return value of getRestrictBackgroundStatus().

Change-Id: Ie2e7b14ecc0b574a8776121d3c79c768093ef4f7
2016-05-16 22:23:44 +00:00
Felipe Leme
6bd46fc303 Documented return value of getRestrictBackgroundStatus().
Change-Id: I2c15a6d5e23cbc3c9b59c975196c1c04c1294471
Fixes: 28775490
2016-05-16 13:57:19 -07:00
Robin Lee
6b78f4f48b Make some of the UID-based VPN code reusable
By changing some member refs into arguments and having one of the
functions create the UID range instead of adding to mVpnUsers.

This will be useful for other layers of UID filtering like having
UIDs explicitly blocked from the VPN.

Deleted one broken line of code that cleared the status intent when
a restricted profile is removed. Other than that, this commit shouldn't
change any behaviour. If it does, that's a bug.

Bug: 26694104
Change-Id: Ieb656835d3282a8ba63cc3f12a80bfae166bcf44
2016-05-13 16:03:11 +00:00
Elliott Hughes
ddd7dd8e7f resolve merge conflicts of bc90502 to nyc-dev-plus-aosp
Change-Id: Ic78042d45085718b2220107e9a84767df316440a
2016-05-13 08:57:40 -07:00
Elliott Hughes
ee04c535f0 Make android_net_NetUtils include what it actually uses.
Bug: http://b/28519060
Change-Id: I49dcd358d3fc8e0ba5c5e0b50a0f5dcc63281d22
2016-05-11 15:18:13 -07:00
Robin Lee
4c2242b254 Merge "Add lockdownEnabled parameter to always-on VPN API" into nyc-dev 2016-05-04 18:38:30 +00:00
Robin Lee
ab2788acbc Add lockdownEnabled parameter to always-on VPN API
Allows callers to opt-out of blockading network traffic during boot and
on VPN app failure.

Bug: 26694104
Change-Id: Ibfbd43ad09a25f2e38053fcd6306df3711f8bde2
2016-05-03 13:24:42 +01:00
Jeff Sharkey
833c35b354 Flag to mark foreground jobs, fix data saver.
When a job will eventually run in the foreground, the internal
scheduling needs to ignore any background network restrictions when
satisfying constraints.  This also means the job should ignore the
current device doze state, since the requesting app could get the
same behavior by starting their own foreground service.

Always dispatch network policy changes to ConnectivityService first
to ensure that it has up-to-date information.  Fix bugs around data
saver that were causing networks to not be marked as BLOCKED for
background apps; before this fix apps would have been spinning in
internal connectivity loops, thinking that the network was actually
connected when the kernel was actually blocking their traffic.

Offer new ConnectivityService method overloads to ignore the blocked
state for a specific UID.

Print unsatisfied job constraints to aid debugging.

Bug: 26571724
Change-Id: Iaaa17933e6dc1bf6d3dff26d0bfc12222e51e241
2016-04-29 13:44:07 -06:00
TreeHugger Robot
f2f244aa21 Merge changes I8de95add,Ia6f4ccfd into nyc-dev
* changes:
  Remove unused event tags of IpConnectivityEvent
  Better ConnectivityMetricsEvent printing
2016-04-27 01:49:53 +00:00
Hugo Benichi
c41a4e4266 Better ConnectivityMetricsEvent printing
This patch adds more information printing for IpConnectivity event
classes in android.net.metrics.

example:

ConnectivityMetricsEvent(14:36:35.799, 0, 1026): DhcpClientEvent(wlan0, DhcpRequestingState)
ConnectivityMetricsEvent(14:36:35.805, 0, 1026): DhcpClientEvent(wlan0, DhcpHaveAddressState)
ConnectivityMetricsEvent(14:36:35.809, 0, 4096): IpManagerEvent(wlan0, PROVISIONING_OK, 155ms)
ConnectivityMetricsEvent(14:36:35.810, 0, 1026): DhcpClientEvent(wlan0, DhcpBoundState)
ConnectivityMetricsEvent(14:36:35.871, 0, 2048): NetworkEvent(101, NETWORK_CONNECTED, 0ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:599, 3ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2048): NetworkEvent(101, NETWORK_VALIDATION_FAILED, 0ms)
ConnectivityMetricsEvent(14:36:35.928, 0, 3072): DefaultNetworkEvent(0 -> 101, [WIFI], IPv4: false, IPv6: false)
ConnectivityMetricsEvent(14:36:37.008, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:204, 134ms)
ConnectivityMetricsEvent(14:36:37.008, 0, 2050): NetworkEvent(101, NETWORK_VALIDATED, 1137ms)

Also fixes a couple of event logging issues:
  - do no record spurious receive DhcpErrorEvent when a network goes down.
  - add an eventType field to IpManagerEvent instead of using the
    loggger component tag.

Bug: 28204408
Change-Id: Ia6f4ccfd7a0c63a5ccec18825f226c0b5781217b
2016-04-27 09:11:29 +09:00
TreeHugger Robot
9eabb38b7f Merge "Frameworks/base: Make debug helper lazy in ConnectivityManager" into nyc-dev 2016-04-26 15:25:44 +00:00
Andreas Gampe
9537278b82 Frameworks/base: Make debug helper lazy in ConnectivityManager
Place helper map for callback field names into a holder. This avoids
the reflective calls in static initialization of ConnectivityManager
in the common (non-debug) case, which means the class can be
compile-time initialized. Also saves the storage necessary (both
the storage array as well as the reflection metadata).

Follow-up to 7e28683228.

Bug: 27265238
Change-Id: Ib4bfaf27acd234a035a5d198458340099a156a4c
2016-04-25 10:30:53 -07:00
Jeff Sharkey
ea4037847d API changes for DownloadManager and JobScheduler.
To support moving DownloadManager, add new JobScheduler network type
constraint that matches "any network except roaming."  Also add an
API to get a specific JobInfo by ID.

Since the default network can be different on a per-app basis, and
individual apps may be blocked due to app standby, evaluate job
connectivity constraints on a per-UID basis.  To implement this
cleanly, add NetworkInfo.isMetered() to match the isRoaming() API.

Add new DownloadManager APIs to support charging and device idle
constraints, which are plumbed through to JobScheduler under the
hood when scheduled.

Add filtering to JobScheduler dumpsys to omit noisy details for
packages the caller isn't interested in.

Bug: 28098882, 26571724, 19821935
Change-Id: I09ca7184ef7ce6adba399f579d415a5fb2ea6110
2016-04-24 14:39:34 -06:00
Lorenzo Colitti
ad458adea7 Disambiguate NetworkCallback JavaDoc.
The JavaDoc for many of the requestNetwork and
[un]registerNetworkCallback APIs incorrectly mentions the
PendingIntent version of the APIs instead of the NetworkCallback
version.

Also fix a minor issue in the registerDefaultNetworkCallback
JavaDoc: the default network request is an implementation detail,
so don't mention it. Instead, talk about the "system default
network".

Change-Id: Id94d98261daa2bd768c10e033cb8092729b21c91
2016-04-15 16:24:13 +09:00
Pierre Imai
d97107a879 Merge "Fix a memory leak in ConnectivityManager." into nyc-dev 2016-04-13 06:37:33 +00:00
Paul Jensen
6b866480f5 If Internet probe is redirected, pass redirect destination to NetworkAgent.
Transport may use the redirect to make additional determination about network
state.

Bug: 25203607
Change-Id: I07d8918f13fdcbe0b6fd757536bfc1850a2a244f
2016-04-12 08:54:36 -04:00