diff --git a/sys/auto_init/auto_init.c b/sys/auto_init/auto_init.c index 0cdabdd2bf..553fad2945 100644 --- a/sys/auto_init/auto_init.c +++ b/sys/auto_init/auto_init.c @@ -257,10 +257,10 @@ void auto_init(void) dhcpv6_client_auto_init(); } - if (IS_USED(MODULE_GNRC_DHCPV6_CLIENT_6LBR)) { - LOG_DEBUG("Auto init 6LoWPAN border router DHCPv6 client\n"); - extern void gnrc_dhcpv6_client_6lbr_init(void); - gnrc_dhcpv6_client_6lbr_init(); + if (IS_USED(MODULE_GNRC_DHCPV6_CLIENT_SIMPLE_PD)) { + LOG_DEBUG("Auto init DHCPv6 client for simple prefix delegation\n"); + extern void gnrc_dhcpv6_client_simple_pd_init(void); + gnrc_dhcpv6_client_simple_pd_init(); } if (IS_USED(MODULE_AUTO_INIT_MULTIMEDIA)) { diff --git a/sys/include/net/gnrc/dhcpv6/client/6lbr.h b/sys/include/net/gnrc/dhcpv6/client/simple_pd.h similarity index 79% rename from sys/include/net/gnrc/dhcpv6/client/6lbr.h rename to sys/include/net/gnrc/dhcpv6/client/simple_pd.h index c35cfd484c..c20697a474 100644 --- a/sys/include/net/gnrc/dhcpv6/client/6lbr.h +++ b/sys/include/net/gnrc/dhcpv6/client/simple_pd.h @@ -7,9 +7,10 @@ */ /** - * @defgroup net_dhcpv6_client_6lbr DHCPv6 client for 6LoWPAN border routers + * @defgroup net_dhcpv6_client_6lbr DHCPv6 client for simple prefix + * delegation * @ingroup net_dhcpv6_client - * @brief DHCPv6 client bootstrapping for 6LoWPAN border routers + * @brief DHCPv6 client bootstrapping for routers & 6LoWPAN border routers * @{ * * @file @@ -17,8 +18,8 @@ * * @author Martine S. Lenders */ -#ifndef NET_GNRC_DHCPV6_CLIENT_6LBR_H -#define NET_GNRC_DHCPV6_CLIENT_6LBR_H +#ifndef NET_GNRC_DHCPV6_CLIENT_SIMPLE_PD_H +#define NET_GNRC_DHCPV6_CLIENT_SIMPLE_PD_H #ifdef __cplusplus extern "C" { @@ -60,15 +61,15 @@ extern "C" { #endif /** - * @brief Initializes the DHCPv6 client for 6LoWPAN border router + * @brief Initializes the DHCPv6 client for simple prefix delegation * * @note Called by `auto_init` when included */ -void gnrc_dhcpv6_client_6lbr_init(void); +void gnrc_dhcpv6_client_simple_pd_init(void); #ifdef __cplusplus } #endif -#endif /* NET_GNRC_DHCPV6_CLIENT_6LBR_H */ +#endif /* NET_GNRC_DHCPV6_CLIENT_SIMPLE_PD_H */ /** @} */ diff --git a/sys/net/gnrc/Makefile.dep b/sys/net/gnrc/Makefile.dep index 8d76b02003..a91aef7fcf 100644 --- a/sys/net/gnrc/Makefile.dep +++ b/sys/net/gnrc/Makefile.dep @@ -52,6 +52,10 @@ ifneq (,$(filter gnrc_dhcpv6_client,$(USEMODULE))) endif ifneq (,$(filter gnrc_dhcpv6_client_6lbr,$(USEMODULE))) + USEMODULE += gnrc_dhcpv6_client_simple_pd +endif + +ifneq (,$(filter gnrc_dhcpv6_client_simple_pd,$(USEMODULE))) USEMODULE += gnrc_dhcpv6_client endif diff --git a/sys/net/gnrc/application_layer/dhcpv6/client.c b/sys/net/gnrc/application_layer/dhcpv6/client.c index 9dfd1629b4..2c95e3277c 100644 --- a/sys/net/gnrc/application_layer/dhcpv6/client.c +++ b/sys/net/gnrc/application_layer/dhcpv6/client.c @@ -18,7 +18,7 @@ #include "log.h" #include "net/arp.h" #include "net/dhcpv6.h" -#include "net/gnrc/dhcpv6/client/6lbr.h" +#include "net/gnrc/dhcpv6/client/simple_pd.h" #include "net/gnrc/ipv6/nib/pl.h" #include "net/gnrc/sixlowpan/ctx.h" #include "net/gnrc/netif.h" diff --git a/sys/net/gnrc/application_layer/dhcpv6/client_6lbr.c b/sys/net/gnrc/application_layer/dhcpv6/client_simple_pd.c similarity index 93% rename from sys/net/gnrc/application_layer/dhcpv6/client_6lbr.c rename to sys/net/gnrc/application_layer/dhcpv6/client_simple_pd.c index 57e776350d..4bdf55b339 100644 --- a/sys/net/gnrc/application_layer/dhcpv6/client_6lbr.c +++ b/sys/net/gnrc/application_layer/dhcpv6/client_simple_pd.c @@ -22,7 +22,7 @@ #include "net/gnrc/ipv6/nib/ft.h" #include "net/gnrc/netif/internal.h" -#include "net/gnrc/dhcpv6/client/6lbr.h" +#include "net/gnrc/dhcpv6/client/simple_pd.h" #if IS_USED(MODULE_AUTO_INIT_DHCPV6_CLIENT) #error "Module `gnrc_dhcpv6_client_6lbr` is mutually exclusive to \ @@ -101,8 +101,13 @@ static void _configure_upstream_netif(gnrc_netif_t *upstream_netif) static void _configure_dhcpv6_client(void) { gnrc_netif_t *netif = NULL; + gnrc_netif_t *upstream = _find_upstream_netif(); while ((netif = gnrc_netif_iter(netif))) { - if (gnrc_netif_is_6lo(netif)) { + if (IS_USED(MODULE_GNRC_DHCPV6_CLIENT_6LBR) + && !gnrc_netif_is_6lo(netif)) { + continue; + } + if (netif != upstream) { dhcpv6_client_req_ia_pd(netif->pid, 64U); } } @@ -135,7 +140,7 @@ static void *_dhcpv6_cl_6lbr_thread(void *args) return NULL; } -void gnrc_dhcpv6_client_6lbr_init(void) +void gnrc_dhcpv6_client_simple_pd_init(void) { /* start DHCPv6 client thread to request prefix for WPAN */ thread_create(_stack, DHCPV6_CLIENT_STACK_SIZE,