Neighbor cache definitions. More...

Detailed Description

Neighbor cache definitions.

Author
Martine Lenders m.len.nosp@m.ders.nosp@m.@fu-b.nosp@m.erli.nosp@m.n.de

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"
+ Include dependency graph for nc.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gnrc_ipv6_nib_nc_t
 Neighbor cache entry view on NIB. More...
 

Macros

Info values
#define GNRC_IPV6_NIB_NC_INFO_NUD_STATE_MASK   (0x0007)
 Mask for neighbor unreachability detection (NUD) states. More...
 
#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 More...
 
#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. More...
 
#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.
 

Functions

static unsigned gnrc_ipv6_nib_nc_get_nud_state (const gnrc_ipv6_nib_nc_t *entry)
 Gets neighbor unreachability state from entry. More...
 
static bool gnrc_ipv6_nib_nc_is_router (const gnrc_ipv6_nib_nc_t *entry)
 Gets router flag of a neighbor. More...
 
static unsigned gnrc_ipv6_nib_nc_get_iface (const gnrc_ipv6_nib_nc_t *entry)
 Gets interface from entry. More...
 
static unsigned gnrc_ipv6_nib_nc_get_ar_state (const gnrc_ipv6_nib_nc_t *entry)
 Gets address registration state of an entry. More...
 
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. More...
 
void gnrc_ipv6_nib_nc_del (const ipv6_addr_t *ipv6, unsigned iface)
 Deletes neighbor with address ipv6 from NIB. More...
 
void gnrc_ipv6_nib_nc_mark_reachable (const ipv6_addr_t *ipv6)
 Mark neighbor with address ipv6 as reachable. More...
 
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. More...
 
void gnrc_ipv6_nib_nc_print (gnrc_ipv6_nib_nc_t *nce)
 Prints a neighbor cache entry. More...