Loading...
Searching...
No Matches
ipv6.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Freie Universität Berlin
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
18#ifndef NET_GNRC_NETIF_IPV6_H
19#define NET_GNRC_NETIF_IPV6_H
20
21#include "modules.h"
22
23#include "evtimer_msg.h"
24#include "net/ipv6/addr.h"
25#ifdef MODULE_GNRC_IPV6_NIB
27#endif
28#include "net/gnrc/netapi.h"
29#include "net/gnrc/netif/conf.h"
30#ifdef MODULE_NETSTATS_IPV6
31#include "net/netstats.h"
32#endif
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
46#define GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_MASK (0x1fU)
47
55#define GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_TENTATIVE (0x07U)
56
60#define GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_DEPRECATED (0x08U)
61
65#define GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_VALID (0x10U)
66
70#define GNRC_NETIF_IPV6_ADDRS_FLAGS_ANYCAST (0x20U)
78typedef struct {
87
94
101#ifdef MODULE_NETSTATS_IPV6
107 netstats_t stats;
108#endif
109#if defined(MODULE_GNRC_IPV6_NIB) || DOXYGEN
110#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ROUTER) || DOXYGEN
126 void (*route_info_cb)(unsigned type, const ipv6_addr_t *ctx_addr,
127 const void *ctx);
136#endif /* CONFIG_GNRC_IPV6_NIB_ROUTER */
137#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ARSM) || DOXYGEN
146#endif /* CONFIG_GNRC_IPV6_NIB_ARSM */
154#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LN) || IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) || DOXYGEN
166#endif
167
168#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ROUTER) || DOXYGEN
177 uint32_t last_ra;
178#endif /* CONFIG_GNRC_IPV6_NIB_ROUTER */
179#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ARSM) || defined(DOXYGEN)
190
198 uint32_t reach_time;
199#endif /* CONFIG_GNRC_IPV6_NIB_ARSM */
206 uint32_t retrans_time;
207#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ROUTER) || DOXYGEN
215 uint16_t rtr_ltime;
227 uint8_t ra_sent;
228#endif
235 uint8_t rs_sent;
242 uint8_t na_sent;
243#endif /* MODULE_GNRC_IPV6_NIB */
244
250 uint8_t aac_mode;
251
257 uint16_t mtu;
259
260#ifdef __cplusplus
261}
262#endif
263
264#endif /* NET_GNRC_NETIF_IPV6_H */
IPC-based evtimer definitions.
#define CONFIG_GNRC_NETIF_IPV6_ADDRS_NUMOF
Maximum number of unicast and anycast addresses per interface.
Definition conf.h:116
#define GNRC_NETIF_IPV6_GROUPS_NUMOF
Maximum number of multicast groups per interface.
Definition conf.h:127
Definition of net statistics.
Definitions for IPv6 addresses.
Configuration macro definitions for neighbor information base.
Common macros and compiler attributes/pragmas configuration.
Generic interface to communicate with GNRC modules.
Configuration macros for Network interface API.
IPC-message event.
Definition evtimer_msg.h:40
IPv6 component for gnrc_netif_t.
Definition ipv6.h:78
uint32_t reach_time
Reachable time (in ms)
Definition ipv6.h:198
uint8_t na_sent
number of unsolicited neighbor advertisements scheduled
Definition ipv6.h:242
evtimer_msg_event_t search_rtr
Event for GNRC_IPV6_NIB_SEARCH_RTR.
Definition ipv6.h:153
uint8_t aac_mode
IPv6 auto-address configuration mode flags.
Definition ipv6.h:250
uint8_t rs_sent
number of unsolicited router solicitations scheduled
Definition ipv6.h:235
evtimer_msg_event_t recalc_reach_time
Event for GNRC_IPV6_NIB_RECALC_REACH_TIME.
Definition ipv6.h:145
uint8_t ra_sent
number of unsolicited router advertisements sent
Definition ipv6.h:227
uint32_t reach_time_base
Base for random reachable time calculation and advertised reachable time in ms (if GNRC_NETIF_FLAGS_I...
Definition ipv6.h:189
uint16_t mtu
Maximum transmission unit (MTU) for IPv6 packets.
Definition ipv6.h:257
uint32_t retrans_time
Retransmission time and advertised retransmission time (in ms)
Definition ipv6.h:206
uint16_t rtr_ltime
(Advertised) Router lifetime (default 1800).
Definition ipv6.h:215
evtimer_msg_event_t snd_mc_ra
Event for GNRC_IPV6_NIB_SND_MC_RA.
Definition ipv6.h:135
uint32_t last_ra
Timestamp in milliseconds of last unsolicited router advertisement.
Definition ipv6.h:177
Global statistics struct.
Definition netstats.h:60
Data type to represent an IPv6 address.
Definition addr.h:72