Commit graph android_packages_modules_Co.../tests/net/java
Message SHA1
Merge "Revert "[VCN01] Add NOT_VCN_MANAGED capability""
satayev   authored and   Gerrit Code Review   commited 2021-01-13 17:40:03 +00:00
ca95071a98
Revert "[VCN01] Add NOT_VCN_MANAGED capability"
This reverts commit 869e7020a0.

Reason for revert: b/177411288 broken test

Bug: 177411288
Bug: 175662146
Change-Id: I02a25b83e62ab9a2ed22a98530d62b08de73f56e

satayev   commited 2021-01-13 15:04:23 +00:00
5e2b869dfc
Merge "[IT4.21] Update the label type of idle timer"
Chiachang Wang   authored and   Gerrit Code Review   commited 2021-01-13 09:10:43 +00:00
810f56be46
[IT4.21] Update the label type of idle timer
The first parameter of adding idle timer is an unique identity
to communicate between ConnectivityService and netd. Netd will
notify the activity change using the identity, so it's fine to
replace the legacy type with transport type since we should
deprecate the usage of legacy type.

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

Chiachang Wang   commited 2021-01-13 14:10:15 +08:00
5031026448
[VCN01] Add NOT_VCN_MANAGED capability
Add new capability to indicate whether a network is
managed by Virtual Carrier Network (VCN). This is needed
to identify networks between VCN managed network and
others. And this capability will be:
  1. mutable
  2. requestable
  3. set by default for network agents and requests
  4. allowed for test networks

Test: 1. atest FrameworksNetTests CtsNetTestCases
      2. adb shell dumpsys connectivity
      3. atest ConnectivityServiceTest#testLoseMutableAndRequestableCaps
Bug: 175662146

Change-Id: Ia5eeb3912a687164fa95d7ba5516fd73abca79ba

junyulai   commited 2021-01-13 11:05:40 +08:00
869e7020a0
Merge "Support for Venue URL and friendly name from Network agent"
Hai Shalom   authored and   Gerrit Code Review   commited 2021-01-13 01:54:05 +00:00
6fce4189cd
Merge changes I3eb82680,I9d6147d9
* changes:
  NetworkWatchlistServiceTests: update IIpConnectivityMetrics.
  Stop using IIpConnectivityMetrics in ConnectivityService.

Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-01-13 00:31:56 +00:00
013be9d6c8
Let ConnectivityService control the socket closure
Netd currently calls maybeCloseSockets before adding/removing users for
network. The task should be moved from netd to CS. In this way, we can
handle WiFi lingering more easily in the future.

Test: atest HostsideVpnTests
Test: atest FrameworksNetTests
Change-Id: Icf8125e8552c89da367a67f48611ed193a1a343d

Ken Chen   commited 2021-01-12 23:50:28 +08:00
b8e4bc9c3f
Stop using IIpConnectivityMetrics in ConnectivityService.
Currently, ConnectivityService calls the IpConnectivityMetrics
service class directly to log default network events. This is
incompatible with ConnectivityService being in a mainline module.
Replace direct access to IIpConnectivityMetrics with public
methods in IpConnectivityLog, which is @SystemApi class.

The new methods are not yet @SystemApi, but they can be made so
if desired. Alternatively, these metrics could be deleted.

Also remove the IpConectivityMetrics service from the
service-connectivity JAR, and go back to starting it from
SystemServer.java, which is what was happening a few hours ago
before aosp/1542626 was merged.

Test: builds, boots
Test: atest FrameworksNetTests
Test: "dumpsys connmetrics" shows events, including default network events
Change-Id: I9d6147d93590363a2f8f83f39f05c03d001b4851

Lorenzo Colitti   commited 2021-01-12 23:19:49 +09:00
d9932a7da8
Merge "Remove Vpn#isBlockingUid."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-01-12 10:20:33 +00:00
57f4dfc101
Merge "Improve error message when testing network factory"
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-01-12 03:50:30 +00:00
5c19af924e
Support for Venue URL and friendly name from Network agent
Extend CaptivePortalData with a member to hold the venue friendly
name. If CaptivePortalData is initialized by both the network
agent and Capport, merge the two objects to include the venue
friendly name and prioritize the venue URL from the network
agent.

Bug: 162783305
Test: atest ConnectivityServiceTest
Test: atest CtsNetTestCasesLatestSdk:CaptivePortalDataTest
Test: End-to-end test
Change-Id: I4fdf356be42237c5b6c0ae5bacfd3cec4726861b

Hai Shalom   commited 2021-01-11 18:45:34 -08:00
492febbfa2
Merge "Pivot network statistics to use DataInput/Output."
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-01-08 10:33:16 +00:00
14b8536eb3
Remove Vpn#isBlockingUid.
This code is no longer used. Delete it and the tests for it.

One of the tests checks that when a restricted profile is added,
the lockdown UID rules are updated to cover that profile as well.
ConnectivityServiceTest does not currently has coverage for this,
so add it.

Bug: 173331190
Test: moved unit test from VpnTest to ConnectivityServiceTest
Change-Id: Ic350b90946870890bf031668bb5c201037b0bd15

Lorenzo Colitti   commited 2021-01-08 15:35:55 +09:00
db35103974
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"
Paul Hu   authored and   Gerrit Code Review   commited 2021-01-07 02:08:58 +00:00
715827ca0a
Pivot network statistics to use DataInput/Output.
Using these generalized interfaces is more flexible, since it enables
us to pivot the implementation being used internally.  In particular,
an upcoming CL will pivot them to use a more efficient alternative.

This is a no-op refactoring.

Bug: 176777285
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: Ibd4717174cf1f136e9d5d80172ecb6e493265306

Jeff Sharkey   commited 2021-01-06 18:48:12 -07:00
fdca8168db
Merge "Migrate away from AsyncChannel in NetworkAgent"
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-01-06 14:10:21 +00:00
abf3317103
Improve error message when testing network factory
Currently, when network factory is under testing, but failed
without terminating the network factory. The mocked network
factory will stay registered and trigger another assertion
fail in teardown(). Thus, the test suite will only shows
the callstack that generated in teardown() instead of the
original fail. The error message is misleading and not useful
at all.

Thus, safely terminate and quit mocked network factory after
testing to prevent assertion fail in teardown().

Test: atest ConnectivityServiceTest#testMobileDataAlwaysOn
Bug: 175180558
Change-Id: I0f96332cc05221e576bd792c6cd26d9dccb4e228

junyulai   commited 2021-01-06 17:26:09 +08:00
0b9fecfac2
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"
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"
Chiachang Wang   authored and   Gerrit Code Review   commited 2020-12-28 01:05:28 +00:00
6b674eea72
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 "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
[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
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"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2020-12-23 01:19:27 +00:00
caa437cae0
[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
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"
* 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."
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"
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
Merge changes from topic "remove_legacy_NA"
* changes:
  Remove support for legacy network agents
  Remove deprecated constructors for NetworkAgent
  Migrate NetworkAgentWrapper to the new NA API
  Cleanup TestNetworkService

Chalard Jean   authored and   Gerrit Code Review   commited 2020-12-11 02:32:57 +00:00
71ab824707
Merge "Use getUserHandles() instead of getUsers() to get user id"
Lucas Lin   authored and   Gerrit Code Review   commited 2020-12-11 02:02:37 +00:00
df93f1c06c
nits removing extra space, change method name, etc
Minor cleanup as per nit comments on approved CLs in the relation chain.

Namely:
- removing an extranous space
- changing requestsSortedById() to be package private
- changing releaseNetworkRequest() name to releaseNetworkRequests()
- adding final in a couple spots
- added some test requests in testDumpDoesNotCrash()

Bug: 173145245
Bug: 173292541
Bug: 173146509
Bug: 171991028
Test: atest FrameworksNetTests
Change-Id: I177ec6072a44acd247022b65b56e90cc231094b9

James Mattis   commited 2020-12-10 10:01:52 -08:00
c449dde8b4