Commit Graph

7967 Commits

Author SHA1 Message Date
Automerger Merge Worker
5c78cd3eac Merge "[NS A41] Cut out a function to update NAI info" am: 2d45ce0b69
Change-Id: I668fe3095ee9184b50db83d8f52f572dc57cfa1f
2020-02-09 05:09:07 +00:00
Chalard Jean
2d45ce0b69 Merge "[NS A41] Cut out a function to update NAI info" 2020-02-09 04:56:37 +00:00
Automerger Merge Worker
80b276cbae Merge "Fix typo in ConnectivityDiagnosticsManager constant." am: 1e304edffd
Change-Id: Icaae03ca1895de4012deed1c1b81b16fad4ba439
2020-02-07 17:08:20 +00:00
Cody Kesting
1e304edffd Merge "Fix typo in ConnectivityDiagnosticsManager constant." 2020-02-07 16:57:19 +00:00
Steven Moreland
81c1f1dcc3 rm libbinderthreadstate
This library is empty, and its functionality has moved
into libbinder/libhwbinder.

Bug: 148692216
Test: N/A
Change-Id: I3ee973cef68281cb57b4912b4b66c798b5d9d715
2020-02-06 13:23:47 -08:00
Automerger Merge Worker
9970964bb1 Merge "Use waitForIdle() to wait for Threaded processing." am: 75c1d97c4c
Change-Id: Ida71ad5d045f87dd11877dc93d42885333bba336
2020-02-06 16:10:28 +00:00
Automerger Merge Worker
56fc4328d6 Merge "Fire ConnectivityDiagnostics callbacks on Connectivity reported." am: 0b3645740c
Change-Id: I60d418afb145238981c17cc9a29ff57dc42c1ff0
2020-02-06 16:10:05 +00:00
Automerger Merge Worker
1c80a4d95b Merge "Implement INetworkMonitorCallbacks#notifyDataStallSuspected." am: daeccbf13e
Change-Id: I20aab2e77056df67df5bf9e9d6bd1888cf17a558
2020-02-06 16:08:33 +00:00
Cody Kesting
75c1d97c4c Merge "Use waitForIdle() to wait for Threaded processing." 2020-02-06 15:54:53 +00:00
Cody Kesting
0b3645740c Merge "Fire ConnectivityDiagnostics callbacks on Connectivity reported." 2020-02-06 15:54:06 +00:00
Cody Kesting
daeccbf13e Merge "Implement INetworkMonitorCallbacks#notifyDataStallSuspected." 2020-02-06 15:47:26 +00:00
Chalard Jean
8fd82aea7e [NS A43] Separate updating the linger timer and sending LOSING
This will be necessary because updating the linger timer is
what lets the network agent know whether the network is

Test: ConnectivityServiceTest
Change-Id: I9b5a36f6d5eac5a404eff6740cd8f4dcbb0c2786
2020-02-06 18:04:13 +09:00
Chalard Jean
383f5ef79a [NS A42] Move writing to the reassignment to the computation
...instead of the side effect loop. This is a no-op refactoring.

Test: ConnectivityServiceTest
Change-Id: I8308d55eaff080efb22a7a43142492545e626cf5
2020-02-06 18:04:09 +09:00
Chalard Jean
24344d7e72 [NS A41] Cut out a function to update NAI info
Test: ConnectivityServiceTest
Change-Id: I6d92fb1699eb0acb1bcd7baa4a5d9d3e1c0dc728
2020-02-06 18:03:30 +09:00
Automerger Merge Worker
f614917d59 Merge "[NS A40] Read current reassignment state instead of global state" am: 47dad79bf6
Change-Id: I12ca40b29588c651c77d272bcde87fdbe8037f60
2020-02-06 04:23:11 +00:00
Chalard Jean
47dad79bf6 Merge "[NS A40] Read current reassignment state instead of global state" 2020-02-06 04:14:43 +00:00
Cody Kesting
d0bb3fe33a Use waitForIdle() to wait for Threaded processing.
Unit testing for ConnectivityDiagnostics API in ConnectivityServiceTest
is updated to use HandlerUtilsKt#waitForIdle. In the general case, this
takes the same time to run as verify-with-timeout (used previously).
However, test failures due to messages not being enqueued on the handler
(backed by the ConnectivityService Thread) won't incur the timeout
delay, as the thread will be idle sooner. This shortens the delay in the
event of a programming error.

Bug: 143187964
Test: atest FrameworksNetTests
Change-Id: Iae66309501bb83449ca735dfa5e972a9852cbcd0
2020-02-05 15:05:29 -08:00
Cody Kesting
5a9a2ae4b4 Fire ConnectivityDiagnostics callbacks on Connectivity reported.
When ConnectivityService#reportNetworkTested is called, the platform
needs to fire ConnectivityDiagnostics callbacks for registered callbacks
that are permissioned for the network being reported on. This adds a new
event to ConnectivityDiagnosticsHandler for invoking these callbacks.

Bug: 143187964
Test: compiles
Test: atest CtsNetTestCases ConnectivityServiceTest
Change-Id: Icc6bcf7a2411133d8ecd7477bc351dad9333f24f
Merged-In: Icc6bcf7a2411133d8ecd7477bc351dad9333f24f
2020-02-05 15:05:29 -08:00
Cody Kesting
b12ad4ca3a Implement INetworkMonitorCallbacks#notifyDataStallSuspected.
INetworkMonitorCallbacks defines notifyDataStallSuspected() for
notifying ConnectivityService of networks encountering a potential data
stall. A new event is introduced for ConnectivityDiagnosticsHandler to
process the notification and invoke the relevant
ConnectivityDiagnosticsCallbacks.

Bug: 143187964
Test: compiles
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: I70320bdda9855dced31e08e6a0b25329fb5cb535
Merged-In: I70320bdda9855dced31e08e6a0b25329fb5cb535
2020-02-05 15:05:28 -08:00
Automerger Merge Worker
89ee361837 Merge "Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras." am: e10545c736
Change-Id: I39b74228c6c2a48ace7ad36dba995fa6f91bfbb5
2020-02-05 20:09:32 +00:00
Cody Kesting
e10545c736 Merge "Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras." 2020-02-05 19:55:05 +00:00
Cody Kesting
83bb5fa762 Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras.
INetworkMonitorCallbacks defines notifyNetworkTestedWithExtras() for
notifying ConnectivityService of networks being tested along with a
PersistableBundle of extras. A new event is introduced for
NetworkStateTrackerHandler to notify the ConnectivityDiagnosticsHandler
before continuing with the normal processing for "network tested"
notifications. The event is also used in the
ConnectivityDiagnosticsHandler.

Bug: 143187964
Bug: 147391402
Test: compiles.
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: Iab29da790c0f5faae68227770bc3a84bbc94f124
Merged-In: Iab29da790c0f5faae68227770bc3a84bbc94f124
2020-02-05 18:48:12 +00:00
Cody Kesting
c95f96910b Fix typo in ConnectivityDiagnosticsManager constant.
This change fixes a typo in the value assigned to the constant
KEY_NETWORK_PROBES_ATTEMPTED_BITMASK, which is defined in
ConnectivityDiagnosticsManager.ConnectivityReport.

Bug: 148939502
Test: compiles
Change-Id: I63863efa8c69593012bf4e95d896db192c6bfb5c
2020-02-05 08:56:48 -08:00
Automerger Merge Worker
089b1c3273 Merge changes Ic1a5d032,I271e7f4d,I7af37281 am: f1211e9531
Change-Id: Ia1ec0ddbe841536f6525a9b5579603af620dae56
2020-02-05 00:59:17 +00:00
Chalard Jean
f1211e9531 Merge changes Ic1a5d032,I271e7f4d,I7af37281
* changes:
  [NS A39] Simplification
  [NS A38] Fill the initial reassignment
  [NS A37] Don't reassign requests multiple times
2020-02-05 00:53:28 +00:00
Automerger Merge Worker
05a3496121 Merge "Add separate user consent for Platform VPNs" am: e2684df6ef
Change-Id: I38ceff087e37f6ede6819e706c36ee9129a1cc6b
2020-02-05 00:07:41 +00:00
Benedict Wong
e2684df6ef Merge "Add separate user consent for Platform VPNs" 2020-02-04 23:56:16 +00:00
Benedict Wong
a73199168b Add separate user consent for Platform VPNs
This change adds a new VPN user consent flow (using the same text) for
granting the lesser OP_ACTIVATE_PLATFORM_VPN. A new
PlatformVpnConfirmDialog is created as a subclass to preserve all logic,
but ensure the right appop is granted for the relevant dialog.

Intent extras were considered, but are inherently unsafe, since the
caller may add any extras that they would want.

Bug: 144246835
Test: FrameworksNetTests passing
Change-Id: Ia6f36207d43c3748f938430c2780dcf29e5623f3
Merged-In: Ia6f36207d43c3748f938430c2780dcf29e5623f3
2020-02-04 21:05:36 +00:00
Automerger Merge Worker
b4a492f581 Merge changes Icb062ffb,I66c4e8f5,I85247411,Id47c19b7,Ib713c4ae, ... am: 0b32981970
Change-Id: I6b601f88b8411de9d1a5551d9b9b6c3e329087f4
2020-02-04 13:30:03 +00:00
Chalard Jean
7e416aa19e [NS A40] Read current reassignment state instead of global state
The reassignment state has the future value, but is transient
instead of global. With this, the reassignment loop does not
read from global state any more, so it's not affected by the
side effects from the loop.

This means future patches will be able to move the side effects
out of the computation.

Test: atest ConnectivityServiceTest
Change-Id: I43499f19730bcd94b691cfea83aa1ca1d3de75db
2020-02-04 21:18:25 +09:00
Chalard Jean
933ebfa503 [NS A39] Simplification
If newNetwork is satisfying this request, it means it is the old
satisfier. Plain and simple.

Test: ConnectivityServiceTest
Change-Id: Ic1a5d032801bac476b1c1f53da6f1c4c6056bff0
2020-02-04 16:49:54 +09:00
Chalard Jean
b7ebc8a28f [NS A36] Add a test for lost trusted capability
This bug will be drive-by fixed by the next refactoring, so
set up a test to see the difference.

Bug: 113554781
Test: this
Change-Id: Icb062ffbae904d1836a4a16fc5395687c3eda7b6
2020-02-04 16:49:54 +09:00
Chalard Jean
84292aaa46 [NS A38] Fill the initial reassignment
This is more expensive for now but it will allow subsequent patches
to read relevant state from the reassignment instead of from the
global state, which will stop the computation of the reassignment
from reading state that is mutated by the same loop. Eventually
this lets us completely split the computation from the side effects.
The ugly parts of this patch will be cleaned up later as a result,
namely in patches [NS B04] and [NS B05].

Test: ConnectivityServiceTest
Change-Id: I271e7f4d4bc81493c1ea212025b7130619592a8a
2020-02-04 16:49:54 +09:00
Chalard Jean
bf91f5f182 [NS A37] Don't reassign requests multiple times
This is an optimization that skips doing intermediate assignments
of networks to requests that will undergo multiple changes during
the recomputation.
It happens to fix a bug where some of these intermediate states
used to have a visible, transient side effect.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: I7af3728152a1cf7571de67f394088a5970ee3c1e
2020-02-04 16:49:54 +09:00
Chalard Jean
04bc807898 [NS A35] Send updated scores to factories at the end.
Test: ConnectivityServiceTests
Change-Id: I66c4e8f52e11bc7e199dd8c12d43b0b136a21f19
2020-02-04 16:49:53 +09:00
Chalard Jean
adf1aafb53 [NS A34] Still more simplification
Test: ConnectivityServiceTest
Change-Id: I85247411eb8fdfb3eae0e7c309ea9537e41cfb80
2020-02-04 16:49:53 +09:00
Chalard Jean
8e382110b8 [NS A33] Unify changing the default network
makeDefault() will be called in rematchAllNetworksAndRequests
in all cases and its first job is to set mDefaultNetwork.

The old code checks if the currently processing request is
the default request and assigns mDefaultNetwork if it is,
doing it earlier than in the new code iff the new default is
not null. However there is no good reason to assign this
member earlier in the non-null case than in the null case,
it's simpler if the same code path is used in both cases.
mDefaultNetwork is also not used between the old place where
it was set and the new place where it is set, so changing
the timing of the assignment has no observable side effects.

Test: ConnectivityServiceTest
Change-Id: Id47c19b73650ba66bff73b07edb8fd95c707e699
2020-02-04 16:49:52 +09:00
Chalard Jean
00419abe9e [NS A32] More simplification
Test: FrameworksNetTests
Change-Id: Ib713c4ae0100c8c242bbba87b2881311c5761869
2020-02-04 16:29:01 +09:00
Chalard Jean
967190ecd0 [NS A31] Simplification
The condition this is testing for cannot actually be false.

The only place where the code writes a null value into this
map is at the end of computeRequestReassignmentForNetwork :
reassignedRequests.put(nri, null).
This proves the code the if() block, which proves that
newNetwork.isSatisfyingRequest(nri.request.requestId) is true.

By definition newNetwork.isSatisfyingRequest(nri) implies that
nri.mSatifier == newNetwork, which proves that
previousSatisfier == newNetwork whenever newSatisfier is null.

Fixes: 146482072
Test: FrameworksNetTests
Change-Id: Ifd6faedce7d49757b82a5f341076ab208b0ccfcb
2020-02-04 16:28:20 +09:00
Chalard Jean
bf021685ca [NS A30] Note linger out of the rematch loop
This doesn't have to be tested every time.

Test: FrameworksNetTests
Change-Id: Ic5702c8b4bd096860fe55c4d9e4c465703561911
2020-02-04 16:24:23 +09:00
Chalard Jean
7c2f15e1a4 [NS A29] Call LOST callbacks at the end of the rematch.
Bug: 113554781
Test: FrameworksNetTests
Change-Id: I72dd210a956545c75b3c702338af779e119d70e7
2020-02-04 16:24:23 +09:00
Chalard Jean
88b2f9ecab [NS A28] Move setting the default network out of the rematch loop.
Bug: 113554781
Test: FrameworkNetTests NetworkStackTests
Change-Id: I02d85f17bf0ea37ae173f306f5a47d7551773c3a
2020-02-04 16:23:58 +09:00
Automerger Merge Worker
3f8a000e5c Merge changes I446a8595,I68d2293f am: 3914abccce
Change-Id: I8422163249ca637ab71b71777feded76e3225c2e
2020-02-03 22:34:25 +00:00
Benedict Wong
3914abccce Merge changes I446a8595,I68d2293f
* changes:
  Add VpnManager calls to ConnectivityService
  Add basic logic for profile-based VPNs
2020-02-03 22:31:37 +00:00
Automerger Merge Worker
dff0d295a9 Merge changes If8c8d1f3,I3a804a9f am: 49c185e487
Change-Id: I6139500edf9c93d2995b822b19e9e9aaf3beaa7c
2020-02-03 15:07:46 +00:00
Automerger Merge Worker
b14259e0bd Merge "Update javadocs for ConnectivityDiagnosticsManager." am: 5b6967bc01
Change-Id: Ia393d1ee102ae7dfc4a7b5698b5f3b4882605e7c
2020-02-03 15:07:20 +00:00
Automerger Merge Worker
89a5e805f9 Merge "Add callback registration in ConnectivityService." am: 29edc0ecc9
Change-Id: Idf067ebd9299ca036965b7c7f82c13a6f659a821
2020-02-03 15:06:50 +00:00
Treehugger Robot
49c185e487 Merge changes If8c8d1f3,I3a804a9f
* changes:
  [NS A27] Remove useless logs and a useless var
  [NS A26] Move available callbacks out of the rematch computation
2020-02-03 15:06:19 +00:00
Cody Kesting
5b6967bc01 Merge "Update javadocs for ConnectivityDiagnosticsManager." 2020-02-03 14:56:13 +00:00
Cody Kesting
29edc0ecc9 Merge "Add callback registration in ConnectivityService." 2020-02-03 14:55:54 +00:00