diff --git a/Makefile.dep b/Makefile.dep index ce01d0bb1f9bfa2b752c3932275bf57d454ef33e..aafc7540b39faec5f9bb8e3bc9f3a402d8642776 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -122,7 +122,8 @@ ifneq (,$(filter gnrc_rpl_p2p,$(USEMODULE))) endif ifneq (,$(filter gnrc_rpl,$(USEMODULE))) - USEMODULE += gnrc_ipv6_router_default + USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_nib USEMODULE += trickle USEMODULE += xtimer endif diff --git a/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c b/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c index 4b4021a2efd1ff0e5f04c2d55e9ba26af8ab7a0c..87d055a4fed700235ffe47550cf77a9ffd26fced 100644 --- a/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c +++ b/sys/net/gnrc/routing/rpl/gnrc_rpl_dodag.c @@ -132,6 +132,7 @@ bool gnrc_rpl_dodag_init(gnrc_rpl_instance_t *instance, ipv6_addr_t *dodag_id, k assert(instance && (instance->state > 0)); gnrc_rpl_dodag_t *dodag = &instance->dodag; + gnrc_netif_t *netif = gnrc_netif_get_by_pid(iface); dodag->dodag_id = *dodag_id; dodag->my_rank = GNRC_RPL_INFINITE_RANK; @@ -150,6 +151,9 @@ bool gnrc_rpl_dodag_init(gnrc_rpl_instance_t *instance, ipv6_addr_t *dodag_id, k dodag->instance = instance; dodag->iface = iface; + if ((netif != NULL) && !(netif->flags & GNRC_NETIF_FLAGS_IPV6_FORWARDING)) { + gnrc_rpl_leaf_operation(dodag); + } #ifdef MODULE_GNRC_RPL_P2P if ((instance->mop == GNRC_RPL_P2P_MOP) && (gnrc_rpl_p2p_ext_new(dodag) == NULL)) { DEBUG("RPL: could not allocate new P2P-RPL DODAG extension. Remove DODAG\n");