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 # ifndef MODULE_GNRC_IPV6_CLASSIC
54  /* We are only a 6lo node with no 'classic' IPv6 interface */
55 # ifndef CONFIG_GNRC_IPV6_NIB_QUEUE_PKT
56 # define CONFIG_GNRC_IPV6_NIB_QUEUE_PKT 0
57 # endif
58 # ifndef CONFIG_GNRC_IPV6_NIB_SLAAC
59 # define CONFIG_GNRC_IPV6_NIB_SLAAC 0
60 # endif
61 # if !CONFIG_GNRC_IPV6_NIB_6LR
62 # ifndef CONFIG_GNRC_IPV6_NIB_ARSM
63 # define CONFIG_GNRC_IPV6_NIB_ARSM 0
64 # endif
65 # ifndef CONFIG_GNRC_IPV6_NIB_NUMOF
66  /* only needs to store default router */
67 # define CONFIG_GNRC_IPV6_NIB_NUMOF (1)
68 # endif
69 # endif
70 # endif
71 #endif
72 
73 #ifdef MODULE_GNRC_IPV6_NIB_ROUTER
74 # define CONFIG_GNRC_IPV6_NIB_ROUTER 1
75 #endif
76 
77 #ifdef MODULE_GNRC_IPV6_NIB_DNS
78 # define CONFIG_GNRC_IPV6_NIB_DNS 1
79 #endif
80 
89 #ifndef CONFIG_GNRC_IPV6_NIB_6LBR
90 # define CONFIG_GNRC_IPV6_NIB_6LBR 0
91 #endif
92 
96 #ifndef CONFIG_GNRC_IPV6_NIB_6LR
97 # if CONFIG_GNRC_IPV6_NIB_6LBR
98 # define CONFIG_GNRC_IPV6_NIB_6LR 1
99 # else
100 # define CONFIG_GNRC_IPV6_NIB_6LR 0
101 # endif
102 #endif
103 
107 #ifndef CONFIG_GNRC_IPV6_NIB_6LN
108 # if CONFIG_GNRC_IPV6_NIB_6LR
109 # define CONFIG_GNRC_IPV6_NIB_6LN 1
110 # else
111 # define CONFIG_GNRC_IPV6_NIB_6LN 0
112 # endif
113 #endif
114 
118 #ifndef CONFIG_GNRC_IPV6_NIB_ROUTER
119 # if CONFIG_GNRC_IPV6_NIB_6LR
120 # define CONFIG_GNRC_IPV6_NIB_ROUTER 1
121 # else
122 # define CONFIG_GNRC_IPV6_NIB_ROUTER 0
123 # endif
124 #endif
125 
129 #ifndef CONFIG_GNRC_IPV6_NIB_ADV_ROUTER
130 # define CONFIG_GNRC_IPV6_NIB_ADV_ROUTER 0
131 #endif
132 
136 #ifndef CONFIG_GNRC_IPV6_NIB_SOL_ROUTER
137 # define CONFIG_GNRC_IPV6_NIB_SOL_ROUTER 1
138 #endif
139 
152 #ifndef CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_RA
153 # define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_RA 0
154 #endif
155 
163 #ifndef CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA
164 # if IS_USED(MODULE_GNRC_IPV6_AUTO_SUBNETS)
165 # define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA 1
166 # else
167 # define CONFIG_GNRC_IPV6_NIB_ADD_RIO_IN_LAST_RA 0
168 # endif
169 #endif
170 
174 #ifndef CONFIG_GNRC_IPV6_NIB_ARSM
175 # define CONFIG_GNRC_IPV6_NIB_ARSM 1
176 #endif
177 
181 #ifndef CONFIG_GNRC_IPV6_NIB_QUEUE_PKT
182 # define CONFIG_GNRC_IPV6_NIB_QUEUE_PKT 1
183 #endif
184 
191 #ifndef CONFIG_GNRC_IPV6_NIB_SLAAC
192 # define CONFIG_GNRC_IPV6_NIB_SLAAC 1
193 #endif
194 
198 #ifndef CONFIG_GNRC_IPV6_NIB_REDIRECT
199 # define CONFIG_GNRC_IPV6_NIB_REDIRECT 0
200 #endif
201 
205 #ifndef CONFIG_GNRC_IPV6_NIB_DC
206 # if CONFIG_GNRC_IPV6_NIB_REDIRECT
207 # define CONFIG_GNRC_IPV6_NIB_DC 1
208 # else
209 # define CONFIG_GNRC_IPV6_NIB_DC 0
210 # endif
211 #endif
212 
218 #ifndef CONFIG_GNRC_IPV6_NIB_DNS
219 # define CONFIG_GNRC_IPV6_NIB_DNS 0
220 #endif
221 
227 #ifndef CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C
228 # if CONFIG_GNRC_IPV6_NIB_6LR
229 # define CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C 1
230 # else
231 # define CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C 0
232 # endif
233 #endif
234 
240 #ifndef CONFIG_GNRC_IPV6_NIB_MULTIHOP_DAD
241 # define CONFIG_GNRC_IPV6_NIB_MULTIHOP_DAD 0
242 #endif
250 #ifndef CONFIG_GNRC_IPV6_NIB_REACH_TIME_RESET
251 # define CONFIG_GNRC_IPV6_NIB_REACH_TIME_RESET (7200000U)
252 #endif
253 
259 #ifndef CONFIG_GNRC_IPV6_NIB_NO_RTR_SOL
260 # define CONFIG_GNRC_IPV6_NIB_NO_RTR_SOL 0
261 #endif
262 
266 #ifndef CONFIG_GNRC_IPV6_NIB_L2ADDR_MAX_LEN
267 # define CONFIG_GNRC_IPV6_NIB_L2ADDR_MAX_LEN (8U)
268 #endif
269 
276 #ifndef CONFIG_GNRC_IPV6_NIB_DEFAULT_ROUTER_NUMOF
277 # define CONFIG_GNRC_IPV6_NIB_DEFAULT_ROUTER_NUMOF (1)
278 #endif
279 
286 #ifndef CONFIG_GNRC_IPV6_NIB_NUMOF
287 # define CONFIG_GNRC_IPV6_NIB_NUMOF (4)
288 #endif
289 
298 #ifndef CONFIG_GNRC_IPV6_NIB_NBR_QUEUE_CAP
299 # define CONFIG_GNRC_IPV6_NIB_NBR_QUEUE_CAP (16)
300 #endif
301 
308 #ifndef CONFIG_GNRC_IPV6_NIB_OFFL_NUMOF
309 # define CONFIG_GNRC_IPV6_NIB_OFFL_NUMOF (8)
310 #endif
311 
312 #if CONFIG_GNRC_IPV6_NIB_MULTIHOP_P6C || defined(DOXYGEN)
316 # ifndef CONFIG_GNRC_IPV6_NIB_ABR_NUMOF
317 # define CONFIG_GNRC_IPV6_NIB_ABR_NUMOF (1)
318 # endif
319 #endif
320 
321 #endif /* !CONFIG_KCONFIG_MODULE_GNRC_IPV6_NIB || DOXYGEN */
322 
323 #ifdef __cplusplus
324 }
325 #endif
326 
327 #endif /* NET_GNRC_IPV6_NIB_CONF_H */
Common macros and compiler attributes/pragmas configuration.