This commit makes the Radio workqueue priority configurable by the application. Additionally, the default priority has been adjusted to allow transmit operations to occur before the entire RX queue is processed. Signed-off-by: Łukasz Duda <lukasz.duda@nordicsemi.no>
367 lines
11 KiB
Plaintext
367 lines
11 KiB
Plaintext
# Copyright (c) 2022 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config OPENTHREAD
|
|
bool "OpenThread Support"
|
|
imply FLASH
|
|
imply FLASH_MAP
|
|
imply MPU_ALLOW_FLASH_WRITE
|
|
select SETTINGS if FLASH
|
|
select OPENTHREAD_SETTINGS_RAM if !FLASH
|
|
select CPP
|
|
select REBOOT
|
|
select ENTROPY_GENERATOR
|
|
help
|
|
This option enables the OpenThread library
|
|
|
|
if OPENTHREAD
|
|
|
|
config OPENTHREAD_SYS_INIT
|
|
bool "Initialize OpenThread stack during system initialization"
|
|
default y
|
|
depends on !NET_L2_OPENTHREAD
|
|
help
|
|
This option initializes the OpenThread automatically by calling the openthread_init()
|
|
function during system initialization.
|
|
|
|
config OPENTHREAD_SYS_INIT_PRIORITY
|
|
int "OpenThread system initialization priority"
|
|
default 40
|
|
depends on OPENTHREAD_SYS_INIT
|
|
help
|
|
This option sets the priority of the OpenThread system initialization.
|
|
|
|
choice OPENTHREAD_IMPLEMENTATION
|
|
prompt "OpenThread origin selection"
|
|
help
|
|
Select OpenThread stack 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"
|
|
help
|
|
This option enables logging support for OpenThread.
|
|
|
|
choice OPENTHREAD_LOG_LEVEL_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 # OPENTHREAD_LOG_LEVEL_CHOICE
|
|
|
|
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
|
|
help
|
|
Log level for OpenThread stack.
|
|
|
|
config OPENTHREAD_PLATFORM_LOG_LEVEL
|
|
int
|
|
default 1 if OPENTHREAD_LOG_LEVEL_CRIT
|
|
default 2 if OPENTHREAD_LOG_LEVEL_WARN
|
|
default 3 if OPENTHREAD_LOG_LEVEL_NOTE || OPENTHREAD_LOG_LEVEL_INFO
|
|
default 4 if OPENTHREAD_LOG_LEVEL_DEBG
|
|
default 0
|
|
help
|
|
Log level for OpenThread Zephyr platform.
|
|
|
|
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
|
|
|
|
config OPENTHREAD_RADIO_WORKQUEUE_PRIORITY
|
|
int "OpenThread radio transmit workqueue priority"
|
|
default 0 if OPENTHREAD_THREAD_PREEMPTIVE
|
|
default 7
|
|
|
|
endmenu # "Zephyr optimizations"
|
|
|
|
config OPENTHREAD_SHELL
|
|
bool "OpenThread shell"
|
|
depends on SHELL
|
|
|
|
config MBEDTLS_PROMPTLESS
|
|
default y if !CUSTOM_OPENTHREAD_SECURITY
|
|
|
|
choice OPENTHREAD_SECURITY
|
|
prompt "OpenThread security"
|
|
default OPENTHREAD_MBEDTLS_CHOICE
|
|
|
|
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_SHA256
|
|
select MBEDTLS_ENTROPY_C
|
|
select MBEDTLS_CMAC
|
|
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_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 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 # OPENTHREAD_COPROCESSOR_CHOICE
|
|
|
|
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_PLATFORM_MESSAGE_MANAGEMENT
|
|
bool "Use platform message management"
|
|
help
|
|
The message pool is managed by platform defined logic.
|
|
|
|
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_TMF_ADDRESS_CACHE_MAX_SNOOP_ENTRIES
|
|
int "The maximum number of EID-to-RLOC cache entries"
|
|
default 2
|
|
help
|
|
The maximum number of EID-to-RLOC cache entries that can be used for
|
|
"snoop optimization" where an entry is created by inspecting a received
|
|
message.
|
|
|
|
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_CLIENT
|
|
select OPENTHREAD_PLATFORM_KEY_REF if !OPENTHREAD_COPROCESSOR_RCP
|
|
imply 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_KEYS_EXPORTABLE_ENABLE
|
|
bool "Make MAC keys exportable"
|
|
depends on OPENTHREAD_PLATFORM_KEY_REF
|
|
help
|
|
Enable the creation of exportable MAC keys in the OpenThread Key Manager.
|
|
|
|
config OPENTHREAD_INTERFACE_EARLY_UP
|
|
bool "Make OpenThread interface ready as soon as Thread is enabled"
|
|
help
|
|
When enabled, OpenThread interface will be marked ready (operational
|
|
UP) as soon as Thread has been enabled. This means the interface will
|
|
be ready to transmit application packets during the Mesh Link
|
|
Establishment phase.
|
|
Otherwise, OpenThread interface will be marked operational UP only
|
|
after the device joins a Thread network.
|
|
|
|
config OPENTHREAD_PLATFORM_PKT_TXTIME
|
|
bool
|
|
default y if NET_PKT_TXTIME
|
|
help
|
|
Enable packet TX time support. This is needed for when the application
|
|
wants to set the exact time when the packet should be sent.
|
|
|
|
config OPENTHREAD_PLATFORM_CARRIER_FUNCTIONS
|
|
bool
|
|
default y if OPENTHREAD_DIAG && IEEE802154_CARRIER_FUNCTIONS
|
|
help
|
|
Enable support for functions such as modulated carrier and continuous carrier.
|
|
|
|
menu "OpenThread stack features"
|
|
rsource "Kconfig.features"
|
|
endmenu
|
|
|
|
menu "Thread Network configuration"
|
|
rsource "Kconfig.thread"
|
|
endmenu
|
|
|
|
endif # OPENTHREAD
|