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
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
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
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
The duplicate entries make `CtsThreadNetworkTestCases` not included in presubmit. The `CtsThreadNetworkTestCases` was added in aosp/2804113 but was accidentally removed in aosp/2888526.
Bug: 317769267
Bug: 297729075
Test: presubmit
Change-Id: I184d21deddc0f0c247321a8d1afe5a8f8674f974
This implements a basic border routing test case (ping) and demonstrates a
valid test environment for Thread Border Router test cases.
Later we can add more packet verifications and more test cases.
Bug: 295843010
Test: atest android.net.ThreadBorderRouterTest
Change-Id: Ifb9b6d45539143a227c2bc0ed69b5c3167ef9acd
`setTestNetworkAsUpstream` allows to specify a test network as the upstream of Thread network. This is going to be used in Thread integration tests. E.g. android.net.thread.BorderRoutingTest.
Bug: 295843010
Test: atest android.net.thread.BorderRoutingTest
Change-Id: I66474e2aa5b3434c4c66078a1d6bd6e522e32ae5
framework-connectivity-flagged-apis-droidstubs is used by
jarjar-rules-generator to avoid jarjaring flagged apis.
But, this usage of --show-annotation FlaggedApi in the flag is not
supported.
So this CL removes --show-annotation FlaggedApi.
As far as framework-connectivity-flagged-apis-droidstubs contains
flagged APIs, it's fine that this droidstubs also contains non-flagged
APIs.
Test: TH
Bug: 312408311
Change-Id: I2f1f5624d98873420c0c36ac6e31386102211045
Per API council feedback and API guideline at
go/android-api-guidelines#provide-executor, it should call
Binder.clearCallingIdentity() before invoking the app-supplied callbacks
so that the app doesn't use the system-server's identity for permission
check in the callback.
Bug: 309952666
Test: atest ThreadNetworkUnitTests
Change-Id: I3cfbce29c0a516506bb76a44b151a583c8477806
This CL lets ThreadNetworkControllerService calls the LocalNetworkConfig
API to set up border routing between Thread and infrastructure network.
Bug: 299552948
Bug: 305861411
Test: Verified on Cuttlefish that forwarding is set up.
Change-Id: I8b2f015d9d6248bfb1cd9ac806dc8664970a26d2
Per API council review suggestions in b/309952666, add the same
permission requirements for the unregister APIs.
Bug: 309952666
Test: atest CtsThreadNetworkTestCases
Change-Id: Idc481c7676ddc5d748fe7803f74dd63981186c09
InfraInterfaceController is used for creating an socket for
sending/receiving ICMPv6 ND messages on the infrastructure network
interface.
Bug: 299552948
Test: verified on a Cuttlefish
Change-Id: I02eafadafbf7a04e12fe74954b4812462c532e45
Handa Wangauthored and Chalard Jeancommited 2023-11-10 21:11:01 +09:00
Make it clear that Duration#ZERO is used for automatically selecting a
reasonable value by the system.
Bug: 307939803
Test: atest CtsThreadNetworkTestCases
Change-Id: I880dca187902464fbe45ed6f2a64e9f88a5493ab
Per API council review feedback in b/307939803
Bug: 307939803
Test: atest CtsThreadNetworkTestCases
Change-Id: Ia5fbb38e24d09c4a8d95ce0dfd6058a65d5d4614
This commit renames `createRandomDataset` to `createRandomizedDataset`
and moves this method to ThreadNetworkController class.
The reason for moving this method is that we rely on the service side to
know which channels are currently supported by this device and there is
no safe way for ActiveOperationalDataset to created a randomized full
dataset by its own. Moving this method to ThreadNetworkController also
allows us to support future platform-dependend configurations.
Bug: 308117328
Bug: 307939803
Change-Id: I0b0b7b727c3b326ab59bb1299ace15df1ff1ad5e
The ThreadNetworkController class provides APIs for managing the Thread
network, for example, attach to a specific network, form a network with
given dataset or update/migrate an existing network.
Bug: 262683651
Test: atest CtsThreadNetworkTestCases
Change-Id: Ib3c267d2c81a8c3c7772ed3c9cd2092487cc941a
Add a JNI wrapper of the NDK version of the ServiceManager which allows
us to retrieve the ot-daemon lazy service.
Bug: 262683651
Test: atest CtsThreadNetworkTestCases
Change-Id: I1d331d1ba06c2b88f156622d4ae864dae7b15dc3
OperationalDatasetTimestamp is saving the timestamp as an Instant
object, and this has the problem that when the dataset timestamp is
written to a TLV, it's going to loss precision as the nanoseconds
of the Instant is converted to "Ticks". This results in bug that
the dataset timestamp doesn't equal to the same value when it's
converted back from a TLV:
```
var timestamp1 = OperationalDatasetTimestamp.fromInstant(Instant.ofEpochSecond(100, 999938900));
byte[] tlv = timestamp1.toTlvValue();
timestamp2 = OperationalDatasetTimestamp.fromTlvValue(tlv);
assertThat(timestamp2).isEqualTo(timestamp1); // This fails!!!
```
Bug: 308408536
Test: atest ThreadNetworkUnitTests CtsThreadNetworkTestCases
Change-Id: I81b482a05337b6d1150edaa28b860034592a4347
This make-pretty.sh can be called from any where and it formats only
java code under packages/modules/Connectivity/thread/
Test: ./thread/scripts/make-pretty.sh
Change-Id: I1b24025cf0267c81a7b133d1e8a08f77cc7ddc0e
FlaggedAPI will be ignored in udc-mainline-prod.
This makes CtsThreadNetworkTestCases build fail.
This CL updates CtsThreadNetworkTestCases to build against FlaggedAPI
and also updates framework-connectivity-jarjar-rules not to jarjar
FlaggedAPI.
Test: TH
Test: m CtsThreadNetworkTestCases
Change-Id: Ida8872b3bf61b7a59733f5fcec9e7d250efd3e58
Per the API review council, the classes should be "final" by default
Bug: 301076593
Test: build && atest CtsThreadNetworkTestCases
Change-Id: I85f0b4fabe5b1bcec2be052620b38a07c58181d7
This commit declares the initial "thread_enabled" feature flag and use
this to flag all existing and future Thread system APIs with @FlaggedApi
Bug: 301473012
Test: build
Change-Id: I43f64ce38f7fd0806733b21c4f393e4563e6a467
This commit sets up the initial Thread network service for the
Android Thread feature which allows an Android device to create
a Thread network and being a Border Router.
See https://www.threadgroup.org/What-is-Thread for background of
Thread.
See b/235016403 for the Android Thread feature request.
Test: lunch aosp_cf_x86_64_tv-userdebug
m && launch_cvd
atest CtsThreadNetworkTestCases
Bug: 262683651
Change-Id: Ie1bb23084531f67165ec068ea3ca39592dbc01d1
ot-daemon is a dependency of the new Thread feature. This commit
add the ot-daemon binary and init rc file to the Tethering module.
Note that the ot-daemon service is default disabled and versioned
init rc file is used to ensure that this service won't be started
before Android U.
This is expected to increase the size of "com.android.tethering.capex"
by around 400 KB.
Manual verification:
1. on Android T (33) CF device, the ot-daemon service is not started
after device boots; It reports service not found error when trying
to start the ot-daemon service with adb shell command "start
ot-daemon"
2. on Android U (34) CF device, the ot-daemon service is not started
after device boots; It can be started with shell comamnd "start
ot-daemon" but then failed because of missing sepolicy rules as
expected
Test: see above manual verification note
Bug: 296211911
Change-Id: I222e2bbcc2ad0be2beec9f5f3406e7144d314370