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_MULTICAST_DNS
240	bool "Multicast DNS (mDNS)"
241
242config OPENTHREAD_MESH_DIAG
243	bool "Mesh Diagnostics"
244	depends on OPENTHREAD_FTD
245	help
246	  Enable Mesh Diagnostics
247
248config OPENTHREAD_MESSAGE_USE_HEAP
249	bool "Heap allocator for message buffers"
250
251config OPENTHREAD_MLE_LONG_ROUTES
252	bool "MLE long routes extension (experimental)"
253	select EXPERIMENTAL
254	help
255	  Enable MLE long routes extension (experimental, breaks Thread conformance)
256
257config OPENTHREAD_MLR
258	bool "Multicast Listener Registration support"
259	help
260	  Enable Multicast Listener Registration support for Thread 1.2
261
262config OPENTHREAD_MULTIPAN_RCP
263	bool "OpenThread multipan rcp"
264
265config OPENTHREAD_MULTIPLE_INSTANCE
266	bool "OpenThread multiple instances"
267
268config OPENTHREAD_NAT64_BORDER_ROUTING
269	bool "Border routing NAT64 support"
270
271config OPENTHREAD_NAT64_TRANSLATOR
272	bool "NAT64 translator support"
273
274config OPENTHREAD_NETDIAG_CLIENT
275	bool "TMF network diagnostics on client"
276
277config OPENTHREAD_NETDIAG_VENDOR_INFO
278	bool "Allow setting vendor info at runtime"
279
280config OPENTHREAD_NEIGHBOR_DISCOVERY_AGENT
281	bool "Neighbor discovery agent support"
282
283config OPENTHREAD_NETDATA_PUBLISHER
284	bool "Thread Network Data publisher"
285
286config OPENTHREAD_OPERATIONAL_DATASET_AUTO_INIT
287	bool "Operational dataset auto init"
288	default y
289
290config OPENTHREAD_OTNS
291	bool "OTNS support"
292
293config OPENTHREAD_PING_SENDER
294	bool "Ping sender support"
295
296config OPENTHREAD_PLATFORM_RADIO_COEX_ENABLE
297	bool "Platform radio coexistence support"
298	help
299	  Enable radio coexistence support in the platform.
300
301config OPENTHREAD_PLATFORM_KEY_REF
302	bool "Platform cryptographic key reference support"
303	help
304	  Enable usage of cryptographic key references instead of literal keys.
305	  This requires a crypto backend library that supports key references.
306
307choice OPENTHREAD_PLATFORM_BOOTLOADER_MODE_CHOICE
308	prompt "Platform bootloader mode configuration"
309	optional
310
311config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_RETENTION
312	bool "Bootloader mode support with boot mode retention API"
313	depends on RETENTION_BOOT_MODE && REBOOT
314	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
315
316config OPENTHREAD_PLATFORM_BOOTLOADER_MODE_GPIO
317	bool "Bootloader mode support with GPIO pin trigger"
318	select OPENTHREAD_PLATFORM_BOOTLOADER_MODE
319endchoice # OPENTHREAD_PLATFORM_BOOTLOADER_MODE
320
321config OPENTHREAD_PLATFORM_BOOTLOADER_MODE
322	bool
323	help
324	  Platform bootloader mode support
325
326config OPENTHREAD_PLATFORM_NETIF
327	bool "Platform netif support"
328
329config OPENTHREAD_PLATFORM_UDP
330	bool "Platform UDP support"
331
332choice OPENTHREAD_POWER_SUPPLY_CHOICE
333	prompt "Power supply configuration"
334	default OPENTHREAD_POWER_SUPPLY_EXTERNAL
335
336config OPENTHREAD_POWER_SUPPLY_BATTERY
337	bool "OT_POWER_SUPPLY_BATTERY"
338
339config OPENTHREAD_POWER_SUPPLY_EXTERNAL
340	bool "OT_POWER_SUPPLY_EXTERNAL"
341
342config OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
343	bool "OT_POWER_SUPPLY_EXTERNAL_STABLE"
344
345config OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
346	bool "OT_POWER_SUPPLY_EXTERNAL_UNSTABLE"
347endchoice # OPENTHREAD_POWER_SUPPLY_CHOICE
348
349config OPENTHREAD_POWER_SUPPLY
350	string
351	prompt "Power supply configuration"
352	default "BATTERY" if OPENTHREAD_POWER_SUPPLY_BATTERY
353	default "EXTERNAL" if OPENTHREAD_POWER_SUPPLY_EXTERNAL
354	default "EXTERNAL_STABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_STABLE
355	default "EXTERNAL_UNSTABLE" if OPENTHREAD_POWER_SUPPLY_EXTERNAL_UNSTABLE
356	default ""
357
358config OPENTHREAD_RADIO_STATS
359	bool "Support for Radio Statistics"
360
361config OPENTHREAD_RAW
362	bool "Raw Link support"
363
364config OPENTHREAD_REFERENCE_DEVICE
365	bool "Reference Device support"
366	help
367	  Enable Thread Certification reference device support in OpenThread stack
368
369config OPENTHREAD_SETTINGS_RAM
370	bool "Volatile-only storage of settings"
371
372config OPENTHREAD_SLAAC
373	bool "SLAAC support"
374
375config OPENTHREAD_SNTP_CLIENT
376	bool "SNTP Client support"
377
378config OPENTHREAD_SRP_ADV_PROXY
379	bool "SRP Server Advertising Proxy support"
380	depends on OPENTHREAD_SRP_SERVER
381	depends on OPENTHREAD_BORDER_ROUTING
382
383config OPENTHREAD_SRP_CLIENT
384	bool "SRP Client support"
385	select OPENTHREAD_ECDSA
386
387config OPENTHREAD_SRP_SERVER
388	bool "SRP Server support"
389	select OPENTHREAD_NETDATA_PUBLISHER
390	select OPENTHREAD_ECDSA
391
392config OPENTHREAD_SRP_SERVER_FAST_START
393	bool "SRP server fast start"
394
395config OPENTHREAD_TIME_SYNC
396	bool "The time synchronization service feature [EXPERIMENTAL]"
397	select EXPERIMENTAL
398
399config OPENTHREAD_TREL
400	bool "TREL radio link for Thread over Infrastructure feature"
401
402config OPENTHREAD_TREL_MANAGE_DNSSD
403	bool "TREL to manage DNSSD and peer discovery"
404
405config OPENTHREAD_TX_BEACON_PAYLOAD
406	bool "TX beacon payload support"
407
408config OPENTHREAD_TX_QUEUE_STATISTICS
409	bool "TX queue statistics support"
410
411config OPENTHREAD_UDP_FORWARD
412	bool "UDP forward support"
413
414config OPENTHREAD_UPTIME
415	bool "Openthread uptime counter"
416	default y if OPENTHREAD_FTD
417
418config OPENTHREAD_VERHOEFF_CHECKSUM
419	bool "Verhoeff checksum"
420
421config OPENTHREAD_CLI_VENDOR_EXTENSION
422	string "Path to CMake file to define and link Openthread CLI vendor extension"
423