Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

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

Bootlin logo

Elixir Cross Referencer

# OpenThread driver configuration options

# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

#
# OpenThread options
#
menuconfig NET_L2_OPENTHREAD
	bool "OpenThread L2"
	depends on FLASH
	depends on FLASH_PAGE_LAYOUT
	depends on CPLUSPLUS
	depends on REBOOT
	depends on SETTINGS
	select OPENTHREAD_PLAT
	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

if NET_L2_OPENTHREAD

config OPENTHREAD_DTLS
	# Hidden option to enable DTLS support in OpenThread
	bool
	select MBEDTLS_TLS_VERSION_1_2
	select MBEDTLS_DTLS
	select MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
	select MBEDTLS_ECP_DP_SECP256R1_ENABLED
	select MBEDTLS_ECP_NIST_OPTIM
	select MBEDTLS_SSL_EXPORT_KEYS
	select MBEDTLS_CTR_DRBG_ENABLED
	select MBEDTLS_HMAC_DRBG_ENABLED

config OPENTHREAD_PLAT
	bool
	help
	  This option enables OpenThread platform

menuconfig OPENTHREAD_DEBUG
	bool "OpenThread stack log support"
	depends on OPENTHREAD_PLAT
	help
	  This option enables log 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

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"

config OPENTHREAD_THREAD_PRIORITY
	int "OpenThread thread priority"
	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 Ip6 packet buffering"
	default 10

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).

if !OPENTHREAD_MANUAL_START

config OPENTHREAD_PANID
	int "Default PAN ID"
	default 43981

config OPENTHREAD_CHANNEL
	int "Default Channel"
	default 11

config OPENTHREAD_NETWORK_NAME
	string "Default network name"
	default "ot_zephyr"
	help
	  Network name for OpenThread

config OPENTHREAD_XPANID
	string "Default Extended PAN ID"
	default "de:ad:00:be:ef:00:ca:fe"
	help
	  Extended PAN ID for OpenThread with
	  format "de:ad:00:be:ef:00:ca:fe"

endif

choice
	prompt "OpenThread device type"
	help
	  This option selects Thread network device type

config OPENTHREAD_FTD
	bool "FTD - Full Thread Device"
config OPENTHREAD_MTD
	bool "MTD - Minimal Thread Device"
endchoice

config OPENTHREAD_MTD_SED
	bool "SED - Sleepy End Device"
	depends on OPENTHREAD_MTD

config OPENTHREAD_POLL_PERIOD
	int "Poll period for sleepy end devices [ms]"
	default 236000
	depends on OPENTHREAD_MTD_SED

config OPENTHREAD_SHELL
	bool "Enable OpenThread shell"
	select SHELL
	default y

config OPENTHREAD_DIAG
	bool "Diagnostic functions support"
	help
	  Enable OpenThread CLI diagnostic commands

config OPENTHREAD_COMMISSIONER
	bool "Commissioner functions support"
	select OPENTHREAD_DTLS
	help
	  Enable commissioner capability in OpenThread stack. Note, that DTLS
	  handshake used in the commissioning procedure requires a larger
	  mbedTLS heap than the default value. A minimum recommended value of
	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 8KB.

config OPENTHREAD_JOINER
	bool "Joiner functions support"
	select OPENTHREAD_DTLS
	help
	  Enable joiner capability in OpenThread stack. Note, that DTLS
	  handshake used in the commissioning procedure requires a larger
	  mbedTLS heap than the default value. A minimum recommended value of
	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 8KB.

config OPENTHREAD_JOINER_AUTOSTART
	bool "Support for automatic joiner start"
	depends on OPENTHREAD_JOINER
	depends on !OPENTHREAD_MANUAL_START
	help
	  Enable automatic joiner start

config OPENTHREAD_JOINER_PSKD
	string "Default Pre Shared key for the Device to start joiner"
	depends on OPENTHREAD_JOINER_AUTOSTART
	default "J01NME"
	help
	  Pre Shared Key for the Device to start joiner

config OPENTHREAD_DHCP6_CLIENT
	bool "DHCPv6 client support"
	help
	  Enable DHCPv6 client capability in OpenThread stack

config OPENTHREAD_DHCP6_SERVER
	bool "DHCPv6 server support"
	help
	  Enable DHCPv6 server capability in OpenThread stack

config OPENTHREAD_SLAAC
	bool "SLAAC support"
	help
	  Enable SLAAC capability in OpenThread stack

config OPENTHREAD_ENABLE_SERVICE
	bool "Service support"
	help
	  Enable service capability in OpenThread stack

config OPENTHREAD_RAW
	bool "Raw Link support"
	help
	  Enable raw link support in OpenThread stack

config OPENTHREAD_BORDER_AGENT
	bool "Border Agent support"
	help
	  Enable border agent support in OpenThread stack

config OPENTHREAD_BORDER_ROUTER
	bool "Border Router support"
	help
	  Enable border router support in OpenThread stack

config OPENTHREAD_COAP
	bool "OpenThread CoAP support"
	help
	  Enable CoAP api for the application communicates with use of OpenThread stack

config OPENTHREAD_NCP
	bool "Network Co-Processor"
	select OPENTHREAD_MANUAL_START
	select RING_BUFFER
	select UART_INTERRUPT_DRIVEN
	help
	  Enable NCP in OpenThread stack

config OPENTHREAD_NCP_RADIO
	bool "Network Co-Processor as Radio"
	depends on OPENTHREAD_NCP
	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"
	depends on OPENTHREAD_NCP
	help
	  UART device to use for NCP SPINEL

config OPENTHREAD_NCP_UART_RING_BUFFER_SIZE
	int "Set NCP UART ring buffer size"
	default 4096
	depends on OPENTHREAD_NCP
	help
	  TX buffer size for the OpenThread NCP UART

config OPENTHREAD_NCP_SPINEL_ON_UART_ACM
	bool "Run SPINEL over USB-ACM"
	depends on OPENTHREAD_NCP && USB_CDC_ACM
	help
	  Is the SPINEL device a USB-CDC-ACM device

config OPENTHREAD_UDP_FORWARD
	bool "UDP forward support"
	help
	  Enable UDP forward support in OpenThread stack

config OPENTHREAD_PLATFORM_INFO
	string "Platform information for OpenThread"
	default "ZEPHYR"
	help
	  Platform information for OpenThread

config OPENTHREAD_JAM_DETECTION
	bool "Jam detection support"
	help
	  Enable jam detection in OpenThread stack

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.

endif