The friendly Operating System for the Internet of Things

Router-definitions for 6LoWPAN-ND. More...

Detailed Description

#include <stdbool.h>
#include "bitfield.h"
#include "net/gnrc/sixlowpan/ctx.h"
#include "net/gnrc/ipv6/netif.h"
+ Include dependency graph for sixlowpan/nd/router.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gnrc_sixlowpan_nd_router_prf
 Representation for prefixes coming from a router. More...
 
struct  gnrc_sixlowpan_nd_router_abr_t
 Abstract representation of a border router on all (border) routers. More...
 

Macros

#define GNRC_SIXLOWPAN_ND_ROUTER_ABR_NUMOF   (1)
 Number of registerable border routers. More...
 
#define GNRC_SIXLOWPAN_ND_ROUTER_ABR_PRF_NUMOF   (GNRC_SIXLOWPAN_ND_ROUTER_ABR_NUMOF * GNRC_NETIF_NUMOF)
 The number of non-link-local prefixes associated with border routers at maximum.
 

Typedefs

typedef struct gnrc_sixlowpan_nd_router_prf gnrc_sixlowpan_nd_router_prf_t
 Representation for prefixes coming from a router.
 

Functions

static void gnrc_sixlowpan_nd_router_gc_nc (gnrc_ipv6_nc_t *nc_entry)
 Removes tentetative neighbor cache entries or sets registered ones to garbage-collectible. More...
 
static void gnrc_sixlowpan_nd_router_set_router (gnrc_ipv6_netif_t *netif, bool enable)
 Set netif to router mode. More...
 
void gnrc_sixlowpan_nd_router_set_rtr_adv (gnrc_ipv6_netif_t *netif, bool enable)
 Set/Unset GNRC_IPV6_NETIF_FLAGS_RTR_ADV flag for netif. More...
 
gnrc_sixlowpan_nd_router_abr_tgnrc_sixlowpan_nd_router_abr_get (void)
 Get's the border router for this router. More...
 
bool gnrc_sixlowpan_nd_router_abr_older (sixlowpan_nd_opt_abr_t *abr_opt)
 Checks if the version data abr_opt is older than the version of the currently registered border router. More...
 
void gnrc_sixlowpan_nd_router_abr_remove (gnrc_sixlowpan_nd_router_abr_t *abr)
 Removes the border router and all the prefixes and contexts it disseminated through the network for this node. More...
 
gnrc_sixlowpan_nd_router_abr_tgnrc_sixlowpan_nd_router_abr_create (ipv6_addr_t *addr, unsigned int ltime)
 Makes this node a new border router. More...
 
int gnrc_sixlowpan_nd_router_abr_add_prf (gnrc_sixlowpan_nd_router_abr_t *abr, gnrc_ipv6_netif_t *iface, gnrc_ipv6_netif_addr_t *prefix)
 Adds a prefix for this border router to manage. More...
 
void gnrc_sixlowpan_nd_router_abr_rem_prf (gnrc_sixlowpan_nd_router_abr_t *abr, gnrc_ipv6_netif_t *iface, gnrc_ipv6_netif_addr_t *prefix)
 Removes a prefix from this border router. More...
 
int gnrc_sixlowpan_nd_router_abr_add_ctx (gnrc_sixlowpan_nd_router_abr_t *abr, uint8_t cid)
 Adds a context for this border router to manage. More...
 
void gnrc_sixlowpan_nd_router_abr_rem_ctx (gnrc_sixlowpan_nd_router_abr_t *abr, uint8_t cid)
 Removes a context from this border router. More...