Neighbor cache definitions. More...
Neighbor cache definitions.
Definition in file nc.h.
#include <stdbool.h>
#include <stdint.h>
#include "net/eui64.h"
#include "net/gnrc/netif/hdr.h"
#include "net/gnrc/ipv6/nib/conf.h"
#include "net/ipv6/addr.h"
Go to the source code of this file.
Data Structures | |
struct | gnrc_ipv6_nib_nc_t |
Neighbor cache entry view on NIB. More... | |
Functions | |
static unsigned | gnrc_ipv6_nib_nc_get_nud_state (const gnrc_ipv6_nib_nc_t *entry) |
Gets neighbor unreachability state from entry. | |
static bool | gnrc_ipv6_nib_nc_is_router (const gnrc_ipv6_nib_nc_t *entry) |
Gets router flag of a neighbor. | |
static unsigned | gnrc_ipv6_nib_nc_get_iface (const gnrc_ipv6_nib_nc_t *entry) |
Gets interface from entry. | |
static unsigned | gnrc_ipv6_nib_nc_get_ar_state (const gnrc_ipv6_nib_nc_t *entry) |
Gets address registration state of an entry. | |
int | gnrc_ipv6_nib_nc_set (const ipv6_addr_t *ipv6, unsigned iface, const uint8_t *l2addr, size_t l2addr_len) |
Adds an unmanaged neighbor entry to NIB. | |
void | gnrc_ipv6_nib_nc_del (const ipv6_addr_t *ipv6, unsigned iface) |
Deletes neighbor with address ipv6 from NIB. | |
void | gnrc_ipv6_nib_nc_mark_reachable (const ipv6_addr_t *ipv6) |
Mark neighbor with address ipv6 as reachable. | |
bool | gnrc_ipv6_nib_nc_iter (unsigned iface, void **state, gnrc_ipv6_nib_nc_t *nce) |
Iterates over all neighbor cache entries in the NIB. | |
void | gnrc_ipv6_nib_nc_print (gnrc_ipv6_nib_nc_t *nce) |
Prints a neighbor cache entry. | |
Info values | |
Values for gnrc_ipv6_nib_nc_t::info | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_MASK (0x0007) |
Mask for neighbor unreachability detection (NUD) states. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_UNMANAGED (0x0000) |
Not managed by NUD. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_UNREACHABLE (0x0001) |
Entry is not reachable. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_INCOMPLETE (0x0002) |
Address resolution is currently performed. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_STALE (0x0003) |
Address might not be reachable. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_DELAY (0x0004) |
NUD will be performed in a moment. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_PROBE (0x0005) |
NUD is performed. | |
#define | GNRC_IPV6_NIB_NC_INFO_NUD_STATE_REACHABLE (0x0006) |
Entry is reachable. | |
#define | GNRC_IPV6_NIB_NC_INFO_IS_ROUTER (0x0008) |
gnrc_ipv6_nib_t::next_hop is router | |
#define | GNRC_IPV6_NIB_NC_INFO_IFACE_MASK (0x01f0) |
Mask for interface identifier. | |
#define | GNRC_IPV6_NIB_NC_INFO_IFACE_POS (4) |
Shift position of interface identifier. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_MASK (0x0600) |
Mask for 6LoWPAN address registration (6Lo-AR) states. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_POS (9) |
Shift position of address registration states. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_GC (0x0000) |
Not managed by 6Lo-AR (address can be removed when memory is low. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_TENTATIVE (0x0200) |
Address registration still pending at upstream router. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_REGISTERED (0x0400) |
Address is registered. | |
#define | GNRC_IPV6_NIB_NC_INFO_AR_STATE_MANUAL (0x0600) |
Address was added manually. | |