From c58cb6ddfbed2ddc20968a6032d3a64007fc0fdc Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Fri, 28 Aug 2020 16:36:13 +0200 Subject: [PATCH 1/8] gnrc: use gnrc_nettype_* as dependency wherever possible. --- Makefile.dep | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile.dep b/Makefile.dep index 1e2081fc54..eb0a2663e9 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -311,21 +311,27 @@ endif ifneq (,$(filter gnrc_ndp,$(USEMODULE))) USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr USEMODULE += gnrc_netif endif ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE))) USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_netif_hdr endif ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE))) USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_netif_hdr endif ifneq (,$(filter gnrc_icmpv6,$(USEMODULE))) USEMODULE += inet_csum - USEMODULE += gnrc_ipv6 + USEMODULE += ipv6_hdr USEMODULE += gnrc_nettype_icmpv6 + USEMODULE += gnrc_nettype_ipv6 USEMODULE += icmpv6 endif @@ -347,7 +353,7 @@ ifneq (,$(filter gnrc_ipv6_ext_rh,$(USEMODULE))) endif ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE))) - USEMODULE += gnrc_ipv6 + USEMODULE += gnrc_nettype_ipv6 USEMODULE += gnrc_nettype_ipv6_ext endif From adb6a6720f0a31c521431ead1426b2f43db680b5 Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Mon, 31 Aug 2020 12:04:42 +0200 Subject: [PATCH 2/8] gnrc_ipv6_nib: fix broken gnrc_netif dependency gnrc_ipv6_nib accesses the IPv6 members of `gnrc_netif`, so a dependency to the pseudo-module enabling those members is required. --- Makefile.dep | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.dep b/Makefile.dep index eb0a2663e9..96abe0cbeb 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -422,6 +422,7 @@ ifneq (,$(filter gnrc_ipv6_nib,$(USEMODULE))) USEMODULE += evtimer USEMODULE += gnrc_ndp USEMODULE += gnrc_netif + USEMODULE += gnrc_netif_ipv6 USEMODULE += ipv6_addr USEMODULE += random ifneq (,$(filter sock_dns,$(USEMODULE))) From 07bcae26132ea003ba9a139f010293764f9e6796 Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Mon, 31 Aug 2020 12:46:00 +0200 Subject: [PATCH 3/8] gnrc_sixlowpan_router: remove pseudo-module It has no real purpose other than pulling in `gnrc_ipv6_router` as a dependency, which is already done in other places (or by pulling in its dependencies). --- Makefile.dep | 10 ---------- makefiles/pseudomodules.inc.mk | 1 - 2 files changed, 11 deletions(-) diff --git a/Makefile.dep b/Makefile.dep index 96abe0cbeb..cd2947a167 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -217,9 +217,6 @@ ifneq (,$(filter ieee802154 nrfmin esp_now cc110x gnrc_sixloenc,$(USEMODULE))) ifneq (,$(filter gnrc_ipv6, $(USEMODULE))) USEMODULE += gnrc_sixlowpan endif - ifneq (,$(filter gnrc_ipv6_router, $(USEMODULE))) - USEMODULE += gnrc_sixlowpan_router - endif ifneq (,$(filter gnrc_ipv6_default, $(USEMODULE))) USEMODULE += gnrc_sixlowpan_default endif @@ -232,7 +229,6 @@ ifneq (,$(filter ieee802154 nrfmin esp_now cc110x gnrc_sixloenc,$(USEMODULE))) endif ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_default USEMODULE += gnrc_ipv6_nib_6ln USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_frag @@ -242,7 +238,6 @@ endif ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_router_default USEMODULE += gnrc_ipv6_nib_6lr - USEMODULE += gnrc_sixlowpan_router USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc endif @@ -250,15 +245,10 @@ endif ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_6lbr USEMODULE += gnrc_ipv6_router_default - USEMODULE += gnrc_sixlowpan_router USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc endif -ifneq (,$(filter gnrc_sixlowpan_router,$(USEMODULE))) - USEMODULE += gnrc_ipv6_router -endif - ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE))) USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_frag_fb diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk index 510e6fecd8..0ef9572da5 100644 --- a/makefiles/pseudomodules.inc.mk +++ b/makefiles/pseudomodules.inc.mk @@ -52,7 +52,6 @@ PSEUDOMODULES += gnrc_sixlowpan_default PSEUDOMODULES += gnrc_sixlowpan_frag_hint PSEUDOMODULES += gnrc_sixlowpan_iphc_nhc PSEUDOMODULES += gnrc_sixlowpan_nd_border_router -PSEUDOMODULES += gnrc_sixlowpan_router PSEUDOMODULES += gnrc_sixlowpan_router_default PSEUDOMODULES += gnrc_sock_async PSEUDOMODULES += gnrc_sock_check_reuse From 8f7dbc6cdea0c253abeffa367a869b7fd3d516e8 Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Mon, 31 Aug 2020 12:47:42 +0200 Subject: [PATCH 4/8] gnrc_sixlowpan_router_default: don't pull in For an app, a user usually uses `gnrc_ipv6_router_default` to activate routing behavior. `gnrc_sixlowpan_router_default` is used by that to pull in further dependencies for 6LoWPAN routers. It shouldn't pull in `gnrc_ipv6_router_default` again, as this introduces a cyclic dependency. --- Makefile.dep | 1 - tests/gnrc_sixlowpan/Makefile | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.dep b/Makefile.dep index cd2947a167..3f08618aa6 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -236,7 +236,6 @@ ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE))) endif ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_router_default USEMODULE += gnrc_ipv6_nib_6lr USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc diff --git a/tests/gnrc_sixlowpan/Makefile b/tests/gnrc_sixlowpan/Makefile index 440bbd1c4f..5fc888d8df 100644 --- a/tests/gnrc_sixlowpan/Makefile +++ b/tests/gnrc_sixlowpan/Makefile @@ -6,6 +6,8 @@ USEMODULE += netdev_ieee802154 USEMODULE += netdev_test # 6LoWPAN and its extensions USEMODULE += gnrc_sixlowpan_default +# IPv6 host support +USEMODULE += gnrc_ipv6_default # UDP USEMODULE += gnrc_udp # Dumps packets From 4fe7bb003a207a304bd48ed49f90c8523dba83cf Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Tue, 1 Sep 2020 13:53:08 +0200 Subject: [PATCH 5/8] gnrc_ipv6_nib: add missing header includes --- sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h | 1 + sys/net/gnrc/network_layer/ipv6/nib/_nib-slaac.c | 1 + sys/net/gnrc/network_layer/ipv6/nib/nib_ft.c | 1 + 3 files changed, 3 insertions(+) diff --git a/sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h b/sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h index f51d88a51b..c1da3916f7 100644 --- a/sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h +++ b/sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h @@ -28,6 +28,7 @@ #include "net/gnrc/netif.h" #include "net/ndp.h" #include "net/icmpv6.h" +#include "net/ipv6/hdr.h" #include "_nib-internal.h" diff --git a/sys/net/gnrc/network_layer/ipv6/nib/_nib-slaac.c b/sys/net/gnrc/network_layer/ipv6/nib/_nib-slaac.c index 3a977edba0..59192ea745 100644 --- a/sys/net/gnrc/network_layer/ipv6/nib/_nib-slaac.c +++ b/sys/net/gnrc/network_layer/ipv6/nib/_nib-slaac.c @@ -18,6 +18,7 @@ #include "log.h" #include "luid.h" +#include "net/gnrc/ipv6/nib.h" #include "net/gnrc/netif/internal.h" #include "_nib-6ln.h" diff --git a/sys/net/gnrc/network_layer/ipv6/nib/nib_ft.c b/sys/net/gnrc/network_layer/ipv6/nib/nib_ft.c index 5dd20c58d2..05c6f083db 100644 --- a/sys/net/gnrc/network_layer/ipv6/nib/nib_ft.c +++ b/sys/net/gnrc/network_layer/ipv6/nib/nib_ft.c @@ -18,6 +18,7 @@ #include "_nib-internal.h" +#include "net/gnrc/ipv6/nib.h" #include "net/gnrc/ipv6/nib/ft.h" int gnrc_ipv6_nib_ft_get(const ipv6_addr_t *dst, gnrc_pktsnip_t *pkt, From 0e3443d006c9ea4aec6c5cad4a8179db132a5e6b Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Tue, 1 Sep 2020 13:58:47 +0200 Subject: [PATCH 6/8] gnrc_netif: guard usage of gnrc_ipv6 member --- sys/net/gnrc/netif/gnrc_netif.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/net/gnrc/netif/gnrc_netif.c b/sys/net/gnrc/netif/gnrc_netif.c index 5a78d089a3..872e93715c 100644 --- a/sys/net/gnrc/netif/gnrc_netif.c +++ b/sys/net/gnrc/netif/gnrc_netif.c @@ -588,8 +588,9 @@ int gnrc_netif_ipv6_addr_add_internal(gnrc_netif_t *netif, gnrc_netif_ipv6_bus_post(netif, GNRC_IPV6_EVENT_ADDR_VALID, &netif->ipv6.addrs[idx]); } -#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) - else if (!gnrc_netif_is_6ln(netif)) { + else if (IS_USED(MODULE_GNRC_IPV6) && + IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_SLAAC) && + !gnrc_netif_is_6ln(netif)) { /* cast to remove const qualifier (will still be used NIB internally as * const) */ msg_t msg = { .type = GNRC_IPV6_NIB_DAD, @@ -597,7 +598,6 @@ int gnrc_netif_ipv6_addr_add_internal(gnrc_netif_t *netif, msg_send(&msg, gnrc_ipv6_pid); } -#endif #else (void)pfx_len; #endif From 2cf5b3c185cfda377c498859147d73dde38c6ca1 Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Tue, 1 Sep 2020 16:44:44 +0200 Subject: [PATCH 7/8] gnrc_ipv6_hdr: make HDR_NETTYPE dependent on nettype module In #13994 this was introduced but overlooked here. --- sys/net/gnrc/network_layer/ipv6/hdr/gnrc_ipv6_hdr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/gnrc/network_layer/ipv6/hdr/gnrc_ipv6_hdr.c b/sys/net/gnrc/network_layer/ipv6/hdr/gnrc_ipv6_hdr.c index 3310882c70..e93be305eb 100644 --- a/sys/net/gnrc/network_layer/ipv6/hdr/gnrc_ipv6_hdr.c +++ b/sys/net/gnrc/network_layer/ipv6/hdr/gnrc_ipv6_hdr.c @@ -26,7 +26,7 @@ static char addr_str[IPV6_ADDR_MAX_STR_LEN]; #endif /* For independent testing */ -#ifdef MODULE_GNRC_IPV6 +#ifdef MODULE_GNRC_NETTYPE_IPV6 #define HDR_NETTYPE (GNRC_NETTYPE_IPV6) #else #define HDR_NETTYPE (GNRC_NETTYPE_UNDEF) From aaafabf43f192c18a7c37047901766aa7d3ef7d2 Mon Sep 17 00:00:00 2001 From: "Martine S. Lenders" Date: Tue, 1 Sep 2020 16:46:00 +0200 Subject: [PATCH 8/8] tests/gnrc_ndp: use IPv6 nettype to distinguish from payload --- tests/gnrc_ndp/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/gnrc_ndp/Makefile b/tests/gnrc_ndp/Makefile index d086579a44..0e40b25a98 100644 --- a/tests/gnrc_ndp/Makefile +++ b/tests/gnrc_ndp/Makefile @@ -3,6 +3,7 @@ include ../Makefile.tests_common USEMODULE += gnrc_ipv6_nib_router USEMODULE += gnrc_ndp USEMODULE += gnrc_netif +USEMODULE += gnrc_nettype_ipv6 USEMODULE += embunit USEMODULE += netdev_ieee802154 USEMODULE += netdev_test