Commit Graph

8502 Commits

Author SHA1 Message Date
Chalard Jean
b10ab41350 [NS B10] Cleanup : remove mRematchedNetworks
This is better computed by the code that applies the change
than by the code that computes the reassignment

Test: FrameworksNetTests
Change-Id: I13e2764fd9b29145499085c3bb56de88a97d6c3c
2020-02-12 21:23:45 +09:00
Chalard Jean
96a4f4b8de [NS B09] Create NetworkRanker
Bug: 113554781
Test: FrameworksNetTests
Change-Id: Ia534247144f479fe896e1a6e05b906103cd10005
2020-02-12 20:57:45 +09:00
Chalard Jean
f955f8eb6c [NS B08] More simplification
Only computing the reassignment does not actually change the
default network.

Test: FrameworksNetTests
Change-Id: I21ddf5cc1e3d3817055dbda4246e38ceb0732407
2020-02-12 20:57:44 +09:00
Chalard Jean
a6014db965 [NS B07] More simplification
The new reassignment does not contain these useless lines
any more.

Test: FrameworksNetTests
Change-Id: I1583aebe94e529ce2b36e191a6e1f49c976bf29a
2020-02-12 20:57:44 +09:00
Chalard Jean
46a62378ec [NS B06] Simplification
This check is now unnecessary, seeing how the code adding these
changes is now guaranteed to only add at most one change for
each request.

Test: FrameworksNetTests
Change-Id: Ia0443602d9c89ee413e956df9c7b79f8f74813f7
2020-02-12 20:57:43 +09:00
Chalard Jean
7feb6ed384 [NS B05] Remove old dead code
Test: FrameworksNetTests
Change-Id: I553721b327b76ede0e76b9fb7a0130fcae012175
2020-02-12 20:52:17 +09:00
Chalard Jean
857a1719a1 [NS B04] Make the network selection request-major.
This patch marks the most important turning point of this
refactoring. Cleanups removing unused code will follow.

Replace the old network-major reassignment computation with a
much simpler and faster loop that takes each request and assigns
it the highest-scoring network.

All tests pass, of course.

Bug: 113554781
Test: FrameworksNetTests
Change-Id: Ie143802995155151a38a4eb1d2f26c3f29e556bd
2020-02-12 20:52:17 +09:00
Chalard Jean
4970757c26 [NS B03] Add debug log showing the reassignment
dumpString for a reassignment looks like :

NetworkReassignment :
  Rematched networks : [100 CELLULAR], [101 WIFI]
  6 : 100 → 101
  8 : null → 101

toString looks like :

NetReassign [4 : 100 → 101, 5 : null → 101]

If no changes, then it looks like
NetworkReassignment : no changes

Bug: 113554781
Test: Manual
Change-Id: If9eeadb7ee317dee2d91ca1feca3091ae39e9bae
2020-02-12 20:52:17 +09:00
Chalard Jean
d7f762d7be [NS B02] Split out a function to apply a NetworkReassignment
This makes the rematchAllNetworksAndRequests function, which
is the nexus of the rematching code, very straightforward and
easy to read.

Bug: 113554781
Test: FrameworksNetTests
Change-Id: I5cea4ed7e06439494700d88ab202b696402fa360
2020-02-12 20:52:17 +09:00
Chalard Jean
57cc7cb461 [NS B01] Move the computation loop to a separate function
Bug: 113554781
Test: FrameworksNetTests
Change-Id: I6c28c7af5c600d35aa1e9328b6c988dadb921f51
2020-02-12 20:52:17 +09:00
Chalard Jean
64520dc488 [NS A44 2/2] Apply requests after all networks rematching is computed
This patch finally separates completely computing the rematch
from all the side effects. A collateral effect of this is to
compute correctly the background network state in
rematchNetworkAndRequests, which compensates the breakage
from the previous patch.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: I998c729c385940168fcd6ba3f2e01911f1844ce1
2020-02-12 20:52:17 +09:00
Chalard Jean
6a4dfac6b8 [NS A44 1/2] Update linger state before processing listens
To compute accurately whether a network is in the background, the
linger state needs to be updated. Do that before computing whether
a network is in the background and possibly calling
applyBackgroundChangeForRematch.

However ! As of this patch, rematchNetworksAndRequests computes
a wrong value when adding to the list of affected networks, because
it is looking at intermediate global state. Somehow this used to
compensate exactly for the way reading back the state was wrong.
There might have been a few undetected bugs there, but none is
known.

As such, as of this patch, rematchNetworksAndRequests still
computes a wrong value while the computation when applying that
state now computes the right one, so the tests do not pass.
This patch must be checked in together with A44 2/2 which will
fix the computation in rematchNetworksAndRequests, but is kept
separate for ease of review.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: Iaeed0d11bfa09f292f232ae020e944e430bc0184
2020-02-12 20:52:17 +09:00
Chiachang Wang
f7a0f125db Add permission check for CaptivePortal#reevaluateNetwork
CaptivePortal#reevaluateNetwork is added as a system API which
requires a proper permission check.

Bug: 148379628
Test: Manually check with captive portal
Test: atest FrameworksNetTests
Test: make test-api-stubs-docs-update-current-api \
      system-api-stubs-docs-update-current-api

Change-Id: I3f974339d5bd53a6f6ecb0842c02a8264dc3a5f9
Merged-In: I559d42089aeb09801d14c251c5165fca793c3cb3
2020-02-12 11:29:24 +00:00
Chiachang Wang
ca2105f597 Add permission check for CaptivePortal#reevaluateNetwork
CaptivePortal#reevaluateNetwork is added as a system API which
requires a proper permission check.

Bug: 148379628
Test: Manually check with captive portal
Test: atest FrameworksNetTests
Test: make test-api-stubs-docs-update-current-api \
      system-api-stubs-docs-update-current-api

Change-Id: I559d42089aeb09801d14c251c5165fca793c3cb3
2020-02-12 11:28:55 +00:00
Automerger Merge Worker
eb3eb29b5d [automerger skipped] Merge changes Ibc9b1965,I288ea32f am: 7fa63afe6d am: 54a520d22f am: 4743dbe339 -s ours
am skip reason: Change-Id I35fc4a814238635fa95981649c27230dda319afa with SHA-1 72106b0b48 is in history

Change-Id: I12a9deb9ada16ad5438844a1b057047188ecc05b
2020-02-12 06:51:35 +00:00
Automerger Merge Worker
9addc26568 [automerger skipped] Add a systemapi constructor for NetworkAgent am: 0900154ef5 am: 1021194560 am: b79e7f919c -s ours
am skip reason: Change-Id I288ea32fac07a9a486e2ea451a2c9b098446a74c with SHA-1 fd1758d45e is in history

Change-Id: I5e28684a0aa3734b53b1316823b179b9895d0793
2020-02-12 06:51:31 +00:00
Automerger Merge Worker
4743dbe339 Merge changes Ibc9b1965,I288ea32f am: 7fa63afe6d am: 54a520d22f
Change-Id: Ie9e18056da529defae5c5a0065607cd972d30b80
2020-02-12 06:35:42 +00:00
Automerger Merge Worker
b79e7f919c Add a systemapi constructor for NetworkAgent am: 0900154ef5 am: 1021194560
Change-Id: I091a6c7d8e92c22ca9393b5c974fcda5356d4102
2020-02-12 06:35:39 +00:00
Automerger Merge Worker
54a520d22f Merge changes Ibc9b1965,I288ea32f am: 7fa63afe6d
Change-Id: I6eb675ddfa609dcc3031e916ce49959e42cf53f6
2020-02-12 06:25:49 +00:00
Automerger Merge Worker
1021194560 Add a systemapi constructor for NetworkAgent am: 0900154ef5
Change-Id: I3fa3ec32d3c580ba0b7f2d515e08d27dd6af5bcd
2020-02-12 06:25:42 +00:00
Aaron Huang
c2b200e46b Fix invalid usage of javadoc
CP from ag/10125651

Test: this change removes invalid usage
Change-Id: Ibc9b1965ec7aa545c0dae71d741c3802d3a9fa12
Merged-In: I35fc4a814238635fa95981649c27230dda319afa
2020-02-12 06:10:10 +00:00
Roshan Pius
d499517306 NetworkRequest: Embed requestor uid & packageName
Add the requestorUid & requestorPackageName fields to
NetworkCapabilities. This is populated by CS when
a new network request is received.
These 2 requestor fields are also optionally used for network
matching. All of the regular app initiated requests will have the
requestor uid and package name set by connectivity service. Network
agents can optionally set the requestorUid and requestorPackageName
to restrict the network created only to the app that requested the network.

This will help removing the necessity for the various specifiers to embed
the uid & package name info in the specifier for network matching.

Note: NetworkSpecifier.assertValidFromUid() is deprecated & removed in
favor of setting the uid/package name on the agent to restrict the
network to a certain app (useful for wifi peer to peer API & wifi aware).

Bug: 144102365
Test: Verified that wifi network request related CTS verifier tests
pass.
Test: Device boots up and connects to wifi networks
Change-Id: I207c446108afdac7ee2c25e6bbcbc37c4e3f6529
Merged-In: I207c446108afdac7ee2c25e6bbcbc37c4e3f6529
2020-02-12 04:42:58 +00:00
Cody Kesting
f2852480a0 Include NetworkCapabilities and LinkProperties in DataStallReport.
DataStallReport is updated to include the NetworkCapabilities and Link
Properties for the Network being reported on. This provides a more
complete picture of the Network conditions when the suspected data stall
was detected.

Bug: 148966398
Test: atest FrameworksNetTests
Change-Id: I913cf18c348b9f688f9d2a3d25a71bc94eb8f000
2020-02-11 08:50:59 -08:00
Chalard Jean
0900154ef5 Add a systemapi constructor for NetworkAgent
Bug: 138306002
Bug: 139268426
Test: atest FrameworksNetTests FrameworksWifiTests FrameworksTelephonyTests
      make doc-comment-check-docs
Change-Id: I288ea32fac07a9a486e2ea451a2c9b098446a74c
Merged-In: I288ea32fac07a9a486e2ea451a2c9b098446a74c
2020-02-11 16:26:10 +08:00
Automerger Merge Worker
dba16a63ca [automerger skipped] Merge "Fix review comments on aosp/1213524" am: 100e0b9a51 -s ours am: 79a71ed587 -s ours am: 6f920f452d -s ours
am skip reason: Change-Id I621cfbe165996c67b201ca2dd2f95a5ab9af10ee with SHA-1 8dd13a8109 is in history

Change-Id: I0fe69f7c3e729f4317b7bbead5d4dc575fa83ba6
2020-02-11 04:05:16 +00:00
Automerger Merge Worker
6f920f452d [automerger skipped] Merge "Fix review comments on aosp/1213524" am: 100e0b9a51 -s ours am: 79a71ed587 -s ours
am skip reason: Change-Id I621cfbe165996c67b201ca2dd2f95a5ab9af10ee with SHA-1 ab2fed7241 is in history

Change-Id: I6a138aa326a628fca7eda309f5627dd47a0ca56e
2020-02-11 03:52:28 +00:00
Automerger Merge Worker
79a71ed587 [automerger skipped] Merge "Fix review comments on aosp/1213524" am: 100e0b9a51 -s ours
am skip reason: Change-Id I621cfbe165996c67b201ca2dd2f95a5ab9af10ee with SHA-1 ab2fed7241 is in history

Change-Id: I1016fc76028aeafa9f15841b4e2951957aa11578
2020-02-11 03:43:38 +00:00
Aaron Huang
100e0b9a51 Merge "Fix review comments on aosp/1213524" 2020-02-11 03:33:08 +00:00
Chalard Jean
75a6104e2a Fix review comments on aosp/1213524
This is necessary to avoid subsequent conflicts.

Test: none needed
Change-Id: I6e2cd9188e0e4bd7c71c6c56635f192dce73f325
Merged-In: I621cfbe165996c67b201ca2dd2f95a5ab9af10ee
2020-02-10 08:28:04 +00:00
Automerger Merge Worker
338913f260 Merge "rm libbinderthreadstate" am: fc72c2ee39 am: 40c31cb9ee am: a209886365
Change-Id: I167e26697d1356280cec9c5eefb361359f6da4a8
2020-02-09 23:54:34 +00:00
Automerger Merge Worker
a209886365 Merge "rm libbinderthreadstate" am: fc72c2ee39 am: 40c31cb9ee
Change-Id: I25aacc3f1cd9c3544e90934c37cff5a973a7bd7b
2020-02-09 23:44:07 +00:00
Automerger Merge Worker
40c31cb9ee Merge "rm libbinderthreadstate" am: fc72c2ee39
Change-Id: Ib7de947aa4ee5b349c9576355869702ac94d8624
2020-02-09 23:27:45 +00:00
Treehugger Robot
fc72c2ee39 Merge "rm libbinderthreadstate" 2020-02-09 23:06:21 +00:00
Automerger Merge Worker
cdf4ba24f4 Merge "[NS A43] Separate updating the linger timer and sending LOSING" am: 30394e2a2b am: ad0dc3c5b3 am: 7484cb5180
Change-Id: Ia51cd7174e24744c8b2d3566f9e7b12f47504564
2020-02-09 07:34:46 +00:00
Automerger Merge Worker
41170a6c11 Merge "[NS A42] Move writing to the reassignment to the computation" am: 358eb47a06 am: 52aa90906f am: 2ce8a2baf3
Change-Id: If7fc3f8d859cfa7ba0bb7d638dbe5cae741cae71
2020-02-09 07:34:27 +00:00
Automerger Merge Worker
7484cb5180 Merge "[NS A43] Separate updating the linger timer and sending LOSING" am: 30394e2a2b am: ad0dc3c5b3
Change-Id: Id7ed8f80307d2e1252195a6aef62e51d0c4e7f27
2020-02-09 07:21:19 +00:00
Automerger Merge Worker
2ce8a2baf3 Merge "[NS A42] Move writing to the reassignment to the computation" am: 358eb47a06 am: 52aa90906f
Change-Id: Iebe3dbd3b98f4b92486e86c48b0e50b6713b2aa6
2020-02-09 07:20:57 +00:00
Automerger Merge Worker
ad0dc3c5b3 Merge "[NS A43] Separate updating the linger timer and sending LOSING" am: 30394e2a2b
Change-Id: I4b8e7eec2df77d04700582542d6f3f2fb455c2af
2020-02-09 07:06:13 +00:00
Automerger Merge Worker
52aa90906f Merge "[NS A42] Move writing to the reassignment to the computation" am: 358eb47a06
Change-Id: Ic04c72d0720bb53a38329dbcbc75cd914e1296c0
2020-02-09 07:05:54 +00:00
Chalard Jean
30394e2a2b Merge "[NS A43] Separate updating the linger timer and sending LOSING" 2020-02-09 06:51:06 +00:00
Chalard Jean
358eb47a06 Merge "[NS A42] Move writing to the reassignment to the computation" 2020-02-09 06:50:48 +00:00
Automerger Merge Worker
aea4937e79 Merge "[NS A41] Cut out a function to update NAI info" am: 2d45ce0b69 am: 5c78cd3eac am: 1a43b229dd
Change-Id: Ie40f6e1428a7d3a98bb2b83bb6ac9f9224aa3de7
2020-02-09 05:45:49 +00:00
Automerger Merge Worker
1a43b229dd Merge "[NS A41] Cut out a function to update NAI info" am: 2d45ce0b69 am: 5c78cd3eac
Change-Id: If22b44893c33c3640a85eed7e6dc0ce888018059
2020-02-09 05:33:29 +00:00
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
a026c149f3 Merge "Fix typo in ConnectivityDiagnosticsManager constant." am: 1e304edffd am: 80b276cbae am: d8dd480bbf
Change-Id: I0677a6a31defcb6412f132dcbbfd54f02c82baf7
2020-02-07 17:37:44 +00:00
Automerger Merge Worker
d8dd480bbf Merge "Fix typo in ConnectivityDiagnosticsManager constant." am: 1e304edffd am: 80b276cbae
Change-Id: Iab752a848a8017fbfdc4517502d5a39d8201a682
2020-02-07 17:22: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
TreeHugger Robot
188bf74fd6 Merge "Use framework-tethering-stub instead of framework-tethering" 2020-02-07 11:32:23 +00:00