/* * Copyright (C) 2017 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @ingroup net_gnrc_netif2 * @{ * * @file * @brief Configuration macros for @ref net_gnrc_netif2 * * @author Martine Lenders */ #ifndef NET_GNRC_NETIF2_CONF_H #define NET_GNRC_NETIF2_CONF_H #include "net/ieee802154.h" #include "net/ethernet/hdr.h" #include "thread.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Maximum number of network interfaces * * @note Intentionally not calling it `GNRC_NETIF2_NUMOF` to not require * rewrites throughout the stack. */ #ifndef GNRC_NETIF_NUMOF #define GNRC_NETIF_NUMOF (1) #endif /** * @brief Default priority for network interface threads */ #ifndef GNRC_NETIF2_PRIO #define GNRC_NETIF2_PRIO (THREAD_PRIORITY_MAIN - 5) #endif /** * @brief Number of multicast addresses needed for @ref net_gnrc_rpl "RPL". * * @note Used for calculation of @ref GNRC_NETIF2_IPV6_GROUPS_NUMOF */ #ifdef MODULE_GNRC_RPL #define GNRC_NETIF2_RPL_ADDR (1) #else #define GNRC_NETIF2_RPL_ADDR (0) #endif /** * @brief Number of multicast addresses needed for a @ref net_gnrc_ipv6 "IPv6" * router * * @note Used for calculation of @ref GNRC_NETIF2_IPV6_GROUPS_NUMOF */ #ifdef MODULE_GNRC_IPV6_ROUTER #define GNRC_NETIF2_IPV6_RTR_ADDR (1) #else #define GNRC_NETIF2_IPV6_RTR_ADDR (0) #endif /** * @brief Maximum number of unicast and anycast addresses per interface * * Default: 2 (link-local + corresponding global address) */ #ifndef GNRC_NETIF2_IPV6_ADDRS_NUMOF #define GNRC_NETIF2_IPV6_ADDRS_NUMOF (2) #endif /** * @brief Maximum number of multicast groups per interface * * Default: 2 (all-nodes + solicited-nodes of link-local and global unicast * address) + @ref GNRC_NETIF2_RPL_ADDR + @ref GNRC_NETIF2_IPV6_RTR_ADDR */ #ifndef GNRC_NETIF2_IPV6_GROUPS_NUMOF #define GNRC_NETIF2_IPV6_GROUPS_NUMOF (2 + GNRC_NETIF2_RPL_ADDR + GNRC_NETIF2_IPV6_RTR_ADDR) #endif /** * @brief Maximum length of the link-layer address. * * The value for the maximum length of a link-layer address is dependent * on the @ref drivers_netdev_api "netdev" adapters compiled in: * - Setting it via `CFLAGS` has the most precedence. * - The default is 8. * - 1, if only @ref drivers_cc110x devices are compiled in. * - @ref ETHERNET_ADDR_LEN, if additionally (or only) ethernet devices are * compiled in. * - @ref IEEE802154_LONG_ADDRESS_LEN, if additionally (or only) IEEE802.15.4 * devices are compiled in. * * @note Implementers note: From longest to shortest extend, if new link-layer * address types are included */ #ifndef GNRC_NETIF2_L2ADDR_MAXLEN #if defined(MODULE_NETDEV_IEEE802154) || defined(MODULE_XBEE) #define GNRC_NETIF2_L2ADDR_MAXLEN (IEEE802154_LONG_ADDRESS_LEN) #elif MODULE_NETDEV_ETH #define GNRC_NETIF2_L2ADDR_MAXLEN (ETHERNET_ADDR_LEN) #elif MODULE_CC110X #define GNRC_NETIF2_L2ADDR_MAXLEN (1U) #else #define GNRC_NETIF2_L2ADDR_MAXLEN (8U) #endif #endif #ifndef GNRC_NETIF2_DEFAULT_HL #define GNRC_NETIF2_DEFAULT_HL (64U) /**< default hop limit */ #endif #ifdef __cplusplus } #endif #endif /* NET_GNRC_NETIF2_CONF_H */ /** @} */