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