/* contiki-conf.h - These settings override the default configuration */ /* * Copyright (c) 2016 Intel Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #ifndef __CONTIKI_CONF_H__ #define __CONTIKI_CONF_H__ #define PACK_ALIAS_STRUCT __attribute__((__packed__,__may_alias__)) #define CCIF #define CLIF typedef uint32_t clock_time_t; typedef unsigned int uip_stats_t; #define CLOCK_CONF_SECOND sys_clock_ticks_per_sec /* It is either IPv6 or IPv4 but not both at the same time. */ #ifdef CONFIG_NETWORKING_WITH_IPV6 #define NETSTACK_CONF_WITH_IPV6 1 #define UIP_CONF_ICMP6 1 #elif CONFIG_NETWORKING_WITH_IPV4 #define NETSTACK_CONF_WITH_IPV6 0 #else #error "Either IPv6 or IPv4 needs to be supported." #endif /* The actual MTU size is defined in uipopt.h */ #define UIP_CONF_BUFFER_SIZE UIP_LINK_MTU #ifdef CONFIG_NETWORKING_WITH_TCP #define UIP_CONF_TCP 1 #ifdef CONFIG_TCP_DISABLE_ACTIVE_OPEN #define UIP_CONF_ACTIVE_OPEN 0 #else /* CONFIG_TCP_DISABLE_ACTIVE_OPEN */ #define UIP_CONF_ACTIVE_OPEN 1 #endif /* CONFIG_TCP_DISABLE_ACTIVE_OPEN */ #if CONFIG_TCP_MSS > 0 #define UIP_CONF_TCP_MSS CONFIG_TCP_MSS #endif /* CONFIG_TCP_MSS */ #if CONFIG_TCP_RECEIVE_WINDOW > 0 #define UIP_CONF_RECEIVE_WINDOW CONFIG_TCP_RECEIVE_WINDOW #endif /* CONFIG_TCP_RECEIVE_WINDOW */ #else #define UIP_CONF_TCP 0 #endif /* We do not want to be a router */ #define UIP_CONF_ROUTER 0 /* No Rime */ #define NETSTACK_CONF_WITH_RIME 0 /* How many IPv6 addresses will be allocated for the user (default is 2). * Increased this setting so that user can specify multicast addresses. */ #define UIP_CONF_DS6_ADDR_NBU 4 /* The queuebuf count defines how many fragments we are able to * receive. Value 13 means that we can receive full IPv6 data * (1280 bytes), we need also some extra buffers for temp use. */ #define QUEUEBUF_CONF_NUM (13 + 5) /* Do not just drop packets because of some other packet is sent. * So queue the packet and send it later. */ #define UIP_CONF_IPV6_QUEUE_PKT 1 #ifdef SICSLOWPAN_CONF_ENABLE /* Min and Max compressible UDP ports */ #define SICSLOWPAN_UDP_PORT_MIN 0xF0B0 #define SICSLOWPAN_UDP_PORT_MAX 0xF0BF /* F0B0 + 15 */ #define NETSTACK_CONF_COMPRESS sicslowpan_compression #ifdef CONFIG_NETWORKING_WITH_BT #define NETSTACK_CONF_FRAGMENT null_fragmentation #else #define NETSTACK_CONF_FRAGMENT sicslowpan_fragmentation #endif #else #define NETSTACK_CONF_COMPRESS null_compression #define NETSTACK_CONF_FRAGMENT null_fragmentation #endif /* SICSLOWPAN_CONF_ENABLE */ #ifdef CONFIG_NETWORKING_WITH_15_4 #ifdef CONFIG_NETWORKING_WITH_15_4_PAN_ID #define IEEE802154_CONF_PANID CONFIG_NETWORKING_WITH_15_4_PAN_ID #endif /* CONFIG_NETWORKING_WITH_15_4_PAN_ID */ #define NETSTACK_CONF_FRAMER framer_802154 #ifdef CONFIG_NETWORKING_WITH_6LOWPAN #if defined(CONFIG_NETWORKING_WITH_15_4_RDC_SICSLOWMAC) #define NETSTACK_CONF_RDC sicslowmac_driver #elif defined(CONFIG_NETWORKING_WITH_15_4_RDC_SIMPLE) #define NETSTACK_CONF_RDC simplerdc_driver /* Simple RDC config*/ #ifdef CONFIG_TI_CC2520_AUTO_ACK #define SIMPLERDC_802154_AUTOACK 1 #else #define SIMPLERDC_802154_SEND_ACK 1 #endif #ifdef CONFIG_NETWORKING_WITH_15_4_ALWAYS_ACK #define SIMPLERDC_802154_ACK_REQ 1 #endif #define SIMPLERDC_MAX_RETRANSMISSIONS 3 #endif /* RDC driver */ #endif /* CONFIG_NETWORKING_WITH_6LOWPAN */ #ifdef CONFIG_NETWORKING_WITH_15_4_MAC_NULL #define NETSTACK_CONF_MAC nullmac_driver #endif #ifdef CONFIG_NETWORKING_WITH_15_4_MAC_CSMA #define NETSTACK_CONF_MAC csma_driver #endif #define LINKADDR_CONF_SIZE 8 #define UIP_CONF_LL_802154 1 #define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1 #ifdef CONFIG_6LOWPAN_COMPRESSION_IPHC #define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_IPHC #else /* 6lowpan compression method */ #define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_IPV6 #endif /* 6lowpan compression method */ #ifdef CONFIG_15_4_BEACON_SUPPORT #define FRAMER_802154_HANDLER handler_802154_frame_received #endif /* CONFIG_15_4_BEACON_SUPPORT */ #ifdef CONFIG_15_4_BEACON_STATS #define HANDLER_802154_CONF_STATS 1 #endif /* CONFIG_15_4_BEACON_STATS */ #else /* CONFIG_NETWORKING_WITH_15_4 */ #define NETSTACK_CONF_FRAMER framer_nullmac #define NETSTACK_CONF_RDC simplerdc_driver #define NETSTACK_CONF_MAC nullmac_driver #define LINKADDR_CONF_SIZE 6 #ifdef CONFIG_NETWORKING_WITH_BT #define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_IPHC #endif /* CONFIG_NETWORKING_WITH_BT */ #endif /* CONFIG_NETWORKING_WITH_15_4 */ #define NETSTACK_CONF_LLSEC nullsec_driver #ifdef CONFIG_NETWORKING_WITH_15_4_TI_CC2520 #define NETSTACK_CONF_RADIO cc2520_15_4_radio_driver #endif #ifdef CONFIG_NETWORKING_WITH_RPL #define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_SMRF #define UIP_CONF_IPV6_MULTICAST 1 #ifdef CONFIG_RPL_WITH_MRHOF #define RPL_CONF_OF rpl_mrhof #else #define RPL_CONF_OF rpl_of0 #endif /* CONFIG_RPL_WITH_MRHOF */ #ifdef CONFIG_RPL_PROBING #define RPL_CONF_WITH_PROBING 1 #else #define RPL_CONF_WITH_PROBING 0 #endif /* CONFIG_RPL_PROBING */ #ifdef CONFIG_RPL_STATS #define RPL_CONF_STATS 1 #else #define RPL_CONF_STATS 0 #endif /* CONFIG_RPL_STATS */ #else /* CONFIG_NETWORKING_WITH_RPL */ #define RPL_CONF_STATS 0 #endif #if defined(CONFIG_NETWORKING_STATISTICS) && defined(CONFIG_L2_BUFFERS) #define NET_MAC_CONF_STATS 1 #else #define NET_MAC_CONF_STATS 0 #endif #if defined(CONFIG_COAP_STATS) #define NET_COAP_CONF_STATS 1 #define NET_COAP_STAT(code) (net_coap_stats.code) #else #define NET_COAP_CONF_STATS 0 #define NET_COAP_STAT(code) #endif #ifdef CONFIG_NETWORKING_IPV6_NO_ND /* Disabling ND will simplify the IPv6 address assignment. * This should only be done in testing phase. */ #define UIP_CONF_ND6_SEND_NA 0 #else #define UIP_CONF_ND6_SEND_NA 1 #endif #ifndef NETSTACK_CONF_RADIO /* #error "No radio configured, cannot continue!" */ #endif #ifdef CONFIG_ER_COAP #ifndef REST #define REST REGISTERED_ENGINE_ERBIUM #endif #endif #ifdef CONFIG_ER_COAP_WITH_DTLS #define ER_COAP_WITH_DTLS 1 #else #define ER_COAP_WITH_DTLS 0 #endif #ifdef CONFIG_ER_COAP_CLIENT #define COAP_OBSERVE_CLIENT 1 #else #undef COAP_OBSERVE_CLIENT #endif #ifdef CONFIG_NETWORKING_STATISTICS #define UIP_CONF_STATISTICS 1 #endif #ifdef CONFIG_ETHERNET #define UIP_CONF_LLH_LEN 14 #endif #if defined(CONFIG_UDP_MAX_CONNECTIONS) #define UIP_CONF_UDP_CONNS CONFIG_UDP_MAX_CONNECTIONS #endif #if defined(CONFIG_TCP_MAX_CONNECTIONS) #define UIP_CONF_MAX_CONNECTIONS CONFIG_TCP_MAX_CONNECTIONS #endif #if defined(CONFIG_NETWORKING_MAX_NEIGHBORS) #define NBR_TABLE_CONF_MAX_NEIGHBORS CONFIG_NETWORKING_MAX_NEIGHBORS #endif #endif /* __CONTIKI_CONF_H__ */