Contiki 2.6

contiki-conf.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2006, Technical University of Munich
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 3. Neither the name of the Institute nor the names of its contributors
00014  *    may be used to endorse or promote products derived from this software
00015  *    without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
00018  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
00021  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00023  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00024  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00025  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00026  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00027  * SUCH DAMAGE.
00028  *
00029  * This file is part of the Contiki operating system.
00030  *
00031  * @(#)$$
00032  */
00033 
00034 /**
00035  * \file
00036  *         Configuration for RZRAVEN USB stick "jackdaw"
00037  *
00038  * \author
00039  *         Simon Barner <barner@in.tum.de>
00040  *         David Kopf <dak664@embarqmail.com>
00041  */
00042 
00043 #ifndef __CONTIKI_CONF_H__
00044 #define __CONTIKI_CONF_H__
00045 
00046 /* ************************************************************************** */
00047 //#pragma mark Basic Configuration
00048 /* ************************************************************************** */
00049 
00050 /* Platform name, type, and MCU clock rate */
00051 #define PLATFORM_NAME  "RAVENUSB"
00052 #define PLATFORM_TYPE  RAVENUSB_C
00053 #ifndef F_CPU
00054 #define F_CPU          8000000UL
00055 #endif
00056 
00057 #include <stdbool.h>
00058 #include <stdint.h>
00059 #include <string.h>
00060 
00061 /* The AVR tick interrupt usually is done with an 8 bit counter around 128 Hz.
00062  * 125 Hz needs slightly more overhead during the interrupt, as does a 32 bit
00063  * clock_time_t.
00064  */
00065  /* Clock ticks per second */
00066 #define CLOCK_CONF_SECOND 125
00067 #if 1
00068 /* 16 bit counter overflows every ~10 minutes */
00069 typedef unsigned short clock_time_t;
00070 #define CLOCK_LT(a,b)  ((signed short)((a)-(b)) < 0)
00071 #define INFINITE_TIME 0xffff
00072 #define RIME_CONF_BROADCAST_ANNOUNCEMENT_MAX_TIME INFINITE_TIME/CLOCK_CONF_SECOND /* Default uses 600 */
00073 #define COLLECT_CONF_BROADCAST_ANNOUNCEMENT_MAX_TIME INFINITE_TIME/CLOCK_CONF_SECOND /* Default uses 600 */
00074 #else
00075 typedef unsigned long clock_time_t;
00076 #define CLOCK_LT(a,b)  ((signed long)((a)-(b)) < 0)
00077 #define INFINITE_TIME 0xffffffff
00078 #endif
00079 /* These routines are not part of the contiki core but can be enabled in cpu/avr/clock.c */
00080 void clock_delay_msec(uint16_t howlong);
00081 void clock_adjust_ticks(clock_time_t howmany);
00082 
00083 /* Use EEPROM settings manager, or hard-coded EEPROM reads? */
00084 /* Generate random MAC address on first startup? */
00085 /* Random number from radio clock skew or ADC noise? */
00086 #define JACKDAW_CONF_USE_SETTINGS               0
00087 #define JACKDAW_CONF_RANDOM_MAC         0
00088 #define RNG_CONF_USE_RADIO_CLOCK            1
00089 //#define RNG_CONF_USE_ADC      1
00090 
00091 /* COM port to be used for SLIP connection. Not tested on Jackdaw. */
00092 #define SLIP_PORT RS232_PORT_0
00093 
00094 /* Pre-allocated memory for loadable modules heap space (in bytes)*/
00095 /* Default is 4096. Currently used only when elfloader is present. Not tested on Jackdaw */
00096 //#define MMEM_CONF_SIZE 256
00097 
00098 /* Starting address for code received via the codeprop facility. Not tested on Jackdaw */
00099 typedef unsigned long off_t;
00100 //#define EEPROMFS_ADDR_CODEPROP 0x8000
00101 
00102 /* Simple stack monitor. Status is displayed from the USB menu with 'm' command */
00103 #define CONFIG_STACK_MONITOR 1
00104 
00105 /* RADIO_CONF_CALIBRATE_INTERVAL is used in rf230bb and clock.c. If nonzero a 256 second interval is used */
00106 /* Calibration is automatic when the radio wakes so is not necessary when the radio periodically sleeps */
00107 //#define RADIO_CONF_CALIBRATE_INTERVAL 256
00108 
00109 /* RADIOSTATS is used in rf230bb, clock.c and the webserver cgi to report radio usage */
00110 //#define RADIOSTATS 1
00111 
00112 /* Possible watchdog timeouts depend on mcu. Default is WDTO_2S. -1 Disables the watchdog. */
00113 //#define WATCHDOG_CONF_TIMEOUT -1
00114 
00115 /* ************************************************************************** */
00116 //#pragma mark USB Ethernet Hooks
00117 /* ************************************************************************** */
00118 
00119 #ifndef USB_ETH_HOOK_IS_READY_FOR_INBOUND_PACKET
00120 #if RF230BB
00121 #define USB_ETH_HOOK_IS_READY_FOR_INBOUND_PACKET()              rf230_is_ready_to_send()
00122 #else
00123 static inline uint8_t radio_is_ready_to_send_() {
00124         switch(radio_get_trx_state()) {
00125                 case BUSY_TX:
00126                 case BUSY_TX_ARET:
00127                         return 0;
00128         }
00129         return 1;
00130 }
00131 #define USB_ETH_HOOK_IS_READY_FOR_INBOUND_PACKET()              radio_is_ready_to_send_()
00132 #endif
00133 #endif
00134 
00135 #ifndef USB_ETH_HOOK_HANDLE_INBOUND_PACKET
00136 #define USB_ETH_HOOK_HANDLE_INBOUND_PACKET(buffer,len)  do { uip_len = len ; mac_ethernetToLowpan(buffer); } while(0)
00137 #endif
00138 
00139 #ifndef USB_ETH_HOOK_SET_PROMISCIOUS_MODE
00140 #if RF230BB
00141 #define USB_ETH_HOOK_SET_PROMISCIOUS_MODE(value)        rf230_set_promiscuous_mode(value)
00142 #else           
00143 #define USB_ETH_HOOK_SET_PROMISCIOUS_MODE(value)        radio_set_trx_state(value?RX_ON:RX_AACK_ON)
00144 #endif
00145 #endif
00146 
00147 #ifndef USB_ETH_HOOK_INIT
00148 #define USB_ETH_HOOK_INIT()             mac_ethernetSetup()
00149 #endif
00150 
00151 /* ************************************************************************** */
00152 //#pragma mark RF230BB Hooks
00153 /* ************************************************************************** */
00154 
00155 //#define RF230BB_HOOK_RADIO_OFF()      Led1_off()
00156 //#define RF230BB_HOOK_RADIO_ON()               Led1_on()
00157 #define RF230BB_HOOK_TX_PACKET(buffer,total_len) mac_log_802_15_4_tx(buffer,total_len)
00158 #define RF230BB_HOOK_RX_PACKET(buffer,total_len) mac_log_802_15_4_rx(buffer,total_len)
00159 #define RF230BB_HOOK_IS_SEND_ENABLED()  mac_is_send_enabled()
00160 extern bool mac_is_send_enabled(void);
00161 extern void mac_log_802_15_4_tx(const uint8_t* buffer, size_t total_len);
00162 extern void mac_log_802_15_4_rx(const uint8_t* buffer, size_t total_len);
00163 
00164 
00165 /* ************************************************************************** */
00166 //#pragma mark USB CDC-ACM (UART) Hooks
00167 /* ************************************************************************** */
00168 
00169 #define USB_CDC_ACM_HOOK_TX_END(char)                   vcptx_end_led()
00170 #define USB_CDC_ACM_HOOK_CLS_CHANGED(state)             vcptx_end_led()
00171 #define USB_CDC_ACM_HOOK_CONFIGURED()                   vcptx_end_led()
00172 
00173 /* ************************************************************************** */
00174 //#pragma mark Serial Port Settings
00175 /* ************************************************************************** */
00176 /* Set USB_CONF_MACINTOSH to prefer CDC-ECM+DEBUG enumeration for Mac/Linux 
00177  * Leave undefined to prefer RNDIS+DEBUG enumeration for Windows/Linux
00178  * TODO:Serial port would enumerate in all cases and prevent falling through to
00179  * the supported network interface if USB_CONF_MACINTOSH is used with Windows
00180  * or vice versa. The Mac configuration is set up to still enumerate as RNDIS-ONLY
00181  * on Windows (without the serial port). 
00182  * At present the Windows configuration will not enumerate on the Mac at all,
00183  * since it wants a custom descriptor for USB composite devices.
00184  */ 
00185 #define USB_CONF_MACINTOSH 0
00186 
00187 /* Set USB_CONF_SERIAL to enable the USB serial port that allows control of the
00188  * run-time configuration (COMx on Windows, ttyACMx on Linux, tty.usbmodemx on Mac)
00189  * Debug printfs will go to this port unless USB_CONF_RS232 is set.
00190  */
00191 #define USB_CONF_SERIAL          1
00192  
00193 /* RS232 debugs have less effect on network timing and are less likely
00194  * to be dropped due to buffer overflow. Only tx is implemented at present.
00195  * The tx pad is the middle one behind the jackdaw leds.
00196  * RS232 output will work with or without enabling the USB serial port
00197  */
00198 #define USB_CONF_RS232           1
00199 
00200 /* Disable mass storage enumeration for more program space */
00201 //#define USB_CONF_STORAGE         1   /* TODO: Mass storage is currently broken */
00202 
00203 /* ************************************************************************** */
00204 //#pragma mark UIP Settings
00205 /* ************************************************************************** */
00206 /* Network setup. The new NETSTACK interface requires RF230BB (as does ip4) */
00207 /* These mostly have no effect when the Jackdaw is a repeater (CONTIKI_NO_NET=1 using fakeuip.c) */
00208 
00209 #if RF230BB
00210 #else
00211 #define PACKETBUF_CONF_HDR_SIZE    0         //RF230 combined driver/mac handles headers internally
00212 #endif /*RF230BB */
00213 
00214 #if UIP_CONF_IPV6
00215 #define RIMEADDR_CONF_SIZE       8
00216 #define UIP_CONF_ICMP6           1
00217 #define UIP_CONF_UDP             1
00218 #define UIP_CONF_TCP             0
00219 //#define UIP_CONF_IPV6_RPL        0
00220 #define NETSTACK_CONF_NETWORK       sicslowpan_driver
00221 #define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_HC06
00222 #else
00223 /* ip4 should build but is thoroughly untested */
00224 #define RIMEADDR_CONF_SIZE       2
00225 #define NETSTACK_CONF_NETWORK    rime_driver
00226 #endif /* UIP_CONF_IPV6 */
00227 
00228 /* See uip-ds6.h */
00229 #define UIP_CONF_DS6_NBR_NBU     2
00230 #define UIP_CONF_DS6_DEFRT_NBU   2
00231 #define UIP_CONF_DS6_PREFIX_NBU  3
00232 #define UIP_CONF_DS6_ROUTE_NBU   2
00233 #define UIP_CONF_DS6_ADDR_NBU    3
00234 #define UIP_CONF_DS6_MADDR_NBU   0
00235 #define UIP_CONF_DS6_AADDR_NBU   0
00236 
00237 #define UIP_CONF_LL_802154       1
00238 #define UIP_CONF_LLH_LEN         14
00239 #define UIP_CONF_BUFSIZE                 UIP_LINK_MTU + UIP_LLH_LEN + 4   /* +4 for vlan on macosx */
00240 
00241 /* 10 bytes per stateful address context - see sicslowpan.c */
00242 /* Default is 1 context with prefix aaaa::/64 */
00243 /* These must agree with all the other nodes or there will be a failure to communicate! */
00244 #//define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
00245 #define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xaa;addr_contexts[0].prefix[1]=0xaa;}
00246 #define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
00247 #define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
00248 
00249 /* 211 bytes per queue buffer */
00250 #define QUEUEBUF_CONF_NUM        8
00251 
00252 /* 54 bytes per queue ref buffer */
00253 #define QUEUEBUF_CONF_REF_NUM    2
00254 
00255 #define UIP_CONF_MAX_CONNECTIONS 1
00256 #define UIP_CONF_MAX_LISTENPORTS 1
00257 
00258 #define UIP_CONF_IP_FORWARD      0
00259 #define UIP_CONF_FWCACHE_SIZE    0
00260 
00261 #define UIP_CONF_IPV6_CHECKS     1
00262 #define UIP_CONF_IPV6_QUEUE_PKT  1
00263 #define UIP_CONF_IPV6_REASSEMBLY 0
00264 
00265 #define UIP_CONF_UDP_CHECKSUMS   1
00266 #define UIP_CONF_TCP_SPLIT       0
00267 
00268 typedef unsigned short uip_stats_t;
00269 #define UIP_CONF_STATISTICS      1
00270 
00271   /* Network setup */
00272 #if 1              /* No radio cycling */
00273 #define NETSTACK_CONF_MAC         nullmac_driver
00274 #define NETSTACK_CONF_RDC         sicslowmac_driver
00275 #define NETSTACK_CONF_FRAMER      framer_802154
00276 #define NETSTACK_CONF_RADIO       rf230_driver
00277 #define CHANNEL_802_15_4          26
00278 /* If nonzero an interval of 256 seconds is used at present */
00279 #define RADIO_CONF_CALIBRATE_INTERVAL 256
00280 /* AUTOACK receive mode gives better rssi measurements, even if ACK is never requested */
00281 #define RF230_CONF_AUTOACK        1
00282 /* Request 802.15.4 ACK on all packets sent by sicslowpan.c (else autoretry) */
00283 /* Broadcasts will be duplicated by the retry count, since no one will ACK them! */
00284 #define SICSLOWPAN_CONF_ACK_ALL   0
00285 /* Number of auto retry attempts 0-15 (0 implies don't use extended TX_ARET_ON mode with CCA) */
00286 #define RF230_CONF_AUTORETRIES    2
00287 /* CCA theshold energy -91 to -61 dBm (default -77). Set this smaller than the expected minimum rssi to avoid packet collisions */
00288 /* The Jackdaw menu 'm' command is helpful for determining the smallest ever received rssi */
00289 #define RF230_CONF_CCA_THRES    -85
00290 /* Number of CSMA attempts 0-7. 802.15.4 2003 standard max is 5. */
00291 #define RF230_CONF_CSMARETRIES    5
00292 /* Allow sneeze command from jackdaw menu. Useful for testing CCA on other radios */
00293 /* During sneezing, any access to an RF230 register will hang the MCU and cause a watchdog reset */
00294 /* The host interface, jackdaw menu and rf230_send routines are temporarily disabled to prevent this */
00295 /* But some calls from an internal uip stack might get through, e.g. from CCA or low power protocols, */
00296 /* as temporarily disabling all the possible accesses would add considerable complication to the radio driver! */
00297 #define RF230_CONF_SNEEZER        1
00298 /* Allow 6loWPAN fragmentation (more efficient for large payloads over a reliable channel) */
00299 #define SICSLOWPAN_CONF_FRAG      1
00300 /* Timeout for fragment reassembly. A reissued browser GET will also cancel reassembly, typically in 2-3 seconds */
00301 #define SICSLOWPAN_CONF_MAXAGE    3
00302 /* Allow sneeze command from jackdaw menu */
00303 #define RF230_CONF_SNEEZE         1
00304 
00305 #elif 1  /* Contiki-mac radio cycling */
00306 #define NETSTACK_CONF_MAC         nullmac_driver
00307 //#define NETSTACK_CONF_MAC         csma_driver
00308 #define NETSTACK_CONF_RDC         contikimac_driver
00309 #define NETSTACK_CONF_FRAMER      framer_802154
00310 #define NETSTACK_CONF_RADIO       rf230_driver
00311 #define CHANNEL_802_15_4          26
00312 /* Enable extended mode with autoack, but no csma/autoretry */
00313 #define RF230_CONF_AUTORETRIES    1
00314 #define RF230_CONF_AUTOACK        1
00315 #define RF230_CONF_CSMARETRIES    0
00316 #define SICSLOWPAN_CONF_FRAG      1
00317 #define SICSLOWPAN_CONF_MAXAGE    3
00318 /* Jackdaw has USB power, can be always listening */
00319 #define CONTIKIMAC_CONF_RADIO_ALWAYS_ON  1
00320 #define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8
00321 
00322 /* Contiki-mac is a memory hog */
00323 #define PROCESS_CONF_NO_PROCESS_NAMES 1
00324 #undef QUEUEBUF_CONF_NUM
00325 #define QUEUEBUF_CONF_NUM           2
00326 #undef QUEUEBUF_CONF_REF_NUM
00327 #define QUEUEBUF_CONF_REF_NUM       1
00328 #undef UIP_CONF_TCP_SPLIT
00329 #define UIP_CONF_TCP_SPLIT          0
00330 #undef UIP_CONF_STATISTICS
00331 #define UIP_CONF_STATISTICS         0
00332 #undef UIP_CONF_IPV6_QUEUE_PKT
00333 #define UIP_CONF_IPV6_QUEUE_PKT     0
00334 #define UIP_CONF_PINGADDRCONF       0
00335 #define UIP_CONF_LOGGING            0
00336 #undef UIP_CONF_MAX_CONNECTIONS
00337 #define UIP_CONF_MAX_CONNECTIONS    2
00338 #undef UIP_CONF_MAX_LISTENPORTS
00339 #define UIP_CONF_MAX_LISTENPORTS    2
00340 #define UIP_CONF_UDP_CONNS          6
00341 
00342 #elif 1             /* cx-mac radio cycling */
00343 #define NETSTACK_CONF_MAC         nullmac_driver
00344 //#define NETSTACK_CONF_MAC         csma_driver
00345 #define NETSTACK_CONF_RDC         cxmac_driver
00346 #define NETSTACK_CONF_FRAMER      framer_802154
00347 #define NETSTACK_CONF_RADIO       rf230_driver
00348 #define CHANNEL_802_15_4          26
00349 #define RF230_CONF_AUTOACK        1
00350 #define RF230_CONF_AUTORETRIES    1
00351 #define SICSLOWPAN_CONF_FRAG      1
00352 #define SICSLOWPAN_CONF_MAXAGE    3
00353 #define CXMAC_CONF_ANNOUNCEMENTS    0
00354 #define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8
00355 #undef QUEUEBUF_CONF_NUM
00356 #define QUEUEBUF_CONF_NUM        8
00357 #undef UIP_CONF_DS6_NBR_NBU
00358 #define UIP_CONF_DS6_NBR_NBU       5
00359 #undef UIP_CONF_DS6_ROUTE_NBU
00360 #define UIP_CONF_DS6_ROUTE_NBU     5
00361 
00362 #else
00363 #error Network configuration not specified!
00364 #endif   /* Network setup */
00365 
00366 
00367 /* ************************************************************************** */
00368 //#pragma mark RPL Settings
00369 /* ************************************************************************** */
00370 
00371 #if UIP_CONF_IPV6_RPL
00372 
00373 /* Not completely working yet. Works on Ubuntu after $ifconfig usb0 -arp to drop the neighbor solitications */
00374 /* Dropping the NS on other OSs is more complicated, see http://www.sics.se/~adam/wiki/index.php/Jackdaw_RNDIS_RPL_border_router */
00375 
00376 /* RPL requires the uip stack. Change #CONTIKI_NO_NET=1 to UIP_CONF_IPV6=1 in the examples makefile,
00377    or include the needed source files in /plaftorm/avr-ravenusb/Makefile.avr-ravenusb */
00378 /* For the present the buffer_length calcs in rpl-icmp6.c will need adjustment by the length difference
00379    between 6lowpan (0) and ethernet (14) link-layer headers:
00380  // buffer_length = uip_len - uip_l2_l3_icmp_hdr_len;
00381     buffer_length = uip_len - uip_l2_l3_icmp_hdr_len + UIP_LLH_LEN; //Add jackdaw ethernet header
00382  */
00383  
00384 /* Define MAX_*X_POWER to reduce tx power and ignore weak rx packets for testing a miniature multihop network.
00385  * Leave undefined for full power and sensitivity.
00386  * tx=0 (3dbm, default) to 15 (-17.2dbm)
00387  * RF230_CONF_AUTOACK sets the extended mode using the energy-detect register with rx=0 (-91dBm) to 84 (-7dBm)
00388  *   else the rssi register is used having range 0 (91dBm) to 28 (-10dBm)
00389  *   For simplicity RF230_MIN_RX_POWER is based on the energy-detect value and divided by 3 when autoack is not set.
00390  * On the RF230 a reduced rx power threshold will not prevent autoack if enabled and requested.
00391  * These numbers applied to both Raven and Jackdaw give a maximum communication distance of about 15 cm
00392  * and a 10 meter range to a full-sensitivity RF230 sniffer.
00393 #define RF230_MAX_TX_POWER 15
00394 #define RF230_MIN_RX_POWER 30
00395  */
00396 #define UIP_CONF_ROUTER             1
00397 #define UIP_CONF_ND6_SEND_RA        0
00398 #define UIP_CONF_ND6_REACHABLE_TIME 600000
00399 #define UIP_CONF_ND6_RETRANS_TIMER  10000
00400 
00401 #ifndef RPL_BORDER_ROUTER
00402 #define RPL_BORDER_ROUTER           1
00403 #endif
00404 #define RPL_CONF_STATS              0
00405 #define UIP_CONF_BUFFER_SIZE     1300
00406 //#define UIP_CONF_DS6_NBR_NBU       12
00407 //#define UIP_CONF_DS6_ROUTE_NBU     12
00408 
00409 #ifdef RPL_BORDER_ROUTER
00410 #undef UIP_FALLBACK_INTERFACE
00411 #define UIP_FALLBACK_INTERFACE rpl_interface
00412 #endif
00413 
00414 /* Save all the RAM we can */
00415 #define PROCESS_CONF_NO_PROCESS_NAMES 1
00416 #undef QUEUEBUF_CONF_NUM
00417 #define QUEUEBUF_CONF_NUM           2
00418 #undef QUEUEBUF_CONF_REF_NUM
00419 #define QUEUEBUF_CONF_REF_NUM       1
00420 #undef UIP_CONF_TCP_SPLIT
00421 #define UIP_CONF_TCP_SPLIT          0
00422 #undef UIP_CONF_STATISTICS
00423 #define UIP_CONF_STATISTICS         0
00424 #undef UIP_CONF_IPV6_QUEUE_PKT
00425 #define UIP_CONF_IPV6_QUEUE_PKT     0
00426 #define UIP_CONF_PINGADDRCONF       0
00427 #define UIP_CONF_LOGGING            0
00428 #undef UIP_CONF_MAX_CONNECTIONS
00429 #define UIP_CONF_MAX_CONNECTIONS    2
00430 #undef UIP_CONF_MAX_LISTENPORTS
00431 #define UIP_CONF_MAX_LISTENPORTS    2
00432 #define UIP_CONF_UDP_CONNS          6
00433 
00434 /* Optional, TCP needed to serve the RPL neighbor web page currently hard coded at bbbb::200 */
00435 /* The RPL neighbors can also be viewed using the jackdaw menu */
00436 /* A small MSS is adequate for the internal jackdaw webserver and RAM is very limited*/
00437 #define RPL_HTTPD_SERVER            0
00438 #if RPL_HTTPD_SERVER
00439 #undef UIP_CONF_TCP            
00440 #define UIP_CONF_TCP                1
00441 #define UIP_CONF_TCP_MSS           48
00442 #define UIP_CONF_RECEIVE_WINDOW    48
00443 #undef UIP_CONF_DS6_NBR_NBU
00444 #define UIP_CONF_DS6_NBR_NBU        5
00445 #undef UIP_CONF_DS6_ROUTE_NBU
00446 #define UIP_CONF_DS6_ROUTE_NBU      5
00447 #undef UIP_CONF_MAX_CONNECTIONS
00448 #define UIP_CONF_MAX_CONNECTIONS    2
00449 #endif
00450 
00451 #define UIP_CONF_ICMP_DEST_UNREACH 1
00452 #define UIP_CONF_DHCP_LIGHT
00453 #undef UIP_CONF_FWCACHE_SIZE
00454 #define UIP_CONF_FWCACHE_SIZE    30
00455 #define UIP_CONF_BROADCAST       1
00456 //#define UIP_ARCH_IPCHKSUM        1
00457 
00458 /* Experimental option to pick up a prefix from host interface router advertisements */
00459 /* Requires changes in uip6 and uip-nd6.c to pass link-local RA broadcasts */
00460 /* If this is zero the prefix will be manually set in contiki-raven-main.c */
00461 #define UIP_CONF_ROUTER_RECEIVE_RA  0
00462 
00463 #endif /* UIP_CONF_IPV6_RPL */
00464 
00465 /* ************************************************************************** */
00466 //#pragma mark Other Settings
00467 /* ************************************************************************** */
00468 
00469 /* Use Atmel 'Route Under MAC', currently just in RF230 sniffer mode! */
00470 /* Route-Under-MAC uses 16-bit short addresses */
00471 //#define UIP_CONF_USE_RUM  1
00472 #if UIP_CONF_USE_RUM
00473 #undef  UIP_CONF_LL_802154
00474 #define UIP_DATA_RUM_OFFSET      5
00475 #endif /* UIP_CONF_USE_RUM */
00476 
00477 #define CCIF
00478 #define CLIF
00479 
00480 #endif /* __CONTIKI_CONF_H__ */