Loading...
Searching...
No Matches
_nib-slaac.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2018 Freie Universität Berlin
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
20
21#include <kernel_defines.h>
22#include <stdint.h>
23
25#include "net/gnrc/netif.h"
26#include "net/ipv6/addr.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LN) || IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) || defined(DOXYGEN)
41 uint8_t pfx_len);
42#else /* CONFIG_GNRC_IPV6_NIB_6LN || CONFIG_GNRC_IPV6_NIB_SLAAC */
43#define _auto_configure_addr(netif, pfx, pfx_len) \
44 (void)netif; (void)pfx; (void)pfx_len;
45#endif /* CONFIG_GNRC_IPV6_NIB_6LN || CONFIG_GNRC_IPV6_NIB_SLAAC */
46#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) || defined(DOXYGEN)
55
61void _handle_dad(const ipv6_addr_t *addr);
62
69#else /* CONFIG_GNRC_IPV6_NIB_SLAAC */
70#define _remove_tentative_addr(netif, addr) \
71 (void)netif; (void)addr
72#define _handle_dad(addr) (void)addr
73#define _handle_valid_addr(addr) (void)addr
74#endif /* CONFIG_GNRC_IPV6_NIB_SLAAC */
75
76#ifdef __cplusplus
77}
78#endif
79
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:137
Data type to represent an IPv6 address.
Definition addr.h:64