diff --git a/sys/include/net/gnrc/ipv6/netif.h b/sys/include/net/gnrc/ipv6/netif.h
index ac0e796b51496f80f1e29a0482cca596c34ec214..175ba9f0c9243b4ff140ffd96a9ab39e63b44b2c 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
 
 /**