1# OpenThread stack features selection
2
3# Copyright (c) 2020 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6choice OPENTHREAD_STACK_VERSION
7	prompt "OpenThread stack version"
8	default OPENTHREAD_THREAD_VERSION_1_1
9	help
10	  This option selects version of Thread stack
11
12config OPENTHREAD_THREAD_VERSION_1_1
13	bool "Version 1.1"
14config OPENTHREAD_THREAD_VERSION_1_2
15	bool "Version 1.2"
16config OPENTHREAD_THREAD_VERSION_1_3
17	bool "Version 1.3"
18config OPENTHREAD_THREAD_VERSION_1_3_1
19	bool "Version 1.3.1"
20config OPENTHREAD_THREAD_VERSION_1_4
21	bool "Version 1.4"
22endchoice # OPENTHREAD_STACK_VERSION
23
24config OPENTHREAD_THREAD_VERSION
25	string
26	default "1.1" if OPENTHREAD_THREAD_VERSION_1_1
27	default "1.2" if OPENTHREAD_THREAD_VERSION_1_2
28	default "1.3" if OPENTHREAD_THREAD_VERSION_1_3
29	default "1.3.1" if OPENTHREAD_THREAD_VERSION_1_3_1
30	default "1.4" if OPENTHREAD_THREAD_VERSION_1_4
31	default "unknown"
32
33config OPENTHREAD_ANYCAST_LOCATOR
34	bool "Anycast locator support"
35
36config OPENTHREAD_BACKBONE_ROUTER
37	bool "Backbone Router functionality"
38
39config OPENTHREAD_BACKBONE_ROUTER_DUA_NDPROXYING
40	bool "BBR DUA ND Proxy support"
41
42config OPENTHREAD_BACKBONE_ROUTER_MULTICAST_ROUTING
43	bool "BBR MR support"
44
45config OPENTHREAD_BLE_TCAT
46	bool "BLE TCAT support"
47	select EXPERIMENTAL
48
49config OPENTHREAD_BORDER_AGENT
50	bool "Border Agent support"
51
52config OPENTHREAD_BORDER_AGENT_EPHEMERAL_KEY_ENABLE
53	bool "Border agent ephemeral PSKc"
54
55config OPENTHREAD_BORDER_AGENT_ID
56	bool "Create and save border agent ID"
57
58config OPENTHREAD_BORDER_ROUTER
59	bool "Border Router support"
60
61config OPENTHREAD_BORDER_ROUTING
62	bool "Border routing support"
63
64config OPENTHREAD_BORDER_ROUTING_COUNTERS
65	bool "Border routing counters support"
66
67config OPENTHREAD_BORDER_ROUTING_DHCP6_PD
68	bool "DHCPv6-PD support in border routing"
69
70config OPENTHREAD_CHANNEL_MONITOR
71	bool "Channel monitor support"
72
73config OPENTHREAD_CHANNEL_MANAGER
74	bool "Channel manager support"
75	depends on OPENTHREAD_CHANNEL_MONITOR
76
77config OPENTHREAD_CHANNEL_MANAGER_CSL
78	bool "Channel manager for CSL channel"
79
80config OPENTHREAD_COAP
81	bool "OpenThread CoAP support"
82	help
83	  Enable CoAP API for the application with use of OpenThread stack
84
85config OPENTHREAD_COAP_BLOCK
86	bool "CoAP Block-wise option support"
87
88config OPENTHREAD_COAP_OBSERVE
89	bool "CoAP Observe option support"
90
91config OPENTHREAD_COAPS
92	bool "Secure CoAP API support"
93	depends on OPENTHREAD_COAP
94
95config OPENTHREAD_COMMISSIONER
96	bool "Commissioner functions support"
97	help
98	  Enable commissioner capability in OpenThread stack. Note, that DTLS
99	  handshake used in the commissioning procedure requires a larger
100	  mbedTLS heap than the default value. A minimum recommended value of
101	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 10KB.
102
103config OPENTHREAD_CSL_DEBUG
104	bool "CSL debugging"
105
106config OPENTHREAD_CSL_RECEIVER
107	bool "CSL Receiver support"
108	help
109	  Enable CSL Receiver support for Thread 1.2
110
111config OPENTHREAD_CSL_RECEIVER_LOCAL_TIME_SYNC
112	bool "Use local time for CSL synchronization"
113	help
114	  Use host time rather than radio platform time to track elapsed time
115	  since last CSL synchronization. This reduces the usage of radio API
116	  calls, and it is useful for platforms in which those are costly.
117
118config OPENTHREAD_DEVICE_PROP_LEADER_WEIGHT
119	bool "Device props for leader weight"
120	default n if (OPENTHREAD_THREAD_VERSION_1_1 || \
121		      OPENTHREAD_THREAD_VERSION_1_2 || \
122		      OPENTHREAD_THREAD_VERSION_1_3)
123	default y
124	help
125	  Enable the device properties which are then used to determine and set
126	  the Leader Weight.
127
128config OPENTHREAD_DATASET_UPDATER
129	bool "Dataset updater"
130
131config OPENTHREAD_WAKEUP_COORDINATOR
132	bool "Wake-up Coordinator support"
133	select OPENTHREAD_CSL_RECEIVER
134
135config OPENTHREAD_WAKEUP_END_DEVICE
136	bool "Wake-up End Device support"
137	imply OPENTHREAD_CSL_RECEIVER
138
139config OPENTHREAD_DHCP6_CLIENT
140	bool "DHCPv6 client support"
141
142config OPENTHREAD_DHCP6_SERVER
143	bool "DHCPv6 server support"
144
145config OPENTHREAD_DIAG
146	bool "Diagnostic functions support"
147	help
148	  Enable OpenThread CLI diagnostic commands
149
150config OPENTHREAD_DNS_CLIENT
151	bool "DNS client support"
152
153config OPENTHREAD_DNS_CLIENT_OVER_TCP
154	bool "DNS query over tcp"
155
156config OPENTHREAD_DNS_DSO
157	bool "DNS Stateful Operations (DSO) support"
158
159config OPENTHREAD_DNS_UPSTREAM_QUERY
160	bool "Forwarding DNS queries to upstream"
161	help
162	  Enable forwarding DNS queries to platform DNS upstream API
163
164config OPENTHREAD_DNSSD_DISCOVERY_PROXY
165	bool "DNS-SD discovery proxy support"
166
167config OPENTHREAD_DNSSD_SERVER
168	bool "DNS-SD server support"
169
170config OPENTHREAD_DUA
171	bool "Domain Unicast Address support"
172	help
173	  Enable Domain Unicast Address feature for Thread 1.2
174
175config OPENTHREAD_DYNAMIC_STORE_FRAME_AHEAD_COUNTER
176	bool "Dynamic store frame ahead counter"
177
178config OPENTHREAD_ECDSA
179	bool "ECDSA support"
180
181config OPENTHREAD_ENABLE_SERVICE
182	bool "Service support"
183	help
184	  Enable Thread Services capability in OpenThread stack
185
186config OPENTHREAD_EXTERNAL_HEAP
187	bool "External heap support"
188
189config OPENTHREAD_FIREWALL
190	bool "Firewall support"
191
192config OPENTHREAD_FULL_LOGS
193	bool "OpenThread full logs"
194
195config OPENTHREAD_IP6_FRAGM
196	bool "IPv6 fragmentation support"
197
198config OPENTHREAD_JAM_DETECTION
199	bool "Jam detection support"
200
201config OPENTHREAD_JOINER
202	bool "Joiner functions support"
203	help
204	  Enable joiner capability in OpenThread stack. Note, that DTLS
205	  handshake used in the commissioning procedure requires a larger
206	  mbedTLS heap than the default value. A minimum recommended value of
207	  CONFIG_MBEDTLS_HEAP_SIZE for the commissioning is 10KB.
208
209config OPENTHREAD_LEGACY
210	bool "Legacy network support"
211
212config OPENTHREAD_LINK_METRICS_INITIATOR
213	bool "Link Metrics initiator"
214
215config OPENTHREAD_LINK_METRICS_MANAGER
216	bool "Link Metrics manager"
217
218config OPENTHREAD_LINK_METRICS_SUBJECT
219	bool "Link Metrics subject"
220
221config OPENTHREAD_PLATFORM_LOG_CRASH_DUMP
222	bool "Platform log crash dump"
223
224config OPENTHREAD_LOG_LEVEL_DYNAMIC
225	bool "Dynamic log level control"
226
227config OPENTHREAD_MAC_FILTER
228	bool "MAC filter support"
229
230config OPENTHREAD_MULTICAST_DNS
231	bool "Multicast DNS (mDNS)"
232
233config OPENTHREAD_MESH_DIAG
234	bool "Mesh Diagnostics"
235	depends on OPENTHREAD_FTD
236	help
237	  Enable Mesh Diagnostics
238
239config OPENTHREAD_MESSAGE_USE_HEAP
240	bool "Heap allocator for message buffers"
241
242config OPENTHREAD_MLE_LONG_ROUTES
243	bool "MLE long routes extension (experimental)"
244	select EXPERIMENTAL
245	help
246	  Enable MLE long routes extension (experimental, breaks Thread conformance)
247
248config OPENTHREAD_MLR
249	bool "Multicast Listener Registration support"
250	help
251	  Enable Multicast Listener Registration support for Thread 1.2
252
253config OPENTHREAD_MULTIPAN_RCP
254	bool "OpenThread multipan rcp"
255
256config OPENTHREAD_MULTIPLE_INSTANCE
257	bool "OpenThread multiple instances"
258
259config OPENTHREAD_NAT64_BORDER_ROUTING
260	bool "Border routing NAT64 support"
261
262config OPENTHREAD_NAT64_TRANSLATOR
263	bool "NAT64 translator support"
264
265config OPENTHREAD_NETDIAG_CLIENT
266	bool "TMF network diagnostics on client"
267
268config OPENTHREAD_NETDIAG_VENDOR_INFO
269	bool "Allow setting vendor info at runtime"
270
271config OPENTHREAD_NEIGHBOR_DISCOVERY_AGENT
272	bool "Neighbor discovery agent support"
273
274config OPENTHREAD_NETDATA_PUBLISHER
275	bool "Thread Network Data publisher"
276
277config OPENTHREAD_OPERATIONAL_DATASET_AUTO_INIT
278	bool "Operational dataset auto init"
279	default y
280
281config OPENTHREAD_OTNS
282	bool "OTNS support"
283
284config OPENTHREAD_PING_SENDER
285	bool "Ping sender support"
286
287config OPENTHREAD_PLATFORM_KEY_REF
288	bool "Platform cryptographic key reference support"
289	help
290	  Enable usage of cryptographic key references instead of literal keys.
291	  This requires a crypto backend library that supports key references.
292
293choice OPENTHREAD_PLATFORM_BOOTLOADER_MODE_CHOICE
294	prompt "Platform bootloader mode configuration"
295	optional
296
297config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_RETENTION
298	bool "Bootloader mode support with boot mode retention API"
299	depends on RETENTION_BOOT_MODE && REBOOT
300	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
301
302config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_GPIO
303	bool "Bootloader mode support with GPIO pin trigger"
304	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
305endchoice # OPENTHREAD_PLATFORM_BOOTLOADER_MODE
306
307config OPENTHREAD_PLATFORM_BOOTLOADER_MODE
308	bool
309	help
310	  Platform bootloader mode support
311
312config OPENTHREAD_PLATFORM_NETIF
313	bool "Platform netif support"
314
315config OPENTHREAD_PLATFORM_UDP
316	bool "Platform UDP support"
317
318choice OPENTHREAD_POWER_SUPPLY_CHOICE
319	prompt "Power supply configuration"
320	default OPENTHREAD_POWER_SUPPLY_EXTERNAL
321
322config OPENTHREAD_POWER_SUPPLY_BATTERY
323	bool "OT_POWER_SUPPLY_BATTERY"
324
325config OPENTHREAD_POWER_SUPPLY_EXTERNAL
326	bool "OT_POWER_SUPPLY_EXTERNAL"
327
328config OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
329	bool "OT_POWER_SUPPLY_EXTERNAL_STABLE"
330
331config OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
332	bool "OT_POWER_SUPPLY_EXTERNAL_UNSTABLE"
333endchoice # OPENTHREAD_POWER_SUPPLY_CHOICE
334
335config OPENTHREAD_POWER_SUPPLY
336	string
337	prompt "Power supply configuration"
338	default "BATTERY" if OPENTHREAD_POWER_SUPPLY_BATTERY
339	default "EXTERNAL" if OPENTHREAD_POWER_SUPPLY_EXTERNAL
340	default "EXTERNAL_STABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
341	default "EXTERNAL_UNSTABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
342	default ""
343
344config OPENTHREAD_RADIO_STATS
345	bool "Support for Radio Statistics"
346
347config OPENTHREAD_RAW
348	bool "Raw Link support"
349
350config OPENTHREAD_REFERENCE_DEVICE
351	bool "Reference Device support"
352	help
353	  Enable Thread Certification reference device support in OpenThread stack
354
355config OPENTHREAD_SETTINGS_RAM
356	bool "Volatile-only storage of settings"
357
358config OPENTHREAD_SLAAC
359	bool "SLAAC support"
360
361config OPENTHREAD_SNTP_CLIENT
362	bool "SNTP Client support"
363
364config OPENTHREAD_SRP_ADV_PROXY
365	bool "SRP Server Advertising Proxy support"
366	depends on OPENTHREAD_SRP_SERVER
367	depends on OPENTHREAD_BORDER_ROUTING
368
369config OPENTHREAD_SRP_CLIENT
370	bool "SRP Client support"
371	select OPENTHREAD_ECDSA
372
373config OPENTHREAD_SRP_SERVER
374	bool "SRP Server support"
375	select OPENTHREAD_NETDATA_PUBLISHER
376	select OPENTHREAD_ECDSA
377
378config OPENTHREAD_TIME_SYNC
379	bool "The time synchronization service feature [EXPERIMENTAL]"
380	select EXPERIMENTAL
381
382config OPENTHREAD_TREL
383	bool "TREL radio link for Thread over Infrastructure feature"
384
385config OPENTHREAD_TX_BEACON_PAYLOAD
386	bool "TX beacon payload support"
387
388config OPENTHREAD_TX_QUEUE_STATISTICS
389	bool "TX queue statistics support"
390
391config OPENTHREAD_UDP_FORWARD
392	bool "UDP forward support"
393
394config OPENTHREAD_UPTIME
395	bool "Openthread uptime counter"
396	default y if OPENTHREAD_FTD
397
398config OPENTHREAD_VERHOEFF_CHECKSUM
399	bool "Verhoeff checksum"
400
401config OPENTHREAD_CLI_VENDOR_EXTENSION
402	string "Path to CMake file to define and link Openthread CLI vendor extension"
403