From 049b9868f3ea42b2f90aeb9f0ba57a920b94ac6e Mon Sep 17 00:00:00 2001
From: Oleg Hahm <oleg@hobbykeller.org>
Date: Thu, 3 Sep 2015 22:09:16 +0200
Subject: [PATCH] ipv6: netif: compute maximum addresses

RPL and ND routers need additional addresses
---
 sys/include/net/gnrc/ipv6/netif.h | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/sys/include/net/gnrc/ipv6/netif.h b/sys/include/net/gnrc/ipv6/netif.h
index ac0e796b51..175ba9f0c9 100644
--- a/sys/include/net/gnrc/ipv6/netif.h
+++ b/sys/include/net/gnrc/ipv6/netif.h
@@ -41,12 +41,20 @@ extern "C" {
  *
  * @brief   Number of IPv6 addresses per interface.
  */
-#ifndef GNRC_IPV6_NETIF_ADDR_NUMOF
+#ifdef MODULE_GNRC_RPL
+/* RPL needs all-RPL-nodes multicast address */
+#   define  RPL_ADDR    (1)
+#else
+#   define  RPL_ADDR    (0)
+#endif
 #ifdef MODULE_GNRC_IPV6_ROUTER
-#define GNRC_IPV6_NETIF_ADDR_NUMOF  (7) /* router needs all-routers multicast address */
+/* routers need all-routers multicast address */
+#   define RTR_ADDR     (1)
 #else
-#define GNRC_IPV6_NETIF_ADDR_NUMOF  (6)
+#   define RTR_ADDR     (0)
 #endif
+#ifndef GNRC_IPV6_NETIF_ADDR_NUMOF
+#define GNRC_IPV6_NETIF_ADDR_NUMOF  (6 + RPL_ADDR + RTR_ADDR)
 #endif
 
 /**
-- 
GitLab