conf.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Freie Universität Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
21 #ifndef NET_GNRC_IPV6_NIB_CONF_H
22 #define NET_GNRC_IPV6_NIB_CONF_H
23 
24 #include "modules.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /* Apply configurations only if not using Kconfig for this module */
31 #if !IS_ACTIVE(CONFIG_KCONFIG_MODULE_GNRC_IPV6_NIB) || defined(DOXYGEN)
32 
33 /* some pseudo-module based configuration, doc: see below */
34 #ifdef MODULE_GNRC_IPV6_NIB_6LBR
35 #ifndef CONFIG_GNRC_IPV6_NIB_6LBR
36 #define CONFIG_GNRC_IPV6_NIB_6LBR 1
37 #endif
38 #ifndef CONFIG_GNRC_IPV6_NIB_NUMOF
39 #define CONFIG_GNRC_IPV6_NIB_NUMOF (16)
40 #endif
41 #endif
42 
43 #ifdef MODULE_GNRC_IPV6_NIB_6LR
44 #ifndef CONFIG_GNRC_IPV6_NIB_6LR
45 #define CONFIG_GNRC_IPV6_NIB_6LR 1
46 #endif
47 #endif
48 
49 #ifdef MODULE_GNRC_IPV6_NIB_6LN
50 #ifndef CONFIG_GNRC_IPV6_NIB_6LN
51 #define CONFIG_GNRC_IPV6_NIB_6LN 1
52 #endif
53 
54 /* We are only a 6lo node with no 'classic' IPv6 interface */
55 #ifndef MODULE_GNRC_IPV6_CLASSIC
56 #ifndef CONFIG_GNRC_IPV6_NIB_QUEUE_PKT
57 #define CONFIG_GNRC_IPV6_NIB_QUEUE_PKT 0
58 #endif
59 #ifndef CONFIG_GNRC_IPV6_NIB_SLAAC
60 #define CONFIG_GNRC_IPV6_NIB_SLAAC 0
61 #endif
62 #if !CONFIG_GNRC_IPV6_NIB_6LR
63 # ifndef CONFIG_GNRC_IPV6_NIB_ARSM
64 # define CONFIG_GNRC_IPV6_NIB_ARSM 0
65 # endif
66 # ifndef CONFIG_GNRC_IPV6_NIB_NUMOF
67 /* only needs to store default router */
68 # define CONFIG_GNRC_IPV6_NIB_NUMOF (1)
69 # endif
70 #endif
71 #endif
72 #endif
73 
74 #ifdef MODULE_GNRC_IPV6_NIB_ROUTER
75 #define CONFIG_GNRC_IPV6_NIB_ROUTER 1
76 #endif
77 
78 #ifdef MODULE_GNRC_IPV6_NIB_DNS
79 #define CONFIG_GNRC_IPV6_NIB_DNS 1
80 #endif
81 
90 #ifndef CONFIG_GNRC_IPV6_NIB_6LBR
91 #define CONFIG_GNRC_IPV6_NIB_6LBR 0
92 #endif
93 
97 #ifndef CONFIG_GNRC_IPV6_NIB_6LR
98 #if CONFIG_GNRC_IPV6_NIB_6LBR
99 #define CONFIG_GNRC_IPV6_NIB_6LR 1
100 #else
101 #define CONFIG_GNRC_IPV6_NIB_6LR 0
102 #endif
103 #endif
104 
108 #ifndef CONFIG_GNRC_IPV6_NIB_6LN
109 #if CONFIG_GNRC_IPV6_NIB_6LR
110 #define CONFIG_GNRC_IPV6_NIB_6LN 1
111 #else
112 #define CONFIG_GNRC_IPV6_NIB_6LN 0
113 #endif
114 #endif
115 
119 #ifndef CONFIG_GNRC_IPV6_NIB_ROUTER
120 #if CONFIG_GNRC_IPV6_NIB_6LR
121 #define CONFIG_GNRC_IPV6_NIB_ROUTER 1
122 #else
123 #define CONFIG_GNRC_IPV6_NIB_ROUTER 0
124 #endif
125 #endif
126 
130 #ifndef CONFIG_GNRC_IPV6_NIB_ADV_ROUTER
131 #define CONFIG_GNRC_IPV6_NIB_ADV_ROUTER 0
132 #endif
133 
146 #ifndef CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_RA
147 #define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_RA 0
148 #endif
149 
157 #ifndef CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA
158 #if IS_USED(MODULE_GNRC_IPV6_AUTO_SUBNETS)
159 #define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA 1
160 #else
161 #define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA 0
162 #endif
163 #endif
164 
168 #ifndef CONFIG_GNRC_IPV6_NIB_ARSM
169 #define CONFIG_GNRC_IPV6_NIB_ARSM 1
170 #endif
171 
175 #ifndef CONFIG_GNRC_IPV6_NIB_QUEUE_PKT
176 #define CONFIG_GNRC_IPV6_NIB_QUEUE_PKT 1
177 #endif
178 
185 #ifndef CONFIG_GNRC_IPV6_NIB_SLAAC
186 #define CONFIG_GNRC_IPV6_NIB_SLAAC 1
187 #endif
188 
192 #ifndef CONFIG_GNRC_IPV6_NIB_REDIRECT
193 #define CONFIG_GNRC_IPV6_NIB_REDIRECT 0
194 #endif
195 
199 #ifndef CONFIG_GNRC_IPV6_NIB_DC
200 #if CONFIG_GNRC_IPV6_NIB_REDIRECT
201 #define CONFIG_GNRC_IPV6_NIB_DC 1
202 #else
203 #define CONFIG_GNRC_IPV6_NIB_DC 0
204 #endif
205 #endif
206 
212 #ifndef CONFIG_GNRC_IPV6_NIB_DNS
213 #define CONFIG_GNRC_IPV6_NIB_DNS 0
214 #endif
215 
221 #ifndef CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C
222 #if CONFIG_GNRC_IPV6_NIB_6LR
223 #define CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C 1
224 #else
225 #define CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C 0
226 #endif
227 #endif
228 
234 #ifndef CONFIG_GNRC_IPV6_NIB_MULTIHOP_DAD
235 #define CONFIG_GNRC_IPV6_NIB_MULTIHOP_DAD 0
236 #endif
244 #ifndef CONFIG_GNRC_IPV6_NIB_REACH_TIME_RESET
245 #define CONFIG_GNRC_IPV6_NIB_REACH_TIME_RESET (7200000U)
246 #endif
247 
253 #ifndef CONFIG_GNRC_IPV6_NIB_NO_RTR_SOL
254 #define CONFIG_GNRC_IPV6_NIB_NO_RTR_SOL 0
255 #endif
256 
260 #ifndef CONFIG_GNRC_IPV6_NIB_L2ADDR_MAX_LEN
261 #define CONFIG_GNRC_IPV6_NIB_L2ADDR_MAX_LEN (8U)
262 #endif
263 
270 #ifndef CONFIG_GNRC_IPV6_NIB_DEFAULT_ROUTER_NUMOF
271 #define CONFIG_GNRC_IPV6_NIB_DEFAULT_ROUTER_NUMOF (1)
272 #endif
273 
280 #ifndef CONFIG_GNRC_IPV6_NIB_NUMOF
281 #define CONFIG_GNRC_IPV6_NIB_NUMOF (4)
282 #endif
283 
292 #ifndef CONFIG_GNRC_IPV6_NIB_NBR_QUEUE_CAP
293 #define CONFIG_GNRC_IPV6_NIB_NBR_QUEUE_CAP (16)
294 #endif
295 
302 #ifndef CONFIG_GNRC_IPV6_NIB_OFFL_NUMOF
303 #define CONFIG_GNRC_IPV6_NIB_OFFL_NUMOF (8)
304 #endif
305 
306 #if CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C || defined(DOXYGEN)
310 #ifndef CONFIG_GNRC_IPV6_NIB_ABR_NUMOF
311 #define CONFIG_GNRC_IPV6_NIB_ABR_NUMOF (1)
312 #endif
313 #endif
314 
315 #endif /* !CONFIG_KCONFIG_MODULE_GNRC_IPV6_NIB || DOXYGEN */
316 
317 #ifdef __cplusplus
318 }
319 #endif
320 
321 #endif /* NET_GNRC_IPV6_NIB_CONF_H */
Common macros and compiler attributes/pragmas configuration.