Commit graph android_packages_modules_Co.../thread
Message SHA1
[DON'T BLOCK] Test ownership migration rules
This CL is created as a best effort to migrate test targets
to the new android ownership model. If you find incorrect or unnecessary
attribution in this CL, please create a separate CL to fix that.

For more details please refer to the link below,
<add g3 doc link>

Bug: 304529413
Test: N/A
Change-Id: I243f17b3f0ad7af9ffa15ca242456e36688733f5
Merged-In: I243f17b3f0ad7af9ffa15ca242456e36688733f5

Aditya Choudhary   commited 2024-01-31 12:34:50 +00:00
01b5ede2b2
Merge "[Thread] add Thread tests to mts-tethering" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-31 05:45:12 +00:00
6c728aa1fa
Merge "Pass buffer size to NetlinkUtils.netlinkSocketForProto" into main
Maciej Żenczykowski   authored and   Gerrit Code Review   commited 2024-01-31 01:42:49 +00:00
2cb28ea360
Pass buffer size to NetlinkUtils.netlinkSocketForProto
Pass buffer size to netlinkSocketForProto to allow callers to specify
buffer size. The buffer size is not set if 0 is passed in.

Following callers of netlinkSocketForProto passes SOCKET_RECV_BUFFERSIZE
to keep same behavior as before:
 * OffloadHardwareInterface.createConntrackSocket()
 * NetlinkUtils.sendOneShotKernelMessage()
 * IpSecXfrmController.Dependencies.newNetlinkSocket()
 * InetDiagMessage.getConnectionOwnerUid()
Following callers pass 0 to not update the buffer size:
 * TunInterfaceController - it uses the socket only for writing
 * NetlinkUtils.createNetLinkInetDiagSocket() same behavior as before
Added a SOCKET_DUMP_RECV_BUFFERSIZE of 128k to be used by socket
requesting dump information from kernel:
 * NetlinkUtils.getAndProcessNetlinkDumpMessages() - sends dump request
   and expecting multiple reply messages.

Bug: 320420453

Test: atest NetworkStaticLibTests
atest FrameworksNetTests

Change-Id: I3dcb76963cf2646eb311602b50ab4e44b8ad3e8f

Yang Sun   commited 2024-01-30 21:54:48 +08:00
7934241c8f
Merge "Move the Thread proguard flags to ConnectivityService's proguard.flags" into main
Handa Wang   authored and   Gerrit Code Review   commited 2024-01-30 09:03:34 +00:00
96361bc4cd
Merge "[Thread] add ThreadNetworkIntegrationTests to mts-tethering" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-29 12:08:06 +00:00
e2021fde0c
Merge "Update name threadnetwork.country_code in comments" into main
Zhanglong Xia   authored and   Gerrit Code Review   commited 2024-01-29 07:34:42 +00:00
1553c4d350
Merge "[Thread] tests a single ThreadNetworkController" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-29 06:29:46 +00:00
9c712684b1
[Thread] tests a single ThreadNetworkController
Simplifies the CTS tests by testing only the first controller given
there is only one controller. No testing logic changes.

This commit also moves the helper methods to end of the file as they are
not the focus.

Bug: 321662734
Test: m CtsThreadNetworkTestCases
Change-Id: I4acf26e13ee112df2b7378b1005a1a14de4d783e

Kangping Dong   commited 2024-01-29 11:57:40 +08:00
44b8312033
Update name threadnetwork.country_code in comments
The properity `ro.boot.threadnetwork.country_code` has been renamed
to `threadnetwork.country_code` in aosp/2923770. This CL updates the
properity name in the comment.

Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: I630f4d970452b17c3ee35fa8e9792ca907341ee8

Zhanglong Xia   commited 2024-01-29 11:13:47 +08:00
08bba8804a
[Thread] add Android.bp format to make-pretty.sh
There are sometimes gerrit warnings on Android.bp file format:
```
Analyzer Description: Formats Android.bp files.
Owner: soong-team@google.com

This file is not formatted.

Run prebuilts/build-tools/linux-x86/bin/bpfmt -w {filename} to format the file, or apply the suggested fix.
```

This commit adds the suggested format script to make-pretty.sh to avoid
the warning.

Change-Id: I8a691b1e6af873e8c43e34ed3168203d469eee1c

Kangping Dong   commited 2024-01-28 13:14:46 +08:00
c73dd5aa23
[Thread] add ThreadNetworkIntegrationTests to mts-tethering
Bug: 299853805
Change-Id: I567142a8bf8c735b65048d985e94d958a7feef03

Kangping Dong   commited 2024-01-28 13:10:52 +08:00
25bcfee4e3
Merge changes from topic "set-thread-enabled" into main
* changes:
  Add service implementation for ThreadNetworkController#setEnabled
  Add setEnabled API

Yang Sun   authored and   Gerrit Code Review   commited 2024-01-26 11:22:37 +00:00
8f9544539b
Move the Thread proguard flags to ConnectivityService's proguard.flags
We needed this proguard flag because
ThreadNetworkService#onLocalNetworkInfoChanged will otherwise be
stripped. We need to keep the method to ensure the border routing
feature works.

Initially we put the flag in thread/service/proguard.flags. However,
this seems not working on udc-mainline-prod branch. After moving it to
Connectivity/service/proguard.flags, it works as desired.

Bug: 313539492

Change-Id: I33cb0602095a617dbb1cfe3d9002f9c68e93cccf

Handa Wang   commited 2024-01-26 09:14:53 +00:00
cca941a232
Add service implementation for ThreadNetworkController#setEnabled
ThreadNetworkControllerService handles setEnabled requests and
asks ot-daemon to enable/disable Thread. The desired Thread enabled state
is saved in thread persistent setttings, the setting is loaded at bootup.

Bug: 299243765

Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest

Change-Id: Ifd0135433df25d9c6cfd3f365dd06ec7908268e7

Yang Sun   commited 2024-01-26 15:53:43 +08:00
625353b5bf
Add setEnabled API
setEnabled API is added to ThreadNetworkController, this
can be used by applications with privileged permission to set
Thread to enable/disabled state.

The Thread enabled state can be subscribed with
ThreadNetworkController#registerStateCallback.

When Thread is disabled, the join/scheduleMigration APIs will
fail with ERROR_THREAD_DISABLED.

When Thread is disabling, all commands will fail with ERROR_BUSY.

Bug: 299243765

Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest

Change-Id: Ifa7845bf1d5664ecd31ce74e24b3a839f92bba13

Yang Sun   commited 2024-01-26 15:53:33 +08:00
0797d9d501
Check whether the WiFi country code is a valid Thread country code
The Thread country code should be a 2-Character alphabetical country
code. The `00` is an invalid country code for Thread country code,
but it is the default country code for WiFi country code. If setiting
the `00` as the Thread country code, the ThreadCountryCode throws
an exception.

This CL checks whether the country code is a valid Thread country
code before setting the WiFi country code as the Thread country code.

Bug: b/322404467
Test: atest ThreadNetworkUnitTests
Change-Id: Ic5fd69fc254ee25ad1e75e17096a5f5310a9140f

Zhanglong Xia   commited 2024-01-26 11:51:44 +08:00
a888e726b3
[Thread] add Thread tests to mts-tethering
Bug: 322142548
Change-Id: I71af1787b23be4c27d26b30498408631c2955012

Kangping Dong   commited 2024-01-25 18:05:10 +08:00
974d3ed761
Merge "Add OEM country code to Thread country code sources" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-25 09:39:13 +00:00
869394241e
Add OEM country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: Ic3c9ef69fc77c44a50f6dc856e1af26c43be1aa2

Zhanglong Xia   commited 2024-01-25 16:08:04 +08:00
5c0d8a6603
Merge "[Thread] remove thread_user_restriction_enabled" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-25 05:08:08 +00:00
670793d58e
Merge "Revert "[Thread] add Android.bp for Thread flags"" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-01-24 11:46:00 +00:00
61a823471f
Revert "[Thread] add Android.bp for Thread flags"
This reverts commit a59a6e304b.

Reason for revert: this should not be added in the mainline module but in platform

Merged-In: I88c993680976d2e10d672bfdbf45119f2db13868
Change-Id: I680f23b5f8099b1ea4a316b768a56f1be5c78862

Kangping Dong   commited 2024-01-24 11:20:22 +00:00
2d238dd7f9
Merge "[Thread] create socket dev/socket/ot-daemon/thread-wpan.sock" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-24 10:08:28 +00:00
3457225fa3
[Thread] remove thread_user_restriction_enabled
this flag is moved to frmeworks/base.

Bug: 319044650
Bug: 321624552
Change-Id: Ic068eb5e3cd2a7b4898a4f9a33b24ed8eed661f3

Kangping Dong   commited 2024-01-24 17:18:54 +08:00
ee864ef51a
Merge "[Thread] add error code ERROR_UNKNOWN for forward compatibility" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-24 02:20:42 +00:00
649571ddf7
[Thread] create socket dev/socket/ot-daemon/thread-wpan.sock
Creates the /dev/socket/ot-daemon/thread-wpan.sock socket from the
service init file. This is required for communication between ot-ctl
and ot-daemon service

Bug: 320451788
Test: verified that ot-daemon can create socket
/dev/socket/ot-daemon/thread-wpan.sock

Change-Id: Ib2111d67d2ce6726158f02a2cb2310c7ba9bf270

Kangping Dong   commited 2024-01-22 01:20:36 +08:00
9e69c46395
Make ThreadNetworkController.setTestNetworkAsUpstream require NETWORK_SETTINGS permission
This CL contains following enhancements:

- Enforce NETWORK_SETTINGS permission for ThreadNetworkController.setTestNetworkAsUpstream.
- Move the setTestNetworkAsUpstream in
  ThreadNetworkControllerService to make the order of methods more
logical.
- Update the test case name in BorderRoutingTest.

Bug: 295843010
Bug: 320842152

Change-Id: I82edac6c819dd637f4c98f31368a1b520338ce24

Handa Wang   commited 2024-01-19 08:15:58 +00:00
253b3fb6da
Ensure the Thread integration test only run on CuttleFish devices
This is because the test case relies on **simulation** Thread radio, which is currently only available on CuttleFish.

Bug: 295843010
Test: atest android.net.thread.BorderRoutingTest

Change-Id: Icd29d91c9ec9912e27191e97fe7f58e9067c1d8c

Handa Wang   commited 2024-01-18 12:00:14 +08:00
d5e2ac94d1
Graduate ThreadNetworkIntegrationTests from postsubmit
Bug: 295843010

Change-Id: I47fe9f00dff804d5e9c112336c5972b6a80760cf

Handa Wang   commited 2024-01-17 09:00:16 +00:00
7cc1c37c5f
[Thread] add error code ERROR_UNKNOWN for forward compatibility
This is per the go/android-api-guidelines#return-error:
```
Make sure your chosen error handling option gives you the
flexibility to introduce new error types in the future. For
@IntDef, that means including an OTHER or UNKNOWN value - when
returning a new code, you can check the caller's targetSdkVersion
to avoid returning an error code the application doesn't know
about. For exceptions, have a common superclass that your
exceptions implement, so that any code that handles that type will
also catch and handle subtypes.
```

Bug: 320403080
Change-Id: I2ee663b75107dac6d84fa697f449fa0424128fde

Kangping Dong   commited 2024-01-16 16:07:53 +08:00
2c83e2fcc9
[Thread] add CTS test for registerNetworkCallback for Thread
To make sure that apps can register for Thread network by specifying
only TRANSPORT_THREAD.

This prevents regression given aosp/2873154 was considered a short-term
solution.

Bug: 313000440
Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest#threadNetworkCallback_deviceAttached_threadNetworkIsAvailable
Change-Id: I7860c50b092439f39e5d8c437de1863b0633b7a0

Kangping Dong   commited 2024-01-16 09:56:48 +08:00
b68cad4414
Merge "[Thread] define flag thread_user_restriction_enabled" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-01-09 10:15:51 +00:00
e32111c8fc
Merge "[Thread] add Android.bp for Thread flags" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-09 06:10:23 +00:00
e19a753182
[Thread] define flag thread_user_restriction_enabled
Define this flag for guarding UserManager#DISALLOW_THREAD_NETWORK

Bug: 307679182
Change-Id: I69c578d76f3aac250bb733aac74754c127ae453b

Kangping Dong   commited 2024-01-09 13:58:58 +08:00
856b7156d7
[Thread] add Android.bp for Thread flags
This is not required for code in the mainline module since the flag
infra is not supported for mainline. But we will need to write code
in UserManager and it needs to be guarded by new Thread flags.

Note that Merged-In is added to skip merging this CL into the
udc-mainline-prod branch because trunk stable flagging is not supported
there

Bug: 307679182
Test: m
Merged-In: I88c993680976d2e10d672bfdbf45119f2db13868
Change-Id: Id53fa3e7c9592b04f37f4cbd7dcd0499859e59ed

Kangping Dong   commited 2024-01-09 13:58:41 +08:00
a59a6e304b
Request Thread network at the initialize()
Currently requestThreadNetwork is called in registerThreadNetwork. This creates a new NetworkCallback for Thread every time when Thread is turned on. We'd better just use one callback to avoid potential issues.

Bug: 319179354

Change-Id: I96bad351f089b32a9acd919dea2e2b6b2aea68d2

Handa Wang   commited 2024-01-09 05:35:01 +00:00
90d2d0d0d9
Merge "[Thread] start / initialize Thread service early" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-08 12:55:02 +00:00
79e3b59358
[Thread] start / initialize Thread service early
We need to do initialization work and start OT daemon when
system_server boots. But the initialize() is called at the phase
PHASE_BOOT_COMPLETED which is too late as Apps (e.g. Google Play
Services) can be started before this phase.

This commit changes to start the Thread service earlier at the phase
PHASE_SYSTEM_SERVICES_READY. Other services such as Wi-Fi, Bluetooth,
Ethernet and Nearby all starts / initializes at this phase.

This commit resolves comment aosp/2737373/comment/d65b9446_8a08117c

Bug: 318787467
Test: atest CtsThreadNetworkTestCases
Change-Id: I7b7b8551b9114cbf07f995b64316c7b420d868b6

Kangping Dong   commited 2024-01-08 13:48:18 +08:00
56354a961e
[Thread] remove Thread.sleep from CTS tests
Test: atest CtsThreadNetworkTestCases
Change-Id: Id7c52532988048e4473591092ac60eb66b1b7bcb

Kangping Dong   commited 2024-01-04 18:12:41 +08:00
e828340016
Merge "[Thread] Add support for Thread persistent setting" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-03 13:01:53 +00:00
396cc5721e
[Thread] Add support for Thread persistent setting
The ThreadPersistentSetting class can be used to read/store key value
pairs in ThreadPersistentSetting.xml file.

Bug: 299243765

Test: atest ThreadNetworkUnitTests:com.android.server.thread.ThreadPersistentSettingTest
Change-Id: I564ce8373e6af8f5cdf066a579bec46bfffecb72

Yang Sun   commited 2024-01-03 19:09:47 +08:00
95f40d0c55
Merge "[Thread] add service unit test skeleton" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-03 10:06:47 +00:00
3deb5da6db
Add telephony country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: I51c297a5c30fb114a6e3fb8b54cdbfef142001b3

Zhanglong Xia   commited 2024-01-03 15:33:07 +08:00
a00bb3fad9
[Thread] add service unit test skeleton
Adds the Thread service unit test skeleton and make the services
testable.

Initially, a few trivial unit tests for existing APIs are added in
ThreadNetworkControllerServiceTest.java, and more tests will be added in
separate CLs later.

Bug: 317555104
Change-Id: I7b9e5f3663493d8da2448568de792e4272ee1df6

Kangping Dong   commited 2024-01-03 15:01:07 +08:00
276384042d
Add WiFi country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: I087cc0fc2b6c21fd9d3d4607f30c194214aeb37e

Zhanglong Xia   commited 2024-01-03 10:25:14 +08:00
69c370af8c
Add Thread resource overlay support
This CL adds resource overlay support to allow developers to
change the default configuration of using the location country code.

Bug: b/311324956
Test: Set the resource overlay in cuttlefish, check the default
      configuration via the command `dumpsys thread_network`.

Change-Id: Ide853975e8244f06a382b2eda4844e030539b95d

Zhanglong Xia   commited 2024-01-03 00:29:55 +08:00
125a43c12b
Set Thread Network country code from location country code
This CL selects the Thread country code from location country code.
If the location country code is not avaliable, the country code `WW`
will be selected as the default Thread country code.

This CL also adds Shell commands for developers to override the Thread
country code for testing.

Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.

Change-Id: Id87c293005f0e75922a72854b40c41837b74397f

Zhanglong Xia   commited 2024-01-03 00:27:50 +08:00
d385e7eec5
[Thread] use Context#enforceCallingOrSelfPermission
Context#enforceCallingPermission always throws SecurityException if we
are not processing a Binder IPC. This specifically doesn't work with
unit tests where the service APIs are called with mocked Binder
interfaces.

Bug: 317555104
Change-Id: I50be68487fb53907dbb1e3da7815fdf305047481

Kangping Dong   commited 2023-12-28 11:10:51 +08:00
5223a13c68
[Thread] make InfraInterfaceController mockable
It's generally discouraged to mock a static method, so this commit
changes InfraInterfaceController#createIcmp6Socket to non-static method
and inject InfraInterfaceController into ThreadNetworkControllerService
as an external dependency.

Bug: 317555104
Change-Id: I6f88c02858279223684c781dc065a9bf84ae15ab

Kangping Dong   commited 2023-12-27 22:21:04 +08:00
d5cee26211