Commit Graph

2299 Commits

Author SHA1 Message Date
TreeHugger Robot
03004291e1 Merge "Make the onRequestRecommendation() method async." 2016-12-13 01:34:25 +00:00
sghuman
b191f3dc87 Merge "Fix erroneous constructor in ScoredNetwork.java" am: 9d55f43719 am: eaed9ef0b7 am: 60a850b670
am: 3339d5b120

Change-Id: Id8966b9d9ba127fe043b6110cb5556f15c56de54
2016-12-12 23:24:07 +00:00
sghuman
60a850b670 Merge "Fix erroneous constructor in ScoredNetwork.java" am: 9d55f43719
am: eaed9ef0b7

Change-Id: I0314c02497dcabd6f3fa1caeb665ff5ecb9a0f59
2016-12-12 23:12:36 +00:00
sghuman
eaed9ef0b7 Merge "Fix erroneous constructor in ScoredNetwork.java"
am: 9d55f43719

Change-Id: I6f24c92a9638f91197a4d17bfdc3fbeeede3daf4
2016-12-12 23:07:22 +00:00
Sundeep Ghuman
23f98ebe33 Fix erroneous constructor in ScoredNetwork.java
Test: Unit tests in ag/310934.
Change-Id: I0075b15f59796872ea9779c04373563607d2f883
2016-12-12 14:36:03 -08:00
Jeremy Joslin
9f38345a08 Merge "Update registerNetworkScoreCache() to accept a filter type." am: a511a07fa3
am: 4150ec18e9

Change-Id: I589bead5cf4e9f57f21c234d7d0b5d62cdb1e2b3
2016-12-10 00:11:12 +00:00
Jeremy Joslin
4150ec18e9 Merge "Update registerNetworkScoreCache() to accept a filter type."
am: a511a07fa3

Change-Id: I51983da8fe63db15d9b38e3ebe4a20cb95cb5f13
2016-12-10 00:06:37 +00:00
Jeremy Joslin
823db059e4 Update registerNetworkScoreCache() to accept a filter type.
Defined a new IntDef in NetworkScoreManager named CacheUpdateFilter
with 3 values. Caches must be registered with a filter value and will
only receive updates based on their registered filter. Actual
filtering implementation will follow.

Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
BUG: 32912120
Change-Id: I3ce0bee171e6405176358479fa8a532fd5193824
Merged-In: I8940e0ed1a7bbcb5a81fb3b6a7fafe4fbbc33875
2016-12-09 13:15:15 -08:00
Jeremy Joslin
375320edaa Make the onRequestRecommendation() method async.
Converted the NetworkRecommendationProvider.onRequestRecommendation()
method into an async call to give implementors more flexibility.

Added unit tests for NetworkRecommendationProvider.

Test: Added NetworkRecommendationProviderTest.
BUG: 32909424
Change-Id: Iebe72f260133e9ad1946b0b75e2f69635e154ef3
2016-12-09 09:57:32 -08:00
Stephen Chen
963e8ddf6d DO NOT MERGE: Implement metered tracking for NetworkStats summary queries.
Dependent on ag/1550196 where API is defined.

Bug: 31015360
Bug: 26545374
Test: runtest --path
frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java,
other test classes.

(cherry picked from commit 2514787897)

Change-Id: I46da93ba4afa968facf98f7c3d844fd0c469095a
2016-12-09 13:59:33 +09:00
Hugo Benichi
21680fd25d DO NOT MERGE: NetworkMonitor metrics: add first validation information
This patch adds first validation information to:
  - ValidationProbeEvent, by extending the probe_type int field of to
    also include a bit indicating if the probe was part of a first
    validation attempt or not.
  - NetworkMonitorEvent, by defining new contants for the event_type
    field.

Test: $ runtest frameworks-net
      + manually generating events and inspecting the
        output of $ adb shell dumpsys connmetrics list
Bug: b/32198726

(cherry picked from commit 147aa6d53b)

Change-Id: Ie7a62c4f62a13ce52806d3adaa9e627cb246073c
2016-12-09 13:59:20 +09:00
Jeff Sharkey
dda938a698 DO NOT MERGE: Switch over to new "time.android.com" NTP pool.
Also add logging to measure success/failure details.

Test: builds, boots, and NTP fix obtained
Bug: 32969463

(cherry picked from commit d3f689bf14)

Change-Id: I7da416099ae903fd92beb516251ef4e51673eecf
2016-12-09 13:59:18 +09:00
Jeremy Joslin
ffe5a46b3e DO NOT MERGE: VPN network stat accounting changes.
Properly account for VPN apps that make heavy use of the tun
interface. Prior to this change a VPN app could be incorrectly charged
for more data than it actually used if it sent more traffic through
the tun interface than the underlying interface.

This change excludes VPN app traffic on the tun interface from the
adjustment pool and doesn't redistribute traffic to the VPN app.
Instead all of the redistributed traffic is deducted from the VPN app
which effectively represents any overhead incurred by the VPN app.

BUG: 30557871

(cherry picked from commit 8b436d865c)

Change-Id: I06f01aa8fe5fdc06b2d36cfb9c68feb244c2e5de
2016-12-09 13:42:29 +09:00
Hugo Benichi
ce765b7a51 DO NOT MERGE: ConnectivityThread: use lazy holder idiom
This patch changes the way that the ConnectivityThread is lazily
instantiated by using the "lazy initialization holder class idiom".

The first code point that tries to obtain a reference to the unique
ConnectivityThread instance will trigger the creation of the Singleton
class, which will guarantee a thread-safe initialization of the static
INSTANCE field inside Singleton according to the language specs.

This is the Item #71 of Effective Java.

The unique static instance of ConnectivityThread is not stored directly
inside ConnectivityThread class but is stored in a static nested class.
This is to avoid triggering the creation of that unique instance when
Zygote does class preloading at phone startup. Otherwise this would lead
to Zygote creating a new OS thread during preloading, which is a fatal
error.

Test: frameworks-wifi tests pass
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit c4fe5d373c)

Change-Id: If13b363889a8e9396273a90c3d9f9421a48aecbc
2016-12-09 13:42:26 +09:00
Hugo Benichi
1853f78d76 DO NOT MERGE: ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 7724cdd8b9)

Change-Id: If956addbf8e7b11b36a4b966de7fca00e8f362c1
2016-12-09 13:42:24 +09:00
Hugo Benichi
4983e55853 DO NOT MERGE: ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437

(cherry picked from commit d42650faaa)

Change-Id: I1b5fe2a361b5f623a8310ae698497c83d72f3034
2016-12-09 13:42:20 +09:00
Philip P. Moltmann
29154b000f DO NOT MERGE: Indicate the NsdServiceInfo attributes are only filled in for a resolved service.
Fixes: 28530428

(cherry picked from commit 7d5da4b044)

Change-Id: If2bfc06589adb361f11b89cd5923cb5c255cb680
2016-12-09 13:42:09 +09:00
Jeremy Klein
c8e4cc8e99 DO NOT MERGE: Add a null check for the OnStartTetheringCallback.
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.

(cherry picked from commit 5f277e1667)

Change-Id: Ia419ff68ef10f308f9e44be47420e27099ee6070
2016-12-09 13:42:02 +09:00
Hugo Benichi
f99a33a1b4 DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents
This patch uses the previously introduced TokenBucket to rate limit
ApfProgramEvents, still allowing for burst of ApfProgramEvents when a
new interface is set up (due to ipv4 provisioning, multicast lock, ipv6 RAs
triggering new APF program events in short amounts of time).

Test: new test in IpConnectivityMetricsTest
Bug: 1550402

(cherry picked from commit e1c173d224)

Change-Id: Idb640dec13ba64180985544b9709a586af66eb6e
2016-12-09 11:21:31 +09:00
Jeremy Joslin
c5ac587bf3 Update registerNetworkScoreCache() to accept a filter type.
Defined a new IntDef in NetworkScoreManager named CacheUpdateFilter
with 3 values. Caches must be registered with a filter value and will
only receive updates based on their registered filter. Actual
filtering implementation will follow.

Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
BUG: 32912120
Change-Id: I8940e0ed1a7bbcb5a81fb3b6a7fafe4fbbc33875
2016-12-08 16:36:00 -08:00
Amin Shaikh
38724a234d Merge "Support multiple caches in NetworkScoreService." am: 78f3f0049e am: a7c0b73971 am: b45a4a5d1b
am: 5456cdbc27

Change-Id: I421cff1c47959c40088a31f72556630a8acd007e
2016-12-08 17:24:32 +00:00
Lorenzo Colitti
b92aa5bdfd Merge changes from topic 'framework-net-aosp'
* changes:
  DO NOT MERGE: [CS] Remove timeout event after first available
  DO NOT MERGE: ApfTest: tag tests with @SmallTest or @MediumTest
  DO NOT MERGE: Unbreak TetherInterfaceStateMachineTest.
  DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
  DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
  DO NOT MERGE: Move FakeSettingsProvider to a common location.
  DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
  DO NOT MERGE: Add option to skip and avoid captive portals.
  DO NOT MERGE: ApfFilter: use elapsedRealTime for RA lifetime
  DO NOT MERGE: Do not synchronize boolean reads/writes
  DO NOT MERGE: ApfFilter: systematically use u8, u16, u32 getters
  DO NOT MERGE: Add fuzzing tests to ApfFilter RA processing
  DO NOT MERGE: Support timeouts for requestNetwork() invocations.
  DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network.
2016-12-08 09:56:19 +00:00
Erik Kline
3841a48d0a DO NOT MERGE: Support timeouts for requestNetwork() invocations.
(cherry-pick of 06c3ef1367)
(cherry picked from commit 57faba9ec7)

Bug: 21414325
Change-Id: I1a58823a372154589f972b98c4c428eab0e0523e
2016-12-08 17:13:01 +09:00
Amin Shaikh
b45a4a5d1b Merge "Support multiple caches in NetworkScoreService." am: 78f3f0049e
am: a7c0b73971

Change-Id: Idf846f55436c44930f5db2a07b7362412274f46e
2016-12-08 02:24:59 +00:00
Amin Shaikh
972e236e84 Support multiple caches in NetworkScoreService.
- Use RemoteCallbackList for managing multiple callbacks
- Add unregisterNetworkScoreCache to the service interface
- Added NetworkScoreServiceTest

Test: runtest frameworks-services

Bug: 32913019
Change-Id: I16ca1682acca9cbe403812e520394688a026414b
2016-12-07 15:52:33 -08:00
Erik Kline
7549504970 Merge "Handle IpReachabilityMonitor errors better." am: 3af34c8e0a
am: 4467b79592

Change-Id: I5d4d2d9888d85a684425b8204785099f818e6546
2016-12-07 09:30:09 +00:00
Erik Kline
b406666cf5 Handle IpReachabilityMonitor errors better.
If construction of a new IpReachabilityMonitor throws an IAE then
log it and immediately call onProvisioningFailure().

Test: runtest frameworks-wifi
      passes, except for selectQualifiedNetworkDoesNotChooseDeletedEphemeral()
      which fails with an NPE for unrelated reasons.

Bug: 31038971
Bug: 31742703
Change-Id: Ie91b8bdd509d06ad54d062bf446e74c092eb096c
(cherry picked from commit e452660466)
2016-12-07 16:23:26 +09:00
Jeremy Joslin
33e8de479a Merge "API for requesting network recommendations." am: 800a4e753e
am: 2b57c69e25

Change-Id: I8f2357942919193a22e97e4f1d9ec415b736565c
2016-12-07 00:05:29 +00:00
Jeremy Joslin
2b57c69e25 Merge "API for requesting network recommendations."
am: 800a4e753e

Change-Id: Icda431682a283051d4f5f5052dc70b8ab8e01dc9
2016-12-06 23:58:13 +00:00
Bill Yi
82834baa35 Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD 2016-12-06 15:17:16 -08:00
Jeremy Joslin
d1daf6d22a API for requesting network recommendations.
Defining a new system API that will allow the system to request
network recommendations from a NetworkScoreService implementation.

Test: Coming in a future CL.
BUG: 32909424
Merged-In: I2d5c0a843b928b04e87c1862a78702a02fd54c31
Change-Id: Idd33095c6cd2f5b391796c900399f18a2c40fcc3
2016-12-06 12:48:30 -08:00
Jeremy Joslin
1397837af3 API for requesting network recommendations.
Defining a new system API that will allow the system to request
network recommendations from a NetworkScoreService implementation.

Test: Coming after the API is approved.
BUG: 32909424
Change-Id: I2d5c0a843b928b04e87c1862a78702a02fd54c31
2016-12-06 07:33:25 -08:00
TreeHugger Robot
c770b052ad Merge changes I71ed6927,If5687e31
* changes:
  NetworkMonitor: send one DNS probe per web probe
  NetworkMonitor metrics: add first validation information
2016-12-03 20:08:47 +00:00
Hugo Benichi
147aa6d53b NetworkMonitor metrics: add first validation information
This patch adds first validation information to:
  - ValidationProbeEvent, by extending the probe_type int field of to
    also include a bit indicating if the probe was part of a first
    validation attempt or not.
  - NetworkMonitorEvent, by defining new contants for the event_type
    field.

Test: $ runtest frameworks-net
      + manually generating events and inspecting the
        output of $ adb shell dumpsys connmetrics list
Bug: b/32198726
Change-Id: If5687e310ddd18ed3096f8ecbdfc2ef866519234
2016-12-04 03:38:54 +09:00
Jeff Sharkey
d3f689bf14 Switch over to new "time.android.com" NTP pool.
Also add logging to measure success/failure details.

Test: builds, boots, and NTP fix obtained
Bug: 32969463
Change-Id: I66a8a78480e087acdcf8a11e79f80b7a7a4969c9
2016-12-02 12:25:03 -07:00
Jeff Sharkey
fb833f38a0 Detect content:// leaving apps without grants.
Developers regularly put content:// Uris into Intents, but they can
easily forget to add FLAG_GRANT_READ_URI_PERMISSION to actually
extend a permission grant to the receiving app.

Also fix NPE when path is missing.

Test: builds, boots, common actions work without triggering
Bug: 32447617, 31900890
Change-Id: Ic6054b1d73de50967cf7fe66abc293c60a41b97e
2016-12-01 15:01:19 -07:00
Amin Shaikh
fb0cd67264 Merge "Refactor NetworkScoreAppManager for testing." am: 3af97482f1 am: a8fc97d2de am: d136025272
am: f9f477454e

Change-Id: Ied1038387d5be28a4d723b71dc633ed035125c1b
2016-12-01 02:31:36 +00:00
Amin Shaikh
f9f477454e Merge "Refactor NetworkScoreAppManager for testing." am: 3af97482f1 am: a8fc97d2de
am: d136025272

Change-Id: I2190eb09039d7abc51d4752c410d1d38e220564b
2016-12-01 02:26:50 +00:00
Amin Shaikh
d136025272 Merge "Refactor NetworkScoreAppManager for testing." am: 3af97482f1
am: a8fc97d2de

Change-Id: I34ed2f31eaa1336990c941ee63eea0c1ddbc305c
2016-12-01 02:21:03 +00:00
Amin Shaikh
a8fc97d2de Merge "Refactor NetworkScoreAppManager for testing."
am: 3af97482f1

Change-Id: I99537b7841021704c162db6b8fe3d472ede1e991
2016-12-01 02:10:55 +00:00
Amin Shaikh
aa09aa0210 Refactor NetworkScoreAppManager for testing.
Test: runtest frameworks-services && runtest frameworks-core
Change-Id: Ie2172009e9ba0438050488fe0aea6408f852c2c2
2016-11-30 13:52:43 -08:00
TreeHugger Robot
776a2402fa Merge "Revert "Introduce RoughtimeClient"" 2016-11-28 17:54:37 +00:00
Darren Krahn
10a092d9a3 Revert "Introduce RoughtimeClient"
This reverts commit 89ef028898.

Change-Id: I74826aa6990891df3be4f931b242398824c370d1
2016-11-28 16:19:40 +00:00
Jeff Sharkey
f640cd318d Merge "StrictMode to detect untagged network traffic." am: 67fe28d925 am: db5ed5beb1 am: 3391f3376e
am: 55727aaede

Change-Id: I272964fc9c2a9e350bacc0586dd6b2d4a23c5f51
2016-11-21 23:05:12 +00:00
Jeff Sharkey
55727aaede Merge "StrictMode to detect untagged network traffic." am: 67fe28d925 am: db5ed5beb1
am: 3391f3376e

Change-Id: I942f9c44a8c3b1abf39694816a34790df3e224ad
2016-11-21 21:58:02 +00:00
Jeff Sharkey
3391f3376e Merge "StrictMode to detect untagged network traffic." am: 67fe28d925
am: db5ed5beb1

Change-Id: Id6ce5cfedab250f25c0eb8b0c49971e9e20cbeb2
2016-11-21 21:48:31 +00:00
Jeff Sharkey
db5ed5beb1 Merge "StrictMode to detect untagged network traffic."
am: 67fe28d925

Change-Id: I52cdce87d87ec503294e431c8f22e87235bdbf79
2016-11-21 21:43:58 +00:00
Treehugger Robot
67fe28d925 Merge "StrictMode to detect untagged network traffic." 2016-11-21 21:33:15 +00:00
Jeff Sharkey
763a140796 StrictMode to detect untagged network traffic.
Define some constants for early use in AOSP code.

Test: builds, boots, all common traffic tagged
Bug: 30943431
Change-Id: Ia58a8933bccfddbc027afb78c63ae65bd71ce562
2016-11-21 12:15:16 -07:00
Casey Dahlin
89ef028898 Introduce RoughtimeClient
Roughtime is Google's new network time protocol[1] and we'd like to
start using it for some devices in place of/in addition to NTP. This
patch gets the beginnings of an implementation off the ground, with tests.

[1] https://roughtime.googlesource.com/roughtime/

Test: New unit tests pass
Bug: 30834326
Change-Id: I401d8ad59c82dda514fd3c4be63804f46814251d
2016-11-18 13:16:35 -08:00