Contiki-NG
Data Structures | Macros | Typedefs | Functions
uip-ds6-nbr.h File Reference

IPv6 Neighbor cache (link-layer/IPv6 address mapping) More...

#include "contiki.h"
#include "net/ipv6/uip.h"
#include "net/ipv6/uip-nd6.h"
#include "net/nbr-table.h"
#include "sys/stimer.h"

Go to the source code of this file.

Data Structures

struct  uip_ds6_nbr
 The default nbr_table entry (when UIP_DS6_NBR_MULTI_IPV6_ADDRS is disabled), that implements nbr cache. More...
 

Macros

#define NBR_INCOMPLETE   0
 Possible states for the nbr cache entries.
 
#define UIP_DS6_NBR_MULTI_IPV6_ADDRS   0
 Set non-zero (1) to enable multiple IPv6 addresses to be associated with a link-layer address.
 
#define UIP_DS6_NBR_MAX_6ADDRS_PER_NBR   2
 Set the maximum number of IPv6 addresses per link-layer address.
 
#define UIP_DS6_NBR_MAX_NEIGHBOR_CACHES   (NBR_TABLE_MAX_NEIGHBORS * UIP_DS6_NBR_MAX_6ADDRS_PER_NBR)
 Set the maximum number of neighbor cache entries.
 

Typedefs

typedef struct uip_ds6_nbr uip_ds6_nbr_t
 The default nbr_table entry (when UIP_DS6_NBR_MULTI_IPV6_ADDRS is disabled), that implements nbr cache.
 

Functions

uip_ds6_nbr_tuip_ds6_nbr_add (const uip_ipaddr_t *ipaddr, const uip_lladdr_t *lladdr, uint8_t isrouter, uint8_t state, nbr_table_reason_t reason, void *data)
 Add a neighbor cache for a specified IPv6 address, which is associated with a specified link-layer address. More...
 
int uip_ds6_nbr_rm (uip_ds6_nbr_t *nbr)
 Remove a neighbor cache. More...
 
const uip_lladdr_t * uip_ds6_nbr_get_ll (const uip_ds6_nbr_t *nbr)
 Get the link-layer address associated with a specified nbr cache. More...
 
const uip_lladdr_t * uip_ds6_nbr_lladdr_from_ipaddr (const uip_ipaddr_t *ipaddr)
 Get the link-layer address associated with a specified IPv6 address. More...
 
int uip_ds6_nbr_update_ll (uip_ds6_nbr_t **nbr, const uip_lladdr_t *new_ll_addr)
 Update the link-layer address associated with an IPv6 address. More...
 
const uip_ipaddr_t * uip_ds6_nbr_get_ipaddr (const uip_ds6_nbr_t *nbr)
 Get an IPv6 address of a neighbor cache. More...
 
uip_ipaddr_t * uip_ds6_nbr_ipaddr_from_lladdr (const uip_lladdr_t *lladdr)
 Get an IPv6 address associated with a specified link-layer address. More...
 
uip_ds6_nbr_tuip_ds6_nbr_lookup (const uip_ipaddr_t *ipaddr)
 Get the neighbor cache associated with a specified IPv6 address. More...
 
uip_ds6_nbr_tuip_ds6_nbr_ll_lookup (const uip_lladdr_t *lladdr)
 Get the neighbor cache associated with a specified link-layer address. More...
 
int uip_ds6_nbr_num (void)
 Return the number of neighbor caches. More...
 
uip_ds6_nbr_tuip_ds6_nbr_head (void)
 Get the first neighbor cache in nbr_table. More...
 
uip_ds6_nbr_tuip_ds6_nbr_next (uip_ds6_nbr_t *nbr)
 Get the next neighbor cache of a specified one. More...
 
void uip_ds6_link_callback (int status, int numtx)
 The callback function to update link-layer stats in a neighbor cache. More...
 
void uip_ds6_neighbor_periodic (void)
 The housekeeping function called periodically.
 
uip_ds6_nbr_tuip_ds6_get_least_lifetime_neighbor (void)
 This searches inside the neighbor table for the neighbor that is about to expire the next. More...
 

Detailed Description

IPv6 Neighbor cache (link-layer/IPv6 address mapping)

Author
Mathilde Durvy mdurv.nosp@m.y@ci.nosp@m.sco.c.nosp@m.om
Julien Abeille jabei.nosp@m.lle@.nosp@m.cisco.nosp@m..com
Simon Duquennoy simon.nosp@m.duq@.nosp@m.sics..nosp@m.se

Definition in file uip-ds6-nbr.h.