gnrc/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 
29 #ifndef NET_GNRC_IPV6_H
30 #define NET_GNRC_IPV6_H
31 
32 #include "kernel_types.h"
33 #include "net/gnrc.h"
34 #include "thread.h"
35 
36 #include "net/ipv6.h"
37 #include "net/gnrc/ipv6/ext.h"
38 #include "net/gnrc/ipv6/hdr.h"
39 #ifndef MODULE_GNRC_IPV6_NIB
40 #include "net/gnrc/ipv6/nc.h"
41 #endif
42 #include "net/gnrc/ipv6/netif.h"
43 
44 #ifdef MODULE_FIB
45 #include "net/fib.h"
46 #endif
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
55 #ifndef GNRC_IPV6_STACK_SIZE
56 #define GNRC_IPV6_STACK_SIZE (THREAD_STACKSIZE_DEFAULT)
57 #endif
58 
62 #ifndef GNRC_IPV6_PRIO
63 #define GNRC_IPV6_PRIO (THREAD_PRIORITY_MAIN - 3)
64 #endif
65 
69 #ifndef GNRC_IPV6_MSG_QUEUE_SIZE
70 #define GNRC_IPV6_MSG_QUEUE_SIZE (8U)
71 #endif
72 
73 #ifdef DOXYGEN
74 
89 #define GNRC_IPV6_STATIC_LLADDR
90 #endif /* DOXYGEN */
91 
101 
102 #ifdef MODULE_FIB
103 
107 #ifndef GNRC_IPV6_FIB_TABLE_SIZE
108 # ifdef MODULE_GNRC_RPL
109 # define GNRC_IPV6_FIB_TABLE_SIZE (20)
110 # else
111 # define GNRC_IPV6_FIB_TABLE_SIZE (5)
112 # endif
113 #endif
114 
120 extern fib_table_t gnrc_ipv6_fib_table;
121 #endif
122 
132 
156 void gnrc_ipv6_demux(kernel_pid_t iface, gnrc_pktsnip_t *current, gnrc_pktsnip_t *pkt, uint8_t nh);
157 
170 
171 #ifdef __cplusplus
172 }
173 #endif
174 
175 #endif /* NET_GNRC_IPV6_H */
176 
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.
int16_t kernel_pid_t
Unique process identifier.
Definition: kernel_types.h:83
Data type to represent an IPv6 packet header.
Definition: ipv6/hdr.h:68
Definitions for IPv6 specific information of network interfaces.
void gnrc_ipv6_demux(kernel_pid_t iface, gnrc_pktsnip_t *current, gnrc_pktsnip_t *pkt, uint8_t nh)
Demultiplexes a packet according to nh.
Neighbor cache definitions.
ipv6_hdr_t * gnrc_ipv6_get_header(gnrc_pktsnip_t *pkt)
Get the IPv6 header from a given list of gnrc_pktsnip_t.
Threading API.
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.
IPv6 header.
kernel_pid_t gnrc_ipv6_pid
The PID to the IPv6 thread.