From d30216dcbe4e349ef0def475d9c0d42eba36fb07 Mon Sep 17 00:00:00 2001
From: Martine Lenders <m.lenders@fu-berlin.de>
Date: Sat, 10 Jun 2017 22:48:44 +0200
Subject: [PATCH] gnrc_ipv6_nib: add configuration pseudo-modules

---
 Makefile.dep                         | 18 ++++++++++++
 makefiles/pseudomodules.inc.mk       |  4 +++
 sys/include/net/gnrc/ipv6/nib/conf.h | 41 ++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+)

diff --git a/Makefile.dep b/Makefile.dep
index 1725687b73..473880c82e 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -319,8 +319,26 @@ ifneq (,$(filter gnrc_ipv6_nc,$(USEMODULE)))
   USEMODULE += ipv6_addr
 endif
 
+ifneq (,$(filter gnrc_ipv6_nib_6lbr,$(USEMODULE)))
+  USEMODULE += gnrc_ipv6_nib_6lr
+endif
+
+ifneq (,$(filter gnrc_ipv6_nib_6lr,$(USEMODULE)))
+  USEMODULE += gnrc_ipv6_nib_6ln
+  USEMODULE += gnrc_ipv6_nib_router
+endif
+
+ifneq (,$(filter gnrc_ipv6_nib_6ln,$(USEMODULE)))
+  USEMODULE += gnrc_ipv6_nib
+endif
+
+ifneq (,$(filter gnrc_ipv6_nib_router,$(USEMODULE)))
+  USEMODULE += gnrc_ipv6_nib
+endif
+
 ifneq (,$(filter gnrc_ipv6_nib,$(USEMODULE)))
   USEMODULE += evtimer
+  USEMODULE += gnrc_ndp2
   USEMODULE += ipv6_addr
   USEMODULE += random
 endif
diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk
index 3c3e4dd89b..08bb19d0b4 100644
--- a/makefiles/pseudomodules.inc.mk
+++ b/makefiles/pseudomodules.inc.mk
@@ -11,6 +11,10 @@ PSEUDOMODULES += emb6_router
 PSEUDOMODULES += gnrc_ipv6_default
 PSEUDOMODULES += gnrc_ipv6_router
 PSEUDOMODULES += gnrc_ipv6_router_default
+PSEUDOMODULES += gnrc_ipv6_nib_6lbr
+PSEUDOMODULES += gnrc_ipv6_nib_6ln
+PSEUDOMODULES += gnrc_ipv6_nib_6lr
+PSEUDOMODULES += gnrc_ipv6_nib_router
 PSEUDOMODULES += gnrc_netdev_default
 PSEUDOMODULES += gnrc_neterr
 PSEUDOMODULES += gnrc_netapi_callbacks
diff --git a/sys/include/net/gnrc/ipv6/nib/conf.h b/sys/include/net/gnrc/ipv6/nib/conf.h
index 4710ede5f5..e3c28286e0 100644
--- a/sys/include/net/gnrc/ipv6/nib/conf.h
+++ b/sys/include/net/gnrc/ipv6/nib/conf.h
@@ -24,6 +24,47 @@
 extern "C" {
 #endif
 
+/* some pseudo-module based configuration, doc: see below */
+#ifdef MODULE_GNRC_IPV6_NIB_6LBR
+#ifndef GNRC_IPV6_NIB_CONF_6LBR
+#define GNRC_IPV6_NIB_CONF_6LBR         (1)
+#endif
+#endif
+
+#ifdef MODULE_GNRC_IPV6_NIB_6LR
+#ifndef GNRC_IPV6_NIB_CONF_6LR
+#define GNRC_IPV6_NIB_CONF_6LR          (1)
+#endif
+#ifndef GNRC_IPV6_NIB_CONF_SLAAC
+#define GNRC_IPV6_NIB_CONF_SLAAC        (0)
+#endif
+#endif
+
+#ifdef MODULE_GNRC_IPV6_NIB_6LN
+#ifndef GNRC_IPV6_NIB_CONF_6LN
+#define GNRC_IPV6_NIB_CONF_6LN          (1)
+#endif
+#ifndef GNRC_IPV6_NIB_CONF_SLAAC
+#define GNRC_IPV6_NIB_CONF_SLAAC        (0)
+#endif
+#ifndef GNRC_IPV6_NIB_CONF_QUEUE_PKT
+#define GNRC_IPV6_NIB_CONF_QUEUE_PKT    (0)
+#endif
+#if !GNRC_IPV6_NIB_CONF_6LR
+# ifndef GNRC_IPV6_NIB_CONF_ARSM
+# define GNRC_IPV6_NIB_CONF_ARSM        (0)
+# endif
+# ifndef GNRC_IPV6_NIB_NUMOF
+/* only needs to store default router */
+# define GNRC_IPV6_NIB_NUMOF            (1)
+# endif
+#endif
+#endif
+
+#ifdef MODULE_GNRC_IPV6_NIB_ROUTER
+#define GNRC_IPV6_NIB_CONF_ROUTER       (1)
+#endif
+
 /**
  * @name    Compile flags
  * @brief   Compile flags to (de-)activate certain features for NIB
-- 
GitLab