With the updates to mbedTLS Kconfig it is now possible to update the OpenThread security configurations by disabling the mbedTLS prompt and avoid stuck symbol selection. As part of this, the OpenThread security selection has been reworked into a choice which ensures only a single security selection can be chosen. And the OPENTHREAD_MBEDTLS itself has been made promptless to ensure other parts of the build system can select a specific OpenThread security implementation and disable user selection, if the module or sample require such behavior. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no> Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
323 lines
9.1 KiB
Plaintext
323 lines
9.1 KiB
Plaintext
# 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 SETTINGS
|
|
select FLASH
|
|
select FLASH_PAGE_LAYOUT
|
|
select FLASH_MAP
|
|
select MPU_ALLOW_FLASH_WRITE
|
|
select NVS
|
|
|
|
select CPLUSPLUS
|
|
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 parametrs and try to
|
|
join the Thread network automatically during initialization (using
|
|
credentials stored in persistend storage, obtained during
|
|
commissioning or pre-commissioned with other Kconfig options,
|
|
depending on configuration used).
|
|
|
|
menu "OpenThread stack features"
|
|
source "subsys/net/l2/openthread/Kconfig.features"
|
|
endmenu
|
|
|
|
menu "Thread Network configuration"
|
|
source "subsys/net/l2/openthread/Kconfig.thread"
|
|
endmenu
|
|
|
|
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 "Enable OpenThread shell"
|
|
depends on !OPENTHREAD_COPROCESSOR
|
|
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_ECP_DP_SECP256R1_ENABLED if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER
|
|
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
|
|
select MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED if OPENTHREAD_ECDSA
|
|
select MBEDTLS_ECDSA_DETERMINISTIC if OPENTHREAD_ECDSA
|
|
select MBEDTLS_PK_WRITE_C if 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.
|
|
|
|
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
|
|
|
|
if OPENTHREAD_COPROCESSOR
|
|
|
|
config OPENTHREAD_COPROCESSOR_SPINEL_ON_UART_DEV_NAME
|
|
string "UART device to use for Co-Processor SPINEL"
|
|
default "UART_0"
|
|
help
|
|
UART device to use for Co-Processor SPINEL.
|
|
|
|
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_SPINEL_ON_UART_ACM
|
|
bool "Run SPINEL over USB-ACM"
|
|
depends on USB_CDC_ACM
|
|
help
|
|
Is the SPINEL device a USB-CDC-ACM device.
|
|
|
|
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_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 "Enable 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 "Enable software ACK timeout logic"
|
|
default y
|
|
help
|
|
Set y if the radio supports AckTime event
|
|
|
|
config OPENTHREAD_MAC_SOFTWARE_RETRANSMIT_ENABLE
|
|
bool "Enable 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 "Enable 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).
|
|
|
|
endif # NET_L2_OPENTHREAD
|