1# Bluetooth mesh configuration options
2
3# Copyright (c) 2017 Intel Corporation
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig BT_MESH
7	bool "Bluetooth mesh support"
8	select TINYCRYPT
9	select TINYCRYPT_AES
10	select TINYCRYPT_AES_CMAC
11	select BT_HOST_CCM
12	depends on BT_OBSERVER && BT_BROADCASTER
13	help
14	  This option enables Bluetooth mesh support. The specific
15	  features that are available may depend on other features
16	  that have been enabled in the stack, such as GATT support.
17
18if BT_MESH
19
20# Virtual option enabled whenever Generic Provisioning layer is needed
21config BT_MESH_PROV
22	bool
23
24config BT_MESH_PROV_DEVICE
25	bool "Provisioning device role support"
26	depends on BT_MESH_PROV
27	default y
28	help
29	  Enable this option to allow the device to be provisioned into a mesh network.
30
31config BT_MESH_PROV_OOB_PUBLIC_KEY
32	bool "OOB Public key support"
33	select TINYCRYPT_ECC_DH
34	depends on BT_MESH_PROV_DEVICE
35	help
36	  Enable this option if public key is to be exchanged via Out of Band (OOB) technology.
37
38config BT_MESH_PB_ADV
39	bool "Provisioning support using the advertising bearer (PB-ADV)"
40	select BT_MESH_PROV
41	default y
42	help
43	  Enable this option to allow the device to be provisioned over
44	  the advertising bearer.
45
46config BT_MESH_UNPROV_BEACON_INT
47	int
48	prompt "The interval (in seconds) to send the unprovisioned beacon" if BT_MESH_PB_ADV
49	default 5
50	range 1 10
51	help
52	  This option specifies the interval (in seconds) at which the
53	  device sends unprovisioned beacon.
54
55config BT_MESH_PB_ADV_RETRANS_TIMEOUT
56	int "Timeout value of retransmit provisioning PDUs"
57	default 500
58	range 100 800
59	help
60	  Timeout value of retransmit provisioning PDUs.
61
62config BT_MESH_PROVISIONER
63	bool "Provisioner support"
64	depends on BT_MESH_PROV
65	depends on BT_MESH_PB_ADV
66	help
67	  Enable this option to have support for provisioning remote devices.
68
69config BT_MESH_CDB
70	bool "Mesh Configuration Database [EXPERIMENTAL]"
71	default y if BT_MESH_PROVISIONER
72
73if BT_MESH_CDB
74
75config BT_MESH_CDB_NODE_COUNT
76	int "Maximum number of nodes in the database"
77	default 8
78	range 1 4096
79	help
80	  This option specifies how many nodes each network can at most
81	  save in the configuration database.
82
83config BT_MESH_CDB_SUBNET_COUNT
84	int "Maximum number of subnets in the database"
85	default 1
86	range 1 4096
87	help
88	  This option specifies how many subnets that can at most be
89	  saved in the configuration database.
90
91config BT_MESH_CDB_APP_KEY_COUNT
92	int "Maximum number of application keys in the database"
93	default 1
94	range 1 4096
95	help
96	  This option specifies how many application keys that can at most
97	  be saved in the configuration database.
98
99endif # BT_MESH_CDB
100
101if BT_CONN
102
103# Virtual option enabled whenever any Proxy protocol is needed
104config BT_MESH_PROXY
105	bool
106
107config BT_MESH_GATT
108	bool
109
110config BT_MESH_GATT_SERVER
111	bool
112	select BT_MESH_GATT
113	select BT_GATT_DYNAMIC_DB
114
115config BT_MESH_PB_GATT
116	bool "Provisioning support using GATT (PB-GATT)"
117	select BT_MESH_GATT_SERVER
118	select BT_MESH_PROV
119	help
120	  Enable this option to allow the device to be provisioned over
121	  GATT.
122
123config BT_MESH_GATT_PROXY
124	bool "GATT Proxy Service support"
125	select BT_MESH_GATT_SERVER
126	select BT_MESH_PROXY
127	help
128	  This option enables support for the Mesh GATT Proxy Service,
129	  i.e. the ability to act as a proxy between a Mesh GATT Client
130	  and a Mesh network.
131
132config BT_MESH_GATT_PROXY_ENABLED
133	bool "GATT Proxy enabled"
134	depends on BT_MESH_GATT_PROXY
135	default y
136	help
137	  Controls whether the GATT Proxy feature is enabled by default.
138	  Can be changed through runtime configuration.
139
140config BT_MESH_NODE_ID_TIMEOUT
141	int "Node Identity advertising timeout"
142	depends on BT_MESH_GATT_PROXY
143	range 1 60
144	default 60
145	help
146	  This option determines for how long the local node advertises
147	  using Node Identity. The given value is in seconds. The
148	  specification limits this to 60 seconds, and implies that to
149	  be the appropriate value as well, so just leaving this as the
150	  default is the safest option.
151
152config BT_MESH_PROXY_USE_DEVICE_NAME
153	bool "Include Bluetooth device name in scan response"
154	depends on BT_MESH_GATT_PROXY
155	help
156	  This option includes GAP device name in scan response when
157	  the GATT Proxy feature is enabled.
158
159config BT_MESH_PROXY_FILTER_SIZE
160	int "Maximum number of filter entries per Proxy Client"
161	default 3 if BT_MESH_GATT_PROXY
162	default 1
163	range 1 32767
164	depends on BT_MESH_GATT_SERVER
165	help
166	  This option specifies how many Proxy Filter entries the local
167	  node supports.
168
169endif # BT_CONN
170
171config BT_MESH_ACCESS_LAYER_MSG
172	bool "Enable direct Bluetooth message access layer messages"
173	help
174	  This option allows the applicaiton to directly access
175	  Bluetooth access layer messages without the need to
176	  instantiate Bluetooth mesh models.
177
178config BT_MESH_SELF_TEST
179	bool "Perform self-tests"
180	help
181	  This option adds extra self-tests which are run every time
182	  mesh networking is initialized.
183
184config BT_MESH_IV_UPDATE_TEST
185	bool "Test the IV Update Procedure"
186	help
187	  This option removes the 96 hour limit of the IV Update
188	  Procedure and lets the state be changed at any time.
189
190config BT_MESH_SUBNET_COUNT
191	int "Maximum number of mesh subnets per network"
192	default 1
193	range 1 4096
194	help
195	  This option specifies how many subnets a Mesh network can
196	  participate in at the same time.
197
198config BT_MESH_APP_KEY_COUNT
199	int "Maximum number of application keys per network"
200	default 1
201	range 1 4096
202	help
203	  This option specifies how many application keys the device can
204	  store per network.
205
206config BT_MESH_MODEL_KEY_COUNT
207	int "Maximum number of application keys per model"
208	default 1
209	range 1 4096
210	help
211	  This option specifies how many application keys each model can
212	  at most be bound to.
213
214config BT_MESH_MODEL_GROUP_COUNT
215	int "Maximum number of group address subscriptions per model"
216	default 1
217	range 1 4096
218	help
219	  This option specifies how many group addresses each model can
220	  at most be subscribed to.
221
222config BT_MESH_MODEL_VND_MSG_CID_FORCE
223	bool "Force vendor model to use the corresponding CID field message"
224	default y
225	help
226	  This option forces vendor model to use messages for the
227	  corresponding CID field.
228
229config BT_MESH_LABEL_COUNT
230	int "Maximum number of Label UUIDs used for Virtual Addresses"
231	default 1
232	range 0 4096
233	help
234	  This option specifies how many Label UUIDs can be stored.
235
236config BT_MESH_CRPL
237	int "Maximum capacity of the replay protection list"
238	default 10
239	range 2 65535
240	help
241	  This options specifies the maximum capacity of the replay
242	  protection list. This option is similar to the network message
243	  cache size, but has a different purpose.
244
245config BT_MESH_MSG_CACHE_SIZE
246	int "Network message cache size"
247	default 10
248	range 2 65535
249	help
250	  Number of messages that are cached for the network. This helps
251	  prevent unnecessary decryption operations and unnecessary
252	  relays. This option is similar to the replay protection list,
253	  but has a different purpose.
254
255config BT_MESH_ADV_BUF_COUNT
256	int "Number of advertising buffers"
257	default 6
258	range 1 256
259	help
260	  Number of advertising buffers available. This should be chosen
261	  based on what kind of features the local node should have. E.g.
262	  a relay will perform better the more buffers it has. Another
263	  thing to consider is outgoing segmented messages. There must
264	  be at least three more advertising buffers than the maximum
265	  supported outgoing segment count (BT_MESH_TX_SEG_MAX).
266
267choice BT_MESH_ADV
268	prompt "Advertiser mode"
269	default BT_MESH_ADV_EXT if BT_EXT_ADV
270	default BT_MESH_ADV_LEGACY
271
272config BT_MESH_ADV_LEGACY
273	bool "Legacy advertising"
274	help
275	  Use legacy advertising commands for mesh sending. Legacy
276	  advertising is significantly slower than the extended advertising, but
277	  is supported by all controllers.
278
279config BT_MESH_ADV_EXT
280	bool "Extended advertising"
281	depends on BT_CTLR_ADV_EXT || !BT_CTLR
282	depends on BT_EXT_ADV
283	help
284	  Use extended advertising commands for operating the advertiser.
285	  Extended advertising is faster and uses less memory than legacy
286	  advertising, but isn't supported by all controllers.
287
288endchoice
289
290config BT_MESH_ADV_STACK_SIZE
291	int "Mesh advertiser thread stack size"
292	depends on BT_MESH_ADV_LEGACY
293	default 1024 if BT_HOST_CRYPTO
294	default 768
295	help
296	  Size of bt mesh adv thread stack.
297
298	  NOTE: This is an advanced setting and should not be changed unless
299	  absolutely necessary
300
301config BT_MESH_ADV_PRIO
302	int "Mesh advertiser thread priority"
303	depends on BT_MESH_ADV_LEGACY
304	default 7
305	help
306	  Priority of bt mesh adv thread.
307
308	  NOTE: This is an advanced setting and should not be changed unless
309	  absolutely necessary
310
311config BT_MESH_IV_UPDATE_SEQ_LIMIT
312	hex "Sequence number limit to start iv update"
313	default 0x800000
314	range 0x000001 0xFFFFFE
315	help
316	  This option specifies the sequence number value to start iv update.
317
318config BT_MESH_IVU_DIVIDER
319	int "Divider for IV Update state refresh timer"
320	default 4
321	range 2 96
322	help
323	  When the IV Update state enters Normal operation or IV Update
324	  in Progress, we need to keep track of how many hours has passed
325	  in the state, since the specification requires us to remain in
326	  the state at least for 96 hours (Update in Progress has an
327	  additional upper limit of 144 hours).
328
329	  In order to fulfill the above requirement, even if the node might
330	  be powered off once in a while, we need to store persistently
331	  how many hours the node has been in the state. This doesn't
332	  necessarily need to happen every hour (thanks to the flexible
333	  duration range). The exact cadence will depend a lot on the
334	  ways that the node will be used and what kind of power source it
335	  has.
336
337	  Since there is no single optimal answer, this configuration
338	  option allows specifying a divider, i.e. how many intervals
339	  the 96 hour minimum gets split into. After each interval the
340	  duration that the node has been in the current state gets
341	  stored to flash. E.g. the default value of 4 means that the
342	  state is saved every 24 hours (96 / 4).
343
344config BT_MESH_TX_SEG_MSG_COUNT
345	int "Maximum number of simultaneous outgoing segmented messages"
346	default 1
347	range 1 255
348	help
349	  Maximum number of simultaneous outgoing multi-segment and/or
350	  reliable messages.
351
352config BT_MESH_RX_SEG_MSG_COUNT
353	int "Maximum number of simultaneous incoming segmented messages"
354	default 1
355	range 1 255
356	help
357	  Maximum number of simultaneous incoming multi-segment and/or
358	  reliable messages.
359
360config BT_MESH_SEG_BUFS
361	int "Number of segment buffers available"
362	default 64
363	range BT_MESH_RX_SEG_MAX 16384 if BT_MESH_RX_SEG_MAX > \
364					  BT_MESH_TX_SEG_MAX
365	range BT_MESH_TX_SEG_MAX 16384
366	help
367	  The incoming and outgoing segmented messages allocate their
368	  segments from the same pool. Each segment is a 12 byte block,
369	  and may only be used by one message at the time.
370
371	  Outgoing messages will allocate their segments at the start of the
372	  transmission, and release them one by one as soon as they have been
373	  acknowledged by the receiver. Incoming messages allocate all their
374	  segments at the start of the transaction, and won't release them until
375	  the message is fully received.
376
377config BT_MESH_RX_SEG_MAX
378	int "Maximum number of segments in incoming messages"
379	default 3
380	range 2 32
381	help
382	  Maximum number of segments supported for incoming messages.
383	  This value should typically be fine-tuned based on what
384	  models the local node supports, i.e. what's the largest
385	  message payload that the node needs to be able to receive.
386	  This value affects memory and call stack consumption, which
387	  is why the default is lower than the maximum that the
388	  specification would allow (32 segments).
389
390	  The maximum incoming SDU size is 12 times this number (out of
391	  which 4 or 8 bytes is used for the Transport Layer MIC). For
392	  example, 5 segments means the maximum SDU size is 60 bytes,
393	  which leaves 56 bytes for application layer data using a
394	  4-byte MIC and 52 bytes using an 8-byte MIC.
395
396config BT_MESH_TX_SEG_MAX
397	int "Maximum number of segments in outgoing messages"
398	default 3
399	range 2 32
400	help
401	  Maximum number of segments supported for outgoing messages.
402	  This value should typically be fine-tuned based on what
403	  models the local node supports, i.e. what's the largest
404	  message payload that the node needs to be able to send.
405	  This value affects memory consumption, which is why the
406	  default is lower than the maximum that the specification
407	  would allow (32 segments).
408
409	  The maximum outgoing SDU size is 12 times this number (out of
410	  which 4 or 8 bytes is used for the Transport Layer MIC). For
411	  example, 5 segments means the maximum SDU size is 60 bytes,
412	  which leaves 56 bytes for application layer data using a
413	  4-byte MIC and 52 bytes using an 8-byte MIC.
414
415config BT_MESH_DEFAULT_TTL
416	int "Default TTL value"
417	default 7
418	range 0 128
419	help
420	  Controls the default TTL value for outgoing messages. Can be changed
421	  through runtime configuration.
422
423config BT_MESH_LOOPBACK_BUFS
424	int "Number of loopback buffers"
425	default 3
426	help
427	  The number of buffers allocated for the network loopback mechanism.
428	  Loopback is used when the device sends messages to itself.
429
430config BT_MESH_TX_SEG_RETRANS_COUNT
431	int "Transport message segment retransmit attempts"
432	default 4
433	range 1 8
434	help
435	  Maximum number of transport message segment retransmit attempts
436	  for outgoing segment message.
437
438config BT_MESH_TX_SEG_RETRANS_TIMEOUT_UNICAST
439	int "Transport message segment retransmit interval for unicast messages"
440	default 400
441	range 200 500
442	help
443	  Maximum time of retransmit segment message to unicast address.
444
445config BT_MESH_TX_SEG_RETRANS_TIMEOUT_GROUP
446	int "Transport message segment retransmit interval for group messages"
447	default 50
448	range 20 200
449	help
450	  Maximum time of retransmit segment message to group address.
451
452config BT_MESH_NETWORK_TRANSMIT_COUNT
453	int "Network Transmit Count"
454	default 2
455	range 0 7
456	help
457	  Controls the initial number of retransmissions of original messages,
458	  in addition to the first transmission. Can be changed through runtime
459	  configuration.
460
461config BT_MESH_NETWORK_TRANSMIT_INTERVAL
462	int "Network Transmit Interval"
463	default 20
464	range 10 330
465	help
466	  Controls the initial interval between retransmissions of original
467	  messages, in milliseconds. Can be changed through runtime
468	  configuration.
469
470menuconfig BT_MESH_RELAY
471	bool "Relay support"
472	help
473	  Support for acting as a Mesh Relay Node.
474
475if BT_MESH_RELAY
476
477config BT_MESH_RELAY_ENABLED
478	bool "Relay enabled"
479	default y
480	help
481	  Controls whether the Mesh Relay feature is enabled by default. Can be
482	  changed through runtime configuration.
483
484config BT_MESH_RELAY_RETRANSMIT_COUNT
485	int "Relay Retransmit Count"
486	default 2
487	range 0 7
488	help
489	  Controls the initial number of retransmissions of relayed messages, in
490	  addition to the first transmission. Can be changed through runtime
491	  configuration.
492
493config BT_MESH_RELAY_RETRANSMIT_INTERVAL
494	int "Relay Retransmit Interval"
495	default 20
496	range 10 330
497	help
498	  Controls the initial interval between retransmissions of relayed
499	  messages, in milliseconds. Can be changed through runtime
500	  configuration.
501
502endif
503
504config BT_MESH_BEACON_ENABLED
505	bool "Secure network beacon enabled"
506	default y
507	help
508	  Controls whether the Secure network beacon feature is enabled by
509	  default. Can be changed through runtime configuration.
510
511config BT_MESH_LOW_POWER
512	bool "Support for Low Power features"
513	help
514	  Enable this option to be able to act as a Low Power Node.
515
516if BT_MESH_LOW_POWER
517
518config BT_MESH_LPN_ESTABLISHMENT
519	bool "Perform Friendship establishment using low power"
520	default y
521	help
522	  Perform the Friendship establishment using low power, with
523	  the help of a reduced scan duty cycle. The downside of this
524	  is that the node may miss out on messages intended for it
525	  until it has successfully set up Friendship with a Friend
526	  node.
527
528config BT_MESH_LPN_AUTO
529	bool "Automatically start looking for Friend nodes once provisioned"
530	default y
531	help
532	  Automatically enable LPN functionality once provisioned and start
533	  looking for Friend nodes. If this option is disabled LPN mode
534	  needs to be manually enabled by calling bt_mesh_lpn_set(true).
535
536config BT_MESH_LPN_AUTO_TIMEOUT
537	int "Time from last received message before going to LPN mode"
538	default 15
539	range 0 3600
540	depends on BT_MESH_LPN_AUTO
541	help
542	  Time in seconds from the last received message, that the node
543	  will wait before starting to look for Friend nodes.
544
545config BT_MESH_LPN_RETRY_TIMEOUT
546	int "Retry timeout for Friend requests"
547	default 8
548	range 1 3600
549	help
550	  Time in seconds between Friend Requests, if a previous Friend
551	  Request did not receive any acceptable Friend Offers.
552
553config BT_MESH_LPN_RSSI_FACTOR
554	int "RSSIFactor, used in the Friend Offer Delay calculation"
555	range 0 3
556	default 0
557	help
558	  The contribution of the RSSI measured by the Friend node used
559	  in Friend Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
560
561config BT_MESH_LPN_RECV_WIN_FACTOR
562	int "ReceiveWindowFactor, used in the Friend Offer Delay calculation"
563	range 0 3
564	default 0
565	help
566	  The contribution of the supported Receive Window used in
567	  Friend Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
568
569config BT_MESH_LPN_MIN_QUEUE_SIZE
570	int "Minimum size of acceptable friend queue (MinQueueSizeLog)"
571	range 1 7
572	default 1
573	help
574	  The MinQueueSizeLog field is defined as log_2(N), where N is
575	  the minimum number of maximum size Lower Transport PDUs that
576	  the Friend node can store in its Friend Queue. As an example,
577	  MinQueueSizeLog value 1 gives N = 2, and value 7 gives N = 128.
578
579config BT_MESH_LPN_RECV_DELAY
580	int "Receive delay requested by the local node"
581	range 10 255
582	default 100
583	help
584	  The ReceiveDelay is the time between the Low Power node
585	  sending a request and listening for a response. This delay
586	  allows the Friend node time to prepare the response. The value
587	  is in units of milliseconds.
588
589config BT_MESH_LPN_POLL_TIMEOUT
590	int "The value of the PollTimeout timer"
591	range 10 244735
592	default 300
593	help
594	  PollTimeout timer is used to measure time between two
595	  consecutive requests sent by the Low Power node. If no
596	  requests are received by the Friend node before the
597	  PollTimeout timer expires, then the friendship is considered
598	  terminated. The value is in units of 100 milliseconds, so e.g.
599	  a value of 300 means 30 seconds.
600
601config BT_MESH_LPN_INIT_POLL_TIMEOUT
602	int "The starting value of the PollTimeout timer"
603	range 10 BT_MESH_LPN_POLL_TIMEOUT
604	default BT_MESH_LPN_POLL_TIMEOUT
605	help
606	  The initial value of the PollTimeout timer when Friendship
607	  gets established for the first time. After this the timeout
608	  will gradually grow toward the actual PollTimeout, doubling
609	  in value for each iteration. The value is in units of 100
610	  milliseconds, so e.g. a value of 300 means 30 seconds.
611
612config BT_MESH_LPN_SCAN_LATENCY
613	int "Latency for enabling scanning"
614	range 0 50
615	default 10
616	help
617	  Latency in milliseconds that it takes to enable scanning. This
618	  is in practice how much time in advance before the Receive Window
619	  that scanning is requested to be enabled.
620
621config BT_MESH_LPN_GROUPS
622	int "Number of groups the LPN can subscribe to"
623	range 0 16384
624	default 8
625	help
626	  Maximum number of groups that the LPN can subscribe to.
627
628config BT_MESH_LPN_SUB_ALL_NODES_ADDR
629	bool "Automatically subscribe all nodes address"
630	help
631	  Automatically subscribe all nodes address when friendship
632	  established.
633
634endif # BT_MESH_LOW_POWER
635
636config BT_MESH_FRIEND
637	bool "Support for acting as a Friend Node"
638	help
639	  Enable this option to be able to act as a Friend Node.
640
641if BT_MESH_FRIEND
642
643config BT_MESH_FRIEND_ENABLED
644	bool "Friend feature enabled"
645	default y
646	help
647	  Controls whether the Friend feature is enabled by default. Can be
648	  changed through runtime configuration.
649
650config BT_MESH_FRIEND_RECV_WIN
651	int "Friend Receive Window"
652	range 1 255
653	default 255
654	help
655	  Receive Window in milliseconds supported by the Friend node.
656
657config BT_MESH_FRIEND_QUEUE_SIZE
658	int "Minimum number of buffers supported per Friend Queue"
659	range 2 65536
660	default 16
661	help
662	  Minimum number of buffers available to be stored for each
663	  local Friend Queue.
664
665config BT_MESH_FRIEND_SUB_LIST_SIZE
666	int "Friend Subscription List Size"
667	range 0 1023
668	default 3
669	help
670	  Size of the Subscription List that can be supported by a
671	  Friend node for a Low Power node.
672
673config BT_MESH_FRIEND_LPN_COUNT
674	int "Number of supported LPN nodes"
675	range 1 1000
676	default 2
677	help
678	  Number of Low Power Nodes the Friend can have a Friendship
679	  with simultaneously.
680
681config BT_MESH_FRIEND_SEG_RX
682	int "Number of incomplete segment lists per LPN"
683	range 1 1000
684	default 1
685	help
686	  Number of incomplete segment lists that we track for each LPN
687	  that we are Friends for. In other words, this determines how
688	  many elements we can simultaneously be receiving segmented
689	  messages from when the messages are going into the Friend queue.
690
691endif # BT_MESH_FRIEND
692
693config BT_MESH_CFG_CLI
694	bool "Support for Configuration Client Model"
695	help
696	  Enable support for the configuration client model.
697
698config BT_MESH_HEALTH_CLI
699	bool "Support for Health Client Model"
700	help
701	  Enable support for the health client model.
702
703config BT_MESH_SHELL
704	bool "Enable Bluetooth mesh shell"
705	select SHELL
706	depends on BT_MESH_CFG_CLI
707	depends on BT_MESH_HEALTH_CLI
708	help
709	  Activate shell module that provides Bluetooth mesh commands to
710	  the console.
711
712config BT_MESH_MODEL_EXTENSIONS
713	bool "Support for Model extensions"
714	help
715	  Enable support for the model extension concept, allowing the Access
716	  layer to know about mesh model relationships.
717
718if BT_SETTINGS
719
720config BT_MESH_STORE_TIMEOUT
721	int "Delay (in seconds) before storing anything persistently"
722	range 0 1000000
723	default 2
724	help
725	  This value defines in seconds how soon any pending changes
726	  are actually written into persistent storage (flash) after
727	  a change occurs.
728
729config BT_MESH_SEQ_STORE_RATE
730	int "How often the sequence number gets updated in storage"
731	range 0 1000000
732	default 128
733	help
734	  This value defines how often the local sequence number gets
735	  updated in persistent storage (i.e. flash). E.g. a value of 100
736	  means that the sequence number will be stored to flash on every
737	  100th increment. If the node sends messages very frequently a
738	  higher value makes more sense, whereas if the node sends
739	  infrequently a value as low as 0 (update storage for every
740	  increment) can make sense. When the stack gets initialized it
741	  will add this number to the last stored one, so that it starts
742	  off with a value that's guaranteed to be larger than the last
743	  one used before power off.
744
745config BT_MESH_RPL_STORE_TIMEOUT
746	int "Minimum interval after which unsaved RPL entries are updated in storage"
747	range -1 1000000
748	default 5
749	help
750	  This value defines in seconds how soon unsaved RPL entries
751	  gets written to the persistent storage. Setting this value
752	  to a large number may lead to security vulnerabilities if a node
753	  gets powered off before the timer is fired. When flash is used
754	  as the persistent storage setting this value to a low number
755	  may wear out flash sooner or later. However, if the RPL gets
756	  updated infrequently a value as low as 0 (write immediately)
757	  may make sense. Setting this value to -1 will disable this timer.
758	  In this case, a user is responsible to store pending RPL entries
759	  using @ref bt_mesh_rpl_pending_store. In the mean time, when
760	  IV Index is updated, the outdated RPL entries will still be
761	  stored by @ref BT_MESH_STORE_TIMEOUT. Finding the right balance
762	  between this timeout and calling @ref bt_mesh_rpl_pending_store
763	  may reduce a risk of security vulnerability and flash wear out.
764
765endif # BT_SETTINGS
766
767config BT_MESH_DEBUG
768	bool "Enable debug logs"
769	depends on BT_DEBUG
770	help
771	  Use this option to enable debug logs for the Bluetooth
772	  Mesh functionality.
773
774if BT_MESH_DEBUG
775
776config BT_MESH_DEBUG_USE_ID_ADDR
777	bool "Use identity address for all advertising"
778	help
779	  This option forces the usage of the local identity address for
780	  all advertising. This can be a help for debugging (analyzing
781	  traces), however it should never be enabled for a production
782	  build as it compromises the privacy of the device.
783
784config BT_MESH_DEBUG_NET
785	bool "Network layer debug"
786	help
787	  Use this option to enable Network layer debug logs for the
788	  Bluetooth mesh functionality.
789
790config BT_MESH_DEBUG_RPL
791	bool "Replay protection list debug"
792	help
793	  Use this option to enable Replay protection list debug logs
794	  for the Bluetooth mesh functionality.
795
796config BT_MESH_DEBUG_TRANS
797	bool "Transport layer debug"
798	help
799	  Use this option to enable Transport layer debug logs for the
800	  Bluetooth mesh functionality.
801
802config BT_MESH_DEBUG_BEACON
803	bool "Beacon debug"
804	help
805	  Use this option to enable Beacon-related debug logs for the
806	  Bluetooth mesh functionality.
807
808config BT_MESH_DEBUG_CRYPTO
809	bool "Crypto debug"
810	help
811	  Use this option to enable cryptographic debug logs for the
812	  Bluetooth mesh functionality.
813
814config BT_MESH_DEBUG_KEYS
815	bool "Key management debug"
816	help
817	  Use this option to enable key management debug logs for the
818	  Bluetooth mesh functionality.
819
820config BT_MESH_DEBUG_PROV
821	bool "Provisioning debug"
822	help
823	  Use this option to enable Provisioning debug logs for the
824	  Bluetooth mesh functionality.
825
826config BT_MESH_DEBUG_PROVISIONER
827	bool "Provisioner debug"
828	help
829	  Use this option to enable Provisioner debug logs for the
830	  Bluetooth mesh functionality.
831
832config BT_MESH_DEBUG_ACCESS
833	bool "Access layer debug"
834	help
835	  Use this option to enable Access layer and device composition
836	  related debug logs for Bluetooth mesh.
837
838config BT_MESH_DEBUG_MODEL
839	bool "Foundation model debug"
840	help
841	  Use this option to enable debug logs for the Foundation
842	  Models.
843
844config BT_MESH_DEBUG_ADV
845	bool "Advertising debug"
846	help
847	  Use this option to enable advertising debug logs for
848	  the Bluetooth mesh functionality.
849
850config BT_MESH_DEBUG_LOW_POWER
851	bool "Low Power debug"
852	help
853	  Use this option to enable Low Power debug logs for the
854	  Bluetooth mesh functionality.
855
856config BT_MESH_DEBUG_FRIEND
857	bool "Friend debug"
858	help
859	  Use this option to enable Friend debug logs for the
860	  Bluetooth mesh functionality.
861
862config BT_MESH_DEBUG_PROXY
863	bool "Proxy debug"
864	depends on BT_MESH_GATT
865	help
866	  Use this option to enable Proxy protocol debug logs.
867
868config BT_MESH_DEBUG_SETTINGS
869	bool "Persistent settings debug"
870	depends on BT_SETTINGS
871	help
872	  Use this option to enable persistent settings debug logs.
873
874config BT_MESH_DEBUG_CDB
875	bool "Configuration database debug"
876	depends on BT_MESH_CDB
877	help
878	  Use this option to enable configuration database debug logs.
879
880config BT_MESH_DEBUG_CFG
881	bool "Configuration debug"
882	help
883	  Use this option to enable node configuration debug logs for the
884	  Bluetooth mesh functionality.
885
886endif # BT_MESH_DEBUG
887
888endif # BT_MESH
889