blob: fbc5e57d00479a71a703434ef882103e906d9fd0 [file] [log] [blame]
# OpenThread driver configuration options
# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
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 3072
config OPENTHREAD_PKT_LIST_SIZE
int "List size for IPv6 packet buffering"
default 10
config OT_PLAT_FLASH_PAGES_COUNT
int "Flash pages count used by OpenThread platform"
default 4
help
This option sets flash pages count used by OpenThread to store its settings. They are located at the end of flash.
endmenu # "Zephyr optimizations"
config OPENTHREAD_SHELL
bool "Enable OpenThread shell"
select SHELL
default y
config OPENTHREAD_MBEDTLS
bool "Enable built-in mbedtls for use with OpenThread"
default y
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
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 " ".
menuconfig OPENTHREAD_NCP
bool "Network Co-Processor"
select OPENTHREAD_MANUAL_START
select RING_BUFFER
select UART_INTERRUPT_DRIVEN
help
Enable NCP in OpenThread stack.
if OPENTHREAD_NCP
config OPENTHREAD_NCP_RADIO
bool "Network Co-Processor as Radio"
help
Enable NCP in OpenThread stack as radio-only.
config OPENTHREAD_NCP_SPINEL_ON_UART_DEV_NAME
string "UART device to use for NCP SPINEL"
default "UART_0"
help
UART device to use for NCP SPINEL.
config OPENTHREAD_NCP_UART_RING_BUFFER_SIZE
int "Set NCP UART ring buffer size"
default 4096
help
TX buffer size for the OpenThread NCP UART.
config OPENTHREAD_NCP_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_NCP_VENDOR_HOOK_SOURCE
string "Path to NCP vendor hook source file"
help
Provides path to compile ncp vendor hook file inside NCP component.
endif # OPENTHREAD_NCP
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"
endif # NET_L2_OPENTHREAD