Commit graph android_packages_modules_Co.../tests/net/java/com/android/server
Message SHA1
[NS D07] Use the unmodified legacy score
Ranking used to make use of the various adjustments in
ConnectivityService. These are now implemented in policy.

Test: ConnectivityServiceTest

Change-Id: I56109847678ea5cda1752511123ba652c0f4fe36

Chalard Jean   commited 2020-02-19 22:17:13 +09:00
4bb5b45830
[NS D06] Implement more policies
Namely :
• Explicitly selected policy
• VPN policy
• Validated policy

These go together to avoid breaking any test, because multiple
tests rely on all of these working.

Test: ConnectivityServiceTest

Change-Id: I7d815f87320c2becbfc93a60a3c54346ff4f47c9

Chalard Jean   commited 2020-02-19 22:17:12 +09:00
c736e76394
[NS D05] Rework how to tear down networks
Networks are torn down if they don't satisfy requests but only if
they are found unable to ever do so. This is important because
general-purpose networks typically turn up unvalidated, which
means they would get torn down immediately in the presence of
some worse network that is already validated.

Note that functionally it's the same as before for the existing
scores, except that
• An exiting network that doesn't satisfy any request is always
  torn down immediately – this is WAI
• An unmetered network is never torn down when compared to a
  metered network – this is a bugfix (previously the platform
  would tear down an unmetered cellular on grounds that it
  could not beat the performance of a metered Ethernet, but
  that's wrong ; the bug was never realized because Android
  always thinks Ethernet is unmetered)
• An unvalidated network will not be torn down if the current
  satisfier is also unvalidated, even if the satisfier is much
  faster. This is the reason for the change in the test. It's
  wrong to tear down in this case because even if much slower
  the slower network should win if it validates and the other
  doesn't.

Test: ConnectivityServiceTest
Change-Id: Ic9a3d336306a25d1272976ce467aa7c908af7bef

Chalard Jean   commited 2020-02-19 21:27:22 +09:00
822a150c03
Add always-on VPN support for platform VPNs
This commit allows Platform VPNs to be started as part of always-on
mode.

Test: FrameworksNetTests passing, new tests added in subsequent CL
Test: Manually tested.
Change-Id: I5eda88e5b406a0e425eb7424665cf702e0979324

Benedict Wong   commited 2020-02-18 18:58:54 +00:00
fb68c52267
Merge changes I32c12702,I688593cc
* changes:
  [NS D04] Implement a simple speed comparison between scores.
  [NS D03] Migrate the bad wifi avoidance policy

Chalard Jean   authored and   Android (Google) Code Review   commited 2020-02-18 10:51:26 +00:00
333ca0ceec
[NS D03] Migrate the bad wifi avoidance policy
Test: ConnectivityServiceTest
Bug: 113554781

Change-Id: I688593cc0379a0d2042e30fbe83e549dcb02723e

Chalard Jean   commited 2020-02-18 16:06:10 +09:00
66f497c907
Merge changes Ide9daebc,Id47ada57 am: d07db8a8da am: 3dbd79190c am: 6ed815786c
Change-Id: Iaacfbe8b221d79e3d06d0d7ea81528db13e4611a

Benedict Wong   commited 2020-02-18 06:35:06 +00:00
ea18b70ca6
Merge changes Ide9daebc,Id47ada57 am: d07db8a8da
Change-Id: Ied52fed05566a0d75e82007170210205db7832a8

Benedict Wong   commited 2020-02-17 22:01:24 +00:00
3dbd79190c
Merge changes Ide9daebc,Id47ada57
* changes:
  Ensure all VPN runners clean up state when exiting
  Enforce restricted user, getConnectionOwnerUid checks

Benedict Wong   authored and   Gerrit Code Review   commited 2020-02-17 21:30:35 +00:00
d07db8a8da
Merge changes from topics "capport_dhcpresults", "nm_cb_capport" am: e777d054f4 am: 816695b23c am: b9d201b003
Change-Id: Ie27e5dfd51b38194fa104cbd73f9bbe7c4395e0f

Lorenzo Colitti   commited 2020-02-17 14:20:04 +00:00
ea93a0ff8a
Merge "Update state in NetworkInfo when network resumes" am: 9e3dd9a78f am: 3a59735669 am: b96514076d
Change-Id: I98e64e6197c5e79e6425f39053981f7bf389a895

Chiachang Wang   commited 2020-02-17 14:18:56 +00:00
4467aed179
Merge changes from topics "capport_dhcpresults", "nm_cb_capport" am: e777d054f4
Change-Id: I22bbbb598aaca6ba6c73ab37d34e855ec0def48f

Lorenzo Colitti   commited 2020-02-15 17:36:37 +00:00
816695b23c
Merge changes from topics "capport_dhcpresults", "nm_cb_capport"
* changes:
  Add CaptivePortalApiUrl to DhcpResults
  Send LinkProperties update on new capport data

Lorenzo Colitti   authored and   Gerrit Code Review   commited 2020-02-15 17:22:18 +00:00
e777d054f4
Merge "Update state in NetworkInfo when network resumes" am: 9e3dd9a78f
Change-Id: I26e4b318f7acacde38ee5cf0977fd63fc5567d79

Chiachang Wang   commited 2020-02-15 03:31:36 +00:00
3a59735669
Merge "Update state in NetworkInfo when network resumes"
Chiachang Wang   authored and   Gerrit Code Review   commited 2020-02-15 03:16:31 +00:00
9e3dd9a78f
Send LinkProperties update on new capport data
When new CaptivePortalData is received from NetworkMonitor, send a
LinkProperties updated callback.
The updated LinkProperties only contain CaptivePortalData if the
receiver has NETWORK_SETTINGS or MAINLINE_NETWORK_STACK permissions, as
defined in the current callback code.

Test: atest FrameworksNetTests
Bug: 139269711

Change-Id: I68595a519171b31792259849efff5f58c43cacd4

Remi NGUYEN VAN   commited 2020-02-15 05:00:17 +09:00
45e11181b4
Update state in NetworkInfo when network resumes
State override is only handled when state is changed from
CONNECTED to SUSPENDED but not reverse path. Handle both ways
for SUSPENDED state.

Bug: 148678431
Test: FrameworkNetTests
Change-Id: I9333f865d61bbf008fdb8ca162ad17dfdffd1d67

Chiachang Wang   commited 2020-02-14 16:41:33 +08:00
aa88bca82b
Enforce restricted user, getConnectionOwnerUid checks
This CL adds checks to ensure restricted users cannot change or
start/stop platform VPNs. In addition, this also adds checks to the
ConnectivityManager#getConnectionOwnerUid() to ensure that only
VpnService based VPNs can identify connections

Bug: 148040659
Test: FrameworksNetTests run
Change-Id: Id47ada5766036bfc84f3ba47f66f2d2683af916d

Benedict Wong   commited 2020-02-14 00:09:47 -08:00
0bd4bba07a
Merge "RELAND: NetworkRequest: Embed requestor uid & packageName"
Roshan Pius   authored and   Gerrit Code Review   commited 2020-02-14 01:57:49 +00:00
02d8578fc3
Merge "Implement Ikev2VpnRunner"
Benedict Wong   authored and   Gerrit Code Review   commited 2020-02-13 21:15:24 +00:00
02e9b56db8
Implement Ikev2VpnRunner
This change adds the implementation for IKEv2/IPsec VPNs.

Bug: 144246767
Test: Manually tested
Change-Id: I5ccec756cec49ccf57ccc4d5ad800eeb5d595a76
Merged-In: I5ccec756cec49ccf57ccc4d5ad800eeb5d595a76

Benedict Wong   commited 2020-02-13 18:37:06 +00:00
969d188edb
Implement Ikev2VpnRunner
This change adds the implementation for IKEv2/IPsec VPNs.

Bug: 144246767
Test: Manually tested
Change-Id: I5ccec756cec49ccf57ccc4d5ad800eeb5d595a76

Benedict Wong   commited 2020-02-13 00:33:44 -08:00
6a82d893aa
RELAND: 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
Merged-In: I207c446108afdac7ee2c25e6bbcbc37c4e3f6529

Change-Id: I58775e82aa7725aac5aa27ca9d2b5ee8f0be4242

Roshan Pius   commited 2020-02-12 16:58:36 -08:00
08c94fb8a9
Merge "Revert "NetworkRequest: Embed requestor uid & packageName""
Roshan Pius   authored and   Gerrit Code Review   commited 2020-02-12 23:36:13 +00:00
948f0f9878
Revert "NetworkRequest: Embed requestor uid & packageName"
This reverts commit d499517306.

Reason for revert: b/149425896
Bug: b/149425896

Change-Id: I9fe31509c040cc421ccb00ea60f15e6f199e8bc6

Roshan Pius   commited 2020-02-12 23:33:43 +00:00
d85de75bfa
Merge "NetworkRequest: Embed requestor uid & packageName"
Qingxi Li   authored and   Gerrit Code Review   commited 2020-02-12 18:43:32 +00:00
7b59ec507c
Merge changes from topic "NS-A44_lingerstate" am: 34587c19ce am: 518e36415a am: d94b1e684e
Change-Id: Ic9ea1c879cfcf145f569a388b52c6b7de0e8bb87

Automerger Merge Worker   commited 2020-02-12 16:00:34 +00:00
4abcc22959
[NS B09] Create NetworkRanker
Bug: 113554781
Test: FrameworksNetTests
Change-Id: Ia534247144f479fe896e1a6e05b906103cd10005

Chalard Jean   commited 2020-02-12 20:57:45 +09:00
96a4f4b8de
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

Roshan Pius   authored and   Qingxi Li   commited 2020-02-12 04:42:58 +00:00
d499517306
Merge changes from topic "network_specifier_uid_packageName"
* changes:
  Wifi/WifiAware NetworkSpecifier: Stop storing uid/packageName
  NetworkRequest: Embed requestor uid & packageName

Roshan Pius   authored and   Android (Google) Code Review   commited 2020-02-06 19:08:51 +00:00
97b7e89d55
Merge "Use waitForIdle() to wait for Threaded processing." am: 75c1d97c4c am: 9970964bb1 am: 471de383b1
Change-Id: I0d7cbe58f55e25e552f6ae17ffd19cb79f86fe45

Automerger Merge Worker   commited 2020-02-06 16:38:11 +00:00
fb73ce0c01
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

Roshan Pius   commited 2020-02-06 07:36:29 -08:00
a098ec4171
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

Cody Kesting   commited 2020-02-05 15:05:29 -08:00
d0bb3fe33a
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

Cody Kesting   commited 2020-02-05 15:05:29 -08:00
5a9a2ae4b4
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

Cody Kesting   commited 2020-02-05 15:05:28 -08:00
b12ad4ca3a
Merge "Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-02-05 19:55:05 +00:00
e10545c736
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

Cody Kesting   commited 2020-02-05 18:48:12 +00:00
83bb5fa762
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
(cherry picked from commit 3d57b0f4ff5b56780c79df6062dfaf2b9fa5ae3c)

Cody Kesting   commited 2020-02-05 07:10:47 -08:00
3eb07d4e7f
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
(cherry picked from commit 6c51dc9de39d7963a6bc6d03eacadf2ba2131e20)

Cody Kesting   commited 2020-02-05 07:10:47 -08:00
a1bb47a768
Merge "Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras."
Cody Kesting   authored and   Android (Google) Code Review   commited 2020-02-05 15:01:55 +00:00
231f1fac04
Merge changes Ic1a5d032,I271e7f4d,I7af37281 am: f1211e9531 am: 089b1c3273 am: 813be534d6
Change-Id: Ic56ae1463dc4229e01f60d2c9afcbb7f6337a97d

Automerger Merge Worker   commited 2020-02-05 01:14:50 +00:00
794fbd77d7
Merge changes Ic1a5d032,I271e7f4d,I7af37281
* changes:
  [NS A39] Simplification
  [NS A38] Fill the initial reassignment
  [NS A37] Don't reassign requests multiple times

Chalard Jean   authored and   Gerrit Code Review   commited 2020-02-05 00:53:28 +00:00
f1211e9531
Merge "Add separate user consent for Platform VPNs"
Benedict Wong   authored and   Gerrit Code Review   commited 2020-02-04 23:56:16 +00:00
e2684df6ef
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
(cherry picked from commit c5326407d592490783259a48a8ca653c4ff13122)

Cody Kesting   commited 2020-02-04 13:55:08 -08:00
c8e5bf6eff
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

Benedict Wong   commited 2020-02-04 21:05:36 +00:00
a73199168b
Merge "Add separate user consent for Platform VPNs"
Benedict Wong   authored and   Android (Google) Code Review   commited 2020-02-04 21:04:01 +00:00
406c383aa1
Merge changes Icb062ffb,I66c4e8f5,I85247411,Id47c19b7,Ib713c4ae, ... am: 0b32981970 am: b4a492f581 am: 59c5f07871
Change-Id: I213d2cdca4187ed30293dc433cfee9e8af782b6e

Automerger Merge Worker   commited 2020-02-04 13:48:46 +00:00
365808dea8
[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

Chalard Jean   commited 2020-02-04 16:49:54 +09:00
b7ebc8a28f
[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

Chalard Jean   commited 2020-02-04 16:49:54 +09:00
bf91f5f182
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

Benedict Wong   commited 2020-02-03 19:05:23 -08:00
5cb7ef9f08