diff --git a/components/openthread/CMakeLists.txt b/components/openthread/CMakeLists.txt index dd9a60000a..34ef874c73 100644 --- a/components/openthread/CMakeLists.txt +++ b/components/openthread/CMakeLists.txt @@ -102,6 +102,7 @@ if(CONFIG_OPENTHREAD_ENABLED) "openthread/src/core/thread/announce_begin_server.cpp" "openthread/src/core/thread/announce_sender.cpp" "openthread/src/core/thread/address_resolver.cpp" + "openthread/src/core/thread/child.cpp" "openthread/src/core/thread/child_supervision.cpp" "openthread/src/core/thread/csl_tx_scheduler.cpp" "openthread/src/core/thread/discover_scanner.cpp" @@ -115,6 +116,8 @@ if(CONFIG_OPENTHREAD_ENABLED) "openthread/src/core/thread/mesh_forwarder_mtd.cpp" "openthread/src/core/thread/message_framer.cpp" "openthread/src/core/thread/mle.cpp" + "openthread/src/core/thread/mle_ftd.cpp" + "openthread/src/core/thread/mle_p2p.cpp" "openthread/src/core/thread/mle_router.cpp" "openthread/src/core/thread/mle_types.cpp" "openthread/src/core/thread/neighbor.cpp" @@ -125,7 +128,9 @@ if(CONFIG_OPENTHREAD_ENABLED) "openthread/src/core/thread/network_data_types.cpp" "openthread/src/core/thread/network_data_service.cpp" "openthread/src/core/thread/network_diagnostic.cpp" + "openthread/src/core/thread/network_diagnostic_tlvs.cpp" "openthread/src/core/thread/panid_query_server.cpp" + "openthread/src/core/thread/router.cpp" "openthread/src/core/thread/thread_netif.cpp" "openthread/src/core/thread/time_sync_service.cpp" "openthread/src/core/thread/tmf.cpp" diff --git a/components/openthread/lib b/components/openthread/lib index e9980c5655..2e2d91a382 160000 --- a/components/openthread/lib +++ b/components/openthread/lib @@ -1 +1 @@ -Subproject commit e9980c56558876ae1102be8ae9dc70821aded72c +Subproject commit 2e2d91a382ad6387ce77551c6adbb1514db12472 diff --git a/components/openthread/openthread b/components/openthread/openthread index 36b14d3ef7..a12ff0d0f5 160000 --- a/components/openthread/openthread +++ b/components/openthread/openthread @@ -1 +1 @@ -Subproject commit 36b14d3ef74f5e37e5be8902e1c1955a642fdfbf +Subproject commit a12ff0d0f54fd41954b45047fcdd08f302731c5f diff --git a/components/openthread/sbom_openthread.yml b/components/openthread/sbom_openthread.yml index 74398658c6..8e476b6bfd 100644 --- a/components/openthread/sbom_openthread.yml +++ b/components/openthread/sbom_openthread.yml @@ -5,4 +5,4 @@ supplier: 'Organization: Espressif Systems (Shanghai) CO LTD' originator: 'Organization: Google LLC' description: OpenThread released by Google is an open-source implementation of the Thread networking url: https://github.com/espressif/openthread -hash: 36b14d3ef74f5e37e5be8902e1c1955a642fdfbf +hash: a12ff0d0f54fd41954b45047fcdd08f302731c5f diff --git a/components/openthread/src/port/esp_openthread_messagepool.c b/components/openthread/src/port/esp_openthread_messagepool.c index 0e0794dc8a..17761b5061 100644 --- a/components/openthread/src/port/esp_openthread_messagepool.c +++ b/components/openthread/src/port/esp_openthread_messagepool.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -14,6 +14,7 @@ int s_buffer_pool_head = -1; otMessageBuffer **s_buffer_pool_pointer = NULL; +otMessageBuffer *s_buffer_pool = NULL; void otPlatMessagePoolInit(otInstance *aInstance, uint16_t aMinNumFreeBuffers, size_t aBufferSize) { @@ -27,6 +28,7 @@ void otPlatMessagePoolInit(otInstance *aInstance, uint16_t aMinNumFreeBuffers, s s_buffer_pool_pointer[i] = buffer_pool + i * aBufferSize / sizeof(otMessageBuffer); } s_buffer_pool_head = aMinNumFreeBuffers - 1; + s_buffer_pool = buffer_pool; ESP_LOGI(OT_PLAT_LOG_TAG, "Create message buffer pool successfully, size %d", aMinNumFreeBuffers*aBufferSize); } @@ -50,3 +52,16 @@ uint16_t otPlatMessagePoolNumFreeBuffers(otInstance *aInstance) { return s_buffer_pool_head + 1; } + +void otPlatMessagePoolDeinit(otInstance *aInstance) +{ + if (s_buffer_pool_pointer != NULL) { + heap_caps_free(s_buffer_pool_pointer); + s_buffer_pool_pointer = NULL; + } + if (s_buffer_pool != NULL) { + heap_caps_free(s_buffer_pool); + s_buffer_pool = NULL; + } + s_buffer_pool_head = -1; +}