Commit graph android_packages_modules_Co.../tests/net/java
Message SHA1
Merge changes Iec22ff63,Iaca8a7cc am: 0cec61c277 am: de3c1f6764 am: 6aacbaac9c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1528211

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I293366c6aac42f776ff23277a707d8c2ae0fd1b0

Lorenzo Colitti   authored and   Automerger Merge Worker   commited 2021-01-07 19:22:06 +00:00
927845625a
Inform ConnectivityService about always-on VPN lockdown.
Currently, when an always-on VPN is set in lockdown mode, Vpn
configures prohibit UID rules in netd directly and does not
inform ConnectivityService of the fact.

This means that ConnectivityService cannot send NetworkCallbacks
that tells apps that they are blocked or unblocked. It also means
that ConnectivityService has to take the mVpns lock and call into
Vpn to allow synchronous APIs such as getActiveNetwork to return
BLOCKED if the app is blocked.

Move all this to ConnectivityService:
- Add a setRequireVpnForUids API to ConnectivityManager, and have
  that pass the routing rules to netd.
- Update VpnTest to expect calls to ConnectivityManager instead
  of to netd.
- Whenever setRequireVpnForUids is called, ensure that
  ConnectivityService sends onBlockedStatusChanged to the
  affected callbacks.
- Update existing unit tests to check for callbacks.
- Add a way to find the VPN that applies to a given UID without
  taking the VPN lock, by instead scanning all connected VPNs.
  Use this as a replacement for direct access to mVpns.

For simplicity, and in order to ensure proper ordering between
the NetworkCallbacks sent for VPNs connecting and disconnecting,
process blocked UID ranges on the handler thread. This means that
when setRequireVpnForUids returns, the rule changes might not
have been applied. This shouldn't impact apps using network
connectivity, but it might mean that apps setting an always-on
package, and then immediately checking whether networking is
blocked, will see a behaviour change.

Bug: 173331190
Fix: 175670887
Test: new test coverage in ConnectivityServiceTest
Test: atest MixedDeviceOwnerTest#testAlwaysOnVpn \
            MixedDeviceOwnerTest#testAlwaysOnVpnLockDown \
	    MixedDeviceOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedDeviceOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedDeviceOwnerTest#testAlwaysOnVpnPackageLogged \
            MixedProfileOwnerTest#testAlwaysOnVpn \
            MixedProfileOwnerTest#testAlwaysOnVpnLockDown \
	    MixedProfileOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedProfileOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedProfileOwnerTest#testAlwaysOnVpnPackageLogged \
            MixedManagedProfileOwnerTest#testAlwaysOnVpn \
            MixedManagedProfileOwnerTest#testAlwaysOnVpnLockDown \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnPackageLogged
Test: atest FrameworksNetTests HostsideVpnTests \
            CtsNetTestCases:VpnServiceTest \
	    CtsNetTestCases:Ikev2VpnTest
Change-Id: Iaca8a7cc343aef52706cff62a7735f338cb1b772

Lorenzo Colitti   commited 2021-01-07 17:44:29 +09:00
e8ce205f6d
Merge "Replace INetworkPolicyManager to NetworkPolicyManager" am: 715827ca0a am: 19cb73eaa1 am: 9e47ac3e60
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1534908

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id6685f26e6f7c7d9b0da6edd147f1aa37e16d676

Paul Hu   authored and   Automerger Merge Worker   commited 2021-01-07 03:41:23 +00:00
c435b35e9f
Merge "Replace INetworkPolicyManager to NetworkPolicyManager"
Paul Hu   authored and   Gerrit Code Review   commited 2021-01-07 02:08:58 +00:00
715827ca0a
Merge "Migrate away from AsyncChannel in NetworkAgent"
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-01-06 14:10:21 +00:00
abf3317103
Replace INetworkPolicyManager to NetworkPolicyManager
Connectivity service is going to become a mainline module which
will not able to access hidden APIs. Thus, use formal API
Context#getSystemService() to get network policy service instead
of hidden API ServiceManager#getService().

Bug: 170598012
Test: atest FrameworksNetTests FrameworksNetIntegrationTests
Change-Id: I4f286264b5800b2b922f85a76ddd20d64d53000a

paulhu   authored and   Aaron Huang   commited 2021-01-05 17:47:25 +08:00
7121b5ef72
Merge "Add test for increment operation count on non-default network" am: 20f05ed023 am: 7933522fbf am: 730e15b8d6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1517499

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I53607908e07f8c7c94e1c2ac8632ebb645ea469a

Junyu Lai   authored and   Automerger Merge Worker   commited 2020-12-28 10:01:46 +00:00
0310fc1f60
Merge "Add test for increment operation count on non-default network"
Junyu Lai   authored and   Gerrit Code Review   commited 2020-12-28 08:16:44 +00:00
20f05ed023
Merge "[IT4.2] Update argument type of interfaceClassDataActivityChanged" am: 6b674eea72 am: 3fa134a3f8 am: 1db2093644
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1531806

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I992dd2f78c0f7334bbe97a03faba161d09a03a71

Chiachang Wang   authored and   Automerger Merge Worker   commited 2020-12-28 02:32:19 +00:00
629e586bff
Merge "[IT4.2] Update argument type of interfaceClassDataActivityChanged"
Chiachang Wang   authored and   Gerrit Code Review   commited 2020-12-28 01:05:28 +00:00
6b674eea72
Merge "[Mainline] Migrate ProxyInfo" am: ea935361d5 am: 872ac951cc am: a12940d1ca
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1506616

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia6f5bf74bf461f762472ea1d88553db3b9719c80

Serik Beketayev   authored and   Automerger Merge Worker   commited 2020-12-25 09:58:40 +00:00
20754ee85c
Merge "[Mainline] Migrate ProxyInfo"
Serik Beketayev   authored and   Gerrit Code Review   commited 2020-12-25 08:32:04 +00:00
ea935361d5
Migrate away from AsyncChannel in NetworkAgent
Use two oneway binder interfaces instead.
The interfaces post messages to handlers as was implemented before, but
provide a more strictly defined interface, with less hops between
NetworkAgent, AsyncChannel, and ConnectivityService.

The actual public interface is the NetworkAgent @SystemApi: the binder
interface is an internal implementation detail.

Test: atest FrameworksNetTests CtsNetTestCasesLatestSdk
Bug: 173574274
Merged-In: Ie364ab50f416e7821e70f4539a881eea828e1256

Change-Id: Ie364ab50f416e7821e70f4539a881eea828e1256

Remi NGUYEN VAN   commited 2020-12-25 03:54:19 +00:00
96be83bccb
Merge "Migrate away from AsyncChannel in NetworkAgent"
Remi NGUYEN VAN   authored and   Android (Google) Code Review   commited 2020-12-25 01:57:44 +00:00
4f9da57398
Merge "Update usage of allowlist/denylist in some method names/comments." am: e1dc77b743 am: f316b89f93 am: fa2f9f4eee
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1402789

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I40b28e3be169fbc59f8b889871ed938b45de2fab

Sudheer Shanka   authored and   Automerger Merge Worker   commited 2020-12-24 09:50:20 +00:00
49305f5625
Merge "Update usage of allowlist/denylist in some method names/comments."
Sudheer Shanka   authored and   Gerrit Code Review   commited 2020-12-24 08:16:51 +00:00
e1dc77b743
Merge "Have NetworkPolicyManagerService create MultipathPolicyTracker" am: 99f0ad7b3e am: 7334ba2cb9 am: c0fe879c33
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519960

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I023815a53f01a0459b94033b7e2fa2ed91cca86a

Aaron Huang   authored and   Automerger Merge Worker   commited 2020-12-24 07:02:53 +00:00
45c71859fd
[Mainline] Migrate ProxyInfo
Bug: 173455434
Test: atest FrameworksNetTests
Change-Id: I924aed710b62a0c91b888a9e04ac2c90cdfd88d0

Serik Beketayev   commited 2020-12-23 22:15:51 -08:00
aca858652c
Add test for increment operation count on non-default network
Currently, when the caller increment operation count, the count
will be blamed on the active default network even though the
traffic is all generated on other networks. This is kind
of weird. But in order to change the behavior, extend test
coverage first.

Test: atest com.android.server.net.NetworkStatsServiceTest#testOperationCount_nondefault_traffic
Bug: 174123988

Change-Id: Ia5b5aa3601de15bb9ee5a29f6d184d122f1c5352

junyulai   commited 2020-12-24 13:22:59 +08:00
0a2a999f05
Update usage of allowlist/denylist in some method names/comments.
In a previous change (https://r.android.com/1394342), we did a mass update of whitelist->allowlist
and blacklist->denylist in network policy related code. Updating
some usages of those (like allowlisted to allowed) to make them
sound natural.

Test: atest services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
Test: atest services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java
Test: atest hostsidetests/net/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Change-Id: I6d34b0bd3cdb64d5872874fd9378bfc962a24f8d

Sudheer Shanka   commited 2020-12-24 04:03:33 +00:00
e4c793b200
Have NetworkPolicyManagerService create MultipathPolicyTracker
To make connectivity service mainline, this patch makes
MultipathPolicyTracker as a submodule of NetworkPolicyManagerService
to remove the dependencies of ConnectivityService.

Bug: 175015282
Test: FrameworksNetTests
Change-Id: I82a7c62069ffd0683deb2f5ce2f99de120a2a16f

Aaron Huang   commited 2020-12-23 23:17:15 +08:00
5301b6faf4
[IT4.2] Update argument type of interfaceClassDataActivityChanged
The argument type of interfaceClassDataActivityChanged takes a
string for the network type. It requires both the receivers and
NMS to do type transformation. The transformation is a redundant
work. Update it to take integer directly and rename to
understandable naming.

Bug: 170598012
Test: atest FrameworksNetTests
Change-Id: Ibe9fa7a1b71af2dab916b5d615742e77e4174c39

Chiachang Wang   commited 2020-12-23 17:34:08 +08:00
973313a3d5
Migrate away from AsyncChannel in NetworkAgent
Use two oneway binder interfaces instead.
The interfaces post messages to handlers as was implemented before, but
provide a more strictly defined interface, with less hops between
NetworkAgent, AsyncChannel, and ConnectivityService.

The actual public interface is the NetworkAgent @SystemApi: the binder
interface is an internal implementation detail.

Test: atest FrameworksNetTests CtsNetTestCasesLatestSdk
Change-Id: Ie364ab50f416e7821e70f4539a881eea828e1256

Remi NGUYEN VAN   commited 2020-12-23 17:30:54 +09:00
37ebfa827a
Merge "[IT04] Add uid as parameter of interfaceClassDataActivityChanged" am: 3035c93439 am: 40b5767863 am: 702597e7fe
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1523339

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ieafdf569c13b1421c18fa3086827e6e432b498d7

Chiachang Wang   authored and   Automerger Merge Worker   commited 2020-12-23 07:31:25 +00:00
49cbff8801
Merge "[IT04] Add uid as parameter of interfaceClassDataActivityChanged"
Chiachang Wang   authored and   Gerrit Code Review   commited 2020-12-23 05:20:33 +00:00
3035c93439
Merge "Split NetworkUtils and NetworkUtilsInternal" am: caa437cae0 am: 15befc3d9e am: a0ac08e394
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513140

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ief9d6a1fae360dbe1c43d5d6bac4dad5850c004b

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2020-12-23 02:22:35 +00:00
852709e1cd
Merge "Split NetworkUtils and NetworkUtilsInternal"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2020-12-23 01:19:27 +00:00
caa437cae0
Merge changes I177ec607,I68f364b4,Ib3b9f52c,If040d61e am: ebe2e05464 am: 7a22adb443 am: c176f8d290
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1507701

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id8d45a68283ab29f6928628ebf852143793aff76

James Mattis   authored and   Automerger Merge Worker   commited 2020-12-22 06:57:02 +00:00
f0cf0850fa
[IT04] Add uid as parameter of interfaceClassDataActivityChanged
Add uid into interfaceClassDataActivityChanged in
INetworkManagementEventObserver. This helps the listeners to use
BaseNetworkObserver to listen for target evnets instead of using
whole INetdUnsolicitedEventListener with no-op in other event
that listeners do not care about.

Bug: 170598012
Test: m ; atest FrameworksNetTests
Change-Id: I2a42a522c2ff9b1e0be88261a8574bb7f5292fa6

Chiachang Wang   commited 2020-12-22 08:39:22 +08:00
f896dfcb81
Merge "Move module utils to the module package."
Chalard Jean   authored and   Gerrit Code Review   commited 2020-12-21 05:35:09 +00:00
e294449129
Merge changes I177ec607,I68f364b4,Ib3b9f52c,If040d61e
* changes:
  nits removing extra space, change method name, etc
  maybeLogBlockedStatusChanged multilayer requests
  Update getSignalStrengthThresholds for multilayer
  Update to unneeded for multilayered requests

James Mattis   authored and   Gerrit Code Review   commited 2020-12-20 18:31:36 +00:00
ebe2e05464
Merge changes Ie0b32460,I21028457,I82754375 am: 29e5346c24 am: 59e069bbde am: 95dbc7e04a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1529778

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2e28cde0569c263c6afe5ad722be4060912eae0e

Lorenzo Colitti   authored and   Automerger Merge Worker   commited 2020-12-16 10:33:27 +00:00
e3968cae74
Move module utils to the module package.
Test: FrameworksWifiTest FrameworksNetTest
Change-Id: If5d1e4a58fb2d6d9544e6d01995dabe445cf1f25
Merged-In: I067eeecd458c34b7f2fbfa439072682661ac750c

Chalard Jean   commited 2020-12-16 11:44:22 +09:00
fa159c1755
Allow ConnectivityServiceTest to change the calling UID.
Allow ConnectivityServiceTest to change the UID by replacing
static calls to Binder.getCallingUid() with a method that can
be mocked.

Add registerNetworkCallbackAsUid as an initial way to exercise
this, and add some test coverage to the always-on lockdown test
to confirm that things are working as expected.

Bug: 173331190
Test: new unit tests
Change-Id: Ie0b32460e20e5906a0f479191e11a062f21cc608

Lorenzo Colitti   commited 2020-12-15 21:10:36 +09:00
eb862ae1d7
Add a test for getDefaultNetworkCapabilitiesForUser.
Bug: 173331190
Test: test-only change
Test: new test passes 100 times in a row
Change-Id: I210284578e38cd25b8b95235d3390d5bd66a5a70

Lorenzo Colitti   commited 2020-12-15 21:08:21 +09:00
6fb90abce1
Add tests for always-on VPN lockdown mode.
This requires mocking lots of new things that weren't mocked
before but is otherwise fairly straightforward.

A few changes to MockVpn are needed as well:

1. Set the VPN's NetworkInfo to CONNECTED, so methods such as
   isBlockingUid will work. While I'm at it, set the interface on
   the LinkProperties as well to make things a bit more
   realistic.

2. Constructs the VpnConfig when registering the agent, not when
   the MockVpn is created. This is needed because starting and
   stopping lockdown VPN calls prepare, which nulls out mConfig.
   But constructing the VpnConfig when registering the agent is
   more realistic anyway. The production code does that in
   establish, but we can't do that in ConnectivityServiceTest
   because some of the test cases don't call establish and call
   registerAgent directly.

Bug: 173331190
Test: atest FrameworksNetTests
Change-Id: I827543751dbf5e626a24ec02cd6f50b423f5f761

Lorenzo Colitti   commited 2020-12-15 21:08:20 +09:00
bb6b62a41e
Merge changes from topic "tcp_keepalive_fix" am: 3a86e4690e am: 559e7604e6 am: 2d843b4921
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494039

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I26fa0ae4a1f41f1b970f6f7b192dfc4fe4bedb1d

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2020-12-15 11:42:29 +00:00
1ffe4ac727
Add TcpKeepalivePacketData to SystemApi am: 11511b31f6 am: 349ba03274 am: 7240fd9ea1
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494038

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1aa9deefefcaf75959463e8a8a87bfeefb98f0ee

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2020-12-15 11:42:19 +00:00
6ebd98efc1
Add TcpKeepalivePacketData to SystemApi am: 11511b31f6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494038

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibe3df65b4e12ecda5d95737f3b1ea18dabc2461d

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2020-12-15 09:38:38 +00:00
349ba03274
Merge changes from topic "tcp_keepalive_fix"
* changes:
  Use API TcpKeepalivePacketData in ClientModeImpl
  Add TcpKeepalivePacketData to SystemApi

Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2020-12-15 09:02:55 +00:00
3a86e4690e
Use API TcpKeepalivePacketData in ClientModeImpl
Instead of statically linking against and jarjaring
TcpKeepalivePacketData, use the new android.net.TcpKeepalivePacketData
API for S. On R, build the KeepalivePacketDataParcelable from the base
KeepalivePacketData class.

The current ClientModeImpl code that uses a statically linked
TcpKeepalivePacketData is actually broken, as since R the system_server
has been sending a @hide android.net.TcpKeepalivePacketData, and
ClientModeImpl was testing it against com.android.wifi.x.android.net.*.
To fix this on R, this change rebuilds a
TcpKeepalivePacketDataParcelable class from the packet data included in
the base KeepalivePacketData class.

Bug: 172789687
Test: atest ConnectivityManagerTest#testCreateTcpKeepalive
      See associated test change
Change-Id: Ia32b4444dbf90306b2cfd37ec13d4ba4e90cd1e8

Remi NGUYEN VAN   commited 2020-12-14 18:43:53 +09:00
993306ed6b
Add TcpKeepalivePacketData to SystemApi
This is consistent with NattKeepalivePacketData, which is also a
subclass of KeepalivePacketData.

TcpKeepalivePacketData is already used by the wifi module, but
statically linked.

Bug: 172789687
Test: m
Change-Id: I6aee1ae205987521bea4a3838bbece279ffa0e37

Remi NGUYEN VAN   commited 2020-12-14 18:43:44 +09:00
11511b31f6
Merge "Generalize support for underlying networks." am: ca830d9239 am: 51c973d4b7 am: 2be66008a0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513052

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ida4e4d7b6d607d6c9f6efc2d06732f7826f7942e

Lorenzo Colitti   authored and   Automerger Merge Worker   commited 2020-12-14 06:40:27 +00:00
50c30ed67f
Merge "Fix a crash in eng builds" am: 26d146ff7f am: 99890b486d am: f65b271328
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1527538

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6e1c20b4c1004e8205d65f318939ee7d8b006f00

Treehugger Robot   authored and   Automerger Merge Worker   commited 2020-12-14 06:39:50 +00:00
1e7b9bca3d
Merge "Generalize support for underlying networks."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2020-12-14 05:19:49 +00:00
ca830d9239
Merge "Fix a crash in eng builds"
Treehugger Robot   authored and   Gerrit Code Review   commited 2020-12-14 05:17:15 +00:00
26d146ff7f
Merge "Resolve UidRange dependency between NMS and CS module" am: c5be33af21 am: 8a3181b166 am: 2ec8e8071a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495869

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6c3474e6522fc67aec5333b323768692619019ee

Chiachang Wang   authored and   Automerger Merge Worker   commited 2020-12-14 04:23:43 +00:00
83e35e70c4
Merge "Resolve UidRange dependency between NMS and CS module"
Chiachang Wang   authored and   Gerrit Code Review   commited 2020-12-14 02:55:41 +00:00
c5be33af21
Fix a crash in eng builds
CAPTIVE_PORTAL is a CS-managed capability, and causes CS to log a wtf.
When this test is run on an eng build, this sends SIGSEGV to the test,
which is pretty difficult to debug.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I72fc46a6daa4e886425b4dc967318cca9f1a5302

Chalard Jean   commited 2020-12-13 23:02:08 +09:00
8fb84150bf
Generalize support for underlying networks.
Currently, ConnectivityService assumes that only VPNs can have
underlying networks. Make the code decide this based only on the
return value of NetworkAgentInfo#supportsUnderlyingNetworks.
This allows non-VPN network types to support underlying networks
in the future.

This requires storing the original agent's capabilities in
NetworkAgentInfo so that applyUnderlyingCapabilities can mix in
the underlying network capabilities without overwriting the
capabilities of the network itself. Currently, the only
information that applyUnderlyingCapabilities takes from the
original agent's capabilities are the metered bit (stored in
NetworkAgentInfo#declaredMetered) and the transports (assumed to
be exactly {TRANSPORT_VPN}. Store the full capabilities instead.
This is more state than needed but it ensures that we do not need
to make any changes if in the future we want to propagate new
types of information from the underlying networks.

This should have no impact on current use cases (i.e., VPNs).

There is a change in ordering: in disconnectAndDestroyNetwork,
the new code propagates underlying network capabilities before
removing the network from LegacyTypeTracker, instead of after.

This is done to simplify the new code. When the new code
propagates underlying network capabilities in response to a
change for a particular network (e.g., connect, disconnect,
capabilities change), it only considers networks that have the
changed network as underlying. Because determining the
underlying networks requires knowing the default network,
the new code runs before the default network is changed and
LegacyTypeTracker is updated.

This shouldn't have app implications because the connectivity
broadcasts sent by LegacyTypeTracker and the callbacks cannot be
ordered, since they run on separate threads with unpredictable
delays. The capability change callbacks resulting from
propagation of underlying network capabilities were already
sent before the rematch, so the callbacks themselves are not
reordered in any way.

Bug: 173331190
Test: atest FrameworksNetTests \
            CtsNetTestCases:NetworkAgentTest \
	    CtsNetTestCases:Ikev2VpnTest \
	    CtsNetTestCases:VpnServiceTest \
	    CtsNetTestCases:android.net.cts.ConnectivityDiagnosticsManagerTest \
	    HostsideVpnTests com.android.server.connectivity.VpnTest
Change-Id: Ic5353a928a3a3541dcf953c35f47277c5e295db8

Lorenzo Colitti   commited 2020-12-13 00:10:56 +09:00
01d3763c5e