Loading...
Searching...
No Matches
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
9#pragma once
10
99
100#include "sched.h"
101#include "thread.h"
102
103#include "net/ipv6.h"
104#include "net/gnrc/ipv6/ext.h"
105#include "net/gnrc/ipv6/hdr.h"
106#include "net/gnrc/ipv6/nib.h"
107
108#ifdef MODULE_FIB
109#include "net/fib.h"
110#endif
111
112#ifdef __cplusplus
113extern "C" {
114#endif
115
129#ifndef GNRC_IPV6_STACK_SIZE
130#define GNRC_IPV6_STACK_SIZE ((THREAD_STACKSIZE_DEFAULT) - 64)
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
169#define CONFIG_GNRC_IPV6_STATIC_LLADDR
170#endif /* DOXYGEN */
172
183#ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED
184#define CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED 1
185#endif
186
205#ifndef CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK
206#define CONFIG_GNRC_IPV6_STATIC_LLADDR_NETDEV_MASK 0ULL
207#endif
208
212#ifndef GNRC_IPV6_MSG_QUEUE_SIZE
213#define GNRC_IPV6_MSG_QUEUE_SIZE (1 << CONFIG_GNRC_IPV6_MSG_QUEUE_SIZE_EXP)
214#endif
215
225
226#ifdef MODULE_FIB
227
231#ifndef GNRC_IPV6_FIB_TABLE_SIZE
232# ifdef MODULE_GNRC_RPL
233# define GNRC_IPV6_FIB_TABLE_SIZE (20)
234# else
235# define GNRC_IPV6_FIB_TABLE_SIZE (5)
236# endif
237#endif
238
244extern fib_table_t gnrc_ipv6_fib_table;
245#endif
246
256
271
272#ifdef __cplusplus
273}
274#endif
275
Types and functions for FIB.
Definititions for IPv6 extension headers.
int16_t kernel_pid_t
Unique process identifier.
Definition sched.h:138
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.
struct gnrc_pktsnip gnrc_pktsnip_t
Type to represent parts (either headers or payload) of a packet, called snips.
IPv6 include gathering header.
IPv6 header.
NIB definitions.
Scheduler API definition.
Meta information of a FIB table.
Definition table.h:107
Data type to represent an IPv6 packet header.
Definition hdr.h:66