# OpenThread stack features selection

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

choice OPENTHREAD_STACK_VERSION
	prompt "OpenThread stack version"
	default OPENTHREAD_THREAD_VERSION_1_1
	help
	  This option selects version of Thread stack

config OPENTHREAD_THREAD_VERSION_1_1
	bool "Version 1.1"
config OPENTHREAD_THREAD_VERSION_1_2
	bool "Version 1.2"
config OPENTHREAD_THREAD_VERSION_1_3
	bool "Version 1.3"
config OPENTHREAD_THREAD_VERSION_1_3_1
	bool "Version 1.3.1"
endchoice # OPENTHREAD_STACK_VERSION

config OPENTHREAD_THREAD_VERSION
	string
	default "1.1" if OPENTHREAD_THREAD_VERSION_1_1
	default "1.2" if OPENTHREAD_THREAD_VERSION_1_2
	default "1.3" if OPENTHREAD_THREAD_VERSION_1_3
	default "1.3.1" if OPENTHREAD_THREAD_VERSION_1_3_1
	default "unknown"

config OPENTHREAD_ANYCAST_LOCATOR
	bool "Anycast locator support"

config OPENTHREAD_BACKBONE_ROUTER
	bool "Backbone Router functionality"

config OPENTHREAD_BACKBONE_ROUTER_DUA_NDPROXYING
	bool "BBR DUA ND Proxy support"

config OPENTHREAD_BACKBONE_ROUTER_MULTICAST_ROUTING
	bool "BBR MR support"

config OPENTHREAD_BLE_TCAT
	bool "BLE TCAT support"
	select EXPERIMENTAL

config OPENTHREAD_BORDER_AGENT
	bool "Border Agent support"

config OPENTHREAD_BORDER_ROUTER
	bool "Border Router support"

config OPENTHREAD_BORDER_ROUTING
	bool "Border routing support"

config OPENTHREAD_BORDER_ROUTING_COUNTERS
	bool "Border routing counters support"

config OPENTHREAD_BORDER_ROUTING_DHCP6_PD
	bool "DHCPv6-PD support in border routing"

config OPENTHREAD_CHANNEL_MONITOR
	bool "Channel monitor support"

config OPENTHREAD_CHANNEL_MANAGER
	bool "Channel manager support"
	depends on OPENTHREAD_CHANNEL_MONITOR

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

config OPENTHREAD_COAP_BLOCK
	bool "CoAP Block-wise option support"

config OPENTHREAD_COAP_OBSERVE
	bool "CoAP Observe option support"

config OPENTHREAD_COAPS
	bool "Secure CoAP API support"
	depends on OPENTHREAD_COAP

config OPENTHREAD_COMMISSIONER
	bool "Commissioner functions support"
	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 10KB.

config OPENTHREAD_CSL_DEBUG
	bool "CSL debugging"

config OPENTHREAD_CSL_RECEIVER
	bool "CSL Receiver support"
	help
	  Enable CSL Receiver support for Thread 1.2

config OPENTHREAD_CSL_RECEIVER_LOCAL_TIME_SYNC
	bool "Use local time for CSL synchronization"
	help
	  Use host time rather than radio platform time to track elapsed time
	  since last CSL synchronization. This reduces the usage of radio API
	  calls, and it is useful for platforms in which those are costly.

config OPENTHREAD_DEVICE_PROP_LEADER_WEIGHT
	bool "Device props for leader weight"
	default n if (OPENTHREAD_THREAD_VERSION_1_1 || \
		      OPENTHREAD_THREAD_VERSION_1_2 || \
		      OPENTHREAD_THREAD_VERSION_1_3)
	default y
	help
	  Enable the device properties which are then used to determine and set
	  the Leader Weight.

config OPENTHREAD_DATASET_UPDATER
	bool "Dataset updater"

config OPENTHREAD_DHCP6_CLIENT
	bool "DHCPv6 client support"

config OPENTHREAD_DHCP6_SERVER
	bool "DHCPv6 server support"

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

config OPENTHREAD_DNS_CLIENT
	bool "DNS client support"

config OPENTHREAD_DNS_CLIENT_OVER_TCP
	bool "DNS query over tcp"

config OPENTHREAD_DNS_DSO
	bool "DNS Stateful Operations (DSO) support"

config OPENTHREAD_DNS_UPSTREAM_QUERY
	bool "Forwarding DNS queries to upstream"
	help
	  Enable forwarding DNS queries to platform DNS upstream API

config OPENTHREAD_DNSSD_SERVER
	bool "DNS-SD server support"

config OPENTHREAD_DUA
	bool "Domain Unicast Address support"
	help
	  Enable Domain Unicast Address feature for Thread 1.2

config OPENTHREAD_ECDSA
	bool "ECDSA support"

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

config OPENTHREAD_EXTERNAL_HEAP
	bool "External heap support"

config OPENTHREAD_FIREWALL
	bool "Firewall support"

config OPENTHREAD_FULL_LOGS
	bool "OpenThread full logs"

config OPENTHREAD_IP6_FRAGM
	bool "IPv6 fragmentation support"

config OPENTHREAD_JAM_DETECTION
	bool "Jam detection support"

config OPENTHREAD_JOINER
	bool "Joiner functions support"
	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 10KB.

config OPENTHREAD_LEGACY
	bool "Legacy network support"

config OPENTHREAD_LINK_METRICS_INITIATOR
	bool "Link Metrics initiator"

config OPENTHREAD_LINK_METRICS_MANAGER
	bool "Link Metrics manager"

config OPENTHREAD_LINK_METRICS_SUBJECT
	bool "Link Metrics subject"

config OPENTHREAD_LOG_LEVEL_DYNAMIC
	bool "Dynamic log level control"

config OPENTHREAD_MAC_FILTER
	bool "MAC filter support"

config OPENTHREAD_MESH_DIAG
	bool "Mesh Diagnostics"
	depends on OPENTHREAD_FTD
	help
	  Enable Mesh Diagnostics

config OPENTHREAD_MESSAGE_USE_HEAP
	bool "Heap allocator for message buffers"

config OPENTHREAD_MLE_LONG_ROUTES
	bool "MLE long routes extension (experimental)"
	select EXPERIMENTAL
	help
	  Enable MLE long routes extension (experimental, breaks Thread conformance)

config OPENTHREAD_MLR
	bool "Multicast Listener Registration support"
	help
	  Enable Multicast Listener Registration support for Thread 1.2

config OPENTHREAD_MULTIPAN_RCP
	bool "OpenThread multipan rcp"

config OPENTHREAD_MULTIPLE_INSTANCE
	bool "OpenThread multiple instances"

config OPENTHREAD_NAT64_BORDER_ROUTING
	bool "Border routing NAT64 support"

config OPENTHREAD_NAT64_TRANSLATOR
	bool "NAT64 translator support"

config OPENTHREAD_NETDIAG_CLIENT
	bool "TMF network diagnostics on client"

config OPENTHREAD_NEIGHBOR_DISCOVERY_AGENT
	bool "Neighbor discovery agent support"

config OPENTHREAD_NETDATA_PUBLISHER
	bool "Thread Network Data publisher"

config OPENTHREAD_OPERATIONAL_DATASET_AUTO_INIT
	bool "Operational dataset auto init"
	default y

config OPENTHREAD_OTNS
	bool "OTNS support"

config OPENTHREAD_PING_SENDER
	bool "Ping sender support"

config OPENTHREAD_PLATFORM_KEY_REF
	bool "Platform cryptographic key reference support"
	help
	  Enable usage of cryptographic key references instead of literal keys.
	  This requires a crypto backend library that supports key references.

choice OPENTHREAD_PLATFORM_BOOTLOADER_MODE_CHOICE
	prompt "Platform bootloader mode configuration"
	optional

config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_RETENTION
	bool "Bootloader mode support with boot mode retention API"
	depends on RETENTION_BOOT_MODE && REBOOT
	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE

config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_GPIO
	bool "Bootloader mode support with GPIO pin trigger"
	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
endchoice # OPENTHREAD_PLATFORM_BOOTLOADER_MODE

config OPENTHREAD_PLATFORM_BOOTLOADER_MODE
	bool
	help
	  Platform bootloader mode support

config OPENTHREAD_PLATFORM_NETIF
	bool "Platform netif support"

config OPENTHREAD_PLATFORM_UDP
	bool "Platform UDP support"

choice OPENTHREAD_POWER_SUPPLY_CHOICE
	prompt "Power supply configuration"
	default OPENTHREAD_POWER_SUPPLY_EXTERNAL

config OPENTHREAD_POWER_SUPPLY_BATTERY
	bool "OT_POWER_SUPPLY_BATTERY"

config OPENTHREAD_POWER_SUPPLY_EXTERNAL
	bool "OT_POWER_SUPPLY_EXTERNAL"

config OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
	bool "OT_POWER_SUPPLY_EXTERNAL_STABLE"

config OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
	bool "OT_POWER_SUPPLY_EXTERNAL_UNSTABLE"
endchoice # OPENTHREAD_POWER_SUPPLY_CHOICE

config OPENTHREAD_POWER_SUPPLY
	string
	prompt "Power supply configuration"
	default "BATTERY" if OPENTHREAD_POWER_SUPPLY_BATTERY
	default "EXTERNAL" if OPENTHREAD_POWER_SUPPLY_EXTERNAL
	default "EXTERNAL_STABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
	default "EXTERNAL_UNSTABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
	default ""

config OPENTHREAD_RADIO_STATS
	bool "Support for Radio Statistics"

config OPENTHREAD_RAW
	bool "Raw Link support"

config OPENTHREAD_REFERENCE_DEVICE
	bool "Reference Device support"
	help
	  Enable Thread Certification reference device support in OpenThread stack

config OPENTHREAD_SETTINGS_RAM
	bool "Volatile-only storage of settings"

config OPENTHREAD_SLAAC
	bool "SLAAC support"

config OPENTHREAD_SNTP_CLIENT
	bool "SNTP Client support"

config OPENTHREAD_SRP_ADV_PROXY
	bool "SRP Server Advertising Proxy support"
	depends on OPENTHREAD_SRP_SERVER
	depends on OPENTHREAD_BORDER_ROUTING

config OPENTHREAD_SRP_CLIENT
	bool "SRP Client support"
	select OPENTHREAD_ECDSA

config OPENTHREAD_SRP_SERVER
	bool "SRP Server support"
	select OPENTHREAD_NETDATA_PUBLISHER
	select OPENTHREAD_ECDSA

config OPENTHREAD_TIME_SYNC
	bool "The time synchronization service feature"

config OPENTHREAD_TREL
	bool "TREL radio link for Thread over Infrastructure feature"

config OPENTHREAD_TX_BEACON_PAYLOAD
	bool "TX beacon payload support"

config OPENTHREAD_TX_QUEUE_STATISTICS
	bool "TX queue statistics support"

config OPENTHREAD_UDP_FORWARD
	bool "UDP forward support"

config OPENTHREAD_UPTIME
	bool "Openthread uptime counter"
	default y if OPENTHREAD_FTD
