Commit Graph

1737 Commits

Author SHA1 Message Date
Motomu Utsumi
51e7a60359 Revert isDefaultNetworkActive behavior when there is no default network
aosp/2605757 updated isDefaultNetworkActive returns false when there is
no default network.
But this change was not merged to U release branch and this change was
not well tested by dogfooding.
So this CL reverts the isDefaultNetworkActivity behavior change.

Bug: 279380356
Bug: 291870075
Test: atest FrameworksNetTests
Change-Id: Id88662faea9eeaba93d59ab2729f6204a3631ab1
2023-08-01 12:50:00 +09:00
Motomu Utsumi
1e51a64988 Revert onNetworkActive callback behavior on U+
aosp/2605757 changed onNetworkActive callback behavior on U+ but this
change was not merged to U release branch.
This CL reverts the behavior change and keep the current behavior on U+.

Bug: 279380356
Bug: 291870075
Test: atest FrameworksNetTests
Change-Id: I91ccc7ee93f0827986401f316997b4a2df11318f
2023-07-31 19:33:24 +09:00
Chiachang Wang
c21ccc8399 Merge "Use utility method to execute things on the handler" into main 2023-07-13 03:24:29 +00:00
chiachangwang
26bd4adfc2 Use utility method to execute things on the handler
Replace Handler.post() with visibleOnHandlerTread().

Test: atest FrameworksNetTests
Change-Id: I3a2f166d939db8ed6ac7fbb1cb9306256ae22189
2023-07-12 11:33:51 +00:00
Paul Hu
9f353f9cc6 Merge "Deal with responses on MdnsServiceCache" into main 2023-07-12 10:54:00 +00:00
Paul Hu
cd57c783f5 Merge "Remove synchronized lock in MdnsServiceTypeClient" into main 2023-07-12 09:48:48 +00:00
Paul Hu
639e3c70bb Deal with responses on MdnsServiceCache
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
2023-07-12 08:12:54 +00:00
Paul Hu
2118d33da8 Remove synchronized lock in MdnsServiceTypeClient
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
2023-07-12 08:10:22 +00:00
Paul Hu
8abd1be521 Merge "Use a delayed message to schedule the query task" into main 2023-07-10 08:53:20 +00:00
Paul Hu
cd39d81fe1 Use a delayed message to schedule the query task
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
2023-07-10 05:45:37 +00:00
Chiachang Wang
7f8015fe9e Merge "Limit the translation code on NAT-T keepalive" into main 2023-07-10 00:28:10 +00:00
chiachangwang
9d494ca5f7 Limit the translation code on NAT-T keepalive
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
2023-07-07 07:54:07 +00:00
Chiachang Wang
f5025ba1a4 Merge "Vertify the exact interactions with mocking object" into main 2023-07-07 01:12:13 +00:00
chiachangwang
a607674033 Vertify the exact interactions with mocking object
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
2023-07-06 09:16:04 +00:00
Paul Hu
d5b24b4855 Add a handler thread check to all public methods
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
2023-07-05 07:46:36 +00:00
Paul Hu
775840e1b4 Use SocketKey in MdnsServiceCache
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
2023-07-05 06:38:41 +00:00
Treehugger Robot
e59d30bc2a Merge "Adjust query frequency based on remaining TTL" 2023-07-05 06:19:38 +00:00
Yuyang Huang
f56c92f3ff Adjust query frequency based on remaining TTL
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
2023-07-05 13:01:19 +09:00
chiachangwang
d34aac4123 Update tests to reflect the time unit change in Vpn
Test: atest FrameworksNetTests
Change-Id: I84a3f75bb527136bd0319f5af1bc43d2575495dd
2023-07-04 08:27:44 +00:00
chiachangwang
42ba18ca1e Update tests for VPN data stall recovery
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
2023-07-04 05:49:49 +00:00
Hansen Kurli
ab85de69b1 Skip writing the metrics before T.
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
2023-07-03 10:43:28 +00:00
Chiachang Wang
7e1076e174 Merge "Translate v4 keepalive packet on clat started network to v6" 2023-07-03 09:14:09 +00:00
Paul Hu
f51a0139a2 Merge "Move NsdServiceInfoTest to common tests" 2023-07-03 06:24:43 +00:00
chiachangwang
c5c5c84f4c Translate v4 keepalive packet on clat started network to v6
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
2023-06-29 12:43:59 +00:00
Treehugger Robot
fd7fa4ede9 Merge "Revert "Always disconnect agents immediately."" 2023-06-27 12:06:45 +00:00
Paul Hu
0068ec2765 Merge "Address leftover comments" 2023-06-27 10:57:54 +00:00
Jean Chalard
3160bc0825 Revert "Always disconnect agents immediately."
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
2023-06-27 19:19:11 +09:00
Paul Hu
03aabc0d78 Merge "Send packets on the specific socket" 2023-06-27 05:40:38 +00:00
Jean Chalard
56d484c6e5 Merge "Evaluation delay = 8 secs for explicitly selected networks" 2023-06-27 05:15:16 +00:00
Jean Chalard
1acb331613 Merge "Allow firing the LOST_INTERNET intent immediately in config" 2023-06-27 05:14:44 +00:00
Paul Hu
070007164c Address leftover comments
Address leftover comments on aosp/2596565 & aosp/2593907 includes
- Rename onAllSocketsDestroyed to onSocketDestroyed
- Move SocketKey into SocketInfo
- Remove getInterfaceIndex dependency.

Bug: 278018903
Test: atest FrameworksNetTests android.net.cts.NsdManagerTest
Change-Id: Ia37804f18d8e9abbd12d4b929b71dce5fa19d4f0
2023-06-26 14:19:05 +00:00
Paul Hu
721f9b28bf Send packets on the specific socket
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
2023-06-26 13:27:47 +00:00
Chalard Jean
e13b833b21 Allow firing the LOST_INTERNET intent immediately in config
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
2023-06-22 15:03:10 +09:00
chiachangwang
b3eccf7b8a Reset the generated v6 clat address when stop
The v6 address is generated from the prefix when clat is started.
The address should be reset when clat is stop.

Test: atest FrameworksNetTests
Change-Id: I943d4efba85dda556dd1ec852322caaf9470e87b
2023-06-21 06:43:28 +00:00
Chalard Jean
0f1413395d Evaluation delay = 8 secs for explicitly selected networks
When a network was explicitly selected, the user just tapped it and
is likely waiting for it to connect. A shorter timeout is therefore
more appropriate for these.

Bug: 281970908
Test: New test in ConnectivityServiceTest
Change-Id: I99a263960cbc9292868fc4bb46a4f3b2f3c71541
2023-06-20 18:48:39 +09:00
Motomu Utsumi
e0365d45ca Merge "Fixes isDefaultNetworkActive and onNetworkActive unreasonable behavior" 2023-06-20 01:00:24 +00:00
Motomu Utsumi
6225d57b18 Fixes isDefaultNetworkActive and onNetworkActive unreasonable behavior
This CL changes the behavior as follows.

Before this CL, isDefaultNetworkActive returns true if there is no
default network.
After this CL, isDefaultNetworkActive returns false if there is no
default network on all releases.

Before this CL, LegacyNetworkActivityTracker does not call
onNetworkActive callback for networks that tracker does not add the idle
timer to (e.g.  ethernet, cell network configured with activity tracking
disabled).
After this CL,
On T-, onNetworkActive keeps the current behavior.
On U+, onNetworkActive is called regardless of the idle timer existence. This behavior is consistent with ConnectivityManager#isDefaultNetworkActive, which always returns true for a network that has no activity tracking.

Bug: 267870186
Bug: 279380356
Test: atest FrameworksNetTests
Change-Id: I7b1d493fea0ab028b53a3d640a58a00ebbdcc143
2023-06-20 00:59:46 +00:00
Motomu Utsumi
0d56157186 Merge "Add test for default network activity APIs" 2023-06-20 00:44:01 +00:00
Cassie Wang
04f3dc871d Merge "Add checks around CONTROL_VPN permission during prepare()" 2023-06-19 11:38:23 +00:00
Hansen Kurli
95386feff1 Merge "Have paused keepalives keep their hardware slot" 2023-06-19 08:30:35 +00:00
Cassie Wang
eecfb86aa9 Add checks around CONTROL_VPN permission during prepare()
Bug: 284803285
Test: atest
FrameworksNetTests: android.net.connectivity.com.android.server.connectivity.VpnTest
Change-Id: I0a277f6b4e7cd25aff7edad9dd0e89a44dfbf3fe
2023-06-19 17:26:15 +09:00
Chiachang Wang
fbcd08a28d Merge changes I9bbff5be,I270b751d,Ibf1bd267
* changes:
  Remove unused import and reorder the import
  Add debug logs for error cases
  Add KeepaliveTracker.Dependencies class for testing purpose
2023-06-19 01:17:59 +00:00
Treehugger Robot
454c06e956 Merge "Adds option to control whethert to send IPv6 packet on IPv6 only network" 2023-06-17 09:34:57 +00:00
Yuyang Huang
9637e84eed Adds option to control whethert to send IPv6 packet on IPv6 only network
Add options to control whether only send IPv6 packet on IPv6 only
network. In some use case, IPv6 query should not be sent on a dual
network.

Added a small improvement to send an ANY query if both SRV & PTR
records are needed.

Bug: 284480254
Test: atest CtsNetTest FrameworksNetTests
Change-Id: I8f55db6f5e8ae606ac167fb363bc9b2fb9b5fc14
2023-06-17 16:27:43 +09:00
chiachangwang
4f52de0bdc Add KeepaliveTracker.Dependencies class for testing purpose
This is a part of preliminary work for adding tests in the
follow up commit.

Bug: 196453719
Test: atest FrameworksNetTests
Change-Id: Ibf1bd267c4c144f533380eeafc6a6144f64da483
2023-06-17 03:24:09 +00:00
Chalard Jean
ebb0747af3 Have paused keepalives keep their hardware slot
When a keepalive is paused, it should sit on its hardware
slot for this network to make sure that it is possible to
resume later, even if it means other keepalives can't be
started at the same time.

Test: update AutomaticOnOffKeepaliveTrackerTest for this
Fixes: 268149573
Fixes: 283886067
Change-Id: Ida325bdea198d751483a83ee5d9ec26e39812137
2023-06-16 09:19:42 +00:00
Maciej Żenczykowski
12540e13f0 Merge "Remove toString test." 2023-06-16 04:34:33 +00:00
Lorenzo Colitti
d925df8aa6 Merge "Always disconnect agents immediately." 2023-06-15 03:49:05 +00:00
Paul Hu
7c60aaa851 Merge "Create an MdnsServiceTypeClient using a SocketKey" 2023-06-15 01:01:46 +00:00
Paul Hu
a8d1cabcd7 Merge "Notify socket changes using a SoketKey" 2023-06-15 01:01:24 +00:00