| # OpenThread driver configuration options |
| |
| # Copyright (c) 2018 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| config OPENTHREAD_SECURITY_INTERNAL |
| bool |
| help |
| OpenThread setting to signal that OpenThread security settings, such |
| as the OPENTHREAD_MBEDTLS setting will be controlled through other |
| Kconfig dependencies and should not be user configurable. |
| |
| menuconfig NET_L2_OPENTHREAD |
| bool "OpenThread L2" |
| depends on NETWORKING |
| select NET_L2_PHY_IEEE802154 |
| select OPENTHREAD |
| |
| imply FLASH |
| imply FLASH_PAGE_LAYOUT |
| imply FLASH_MAP |
| imply MPU_ALLOW_FLASH_WRITE |
| imply NVS |
| |
| select SETTINGS if FLASH |
| select OPENTHREAD_SETTINGS_RAM if !FLASH |
| select CPP |
| select REBOOT |
| select ENTROPY_GENERATOR |
| |
| imply NET_UDP |
| imply NET_IPV6 |
| imply NET_CONFIG_NEED_IPV6 |
| |
| if NET_L2_OPENTHREAD |
| |
| choice OPENTHREAD_IMPLEMENTATION |
| prompt "OpenThread origin selection" |
| help |
| Select OpenThread to use for build. Custom OpenThread implementations |
| can be added to the application Kconfig. |
| |
| config OPENTHREAD_SOURCES |
| bool "OpenThread from sources" |
| help |
| Build Zephyr's OpenThread port from sources. |
| |
| endchoice |
| |
| config OPENTHREAD_MANUAL_START |
| bool "Start OpenThread stack manually" |
| help |
| If enabled, OpenThread stack will have to be configured and |
| started manually, with respective API calls or CLI/NCP commands. |
| Otherwise, OpenThread will configure the network parameters and try to |
| join the Thread network automatically during initialization (using |
| credentials stored in persistent storage, obtained during |
| commissioning or pre-commissioned with other Kconfig options, |
| depending on configuration used). |
| |
| menu "Logging" |
| |
| menuconfig OPENTHREAD_DEBUG |
| bool "OpenThread stack logging support" |
| depends on NET_L2_OPENTHREAD |
| help |
| This option enables logging support for OpenThread. |
| |
| choice |
| prompt "OpenThread stack log level" |
| depends on OPENTHREAD_DEBUG |
| help |
| This option selects log level for OpenThread stack. |
| |
| config OPENTHREAD_LOG_LEVEL_CRIT |
| bool "Critical" |
| config OPENTHREAD_LOG_LEVEL_WARN |
| bool "Warning" |
| config OPENTHREAD_LOG_LEVEL_NOTE |
| bool "Notice" |
| config OPENTHREAD_LOG_LEVEL_INFO |
| bool "Informational" |
| config OPENTHREAD_LOG_LEVEL_DEBG |
| bool "Debug" |
| endchoice |
| |
| config OPENTHREAD_LOG_LEVEL |
| int |
| default 1 if OPENTHREAD_LOG_LEVEL_CRIT |
| default 2 if OPENTHREAD_LOG_LEVEL_WARN |
| default 3 if OPENTHREAD_LOG_LEVEL_NOTE |
| default 4 if OPENTHREAD_LOG_LEVEL_INFO |
| default 5 if OPENTHREAD_LOG_LEVEL_DEBG |
| default 0 |
| |
| menuconfig OPENTHREAD_L2_DEBUG |
| bool "OpenThread L2 log support" |
| help |
| This option enables log support for OpenThread. |
| |
| if OPENTHREAD_L2_DEBUG |
| |
| config OPENTHREAD_L2_DEBUG_DUMP_15_4 |
| bool "Dump 802.15.4 packets" |
| help |
| This option enables dumping of 802.15.4 packets. |
| |
| config OPENTHREAD_L2_DEBUG_DUMP_IPV6 |
| bool "Dump IPv6 packets" |
| help |
| This option enables dumping of IPv6 packets. |
| |
| endif # OPENTHREAD_L2_DEBUG |
| |
| module = OPENTHREAD_L2 |
| module-dep = NET_LOG |
| module-str = Log level for OpenThread driver |
| module-help = Enables OpenThread driver to output debug messages. |
| source "subsys/net/Kconfig.template.log_config.net" |
| |
| endmenu # "Logging" |
| |
| menu "Zephyr optimizations" |
| |
| config OPENTHREAD_THREAD_PREEMPTIVE |
| bool "Set Openthread thread to be preemptive" |
| |
| config OPENTHREAD_THREAD_PRIORITY |
| int "OpenThread thread priority" |
| default 0 if OPENTHREAD_THREAD_PREEMPTIVE |
| default 8 |
| |
| config OPENTHREAD_THREAD_STACK_SIZE |
| int "OpenThread thread stack size" |
| default 6144 if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| default 6240 if (OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER) && MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| default 3168 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| default 3072 |
| |
| |
| config OPENTHREAD_PKT_LIST_SIZE |
| int "List size for IPv6 packet buffering" |
| default 10 |
| |
| config OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE |
| int "OpenThread radio transmit workqueue stack size" |
| default 608 if MPU_STACK_GUARD && FPU_SHARING && CPU_CORTEX_M |
| default 512 |
| |
| endmenu # "Zephyr optimizations" |
| |
| config OPENTHREAD_SHELL |
| bool "OpenThread shell" |
| depends on SHELL |
| default y |
| |
| config MBEDTLS_PROMPTLESS |
| bool |
| default y if !CUSTOM_OPENTHREAD_SECURITY |
| |
| choice OPENTHREAD_SECURITY |
| prompt "OpenThread security" |
| default OPENTHREAD_MBEDTLS_CHOICE |
| depends on !OPENTHREAD_SECURITY_INTERNAL |
| |
| config CUSTOM_OPENTHREAD_SECURITY |
| bool "Custom" |
| help |
| Security settings will be controlled directly by the user. |
| Enabling this setting will give access to full control of mbed TLS |
| configuration. |
| |
| config OPENTHREAD_MBEDTLS_CHOICE |
| bool "mbed TLS built-in" |
| select OPENTHREAD_MBEDTLS |
| help |
| Use the OpenThread mbed TLS configuration pre-defined security scheme. |
| |
| endchoice |
| |
| config OPENTHREAD_MBEDTLS |
| bool |
| select MBEDTLS |
| select MBEDTLS_ENABLE_HEAP |
| select MBEDTLS_CIPHER_AES_ENABLED |
| select MBEDTLS_CIPHER_CCM_ENABLED |
| select MBEDTLS_MAC_SHA256_ENABLED |
| select MBEDTLS_ENTROPY_ENABLED |
| select MBEDTLS_MAC_CMAC_ENABLED |
| select MBEDTLS_CIPHER |
| select MBEDTLS_MD |
| select MBEDTLS_TLS_VERSION_1_2 if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_DTLS if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_ECJPAKE_C if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_ECP_DP_SECP256R1_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || \ |
| OPENTHREAD_SRP_CLIENT || OPENTHREAD_SRP_SERVER |
| select MBEDTLS_ECP_NIST_OPTIM if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_SSL_EXPORT_KEYS if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_CTR_DRBG_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER |
| select MBEDTLS_HMAC_DRBG_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || \ |
| OPENTHREAD_SRP_CLIENT || OPENTHREAD_SRP_SERVER |
| select MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED if OPENTHREAD_ECDSA |
| select MBEDTLS_ECDH_C if OPENTHREAD_ECDSA |
| select MBEDTLS_ECDSA_C if OPENTHREAD_ECDSA |
| select MBEDTLS_ECDSA_DETERMINISTIC if OPENTHREAD_ECDSA |
| select MBEDTLS_PK_WRITE_C if OPENTHREAD_ECDSA |
| select MBEDTLS_ECP_C if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER || OPENTHREAD_ECDSA |
| |
| |
| config OPENTHREAD_MBEDTLS_LIB_NAME |
| string "mbedtls lib name" |
| default "mbedTLS" |
| help |
| This option allows to specify one or more mbedtls library files to be |
| linked with OpenThread. Separate multiple values with space " ". |
| |
| config OPENTHREAD_COPROCESSOR |
| bool "OpenThread Co-Processor" |
| select OPENTHREAD_MANUAL_START |
| select RING_BUFFER |
| select UART_INTERRUPT_DRIVEN |
| help |
| Enable Co-Processor in OpenThread stack. |
| |
| if OPENTHREAD_COPROCESSOR |
| |
| choice |
| prompt "OpenThread Co-Processor type" |
| help |
| This option selects Thread network co-processor type |
| |
| config OPENTHREAD_COPROCESSOR_NCP |
| bool "NCP - Network Co-Processor" |
| config OPENTHREAD_COPROCESSOR_RCP |
| bool "RCP - Radio Co-Processor" |
| endchoice |
| |
| config OPENTHREAD_COPROCESSOR_UART_RING_BUFFER_SIZE |
| int "Set Co-Processor UART ring buffer size" |
| default 4096 |
| help |
| TX buffer size for the OpenThread Co-Processor UART. |
| |
| config OPENTHREAD_COPROCESSOR_VENDOR_HOOK_SOURCE |
| string "Path to vendor hook source file" |
| help |
| Provides path to compile vendor hook file. |
| |
| endif # OPENTHREAD_COPROCESSOR |
| |
| config OPENTHREAD_PLATFORM_INFO |
| string "Platform information for OpenThread" |
| default "ZEPHYR" |
| help |
| Platform information for OpenThread |
| |
| config OPENTHREAD_CUSTOM_PARAMETERS |
| string "Custom Parameters to pass to OpenThread build system" |
| default "" |
| help |
| This option is intended for advanced users only. |
| Pass additional parameters that do not have corresponding Kconfig |
| options to the OpenThread build system. Separate multiple values with |
| space " ", for example: |
| "OPENTHREAD_CONFIG_JOINER_ENABLE=1 OPENTHREAD_CONFIG_JOINER_MAX_CANDIDATES=3" |
| |
| config OPENTHREAD_NUM_MESSAGE_BUFFERS |
| int "The number of message buffers in the buffer pool" |
| default 128 |
| help |
| "The number of message buffers in the buffer pool." |
| |
| config OPENTHREAD_MESSAGE_BUFFER_SIZE |
| int "The size of a message buffer in bytes" |
| default 128 |
| help |
| "The size of a message buffer in bytes" |
| |
| config OPENTHREAD_MAX_STATECHANGE_HANDLERS |
| int "The maximum number of state-changed callback handlers" |
| default 2 |
| help |
| The maximum number of state-changed callback handlers |
| set using otSetStateChangedCallback. |
| |
| config OPENTHREAD_TMF_ADDRESS_CACHE_ENTRIES |
| int "The number of EID-to-RLOC cache entries" |
| default 20 |
| help |
| The number of EID-to-RLOC cache entries. |
| |
| config OPENTHREAD_LOG_PREPEND_LEVEL_ENABLE |
| bool "Prepending the log level to all OpenThread log messages" |
| help |
| When enabled the OpenThread logs will be prepended with the appropriate |
| log level prefix i.e. [CRIT], [WARN], [NOTE], [INFO], [DEBG]. |
| |
| config OPENTHREAD_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE |
| bool "Software ACK timeout logic" |
| default y |
| help |
| Set y if the radio supports AckTime event |
| |
| config OPENTHREAD_MAC_SOFTWARE_RETRANSMIT_ENABLE |
| bool "Software retransmission logic" |
| default y |
| help |
| Set y if the radio supports tx retry logic with collision avoidance (CSMA) |
| |
| config OPENTHREAD_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE |
| bool "Software CSMA backoff logic" |
| default y |
| help |
| Set y to enable software CSMA backoff. The option can be disabled if |
| the radio has hardware support for this feature (IEEE802154_HW_CSMA). |
| |
| config OPENTHREAD_CRYPTO_PSA |
| bool "ARM PSA crypto API" |
| depends on MBEDTLS_PSA_CRYPTO_C || BUILD_WITH_TFM |
| select OPENTHREAD_PLATFORM_KEY_REFERENCES_ENABLE |
| select OPENTHREAD_PLATFORM_KEYS_EXPORTABLE_ENABLE |
| help |
| Enable crypto backend library implementation based on ARM PSA crypto |
| API instead of the default, using mbedTLS. |
| |
| config OPENTHREAD_PLATFORM_KEY_REFERENCES_ENABLE |
| bool "Cryptographic key reference support" |
| help |
| Enable usage of cryptographic key references instead of literal keys |
| This requires a crypto backend library that supports key references. |
| |
| config OPENTHREAD_PLATFORM_KEYS_EXPORTABLE_ENABLE |
| bool "Make MAC keys exportable" |
| depends on OPENTHREAD_PLATFORM_KEY_REFERENCES_ENABLE |
| help |
| Enable the creation of exportable MAC keys in the OpenThread Key Manager. |
| |
| endif # NET_L2_OPENTHREAD |