* changes:
Unregister BroadcastReceiver and OnSubscriptionsChangedListener.
Disable KeepaliveStatsTracker before T.
Disable KeepaliveStatsTracker instead of throwing.
In failed log, VPN still process the migration which does not
send the network capabilities update to network agent.
In low performance devices like cuttlefish, it may sometimes
cause flaky. Specify a longer timeout to deflake the test.
Bug: 293233390
Test: atest FrameworksNetTests
Change-Id: I4e6c80c03e19efb448ee2806c5a250425b0e068f
When ServiceTypeClient is not used, the Executor threads should be
shutdown as well.
Bug: 287013457
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: I9dae01e7b6c2bcd395a98f4362f0c36f1535b2a6
Collect information about registration successes, failures, and
unregistrations, then build metrics data from this information
and report it.
Bug: 287546772
Test: atest FrameworksNetTestCases NsdManagerTest
Change-Id: I6324279b479da2e61b7519d96df5ad24a432e54a
getLauncherPackageName sometimes returns "com.android.settings", causing
the test to fail.
Add polling for the launcher to not return settings, and logging to
try to understand why this happens, especially if polling does not solve
the issue.
Bug: 286550950
Test: atest
Change-Id: I90963d5db326732dfc82db07f36676190ffdcce9
This is a no-op change. The Clock class is a wrapper that is
used for testing. So move it from MdnsResponseDecoder to
MdnsUtils for subsequence metrics changes.
Bug: 287546772
Test: m
Change-Id: If4c8c0061c76ae26fc78a5ff463a31d57470fba0
1. Unregister BroadcastReceiver of default subscription id.
2. Use a CompletableFuture to store and unregister the
OnSubscriptionsChangedListener. Note this has to be done since the
listener cannot be constructed in the handler thread.
Bug: 288059409
Test: atest FrameworksNetTests
Change-Id: Ia5fc3e53305a99c32ad2f6d5b1b6a367dc20c1d7
Avoid throwing errors when something unexpected occurs with the
keepalive state since metrics should not cause a crash. Instead, disable
the tracker and skip writing the metrics.
Bug: 288059409
Test: atest FrameworksNetTests
Change-Id: I1cd5acb32eb062ccdf7d1ac3e25a21309ad011c2
To cache services and respond quickly, the MdnsServiceTypeClient
should add all services to the MdnsServiceCache and remove any
services from there as well.
Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: If0a9e6b563a0992ac25b8cde7f3beb00700f1c11
Now that all access to MdnsServiceTypeClient parameters is
running on the handler thread, the synchronized lock is no
longer necessary. Therefore, the synchronized lock can be
safely removed from MdnsServiceTypeClient.
Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: I5cd28aa738ea3c199b75097f4583e98be86a6ee7
When updating lockdown UID ranges, do not remove a UID from lockdown
if it is still present in any of the previously-supplied ranges that
have yet to be removed. This allows supplied lockdown ranges to stack
properly, providing an assurance that a UID will remain subject to
lockdown until all of the ranges including it have been removed.
Change-Id: Ia95724cd19040f83cea2c169a2585ab5dbdddbac
To reduce the multi-thread access to MdnsServiceTypeClient, the
query task scheduling should be replaced with a delayed message.
This will allow the synchronized lock to be removed in future
changes.
Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: I340fe1a407947be860cdcd9c7c76829417a32e4c
Limit the translation code on NAT-T keepalive because the
intention of the translation is design for NAT-T keepalive.
The translated packets is also NAT-T packet data which should
not apply to TCP keepalive.
Bug: 196453719
Test: atest FrameworksNetTests
Change-Id: I0951621edc9f918199d82365a6f1c03617ddd806
There are more than 1 interaction inside verifySetupPlatformVpn.
The original code does not actually wait for the target
interaction with Executor.schedule(). The interact may happen
after reset the mocking object. This will leave a unexpected
interaction in the follow up verification and cause a flaky
test.
This test was fine in the initial patch, but becomes failed
after the time unit used in Executor.schedule() was changed
to milliseconds for data stall recovery. Both interactions
for data stall ones and non-data stall ones will be captured
together after that.
Bug: 289961869
Test: atest VpnTest --rerun-until-failure 20
Change-Id: If24e323b366bb15b81fe9fa554fa7ccc852ba6f1
To ensure that all access to the MdnsServiceTypeClient is done on
the handler thread, a handler thread check must be added to all
public methods in the MdnsServiceTypeClient. This will allow the
synchronized lock to be removed in future changes, and it will
also ensure that MdnsServiceTypeClient can access MdsServiceCache
properly.
Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: I0206874eb0acdf0272b8ad23d29f3e764bfdec38
The MdnsServiceTypeClient is now created using a SocketKey, so
the MdnsServiceCache should also use the SocketKey to deal with
the caching services.
Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: I6165ffd420a39e750c06778b4851142a3ba3cf44
After numOfQueriesBeforeBackoff query, the mDNS discovery logic will
enter backoff mode. In backoff mode, the query frequency will be
updated to max(20, 0.8 * shortest remaining TTL) seconds. It will help
to reduce mDNS query frequency in certain use cases.
Bug: 284480315
Test: atest CtsNetTest FrameworksNetTests
Change-Id: Iac8baaaf58cf9b3b8e67e1cd80402fdecde1d3d4
Data stall recovery in VPN does not rely on the data stall
event now. Update the tests accordingly.
Bug: 289746779
Test: atest FrameworksNetTests
Change-Id: I4d2d96fe2f76706512325b6653b3e7cced10f207
Repeated fields are only supported on T+ and the metrics in
KeepaliveStatsTracker contains repeated fields. Hence, guard the write
with a T+ check.
Bug: 289344384
Test: Manual test
Change-Id: If3be75292b5a79aa753bddb772fe2c52c9dde994
This commit translates the address of keepalive packet to v6
in order to make NATT keepalive work on v6 only network.
Sending a v4 NATT keepalive on a v6 only network is bogus if
hardware does not translate the packet automatically. Network
may drop the packet or reject the attempt by hardware. This
results in ERROR_INVALID_IP_ADDRESS and stop the keepalive
request.
Bug: 196453719
Test: atest FrameworksNetTests
Test: Manually connect to v6 only network and check if the
keepalive packets are sent
Change-Id: I798c5d48661d8151b19902435732f465b5aa725b
This reverts commit 4bc9fa6b8c.
Reason for revert: b/288450518
Some iterations over mNetworkAgentInfos result in networks being
disconnected, which removes them from mNetworkAgentInfos during
iteration. This crashes with NPE or OOB exceptions.
Bug: 286649301
Bug: 288149251
Bug: 288450518
Change-Id: I6e0b5b614d9e88267db77cb807ae4bf09f88c0f6
In the previous design, the network could be null for some
MdnsServiceTypeClient (tethering interfaces). However, the
MdnsMultinetworkSocketClient is designed to send packets on
specific networks. This means that if there are multiple
tethering interfaces, packets will be sent to unnecessary
sockets. Now, the MdnsServiceTypeClient is created by the socket,
which can identify which socket is the target for sending
packets. Therefore, the design should be updated to send packets
only on the specific socket.
Bug: 278018903
Test: atest FrameworksNetTests android.net.cts.NsdManagerTest
Change-Id: Id87e6d202599c57620281a6761d3c56acd2c929c
When config_notifyNoInternetAsDialogWhenHighPriority is on, the
LOST_INTERNET notification intent should be fired immediately
rather than as a pending intent.
Bug: 281970908
Test: Improve test for this in NetworkNotificationManagerTest
Change-Id: I88565839a12a1ab4b096f763250944ebaf6c5349