ipv6.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for
6  * more details.
7  */
8 
98 #ifndef NET_GNRC_IPV6_H
99 #define NET_GNRC_IPV6_H
100 
101 #include "sched.h"
102 #include "thread.h"
103 
104 #include "net/ipv6.h"
105 #include "net/gnrc/ipv6/ext.h"
106 #include "net/gnrc/ipv6/hdr.h"
107 #include "net/gnrc/ipv6/nib.h"
108 
109 #ifdef MODULE_FIB
110 #include "net/fib.h"
111 #endif
112 
113 #ifdef __cplusplus
114 extern "C" {
115 #endif
116 
130 #ifndef GNRC_IPV6_STACK_SIZE
131 #define GNRC_IPV6_STACK_SIZE ((THREAD_STACKSIZE_DEFAULT) - 64)
132 #endif
133 
137 #ifndef GNRC_IPV6_PRIO
138 #define GNRC_IPV6_PRIO (THREAD_PRIORITY_MAIN - 3)
139 #endif
140 
149 #ifndef CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP
150 #define CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP (3U)
151 #endif
152 
153 #ifdef DOXYGEN
170 #define CONFIG_GNRC_IPV6_STATIC_LLADDR
171 #endif /* DOXYGEN */
184 #ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED
185 #define CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED 1
186 #endif
187 
206 #ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK
207 #define CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK 0ULL
208 #endif
209 
213 #ifndef GNRC_IPV6_MSG_QUEUE_SIZE
214 #define GNRC_IPV6_MSG_QUEUE_SIZE (1 << CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP)
215 #endif
216 
226 
227 #ifdef MODULE_FIB
228 
232 #ifndef GNRC_IPV6_FIB_TABLE_SIZE
233 # ifdef MODULE_GNRC_RPL
234 # define GNRC_IPV6_FIB_TABLE_SIZE (20)
235 # else
236 # define GNRC_IPV6_FIB_TABLE_SIZE (5)
237 # endif
238 #endif
239 
245 extern fib_table_t gnrc_ipv6_fib_table;
246 #endif
247 
257 
272 
273 #ifdef __cplusplus
274 }
275 #endif
276 
277 #endif /* NET_GNRC_IPV6_H */
Types and functions for FIB.
Definititions for IPv6 extension headers.
int16_t kernel_pid_t
Unique process identifier.
Definition: sched.h:139
kernel_pid_t gnrc_ipv6_init(void)
Initialization of the IPv6 thread.
ipv6_hdr_t * gnrc_ipv6_get_header(gnrc_pktsnip_t *pkt)
Get the IPv6 header from a given list of gnrc_pktsnip_t.
kernel_pid_t gnrc_ipv6_pid
The PID to the IPv6 thread.
IPv6 include gathering header.
IPv6 header.
NIB definitions.
Scheduler API definition.
Meta information of a FIB table.
Definition: table.h:108
Type to represent parts (either headers or payload) of a packet, called snips.
Definition: pkt.h:108
Data type to represent an IPv6 packet header.
Definition: hdr.h:66