nRF5 SDK for Mesh v1.0.1
nrf_mesh_config_core.h
1 /* Copyright (c) 2010 - 2017, 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 
58 #ifndef PERSISTENT_STORAGE
59 #define PERSISTENT_STORAGE 1
60 #endif
61 
65 #ifndef NRF_MESH_UECC_ENABLE
66 #define NRF_MESH_UECC_ENABLE 1
67 #endif
68 
85 #ifndef AES_USE_HARDWARE
86 #define AES_USE_HARDWARE 1
87 #endif
88 
97 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_ORIGINATOR
98 #define CORE_TX_QUEUE_BUFFER_SIZE_ORIGINATOR 256
99 #endif
100 
102 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_RELAY
103 #define CORE_TX_QUEUE_BUFFER_SIZE_RELAY 128
104 #endif
105 
107 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_ORIGINATOR
108 #define CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_ORIGINATOR 4096
109 #endif
110 
112 #ifndef CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_RELAY
113 #define CORE_TX_QUEUE_BUFFER_SIZE_INSTABURST_RELAY 2048
114 #endif
115 
117 #ifndef CORE_TX_INSTABURST_CHANNELS
118 #define CORE_TX_INSTABURST_CHANNELS \
119  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, \
120  19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36}
121 #endif
122 
124 #ifndef CORE_TX_REPEAT_ORIGINATOR_DEFAULT
125 #define CORE_TX_REPEAT_ORIGINATOR_DEFAULT 1
126 #endif
127 
129 #ifndef CORE_TX_REPEAT_RELAY_DEFAULT
130 #define CORE_TX_REPEAT_RELAY_DEFAULT 1
131 #endif
132 
141 #ifndef CCM_DEBUG_MODE_ENABLED
142 #define CCM_DEBUG_MODE_ENABLED 0
143 #endif
144 
156 #ifndef FIFO_STATS
157 #define FIFO_STATS 0
158 #endif
159 
172 #ifndef INTERNAL_EVT_ENABLE
173 #define INTERNAL_EVT_ENABLE 1
174 #endif
175 
177 #ifndef INTERNAL_EVENT_BUFFER_SIZE
178 #define INTERNAL_EVENT_BUFFER_SIZE 32
179 #endif
180 
189 #ifndef NRF_MESH_LOG_ENABLE
190 #define NRF_MESH_LOG_ENABLE 1
191 #endif
192 
194 #ifndef LOG_LEVEL_DEFAULT
195 #define LOG_LEVEL_DEFAULT LOG_LEVEL_WARN
196 #endif
197 
199 #ifndef LOG_MSK_DEFAULT
200 #define LOG_MSK_DEFAULT LOG_GROUP_STACK
201 #endif
202 
204 #ifndef LOG_ENABLE_RTT
205 #define LOG_ENABLE_RTT 1
206 #endif
207 
209 #ifndef LOG_CALLBACK_DEFAULT
210 #if defined(NRF51) || defined(NRF52_SERIES)
211  #define LOG_CALLBACK_DEFAULT log_callback_rtt
212 #else
213  #define LOG_CALLBACK_DEFAULT log_callback_stdout
214 #endif
215 #endif
216 
225 #ifndef MSG_CACHE_ENTRY_COUNT
226 #define MSG_CACHE_ENTRY_COUNT 32
227 #endif
228 
240 #ifndef NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD
241 #define NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD (NETWORK_SEQNUM_MAX / 2)
242 #endif
243 
248 #ifndef NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD
249 #define NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD (NETWORK_SEQNUM_MAX - TRANSPORT_SAR_SEQNUM_DIFF_MAX)
250 #endif
251 
252 /* Sanity check for NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD */
253 #if NETWORK_SEQNUM_IV_UPDATE_START_THRESHOLD > NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD
254 #error "The network sequence number start threshold must be lower than the end threshold."
255 #endif
256 #if NETWORK_SEQNUM_IV_UPDATE_END_THRESHOLD > (NETWORK_SEQNUM_MAX - TRANSPORT_SAR_SEQNUM_DIFF_MAX)
257 #error "The network sequence number IV update threshold must be low enough to fit a full SAR session."
258 #endif
259 
266 #ifndef NETWORK_SEQNUM_FLASH_BLOCK_SIZE
267 #define NETWORK_SEQNUM_FLASH_BLOCK_SIZE 8192
268 #endif
269 
274 #ifndef NETWORK_SEQNUM_FLASH_BLOCK_THRESHOLD
275 #define NETWORK_SEQNUM_FLASH_BLOCK_THRESHOLD 64
276 #endif
277 
281 #ifndef NET_FLASH_PAGE_COUNT
282 #define NET_FLASH_PAGE_COUNT 1
283 #endif
284 
292 #ifndef TRANSPORT_SAR_SESSIONS_MAX
293 #define TRANSPORT_SAR_SESSIONS_MAX (4)
294 #endif
295 
297 #ifndef TRANSPORT_SAR_RX_CACHE_LEN
298 #define TRANSPORT_SAR_RX_CACHE_LEN (8)
299 #endif
300 
302 #ifndef TRANSPORT_SAR_SEGACK_TTL_DEFAULT
303 #define TRANSPORT_SAR_SEGACK_TTL_DEFAULT (8)
304 #endif
305 
319 #ifndef PACKET_MGR_DEBUG_MODE
320 #define PACKET_MGR_DEBUG_MODE 0
321 #endif
322 
323 
329 #ifndef PACKET_MGR_MEMORY_POOL_SIZE
330 #define PACKET_MGR_MEMORY_POOL_SIZE 4096
331 #endif
332 
342 #ifndef PACKET_MGR_BLAME_MODE
343 #define PACKET_MGR_BLAME_MODE 0
344 #endif
345 
360 #ifndef PACKET_BUFFER_DEBUG_MODE
361 #define PACKET_BUFFER_DEBUG_MODE 0
362 #endif
363 
377 #ifndef REPLAY_CACHE_ENTRIES
378 #define REPLAY_CACHE_ENTRIES 32
379 #endif
380 
389 #ifndef FLASH_MANAGER_PAGE_COUNT_MAX
390 #define FLASH_MANAGER_PAGE_COUNT_MAX 255
391 #endif
392 
394 #ifndef FLASH_MANAGER_POOL_SIZE
395 #define FLASH_MANAGER_POOL_SIZE 256
396 #endif
397 
399 #ifndef FLASH_MANAGER_ENTRY_MAX_SIZE
400 #define FLASH_MANAGER_ENTRY_MAX_SIZE 128
401 #endif
402 
407 #endif

Documentation feedback | Developer Zone | Subscribe | Updated