Contiki 2.6
|
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__ */