00001 /* 00002 * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without modification, 00006 * are permitted provided that the following conditions are met: 00007 * 00008 * 1. Redistributions of source code must retain the above copyright notice, 00009 * this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright notice, 00011 * this list of conditions and the following disclaimer in the documentation 00012 * and/or other materials provided with the distribution. 00013 * 3. The name of the author may not be used to endorse or promote products 00014 * derived from this software without specific prior written permission. 00015 * 00016 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00017 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00018 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00019 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00020 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00021 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00022 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00023 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00024 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00025 * OF SUCH DAMAGE. 00026 * 00027 * This file is part of the lwIP TCP/IP stack. 00028 * 00029 * Author: Adam Dunkels <[email protected]> 00030 * 00031 */ 00032 #ifndef __LWIPOPTS_H__ 00033 #define __LWIPOPTS_H__ 00034 00035 #include "config.h" 00036 00037 // Liam testing... 00038 #define LWIP_SOCKET 0 00039 00040 #define LWIP_NOASSERT 1 // To suppress some errors for now (no debug output) 00041 #define SYS_LIGHTWEIGHT_PROT 1 00042 00043 #define lwipTCP_STACK_SIZE 600 00044 #define TCPIP_THREAD_PRIO 5 00045 00046 /* ---------- Memory options ---------- */ 00047 /* MEM_ALIGNMENT: should be set to the alignment of the CPU for which 00048 lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2 00049 byte alignment -> define MEM_ALIGNMENT to 2. */ 00050 #define MEM_ALIGNMENT 4 00051 00052 /* MEM_SIZE: the size of the heap memory. If the application will send 00053 a lot of data that needs to be copied, this should be set high. */ 00054 #define MEM_SIZE NETWORK_MEM_POOL //3000 00055 00056 /* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application 00057 sends a lot of data out of ROM (or other static memory), this 00058 should be set high. */ 00059 #define MEMP_NUM_PBUF 20 00060 /* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One 00061 per active UDP "connection". */ 00062 #define MEMP_NUM_UDP_PCB NETWORK_UDP_CONNS //8 00063 /* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP 00064 connections. */ 00065 #define MEMP_NUM_TCP_PCB NETWORK_TCP_CONNS //10 00066 /* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP 00067 connections. */ 00068 #define MEMP_NUM_TCP_PCB_LISTEN NETWORK_TCP_LISTEN_CONNS //8 00069 /* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP 00070 segments. */ 00071 #define MEMP_NUM_TCP_SEG 8 00072 /* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active 00073 timeouts. */ 00074 #define MEMP_NUM_SYS_TIMEOUT 8 00075 00076 00077 /* The following four are used only with the sequential API and can be 00078 set to 0 if the application only will use the raw API. */ 00079 /* MEMP_NUM_NETBUF: the number of struct netbufs. */ 00080 #define MEMP_NUM_NETBUF 4 00081 /* MEMP_NUM_NETCONN: the number of struct netconns. */ 00082 #define MEMP_NUM_NETCONN 4 00083 /* MEMP_NUM_APIMSG: the number of struct api_msg, used for 00084 communication between the TCP/IP stack and the sequential 00085 programs. */ 00086 // #define MEMP_NUM_API_MSG 8 // deprecated in lwip 1.3.0 00087 /* MEMP_NUM_TCPIPMSG: the number of struct tcpip_msg, which is used 00088 for sequential API communication and incoming packets. Used in 00089 src/api/tcpip.c. */ 00090 // #define MEMP_NUM_TCPIP_MSG 8 // deprecated in lwip 1.3.0 00091 00092 /* These two control is reclaimer functions should be compiled 00093 in. Should always be turned on (1). */ 00094 #define MEM_RECLAIM 1 00095 #define MEMP_RECLAIM 1 00096 00097 /* ---------- Pbuf options ---------- */ 00098 /* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ 00099 #define PBUF_POOL_SIZE 8 00100 00101 /* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */ 00102 #define PBUF_POOL_BUFSIZE 1100 00103 00104 /* PBUF_LINK_HLEN: the number of bytes that should be allocated for a 00105 link level header. */ 00106 #define PBUF_LINK_HLEN 16 00107 00108 /* ---------- TCP options ---------- */ 00109 #define LWIP_TCP 1 00110 #define TCP_TTL 255 00111 00112 /* Controls if TCP should queue segments that arrive out of 00113 order. Define to 0 if your device is low on memory. */ 00114 #define TCP_QUEUE_OOSEQ 1 00115 00116 /* TCP Maximum segment size. */ 00117 #define TCP_MSS 512 00118 00119 /* TCP sender buffer space (bytes). */ 00120 #define TCP_SND_BUF 512 00121 00122 /* TCP sender buffer space (pbufs). This must be at least = 2 * 00123 TCP_SND_BUF/TCP_MSS for things to work. */ 00124 #define TCP_SND_QUEUELEN 6 * TCP_SND_BUF/TCP_MSS 00125 00126 /* TCP receive window. */ 00127 #define TCP_WND 512 00128 00129 /* Maximum number of retransmissions of data segments. */ 00130 #define TCP_MAXRTX 12 00131 00132 /* Maximum number of retransmissions of SYN segments. */ 00133 #define TCP_SYNMAXRTX 4 00134 00135 /* ---------- ARP options ---------- */ 00136 #define ARP_TABLE_SIZE 10 00137 #define ARP_QUEUEING 1 00138 00139 /* ---------- IP options ---------- */ 00140 /* Define IP_FORWARD to 1 if you wish to have the ability to forward 00141 IP packets across network interfaces. If you are going to run lwIP 00142 on a device with only one network interface, define this to 0. */ 00143 #define IP_FORWARD 0 00144 00145 /* If defined to 1, IP options are allowed (but not parsed). If 00146 defined to 0, all packets with IP options are dropped. */ 00147 #define IP_OPTIONS 1 00148 00149 /* ---------- ICMP options ---------- */ 00150 #define ICMP_TTL 255 00151 00152 00153 /* ---------- DHCP options ---------- */ 00154 /* Define LWIP_DHCP to 1 if you want DHCP configuration of 00155 interfaces. DHCP is not implemented in lwIP 0.5.1, however, so 00156 turning this on does currently not work. */ 00157 #define LWIP_DHCP 1 00158 00159 /* 1 if you want to do an ARP check on the offered address 00160 (recommended). */ 00161 #define DHCP_DOES_ARP_CHECK 1 00162 00163 /** 00164 * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS 00165 * transport. 00166 */ 00167 #define LWIP_DNS 1 00168 00169 /* ---------- UDP options ---------- */ 00170 #define LWIP_UDP 1 00171 #define UDP_TTL 255 00172 00173 00174 /* ---------- Statistics options ---------- */ 00175 #define STATS 00176 00177 #ifdef LWIP_STATS 00178 #define LINK_STATS 1 00179 #define IP_STATS 1 00180 #define ICMP_STATS 1 00181 #define UDP_STATS 1 00182 #define TCP_STATS 1 00183 #define MEM_STATS 1 00184 #define MEMP_STATS 1 00185 #define PBUF_STATS 1 00186 #define SYS_STATS 1 00187 #endif /* STATS */ 00188 00189 #define LWIP_PROVIDE_ERRNO 1 00190 00191 #endif /* __LWIPOPTS_H__ */
The Make Controller Kit is an open source project maintained by MakingThings.
MakingThings code is released under the Apache 2.0 license.
Bug tracker, development wiki and status can be found at http://dev.makingthings.com.
This document was last updated on 18 May 2009.