A default configuraion file for Contiki
The contiki-default-conf.h file is intended as a safe fallback for a number of configuration options in Contiki, to avoid putting too much in the individual contiki-conf.h files.
This commit is contained in:
parent
f5a1ffa90d
commit
2d50a40643
238
core/contiki-default-conf.h
Normal file
238
core/contiki-default-conf.h
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2012, Thingsquare, http://www.thingsquare.com/.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the copyright holder nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CONTIKI_DEFAULT_CONF_H
|
||||||
|
#define CONTIKI_DEFAULT_CONF_H
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* Netstack configuration
|
||||||
|
*
|
||||||
|
* The netstack configuration is typically overridden by the platform
|
||||||
|
* configuration, as defined in contiki-conf.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_RADIO specifies the radio driver. The radio driver
|
||||||
|
typically depends on the radio used on the target hardware. */
|
||||||
|
#ifndef NETSTACK_CONF_RADIO
|
||||||
|
#define NETSTACK_CONF_RADIO nullradio_driver
|
||||||
|
/* #define NETSTACK_CONF_RADIO cc2420_driver */
|
||||||
|
#endif /* NETSTACK_CONF_RADIO */
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_FRAMER specifies the over-the-air frame format used
|
||||||
|
by Contiki radio packets. For IEEE 802.15.4 radios, use the
|
||||||
|
framer_802154 driver. */
|
||||||
|
#ifndef NETSTACK_CONF_FRAMER
|
||||||
|
#define NETSTACK_CONF_FRAMER framer_nullmac
|
||||||
|
/* #define NETSTACK_CONF_FRAMER framer_802154 */
|
||||||
|
#endif /* NETSTACK_CONF_FRAMER */
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_RDC specifies the Radio Duty Cycling (RDC) layer. The
|
||||||
|
nullrdc_driver never turns the radio off and is compatible with all
|
||||||
|
radios, but consumes a lot of power. The contikimac_driver is
|
||||||
|
highly power-efficent and allows sleepy routers, but is not
|
||||||
|
compatible with all radios. */
|
||||||
|
#ifndef NETSTACK_CONF_RDC
|
||||||
|
#define NETSTACK_CONF_RDC nullrdc_driver
|
||||||
|
/* #define NETSTACK_CONF_RDC contikimac_driver */
|
||||||
|
#endif /* NETSTACK_CONF_RDC */
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_MAC specifies the Medium Access Control (MAC)
|
||||||
|
layer. The nullmac_driver does not provide any MAC
|
||||||
|
functionality. The csma_driver is the default CSMA MAC layer, but
|
||||||
|
is not compatible with all radios. */
|
||||||
|
#ifndef NETSTACK_CONF_MAC
|
||||||
|
#define NETSTACK_CONF_MAC nullmac_driver
|
||||||
|
/* #define NETSTACK_CONF_MAC csma_driver */
|
||||||
|
#endif /* NETSTACK_CONF_MAC */
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_NETWORK specifies the network layer and can be either
|
||||||
|
sicslowpan_driver, for IPv6 networking, or rime_driver, for the
|
||||||
|
custom Rime network stack. */
|
||||||
|
#ifndef NETSTACK_CONF_NETWORK
|
||||||
|
#define NETSTACK_CONF_NETWORK rime_driver
|
||||||
|
/* #define NETSTACK_CONF_NETWORK sicslowpan_driver */
|
||||||
|
#endif /* NETSTACK_CONF_NETWORK */
|
||||||
|
|
||||||
|
/* NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE specifies the channel check
|
||||||
|
rate of the RDC layer. This defines how often the RDC will wake up
|
||||||
|
and check for radio channel activity. A higher check rate results
|
||||||
|
in higher communication performance at the cost of a higher power
|
||||||
|
consumption. */
|
||||||
|
#ifndef NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE
|
||||||
|
#define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8
|
||||||
|
#endif /* NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* Packet buffer size options.
|
||||||
|
*
|
||||||
|
* The packet buffer size options can be tweaked on a per-project
|
||||||
|
* basis to reduce memory consumption.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* QUEUEBUF_CONF_NUM specifies the number of queue buffers. Queue
|
||||||
|
buffers are used throughout the Contiki netstack but the
|
||||||
|
configuration option can be tweaked to save memory. Performance can
|
||||||
|
suffer with a too low number of queue buffers though. */
|
||||||
|
#ifndef QUEUEBUF_CONF_NUM
|
||||||
|
#define QUEUEBUF_CONF_NUM 8
|
||||||
|
#endif /* QUEUEBUF_CONF_NUM */
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* uIPv6 configuration options.
|
||||||
|
*
|
||||||
|
* Many of the uIPv6 configuration options can be overriden by a
|
||||||
|
* project-specific configuration to save memory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* UIP_CONF_IPV6 specifies whether or not IPv6 should be used. If IPv6
|
||||||
|
is not used, IPv4 is used instead. */
|
||||||
|
#ifndef UIP_CONF_IPV6
|
||||||
|
#define UIP_CONF_IPV6 1
|
||||||
|
#endif /* UIP_CONF_IPV6 */
|
||||||
|
|
||||||
|
/* UIP_CONF_BUFFER_SIZE specifies how much memory should be reserved
|
||||||
|
for the uIP packet buffer. This sets an upper bound on the largest
|
||||||
|
IP packet that can be received by the system. */
|
||||||
|
#ifndef UIP_CONF_BUFFER_SIZE
|
||||||
|
#define UIP_CONF_BUFFER_SIZE 128
|
||||||
|
#endif /* UIP_CONF_BUFFER_SIZE */
|
||||||
|
|
||||||
|
/* UIP_CONF_ROUTER specifies if the IPv6 node should be a router or
|
||||||
|
not. By default, all Contiki nodes are routers. */
|
||||||
|
#ifndef UIP_CONF_ROUTER
|
||||||
|
#define UIP_CONF_ROUTER 1
|
||||||
|
#endif /* UIP_CONF_ROUTER */
|
||||||
|
|
||||||
|
/* UIP_CONF_IPV6_RPL specifies if RPL is to be used for IPv6
|
||||||
|
routing. */
|
||||||
|
#ifndef UIP_CONF_IPV6_RPL
|
||||||
|
#define UIP_CONF_IPV6_RPL 1
|
||||||
|
#endif /* UIP_CONF_IPV6_RPL */
|
||||||
|
|
||||||
|
/* UIP_CONF_MAX_ROUTES specifies the maximum number of routes that each
|
||||||
|
node will be able to handle. */
|
||||||
|
#ifndef UIP_CONF_MAX_ROUTES
|
||||||
|
#define UIP_CONF_MAX_ROUTES 20
|
||||||
|
#endif /* UIP_CONF_MAX_ROUTES */
|
||||||
|
|
||||||
|
/* UIP_CONF_UDP specifies if UDP support should be included or
|
||||||
|
not. Disabling UDP saves memory but breaks a lot of stuff. */
|
||||||
|
#ifndef UIP_CONF_UDP
|
||||||
|
#define UIP_CONF_UDP 1
|
||||||
|
#endif /* UIP_CONF_UDP */
|
||||||
|
|
||||||
|
/* UIP_CONF_MAX_CONNECTIONS specifies the maximum number of
|
||||||
|
simultaneous TCP connections. */
|
||||||
|
#ifndef UIP_CONF_MAX_CONNECTIONS
|
||||||
|
#define UIP_CONF_MAX_CONNECTIONS 8
|
||||||
|
#endif /* UIP_CONF_MAX_CONNECTIONS */
|
||||||
|
|
||||||
|
/* UIP_CONF_TCP specifies if TCP support should be included or
|
||||||
|
not. Disabling TCP saves memory. */
|
||||||
|
#ifndef UIP_CONF_TCP
|
||||||
|
#define UIP_CONF_TCP 1
|
||||||
|
#endif /* UIP_CONF_TCP */
|
||||||
|
|
||||||
|
/* UIP_CONF_MAX_CONNECTIONS specifies the maximum number of
|
||||||
|
simultaneous TCP connections. */
|
||||||
|
#ifndef UIP_CONF_MAX_CONNECTIONS
|
||||||
|
#define UIP_CONF_MAX_CONNECTIONS 8
|
||||||
|
#endif /* UIP_CONF_MAX_CONNECTIONS */
|
||||||
|
|
||||||
|
|
||||||
|
/* UIP_CONF_TCP_SPLIT enables a performance optimization hack, where
|
||||||
|
each maximum-sized TCP segment is split into two, to avoid the
|
||||||
|
performance degradation that is caused by delayed ACKs. */
|
||||||
|
#ifndef UIP_CONF_TCP_SPLIT
|
||||||
|
#define UIP_CONF_TCP_SPLIT 0
|
||||||
|
#endif /* UIP_CONF_TCP_SPLIT */
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* 6lowpan configuration options.
|
||||||
|
*
|
||||||
|
* These options change the behavior of the 6lowpan header compression
|
||||||
|
* code (sicslowpan). They typically depend on the type of radio used
|
||||||
|
* on the target platform, and are therefore platform-specific.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS specifies how many times the
|
||||||
|
MAC layer should resend packets if no link-layer ACK was
|
||||||
|
received. This only makes sense with the csma_driver
|
||||||
|
NETSTACK_CONF_MAC. */
|
||||||
|
#ifndef SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS
|
||||||
|
#define SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS 4
|
||||||
|
#endif /* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS */
|
||||||
|
|
||||||
|
/* SICSLOWPAN_CONF_FRAG specifies if 6lowpan fragmentation should be
|
||||||
|
used or not. Fragmentation is on by default. */
|
||||||
|
#ifndef SICSLOWPAN_CONF_FRAG
|
||||||
|
#define SICSLOWPAN_CONF_FRAG 1
|
||||||
|
#endif /* SICSLOWPAN_CONF_FRAG */
|
||||||
|
|
||||||
|
/* SICSLOWPAN_CONF_MAC_MAX_PAYLOAD specifies the maximum size of
|
||||||
|
packets before they get fragmented. The default is 127 bytes (the
|
||||||
|
maximum size of a 802.15.4 frame) - 25 bytes (for the 802.15.4 MAC
|
||||||
|
layer header). This can be increased for systems with larger packet
|
||||||
|
sizes. */
|
||||||
|
#ifndef SICSLOWPAN_CONF_MAC_MAX_PAYLOAD
|
||||||
|
#define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD (127 - 25)
|
||||||
|
#endif /* SICSLOWPAN_CONF_MAC_MAX_PAYLOAD */
|
||||||
|
|
||||||
|
/* SICSLOWPAN_CONF_COMPRESSION_THRESHOLD sets a lower threshold for
|
||||||
|
when packets should not be compressed. This is used by ContikiMAC,
|
||||||
|
which requires packets to be larger than a given minimum size. */
|
||||||
|
#ifndef SICSLOWPAN_CONF_COMPRESSION_THRESHOLD
|
||||||
|
#define SICSLOWPAN_CONF_COMPRESSION_THRESHOLD 0
|
||||||
|
/* #define SICSLOWPAN_CONF_COMPRESSION_THRESHOLD 63 */
|
||||||
|
#endif /* SICSLOWPAN_CONF_COMPRESSION_THRESHOLD */
|
||||||
|
|
||||||
|
/* SICSLOWPAN_CONF_COMPRESSION specifies what 6lowpan compression
|
||||||
|
mechanism to be used. 6lowpan hc06 is the default in Contiki. */
|
||||||
|
#ifndef SICSLOWPAN_CONF_COMPRESSION
|
||||||
|
#define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_HC06
|
||||||
|
#endif /* SICSLOWPAN_CONF_COMPRESSION */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/* ContikiMAC configuration options.
|
||||||
|
*
|
||||||
|
* These are typically configured on a per-platform basis.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* CONTIKIMAC_CONF_WITH_PHASE_OPTIMIZATION specifies if ContikiMAC
|
||||||
|
should optimize for the phase of neighbors. The phase optimization
|
||||||
|
may reduce power consumption but is not compatible with all timer
|
||||||
|
settings and is therefore off by default. */
|
||||||
|
#ifndef CONTIKIMAC_CONF_WITH_PHASE_OPTIMIZATION
|
||||||
|
#define CONTIKIMAC_CONF_WITH_PHASE_OPTIMIZATION 0
|
||||||
|
#endif /* CONTIKIMAC_CONF_WITH_PHASE_OPTIMIZATION */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CONTIKI_DEFAULT_CONF_H */
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include "contiki-version.h"
|
#include "contiki-version.h"
|
||||||
#include "contiki-conf.h"
|
#include "contiki-conf.h"
|
||||||
|
#include "contiki-default-conf.h"
|
||||||
|
|
||||||
#include "sys/process.h"
|
#include "sys/process.h"
|
||||||
#include "sys/autostart.h"
|
#include "sys/autostart.h"
|
||||||
|
|
|
@ -59,13 +59,15 @@ void uip_ds6_notification_add(struct uip_ds6_notification *n,
|
||||||
|
|
||||||
|
|
||||||
/* Routing table */
|
/* Routing table */
|
||||||
#define UIP_DS6_ROUTE_NBS 0
|
#ifndef UIP_CONF_MAX_ROUTES
|
||||||
#ifndef UIP_CONF_DS6_ROUTE_NBU
|
#ifdef UIP_CONF_DS6_ROUTE_NBU
|
||||||
#define UIP_DS6_ROUTE_NBU 4
|
#define UIP_DS6_ROUTE_NB UIP_CONF_DS6_ROUTE_NBU
|
||||||
#else
|
#else /* UIP_CONF_DS6_ROUTE_NBU */
|
||||||
#define UIP_DS6_ROUTE_NBU UIP_CONF_DS6_ROUTE_NBU
|
#define UIP_DS6_ROUTE_NB 4
|
||||||
#endif
|
#endif /* UIP_CONF_DS6_ROUTE_NBU */
|
||||||
#define UIP_DS6_ROUTE_NB UIP_DS6_ROUTE_NBS + UIP_DS6_ROUTE_NBU
|
#else /* UIP_CONF_MAX_ROUTES */
|
||||||
|
#define UIP_DS6_ROUTE_NB UIP_CONF_MAX_ROUTES
|
||||||
|
#endif /* UIP_CONF_MAX_ROUTES */
|
||||||
|
|
||||||
/** \brief define some additional RPL related route state and
|
/** \brief define some additional RPL related route state and
|
||||||
* neighbor callback for RPL - if not a DS6_ROUTE_STATE is already set */
|
* neighbor callback for RPL - if not a DS6_ROUTE_STATE is already set */
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "net/uip-ds6.h"
|
#include "net/uip-ds6.h"
|
||||||
#include "net/uip-icmp6.h"
|
#include "net/uip-icmp6.h"
|
||||||
|
#include "contiki-default-conf.h"
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 0
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|
Loading…
Reference in a new issue