This test case lets the BR send a UDP message to Thread device using
socket API and verify the message is received on the Thread device via
ot-ctl udp command.
For now this only verifies the direction BR -> ED because the other
direction ED -> BR is depending on platform UDP feature which is not
enabled yet.
Bug: 321168973
Test: atest ThreadNetworkIntegrationTests:BorderRoutingTest#unicastRouting_borderRouterSendsUdpToThreadDevice_datagramReceived
Change-Id: I590583dd818f3d72dec41184e5427a8b08f842bb
Per CTS review comment in aosp/2949385:
```
You might want to make this a bit larger, otherwise if some new error codes are added in the future in a mainline update, already released CTS test packages will start to fail.
That should be fixed by mCTS, but since mCTS is not in place yet, it's best to be safe
```
This commit moves the too-large error code check into unit test to avoid
potential CTS compatibility issues.
Bug: 323791003
Change-Id: If99191630e1044cb8f5ed189bf79567cd51c3905
For ot-daemon to perform mDNS operations, we need to implement an AIDL
service NsdPublisher. MdnsPublisher forwards the calls to NsdManager.
For now, only register & unregster a service without a custom host is supported.
Bug: 320211657
Bug: 318323473
Test: atest CtsThreadNetworkTestCases
Change-Id: Ia392a0f57046f53973ac6bd6043dec915d170666
This commit handles the ot-daemon crash by automatically restarting it
and rejoin the network if ever joined.
This also fixes the address not deleted issue in TunInterfaceContorller.
Bug: 321540728
Bug: 309792480
Change-Id: I3ed466eb70818974a1e57f01456363bdf82915d5
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
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
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
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
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
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
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
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
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
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
Refine unicast & multicast routing log to be more descriptive and
provide more debugging info.
Bug: 321184406
Change-Id: I4d786cc2f84b4d90ba2367876b5bbf678c587559
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
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
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
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
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
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
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