diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-01-10 18:50:46 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-01-10 18:50:46 +0000 |
commit | 376babf19bd307dc830b730f31afdb406d7c4935 (patch) | |
tree | 42ebf87553686c032300ee03340d0d7df979d9cd | |
parent | 07c8d4b394d33ee8079fc028bdd8f75c841f318a (diff) | |
parent | a2bac821fd1ff4aa6c470bde16cf4c9485458a5c (diff) | |
download | openthread-aml_tz5_341510010.tar.gz |
Snap for 11296156 from a2bac821fd1ff4aa6c470bde16cf4c9485458a5c to mainline-tzdata5-releaseaml_tz5_341510070aml_tz5_341510050aml_tz5_341510010aml_tz5_341510010
Change-Id: I4bd108d2ccb01431dcc6c8477434ac2ed7d1df2c
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | src/android/openthread-core-android-config.h | 4 | ||||
-rw-r--r-- | src/android/thread_network_hal/hal_interface.cpp | 16 | ||||
-rw-r--r-- | src/android/thread_network_hal/hal_interface.hpp | 28 | ||||
-rw-r--r-- | src/android/thread_network_hal/vendor_interface.cpp | 5 | ||||
-rw-r--r-- | src/posix/platform/radio.cpp | 2 | ||||
-rw-r--r-- | src/posix/platform/radio_url.cpp | 2 | ||||
-rw-r--r-- | src/posix/platform/radio_url.hpp | 15 |
8 files changed, 60 insertions, 16 deletions
diff --git a/Android.bp b/Android.bp index 331540030..30edee7b2 100644 --- a/Android.bp +++ b/Android.bp @@ -654,12 +654,15 @@ cc_defaults { cflags: [ "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1", + "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1", + "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1", "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"", "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1", "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1", "-DOPENTHREAD_CONFIG_MLR_ENABLE=1", "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1", "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1", + "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1", "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0", "-DOPENTHREAD_EXAMPLES_SIMULATION=1", "-DOPENTHREAD_CONFIG_TCP_ENABLE=0", @@ -671,6 +674,7 @@ cc_defaults { "-DPACKAGE_TARNAME=\"openthread\"", "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", + "-Wno-implicit-fallthrough", ], } diff --git a/src/android/openthread-core-android-config.h b/src/android/openthread-core-android-config.h index 28d669d6d..b6929bf20 100644 --- a/src/android/openthread-core-android-config.h +++ b/src/android/openthread-core-android-config.h @@ -43,7 +43,7 @@ * The run time data path. * */ -#define OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH "/data/misc/threadnetwork" +#define OPENTHREAD_CONFIG_POSIX_SETTINGS_PATH "/data/misc/apexdata/com.android.tethering/threadnetwork" /** * @def OPENTHREAD_POSIX_CONFIG_DAEMON_SOCKET_BASENAME @@ -51,7 +51,7 @@ * Define socket basename used by POSIX app daemon. * */ -#define OPENTHREAD_POSIX_CONFIG_DAEMON_SOCKET_BASENAME "/data/misc/threadnetwork/openthread-%s" +#define OPENTHREAD_POSIX_CONFIG_DAEMON_SOCKET_BASENAME "/data/misc/apexdata/com.android.tethering/threadnetwork/openthread-%s" /** * @def OPENTHREAD_POSIX_CONFIG_RCP_PTY_ENABLE diff --git a/src/android/thread_network_hal/hal_interface.cpp b/src/android/thread_network_hal/hal_interface.cpp index a4bb7928e..f1de827f0 100644 --- a/src/android/thread_network_hal/hal_interface.cpp +++ b/src/android/thread_network_hal/hal_interface.cpp @@ -62,6 +62,8 @@ HalInterface::HalInterface(const Url::Url &aRadioUrl) , mHalInterfaceId(0) { IgnoreError(aRadioUrl.ParseUint8("id", mHalInterfaceId)); + memset(&mInterfaceMetrics, 0, sizeof(mInterfaceMetrics)); + mInterfaceMetrics.mRcpInterfaceType = kSpinelInterfaceTypeVendor; } otError HalInterface::Init(SpinelInterface::ReceiveFrameCallback aCallback, @@ -227,6 +229,12 @@ otError HalInterface::SendFrame(const uint8_t *aFrame, uint16_t aLength) otLogWarnPlat("[HAL] Send frame to HAL interface failed: %s", otThreadErrorToString(error)); exit: + if (error == OT_ERROR_NONE) + { + mInterfaceMetrics.mTxFrameCount++; + mInterfaceMetrics.mTxFrameByteCount += aLength; + } + return error; } @@ -243,7 +251,7 @@ void HalInterface::ReceiveFrameCallback(const std::vector<uint8_t> &aFrame) { otLogNotePlat("[HAL] Drop the received spinel frame: %s", otThreadErrorToString(error)); mRxFrameBuffer->DiscardFrame(); - ExitNow(); + ExitNow(error = OT_ERROR_NO_BUFS); } } @@ -253,6 +261,12 @@ void HalInterface::ReceiveFrameCallback(const std::vector<uint8_t> &aFrame) } exit: + if (error == OT_ERROR_NONE) + { + mInterfaceMetrics.mRxFrameCount++; + mInterfaceMetrics.mRxFrameByteCount += aFrame.size(); + } + return; } diff --git a/src/android/thread_network_hal/hal_interface.hpp b/src/android/thread_network_hal/hal_interface.hpp index 07331e45d..ef72d0545 100644 --- a/src/android/thread_network_hal/hal_interface.hpp +++ b/src/android/thread_network_hal/hal_interface.hpp @@ -54,7 +54,7 @@ namespace Posix { * This class defines an IPC Binder interface to the Radio Co-processor (RCP). * */ -class HalInterface +class HalInterface : public ot::Spinel::SpinelInterface { public: /** @@ -87,13 +87,13 @@ public: */ otError Init(Spinel::SpinelInterface::ReceiveFrameCallback aCallback, void *aCallbackContext, - Spinel::SpinelInterface::RxFrameBuffer &aFrameBuffer); + Spinel::SpinelInterface::RxFrameBuffer &aFrameBuffer) override; /** * This method deinitializes the interface to the RCP. * */ - void Deinit(void); + void Deinit(void) override; /** * This method encodes and sends a spinel frame to Radio Co-processor (RCP) over the socket. @@ -107,7 +107,7 @@ public: * @retval OT_ERROR_FAILED Failed to call the HAL to send the frame. * */ - otError SendFrame(const uint8_t *aFrame, uint16_t aLength); + otError SendFrame(const uint8_t *aFrame, uint16_t aLength) override; /** * This method waits for receiving part or all of spinel frame within specified interval. @@ -118,7 +118,7 @@ public: * @retval OT_ERROR_RESPONSE_TIMEOUT No spinel frame is received within @p aTimeout. * */ - otError WaitForFrame(uint64_t aTimeoutUs); + otError WaitForFrame(uint64_t aTimeoutUs) override; /** * This method updates the file descriptor sets with file descriptors used by the radio driver. @@ -126,7 +126,7 @@ public: * @param[in] aMainloopContext The context containing fd_sets. * */ - void UpdateFdSet(void *aMainloopContext); + void UpdateFdSet(void *aMainloopContext) override; /** * This method performs radio driver processing. @@ -134,7 +134,7 @@ public: * @param[in] aMainloopContext The context containing fd_sets. * */ - void Process(const void *aMainloopContext); + void Process(const void *aMainloopContext) override; /** * This method returns the bus speed between the host and the radio. @@ -142,7 +142,7 @@ public: * @returns Bus speed in bits/second. * */ - uint32_t GetBusSpeed(void) const; + uint32_t GetBusSpeed(void) const override; /** * This method hardware resets the RCP. It will be called after a software reset fails. @@ -151,7 +151,15 @@ public: * @retval OT_ERROR_NOT_IMPLEMENT The hardware reset is not implemented. * */ - otError HardwareReset(void); + otError HardwareReset(void) override; + + /** + * Returns the RCP interface metrics. + * + * @returns The RCP interface metrics. + * + */ + const otRcpInterfaceMetrics *GetRcpInterfaceMetrics(void) const override { return &mInterfaceMetrics; } private: void ReceiveFrameCallback(const std::vector<uint8_t> &aFrame); @@ -185,6 +193,8 @@ private: void *mRxFrameContext; Spinel::SpinelInterface::RxFrameBuffer *mRxFrameBuffer; + otRcpInterfaceMetrics mInterfaceMetrics; + std::shared_ptr<::aidl::android::hardware::threadnetwork::IThreadChip> mThreadChip; std::shared_ptr<::aidl::android::hardware::threadnetwork::IThreadChipCallback> mThreadChipCallback; diff --git a/src/android/thread_network_hal/vendor_interface.cpp b/src/android/thread_network_hal/vendor_interface.cpp index fca1ae642..6fbc8cf4c 100644 --- a/src/android/thread_network_hal/vendor_interface.cpp +++ b/src/android/thread_network_hal/vendor_interface.cpp @@ -86,7 +86,10 @@ otError VendorInterface::SendFrame(const uint8_t *aFrame, uint16_t aLength) otError VendorInterface::HardwareReset(void) { return sHalInterface->HardwareReset(); } -const otRcpInterfaceMetrics *VendorInterface::GetRcpInterfaceMetrics(void) const { return nullptr; } +const otRcpInterfaceMetrics *VendorInterface::GetRcpInterfaceMetrics(void) const +{ + return sHalInterface->GetRcpInterfaceMetrics(); +} } // namespace Posix } // namespace ot diff --git a/src/posix/platform/radio.cpp b/src/posix/platform/radio.cpp index 491c6db1f..7cf273729 100644 --- a/src/posix/platform/radio.cpp +++ b/src/posix/platform/radio.cpp @@ -71,7 +71,7 @@ void Radio::Init(const char *aUrl) spinel_iid_t iidList[Spinel::kSpinelHeaderMaxNumIid]; struct ot::Spinel::RadioSpinelCallbacks callbacks; - mRadioUrl = aUrl; + mRadioUrl.Init(aUrl); VerifyOrDie(mRadioUrl.GetPath() != nullptr, OT_EXIT_INVALID_ARGUMENTS); memset(&callbacks, 0, sizeof(callbacks)); diff --git a/src/posix/platform/radio_url.cpp b/src/posix/platform/radio_url.cpp index bd34d9c65..db0c13461 100644 --- a/src/posix/platform/radio_url.cpp +++ b/src/posix/platform/radio_url.cpp @@ -135,7 +135,7 @@ const char *otSysGetRadioUrlHelpString(void) namespace ot { namespace Posix { -RadioUrl::RadioUrl(const char *aUrl) +void RadioUrl::Init(const char *aUrl) { if (aUrl != nullptr) { diff --git a/src/posix/platform/radio_url.hpp b/src/posix/platform/radio_url.hpp index 32b2c4c16..02460705b 100644 --- a/src/posix/platform/radio_url.hpp +++ b/src/posix/platform/radio_url.hpp @@ -52,7 +52,20 @@ public: * @param[in] aUrl The null-terminated URL string. * */ - RadioUrl(const char *aUrl); + explicit RadioUrl(const char *aUrl) { Init(aUrl); }; + + /** + * Initializes the radio URL. + * + * @param[in] aUrl The null-terminated URL string. + * + */ + void Init(const char *aUrl); + + RadioUrl(const RadioUrl &) = delete; + RadioUrl(RadioUrl &&) = delete; + RadioUrl &operator=(const RadioUrl &) = delete; + RadioUrl &operator=(RadioUrl &&) = delete; private: enum |