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 
99 #ifndef NET_GNRC_IPV6_H
100 #define NET_GNRC_IPV6_H
101 
102 #include "kernel_types.h"
103 #include "net/gnrc.h"
104 #include "thread.h"
105 
106 #include "net/ipv6.h"
107 #include "net/gnrc/ipv6/ext.h"
108 #include "net/gnrc/ipv6/hdr.h"
109 #include "net/gnrc/ipv6/nib.h"
110 
111 #ifdef MODULE_FIB
112 #include "net/fib.h"
113 #endif
114 
115 #ifdef __cplusplus
116 extern "C" {
117 #endif
118 
119 
129 #ifndef GNRC_IPV6_STACK_SIZE
130 #define GNRC_IPV6_STACK_SIZE (THREAD_STACKSIZE_DEFAULT)
131 #endif
132 
136 #ifndef GNRC_IPV6_PRIO
137 #define GNRC_IPV6_PRIO (THREAD_PRIORITY_MAIN - 3)
138 #endif
139 
148 #ifndef CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP
149 #define CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP (3U)
150 #endif
151 
152 #ifdef DOXYGEN
153 
168 #define GNRC_IPV6_STATIC_LLADDR
169 #endif /* DOXYGEN */
170 
175 #ifndef GNRC_IPV6_MSG_QUEUE_SIZE
176 #define GNRC_IPV6_MSG_QUEUE_SIZE (1 << CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP)
177 #endif
178 
188 
189 #ifdef MODULE_FIB
190 
194 #ifndef GNRC_IPV6_FIB_TABLE_SIZE
195 # ifdef MODULE_GNRC_RPL
196 # define GNRC_IPV6_FIB_TABLE_SIZE (20)
197 # else
198 # define GNRC_IPV6_FIB_TABLE_SIZE (5)
199 # endif
200 #endif
201 
207 extern fib_table_t gnrc_ipv6_fib_table;
208 #endif
209 
219 
234 
235 #ifdef __cplusplus
236 }
237 #endif
238 
239 #endif /* NET_GNRC_IPV6_H */
240 
Types used by the kernel.
Meta information of a FIB table.
Definition: table.h:108
Definititions for IPv6 extension headers.
Types and functions for FIB.
Data type to represent an IPv6 packet header.
Definition: hdr.h:66
ipv6_hdr_t * gnrc_ipv6_get_header(gnrc_pktsnip_t *pkt)
Get the IPv6 header from a given list of gnrc_pktsnip_t.
int16_t kernel_pid_t
Unique process identifier.
Definition: kernel_types.h:83
IPv6 header.
Includes all essential GNRC network stack base modules.
kernel_pid_t gnrc_ipv6_init(void)
Initialization of the IPv6 thread.
IPv6 include gathering header.
Type to represent parts (either headers or payload) of a packet, called snips.
Definition: pkt.h:108
NIB definitions.
kernel_pid_t gnrc_ipv6_pid
The PID to the IPv6 thread.