Commit Graph

14477 Commits

Author SHA1 Message Date
Chalard Jean
1324c9acef Merge changes Ib5cd2c27,I4448a354 into sc-dev
* changes:
  [NS10] Fix a bug where registerIgnoringScore is broken
  [NS09] Implement the new ranking code
2021-04-01 09:02:15 +00:00
Lorenzo Colitti
4a5ef290d1 Rename members in TestConnectivityManager. am: 9bbdac6275 am: a6d9d23180
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1659938

Change-Id: I71d41b70504eee31bd7ab235e1325e7f689a60c5
2021-04-01 08:39:18 +00:00
Lorenzo Colitti
cf5967991b Add the ability to affect ordering in the tethering unit tests. am: 3e09f80e8a am: bdb012f733
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635021

Change-Id: Id3a48f7092e0bed9f28cd4896a7d62ad82239758
2021-04-01 08:39:17 +00:00
Lorenzo Colitti
cece10d4e0 Rename members in TestConnectivityManager. am: 9bbdac6275 am: a6d9d23180
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1659938

Change-Id: If02ce4eed9804d705a575fe7171459dafba216c9
2021-04-01 08:39:16 +00:00
Lorenzo Colitti
ef85c9dcc4 Make Tethering file NetworkRequests only if needed. am: 2bcde0fd97 am: cce64f0dd7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556199

Change-Id: Id07332dfcdd7f3430a67fc7a7dcade4139c7c4ab
2021-04-01 08:39:16 +00:00
Lorenzo Colitti
ce664ec1cf Expose upstream requirements to UpstreamNetworkMonitor. am: 0e7e32ab2c am: 9dcd8587ed
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556198

Change-Id: I285334ac1096dcbd3102961f4d9bd7f44f2dcded
2021-04-01 08:39:15 +00:00
Lorenzo Colitti
a116b7f370 Add the ability to affect ordering in the tethering unit tests. am: 3e09f80e8a am: bdb012f733
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635021

Change-Id: Iee27da6e7f6972564ee062e789905197e8994aa9
2021-04-01 08:39:15 +00:00
Lorenzo Colitti
bd868cd5d0 Make Tethering file NetworkRequests only if needed. am: 2bcde0fd97 am: cce64f0dd7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556199

Change-Id: I66b565a18a850c020f1289566c646bdda1b6bd94
2021-04-01 08:39:15 +00:00
Lorenzo Colitti
9902d8c14f Expose upstream requirements to UpstreamNetworkMonitor. am: 0e7e32ab2c am: 9dcd8587ed
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556198

Change-Id: I47a5bdced72c17ecc5182f57623de1ae21f29036
2021-04-01 08:39:14 +00:00
Lorenzo Colitti
a6d9d23180 Rename members in TestConnectivityManager. am: 9bbdac6275
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1659938

Change-Id: I406e1acb5615bff8eae2690af4972ec5040bc77a
2021-04-01 08:04:34 +00:00
Lorenzo Colitti
bdb012f733 Add the ability to affect ordering in the tethering unit tests. am: 3e09f80e8a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635021

Change-Id: Iddf2d125678538248f7070899baffebfbc7529d3
2021-04-01 08:04:33 +00:00
Lorenzo Colitti
cce64f0dd7 Make Tethering file NetworkRequests only if needed. am: 2bcde0fd97
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556199

Change-Id: Ieaedc7d8d7bea358b42dc4e8e5b4533c69c7c8e4
2021-04-01 08:04:32 +00:00
Lorenzo Colitti
9dcd8587ed Expose upstream requirements to UpstreamNetworkMonitor. am: 0e7e32ab2c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556198

Change-Id: I862c58cbf368567e88b6ed89c1f92f96c95f7243
2021-04-01 08:04:31 +00:00
lifr
877fd475f5 Add session ID to VpnTransportInfo
- This will be visible only to apps with the NETWORK_SETTINGS
  permissions (signature), and will be redacted for all other callers.
- This string is expected to be the same as set by
  VpnService#setSession, and in general, VpnConfig.session. But it
  will be a general API that Vpn.java can call when setting the
  VpnTransportInfo.
- This string cannot be updated once the VPN NetworkAgent is connected.

Bug: 171872481
Ignore-AOSP-First: needed to prevent automerger race breaking build
Test: atest ConnectivityServiceTest
      atest VpnTransportInfoTest
      atest NetworkAgentTest
Change-Id: I883035262465238c35c5a931d89707f3e84feef8
Merged-In: I883035262465238c35c5a931d89707f3e84feef8
           (cherry-picked from ag/14008230)
2021-04-01 15:51:44 +08:00
lifr
65b9f96159 Add session ID to VpnTransportInfo
- This will be visible only to apps with the NETWORK_SETTINGS
  permissions (signature), and will be redacted for all other callers.
- This string is expected to be the same as set by
  VpnService#setSession, and in general, VpnConfig.session. But it
  will be a general API that Vpn.java can call when setting the
  VpnTransportInfo.
- This string cannot be updated once the VPN NetworkAgent is connected.

Bug: 171872481
Test: atest ConnectivityServiceTest
      atest VpnTransportInfoTest
      atest android.net.cts.NetworkAgentTest
Change-Id: I8d09e25b83f7ee8be21ec9c9bd3c72a251f1370d
Merged-In: I8d09e25b83f7ee8be21ec9c9bd3c72a251f1370d
           (cherry-picked from ag/14011912)
2021-04-01 15:46:31 +08:00
Chalard Jean
cf9ccc83b2 Merge "Expose sendNetworkScore that takes a NetworkScore" into sc-dev 2021-04-01 07:17:48 +00:00
Remi NGUYEN VAN
eeeed136e0 Allow connectivity tests to use hidden APIs
The tests have been building against hidden APIs to provide additional
coverage.

Test: m TetheringCoverageTests CtsNetTestCases
Bug: 182859030
Ignore-AOSP-First: needs manual cherry-picks
Change-Id: I37d748411a34f25834214a2412c49aed1423e526
2021-04-01 06:37:53 +00:00
Chiachang Wang
9a27925368 Update tests for onNetworkCreated and onNetworkDestroyed
Update test to:
1. verify onNetworkCreated callback called when network is
   created.
2. Verify onNetworkDestroyed callback called when agent
   updates its connection state to disconnect and native
   network is destroyed.

Bug: 178725261
Test: atest android.net.cts.NetworkAgentTest
Change-Id: Icd30440e0f553d0f97b860d0e69b4f3d4f0a2a1d
2021-04-01 11:13:42 +08:00
Remi NGUYEN VAN
6b1d41ac92 Merge "Add framework-connectivity-test-defaults" into sc-dev 2021-04-01 02:43:26 +00:00
Chalard Jean
e154dff521 Expose sendNetworkScore that takes a NetworkScore
Bug: 167544279
Test: FrameworksNetTests
CTS-Coverage-Bug: 184037351
Change-Id: I5dd9b526c53cb99a5e4ae87f1e3724a7a1870e78
2021-03-31 13:26:46 +00:00
Chalard Jean
0408f6c7d6 [NS09] Implement the new ranking code
At this stage, this is turned off. Unit tests will be
in a followup change.

Test: In a followup
Bug: 167544279
Change-Id: I4448a3546fbc1a3dddf757982c031c5f39ba2889
2021-03-31 20:59:47 +09:00
Chalard Jean
dfd53217e3 Merge changes Id7ee1bd3,I5ea44a94 into sc-dev
* changes:
  [NS08] Expose public NetworkScore API
  [NS07] Add the rest of the scoring policy
2021-03-31 11:42:19 +00:00
Lorenzo Colitti
9bbdac6275 Rename members in TestConnectivityManager.
These members are public mutable and their names are confusing.
Make them package-private and final.

Bug: 173068192
Test: test-only change
Change-Id: I87131c48f67b6614c25aa99e1cbc53196f49aa7c
2021-03-31 20:23:20 +09:00
Lorenzo Colitti
3e09f80e8a Add the ability to affect ordering in the tethering unit tests.
Currently, TestConnectivityManager immediately sends all
callbacks and broadcasts to the Tethering code as soon as the
test code makes any change.

This makes it impossible to affect the order in which those
events are delivered to the Tethering code, so it is not possible
to test for races.

Fix some of this as follows:
1. Make TestConnectivityManager post all its callbacks to the
   handlers that Tethering registered them with.
2. In TetheringTest, use the existing TestLooper object to
   advance time manually. Also use setUseRegisteredHandlers to
   ensure that the broadcasts are sent in order. This requires
   calling dispatchAll() after sending the broadcast to preserve
   the existing synchronous behaviour. Take advantage of that to
   remove lots of existing dispatchAll calls.
3. Add a TestLooper to UpstreamNetworkMonitorTest and use it.
   Keep the test passing by adding lots of mLooper.dispatchAll(),
   which is a bit ugly but probably acceptable given the
   additional coverage it provides.

This exposes an existing bug in the code where if upstream
selection is in automatic mode, and all CONNECTIVITY_ACTION
broadcasts are received before all NetworkCallbacks, the code
does not switch upstream.

In order to make the tests pass, re-order the CONNECTIVITY_ACTION
broadcasts with the NetworkCallbacks in TestConnectivityManager
so as not to trigger the bug. A future CL will make the order
configurable.

While I'm at it, switch TestConnectivityManager from HashMap to
ArrayMap, which is generally preferred for maps that do not
contain too many elements.

Bug: 173068192
Test: test-only change
Change-Id: I964f365c691fbc396ab0a87f292bd32b123011fe
2021-03-31 20:17:11 +09:00
Lorenzo Colitti
2bcde0fd97 Make Tethering file NetworkRequests only if needed.
Currently, Tethering files NetworkRequests even when
config_tether_upstream_automatic is enabled. This is incorrect:
when the automatic upstream selection is enabled, the tethering
upstream should always follow the default network and there is
no need to file any requests.

These requests are harmful when tethering is not using cellular
as its upstream, because:

- If the device does not use mobile data always on, the request
  causes the cellular network to be brought up, causing power
  draw.
- Even if the device does use mobile data always on, the request
  causes the cellular network to come to the foreground, which
  allows all apps to access it, causing potential data usage.

Amend the existing testGetCurrentPreferredUpstream to cover these
changes, by making that test case always set automatic upstream
mode. This does not result in any loss of meaningful test
coverage, because getCurrentPreferredUpstream is only ever called
when chooseUpstreamAutomatically is enabled.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I068a5338699a3ed04f24f97f785ea89ff5890e50
2021-03-31 19:27:17 +09:00
Lorenzo Colitti
0e7e32ab2c Expose upstream requirements to UpstreamNetworkMonitor.
UpstreamNetworkMonitor is the part of tethering that files
NetworkRequests for upstream netwoks, but it currently does not
know all the requirements for upstream selection. For example, it
does not know whether automatic upstream selection is in use.
This forces the upstream selection code to be split between
UpstreamNetworkMonitor and Tethering. This makes it difficult to
follow.

This CL ensures that all information about upstream requirements
(DUN required, automatic upstream selection, tryCell) is passed
to UpstreamNetworkMonitor so it can be aware of it.

This CL also removes the ability for UpstreamNetworkMonitor's
callers to call registerMobileNetworkRequest or
releaseMobileNetworkRequest. In a future CL, this will be
automatically done by UpstreamNetworkMonitor depending on the
upstream requirements.

This CL is a no-op refactoring with no behaviour changes.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I174f765c616e0dbe2aa493c12613e6131cff0666
2021-03-31 19:27:17 +09:00
Chiachang Wang
3fec2f13e1 Add framework-connectivity-test-defaults to hostside test
The defaults follow the same pattern as framework-wifi-test-defaults
to allow unit tests to build against hidden API in Connectivity.

Bug: 171540887
Test: m
Change-Id: I1a77278aa458e309d2772dd6ad84f4412b6e9387
Ignore-AOSP-First: Necessary code in internal only now
2021-03-31 10:04:35 +00:00
Chiachang Wang
e9d848e7cb Add visibility of framework-connectivity.impl for wifi test
Add visibility to allow FrameworksWifiTests to access hidden
connectivity APIs.

Bug: 171540887
Test: m FrameworksWifiTests
Change-Id: I3cd377d7045e7e161d0813aa2d614dff1b5a311b
2021-03-31 09:33:21 +00:00
Remi NGUYEN VAN
173f8b129d Add framework-connectivity-test-defaults
The defaults follow the same pattern as framework-wifi-test-defaults to
allow unit tests to build against hidden API in Connectivity.

Bug: 171540887
Test: m
Change-Id: I58bb6574f7e95053e4a95f76d1025506749ec2b8
2021-03-31 17:19:57 +08:00
Sudheer Shanka
c38f2b7d1b [automerger skipped] Check and skip certain operations if they are unsupported. am: b0f50c579b am: 7695f293a7 am: 19d07566b9 -s ours
am skip reason: skip tag Change-Id Ie68e17063454e7feeffc93b20b1b8fbb276e837f with SHA-1 f0ba6291b1 is already in history

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1658759

Change-Id: I1077c60354b1c8498989272077ed0825a13d9b9b
2021-03-31 00:40:13 +00:00
Sudheer Shanka
90cc78a3c3 [automerger skipped] Check and skip certain operations if they are unsupported. am: b0f50c579b am: 7695f293a7 am: 83b66e64c7 -s ours
am skip reason: skip tag Change-Id Ie68e17063454e7feeffc93b20b1b8fbb276e837f with SHA-1 f0ba6291b1 is already in history

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1658759

Change-Id: I4c0f3bdcd71fe484dca53810bfa3444bef00495e
2021-03-31 00:39:06 +00:00
Sudheer Shanka
19d07566b9 Check and skip certain operations if they are unsupported. am: b0f50c579b am: 7695f293a7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1658759

Change-Id: I29d4c5a2b332f6eff426393212583fae6a8c0e11
2021-03-30 23:48:30 +00:00
Sudheer Shanka
83b66e64c7 Check and skip certain operations if they are unsupported. am: b0f50c579b am: 7695f293a7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1658759

Change-Id: I4ececd442b6fab3ad4e6aefd0937226831a7b87b
2021-03-30 23:48:22 +00:00
Sudheer Shanka
7695f293a7 Check and skip certain operations if they are unsupported. am: b0f50c579b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1658759

Change-Id: I8068e4beebfe928977a97e5c0241b19e5d719d06
2021-03-30 23:12:32 +00:00
Sudheer Shanka
fd8bfb3f97 Merge "Revert NPMS threshold to BFGS." into sc-dev 2021-03-30 17:51:52 +00:00
Sudheer Shanka
b0f50c579b Check and skip certain operations if they are unsupported.
Fixes: 178334463
Test: com.android.cts.net.HostsideRestrictBackgroundNetworkTests#testMeteredNetworkAccess_expeditedJob
Change-Id: Ie68e17063454e7feeffc93b20b1b8fbb276e837f
Merged-In: Ie68e17063454e7feeffc93b20b1b8fbb276e837f
2021-03-30 16:22:43 +00:00
Chalard Jean
a94f778231 [NS08] Expose public NetworkScore API
This exposes the two bits settable by the network agents in
Android S on NetworkScore. This is meant to be extensible in
future releases, or possibly for OEM upstreams.

Test: builds
CTS-Coverage-Bug: 184037351
Bug: 167544279
Change-Id: Id7ee1bd3e2679f0bd5200d5c299f18a33b87847c
2021-03-30 23:54:19 +09:00
Chalard Jean
5236df9ddf [NS07] Add the rest of the scoring policy
Bug: 167544279
Test: FrameworksNetTests
Change-Id: I5ea44a94ac6f16486274e9091f15a84734db2341
2021-03-30 23:50:41 +09:00
Lorenzo Colitti
6bed8201a3 Merge "Add new network capabilities to support automotive head unit via USB" into sc-dev 2021-03-30 14:36:56 +00:00
Frank Li
701d2587c4 [automerger skipped] Merge "[JS01]Remove hidden API usage of Connectivity Sevice" am: 487698b2b7 am: 647d2b66cc am: 5b2e07974a -s ours
am skip reason: skip tag Change-Id Ie6bc81ff382fb242b98f35d28a96defc207c7987 with SHA-1 308bcccd2b is already in history

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1628361

Change-Id: I8704e12681669b9a67a53cf2b80eb361f599229f
2021-03-30 09:44:24 +00:00
Frank Li
5b2e07974a Merge "[JS01]Remove hidden API usage of Connectivity Sevice" am: 487698b2b7 am: 647d2b66cc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1628361

Change-Id: I7b4e289f13856f8015757d23a478fa923773d37a
2021-03-30 09:00:11 +00:00
Frank Li
647d2b66cc Merge "[JS01]Remove hidden API usage of Connectivity Sevice" am: 487698b2b7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1628361

Change-Id: Ibc9e5b382c210e157f9af9c1071b2e2e1065320e
2021-03-30 08:03:56 +00:00
Frank Li
487698b2b7 Merge "[JS01]Remove hidden API usage of Connectivity Sevice" 2021-03-30 07:22:40 +00:00
lifr
b4dab37e28 [JS01]Remove hidden API usage of Connectivity Sevice
The Connectivity service will become the mainline module.
Therefore, remove the caller of using Connectivity's
hidden API outside the module and expose the required
connectivity API used in Jobscheduler.

Bug: 183456204
CTS-Coverage-Bug: 170598012
Test: atest JobStoreTest
Change-Id: Ie6bc81ff382fb242b98f35d28a96defc207c7987
Merged-In: Ie6bc81ff382fb242b98f35d28a96defc207c7987
           (cherry-picked from ag/13946348)
2021-03-30 11:41:50 +08:00
Lorenzo Colitti
27e1d0473e Merge changes If539cf5d,I9765f1c9,I6d3007a1 am: f2babbbd67 am: e18ea6cb80 am: 34792dd0c9
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1652262

Change-Id: I94e5cf19a7b7dac8400cb7acf80b39a864099956
2021-03-30 02:24:00 +00:00
Lorenzo Colitti
34792dd0c9 Merge changes If539cf5d,I9765f1c9,I6d3007a1 am: f2babbbd67 am: e18ea6cb80
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1652262

Change-Id: I028d1f51c9685bcc7bcaabd0339b930aa46940c6
2021-03-30 01:58:24 +00:00
Lorenzo Colitti
e18ea6cb80 Merge changes If539cf5d,I9765f1c9,I6d3007a1 am: f2babbbd67
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1652262

Change-Id: Iab7a5cdb9d50314b0bdb982b88a9335b64ddb276
2021-03-30 01:14:09 +00:00
Lorenzo Colitti
a27075fe12 Merge "Add session ID to VpnTransportInfo" into sc-dev 2021-03-30 00:39:38 +00:00
lifr
ac6614fa05 Add session ID to VpnTransportInfo
- This will be visible only to apps with the NETWORK_SETTINGS
  permissions (signature), and will be redacted for all other callers.
- This string is expected to be the same as set by
  VpnService#setSession, and in general, VpnConfig.session. But it
  will be a general API that Vpn.java can call when setting the
  VpnTransportInfo.
- This string cannot be updated once the VPN NetworkAgent is connected.

Bug: 171872481
Ignore-AOSP-First: needed to prevent automerger race breaking build
Test: atest ConnectivityServiceTest
      atest VpnTransportInfoTest
      atest NetworkAgentTest
Change-Id: I883035262465238c35c5a931d89707f3e84feef8
2021-03-29 14:51:25 +00:00
lifr
8e9c33ab26 [automerger skipped] [TL02]Remove hidden API usage of NetworkAgent am: d90927f218 am: f788a656ce am: 6c3194320b -s ours
am skip reason: skip tag Change-Id I4e4040ae7f94bdf479c7df9ec2ffabafbe06331c with SHA-1 c4fd62072b is already in history

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1642722

Change-Id: I627119002e2d4230939d2017728959934f14a528
2021-03-29 12:58:09 +00:00