Commit Graph

276853 Commits

Author SHA1 Message Date
Hugo Benichi
ef148edaa2 DO NOT MERGE: ConnectivityManager: a simpler CallbackHandler
am: 4983e55853  -s ours

Change-Id: I806d5d79994785357390707d77760af3af725477
2016-12-09 09:21:22 +00:00
Philip P. Moltmann
6e8a33a583 DO NOT MERGE: Indicate the NsdServiceInfo attributes are only filled in for a resolved service.
am: 29154b000f  -s ours

Change-Id: I5c7c11dc4f8112f0ca89b482c2ba10a6a94abfba
2016-12-09 09:20:02 +00:00
Jeremy Klein
3cd1ae2261 DO NOT MERGE: Add a null check for the OnStartTetheringCallback.
am: c8e4cc8e99  -s ours

Change-Id: I3290e0f17c8d29f7e7216687f85b7487a3b85ac5
2016-12-09 09:19:21 +00: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
5910f412bd Merge changes from topic 'framework-net-aosp'
am: 25afce88a6

Change-Id: I04262e6b654c8ce0fd44139d5568783d75ccbe7b
2016-12-09 03:31:44 +00:00
Hugo Benichi
6765bc08d0 DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents
am: f99a33a1b4  -s ours

Change-Id: Iedfe60899226b6007963b0852f87ecebb5bc987e
2016-12-09 03:31:37 +00:00
Hugo Benichi
c50e9972dd DO NOT MERGE: TokenBucket for rate-limiting and throttling
am: 05ad47add8  -s ours

Change-Id: I7f5a7a47d7e430fc503612bfd0a844b5ffe1bde9
2016-12-09 03:30:56 +00:00
Hugo Benichi
f3b4c26453 DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings
am: 8c9e4b68f0  -s ours

Change-Id: Ie3265557cacf2014ace63fcd73f1334330558631
2016-12-09 03:29:58 +00:00
Lorenzo Colitti
d1c92f25b3 DO NOT MERGE: CaptivePortalLogin: set mixed content policy to compatibility.
am: b55bf38351  -s ours

Change-Id: Ia5ca5f84367fd92848aa03446617bb296d4c93b3
2016-12-09 03:28:51 +00:00
Hugo Benichi
a67ede1e15 DO NOT MERGE: Add IP conn metrics to dumpsys and bug reports
am: 5635c270a1  -s ours

Change-Id: Ia9b6e6887fd80211ff054584127ec9141a22fd57
2016-12-09 03:28:06 +00:00
Hugo Benichi
0e67ef7d3f DO NOT MERGE: IpConnectivity metrics: add version number
am: 9df2ae138b  -s ours

Change-Id: If27714f6dc3475030da891cd25a0f8e174ea83e3
2016-12-09 03:27:23 +00:00
Treehugger Robot
25afce88a6 Merge changes from topic 'framework-net-aosp'
* changes:
  DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents
  DO NOT MERGE: TokenBucket for rate-limiting and throttling
  DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings
  DO NOT MERGE: CaptivePortalLogin: set mixed content policy to compatibility.
  DO NOT MERGE: Add IP conn metrics to dumpsys and bug reports
  DO NOT MERGE: IpConnectivity metrics: add version number
2016-12-09 03:19:13 +00: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
Hugo Benichi
05ad47add8 DO NOT MERGE: TokenBucket for rate-limiting and throttling
This patch adds a TokenBucket class that can accumulate and distribute
tokens over time.

Test: comes with unit tests.
Bug: 32198637

(cherry picked from commit 998493f0ee)

Change-Id: I4012ae6d02f7004bceee9a2ba03914f2a2506031
2016-12-09 11:21:29 +09:00
Hugo Benichi
8c9e4b68f0 DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings
Test: IpConnectivityMetricsTest passes. Also manually changed the new
setting and verified the buffer size is as expected after flushing the
buffer.
Bug: 32198637

(cherry picked from commit 05686dbb6b)

Change-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d
2016-12-09 11:21:26 +09:00
Lorenzo Colitti
b55bf38351 DO NOT MERGE: CaptivePortalLogin: set mixed content policy to compatibility.
This makes the policy for mixed HTTP/HTTPS content match Chrome.
This allows us to display login pages where unimportant
subresources are HTTP.

Bug: 32171569

(cherry picked from commit 625166377b)

Change-Id: Ia82958192d978280715442e182c34f9da5c88c66
2016-12-09 11:21:24 +09:00
Hugo Benichi
5635c270a1 DO NOT MERGE: Add IP conn metrics to dumpsys and bug reports
Test: manually created a bug report and inspected content.

(cherry picked from commit 51d14cb607)

Change-Id: I9649cc2f9bb7a1975e60baaae55fcdb2a48c3b93
2016-12-09 11:21:20 +09:00
Hugo Benichi
9df2ae138b DO NOT MERGE: IpConnectivity metrics: add version number
This patch adds a version field to ipconnectivity.proto and populates it
to 2, which is the logical version number for NYC-MR2.

Test: IpConnectivity{EventBuilder,Metrics}Test pass
Bug: 32127906

(cherry picked from commit d680d4c856)

Change-Id: If8f167c0dc4c1abe0e235e2adfd131168a4ddc52
2016-12-09 11:21:11 +09:00
Yoshinori Hirano
435db7e690 Merge "Don't include front most excluded task in Multi-Window mode"
am: a8c2c229d7

Change-Id: If5c1a8de2cc951d8ec97b40c57cbbc8313137a37
2016-12-08 21:05:16 +00:00
Treehugger Robot
a8c2c229d7 Merge "Don't include front most excluded task in Multi-Window mode" 2016-12-08 20:52:15 +00:00
Lorenzo Colitti
0a7f2d076d Merge changes from topic 'framework-net-aosp'
am: b92aa5bdfd

Change-Id: I9f4cb99312b61e47bfb80f35a5c2478bc1be2473
2016-12-08 10:15:03 +00:00
Etan Cohen
a8b73b23d6 DO NOT MERGE: [CS] Remove timeout event after first available
am: bf3b1bad15  -s ours

Change-Id: I24ccd42ff2078ffac5560a132dcd2432118f6788
2016-12-08 10:14:55 +00:00
Hugo Benichi
2a2e22ab23 DO NOT MERGE: ApfTest: tag tests with @SmallTest or @MediumTest
am: 5d2654124e  -s ours

Change-Id: I8cfbe35c719dc2f135ec695f346c555fb45dfa58
2016-12-08 10:14:16 +00:00
Lorenzo Colitti
efd928fe56 DO NOT MERGE: Unbreak TetherInterfaceStateMachineTest.
am: 5bce5a16b1  -s ours

Change-Id: I820b911f737e8b00ff3069505a2412ba9fdf3e1c
2016-12-08 10:13:37 +00:00
Lorenzo Colitti
d1e22a3f07 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
am: 7ceef950a0  -s ours

Change-Id: I866c317dbec720a5ec6c64b1e7e14437d132ce7e
2016-12-08 10:12:57 +00:00
Lorenzo Colitti
bcb7e32954 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
am: 3c295b59f5  -s ours

Change-Id: I72123940742a0ca1418f8c892da82b6bb984f4ae
2016-12-08 10:11:44 +00:00
Lorenzo Colitti
a84ede299c DO NOT MERGE: Move FakeSettingsProvider to a common location.
am: b8df76e413  -s ours

Change-Id: I017a302961d252a3fe4e062a0642b79d64230f54
2016-12-08 10:11:01 +00:00
Hugo Benichi
e47b0886ad DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
am: 5d540d1410  -s ours

Change-Id: I2bd4e64b397fe2bd6ec8a11b02753c26df1a2000
2016-12-08 10:10:22 +00:00
Calvin On
8006bd5c66 DO NOT MERGE: Add option to skip and avoid captive portals.
am: 1f64f3fd14  -s ours

Change-Id: I549bc49715a6476069f30aa206d8b4d1310fe6c5
2016-12-08 10:09:43 +00:00
Hugo Benichi
d063978acf DO NOT MERGE: ApfFilter: use elapsedRealTime for RA lifetime
am: dafc44ea11  -s ours

Change-Id: Ic80e642dffa4f1246e91aeaa5bdedf450f703ccd
2016-12-08 10:09:05 +00:00
Hugo Benichi
eb98bc95d2 DO NOT MERGE: Do not synchronize boolean reads/writes
am: 94dcb3c3fd  -s ours

Change-Id: If30f221e24c897be9e2fddf66a9d6c9db2b5a431
2016-12-08 10:08:15 +00:00
Hugo Benichi
2889968553 DO NOT MERGE: ApfFilter: systematically use u8, u16, u32 getters
am: 4104ff9220  -s ours

Change-Id: I699a4d4403e21c3ebb59e29c7732dba78eb006d7
2016-12-08 10:07:12 +00:00
Hugo Benichi
976ef7538a DO NOT MERGE: Add fuzzing tests to ApfFilter RA processing
am: 0668a61d82  -s ours

Change-Id: I961d0fd200c1317e1e81657071acf1fe7ae43f6f
2016-12-08 10:06:34 +00:00
Erik Kline
eb6be2c826 DO NOT MERGE: Support timeouts for requestNetwork() invocations.
am: 3841a48d0a  -s ours

Change-Id: Ia0431810a2a2081116bc5c31b4c6a37ab09a69ad
2016-12-08 10:05:58 +00:00
Pierre Imai
8a73b2896d DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network.
am: accd5fcb79  -s ours

Change-Id: Ib54fcd8b268872bc599e2b4dedaa7bbb4d7f8956
2016-12-08 10:05:18 +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
Etan Cohen
bf3b1bad15 DO NOT MERGE: [CS] Remove timeout event after first available
Guarantees that timeouts are only delivered if a network never
becomes available. Once a network is available the timeout is
canceled.

Bug: 31402633
Test: all timeout related unit tests pass (new one added)

(cherry picked from commit 681fcda589)

Change-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748
2016-12-08 17:13:37 +09:00
Hugo Benichi
5d2654124e DO NOT MERGE: ApfTest: tag tests with @SmallTest or @MediumTest
Test methods not tagged with @{Small,Medium,Large}Test will not appear
in the Android Platform Continuous Testing dashboard.

Test methods tagged with @LargeTest will not be run in the Android
Platform Continuous Testing dashboard.

Test: ApfTest passes ($runtest frameworks-net)
Bug: 31479480

(cherry picked from commit 4195c28347)

Change-Id: Ia215fc8e2ccc61f6223c24fdf390e1e759de302f
2016-12-08 17:13:36 +09:00
Lorenzo Colitti
5bce5a16b1 DO NOT MERGE: Unbreak TetherInterfaceStateMachineTest.
This was broken by the implementation of IPv6 tethering, which
relies on various private classes which end up calling unmockable
final classes like NetworkInterface.

Making everything public like this is almost certainly not the
best way of fixing this test, but on the other hand there is
value to the test continuing to pass.

Test: runtest frameworks-net  # Everything passes.
Test: IPv6 tethering continues to work.

(cherry picked from commit 7e0eeca8ba)

Change-Id: I8a3cf466871c026f4ae0f5cfa73071338cdf5b7e
2016-12-08 17:13:36 +09:00
Lorenzo Colitti
7ceef950a0 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
This will give us a good place to put all the networking tests.

Fix: 31479480
Test: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest 'com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner'  # PASS

(cherry picked from commit ecc986d430)

Change-Id: I993eeaa5dec001c39389023f355f506129b356e7
2016-12-08 17:13:35 +09:00
Lorenzo Colitti
3c295b59f5 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
Removing the static dependency on guava reduces test compile time
by about 20 seconds on a Z840, thus substantially speeding up the
compile/test cycle.

Make FutureIntent public instead of package-private because it is
used directly by NetworkPolicyManagementServiceTest, which as of
this CL is now in a different package.

(cherry picked from commit 281a17c958)

Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.
Bug: 31479480
Change-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636
2016-12-08 17:13:35 +09:00
Lorenzo Colitti
b8df76e413 DO NOT MERGE: Move FakeSettingsProvider to a common location.
(cherry picked from commit 7df1a82802)

Test: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest
Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest
Test: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest
Test: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest
Bug: 31479480
Change-Id: I8d4d4de2937012dd33924f53e68f96241a9b2b4f
2016-12-08 17:13:34 +09:00
Hugo Benichi
5d540d1410 DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
This patch extracts into its own independent test a test sub-block looking
for a race condition when not waiting on handlers to become idle:
there is no way to prevent the race from not happening when looking for
it this way. This makes the test flakky.

This new independent test is tagged with @FlakkyTest(tolerance = 3).

Test: ConnectivityServiceTest passes, with higher probability.
Bug: 31479480

(cherry picked from commit c8c1027762)

Change-Id: I3c702bd981ed80ed606be0fb52d61eb3d7195a6f
2016-12-08 17:13:34 +09:00
Calvin On
1f64f3fd14 DO NOT MERGE: Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699

(cherry picked from commit be96da11cc)

Change-Id: I90c0f97fe0e41de4059bceae7b56ab3a70145696
2016-12-08 17:13:33 +09:00
Hugo Benichi
dafc44ea11 DO NOT MERGE: ApfFilter: use elapsedRealTime for RA lifetime
This patch replaces System.currentTimeMillis() with
SystemClock.elapsedRealTime() to make RA lifetime computation more
resilient to various external events inducing jumps in
currentTimeMillis().

Test: ApfTest passes.

(cherry picked from commit 305af8e98a)

Change-Id: If19011fc0c905948f2e42b975cfcc5f8672a95fb
2016-12-08 17:13:33 +09:00
Hugo Benichi
94dcb3c3fd DO NOT MERGE: Do not synchronize boolean reads/writes
This patch removes the synchronization around the private variable
mRunning inside of IpReachabilityMonitor and instead qualifeis the field
as volatile.

Synchronization is not needed for reads/writes on native fields or
object references because they are already guaranteed to be atomic.

Synchronization here was used for enforcing memory visibility across
concurrent threads indirectly through monitor acquire/release.
The volatile keyword achieves this in a more explicit way.

Also, this patch changes the way that probeAll() copies the
IpReachabilityMonitor's mIpWatchList by temporary holding mIpWatchList
keys into an ArrayList instead of a more expensive HashSet. Since Java
HashSet are just degenerated HashMaps, and that key iteration order is
based on key hash, the iteration order over this temporary collection
will be consistent for the same mIpWatchList.

Test: refactoring CL. Existing unit tests still pass.

(cherry picked from commit b0f1186c03)

Change-Id: I48d2b4d837a459150cd431b400ec01b87b48c014
2016-12-08 17:13:32 +09:00
Hugo Benichi
4104ff9220 DO NOT MERGE: ApfFilter: systematically use u8, u16, u32 getters
This patch adds a getUint8 getter for ByteBuffers and changes ApfFilter
to make uses of getUint8/16/32 everywhere.

The return types of getUint16 is also changed from long to int, which
will expand gracefully to long as an unsigned int as it is guaranteed to
be positive after getUint16.

Test: ApfTest passes

(cherry picked from commit 995dd94673)

Change-Id: I606ebc5aedfcacde400d27cc6bc37145769b122c
2016-12-08 17:13:32 +09:00
Hugo Benichi
0668a61d82 DO NOT MERGE: Add fuzzing tests to ApfFilter RA processing
Test: added new unit tests

(cherry picked from commit 8acea76a2b)

Change-Id: I847d7e4895766042043c0bba1c9b9a698a705d87
2016-12-08 17:13:31 +09:00