Merge pull request #3813 from OlegHahm/sixlowpan_nd_router_deps

gnrc: 6lowpan-nd: some broken router dependencies
dev/timer
Martine Lenders 8 years ago
commit e7bbbf080b

@ -73,7 +73,7 @@ ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE)))
endif
ifneq (,$(filter gnrc_sixlowpan_router,$(USEMODULE)))
USEMODULE += gnrc_sixlowpan
USEMODULE += gnrc_sixlowpan_nd_router
endif
ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE)))

@ -304,6 +304,8 @@ typedef struct {
*/
uint16_t min_adv_int;
#endif
#if defined (MODULE_GNRC_NDP_ROUTER) || defined (MODULE_GNRC_SIXLOWPAN_ND_ROUTER)
/**
* @brief The router lifetime to propagate in router advertisements.
* Must be either 0 or between ng_ipv6_netif_t::max_adv_int and
@ -336,7 +338,7 @@ typedef struct {
*/
timex_t retrans_timer;
vtimer_t rtr_sol_timer; /**< Timer for periodic router solicitations */
#ifdef MODULE_GNRC_NDP_ROUTER
#if defined (MODULE_GNRC_NDP_ROUTER) || defined (MODULE_GNRC_SIXLOWPAN_ND_ROUTER)
vtimer_t rtr_adv_timer; /**< Timer for periodic router advertisements */
#endif
} gnrc_ipv6_netif_t;

@ -244,13 +244,15 @@ gnrc_ipv6_netif_t *gnrc_ipv6_netif_get(kernel_pid_t pid)
#if defined(MODULE_GNRC_NDP_ROUTER) || defined(MODULE_GNRC_SIXLOWPAN_ND_ROUTER)
void gnrc_ipv6_netif_set_router(gnrc_ipv6_netif_t *netif, bool enable)
{
#if defined(MODULE_GNRC_SIXLOWPAN_ND_ROUTER)
#ifdef MODULE_GNRC_SIXLOWPAN_ND_ROUTER
if (netif->flags & GNRC_IPV6_NETIF_FLAGS_SIXLOWPAN) {
gnrc_sixlowpan_nd_router_set_router(netif, enable);
return;
}
#endif
#ifdef MODULE_GNRC_NDP_ROUTER
gnrc_ndp_router_set_router(netif, enable);
#endif
}
void gnrc_ipv6_netif_set_rtr_adv(gnrc_ipv6_netif_t *netif, bool enable)
@ -261,7 +263,9 @@ void gnrc_ipv6_netif_set_rtr_adv(gnrc_ipv6_netif_t *netif, bool enable)
return;
}
#endif
#ifdef MODULE_GNRC_NDP_ROUTER
gnrc_ndp_router_set_rtr_adv(netif, enable);
#endif
}
#endif
@ -789,6 +793,16 @@ void gnrc_ipv6_netif_init_by_dev(void)
DEBUG("ipv6 netif: Set 6LoWPAN flag\n");
ipv6_ifs[i].flags |= GNRC_IPV6_NETIF_FLAGS_SIXLOWPAN;
/* the router flag must be set early here, because otherwise
* _add_addr_to_entry() wouldn't set the solicited node address.
* However, addresses have to be configured before calling
* gnrc_ipv6_netif_set_router().
*/
#ifdef MODULE_GNRC_SIXLOWPAN_ND_ROUTER
DEBUG("ipv6 netif: Set router flag\n");
ipv6_ifs[i].flags |= GNRC_IPV6_NETIF_FLAGS_ROUTER;
#endif
/* use EUI-64 (8-byte address) for IID generation and for sending
* packets */
gnrc_netapi_set(ifs[i], NETOPT_SRC_LEN, 0, &src_len,

Loading…
Cancel
Save