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 
20 #ifndef NET_GNRC_NETIF_CONF_H
21 #define NET_GNRC_NETIF_CONF_H
22 
23 #include "modules.h"
24 
25 #include "net/dhcpv6/client.h"
26 #include "net/ieee802154.h"
27 #include "net/ethernet/hdr.h"
28 #include "net/gnrc/ipv6/nib/conf.h"
29 #include "thread.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
38 #ifndef GNRC_NETIF_PRIO
39 #define GNRC_NETIF_PRIO (THREAD_PRIORITY_MAIN - 5)
40 #endif
41 
54 #ifndef CONFIG_GNRC_NETIF_MSG_QUEUE_SIZE_EXP
55 #define CONFIG_GNRC_NETIF_MSG_QUEUE_SIZE_EXP (4U)
56 #endif
57 
65 #ifndef CONFIG_GNRC_NETIF_PKTQ_POOL_SIZE
66 #define CONFIG_GNRC_NETIF_PKTQ_POOL_SIZE (16U)
67 #endif
68 
78 #ifndef CONFIG_GNRC_NETIF_PKTQ_TIMER_US
79 #define CONFIG_GNRC_NETIF_PKTQ_TIMER_US (5000U)
80 #endif
81 
87 #ifdef MODULE_GNRC_RPL
88 #define GNRC_NETIF_RPL_ADDR (1)
89 #else
90 #define GNRC_NETIF_RPL_ADDR (0)
91 #endif
92 
99 #if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ROUTER)
100 #define GNRC_NETIF_IPV6_RTR_ADDR (1)
101 #else
102 #define GNRC_NETIF_IPV6_RTR_ADDR (0)
103 #endif
104 
115 #ifndef CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF
116 #define CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF (2 + \
117  DHCPV6_CLIENT_ADDRS_NUMOF)
118 #endif
119 
126 #ifndef GNRC_NETIF_IPV6_GROUPS_NUMOF
127 #define GNRC_NETIF_IPV6_GROUPS_NUMOF (CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF + \
128  GNRC_NETIF_RPL_ADDR + \
129  GNRC_NETIF_IPV6_RTR_ADDR + 1)
130 #endif
131 
148 #ifndef GNRC_NETIF_L2ADDR_MAXLEN
149 #if defined(MODULE_NETDEV_IEEE802154) || defined(MODULE_XBEE) || defined(MODULE_SLIPDEV_L2ADDR)
150 #define GNRC_NETIF_L2ADDR_MAXLEN (IEEE802154_LONG_ADDRESS_LEN)
151 #elif MODULE_NETDEV_ETH
152 #define GNRC_NETIF_L2ADDR_MAXLEN (ETHERNET_ADDR_LEN)
153 #elif MODULE_NRF24L01P
154 #define GNRC_NETIF_L2ADDR_MAXLEN (5U)
155 #elif MODULE_CC110X
156 #define GNRC_NETIF_L2ADDR_MAXLEN (1U)
157 #else
158 #define GNRC_NETIF_L2ADDR_MAXLEN (CONFIG_GNRC_IPV6_NIB_L2ADDR_MAX_LEN)
159 #endif
160 #endif
161 
162 #ifndef CONFIG_GNRC_NETIF_DEFAULT_HL
163 #define CONFIG_GNRC_NETIF_DEFAULT_HL (64U)
164 #endif
165 
173 #ifndef CONFIG_GNRC_NETIF_MIN_WAIT_AFTER_SEND_US
174 #define CONFIG_GNRC_NETIF_MIN_WAIT_AFTER_SEND_US (0U)
175 #endif
181 #ifndef GNRC_NETIF_MSG_QUEUE_SIZE
182 #define GNRC_NETIF_MSG_QUEUE_SIZE (1 << CONFIG_GNRC_NETIF_MSG_QUEUE_SIZE_EXP)
183 #endif
184 
193 #ifndef CONFIG_GNRC_NETIF_NONSTANDARD_6LO_MTU
194 #define CONFIG_GNRC_NETIF_NONSTANDARD_6LO_MTU 0
195 #endif
196 
203 #if !IS_ACTIVE(CONFIG_KCONFIG_USEMODULE_GNRC_NETIF)
204 #ifndef CONFIG_GNRC_NETIF_IPV6_BR_AUTO_6CTX
205 #define CONFIG_GNRC_NETIF_IPV6_BR_AUTO_6CTX 1
206 #endif
207 #endif
208 
209 #ifdef __cplusplus
210 }
211 #endif
212 
213 #endif /* NET_GNRC_NETIF_CONF_H */
DHCPv6 client definitions.
Configuration macro definitions for neighbor information base.
Common macros and compiler attributes/pragmas configuration.
Ethernet header definitions.
IEEE 802.15.4 header definitions.