•All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
_nib-slaac.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 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 
21 #ifndef PRIV_NIB_SLAAC_H
22 #define PRIV_NIB_SLAAC_H
23 
24 #include <kernel_defines.h>
25 #include <stdint.h>
26 
27 #include "net/gnrc/ipv6/nib/conf.h"
28 #include "net/gnrc/netif.h"
29 #include "net/ipv6/addr.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LN) || IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) || defined(DOXYGEN)
44  uint8_t pfx_len);
45 #else /* CONFIG_GNRC_IPV6_NIB_6LN || CONFIG_GNRC_IPV6_NIB_SLAAC */
46 #define _auto_configure_addr(netif, pfx, pfx_len) \
47  (void)netif; (void)pfx; (void)pfx_len;
48 #endif /* CONFIG_GNRC_IPV6_NIB_6LN || CONFIG_GNRC_IPV6_NIB_SLAAC */
49 #if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) || defined(DOXYGEN)
58 
64 void _handle_dad(const ipv6_addr_t *addr);
65 
71 void _handle_valid_addr(const ipv6_addr_t *addr);
72 #else /* CONFIG_GNRC_IPV6_NIB_SLAAC */
73 #define _remove_tentative_addr(netif, addr) \
74  (void)netif; (void)addr
75 #define _handle_dad(addr) (void)addr
76 #define _handle_valid_addr(addr) (void)addr
77 #endif /* CONFIG_GNRC_IPV6_NIB_SLAAC */
78 
79 #ifdef __cplusplus
80 }
81 #endif
82 
83 #endif /* PRIV_NIB_SLAAC_H */
void _remove_tentative_addr(gnrc_netif_t *netif, const ipv6_addr_t *addr)
Removes a tentative address from the interface and tries to reconfigure a new address.
void _handle_valid_addr(const ipv6_addr_t *addr)
Handle GNRC_IPV6_NIB_VALID_ADDR event.
void _auto_configure_addr(gnrc_netif_t *netif, const ipv6_addr_t *pfx, uint8_t pfx_len)
Auto-configures an address from a given prefix.
void _handle_dad(const ipv6_addr_t *addr)
Handle GNRC_IPV6_NIB_DAD event.
Definition for GNRC's network interfaces.
Definitions for IPv6 addresses.
Configuration macro definitions for neighbor information base.
Common macros and compiler attributes/pragmas configuration.
Representation of a network interface.
Definition: netif.h:135
Data type to represent an IPv6 address.
Definition: addr.h:72