Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
# 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
	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