1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #3658 from OlegHahm/ipv6_fib

universal_addresses: configure sizes according to the used modules
This commit is contained in:
Oleg Hahm 2015-09-07 10:14:08 +02:00
commit 8afecdd8a6
3 changed files with 31 additions and 3 deletions

View File

@ -27,8 +27,20 @@ extern "C" {
#include <stdint.h>
#include <stdlib.h>
#include "net/ipv6/addr.h"
#define UNIVERSAL_ADDRESS_SIZE (16) /**< size of the used addresses in bytes */
/** @brief size of the used addresses in bytes */
/* determine the widest possible address type */
#ifndef UNIVERSAL_ADDRESS_SIZE
#define UNIVERSAL_ADDRESS_SIZE (0) /* rather senseless default, should
trigger warnings */
#endif
/* IPv6 address has 128 bit -> 16 bytes */
#if defined(MODULE_IPV6_ADDR) && ((IPV6_ADDR_BIT_LEN >> 3) > UNIVERSAL_ADDRESS_SIZE)
#undef UNIVERSAL_ADDRESS_SIZE
#define UNIVERSAL_ADDRESS_SIZE (IPV6_ADDR_BIT_LEN >> 3)
#endif
/**
* @brief The container descriptor used to identify a universal address entry

View File

@ -19,6 +19,12 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#ifdef MODULE_FIB
#include "net/fib.h"
#ifdef MODULE_GNRC_IPV6
#include "net/gnrc/ipv6.h"
#endif
#endif
#include "mutex.h"
#define ENABLE_DEBUG (0)
@ -28,7 +34,17 @@
/**
* @brief Maximum number of entries handled
*/
#define UNIVERSAL_ADDRESS_MAX_ENTRIES (40)
/* determine the maximum numer of entries */
#ifndef UNIVERSAL_ADDRESS_MAX_ENTRIES
/* all potential users of universal addresses have to add their requirements here */
# if defined(MODULE_FIB) && defined(MODULE_GNRC_IPV6)
# define UA_ADD0 (2 * GNRC_IPV6_FIB_TABLE_SIZE)
# else
# define UA_ADD0 (0)
# endif
# define UNIVERSAL_ADDRESS_MAX_ENTRIES (UA_ADD0)
#endif
/**
* @brief counter indicating the number of entries allocated

View File

@ -1,3 +1,3 @@
CFLAGS += -DFIB_DEVEL_HELPER
CFLAGS += -DFIB_DEVEL_HELPER -DUNIVERSAL_ADDRESS_SIZE=16 -DUNIVERSAL_ADDRESS_MAX_ENTRIES=40
USEMODULE += fib