ipv6.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
97 #include "sched.h"
98 #include "thread.h"
99 
100 #include "net/ipv6.h"
101 #include "net/gnrc/ipv6/ext.h"
102 #include "net/gnrc/ipv6/hdr.h"
103 #include "net/gnrc/ipv6/nib.h"
104 
105 #ifdef MODULE_FIB
106 #include "net/fib.h"
107 #endif
108 
109 #ifdef __cplusplus
110 extern "C" {
111 #endif
112 
126 #ifndef GNRC_IPV6_STACK_SIZE
127 #define GNRC_IPV6_STACK_SIZE ((THREAD_STACKSIZE_DEFAULT) - 64)
128 #endif
129 
133 #ifndef GNRC_IPV6_PRIO
134 #define GNRC_IPV6_PRIO (THREAD_PRIORITY_MAIN - 3)
135 #endif
136 
145 #ifndef CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP
146 #define CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP (3U)
147 #endif
148 
149 #ifdef DOXYGEN
166 #define CONFIG_GNRC_IPV6_STATIC_LLADDR
167 #endif /* DOXYGEN */
180 #ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED
181 #define CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED 1
182 #endif
183 
202 #ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK
203 #define CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK 0ULL
204 #endif
205 
209 #ifndef GNRC_IPV6_MSG_QUEUE_SIZE
210 #define GNRC_IPV6_MSG_QUEUE_SIZE (1 << CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP)
211 #endif
212 
222 
223 #ifdef MODULE_FIB
224 
228 #ifndef GNRC_IPV6_FIB_TABLE_SIZE
229 # ifdef MODULE_GNRC_RPL
230 # define GNRC_IPV6_FIB_TABLE_SIZE (20)
231 # else
232 # define GNRC_IPV6_FIB_TABLE_SIZE (5)
233 # endif
234 #endif
235 
241 extern fib_table_t gnrc_ipv6_fib_table;
242 #endif
243 
253 
268 
269 #ifdef __cplusplus
270 }
271 #endif
272 
Types and functions for FIB.
Definititions for IPv6 extension headers.
int16_t kernel_pid_t
Unique process identifier.
Definition: sched.h:135
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:104
Type to represent parts (either headers or payload) of a packet, called snips.
Definition: pkt.h:105
Data type to represent an IPv6 packet header.
Definition: hdr.h:63