Commit graph android_packages_modules_Co.../tests/unit/java
Message SHA1
Add some more client network tests
Test: TH
Change-Id: Ia71c79aa34c8fcfb078511543695ceddde4af53c

Patrick Rohr   commited 2025-02-24 17:02:36 -08:00
c060ffe22f
Add test for when BluetoothSocket#connect throws
Test: TH
Change-Id: I570dbff550ac1f1c167af5a25b471e41bf421dc2

Patrick Rohr   commited 2025-02-24 17:02:36 -08:00
e87e9241a0
Add a test for when createInsecureL2capChannel throws
Test: TH
Change-Id: Ia063deeaced151870138568e103a605a75813af9

Patrick Rohr   commited 2025-02-24 17:02:36 -08:00
d621b3d8aa
Add a test that brings up an L2cap server network
Test: TH
Change-Id: I9f2d750a822ce1790c9a766415ffc494a47d9287

Patrick Rohr   commited 2025-02-24 17:02:36 -08:00
1446e7a428
Merge changes Ib2febede,Id3752790,I7cfcc93a,I26f6669f,I5d722c0d into main
* changes:
  Add missing javadocs to satisfy linter
  Make linter happy
  Use ThreadLeakMonitor for CSL2capProviderTest
  Add some tests to ensure BluetoothExceptions are handled
  Move creating L2capPacketForwarder to dependencies

Patrick Rohr   authored and   Gerrit Code Review   commited 2025-02-21 15:04:40 -08:00
2360f4500b
Make linter happy
Test: TH
Change-Id: Id3752790b0c040adbb5d08ddcb7aa2279254b7de

Patrick Rohr   commited 2025-02-21 11:57:23 -08:00
4dd26d1ad2
Use ThreadLeakMonitor for CSL2capProviderTest
This CL introduces ThreadLeakMonitor for CSL2capProviderTest.
ThreadLeakMonitor ignores threads with unique names, so all
L2capNetworkProvider related threads must specify a name.

Test: TH
Change-Id: I7cfcc93ab562a1ada2058d8c73e968a8d0005b1d

Patrick Rohr   commited 2025-02-21 11:57:23 -08:00
b4f3922c01
Add some tests to ensure BluetoothExceptions are handled
This is just the beginning.

Also fixed a bug that put(null) on the blocking queue, which apparently
is not supported.

Test: TH
Change-Id: I26f6669f483d76fcba83735bb6d32880e23dd451

Patrick Rohr   commited 2025-02-21 11:57:23 -08:00
5a5c34a679
Move SkDestroyListener to under staticlibs
Upcoming CL use SkDestroyListener from ConnectivityService

Bug: 311792075
Test: atest FrameworksNetTests
Change-Id: I96dec7e13aaa574b90e7caf3b559ee5172848e51

Motomu Utsumi   commited 2025-02-21 09:26:11 +09:00
1135975109
Update SkDestroyListner to support only monitor UDP sockets close
Bug: 311792075
Test: atest FrameworksNetTests
Change-Id: Ib7749049fb0bd6ce8218ec62bec96584106ad7c5

Motomu Utsumi   commited 2025-02-21 09:26:10 +09:00
7f86b7485a
Update SkDestroyListener to take consumer for inetDiagMessage processing
This is a no-op refactoring (except for logging) in preparation for an
upcoming CL(aosp/3502915) that will use SkDestroyListener to close quic
connections for destroyed quic sockets.

Test: atest FrameworksNetTests
Bug: 311792075
Change-Id: I41e2a16075fc9242cae19f84d1255358333744ab

Motomu Utsumi   commited 2025-02-21 09:25:39 +09:00
d159016c22
Check local network permissions when permission changes, or when user or
packages is added or removed

Bug: 388803658
Test: atest ConnectivityCoverageTests

Change-Id: I7d098c4d9a7614d0bd40ae23869a2010ee3f0779

Jacque Li   authored and   Neha Raj   commited 2025-02-20 04:59:45 +00:00
8d5c6eae80
Merge "Wrapping Network and Traffic permissions in a class for module usage." into main
Maciej Å»enczykowski   authored and   Gerrit Code Review   commited 2025-02-19 19:27:48 -08:00
37e457bd0a
Merge "Adding stacked link addresses to local_net_access map" into main
Sarup Dalwani   authored and   Gerrit Code Review   commited 2025-02-19 19:01:55 -08:00
c42f5fc47f
Merge changes I77101952,I399631c6,I5ea98a06,I0b243f45,I5554cd42, ... into main
* changes:
  Fix test comment
  Enable header compression when requested
  Implement 6lowpan header compression
  Add a basic CSTest for L2capNetworkProvider
  Release network reservations in tearDown
  Start L2capNetworkProvider in CS
  Revert "Join HandlerThread if BLE is not supported"

Maciej Å»enczykowski   authored and   Gerrit Code Review   commited 2025-02-18 21:39:41 -08:00
90a2f97e4c
Fix test comment
Change-Id: I77101952b24825b2c3983ccc5ac384e369a97148

Patrick Rohr   commited 2025-02-18 19:41:15 -08:00
d6bcc2c5e0
Implement 6lowpan header compression
This implements 6lowpan header compression per rfc 6282. While the
decompression logic is full-fledged (to accept almost any 6lowpan
compressed packet on ingress), the compression logic does *not* actually
compress the packet.

Fully fledged compression might be submitted in a follow up, to make
integration testing possible.

Test: TH
Change-Id: I5ea98a06e502fe0752cfe827dbdf8ee4a7dfb24c

Patrick Rohr   commited 2025-02-18 19:41:15 -08:00
a1430bbb11
Add a basic CSTest for L2capNetworkProvider
This moves the tests that used to be in L2capNetworkProviderTest into a
CSTest based CSL2capProviderTest; however, it still only tests that
reservation offers are created in response to reservation requests.

More thorough tests will be added in follow ups.

Test: TH
Change-Id: I0b243f4517ee41376716cf4930f90657c4bc77b0

Patrick Rohr   commited 2025-02-18 19:41:15 -08:00
16093391f3
Start L2capNetworkProvider in CS
Starts L2capNetworkProvider in ConnectivityService. Alternatively, this
could be moved to ConnectivityServiceInitializer instead in a follow up.

When L2capNetworkProvider is created, it starts a handler thread, so
makeL2capNetworkProvider must return null in tests as otherwise the
thread leaks.

Test: atest NetworkReservationTest
Change-Id: I35c14815b1a71f0739c1bf63ad466763d611434c

Patrick Rohr   commited 2025-02-18 19:19:22 -08:00
611ce3f57c
Adding stacked link addresses to local_net_access map
Iterating over stacked link address to ensure correct mapping for
interface to local network ip prefixes.

Bug: 369815823
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.BpfNetMapsTest
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.CSLocalNetworkProtectionTest
Change-Id: I3b2ed906caf43584ffb0e8041f9302c760099f7b

Sarup Dalwani   commited 2025-02-18 19:30:12 +00:00
7d0fcbb0d3
Remove unused code to instantiate bpfNetMaps
Test: m
Change-Id: I253567479e7fd3bccf6723ab86ac1e6b3149e3ad

Motomu Utsumi   commited 2025-02-18 19:11:08 +09:00
5fe65846fe
Exclude dns servers from LNP
Whenever ip interface is updated, we are updating local network
addresses. These may include dns servers that are needed to be excluded from
restrictions.

Bug : 393354879
Test: Manually and atest
ConnectivityCoverageTests:android.net.connectivity.com.android.server.CSBpfNetMapsTest

Change-Id: Id4ebb33ab7de84ac1c81d485e599779c460bacdc

Neha Raj   commited 2025-02-18 03:28:42 +00:00
4792cc5d98
Populating local addresses to local_net_access_map
Whenever LinkProperties is added/modified/removes, we are updating local
network prefixes for the modified interface/addresses. These prefixes
are used by BPF egress and ingress cgroup hooks to disallow local
network packets if the calling application do not have required
permission.

Bug: 369815823
Test: Manually tested
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.BpfNetMapsTest
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.CSLocalNetworkProtectionTest
Change-Id: Ie592ecb948ae05a0a73f47d0573560eb705f6bcf

Sarup Dalwani   commited 2025-02-17 20:34:41 +00:00
18b7262f60
Merge changes I963a1c84,I515d6b60,Iae99f0bc,I99d1240d,I49d078fb into main
* changes:
  Check whether a NetworkRequest is already tracked
  Check whether client NetworkRequest includes a valid specifier
  Add empty ClientOffer
  Delete L2capNetworkProviderTest
  Add support for an L2CAP server network

Patrick Rohr   authored and   Gerrit Code Review   commited 2025-02-14 15:10:29 -08:00
d74eb41b49
Wrapping Network and Traffic permissions in a class for module usage.
To add PERMISSION_SDKSANDBOX_LOCALHOST which is used in the same bitmask
as permissions declared in INetd.aidl but doesn't need visibility to the
platform.

Bug: b/326383676
Test: NetworkTrafficPermsTest
Flag: N/A
Change-Id: Id7a36f5659f8fd7542a87671d4b5f067d66db34e

Melisa CZ   commited 2025-02-14 15:49:49 +00:00
433de97c6b
Merge "Fix test flake in MdnsDiscoveryManagerTests" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2025-02-14 00:46:57 -08:00
f89a40ae61
Exclude Google Cast app subtypes from mDNS offload
This commit excludes Google Cast app subtypes from mDNS offloading. The
large number of subtypes would consume excessive firmware resources if
offloaded.

Test: TH
Change-Id: I562a94187dc5c710ca37d4997e9ed6c1602918b6

Yuyang Huang   commited 2025-02-14 16:08:17 +09:00
9cb8a29436
Merge "Format MdnsAdvertiser with ktlint" into main
Yuyang Huang   authored and   Gerrit Code Review   commited 2025-02-13 22:56:33 -08:00
5c374ff035
Delete L2capNetworkProviderTest
These are later replaced by / moved to CSL2capProviderTest.kt

Test: TH
Change-Id: I99d1240dc941daa6c2bf57298d11dc668bcb6c3e

Patrick Rohr   commited 2025-02-13 15:53:02 -08:00
5fb5f07f65
Add support for an L2CAP server network
This change creates an AcceptThread inside ReservedServerOffer which
accepts all incoming L2CAP connections and creates an L2capNetwork for
each of them.

Note that these networks are indistinguishable, so CS will tear all but
the first one down. This is working as intended.

If the L2capNetwork or the AcceptThread encounter any error during
execution, the reserved offer is torn down and the reserving app will
receive an onUnavailable() callback (by virtue of reservation
semantics).

Test: atest NetworkReservationTest
Change-Id: I49d078fb32ff48c1201a8a4dc65cbe785dcc9179

Patrick Rohr   commited 2025-02-13 09:17:56 -08:00
f0abfb976b
Fix test flake in MdnsDiscoveryManagerTests
The MdnsDiscoveryManagerTests#testDiscoveryExecutor test is flaky
because the Future task sometimes fails to complete on the CF
target. This performance-dependent issue causes Future#isDone to
return a false value. Therefore, remove the isDone check, as
Future#get already performs the same check.

Bug: 392995312
Test: atest MdnsDiscoveryManagerTests#testDiscoveryExecutor \
      --iteration 100
Change-Id: I6a032e80da76eae5ec81bfe7900c0b0e3a3c6efa

Paul Hu   commited 2025-02-12 06:28:24 +00:00
54a82760a2
Merge changes Icf49147d,I622c86fe,I3e789541 into main
* changes:
  Move reserved offer teardown into a function
  Store reserved offers in a Set instead
  Allocate a BluetoothServerSocket for the ReservedServerOffer

Maciej Å»enczykowski   authored and   Gerrit Code Review   commited 2025-02-10 16:54:47 -08:00
37714f553c
Merge changes I7b966621,I082c7af8,I8cdc8004,Icfba2964 into main
* changes:
  Move L2capNetworkProvider#start() onto Handler thread
  Mark globals as private
  Move the common set of NetworkCapabilities to the provider class
  Add L2capNetwork class

Maciej Å»enczykowski   authored and   Gerrit Code Review   commited 2025-02-10 14:44:22 -08:00
38f428c4a3
Merge "Add CTS test for ConnectivityManager#tether exception after V" into main
Quang Luong   authored and   Gerrit Code Review   commited 2025-02-09 22:04:43 -08:00
0e480b7857
Allocate a BluetoothServerSocket for the ReservedServerOffer
This change allocates a BluetoothServerSocket as a response to the
reservation. The resulting PSM is used to create the reserved
capabilities stored in ReservedServerOffer.

Test: TH
Change-Id: I3e789541474a492bb1c015d6316db12a3c995995

Patrick Rohr   commited 2025-02-07 14:27:00 -08:00
466bff2833
Merge "Add L2capPacketForwarder" into main
Patrick Rohr   authored and   Gerrit Code Review   commited 2025-02-07 12:58:48 -08:00
297793e2d2
Move L2capNetworkProvider#start() onto Handler thread
To prevent having to use locking or memory synchronization mechanisms
later on.

Test: TH
Change-Id: I7b966621012030ab78e7a7e21e49ddc5df37df75

Patrick Rohr   commited 2025-02-07 12:57:10 -08:00
195e65db5d
Mark globals as private
Otherwise, they may conflict with other definitions in the same package.

Test: TH
Change-Id: I082c7af8aa186b6101ec08714d1ace5d64c1c95e

Patrick Rohr   commited 2025-02-07 12:57:10 -08:00
735afa97d3
Adding access methods for local_net_access_map and
local_net_blocked_uid_map

Test: Manually tested this using dumpsys commands
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.BpfNetMapsTest
Bug: 392855578

Change-Id: I61522f3282aa502f20641d3c2692a66638edf706

Sarup Dalwani   authored and   Jacque Li   commited 2025-02-07 15:10:49 -05:00
448eb43f28
Listen to permission changes in permission monitor
Bug: 369646309
Test: atest
ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest

Change-Id: I23c524baaee6b9b06a855fb811906e5189ef03fd

Jacque Li   commited 2025-02-07 15:08:09 -05:00
2003e6ee49
Add L2capPacketForwarder
L2capPacketForwarder forwards packets between an L2CAP BluetoothSocket
and a tun fd.

It uses blocking i/o to do so, since the BluetoothSocket API does not
expose a file descriptor to poll() on.

It remains to be seen whether shutdown() on a tun interface fd is
actually implemented. Currently, the test uses a pair of SOCK_SEQPACKET
sockets which require to be shutdown to interrupt the blocking read.

Test: L2capPacketForwarderTest
Change-Id: I03d2a2dd76ec2b71fdb9e3ea7008daa6d1d124fe

Patrick Rohr   commited 2025-02-07 10:50:48 -08:00
65dc1295dc
Add CTS test for ConnectivityManager#tether exception after V
Current test was mistakenly added to the unit test version of
ConnectivityManagerTest instead of the CTS test. Move this to the CTS
test instead.

Bug: 392986269
Test: atest android.net.cts.ConnectivityManagerTest
Change-Id: Id64d21929fb6b6c42f46a821a3cd28bbcaf77cda

Quang Anh Luong   commited 2025-02-07 12:42:12 +09:00
6c478ee215
Format MdnsAdvertiser with ktlint
Test: TH
Change-Id: I6f41631329571dc3f9120ce968162e3314a956d3

Yuyang Huang   commited 2025-02-06 23:47:48 +09:00
ab9bb106c2
Stop tracking left-over test interfaces
When setIncludeTestInterfaces(false) is called, any RTM_DELLINK
callback for a testtap interface is ignored, since the interface is no
longer considered to be a valid ethernet interface.

Change setIncludeTestInterfaces to go through all interfaces, and stop
tracking the ones which are no longer valid. Otherwise, they will
stick around forever (and break subsequent tests).

Bug: 390722214
Test: TH
Change-Id: Ied73e86c0452831f4d6b00f67908c51201af8bbd

Patrick Rohr   commited 2025-01-29 07:34:27 -08:00
d16138eeea
Merge "Add default capabilities for empty config" into main
Chris Desir   authored and   Gerrit Code Review   commited 2025-01-17 10:05:13 -08:00
bcbea35fb5
Add default capabilities for empty config
While doing some testing for another change (pa/2844131), I noticed that
an interface in config.xml with no network capabilities listed provided
no internet connection. parseEthernetConfig was updated to provide empty
 config capabilities with the default capabilities (which
 includes NET_CAPABILITY_INTERNET for non test ifaces).

Flag: BUG_FIX
Test: atest ConnectivityCoverageTests
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.ethernet.EthernetTrackerTest

Bug: 352523028
Change-Id: I6f73b0554f95c20fd1912a3c8da2b3c64f2ac4c4

Chris Desir   commited 2025-01-16 14:47:34 -08:00
3133c0a52a
L2capNetworkProvider should use its own handler thread
Eventually, this will be started by CS, but it should not reuse the CS
handler thread.

Test: TH
Change-Id: I20dc252d91351cf92724d640e272f28ddc29dbf4

Patrick Rohr   commited 2025-01-16 09:52:35 -08:00
2e3904dc4e
Disallow legacy tether() API starting in B
As part of the major tethering refactor to associate every IpServer with
a TetheringRequest, tether()/untether() APIs should be completely
removed in B and all tethering should go through startTethering() (with
the exception of Wifi LOHS and Wifi P2P, which will move to
startTethering() in a future CL).

Bug: 216524590
Test: atest CtsTetheringTests TetheringTests

Change-Id: If7981f1ee7d80ff0a1cc0069ba7a4ebf79144160

Quang Anh Luong   commited 2025-01-15 08:59:42 +09:00
30d8a25db3
Register reserved offer
The reserved offer adapts the reservation requests capabilities, and
additionally populates its own capabilities (namely the PSM provided by
the BluetoothServerSocket).

Test: TH
Change-Id: Ida388b6f1e4552242726bd4d7eba6215bb0577a3

Patrick Rohr   commited 2025-01-13 13:57:20 -08:00
f1ae5ab86c
Add blanket offer to L2capNetworkProvider
Registers a blanket reservation offer which will receive reservation
requests filed using ConnectivityManager#reserveNetwork.

Test: TH
Change-Id: I2d37fe564a6c40f2c6dee1f6f7aa655c47628b85

Patrick Rohr   commited 2025-01-10 14:46:54 -08:00
77df9d3483