nRF5 SDK for Mesh v4.1.0
nrf_mesh_config_core.h
1 /* Copyright (c) 2010 - 2020, Nordic Semiconductor ASA
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification,
5  * are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * 2. Redistributions in binary form, except as embedded into a Nordic
11  * Semiconductor ASA integrated circuit in a product or a software update for
12  * such product, must reproduce the above copyright notice, this list of
13  * conditions and the following disclaimer in the documentation and/or other
14  * materials provided with the distribution.
15  *
16  * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
17  * contributors may be used to endorse or promote products derived from this
18  * software without specific prior written permission.
19  *
20  * 4. This software, with or without modification, must only be used with a
21  * Nordic Semiconductor ASA integrated circuit.
22  *
23  * 5. Any software provided in binary form under this license must not be reverse
24  * engineered, decompiled, modified and/or disassembled.
25  *
26  * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
27  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28  * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
29  * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
30  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
32  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
35  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef NRF_MESH_CONFIG_CORE_H__
39 #define NRF_MESH_CONFIG_CORE_H__
40 
41 #include "nrf_mesh_defines.h"
42 #ifdef CONFIG_APP_IN_CORE
43 #include "nrf_mesh_config_app.h"
44 #endif
45 
62 #ifndef PERSISTENT_STORAGE
63 #define PERSISTENT_STORAGE 1
64 #endif
65 
69 #ifndef NRF_MESH_UECC_ENABLE
70 #define NRF_MESH_UECC_ENABLE 1
71 #endif
72 
76 #define FLASH_MANAGER_BACKEND
77 
94 #ifndef AES_USE_HARDWARE
95 #define AES_USE_HARDWARE 1
96 #endif
97 
106 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_ORIGINATOR
107 #define CORE_TX_QUEUE_BUFFER_SIZE_ORIGINATOR 256
108 #endif
109 
111 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_RELAY
112 #define CORE_TX_QUEUE_BUFFER_SIZE_RELAY 128
113 #endif
114 
116 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_ORIGINATOR
117 #define CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_ORIGINATOR 4096
118 #endif
119 
121 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_RELAY
122 #define CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_RELAY 2048
123 #endif
124 
126 #ifndef CORE_TX_INSTABURST_CHANNELS
127 #define CORE_TX_INSTABURST_CHANNELS \
128  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, \
129  19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36}
130 #endif
131 
133 #ifndef CORE_TX_REPEAT_ORIGINATOR_DEFAULT
134 #define CORE_TX_REPEAT_ORIGINATOR_DEFAULT 1
135 #endif
136 
138 #ifndef CORE_TX_REPEAT_RELAY_DEFAULT
139 #define CORE_TX_REPEAT_RELAY_DEFAULT 1
140 #endif
141 
143 #ifndef MESH_FEATURE_RELAY_ENABLED
144 #define MESH_FEATURE_RELAY_ENABLED (1)
145 #endif
146 
155 #ifndef CCM_DEBUG_MODE_ENABLED
156 #define CCM_DEBUG_MODE_ENABLED 0
157 #endif
158 
170 #ifndef FIFO_STATS
171 #define FIFO_STATS 0
172 #endif
173 
186 #ifndef INTERNAL_EVT_ENABLE
187 #define INTERNAL_EVT_ENABLE 0
188 #endif
189 
191 #ifndef INTERNAL_EVENT_BUFFER_SIZE
192 #define INTERNAL_EVENT_BUFFER_SIZE 32
193 #endif
194 
203 #ifndef NRF_MESH_LOG_ENABLE
204 #define NRF_MESH_LOG_ENABLE 1
205 #endif
206 
208 #ifndef LOG_LEVEL_DEFAULT
209 #define LOG_LEVEL_DEFAULT LOG_LEVEL_WARN
210 #endif
211 
213 #ifndef LOG_MSK_DEFAULT
214 #define LOG_MSK_DEFAULT LOG_GROUP_STACK
215 #endif
216 
218 #ifndef LOG_ENABLE_RTT
219 #define LOG_ENABLE_RTT 1
220 #endif
221 
223 #ifndef LOG_CALLBACK_DEFAULT
224 #if defined(NRF51) || defined(NRF52_SERIES)
225  #define LOG_CALLBACK_DEFAULT log_callback_rtt
226 #else
227  #define LOG_CALLBACK_DEFAULT log_callback_stdout
228 #endif
229 #endif
230 
239 #ifndef MSG_CACHE_ENTRY_COUNT
240 #define MSG_CACHE_ENTRY_COUNT 32
241 #endif
242 
254 #ifndef NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD
255 #define NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD (NETWORK_SEQNUM_MAX / 2)
256 #endif
257 
262 #ifndef NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD
263 #define NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD (NETWORK_SEQNUM_MAX - TRANSPORT_SAR_SEQNUM_DIFF_MAX)
264 #endif
265 
266 /* Sanity check for NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD */
267 #if NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD > NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD
268 #error "The network sequence number start threshold must be lower than the end threshold."
269 #endif
270 #if NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD > (NETWORK_SEQNUM_MAX - TRANSPORT_SAR_SEQNUM_DIFF_MAX)
271 #error "The network sequence number IV update threshold must be low enough to fit a full SAR session."
272 #endif
273 
280 #ifndef NETWORK_SEQNUM_FLASH_BLOCK_SIZE
281 #define NETWORK_SEQNUM_FLASH_BLOCK_SIZE 8192ul
282 #endif
283 
288 #ifndef NETWORK_SEQNUM_FLASH_BLOCK_THRESHOLD
289 #define NETWORK_SEQNUM_FLASH_BLOCK_THRESHOLD 64
290 #endif
291 
303 #ifndef TRANSPORT_SAR_SESSIONS_MAX
304 #define TRANSPORT_SAR_SESSIONS_MAX (4)
305 #endif
306 
307 /* Number of canceled SAR RX sessions to be cached. Must be power of two. */
308 #ifndef TRANSPORT_CANCELED_SAR_RX_SESSIONS_CACHE_LEN
309 #define TRANSPORT_CANCELED_SAR_RX_SESSIONS_CACHE_LEN (8)
310 #endif
311 
313 #ifndef TRANSPORT_SAR_SEGACK_TTL_DEFAULT
314 #define TRANSPORT_SAR_SEGACK_TTL_DEFAULT (8)
315 #endif
316 
335 #ifndef PACKET_MGR_DEBUG_MODE
336 #define PACKET_MGR_DEBUG_MODE 0
337 #endif
338 
339 
345 #ifndef PACKET_MGR_MEMORY_POOL_SIZE
346 #define PACKET_MGR_MEMORY_POOL_SIZE 4096
347 #endif
348 
358 #ifndef PACKET_MGR_BLAME_MODE
359 #define PACKET_MGR_BLAME_MODE 0
360 #endif
361 
376 #ifndef PACKET_BUFFER_DEBUG_MODE
377 #define PACKET_BUFFER_DEBUG_MODE 0
378 #endif
379 
401 #ifndef REPLAY_CACHE_ENTRIES
402 #define REPLAY_CACHE_ENTRIES 40
403 #endif
404 
413 #ifndef FLASH_MANAGER_PAGE_COUNT_MAX
414 #define FLASH_MANAGER_PAGE_COUNT_MAX 255
415 #endif
416 
418 #ifndef FLASH_MANAGER_POOL_SIZE
419 #define FLASH_MANAGER_POOL_SIZE 256
420 #endif
421 
423 #ifndef FLASH_MANAGER_ENTRY_MAX_SIZE
424 #define FLASH_MANAGER_ENTRY_MAX_SIZE 128
425 #endif
426 
430 #ifndef FLASH_MANAGER_RECOVERY_PAGE_OFFSET_PAGES
431 #define FLASH_MANAGER_RECOVERY_PAGE_OFFSET_PAGES 0
432 #endif
433 
442 #ifndef MESH_FEATURE_GATT_PROXY_ENABLED
443 #define MESH_FEATURE_GATT_PROXY_ENABLED 0
444 #endif
445 
447 #ifndef MESH_GATT_PROXY_FILTER_ADDR_COUNT
448 #define MESH_GATT_PROXY_FILTER_ADDR_COUNT 32
449 #endif
450 
454 #ifndef MESH_GATT_PROXY_NETWORK_ID_ADV_INT_MS
455 #define MESH_GATT_PROXY_NETWORK_ID_ADV_INT_MS 2000
456 #endif
457 
465 #ifndef MESH_GATT_PROXY_NODE_IDENTITY_ADV_INT_MS
466 #define MESH_GATT_PROXY_NODE_IDENTITY_ADV_INT_MS 200
467 #endif
468 
475 #ifndef MESH_GATT_PROXY_NODE_IDENTITY_DURATION_MS
476 #define MESH_GATT_PROXY_NODE_IDENTITY_DURATION_MS 60000
477 #endif
478 
480 #ifndef MESH_GATT_PROXY_BEACON_CACHE_SIZE
481 #define MESH_GATT_PROXY_BEACON_CACHE_SIZE 8
482 #endif
483 
498 #ifndef ACCESS_MODEL_PUBLISH_PERIOD_RESTORE
499 #define ACCESS_MODEL_PUBLISH_PERIOD_RESTORE 0
500 #endif
501 
502 
511 #ifndef FSM_DEBUG
512 #define FSM_DEBUG (0)
513 #endif
514 
523 #ifndef MESH_FEATURE_LPN_ENABLED
524 #define MESH_FEATURE_LPN_ENABLED 0
525 #endif
526 
535 #ifndef MESH_FEATURE_LPN_ACT_AS_REGULAR_NODE_OUT_OF_FRIENDSHIP
536 #define MESH_FEATURE_LPN_ACT_AS_REGULAR_NODE_OUT_OF_FRIENDSHIP 0
537 #endif
538 
540 #ifndef MESH_FEATURE_FRIEND_ENABLED
541 #define MESH_FEATURE_FRIEND_ENABLED 0
542 #endif
543 
545 #ifndef MESH_FRIEND_FRIENDSHIP_COUNT
546 #define MESH_FRIEND_FRIENDSHIP_COUNT 2
547 #endif
548 
550 #ifndef MESH_FRIEND_SUBLIST_SIZE
551 #define MESH_FRIEND_SUBLIST_SIZE 16
552 #endif
553 
558 #ifndef MESH_FRIEND_QUEUE_SIZE
559 #define MESH_FRIEND_QUEUE_SIZE 35
560 #endif
561 
566 #endif

Documentation feedback | Developer Zone | Subscribe | Updated