/******************************************************************************* * @file * @brief OpenThread stack configuration file. ******************************************************************************* * # License * Copyright 2024 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * SPDX-License-Identifier: Zlib * * The licensor of this software is Silicon Laboratories Inc. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * ******************************************************************************/ #ifndef _SL_OPENTHREAD_FEATURES_CONFIG_H #define _SL_OPENTHREAD_FEATURES_CONFIG_H //-------- <<< Use Configuration Wizard in Context Menu >>> ----------------- // // Default OpenThread Stack Configuration // Thread Stack Protocol Version // // Thread 1.1 // Thread 1.2 // Thread 1.3 // Thread 1.4 // Current Default: OT_THREAD_VERSION_1_4 #ifndef OPENTHREAD_CONFIG_THREAD_VERSION #define OPENTHREAD_CONFIG_THREAD_VERSION OT_THREAD_VERSION_1_4 #endif // #if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2) // The following features require at least Thread Stack Protocol Version 1.2 // Backbone Router #ifndef OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE #define OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE 0 #endif // CSL Auto Synchronization using data polling #ifndef OPENTHREAD_CONFIG_MAC_CSL_AUTO_SYNC_ENABLE #define OPENTHREAD_CONFIG_MAC_CSL_AUTO_SYNC_ENABLE 1 #endif // CSL (Coordinated Sampled Listening) Debug #ifndef OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE #define OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE 0 #endif // CSL (Coordinated Sampled Listening) Receiver #ifndef OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE #define OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 1 #endif // CSL Scheduling Uncertainty (±10 us units) <12..999:1> #ifndef SL_OPENTHREAD_CSL_TX_UNCERTAINTY #if OPENTHREAD_RADIO #define SL_OPENTHREAD_CSL_TX_UNCERTAINTY 175 #elif OPENTHREAD_FTD #define SL_OPENTHREAD_CSL_TX_UNCERTAINTY 20 #else #define SL_OPENTHREAD_CSL_TX_UNCERTAINTY 12 #endif #endif // DUA (Domain Unicast Address) #ifndef OPENTHREAD_CONFIG_DUA_ENABLE #define OPENTHREAD_CONFIG_DUA_ENABLE 1 #endif // Link Metrics Initiator #ifndef OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE #define OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE 1 #endif // Link Metrics Subject #ifndef OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE #define OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE 1 #endif // Multicast Listener Registration #ifndef OPENTHREAD_CONFIG_MLR_ENABLE #define OPENTHREAD_CONFIG_MLR_ENABLE 1 #endif // #endif // OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2 #if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_3) // The following features require at least Thread Stack Protocol Version 1.3 // DNS Client #ifndef OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE #define OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE 1 #endif // DNS-SD Server #ifndef OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE #define OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE 0 #endif // Service Registration Protocol (SRP) Client #ifndef OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE #define OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE 1 #endif // Service Registration Protocol (SRP) Server #ifndef OPENTHREAD_CONFIG_SRP_SERVER_ENABLE #define OPENTHREAD_CONFIG_SRP_SERVER_ENABLE 0 #endif // TCP API #ifndef OPENTHREAD_CONFIG_TCP_ENABLE #define OPENTHREAD_CONFIG_TCP_ENABLE 0 #endif // DNS Client over TCP #ifndef OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE #define OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE 0 #endif // Thread over Infrastructure (NCP only) #ifndef OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE #define OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE 0 #endif // #endif // OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_3 // Border Agent #ifndef OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE #define OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE 0 #endif // // Border Router #ifndef OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE #define OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 0 #endif // // Channel Manager #ifndef OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE #define OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE 0 #endif // // Channel Monitor #ifndef OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE #define OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE 0 #endif // // Commissioner #ifndef OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #define OPENTHREAD_CONFIG_COMMISSIONER_ENABLE 0 #endif // Max Joiner Entries // The maximum number of Joiner entries maintained by the Commissioner. // 2 #ifndef OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES #define OPENTHREAD_CONFIG_COMMISSIONER_MAX_JOINER_ENTRIES 2 #endif // // COAP API #ifndef OPENTHREAD_CONFIG_COAP_API_ENABLE #define OPENTHREAD_CONFIG_COAP_API_ENABLE 0 #endif // // COAP Observe (RFC7641) API #ifndef OPENTHREAD_CONFIG_COAP_OBSERVE_API_ENABLE #define OPENTHREAD_CONFIG_COAP_OBSERVE_API_ENABLE 0 #endif // // COAP Secure API #ifndef OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE #define OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 0 #endif // // DHCP6 Client #ifndef OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE #define OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE 0 #endif // // DHCP6 Server #ifndef OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE #define OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE 0 #endif // // ECDSA (Elliptic Curve Digital Signature Algorithm) (Required for Matter support) #ifndef OPENTHREAD_CONFIG_ECDSA_ENABLE #define OPENTHREAD_CONFIG_ECDSA_ENABLE 1 #endif // // External Heap #ifndef OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE #define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 1 #endif // // IPv6 Fragmentation #ifndef OPENTHREAD_CONFIG_IP6_FRAGMENTATION_ENABLE #define OPENTHREAD_CONFIG_IP6_FRAGMENTATION_ENABLE 0 #endif // // Maximum number of IPv6 unicast addresses allowed to be externally added #ifndef OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS #define OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS 4 #endif // // Maximum number of IPv6 multicast addresses allowed to be externally added #ifndef OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS #define OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS 4 #endif // // Jam Detection #ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE #define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 0 #endif // // Joiner #ifndef OPENTHREAD_CONFIG_JOINER_ENABLE #define OPENTHREAD_CONFIG_JOINER_ENABLE 0 #endif // // Link Raw Service #ifndef OPENTHREAD_CONFIG_LINK_RAW_ENABLE #define OPENTHREAD_CONFIG_LINK_RAW_ENABLE 0 #endif // // MAC Filter #ifndef OPENTHREAD_CONFIG_MAC_FILTER_ENABLE #define OPENTHREAD_CONFIG_MAC_FILTER_ENABLE 0 #endif // // MLE Long Routes extension (experimental) #ifndef OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE #define OPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE 0 #endif // // MultiPAN RCP #ifndef OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE #define OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE 0 #endif // // Multiple OpenThread Instances #ifndef OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE #define OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE 0 #endif // // Multiple Static Instance Support #ifndef OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE #define OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE 0 #endif // // Number of OpenThread Instances For Static Buffer Allocation #ifndef OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_NUM #define OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_NUM 2 #endif // // Define broadcast IID for spinel frames dedicated to all hosts in multipan configuration #ifndef OPENTHREAD_SPINEL_CONFIG_BROADCAST_IID #define OPENTHREAD_SPINEL_CONFIG_BROADCAST_IID 0 #endif // // OTNS (OpenThread Network Simulator) #ifndef OPENTHREAD_CONFIG_OTNS_ENABLE #define OPENTHREAD_CONFIG_OTNS_ENABLE 0 #endif // // Ping Sender Module #ifndef OPENTHREAD_CONFIG_PING_SENDER_ENABLE #define OPENTHREAD_CONFIG_PING_SENDER_ENABLE 1 #endif // // Power Calibration Module (RCP only configuration) #ifndef OPENTHREAD_CONFIG_POWER_CALIBRATION_ENABLE #define OPENTHREAD_CONFIG_POWER_CALIBRATION_ENABLE 0 #endif // // Platform UDP #ifndef OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE #define OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE 0 #endif // // Reference Device for Thread Test Harness #ifndef OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE #define OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 0 #endif // // Service Entries in Thread Network Data #ifndef OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE #define OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 0 #endif // // RAM (volatile-only storage) #ifndef OPENTHREAD_SETTINGS_RAM #define OPENTHREAD_SETTINGS_RAM 0 #endif // // SLAAC Addresses #ifndef OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE #define OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE 1 #endif // // SNTP Client #ifndef OPENTHREAD_CONFIG_SNTP_CLIENT_ENABLE #define OPENTHREAD_CONFIG_SNTP_CLIENT_ENABLE 0 #endif // // TMF Network Diagnostic client API #ifndef OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE #define OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE 1 #endif // // Time Synchronization Service #define OPENTHREAD_CONFIG_TIME_SYNC_ENABLE 0 // // UDP Forward #ifndef OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE #define OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE 0 #endif // // Enable Mac beacon payload parsing support #ifndef OPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE #define OPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE 1 #endif // // Max raw power calibration length. #ifndef SL_OPENTHREAD_RAW_POWER_CALIBRATION_LENGTH #define SL_OPENTHREAD_RAW_POWER_CALIBRATION_LENGTH 4 #endif // // Max FEM config setting length. #ifndef SL_OPENTHREAD_FEM_SETTING_LENGTH #define SL_OPENTHREAD_FEM_SETTING_LENGTH 4 #endif // // The maximum number of RX buffers to use in the radio driver. // 16 #ifndef SL_OPENTHREAD_RADIO_RX_BUFFER_COUNT #define SL_OPENTHREAD_RADIO_RX_BUFFER_COUNT 16 #endif // // Logging // LOG_OUTPUT // NONE // APP // PLATFORM_DEFINED // Default: OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED #ifndef OPENTHREAD_CONFIG_LOG_OUTPUT #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP #endif // DYNAMIC_LOG_LEVEL #ifndef OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE #define OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE 0 #endif // Enable Logging #define OPENTHREAD_FULL_LOGS_ENABLE 0 #if OPENTHREAD_FULL_LOGS_ENABLE // Note: Enabling higher log levels, which include logging packet details, can cause delays which may result in join failures. // LOG_LEVEL // NONE // CRIT // WARN // NOTE // INFO // DEBG // Default: OT_LOG_LEVEL_DEBG #ifndef OPENTHREAD_CONFIG_LOG_LEVEL #define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_DEBG #endif // CLI #ifndef OPENTHREAD_CONFIG_LOG_CLI #define OPENTHREAD_CONFIG_LOG_CLI 1 #endif // PKT_DUMP #ifndef OPENTHREAD_CONFIG_LOG_PKT_DUMP #define OPENTHREAD_CONFIG_LOG_PKT_DUMP 1 #endif // PLATFORM #ifndef OPENTHREAD_CONFIG_LOG_PLATFORM #define OPENTHREAD_CONFIG_LOG_PLATFORM 1 #endif // PREPEND_LEVEL #ifndef OPENTHREAD_CONFIG_LOG_PREPEND_LEVEL #define OPENTHREAD_CONFIG_LOG_PREPEND_LEVEL 1 #endif #endif // OPENTHREAD_FULL_LOGS_ENABLE // Log crash dump after initialization #ifndef OPENTHREAD_CONFIG_PLATFORM_LOG_CRASH_DUMP_ENABLE #define OPENTHREAD_CONFIG_PLATFORM_LOG_CRASH_DUMP_ENABLE 0 #endif // // // // // <<< end of configuration section >>> #endif // _SL_OPENTHREAD_FEATURES_CONFIG_H