ProjetoBB

Dependencies:   F7_Ethernet WebSocketClient mbed mcp3008

Fork of Nucleo_F746ZG_Ethernet by Dieter Graef

Committer:
DieterGraef
Date:
Sat Jun 18 10:49:12 2016 +0000
Revision:
0:f9b6112278fe
Ethernet for the NUCLEO STM32F746 Board Testprogram uses DHCP and NTP to set the clock

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DieterGraef 0:f9b6112278fe 1 /**
DieterGraef 0:f9b6112278fe 2 * @file
DieterGraef 0:f9b6112278fe 3 *
DieterGraef 0:f9b6112278fe 4 * lwIP Options Configuration
DieterGraef 0:f9b6112278fe 5 */
DieterGraef 0:f9b6112278fe 6
DieterGraef 0:f9b6112278fe 7 /*
DieterGraef 0:f9b6112278fe 8 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
DieterGraef 0:f9b6112278fe 9 * All rights reserved.
DieterGraef 0:f9b6112278fe 10 *
DieterGraef 0:f9b6112278fe 11 * Redistribution and use in source and binary forms, with or without modification,
DieterGraef 0:f9b6112278fe 12 * are permitted provided that the following conditions are met:
DieterGraef 0:f9b6112278fe 13 *
DieterGraef 0:f9b6112278fe 14 * 1. Redistributions of source code must retain the above copyright notice,
DieterGraef 0:f9b6112278fe 15 * this list of conditions and the following disclaimer.
DieterGraef 0:f9b6112278fe 16 * 2. Redistributions in binary form must reproduce the above copyright notice,
DieterGraef 0:f9b6112278fe 17 * this list of conditions and the following disclaimer in the documentation
DieterGraef 0:f9b6112278fe 18 * and/or other materials provided with the distribution.
DieterGraef 0:f9b6112278fe 19 * 3. The name of the author may not be used to endorse or promote products
DieterGraef 0:f9b6112278fe 20 * derived from this software without specific prior written permission.
DieterGraef 0:f9b6112278fe 21 *
DieterGraef 0:f9b6112278fe 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
DieterGraef 0:f9b6112278fe 23 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
DieterGraef 0:f9b6112278fe 24 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
DieterGraef 0:f9b6112278fe 25 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
DieterGraef 0:f9b6112278fe 26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
DieterGraef 0:f9b6112278fe 27 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
DieterGraef 0:f9b6112278fe 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
DieterGraef 0:f9b6112278fe 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
DieterGraef 0:f9b6112278fe 30 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
DieterGraef 0:f9b6112278fe 31 * OF SUCH DAMAGE.
DieterGraef 0:f9b6112278fe 32 *
DieterGraef 0:f9b6112278fe 33 * This file is part of the lwIP TCP/IP stack.
DieterGraef 0:f9b6112278fe 34 *
DieterGraef 0:f9b6112278fe 35 * Author: Adam Dunkels <adam@sics.se>
DieterGraef 0:f9b6112278fe 36 *
DieterGraef 0:f9b6112278fe 37 */
DieterGraef 0:f9b6112278fe 38 #ifndef __LWIP_OPT_H__
DieterGraef 0:f9b6112278fe 39 #define __LWIP_OPT_H__
DieterGraef 0:f9b6112278fe 40
DieterGraef 0:f9b6112278fe 41 /*
DieterGraef 0:f9b6112278fe 42 * Include user defined options first. Anything not defined in these files
DieterGraef 0:f9b6112278fe 43 * will be set to standard values. Override anything you dont like!
DieterGraef 0:f9b6112278fe 44 */
DieterGraef 0:f9b6112278fe 45 #include "lwipopts.h"
DieterGraef 0:f9b6112278fe 46 #include "lwip/debug.h"
DieterGraef 0:f9b6112278fe 47
DieterGraef 0:f9b6112278fe 48 /*
DieterGraef 0:f9b6112278fe 49 -----------------------------------------------
DieterGraef 0:f9b6112278fe 50 ---------- Platform specific locking ----------
DieterGraef 0:f9b6112278fe 51 -----------------------------------------------
DieterGraef 0:f9b6112278fe 52 */
DieterGraef 0:f9b6112278fe 53
DieterGraef 0:f9b6112278fe 54 /**
DieterGraef 0:f9b6112278fe 55 * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain
DieterGraef 0:f9b6112278fe 56 * critical regions during buffer allocation, deallocation and memory
DieterGraef 0:f9b6112278fe 57 * allocation and deallocation.
DieterGraef 0:f9b6112278fe 58 */
DieterGraef 0:f9b6112278fe 59 #ifndef SYS_LIGHTWEIGHT_PROT
DieterGraef 0:f9b6112278fe 60 #define SYS_LIGHTWEIGHT_PROT 0
DieterGraef 0:f9b6112278fe 61 #endif
DieterGraef 0:f9b6112278fe 62
DieterGraef 0:f9b6112278fe 63 /**
DieterGraef 0:f9b6112278fe 64 * NO_SYS==1: Provides VERY minimal functionality. Otherwise,
DieterGraef 0:f9b6112278fe 65 * use lwIP facilities.
DieterGraef 0:f9b6112278fe 66 */
DieterGraef 0:f9b6112278fe 67 #ifndef NO_SYS
DieterGraef 0:f9b6112278fe 68 #define NO_SYS 0
DieterGraef 0:f9b6112278fe 69 #endif
DieterGraef 0:f9b6112278fe 70
DieterGraef 0:f9b6112278fe 71 /**
DieterGraef 0:f9b6112278fe 72 * NO_SYS_NO_TIMERS==1: Drop support for sys_timeout when NO_SYS==1
DieterGraef 0:f9b6112278fe 73 * Mainly for compatibility to old versions.
DieterGraef 0:f9b6112278fe 74 */
DieterGraef 0:f9b6112278fe 75 #ifndef NO_SYS_NO_TIMERS
DieterGraef 0:f9b6112278fe 76 #define NO_SYS_NO_TIMERS 0
DieterGraef 0:f9b6112278fe 77 #endif
DieterGraef 0:f9b6112278fe 78
DieterGraef 0:f9b6112278fe 79 /**
DieterGraef 0:f9b6112278fe 80 * MEMCPY: override this if you have a faster implementation at hand than the
DieterGraef 0:f9b6112278fe 81 * one included in your C library
DieterGraef 0:f9b6112278fe 82 */
DieterGraef 0:f9b6112278fe 83 #ifndef MEMCPY
DieterGraef 0:f9b6112278fe 84 #define MEMCPY(dst,src,len) memcpy(dst,src,len)
DieterGraef 0:f9b6112278fe 85 #endif
DieterGraef 0:f9b6112278fe 86
DieterGraef 0:f9b6112278fe 87 /**
DieterGraef 0:f9b6112278fe 88 * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a
DieterGraef 0:f9b6112278fe 89 * call to memcpy() if the length is known at compile time and is small.
DieterGraef 0:f9b6112278fe 90 */
DieterGraef 0:f9b6112278fe 91 #ifndef SMEMCPY
DieterGraef 0:f9b6112278fe 92 #define SMEMCPY(dst,src,len) memcpy(dst,src,len)
DieterGraef 0:f9b6112278fe 93 #endif
DieterGraef 0:f9b6112278fe 94
DieterGraef 0:f9b6112278fe 95 /*
DieterGraef 0:f9b6112278fe 96 ------------------------------------
DieterGraef 0:f9b6112278fe 97 ---------- Memory options ----------
DieterGraef 0:f9b6112278fe 98 ------------------------------------
DieterGraef 0:f9b6112278fe 99 */
DieterGraef 0:f9b6112278fe 100 /**
DieterGraef 0:f9b6112278fe 101 * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library
DieterGraef 0:f9b6112278fe 102 * instead of the lwip internal allocator. Can save code size if you
DieterGraef 0:f9b6112278fe 103 * already use it.
DieterGraef 0:f9b6112278fe 104 */
DieterGraef 0:f9b6112278fe 105 #ifndef MEM_LIBC_MALLOC
DieterGraef 0:f9b6112278fe 106 #define MEM_LIBC_MALLOC 0
DieterGraef 0:f9b6112278fe 107 #endif
DieterGraef 0:f9b6112278fe 108
DieterGraef 0:f9b6112278fe 109 /**
DieterGraef 0:f9b6112278fe 110 * MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
DieterGraef 0:f9b6112278fe 111 * Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
DieterGraef 0:f9b6112278fe 112 * speed and usage from interrupts!
DieterGraef 0:f9b6112278fe 113 */
DieterGraef 0:f9b6112278fe 114 #ifndef MEMP_MEM_MALLOC
DieterGraef 0:f9b6112278fe 115 #define MEMP_MEM_MALLOC 0
DieterGraef 0:f9b6112278fe 116 #endif
DieterGraef 0:f9b6112278fe 117
DieterGraef 0:f9b6112278fe 118 /**
DieterGraef 0:f9b6112278fe 119 * MEM_ALIGNMENT: should be set to the alignment of the CPU
DieterGraef 0:f9b6112278fe 120 * 4 byte alignment -> #define MEM_ALIGNMENT 4
DieterGraef 0:f9b6112278fe 121 * 2 byte alignment -> #define MEM_ALIGNMENT 2
DieterGraef 0:f9b6112278fe 122 */
DieterGraef 0:f9b6112278fe 123 #ifndef MEM_ALIGNMENT
DieterGraef 0:f9b6112278fe 124 #define MEM_ALIGNMENT 1
DieterGraef 0:f9b6112278fe 125 #endif
DieterGraef 0:f9b6112278fe 126
DieterGraef 0:f9b6112278fe 127 /**
DieterGraef 0:f9b6112278fe 128 * MEM_SIZE: the size of the heap memory. If the application will send
DieterGraef 0:f9b6112278fe 129 * a lot of data that needs to be copied, this should be set high.
DieterGraef 0:f9b6112278fe 130 */
DieterGraef 0:f9b6112278fe 131 #ifndef MEM_SIZE
DieterGraef 0:f9b6112278fe 132 #define MEM_SIZE 1600
DieterGraef 0:f9b6112278fe 133 #endif
DieterGraef 0:f9b6112278fe 134
DieterGraef 0:f9b6112278fe 135 /**
DieterGraef 0:f9b6112278fe 136 * MEMP_SEPARATE_POOLS: if defined to 1, each pool is placed in its own array.
DieterGraef 0:f9b6112278fe 137 * This can be used to individually change the location of each pool.
DieterGraef 0:f9b6112278fe 138 * Default is one big array for all pools
DieterGraef 0:f9b6112278fe 139 */
DieterGraef 0:f9b6112278fe 140 #ifndef MEMP_SEPARATE_POOLS
DieterGraef 0:f9b6112278fe 141 #define MEMP_SEPARATE_POOLS 0
DieterGraef 0:f9b6112278fe 142 #endif
DieterGraef 0:f9b6112278fe 143
DieterGraef 0:f9b6112278fe 144 /**
DieterGraef 0:f9b6112278fe 145 * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable
DieterGraef 0:f9b6112278fe 146 * amount of bytes before and after each memp element in every pool and fills
DieterGraef 0:f9b6112278fe 147 * it with a prominent default value.
DieterGraef 0:f9b6112278fe 148 * MEMP_OVERFLOW_CHECK == 0 no checking
DieterGraef 0:f9b6112278fe 149 * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed
DieterGraef 0:f9b6112278fe 150 * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time
DieterGraef 0:f9b6112278fe 151 * memp_malloc() or memp_free() is called (useful but slow!)
DieterGraef 0:f9b6112278fe 152 */
DieterGraef 0:f9b6112278fe 153 #ifndef MEMP_OVERFLOW_CHECK
DieterGraef 0:f9b6112278fe 154 #define MEMP_OVERFLOW_CHECK 0
DieterGraef 0:f9b6112278fe 155 #endif
DieterGraef 0:f9b6112278fe 156
DieterGraef 0:f9b6112278fe 157 /**
DieterGraef 0:f9b6112278fe 158 * MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make
DieterGraef 0:f9b6112278fe 159 * sure that there are no cycles in the linked lists.
DieterGraef 0:f9b6112278fe 160 */
DieterGraef 0:f9b6112278fe 161 #ifndef MEMP_SANITY_CHECK
DieterGraef 0:f9b6112278fe 162 #define MEMP_SANITY_CHECK 0
DieterGraef 0:f9b6112278fe 163 #endif
DieterGraef 0:f9b6112278fe 164
DieterGraef 0:f9b6112278fe 165 /**
DieterGraef 0:f9b6112278fe 166 * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set
DieterGraef 0:f9b6112278fe 167 * of memory pools of various sizes. When mem_malloc is called, an element of
DieterGraef 0:f9b6112278fe 168 * the smallest pool that can provide the length needed is returned.
DieterGraef 0:f9b6112278fe 169 * To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.
DieterGraef 0:f9b6112278fe 170 */
DieterGraef 0:f9b6112278fe 171 #ifndef MEM_USE_POOLS
DieterGraef 0:f9b6112278fe 172 #define MEM_USE_POOLS 0
DieterGraef 0:f9b6112278fe 173 #endif
DieterGraef 0:f9b6112278fe 174
DieterGraef 0:f9b6112278fe 175 /**
DieterGraef 0:f9b6112278fe 176 * MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next
DieterGraef 0:f9b6112278fe 177 * bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more
DieterGraef 0:f9b6112278fe 178 * reliable. */
DieterGraef 0:f9b6112278fe 179 #ifndef MEM_USE_POOLS_TRY_BIGGER_POOL
DieterGraef 0:f9b6112278fe 180 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0
DieterGraef 0:f9b6112278fe 181 #endif
DieterGraef 0:f9b6112278fe 182
DieterGraef 0:f9b6112278fe 183 /**
DieterGraef 0:f9b6112278fe 184 * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h
DieterGraef 0:f9b6112278fe 185 * that defines additional pools beyond the "standard" ones required
DieterGraef 0:f9b6112278fe 186 * by lwIP. If you set this to 1, you must have lwippools.h in your
DieterGraef 0:f9b6112278fe 187 * inlude path somewhere.
DieterGraef 0:f9b6112278fe 188 */
DieterGraef 0:f9b6112278fe 189 #ifndef MEMP_USE_CUSTOM_POOLS
DieterGraef 0:f9b6112278fe 190 #define MEMP_USE_CUSTOM_POOLS 0
DieterGraef 0:f9b6112278fe 191 #endif
DieterGraef 0:f9b6112278fe 192
DieterGraef 0:f9b6112278fe 193 /**
DieterGraef 0:f9b6112278fe 194 * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from
DieterGraef 0:f9b6112278fe 195 * interrupt context (or another context that doesn't allow waiting for a
DieterGraef 0:f9b6112278fe 196 * semaphore).
DieterGraef 0:f9b6112278fe 197 * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT,
DieterGraef 0:f9b6112278fe 198 * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs
DieterGraef 0:f9b6112278fe 199 * with each loop so that mem_free can run.
DieterGraef 0:f9b6112278fe 200 *
DieterGraef 0:f9b6112278fe 201 * ATTENTION: As you can see from the above description, this leads to dis-/
DieterGraef 0:f9b6112278fe 202 * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc
DieterGraef 0:f9b6112278fe 203 * can need longer.
DieterGraef 0:f9b6112278fe 204 *
DieterGraef 0:f9b6112278fe 205 * If you don't want that, at least for NO_SYS=0, you can still use the following
DieterGraef 0:f9b6112278fe 206 * functions to enqueue a deallocation call which then runs in the tcpip_thread
DieterGraef 0:f9b6112278fe 207 * context:
DieterGraef 0:f9b6112278fe 208 * - pbuf_free_callback(p);
DieterGraef 0:f9b6112278fe 209 * - mem_free_callback(m);
DieterGraef 0:f9b6112278fe 210 */
DieterGraef 0:f9b6112278fe 211 #ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
DieterGraef 0:f9b6112278fe 212 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
DieterGraef 0:f9b6112278fe 213 #endif
DieterGraef 0:f9b6112278fe 214
DieterGraef 0:f9b6112278fe 215 /*
DieterGraef 0:f9b6112278fe 216 ------------------------------------------------
DieterGraef 0:f9b6112278fe 217 ---------- Internal Memory Pool Sizes ----------
DieterGraef 0:f9b6112278fe 218 ------------------------------------------------
DieterGraef 0:f9b6112278fe 219 */
DieterGraef 0:f9b6112278fe 220 /**
DieterGraef 0:f9b6112278fe 221 * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).
DieterGraef 0:f9b6112278fe 222 * If the application sends a lot of data out of ROM (or other static memory),
DieterGraef 0:f9b6112278fe 223 * this should be set high.
DieterGraef 0:f9b6112278fe 224 */
DieterGraef 0:f9b6112278fe 225 #ifndef MEMP_NUM_PBUF
DieterGraef 0:f9b6112278fe 226 #define MEMP_NUM_PBUF 16
DieterGraef 0:f9b6112278fe 227 #endif
DieterGraef 0:f9b6112278fe 228
DieterGraef 0:f9b6112278fe 229 /**
DieterGraef 0:f9b6112278fe 230 * MEMP_NUM_RAW_PCB: Number of raw connection PCBs
DieterGraef 0:f9b6112278fe 231 * (requires the LWIP_RAW option)
DieterGraef 0:f9b6112278fe 232 */
DieterGraef 0:f9b6112278fe 233 #ifndef MEMP_NUM_RAW_PCB
DieterGraef 0:f9b6112278fe 234 #define MEMP_NUM_RAW_PCB 4
DieterGraef 0:f9b6112278fe 235 #endif
DieterGraef 0:f9b6112278fe 236
DieterGraef 0:f9b6112278fe 237 /**
DieterGraef 0:f9b6112278fe 238 * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
DieterGraef 0:f9b6112278fe 239 * per active UDP "connection".
DieterGraef 0:f9b6112278fe 240 * (requires the LWIP_UDP option)
DieterGraef 0:f9b6112278fe 241 */
DieterGraef 0:f9b6112278fe 242 #ifndef MEMP_NUM_UDP_PCB
DieterGraef 0:f9b6112278fe 243 #define MEMP_NUM_UDP_PCB 4
DieterGraef 0:f9b6112278fe 244 #endif
DieterGraef 0:f9b6112278fe 245
DieterGraef 0:f9b6112278fe 246 /**
DieterGraef 0:f9b6112278fe 247 * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections.
DieterGraef 0:f9b6112278fe 248 * (requires the LWIP_TCP option)
DieterGraef 0:f9b6112278fe 249 */
DieterGraef 0:f9b6112278fe 250 #ifndef MEMP_NUM_TCP_PCB
DieterGraef 0:f9b6112278fe 251 #define MEMP_NUM_TCP_PCB 5
DieterGraef 0:f9b6112278fe 252 #endif
DieterGraef 0:f9b6112278fe 253
DieterGraef 0:f9b6112278fe 254 /**
DieterGraef 0:f9b6112278fe 255 * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.
DieterGraef 0:f9b6112278fe 256 * (requires the LWIP_TCP option)
DieterGraef 0:f9b6112278fe 257 */
DieterGraef 0:f9b6112278fe 258 #ifndef MEMP_NUM_TCP_PCB_LISTEN
DieterGraef 0:f9b6112278fe 259 #define MEMP_NUM_TCP_PCB_LISTEN 8
DieterGraef 0:f9b6112278fe 260 #endif
DieterGraef 0:f9b6112278fe 261
DieterGraef 0:f9b6112278fe 262 /**
DieterGraef 0:f9b6112278fe 263 * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.
DieterGraef 0:f9b6112278fe 264 * (requires the LWIP_TCP option)
DieterGraef 0:f9b6112278fe 265 */
DieterGraef 0:f9b6112278fe 266 #ifndef MEMP_NUM_TCP_SEG
DieterGraef 0:f9b6112278fe 267 #define MEMP_NUM_TCP_SEG 16
DieterGraef 0:f9b6112278fe 268 #endif
DieterGraef 0:f9b6112278fe 269
DieterGraef 0:f9b6112278fe 270 /**
DieterGraef 0:f9b6112278fe 271 * MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for
DieterGraef 0:f9b6112278fe 272 * reassembly (whole packets, not fragments!)
DieterGraef 0:f9b6112278fe 273 */
DieterGraef 0:f9b6112278fe 274 #ifndef MEMP_NUM_REASSDATA
DieterGraef 0:f9b6112278fe 275 #define MEMP_NUM_REASSDATA 5
DieterGraef 0:f9b6112278fe 276 #endif
DieterGraef 0:f9b6112278fe 277
DieterGraef 0:f9b6112278fe 278 /**
DieterGraef 0:f9b6112278fe 279 * MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent
DieterGraef 0:f9b6112278fe 280 * (fragments, not whole packets!).
DieterGraef 0:f9b6112278fe 281 * This is only used with IP_FRAG_USES_STATIC_BUF==0 and
DieterGraef 0:f9b6112278fe 282 * LWIP_NETIF_TX_SINGLE_PBUF==0 and only has to be > 1 with DMA-enabled MACs
DieterGraef 0:f9b6112278fe 283 * where the packet is not yet sent when netif->output returns.
DieterGraef 0:f9b6112278fe 284 */
DieterGraef 0:f9b6112278fe 285 #ifndef MEMP_NUM_FRAG_PBUF
DieterGraef 0:f9b6112278fe 286 #define MEMP_NUM_FRAG_PBUF 15
DieterGraef 0:f9b6112278fe 287 #endif
DieterGraef 0:f9b6112278fe 288
DieterGraef 0:f9b6112278fe 289 /**
DieterGraef 0:f9b6112278fe 290 * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing
DieterGraef 0:f9b6112278fe 291 * packets (pbufs) that are waiting for an ARP request (to resolve
DieterGraef 0:f9b6112278fe 292 * their destination address) to finish.
DieterGraef 0:f9b6112278fe 293 * (requires the ARP_QUEUEING option)
DieterGraef 0:f9b6112278fe 294 */
DieterGraef 0:f9b6112278fe 295 #ifndef MEMP_NUM_ARP_QUEUE
DieterGraef 0:f9b6112278fe 296 #define MEMP_NUM_ARP_QUEUE 30
DieterGraef 0:f9b6112278fe 297 #endif
DieterGraef 0:f9b6112278fe 298
DieterGraef 0:f9b6112278fe 299 /**
DieterGraef 0:f9b6112278fe 300 * MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces
DieterGraef 0:f9b6112278fe 301 * can be members et the same time (one per netif - allsystems group -, plus one
DieterGraef 0:f9b6112278fe 302 * per netif membership).
DieterGraef 0:f9b6112278fe 303 * (requires the LWIP_IGMP option)
DieterGraef 0:f9b6112278fe 304 */
DieterGraef 0:f9b6112278fe 305 #ifndef MEMP_NUM_IGMP_GROUP
DieterGraef 0:f9b6112278fe 306 #define MEMP_NUM_IGMP_GROUP 8
DieterGraef 0:f9b6112278fe 307 #endif
DieterGraef 0:f9b6112278fe 308
DieterGraef 0:f9b6112278fe 309 /**
DieterGraef 0:f9b6112278fe 310 * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts.
DieterGraef 0:f9b6112278fe 311 * (requires NO_SYS==0)
DieterGraef 0:f9b6112278fe 312 * The default number of timeouts is calculated here for all enabled modules.
DieterGraef 0:f9b6112278fe 313 * The formula expects settings to be either '0' or '1'.
DieterGraef 0:f9b6112278fe 314 */
DieterGraef 0:f9b6112278fe 315 #ifndef MEMP_NUM_SYS_TIMEOUT
DieterGraef 0:f9b6112278fe 316 #define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
DieterGraef 0:f9b6112278fe 317 #endif
DieterGraef 0:f9b6112278fe 318
DieterGraef 0:f9b6112278fe 319 /**
DieterGraef 0:f9b6112278fe 320 * MEMP_NUM_NETBUF: the number of struct netbufs.
DieterGraef 0:f9b6112278fe 321 * (only needed if you use the sequential API, like api_lib.c)
DieterGraef 0:f9b6112278fe 322 */
DieterGraef 0:f9b6112278fe 323 #ifndef MEMP_NUM_NETBUF
DieterGraef 0:f9b6112278fe 324 #define MEMP_NUM_NETBUF 2
DieterGraef 0:f9b6112278fe 325 #endif
DieterGraef 0:f9b6112278fe 326
DieterGraef 0:f9b6112278fe 327 /**
DieterGraef 0:f9b6112278fe 328 * MEMP_NUM_NETCONN: the number of struct netconns.
DieterGraef 0:f9b6112278fe 329 * (only needed if you use the sequential API, like api_lib.c)
DieterGraef 0:f9b6112278fe 330 */
DieterGraef 0:f9b6112278fe 331 #ifndef MEMP_NUM_NETCONN
DieterGraef 0:f9b6112278fe 332 #define MEMP_NUM_NETCONN 4
DieterGraef 0:f9b6112278fe 333 #endif
DieterGraef 0:f9b6112278fe 334
DieterGraef 0:f9b6112278fe 335 /**
DieterGraef 0:f9b6112278fe 336 * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used
DieterGraef 0:f9b6112278fe 337 * for callback/timeout API communication.
DieterGraef 0:f9b6112278fe 338 * (only needed if you use tcpip.c)
DieterGraef 0:f9b6112278fe 339 */
DieterGraef 0:f9b6112278fe 340 #ifndef MEMP_NUM_TCPIP_MSG_API
DieterGraef 0:f9b6112278fe 341 #define MEMP_NUM_TCPIP_MSG_API 8
DieterGraef 0:f9b6112278fe 342 #endif
DieterGraef 0:f9b6112278fe 343
DieterGraef 0:f9b6112278fe 344 /**
DieterGraef 0:f9b6112278fe 345 * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used
DieterGraef 0:f9b6112278fe 346 * for incoming packets.
DieterGraef 0:f9b6112278fe 347 * (only needed if you use tcpip.c)
DieterGraef 0:f9b6112278fe 348 */
DieterGraef 0:f9b6112278fe 349 #ifndef MEMP_NUM_TCPIP_MSG_INPKT
DieterGraef 0:f9b6112278fe 350 #define MEMP_NUM_TCPIP_MSG_INPKT 8
DieterGraef 0:f9b6112278fe 351 #endif
DieterGraef 0:f9b6112278fe 352
DieterGraef 0:f9b6112278fe 353 /**
DieterGraef 0:f9b6112278fe 354 * MEMP_NUM_SNMP_NODE: the number of leafs in the SNMP tree.
DieterGraef 0:f9b6112278fe 355 */
DieterGraef 0:f9b6112278fe 356 #ifndef MEMP_NUM_SNMP_NODE
DieterGraef 0:f9b6112278fe 357 #define MEMP_NUM_SNMP_NODE 50
DieterGraef 0:f9b6112278fe 358 #endif
DieterGraef 0:f9b6112278fe 359
DieterGraef 0:f9b6112278fe 360 /**
DieterGraef 0:f9b6112278fe 361 * MEMP_NUM_SNMP_ROOTNODE: the number of branches in the SNMP tree.
DieterGraef 0:f9b6112278fe 362 * Every branch has one leaf (MEMP_NUM_SNMP_NODE) at least!
DieterGraef 0:f9b6112278fe 363 */
DieterGraef 0:f9b6112278fe 364 #ifndef MEMP_NUM_SNMP_ROOTNODE
DieterGraef 0:f9b6112278fe 365 #define MEMP_NUM_SNMP_ROOTNODE 30
DieterGraef 0:f9b6112278fe 366 #endif
DieterGraef 0:f9b6112278fe 367
DieterGraef 0:f9b6112278fe 368 /**
DieterGraef 0:f9b6112278fe 369 * MEMP_NUM_SNMP_VARBIND: the number of concurrent requests (does not have to
DieterGraef 0:f9b6112278fe 370 * be changed normally) - 2 of these are used per request (1 for input,
DieterGraef 0:f9b6112278fe 371 * 1 for output)
DieterGraef 0:f9b6112278fe 372 */
DieterGraef 0:f9b6112278fe 373 #ifndef MEMP_NUM_SNMP_VARBIND
DieterGraef 0:f9b6112278fe 374 #define MEMP_NUM_SNMP_VARBIND 2
DieterGraef 0:f9b6112278fe 375 #endif
DieterGraef 0:f9b6112278fe 376
DieterGraef 0:f9b6112278fe 377 /**
DieterGraef 0:f9b6112278fe 378 * MEMP_NUM_SNMP_VALUE: the number of OID or values concurrently used
DieterGraef 0:f9b6112278fe 379 * (does not have to be changed normally) - 3 of these are used per request
DieterGraef 0:f9b6112278fe 380 * (1 for the value read and 2 for OIDs - input and output)
DieterGraef 0:f9b6112278fe 381 */
DieterGraef 0:f9b6112278fe 382 #ifndef MEMP_NUM_SNMP_VALUE
DieterGraef 0:f9b6112278fe 383 #define MEMP_NUM_SNMP_VALUE 3
DieterGraef 0:f9b6112278fe 384 #endif
DieterGraef 0:f9b6112278fe 385
DieterGraef 0:f9b6112278fe 386 /**
DieterGraef 0:f9b6112278fe 387 * MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls
DieterGraef 0:f9b6112278fe 388 * (before freeing the corresponding memory using lwip_freeaddrinfo()).
DieterGraef 0:f9b6112278fe 389 */
DieterGraef 0:f9b6112278fe 390 #ifndef MEMP_NUM_NETDB
DieterGraef 0:f9b6112278fe 391 #define MEMP_NUM_NETDB 1
DieterGraef 0:f9b6112278fe 392 #endif
DieterGraef 0:f9b6112278fe 393
DieterGraef 0:f9b6112278fe 394 /**
DieterGraef 0:f9b6112278fe 395 * MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list
DieterGraef 0:f9b6112278fe 396 * if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1.
DieterGraef 0:f9b6112278fe 397 */
DieterGraef 0:f9b6112278fe 398 #ifndef MEMP_NUM_LOCALHOSTLIST
DieterGraef 0:f9b6112278fe 399 #define MEMP_NUM_LOCALHOSTLIST 1
DieterGraef 0:f9b6112278fe 400 #endif
DieterGraef 0:f9b6112278fe 401
DieterGraef 0:f9b6112278fe 402 /**
DieterGraef 0:f9b6112278fe 403 * MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE
DieterGraef 0:f9b6112278fe 404 * interfaces (only used with PPPOE_SUPPORT==1)
DieterGraef 0:f9b6112278fe 405 */
DieterGraef 0:f9b6112278fe 406 #ifndef MEMP_NUM_PPPOE_INTERFACES
DieterGraef 0:f9b6112278fe 407 #define MEMP_NUM_PPPOE_INTERFACES 1
DieterGraef 0:f9b6112278fe 408 #endif
DieterGraef 0:f9b6112278fe 409
DieterGraef 0:f9b6112278fe 410 /**
DieterGraef 0:f9b6112278fe 411 * PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
DieterGraef 0:f9b6112278fe 412 */
DieterGraef 0:f9b6112278fe 413 #ifndef PBUF_POOL_SIZE
DieterGraef 0:f9b6112278fe 414 #define PBUF_POOL_SIZE 16
DieterGraef 0:f9b6112278fe 415 #endif
DieterGraef 0:f9b6112278fe 416
DieterGraef 0:f9b6112278fe 417 /*
DieterGraef 0:f9b6112278fe 418 ---------------------------------
DieterGraef 0:f9b6112278fe 419 ---------- ARP options ----------
DieterGraef 0:f9b6112278fe 420 ---------------------------------
DieterGraef 0:f9b6112278fe 421 */
DieterGraef 0:f9b6112278fe 422 /**
DieterGraef 0:f9b6112278fe 423 * LWIP_ARP==1: Enable ARP functionality.
DieterGraef 0:f9b6112278fe 424 */
DieterGraef 0:f9b6112278fe 425 #ifndef LWIP_ARP
DieterGraef 0:f9b6112278fe 426 #define LWIP_ARP 1
DieterGraef 0:f9b6112278fe 427 #endif
DieterGraef 0:f9b6112278fe 428
DieterGraef 0:f9b6112278fe 429 /**
DieterGraef 0:f9b6112278fe 430 * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached.
DieterGraef 0:f9b6112278fe 431 */
DieterGraef 0:f9b6112278fe 432 #ifndef ARP_TABLE_SIZE
DieterGraef 0:f9b6112278fe 433 #define ARP_TABLE_SIZE 10
DieterGraef 0:f9b6112278fe 434 #endif
DieterGraef 0:f9b6112278fe 435
DieterGraef 0:f9b6112278fe 436 /**
DieterGraef 0:f9b6112278fe 437 * ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address
DieterGraef 0:f9b6112278fe 438 * resolution. By default, only the most recent packet is queued per IP address.
DieterGraef 0:f9b6112278fe 439 * This is sufficient for most protocols and mainly reduces TCP connection
DieterGraef 0:f9b6112278fe 440 * startup time. Set this to 1 if you know your application sends more than one
DieterGraef 0:f9b6112278fe 441 * packet in a row to an IP address that is not in the ARP cache.
DieterGraef 0:f9b6112278fe 442 */
DieterGraef 0:f9b6112278fe 443 #ifndef ARP_QUEUEING
DieterGraef 0:f9b6112278fe 444 #define ARP_QUEUEING 0
DieterGraef 0:f9b6112278fe 445 #endif
DieterGraef 0:f9b6112278fe 446
DieterGraef 0:f9b6112278fe 447 /**
DieterGraef 0:f9b6112278fe 448 * ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be
DieterGraef 0:f9b6112278fe 449 * updated with the source MAC and IP addresses supplied in the packet.
DieterGraef 0:f9b6112278fe 450 * You may want to disable this if you do not trust LAN peers to have the
DieterGraef 0:f9b6112278fe 451 * correct addresses, or as a limited approach to attempt to handle
DieterGraef 0:f9b6112278fe 452 * spoofing. If disabled, lwIP will need to make a new ARP request if
DieterGraef 0:f9b6112278fe 453 * the peer is not already in the ARP table, adding a little latency.
DieterGraef 0:f9b6112278fe 454 * The peer *is* in the ARP table if it requested our address before.
DieterGraef 0:f9b6112278fe 455 * Also notice that this slows down input processing of every IP packet!
DieterGraef 0:f9b6112278fe 456 */
DieterGraef 0:f9b6112278fe 457 #ifndef ETHARP_TRUST_IP_MAC
DieterGraef 0:f9b6112278fe 458 #define ETHARP_TRUST_IP_MAC 0
DieterGraef 0:f9b6112278fe 459 #endif
DieterGraef 0:f9b6112278fe 460
DieterGraef 0:f9b6112278fe 461 /**
DieterGraef 0:f9b6112278fe 462 * ETHARP_SUPPORT_VLAN==1: support receiving ethernet packets with VLAN header.
DieterGraef 0:f9b6112278fe 463 * Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check.
DieterGraef 0:f9b6112278fe 464 * If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted.
DieterGraef 0:f9b6112278fe 465 * If ETHARP_VLAN_CHECK is not defined, all traffic is accepted.
DieterGraef 0:f9b6112278fe 466 * Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan)
DieterGraef 0:f9b6112278fe 467 * that returns 1 to accept a packet or 0 to drop a packet.
DieterGraef 0:f9b6112278fe 468 */
DieterGraef 0:f9b6112278fe 469 #ifndef ETHARP_SUPPORT_VLAN
DieterGraef 0:f9b6112278fe 470 #define ETHARP_SUPPORT_VLAN 0
DieterGraef 0:f9b6112278fe 471 #endif
DieterGraef 0:f9b6112278fe 472
DieterGraef 0:f9b6112278fe 473 /** LWIP_ETHERNET==1: enable ethernet support for PPPoE even though ARP
DieterGraef 0:f9b6112278fe 474 * might be disabled
DieterGraef 0:f9b6112278fe 475 */
DieterGraef 0:f9b6112278fe 476 #ifndef LWIP_ETHERNET
DieterGraef 0:f9b6112278fe 477 #define LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT)
DieterGraef 0:f9b6112278fe 478 #endif
DieterGraef 0:f9b6112278fe 479
DieterGraef 0:f9b6112278fe 480 /** ETH_PAD_SIZE: number of bytes added before the ethernet header to ensure
DieterGraef 0:f9b6112278fe 481 * alignment of payload after that header. Since the header is 14 bytes long,
DieterGraef 0:f9b6112278fe 482 * without this padding e.g. addresses in the IP header will not be aligned
DieterGraef 0:f9b6112278fe 483 * on a 32-bit boundary, so setting this to 2 can speed up 32-bit-platforms.
DieterGraef 0:f9b6112278fe 484 */
DieterGraef 0:f9b6112278fe 485 #ifndef ETH_PAD_SIZE
DieterGraef 0:f9b6112278fe 486 #define ETH_PAD_SIZE 0
DieterGraef 0:f9b6112278fe 487 #endif
DieterGraef 0:f9b6112278fe 488
DieterGraef 0:f9b6112278fe 489 /** ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table
DieterGraef 0:f9b6112278fe 490 * entries (using etharp_add_static_entry/etharp_remove_static_entry).
DieterGraef 0:f9b6112278fe 491 */
DieterGraef 0:f9b6112278fe 492 #ifndef ETHARP_SUPPORT_STATIC_ENTRIES
DieterGraef 0:f9b6112278fe 493 #define ETHARP_SUPPORT_STATIC_ENTRIES 0
DieterGraef 0:f9b6112278fe 494 #endif
DieterGraef 0:f9b6112278fe 495
DieterGraef 0:f9b6112278fe 496
DieterGraef 0:f9b6112278fe 497 /*
DieterGraef 0:f9b6112278fe 498 --------------------------------
DieterGraef 0:f9b6112278fe 499 ---------- IP options ----------
DieterGraef 0:f9b6112278fe 500 --------------------------------
DieterGraef 0:f9b6112278fe 501 */
DieterGraef 0:f9b6112278fe 502 /**
DieterGraef 0:f9b6112278fe 503 * IP_FORWARD==1: Enables the ability to forward IP packets across network
DieterGraef 0:f9b6112278fe 504 * interfaces. If you are going to run lwIP on a device with only one network
DieterGraef 0:f9b6112278fe 505 * interface, define this to 0.
DieterGraef 0:f9b6112278fe 506 */
DieterGraef 0:f9b6112278fe 507 #ifndef IP_FORWARD
DieterGraef 0:f9b6112278fe 508 #define IP_FORWARD 0
DieterGraef 0:f9b6112278fe 509 #endif
DieterGraef 0:f9b6112278fe 510
DieterGraef 0:f9b6112278fe 511 /**
DieterGraef 0:f9b6112278fe 512 * IP_OPTIONS_ALLOWED: Defines the behavior for IP options.
DieterGraef 0:f9b6112278fe 513 * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped.
DieterGraef 0:f9b6112278fe 514 * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed).
DieterGraef 0:f9b6112278fe 515 */
DieterGraef 0:f9b6112278fe 516 #ifndef IP_OPTIONS_ALLOWED
DieterGraef 0:f9b6112278fe 517 #define IP_OPTIONS_ALLOWED 1
DieterGraef 0:f9b6112278fe 518 #endif
DieterGraef 0:f9b6112278fe 519
DieterGraef 0:f9b6112278fe 520 /**
DieterGraef 0:f9b6112278fe 521 * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
DieterGraef 0:f9b6112278fe 522 * this option does not affect outgoing packet sizes, which can be controlled
DieterGraef 0:f9b6112278fe 523 * via IP_FRAG.
DieterGraef 0:f9b6112278fe 524 */
DieterGraef 0:f9b6112278fe 525 #ifndef IP_REASSEMBLY
DieterGraef 0:f9b6112278fe 526 #define IP_REASSEMBLY 1
DieterGraef 0:f9b6112278fe 527 #endif
DieterGraef 0:f9b6112278fe 528
DieterGraef 0:f9b6112278fe 529 /**
DieterGraef 0:f9b6112278fe 530 * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
DieterGraef 0:f9b6112278fe 531 * that this option does not affect incoming packet sizes, which can be
DieterGraef 0:f9b6112278fe 532 * controlled via IP_REASSEMBLY.
DieterGraef 0:f9b6112278fe 533 */
DieterGraef 0:f9b6112278fe 534 #ifndef IP_FRAG
DieterGraef 0:f9b6112278fe 535 #define IP_FRAG 1
DieterGraef 0:f9b6112278fe 536 #endif
DieterGraef 0:f9b6112278fe 537
DieterGraef 0:f9b6112278fe 538 /**
DieterGraef 0:f9b6112278fe 539 * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
DieterGraef 0:f9b6112278fe 540 * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived
DieterGraef 0:f9b6112278fe 541 * in this time, the whole packet is discarded.
DieterGraef 0:f9b6112278fe 542 */
DieterGraef 0:f9b6112278fe 543 #ifndef IP_REASS_MAXAGE
DieterGraef 0:f9b6112278fe 544 #define IP_REASS_MAXAGE 3
DieterGraef 0:f9b6112278fe 545 #endif
DieterGraef 0:f9b6112278fe 546
DieterGraef 0:f9b6112278fe 547 /**
DieterGraef 0:f9b6112278fe 548 * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.
DieterGraef 0:f9b6112278fe 549 * Since the received pbufs are enqueued, be sure to configure
DieterGraef 0:f9b6112278fe 550 * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive
DieterGraef 0:f9b6112278fe 551 * packets even if the maximum amount of fragments is enqueued for reassembly!
DieterGraef 0:f9b6112278fe 552 */
DieterGraef 0:f9b6112278fe 553 #ifndef IP_REASS_MAX_PBUFS
DieterGraef 0:f9b6112278fe 554 #define IP_REASS_MAX_PBUFS 10
DieterGraef 0:f9b6112278fe 555 #endif
DieterGraef 0:f9b6112278fe 556
DieterGraef 0:f9b6112278fe 557 /**
DieterGraef 0:f9b6112278fe 558 * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP
DieterGraef 0:f9b6112278fe 559 * fragmentation. Otherwise pbufs are allocated and reference the original
DieterGraef 0:f9b6112278fe 560 * packet data to be fragmented (or with LWIP_NETIF_TX_SINGLE_PBUF==1,
DieterGraef 0:f9b6112278fe 561 * new PBUF_RAM pbufs are used for fragments).
DieterGraef 0:f9b6112278fe 562 * ATTENTION: IP_FRAG_USES_STATIC_BUF==1 may not be used for DMA-enabled MACs!
DieterGraef 0:f9b6112278fe 563 */
DieterGraef 0:f9b6112278fe 564 #ifndef IP_FRAG_USES_STATIC_BUF
DieterGraef 0:f9b6112278fe 565 #define IP_FRAG_USES_STATIC_BUF 0
DieterGraef 0:f9b6112278fe 566 #endif
DieterGraef 0:f9b6112278fe 567
DieterGraef 0:f9b6112278fe 568 /**
DieterGraef 0:f9b6112278fe 569 * IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer
DieterGraef 0:f9b6112278fe 570 * (requires IP_FRAG_USES_STATIC_BUF==1)
DieterGraef 0:f9b6112278fe 571 */
DieterGraef 0:f9b6112278fe 572 #if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)
DieterGraef 0:f9b6112278fe 573 #define IP_FRAG_MAX_MTU 1500
DieterGraef 0:f9b6112278fe 574 #endif
DieterGraef 0:f9b6112278fe 575
DieterGraef 0:f9b6112278fe 576 /**
DieterGraef 0:f9b6112278fe 577 * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.
DieterGraef 0:f9b6112278fe 578 */
DieterGraef 0:f9b6112278fe 579 #ifndef IP_DEFAULT_TTL
DieterGraef 0:f9b6112278fe 580 #define IP_DEFAULT_TTL 255
DieterGraef 0:f9b6112278fe 581 #endif
DieterGraef 0:f9b6112278fe 582
DieterGraef 0:f9b6112278fe 583 /**
DieterGraef 0:f9b6112278fe 584 * IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast
DieterGraef 0:f9b6112278fe 585 * filter per pcb on udp and raw send operations. To enable broadcast filter
DieterGraef 0:f9b6112278fe 586 * on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.
DieterGraef 0:f9b6112278fe 587 */
DieterGraef 0:f9b6112278fe 588 #ifndef IP_SOF_BROADCAST
DieterGraef 0:f9b6112278fe 589 #define IP_SOF_BROADCAST 0
DieterGraef 0:f9b6112278fe 590 #endif
DieterGraef 0:f9b6112278fe 591
DieterGraef 0:f9b6112278fe 592 /**
DieterGraef 0:f9b6112278fe 593 * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast
DieterGraef 0:f9b6112278fe 594 * filter on recv operations.
DieterGraef 0:f9b6112278fe 595 */
DieterGraef 0:f9b6112278fe 596 #ifndef IP_SOF_BROADCAST_RECV
DieterGraef 0:f9b6112278fe 597 #define IP_SOF_BROADCAST_RECV 0
DieterGraef 0:f9b6112278fe 598 #endif
DieterGraef 0:f9b6112278fe 599
DieterGraef 0:f9b6112278fe 600 /**
DieterGraef 0:f9b6112278fe 601 * IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back
DieterGraef 0:f9b6112278fe 602 * out on the netif where it was received. This should only be used for
DieterGraef 0:f9b6112278fe 603 * wireless networks.
DieterGraef 0:f9b6112278fe 604 * ATTENTION: When this is 1, make sure your netif driver correctly marks incoming
DieterGraef 0:f9b6112278fe 605 * link-layer-broadcast/multicast packets as such using the corresponding pbuf flags!
DieterGraef 0:f9b6112278fe 606 */
DieterGraef 0:f9b6112278fe 607 #ifndef IP_FORWARD_ALLOW_TX_ON_RX_NETIF
DieterGraef 0:f9b6112278fe 608 #define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
DieterGraef 0:f9b6112278fe 609 #endif
DieterGraef 0:f9b6112278fe 610
DieterGraef 0:f9b6112278fe 611 /**
DieterGraef 0:f9b6112278fe 612 * LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS==1: randomize the local port for the first
DieterGraef 0:f9b6112278fe 613 * local TCP/UDP pcb (default==0). This can prevent creating predictable port
DieterGraef 0:f9b6112278fe 614 * numbers after booting a device.
DieterGraef 0:f9b6112278fe 615 */
DieterGraef 0:f9b6112278fe 616 #ifndef LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS
DieterGraef 0:f9b6112278fe 617 #define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0
DieterGraef 0:f9b6112278fe 618 #endif
DieterGraef 0:f9b6112278fe 619
DieterGraef 0:f9b6112278fe 620 /*
DieterGraef 0:f9b6112278fe 621 ----------------------------------
DieterGraef 0:f9b6112278fe 622 ---------- ICMP options ----------
DieterGraef 0:f9b6112278fe 623 ----------------------------------
DieterGraef 0:f9b6112278fe 624 */
DieterGraef 0:f9b6112278fe 625 /**
DieterGraef 0:f9b6112278fe 626 * LWIP_ICMP==1: Enable ICMP module inside the IP stack.
DieterGraef 0:f9b6112278fe 627 * Be careful, disable that make your product non-compliant to RFC1122
DieterGraef 0:f9b6112278fe 628 */
DieterGraef 0:f9b6112278fe 629 #ifndef LWIP_ICMP
DieterGraef 0:f9b6112278fe 630 #define LWIP_ICMP 1
DieterGraef 0:f9b6112278fe 631 #endif
DieterGraef 0:f9b6112278fe 632
DieterGraef 0:f9b6112278fe 633 /**
DieterGraef 0:f9b6112278fe 634 * ICMP_TTL: Default value for Time-To-Live used by ICMP packets.
DieterGraef 0:f9b6112278fe 635 */
DieterGraef 0:f9b6112278fe 636 #ifndef ICMP_TTL
DieterGraef 0:f9b6112278fe 637 #define ICMP_TTL (IP_DEFAULT_TTL)
DieterGraef 0:f9b6112278fe 638 #endif
DieterGraef 0:f9b6112278fe 639
DieterGraef 0:f9b6112278fe 640 /**
DieterGraef 0:f9b6112278fe 641 * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only)
DieterGraef 0:f9b6112278fe 642 */
DieterGraef 0:f9b6112278fe 643 #ifndef LWIP_BROADCAST_PING
DieterGraef 0:f9b6112278fe 644 #define LWIP_BROADCAST_PING 0
DieterGraef 0:f9b6112278fe 645 #endif
DieterGraef 0:f9b6112278fe 646
DieterGraef 0:f9b6112278fe 647 /**
DieterGraef 0:f9b6112278fe 648 * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only)
DieterGraef 0:f9b6112278fe 649 */
DieterGraef 0:f9b6112278fe 650 #ifndef LWIP_MULTICAST_PING
DieterGraef 0:f9b6112278fe 651 #define LWIP_MULTICAST_PING 0
DieterGraef 0:f9b6112278fe 652 #endif
DieterGraef 0:f9b6112278fe 653
DieterGraef 0:f9b6112278fe 654 /*
DieterGraef 0:f9b6112278fe 655 ---------------------------------
DieterGraef 0:f9b6112278fe 656 ---------- RAW options ----------
DieterGraef 0:f9b6112278fe 657 ---------------------------------
DieterGraef 0:f9b6112278fe 658 */
DieterGraef 0:f9b6112278fe 659 /**
DieterGraef 0:f9b6112278fe 660 * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
DieterGraef 0:f9b6112278fe 661 */
DieterGraef 0:f9b6112278fe 662 #ifndef LWIP_RAW
DieterGraef 0:f9b6112278fe 663 #define LWIP_RAW 1
DieterGraef 0:f9b6112278fe 664 #endif
DieterGraef 0:f9b6112278fe 665
DieterGraef 0:f9b6112278fe 666 /**
DieterGraef 0:f9b6112278fe 667 * LWIP_RAW==1: Enable application layer to hook into the IP layer itself.
DieterGraef 0:f9b6112278fe 668 */
DieterGraef 0:f9b6112278fe 669 #ifndef RAW_TTL
DieterGraef 0:f9b6112278fe 670 #define RAW_TTL (IP_DEFAULT_TTL)
DieterGraef 0:f9b6112278fe 671 #endif
DieterGraef 0:f9b6112278fe 672
DieterGraef 0:f9b6112278fe 673 /*
DieterGraef 0:f9b6112278fe 674 ----------------------------------
DieterGraef 0:f9b6112278fe 675 ---------- DHCP options ----------
DieterGraef 0:f9b6112278fe 676 ----------------------------------
DieterGraef 0:f9b6112278fe 677 */
DieterGraef 0:f9b6112278fe 678 /**
DieterGraef 0:f9b6112278fe 679 * LWIP_DHCP==1: Enable DHCP module.
DieterGraef 0:f9b6112278fe 680 */
DieterGraef 0:f9b6112278fe 681 #ifndef LWIP_DHCP
DieterGraef 0:f9b6112278fe 682 #define LWIP_DHCP 0
DieterGraef 0:f9b6112278fe 683 #endif
DieterGraef 0:f9b6112278fe 684
DieterGraef 0:f9b6112278fe 685 /**
DieterGraef 0:f9b6112278fe 686 * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.
DieterGraef 0:f9b6112278fe 687 */
DieterGraef 0:f9b6112278fe 688 #ifndef DHCP_DOES_ARP_CHECK
DieterGraef 0:f9b6112278fe 689 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
DieterGraef 0:f9b6112278fe 690 #endif
DieterGraef 0:f9b6112278fe 691
DieterGraef 0:f9b6112278fe 692 /*
DieterGraef 0:f9b6112278fe 693 ------------------------------------
DieterGraef 0:f9b6112278fe 694 ---------- AUTOIP options ----------
DieterGraef 0:f9b6112278fe 695 ------------------------------------
DieterGraef 0:f9b6112278fe 696 */
DieterGraef 0:f9b6112278fe 697 /**
DieterGraef 0:f9b6112278fe 698 * LWIP_AUTOIP==1: Enable AUTOIP module.
DieterGraef 0:f9b6112278fe 699 */
DieterGraef 0:f9b6112278fe 700 #ifndef LWIP_AUTOIP
DieterGraef 0:f9b6112278fe 701 #define LWIP_AUTOIP 0
DieterGraef 0:f9b6112278fe 702 #endif
DieterGraef 0:f9b6112278fe 703
DieterGraef 0:f9b6112278fe 704 /**
DieterGraef 0:f9b6112278fe 705 * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on
DieterGraef 0:f9b6112278fe 706 * the same interface at the same time.
DieterGraef 0:f9b6112278fe 707 */
DieterGraef 0:f9b6112278fe 708 #ifndef LWIP_DHCP_AUTOIP_COOP
DieterGraef 0:f9b6112278fe 709 #define LWIP_DHCP_AUTOIP_COOP 0
DieterGraef 0:f9b6112278fe 710 #endif
DieterGraef 0:f9b6112278fe 711
DieterGraef 0:f9b6112278fe 712 /**
DieterGraef 0:f9b6112278fe 713 * LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes
DieterGraef 0:f9b6112278fe 714 * that should be sent before falling back on AUTOIP. This can be set
DieterGraef 0:f9b6112278fe 715 * as low as 1 to get an AutoIP address very quickly, but you should
DieterGraef 0:f9b6112278fe 716 * be prepared to handle a changing IP address when DHCP overrides
DieterGraef 0:f9b6112278fe 717 * AutoIP.
DieterGraef 0:f9b6112278fe 718 */
DieterGraef 0:f9b6112278fe 719 #ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
DieterGraef 0:f9b6112278fe 720 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9
DieterGraef 0:f9b6112278fe 721 #endif
DieterGraef 0:f9b6112278fe 722
DieterGraef 0:f9b6112278fe 723 /*
DieterGraef 0:f9b6112278fe 724 ----------------------------------
DieterGraef 0:f9b6112278fe 725 ---------- SNMP options ----------
DieterGraef 0:f9b6112278fe 726 ----------------------------------
DieterGraef 0:f9b6112278fe 727 */
DieterGraef 0:f9b6112278fe 728 /**
DieterGraef 0:f9b6112278fe 729 * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP
DieterGraef 0:f9b6112278fe 730 * transport.
DieterGraef 0:f9b6112278fe 731 */
DieterGraef 0:f9b6112278fe 732 #ifndef LWIP_SNMP
DieterGraef 0:f9b6112278fe 733 #define LWIP_SNMP 0
DieterGraef 0:f9b6112278fe 734 #endif
DieterGraef 0:f9b6112278fe 735
DieterGraef 0:f9b6112278fe 736 /**
DieterGraef 0:f9b6112278fe 737 * SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will
DieterGraef 0:f9b6112278fe 738 * allow. At least one request buffer is required.
DieterGraef 0:f9b6112278fe 739 * Does not have to be changed unless external MIBs answer request asynchronously
DieterGraef 0:f9b6112278fe 740 */
DieterGraef 0:f9b6112278fe 741 #ifndef SNMP_CONCURRENT_REQUESTS
DieterGraef 0:f9b6112278fe 742 #define SNMP_CONCURRENT_REQUESTS 1
DieterGraef 0:f9b6112278fe 743 #endif
DieterGraef 0:f9b6112278fe 744
DieterGraef 0:f9b6112278fe 745 /**
DieterGraef 0:f9b6112278fe 746 * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap
DieterGraef 0:f9b6112278fe 747 * destination is required
DieterGraef 0:f9b6112278fe 748 */
DieterGraef 0:f9b6112278fe 749 #ifndef SNMP_TRAP_DESTINATIONS
DieterGraef 0:f9b6112278fe 750 #define SNMP_TRAP_DESTINATIONS 1
DieterGraef 0:f9b6112278fe 751 #endif
DieterGraef 0:f9b6112278fe 752
DieterGraef 0:f9b6112278fe 753 /**
DieterGraef 0:f9b6112278fe 754 * SNMP_PRIVATE_MIB:
DieterGraef 0:f9b6112278fe 755 * When using a private MIB, you have to create a file 'private_mib.h' that contains
DieterGraef 0:f9b6112278fe 756 * a 'struct mib_array_node mib_private' which contains your MIB.
DieterGraef 0:f9b6112278fe 757 */
DieterGraef 0:f9b6112278fe 758 #ifndef SNMP_PRIVATE_MIB
DieterGraef 0:f9b6112278fe 759 #define SNMP_PRIVATE_MIB 0
DieterGraef 0:f9b6112278fe 760 #endif
DieterGraef 0:f9b6112278fe 761
DieterGraef 0:f9b6112278fe 762 /**
DieterGraef 0:f9b6112278fe 763 * Only allow SNMP write actions that are 'safe' (e.g. disabeling netifs is not
DieterGraef 0:f9b6112278fe 764 * a safe action and disabled when SNMP_SAFE_REQUESTS = 1).
DieterGraef 0:f9b6112278fe 765 * Unsafe requests are disabled by default!
DieterGraef 0:f9b6112278fe 766 */
DieterGraef 0:f9b6112278fe 767 #ifndef SNMP_SAFE_REQUESTS
DieterGraef 0:f9b6112278fe 768 #define SNMP_SAFE_REQUESTS 1
DieterGraef 0:f9b6112278fe 769 #endif
DieterGraef 0:f9b6112278fe 770
DieterGraef 0:f9b6112278fe 771 /**
DieterGraef 0:f9b6112278fe 772 * The maximum length of strings used. This affects the size of
DieterGraef 0:f9b6112278fe 773 * MEMP_SNMP_VALUE elements.
DieterGraef 0:f9b6112278fe 774 */
DieterGraef 0:f9b6112278fe 775 #ifndef SNMP_MAX_OCTET_STRING_LEN
DieterGraef 0:f9b6112278fe 776 #define SNMP_MAX_OCTET_STRING_LEN 127
DieterGraef 0:f9b6112278fe 777 #endif
DieterGraef 0:f9b6112278fe 778
DieterGraef 0:f9b6112278fe 779 /**
DieterGraef 0:f9b6112278fe 780 * The maximum depth of the SNMP tree.
DieterGraef 0:f9b6112278fe 781 * With private MIBs enabled, this depends on your MIB!
DieterGraef 0:f9b6112278fe 782 * This affects the size of MEMP_SNMP_VALUE elements.
DieterGraef 0:f9b6112278fe 783 */
DieterGraef 0:f9b6112278fe 784 #ifndef SNMP_MAX_TREE_DEPTH
DieterGraef 0:f9b6112278fe 785 #define SNMP_MAX_TREE_DEPTH 15
DieterGraef 0:f9b6112278fe 786 #endif
DieterGraef 0:f9b6112278fe 787
DieterGraef 0:f9b6112278fe 788 /**
DieterGraef 0:f9b6112278fe 789 * The size of the MEMP_SNMP_VALUE elements, normally calculated from
DieterGraef 0:f9b6112278fe 790 * SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH.
DieterGraef 0:f9b6112278fe 791 */
DieterGraef 0:f9b6112278fe 792 #ifndef SNMP_MAX_VALUE_SIZE
DieterGraef 0:f9b6112278fe 793 #define SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))
DieterGraef 0:f9b6112278fe 794 #endif
DieterGraef 0:f9b6112278fe 795
DieterGraef 0:f9b6112278fe 796 /*
DieterGraef 0:f9b6112278fe 797 ----------------------------------
DieterGraef 0:f9b6112278fe 798 ---------- IGMP options ----------
DieterGraef 0:f9b6112278fe 799 ----------------------------------
DieterGraef 0:f9b6112278fe 800 */
DieterGraef 0:f9b6112278fe 801 /**
DieterGraef 0:f9b6112278fe 802 * LWIP_IGMP==1: Turn on IGMP module.
DieterGraef 0:f9b6112278fe 803 */
DieterGraef 0:f9b6112278fe 804 #ifndef LWIP_IGMP
DieterGraef 0:f9b6112278fe 805 #define LWIP_IGMP 0
DieterGraef 0:f9b6112278fe 806 #endif
DieterGraef 0:f9b6112278fe 807
DieterGraef 0:f9b6112278fe 808 /*
DieterGraef 0:f9b6112278fe 809 ----------------------------------
DieterGraef 0:f9b6112278fe 810 ---------- DNS options -----------
DieterGraef 0:f9b6112278fe 811 ----------------------------------
DieterGraef 0:f9b6112278fe 812 */
DieterGraef 0:f9b6112278fe 813 /**
DieterGraef 0:f9b6112278fe 814 * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS
DieterGraef 0:f9b6112278fe 815 * transport.
DieterGraef 0:f9b6112278fe 816 */
DieterGraef 0:f9b6112278fe 817 #ifndef LWIP_DNS
DieterGraef 0:f9b6112278fe 818 #define LWIP_DNS 0
DieterGraef 0:f9b6112278fe 819 #endif
DieterGraef 0:f9b6112278fe 820
DieterGraef 0:f9b6112278fe 821 /** DNS maximum number of entries to maintain locally. */
DieterGraef 0:f9b6112278fe 822 #ifndef DNS_TABLE_SIZE
DieterGraef 0:f9b6112278fe 823 #define DNS_TABLE_SIZE 4
DieterGraef 0:f9b6112278fe 824 #endif
DieterGraef 0:f9b6112278fe 825
DieterGraef 0:f9b6112278fe 826 /** DNS maximum host name length supported in the name table. */
DieterGraef 0:f9b6112278fe 827 #ifndef DNS_MAX_NAME_LENGTH
DieterGraef 0:f9b6112278fe 828 #define DNS_MAX_NAME_LENGTH 256
DieterGraef 0:f9b6112278fe 829 #endif
DieterGraef 0:f9b6112278fe 830
DieterGraef 0:f9b6112278fe 831 /** The maximum of DNS servers */
DieterGraef 0:f9b6112278fe 832 #ifndef DNS_MAX_SERVERS
DieterGraef 0:f9b6112278fe 833 #define DNS_MAX_SERVERS 2
DieterGraef 0:f9b6112278fe 834 #endif
DieterGraef 0:f9b6112278fe 835
DieterGraef 0:f9b6112278fe 836 /** DNS do a name checking between the query and the response. */
DieterGraef 0:f9b6112278fe 837 #ifndef DNS_DOES_NAME_CHECK
DieterGraef 0:f9b6112278fe 838 #define DNS_DOES_NAME_CHECK 1
DieterGraef 0:f9b6112278fe 839 #endif
DieterGraef 0:f9b6112278fe 840
DieterGraef 0:f9b6112278fe 841 /** DNS message max. size. Default value is RFC compliant. */
DieterGraef 0:f9b6112278fe 842 #ifndef DNS_MSG_SIZE
DieterGraef 0:f9b6112278fe 843 #define DNS_MSG_SIZE 512
DieterGraef 0:f9b6112278fe 844 #endif
DieterGraef 0:f9b6112278fe 845
DieterGraef 0:f9b6112278fe 846 /** DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled,
DieterGraef 0:f9b6112278fe 847 * you have to define
DieterGraef 0:f9b6112278fe 848 * #define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}}
DieterGraef 0:f9b6112278fe 849 * (an array of structs name/address, where address is an u32_t in network
DieterGraef 0:f9b6112278fe 850 * byte order).
DieterGraef 0:f9b6112278fe 851 *
DieterGraef 0:f9b6112278fe 852 * Instead, you can also use an external function:
DieterGraef 0:f9b6112278fe 853 * #define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name)
DieterGraef 0:f9b6112278fe 854 * that returns the IP address or INADDR_NONE if not found.
DieterGraef 0:f9b6112278fe 855 */
DieterGraef 0:f9b6112278fe 856 #ifndef DNS_LOCAL_HOSTLIST
DieterGraef 0:f9b6112278fe 857 #define DNS_LOCAL_HOSTLIST 0
DieterGraef 0:f9b6112278fe 858 #endif /* DNS_LOCAL_HOSTLIST */
DieterGraef 0:f9b6112278fe 859
DieterGraef 0:f9b6112278fe 860 /** If this is turned on, the local host-list can be dynamically changed
DieterGraef 0:f9b6112278fe 861 * at runtime. */
DieterGraef 0:f9b6112278fe 862 #ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC
DieterGraef 0:f9b6112278fe 863 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
DieterGraef 0:f9b6112278fe 864 #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
DieterGraef 0:f9b6112278fe 865
DieterGraef 0:f9b6112278fe 866 /*
DieterGraef 0:f9b6112278fe 867 ---------------------------------
DieterGraef 0:f9b6112278fe 868 ---------- UDP options ----------
DieterGraef 0:f9b6112278fe 869 ---------------------------------
DieterGraef 0:f9b6112278fe 870 */
DieterGraef 0:f9b6112278fe 871 /**
DieterGraef 0:f9b6112278fe 872 * LWIP_UDP==1: Turn on UDP.
DieterGraef 0:f9b6112278fe 873 */
DieterGraef 0:f9b6112278fe 874 #ifndef LWIP_UDP
DieterGraef 0:f9b6112278fe 875 #define LWIP_UDP 1
DieterGraef 0:f9b6112278fe 876 #endif
DieterGraef 0:f9b6112278fe 877
DieterGraef 0:f9b6112278fe 878 /**
DieterGraef 0:f9b6112278fe 879 * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP)
DieterGraef 0:f9b6112278fe 880 */
DieterGraef 0:f9b6112278fe 881 #ifndef LWIP_UDPLITE
DieterGraef 0:f9b6112278fe 882 #define LWIP_UDPLITE 0
DieterGraef 0:f9b6112278fe 883 #endif
DieterGraef 0:f9b6112278fe 884
DieterGraef 0:f9b6112278fe 885 /**
DieterGraef 0:f9b6112278fe 886 * UDP_TTL: Default Time-To-Live value.
DieterGraef 0:f9b6112278fe 887 */
DieterGraef 0:f9b6112278fe 888 #ifndef UDP_TTL
DieterGraef 0:f9b6112278fe 889 #define UDP_TTL (IP_DEFAULT_TTL)
DieterGraef 0:f9b6112278fe 890 #endif
DieterGraef 0:f9b6112278fe 891
DieterGraef 0:f9b6112278fe 892 /**
DieterGraef 0:f9b6112278fe 893 * LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf.
DieterGraef 0:f9b6112278fe 894 */
DieterGraef 0:f9b6112278fe 895 #ifndef LWIP_NETBUF_RECVINFO
DieterGraef 0:f9b6112278fe 896 #define LWIP_NETBUF_RECVINFO 0
DieterGraef 0:f9b6112278fe 897 #endif
DieterGraef 0:f9b6112278fe 898
DieterGraef 0:f9b6112278fe 899 /*
DieterGraef 0:f9b6112278fe 900 ---------------------------------
DieterGraef 0:f9b6112278fe 901 ---------- TCP options ----------
DieterGraef 0:f9b6112278fe 902 ---------------------------------
DieterGraef 0:f9b6112278fe 903 */
DieterGraef 0:f9b6112278fe 904 /**
DieterGraef 0:f9b6112278fe 905 * LWIP_TCP==1: Turn on TCP.
DieterGraef 0:f9b6112278fe 906 */
DieterGraef 0:f9b6112278fe 907 #ifndef LWIP_TCP
DieterGraef 0:f9b6112278fe 908 #define LWIP_TCP 1
DieterGraef 0:f9b6112278fe 909 #endif
DieterGraef 0:f9b6112278fe 910
DieterGraef 0:f9b6112278fe 911 /**
DieterGraef 0:f9b6112278fe 912 * TCP_TTL: Default Time-To-Live value.
DieterGraef 0:f9b6112278fe 913 */
DieterGraef 0:f9b6112278fe 914 #ifndef TCP_TTL
DieterGraef 0:f9b6112278fe 915 #define TCP_TTL (IP_DEFAULT_TTL)
DieterGraef 0:f9b6112278fe 916 #endif
DieterGraef 0:f9b6112278fe 917
DieterGraef 0:f9b6112278fe 918 /**
DieterGraef 0:f9b6112278fe 919 * TCP_WND: The size of a TCP window. This must be at least
DieterGraef 0:f9b6112278fe 920 * (2 * TCP_MSS) for things to work well
DieterGraef 0:f9b6112278fe 921 */
DieterGraef 0:f9b6112278fe 922 #ifndef TCP_WND
DieterGraef 0:f9b6112278fe 923 #define TCP_WND (4 * TCP_MSS)
DieterGraef 0:f9b6112278fe 924 #endif
DieterGraef 0:f9b6112278fe 925
DieterGraef 0:f9b6112278fe 926 /**
DieterGraef 0:f9b6112278fe 927 * TCP_MAXRTX: Maximum number of retransmissions of data segments.
DieterGraef 0:f9b6112278fe 928 */
DieterGraef 0:f9b6112278fe 929 #ifndef TCP_MAXRTX
DieterGraef 0:f9b6112278fe 930 #define TCP_MAXRTX 12
DieterGraef 0:f9b6112278fe 931 #endif
DieterGraef 0:f9b6112278fe 932
DieterGraef 0:f9b6112278fe 933 /**
DieterGraef 0:f9b6112278fe 934 * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.
DieterGraef 0:f9b6112278fe 935 */
DieterGraef 0:f9b6112278fe 936 #ifndef TCP_SYNMAXRTX
DieterGraef 0:f9b6112278fe 937 #define TCP_SYNMAXRTX 6
DieterGraef 0:f9b6112278fe 938 #endif
DieterGraef 0:f9b6112278fe 939
DieterGraef 0:f9b6112278fe 940 /**
DieterGraef 0:f9b6112278fe 941 * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.
DieterGraef 0:f9b6112278fe 942 * Define to 0 if your device is low on memory.
DieterGraef 0:f9b6112278fe 943 */
DieterGraef 0:f9b6112278fe 944 #ifndef TCP_QUEUE_OOSEQ
DieterGraef 0:f9b6112278fe 945 #define TCP_QUEUE_OOSEQ (LWIP_TCP)
DieterGraef 0:f9b6112278fe 946 #endif
DieterGraef 0:f9b6112278fe 947
DieterGraef 0:f9b6112278fe 948 /**
DieterGraef 0:f9b6112278fe 949 * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default,
DieterGraef 0:f9b6112278fe 950 * you might want to increase this.)
DieterGraef 0:f9b6112278fe 951 * For the receive side, this MSS is advertised to the remote side
DieterGraef 0:f9b6112278fe 952 * when opening a connection. For the transmit size, this MSS sets
DieterGraef 0:f9b6112278fe 953 * an upper limit on the MSS advertised by the remote host.
DieterGraef 0:f9b6112278fe 954 */
DieterGraef 0:f9b6112278fe 955 #ifndef TCP_MSS
DieterGraef 0:f9b6112278fe 956 #define TCP_MSS 536
DieterGraef 0:f9b6112278fe 957 #endif
DieterGraef 0:f9b6112278fe 958
DieterGraef 0:f9b6112278fe 959 /**
DieterGraef 0:f9b6112278fe 960 * TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really
DieterGraef 0:f9b6112278fe 961 * sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which
DieterGraef 0:f9b6112278fe 962 * reflects the available reassembly buffer size at the remote host) and the
DieterGraef 0:f9b6112278fe 963 * largest size permitted by the IP layer" (RFC 1122)
DieterGraef 0:f9b6112278fe 964 * Setting this to 1 enables code that checks TCP_MSS against the MTU of the
DieterGraef 0:f9b6112278fe 965 * netif used for a connection and limits the MSS if it would be too big otherwise.
DieterGraef 0:f9b6112278fe 966 */
DieterGraef 0:f9b6112278fe 967 #ifndef TCP_CALCULATE_EFF_SEND_MSS
DieterGraef 0:f9b6112278fe 968 #define TCP_CALCULATE_EFF_SEND_MSS 1
DieterGraef 0:f9b6112278fe 969 #endif
DieterGraef 0:f9b6112278fe 970
DieterGraef 0:f9b6112278fe 971
DieterGraef 0:f9b6112278fe 972 /**
DieterGraef 0:f9b6112278fe 973 * TCP_SND_BUF: TCP sender buffer space (bytes).
DieterGraef 0:f9b6112278fe 974 * To achieve good performance, this should be at least 2 * TCP_MSS.
DieterGraef 0:f9b6112278fe 975 */
DieterGraef 0:f9b6112278fe 976 #ifndef TCP_SND_BUF
DieterGraef 0:f9b6112278fe 977 #define TCP_SND_BUF (2 * TCP_MSS)
DieterGraef 0:f9b6112278fe 978 #endif
DieterGraef 0:f9b6112278fe 979
DieterGraef 0:f9b6112278fe 980 /**
DieterGraef 0:f9b6112278fe 981 * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least
DieterGraef 0:f9b6112278fe 982 * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work.
DieterGraef 0:f9b6112278fe 983 */
DieterGraef 0:f9b6112278fe 984 #ifndef TCP_SND_QUEUELEN
DieterGraef 0:f9b6112278fe 985 #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
DieterGraef 0:f9b6112278fe 986 #endif
DieterGraef 0:f9b6112278fe 987
DieterGraef 0:f9b6112278fe 988 /**
DieterGraef 0:f9b6112278fe 989 * TCP_SNDLOWAT: TCP writable space (bytes). This must be less than
DieterGraef 0:f9b6112278fe 990 * TCP_SND_BUF. It is the amount of space which must be available in the
DieterGraef 0:f9b6112278fe 991 * TCP snd_buf for select to return writable (combined with TCP_SNDQUEUELOWAT).
DieterGraef 0:f9b6112278fe 992 */
DieterGraef 0:f9b6112278fe 993 #ifndef TCP_SNDLOWAT
DieterGraef 0:f9b6112278fe 994 #define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
DieterGraef 0:f9b6112278fe 995 #endif
DieterGraef 0:f9b6112278fe 996
DieterGraef 0:f9b6112278fe 997 /**
DieterGraef 0:f9b6112278fe 998 * TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count). This must be less
DieterGraef 0:f9b6112278fe 999 * than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below
DieterGraef 0:f9b6112278fe 1000 * this number, select returns writable (combined with TCP_SNDLOWAT).
DieterGraef 0:f9b6112278fe 1001 */
DieterGraef 0:f9b6112278fe 1002 #ifndef TCP_SNDQUEUELOWAT
DieterGraef 0:f9b6112278fe 1003 #define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
DieterGraef 0:f9b6112278fe 1004 #endif
DieterGraef 0:f9b6112278fe 1005
DieterGraef 0:f9b6112278fe 1006 /**
DieterGraef 0:f9b6112278fe 1007 * TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb.
DieterGraef 0:f9b6112278fe 1008 * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.
DieterGraef 0:f9b6112278fe 1009 */
DieterGraef 0:f9b6112278fe 1010 #ifndef TCP_OOSEQ_MAX_BYTES
DieterGraef 0:f9b6112278fe 1011 #define TCP_OOSEQ_MAX_BYTES 0
DieterGraef 0:f9b6112278fe 1012 #endif
DieterGraef 0:f9b6112278fe 1013
DieterGraef 0:f9b6112278fe 1014 /**
DieterGraef 0:f9b6112278fe 1015 * TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb.
DieterGraef 0:f9b6112278fe 1016 * Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.
DieterGraef 0:f9b6112278fe 1017 */
DieterGraef 0:f9b6112278fe 1018 #ifndef TCP_OOSEQ_MAX_PBUFS
DieterGraef 0:f9b6112278fe 1019 #define TCP_OOSEQ_MAX_PBUFS 0
DieterGraef 0:f9b6112278fe 1020 #endif
DieterGraef 0:f9b6112278fe 1021
DieterGraef 0:f9b6112278fe 1022 /**
DieterGraef 0:f9b6112278fe 1023 * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb.
DieterGraef 0:f9b6112278fe 1024 */
DieterGraef 0:f9b6112278fe 1025 #ifndef TCP_LISTEN_BACKLOG
DieterGraef 0:f9b6112278fe 1026 #define TCP_LISTEN_BACKLOG 0
DieterGraef 0:f9b6112278fe 1027 #endif
DieterGraef 0:f9b6112278fe 1028
DieterGraef 0:f9b6112278fe 1029 /**
DieterGraef 0:f9b6112278fe 1030 * The maximum allowed backlog for TCP listen netconns.
DieterGraef 0:f9b6112278fe 1031 * This backlog is used unless another is explicitly specified.
DieterGraef 0:f9b6112278fe 1032 * 0xff is the maximum (u8_t).
DieterGraef 0:f9b6112278fe 1033 */
DieterGraef 0:f9b6112278fe 1034 #ifndef TCP_DEFAULT_LISTEN_BACKLOG
DieterGraef 0:f9b6112278fe 1035 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff
DieterGraef 0:f9b6112278fe 1036 #endif
DieterGraef 0:f9b6112278fe 1037
DieterGraef 0:f9b6112278fe 1038 /**
DieterGraef 0:f9b6112278fe 1039 * TCP_OVERSIZE: The maximum number of bytes that tcp_write may
DieterGraef 0:f9b6112278fe 1040 * allocate ahead of time in an attempt to create shorter pbuf chains
DieterGraef 0:f9b6112278fe 1041 * for transmission. The meaningful range is 0 to TCP_MSS. Some
DieterGraef 0:f9b6112278fe 1042 * suggested values are:
DieterGraef 0:f9b6112278fe 1043 *
DieterGraef 0:f9b6112278fe 1044 * 0: Disable oversized allocation. Each tcp_write() allocates a new
DieterGraef 0:f9b6112278fe 1045 pbuf (old behaviour).
DieterGraef 0:f9b6112278fe 1046 * 1: Allocate size-aligned pbufs with minimal excess. Use this if your
DieterGraef 0:f9b6112278fe 1047 * scatter-gather DMA requires aligned fragments.
DieterGraef 0:f9b6112278fe 1048 * 128: Limit the pbuf/memory overhead to 20%.
DieterGraef 0:f9b6112278fe 1049 * TCP_MSS: Try to create unfragmented TCP packets.
DieterGraef 0:f9b6112278fe 1050 * TCP_MSS/4: Try to create 4 fragments or less per TCP packet.
DieterGraef 0:f9b6112278fe 1051 */
DieterGraef 0:f9b6112278fe 1052 #ifndef TCP_OVERSIZE
DieterGraef 0:f9b6112278fe 1053 #define TCP_OVERSIZE TCP_MSS
DieterGraef 0:f9b6112278fe 1054 #endif
DieterGraef 0:f9b6112278fe 1055
DieterGraef 0:f9b6112278fe 1056 /**
DieterGraef 0:f9b6112278fe 1057 * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option.
DieterGraef 0:f9b6112278fe 1058 */
DieterGraef 0:f9b6112278fe 1059 #ifndef LWIP_TCP_TIMESTAMPS
DieterGraef 0:f9b6112278fe 1060 #define LWIP_TCP_TIMESTAMPS 0
DieterGraef 0:f9b6112278fe 1061 #endif
DieterGraef 0:f9b6112278fe 1062
DieterGraef 0:f9b6112278fe 1063 /**
DieterGraef 0:f9b6112278fe 1064 * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an
DieterGraef 0:f9b6112278fe 1065 * explicit window update
DieterGraef 0:f9b6112278fe 1066 */
DieterGraef 0:f9b6112278fe 1067 #ifndef TCP_WND_UPDATE_THRESHOLD
DieterGraef 0:f9b6112278fe 1068 #define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4)
DieterGraef 0:f9b6112278fe 1069 #endif
DieterGraef 0:f9b6112278fe 1070
DieterGraef 0:f9b6112278fe 1071 /**
DieterGraef 0:f9b6112278fe 1072 * LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1.
DieterGraef 0:f9b6112278fe 1073 * LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all
DieterGraef 0:f9b6112278fe 1074 * events (accept, sent, etc) that happen in the system.
DieterGraef 0:f9b6112278fe 1075 * LWIP_CALLBACK_API==1: The PCB callback function is called directly
DieterGraef 0:f9b6112278fe 1076 * for the event. This is the default.
DieterGraef 0:f9b6112278fe 1077 */
DieterGraef 0:f9b6112278fe 1078 #if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API)
DieterGraef 0:f9b6112278fe 1079 #define LWIP_EVENT_API 0
DieterGraef 0:f9b6112278fe 1080 #define LWIP_CALLBACK_API 1
DieterGraef 0:f9b6112278fe 1081 #endif
DieterGraef 0:f9b6112278fe 1082
DieterGraef 0:f9b6112278fe 1083
DieterGraef 0:f9b6112278fe 1084 /*
DieterGraef 0:f9b6112278fe 1085 ----------------------------------
DieterGraef 0:f9b6112278fe 1086 ---------- Pbuf options ----------
DieterGraef 0:f9b6112278fe 1087 ----------------------------------
DieterGraef 0:f9b6112278fe 1088 */
DieterGraef 0:f9b6112278fe 1089 /**
DieterGraef 0:f9b6112278fe 1090 * PBUF_LINK_HLEN: the number of bytes that should be allocated for a
DieterGraef 0:f9b6112278fe 1091 * link level header. The default is 14, the standard value for
DieterGraef 0:f9b6112278fe 1092 * Ethernet.
DieterGraef 0:f9b6112278fe 1093 */
DieterGraef 0:f9b6112278fe 1094 #ifndef PBUF_LINK_HLEN
DieterGraef 0:f9b6112278fe 1095 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
DieterGraef 0:f9b6112278fe 1096 #endif
DieterGraef 0:f9b6112278fe 1097
DieterGraef 0:f9b6112278fe 1098 /**
DieterGraef 0:f9b6112278fe 1099 * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is
DieterGraef 0:f9b6112278fe 1100 * designed to accomodate single full size TCP frame in one pbuf, including
DieterGraef 0:f9b6112278fe 1101 * TCP_MSS, IP header, and link header.
DieterGraef 0:f9b6112278fe 1102 */
DieterGraef 0:f9b6112278fe 1103 #ifndef PBUF_POOL_BUFSIZE
DieterGraef 0:f9b6112278fe 1104 #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
DieterGraef 0:f9b6112278fe 1105 #endif
DieterGraef 0:f9b6112278fe 1106
DieterGraef 0:f9b6112278fe 1107 /*
DieterGraef 0:f9b6112278fe 1108 ------------------------------------------------
DieterGraef 0:f9b6112278fe 1109 ---------- Network Interfaces options ----------
DieterGraef 0:f9b6112278fe 1110 ------------------------------------------------
DieterGraef 0:f9b6112278fe 1111 */
DieterGraef 0:f9b6112278fe 1112 /**
DieterGraef 0:f9b6112278fe 1113 * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname
DieterGraef 0:f9b6112278fe 1114 * field.
DieterGraef 0:f9b6112278fe 1115 */
DieterGraef 0:f9b6112278fe 1116 #ifndef LWIP_NETIF_HOSTNAME
DieterGraef 0:f9b6112278fe 1117 #define LWIP_NETIF_HOSTNAME 0
DieterGraef 0:f9b6112278fe 1118 #endif
DieterGraef 0:f9b6112278fe 1119
DieterGraef 0:f9b6112278fe 1120 /**
DieterGraef 0:f9b6112278fe 1121 * LWIP_NETIF_API==1: Support netif api (in netifapi.c)
DieterGraef 0:f9b6112278fe 1122 */
DieterGraef 0:f9b6112278fe 1123 #ifndef LWIP_NETIF_API
DieterGraef 0:f9b6112278fe 1124 #define LWIP_NETIF_API 0
DieterGraef 0:f9b6112278fe 1125 #endif
DieterGraef 0:f9b6112278fe 1126
DieterGraef 0:f9b6112278fe 1127 /**
DieterGraef 0:f9b6112278fe 1128 * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface
DieterGraef 0:f9b6112278fe 1129 * changes its up/down status (i.e., due to DHCP IP acquistion)
DieterGraef 0:f9b6112278fe 1130 */
DieterGraef 0:f9b6112278fe 1131 #ifndef LWIP_NETIF_STATUS_CALLBACK
DieterGraef 0:f9b6112278fe 1132 #define LWIP_NETIF_STATUS_CALLBACK 0
DieterGraef 0:f9b6112278fe 1133 #endif
DieterGraef 0:f9b6112278fe 1134
DieterGraef 0:f9b6112278fe 1135 /**
DieterGraef 0:f9b6112278fe 1136 * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface
DieterGraef 0:f9b6112278fe 1137 * whenever the link changes (i.e., link down)
DieterGraef 0:f9b6112278fe 1138 */
DieterGraef 0:f9b6112278fe 1139 #ifndef LWIP_NETIF_LINK_CALLBACK
DieterGraef 0:f9b6112278fe 1140 #define LWIP_NETIF_LINK_CALLBACK 0
DieterGraef 0:f9b6112278fe 1141 #endif
DieterGraef 0:f9b6112278fe 1142
DieterGraef 0:f9b6112278fe 1143 /**
DieterGraef 0:f9b6112278fe 1144 * LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called
DieterGraef 0:f9b6112278fe 1145 * when a netif has been removed
DieterGraef 0:f9b6112278fe 1146 */
DieterGraef 0:f9b6112278fe 1147 #ifndef LWIP_NETIF_REMOVE_CALLBACK
DieterGraef 0:f9b6112278fe 1148 #define LWIP_NETIF_REMOVE_CALLBACK 0
DieterGraef 0:f9b6112278fe 1149 #endif
DieterGraef 0:f9b6112278fe 1150
DieterGraef 0:f9b6112278fe 1151 /**
DieterGraef 0:f9b6112278fe 1152 * LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table
DieterGraef 0:f9b6112278fe 1153 * indices) in struct netif. TCP and UDP can make use of this to prevent
DieterGraef 0:f9b6112278fe 1154 * scanning the ARP table for every sent packet. While this is faster for big
DieterGraef 0:f9b6112278fe 1155 * ARP tables or many concurrent connections, it might be counterproductive
DieterGraef 0:f9b6112278fe 1156 * if you have a tiny ARP table or if there never are concurrent connections.
DieterGraef 0:f9b6112278fe 1157 */
DieterGraef 0:f9b6112278fe 1158 #ifndef LWIP_NETIF_HWADDRHINT
DieterGraef 0:f9b6112278fe 1159 #define LWIP_NETIF_HWADDRHINT 0
DieterGraef 0:f9b6112278fe 1160 #endif
DieterGraef 0:f9b6112278fe 1161
DieterGraef 0:f9b6112278fe 1162 /**
DieterGraef 0:f9b6112278fe 1163 * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP
DieterGraef 0:f9b6112278fe 1164 * address equal to the netif IP address, looping them back up the stack.
DieterGraef 0:f9b6112278fe 1165 */
DieterGraef 0:f9b6112278fe 1166 #ifndef LWIP_NETIF_LOOPBACK
DieterGraef 0:f9b6112278fe 1167 #define LWIP_NETIF_LOOPBACK 0
DieterGraef 0:f9b6112278fe 1168 #endif
DieterGraef 0:f9b6112278fe 1169
DieterGraef 0:f9b6112278fe 1170 /**
DieterGraef 0:f9b6112278fe 1171 * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback
DieterGraef 0:f9b6112278fe 1172 * sending for each netif (0 = disabled)
DieterGraef 0:f9b6112278fe 1173 */
DieterGraef 0:f9b6112278fe 1174 #ifndef LWIP_LOOPBACK_MAX_PBUFS
DieterGraef 0:f9b6112278fe 1175 #define LWIP_LOOPBACK_MAX_PBUFS 0
DieterGraef 0:f9b6112278fe 1176 #endif
DieterGraef 0:f9b6112278fe 1177
DieterGraef 0:f9b6112278fe 1178 /**
DieterGraef 0:f9b6112278fe 1179 * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in
DieterGraef 0:f9b6112278fe 1180 * the system, as netifs must change how they behave depending on this setting
DieterGraef 0:f9b6112278fe 1181 * for the LWIP_NETIF_LOOPBACK option to work.
DieterGraef 0:f9b6112278fe 1182 * Setting this is needed to avoid reentering non-reentrant functions like
DieterGraef 0:f9b6112278fe 1183 * tcp_input().
DieterGraef 0:f9b6112278fe 1184 * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a
DieterGraef 0:f9b6112278fe 1185 * multithreaded environment like tcpip.c. In this case, netif->input()
DieterGraef 0:f9b6112278fe 1186 * is called directly.
DieterGraef 0:f9b6112278fe 1187 * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup.
DieterGraef 0:f9b6112278fe 1188 * The packets are put on a list and netif_poll() must be called in
DieterGraef 0:f9b6112278fe 1189 * the main application loop.
DieterGraef 0:f9b6112278fe 1190 */
DieterGraef 0:f9b6112278fe 1191 #ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING
DieterGraef 0:f9b6112278fe 1192 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
DieterGraef 0:f9b6112278fe 1193 #endif
DieterGraef 0:f9b6112278fe 1194
DieterGraef 0:f9b6112278fe 1195 /**
DieterGraef 0:f9b6112278fe 1196 * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data
DieterGraef 0:f9b6112278fe 1197 * to be sent into one single pbuf. This is for compatibility with DMA-enabled
DieterGraef 0:f9b6112278fe 1198 * MACs that do not support scatter-gather.
DieterGraef 0:f9b6112278fe 1199 * Beware that this might involve CPU-memcpy before transmitting that would not
DieterGraef 0:f9b6112278fe 1200 * be needed without this flag! Use this only if you need to!
DieterGraef 0:f9b6112278fe 1201 *
DieterGraef 0:f9b6112278fe 1202 * @todo: TCP and IP-frag do not work with this, yet:
DieterGraef 0:f9b6112278fe 1203 */
DieterGraef 0:f9b6112278fe 1204 #ifndef LWIP_NETIF_TX_SINGLE_PBUF
DieterGraef 0:f9b6112278fe 1205 #define LWIP_NETIF_TX_SINGLE_PBUF 0
DieterGraef 0:f9b6112278fe 1206 #endif /* LWIP_NETIF_TX_SINGLE_PBUF */
DieterGraef 0:f9b6112278fe 1207
DieterGraef 0:f9b6112278fe 1208 /*
DieterGraef 0:f9b6112278fe 1209 ------------------------------------
DieterGraef 0:f9b6112278fe 1210 ---------- LOOPIF options ----------
DieterGraef 0:f9b6112278fe 1211 ------------------------------------
DieterGraef 0:f9b6112278fe 1212 */
DieterGraef 0:f9b6112278fe 1213 /**
DieterGraef 0:f9b6112278fe 1214 * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c
DieterGraef 0:f9b6112278fe 1215 */
DieterGraef 0:f9b6112278fe 1216 #ifndef LWIP_HAVE_LOOPIF
DieterGraef 0:f9b6112278fe 1217 #define LWIP_HAVE_LOOPIF 0
DieterGraef 0:f9b6112278fe 1218 #endif
DieterGraef 0:f9b6112278fe 1219
DieterGraef 0:f9b6112278fe 1220 /*
DieterGraef 0:f9b6112278fe 1221 ------------------------------------
DieterGraef 0:f9b6112278fe 1222 ---------- SLIPIF options ----------
DieterGraef 0:f9b6112278fe 1223 ------------------------------------
DieterGraef 0:f9b6112278fe 1224 */
DieterGraef 0:f9b6112278fe 1225 /**
DieterGraef 0:f9b6112278fe 1226 * LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c
DieterGraef 0:f9b6112278fe 1227 */
DieterGraef 0:f9b6112278fe 1228 #ifndef LWIP_HAVE_SLIPIF
DieterGraef 0:f9b6112278fe 1229 #define LWIP_HAVE_SLIPIF 0
DieterGraef 0:f9b6112278fe 1230 #endif
DieterGraef 0:f9b6112278fe 1231
DieterGraef 0:f9b6112278fe 1232 /*
DieterGraef 0:f9b6112278fe 1233 ------------------------------------
DieterGraef 0:f9b6112278fe 1234 ---------- Thread options ----------
DieterGraef 0:f9b6112278fe 1235 ------------------------------------
DieterGraef 0:f9b6112278fe 1236 */
DieterGraef 0:f9b6112278fe 1237 /**
DieterGraef 0:f9b6112278fe 1238 * TCPIP_THREAD_NAME: The name assigned to the main tcpip thread.
DieterGraef 0:f9b6112278fe 1239 */
DieterGraef 0:f9b6112278fe 1240 #ifndef TCPIP_THREAD_NAME
DieterGraef 0:f9b6112278fe 1241 #define TCPIP_THREAD_NAME "tcpip_thread"
DieterGraef 0:f9b6112278fe 1242 #endif
DieterGraef 0:f9b6112278fe 1243
DieterGraef 0:f9b6112278fe 1244 /**
DieterGraef 0:f9b6112278fe 1245 * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread.
DieterGraef 0:f9b6112278fe 1246 * The stack size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1247 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1248 */
DieterGraef 0:f9b6112278fe 1249 #ifndef TCPIP_THREAD_STACKSIZE
DieterGraef 0:f9b6112278fe 1250 #define TCPIP_THREAD_STACKSIZE 0
DieterGraef 0:f9b6112278fe 1251 #endif
DieterGraef 0:f9b6112278fe 1252
DieterGraef 0:f9b6112278fe 1253 /**
DieterGraef 0:f9b6112278fe 1254 * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread.
DieterGraef 0:f9b6112278fe 1255 * The priority value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1256 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1257 */
DieterGraef 0:f9b6112278fe 1258 #ifndef TCPIP_THREAD_PRIO
DieterGraef 0:f9b6112278fe 1259 #define TCPIP_THREAD_PRIO 1
DieterGraef 0:f9b6112278fe 1260 #endif
DieterGraef 0:f9b6112278fe 1261
DieterGraef 0:f9b6112278fe 1262 /**
DieterGraef 0:f9b6112278fe 1263 * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages
DieterGraef 0:f9b6112278fe 1264 * The queue size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1265 * sys_mbox_new() when tcpip_init is called.
DieterGraef 0:f9b6112278fe 1266 */
DieterGraef 0:f9b6112278fe 1267 #ifndef TCPIP_MBOX_SIZE
DieterGraef 0:f9b6112278fe 1268 #define TCPIP_MBOX_SIZE 0
DieterGraef 0:f9b6112278fe 1269 #endif
DieterGraef 0:f9b6112278fe 1270
DieterGraef 0:f9b6112278fe 1271 /**
DieterGraef 0:f9b6112278fe 1272 * SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread.
DieterGraef 0:f9b6112278fe 1273 */
DieterGraef 0:f9b6112278fe 1274 #ifndef SLIPIF_THREAD_NAME
DieterGraef 0:f9b6112278fe 1275 #define SLIPIF_THREAD_NAME "slipif_loop"
DieterGraef 0:f9b6112278fe 1276 #endif
DieterGraef 0:f9b6112278fe 1277
DieterGraef 0:f9b6112278fe 1278 /**
DieterGraef 0:f9b6112278fe 1279 * SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread.
DieterGraef 0:f9b6112278fe 1280 * The stack size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1281 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1282 */
DieterGraef 0:f9b6112278fe 1283 #ifndef SLIPIF_THREAD_STACKSIZE
DieterGraef 0:f9b6112278fe 1284 #define SLIPIF_THREAD_STACKSIZE 0
DieterGraef 0:f9b6112278fe 1285 #endif
DieterGraef 0:f9b6112278fe 1286
DieterGraef 0:f9b6112278fe 1287 /**
DieterGraef 0:f9b6112278fe 1288 * SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread.
DieterGraef 0:f9b6112278fe 1289 * The priority value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1290 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1291 */
DieterGraef 0:f9b6112278fe 1292 #ifndef SLIPIF_THREAD_PRIO
DieterGraef 0:f9b6112278fe 1293 #define SLIPIF_THREAD_PRIO 1
DieterGraef 0:f9b6112278fe 1294 #endif
DieterGraef 0:f9b6112278fe 1295
DieterGraef 0:f9b6112278fe 1296 /**
DieterGraef 0:f9b6112278fe 1297 * PPP_THREAD_NAME: The name assigned to the pppInputThread.
DieterGraef 0:f9b6112278fe 1298 */
DieterGraef 0:f9b6112278fe 1299 #ifndef PPP_THREAD_NAME
DieterGraef 0:f9b6112278fe 1300 #define PPP_THREAD_NAME "pppInputThread"
DieterGraef 0:f9b6112278fe 1301 #endif
DieterGraef 0:f9b6112278fe 1302
DieterGraef 0:f9b6112278fe 1303 /**
DieterGraef 0:f9b6112278fe 1304 * PPP_THREAD_STACKSIZE: The stack size used by the pppInputThread.
DieterGraef 0:f9b6112278fe 1305 * The stack size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1306 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1307 */
DieterGraef 0:f9b6112278fe 1308 #ifndef PPP_THREAD_STACKSIZE
DieterGraef 0:f9b6112278fe 1309 #define PPP_THREAD_STACKSIZE 0
DieterGraef 0:f9b6112278fe 1310 #endif
DieterGraef 0:f9b6112278fe 1311
DieterGraef 0:f9b6112278fe 1312 /**
DieterGraef 0:f9b6112278fe 1313 * PPP_THREAD_PRIO: The priority assigned to the pppInputThread.
DieterGraef 0:f9b6112278fe 1314 * The priority value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1315 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1316 */
DieterGraef 0:f9b6112278fe 1317 #ifndef PPP_THREAD_PRIO
DieterGraef 0:f9b6112278fe 1318 #define PPP_THREAD_PRIO 1
DieterGraef 0:f9b6112278fe 1319 #endif
DieterGraef 0:f9b6112278fe 1320
DieterGraef 0:f9b6112278fe 1321 /**
DieterGraef 0:f9b6112278fe 1322 * DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread.
DieterGraef 0:f9b6112278fe 1323 */
DieterGraef 0:f9b6112278fe 1324 #ifndef DEFAULT_THREAD_NAME
DieterGraef 0:f9b6112278fe 1325 #define DEFAULT_THREAD_NAME "lwIP"
DieterGraef 0:f9b6112278fe 1326 #endif
DieterGraef 0:f9b6112278fe 1327
DieterGraef 0:f9b6112278fe 1328 /**
DieterGraef 0:f9b6112278fe 1329 * DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread.
DieterGraef 0:f9b6112278fe 1330 * The stack size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1331 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1332 */
DieterGraef 0:f9b6112278fe 1333 #ifndef DEFAULT_THREAD_STACKSIZE
DieterGraef 0:f9b6112278fe 1334 #define DEFAULT_THREAD_STACKSIZE 0
DieterGraef 0:f9b6112278fe 1335 #endif
DieterGraef 0:f9b6112278fe 1336
DieterGraef 0:f9b6112278fe 1337 /**
DieterGraef 0:f9b6112278fe 1338 * DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread.
DieterGraef 0:f9b6112278fe 1339 * The priority value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1340 * sys_thread_new() when the thread is created.
DieterGraef 0:f9b6112278fe 1341 */
DieterGraef 0:f9b6112278fe 1342 #ifndef DEFAULT_THREAD_PRIO
DieterGraef 0:f9b6112278fe 1343 #define DEFAULT_THREAD_PRIO 1
DieterGraef 0:f9b6112278fe 1344 #endif
DieterGraef 0:f9b6112278fe 1345
DieterGraef 0:f9b6112278fe 1346 /**
DieterGraef 0:f9b6112278fe 1347 * DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
DieterGraef 0:f9b6112278fe 1348 * NETCONN_RAW. The queue size value itself is platform-dependent, but is passed
DieterGraef 0:f9b6112278fe 1349 * to sys_mbox_new() when the recvmbox is created.
DieterGraef 0:f9b6112278fe 1350 */
DieterGraef 0:f9b6112278fe 1351 #ifndef DEFAULT_RAW_RECVMBOX_SIZE
DieterGraef 0:f9b6112278fe 1352 #define DEFAULT_RAW_RECVMBOX_SIZE 0
DieterGraef 0:f9b6112278fe 1353 #endif
DieterGraef 0:f9b6112278fe 1354
DieterGraef 0:f9b6112278fe 1355 /**
DieterGraef 0:f9b6112278fe 1356 * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
DieterGraef 0:f9b6112278fe 1357 * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed
DieterGraef 0:f9b6112278fe 1358 * to sys_mbox_new() when the recvmbox is created.
DieterGraef 0:f9b6112278fe 1359 */
DieterGraef 0:f9b6112278fe 1360 #ifndef DEFAULT_UDP_RECVMBOX_SIZE
DieterGraef 0:f9b6112278fe 1361 #define DEFAULT_UDP_RECVMBOX_SIZE 0
DieterGraef 0:f9b6112278fe 1362 #endif
DieterGraef 0:f9b6112278fe 1363
DieterGraef 0:f9b6112278fe 1364 /**
DieterGraef 0:f9b6112278fe 1365 * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a
DieterGraef 0:f9b6112278fe 1366 * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed
DieterGraef 0:f9b6112278fe 1367 * to sys_mbox_new() when the recvmbox is created.
DieterGraef 0:f9b6112278fe 1368 */
DieterGraef 0:f9b6112278fe 1369 #ifndef DEFAULT_TCP_RECVMBOX_SIZE
DieterGraef 0:f9b6112278fe 1370 #define DEFAULT_TCP_RECVMBOX_SIZE 0
DieterGraef 0:f9b6112278fe 1371 #endif
DieterGraef 0:f9b6112278fe 1372
DieterGraef 0:f9b6112278fe 1373 /**
DieterGraef 0:f9b6112278fe 1374 * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections.
DieterGraef 0:f9b6112278fe 1375 * The queue size value itself is platform-dependent, but is passed to
DieterGraef 0:f9b6112278fe 1376 * sys_mbox_new() when the acceptmbox is created.
DieterGraef 0:f9b6112278fe 1377 */
DieterGraef 0:f9b6112278fe 1378 #ifndef DEFAULT_ACCEPTMBOX_SIZE
DieterGraef 0:f9b6112278fe 1379 #define DEFAULT_ACCEPTMBOX_SIZE 0
DieterGraef 0:f9b6112278fe 1380 #endif
DieterGraef 0:f9b6112278fe 1381
DieterGraef 0:f9b6112278fe 1382 /*
DieterGraef 0:f9b6112278fe 1383 ----------------------------------------------
DieterGraef 0:f9b6112278fe 1384 ---------- Sequential layer options ----------
DieterGraef 0:f9b6112278fe 1385 ----------------------------------------------
DieterGraef 0:f9b6112278fe 1386 */
DieterGraef 0:f9b6112278fe 1387 /**
DieterGraef 0:f9b6112278fe 1388 * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!)
DieterGraef 0:f9b6112278fe 1389 * Don't use it if you're not an active lwIP project member
DieterGraef 0:f9b6112278fe 1390 */
DieterGraef 0:f9b6112278fe 1391 #ifndef LWIP_TCPIP_CORE_LOCKING
DieterGraef 0:f9b6112278fe 1392 #define LWIP_TCPIP_CORE_LOCKING 0
DieterGraef 0:f9b6112278fe 1393 #endif
DieterGraef 0:f9b6112278fe 1394
DieterGraef 0:f9b6112278fe 1395 /**
DieterGraef 0:f9b6112278fe 1396 * LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!)
DieterGraef 0:f9b6112278fe 1397 * Don't use it if you're not an active lwIP project member
DieterGraef 0:f9b6112278fe 1398 */
DieterGraef 0:f9b6112278fe 1399 #ifndef LWIP_TCPIP_CORE_LOCKING_INPUT
DieterGraef 0:f9b6112278fe 1400 #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
DieterGraef 0:f9b6112278fe 1401 #endif
DieterGraef 0:f9b6112278fe 1402
DieterGraef 0:f9b6112278fe 1403 /**
DieterGraef 0:f9b6112278fe 1404 * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)
DieterGraef 0:f9b6112278fe 1405 */
DieterGraef 0:f9b6112278fe 1406 #ifndef LWIP_NETCONN
DieterGraef 0:f9b6112278fe 1407 #define LWIP_NETCONN 1
DieterGraef 0:f9b6112278fe 1408 #endif
DieterGraef 0:f9b6112278fe 1409
DieterGraef 0:f9b6112278fe 1410 /** LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout tod create
DieterGraef 0:f9b6112278fe 1411 * timers running in tcpip_thread from another thread.
DieterGraef 0:f9b6112278fe 1412 */
DieterGraef 0:f9b6112278fe 1413 #ifndef LWIP_TCPIP_TIMEOUT
DieterGraef 0:f9b6112278fe 1414 #define LWIP_TCPIP_TIMEOUT 1
DieterGraef 0:f9b6112278fe 1415 #endif
DieterGraef 0:f9b6112278fe 1416
DieterGraef 0:f9b6112278fe 1417 /*
DieterGraef 0:f9b6112278fe 1418 ------------------------------------
DieterGraef 0:f9b6112278fe 1419 ---------- Socket options ----------
DieterGraef 0:f9b6112278fe 1420 ------------------------------------
DieterGraef 0:f9b6112278fe 1421 */
DieterGraef 0:f9b6112278fe 1422 /**
DieterGraef 0:f9b6112278fe 1423 * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
DieterGraef 0:f9b6112278fe 1424 */
DieterGraef 0:f9b6112278fe 1425 #ifndef LWIP_SOCKET
DieterGraef 0:f9b6112278fe 1426 #define LWIP_SOCKET 1
DieterGraef 0:f9b6112278fe 1427 #endif
DieterGraef 0:f9b6112278fe 1428
DieterGraef 0:f9b6112278fe 1429 /**
DieterGraef 0:f9b6112278fe 1430 * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
DieterGraef 0:f9b6112278fe 1431 * (only used if you use sockets.c)
DieterGraef 0:f9b6112278fe 1432 */
DieterGraef 0:f9b6112278fe 1433 #ifndef LWIP_COMPAT_SOCKETS
DieterGraef 0:f9b6112278fe 1434 #define LWIP_COMPAT_SOCKETS 0
DieterGraef 0:f9b6112278fe 1435 #endif
DieterGraef 0:f9b6112278fe 1436
DieterGraef 0:f9b6112278fe 1437 /**
DieterGraef 0:f9b6112278fe 1438 * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names.
DieterGraef 0:f9b6112278fe 1439 * Disable this option if you use a POSIX operating system that uses the same
DieterGraef 0:f9b6112278fe 1440 * names (read, write & close). (only used if you use sockets.c)
DieterGraef 0:f9b6112278fe 1441 */
DieterGraef 0:f9b6112278fe 1442 #ifndef LWIP_POSIX_SOCKETS_IO_NAMES
DieterGraef 0:f9b6112278fe 1443 #define LWIP_POSIX_SOCKETS_IO_NAMES 0
DieterGraef 0:f9b6112278fe 1444 #endif
DieterGraef 0:f9b6112278fe 1445
DieterGraef 0:f9b6112278fe 1446 /**
DieterGraef 0:f9b6112278fe 1447 * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
DieterGraef 0:f9b6112278fe 1448 * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
DieterGraef 0:f9b6112278fe 1449 * in seconds. (does not require sockets.c, and will affect tcp.c)
DieterGraef 0:f9b6112278fe 1450 */
DieterGraef 0:f9b6112278fe 1451 #ifndef LWIP_TCP_KEEPALIVE
DieterGraef 0:f9b6112278fe 1452 #define LWIP_TCP_KEEPALIVE 0
DieterGraef 0:f9b6112278fe 1453 #endif
DieterGraef 0:f9b6112278fe 1454
DieterGraef 0:f9b6112278fe 1455 /**
DieterGraef 0:f9b6112278fe 1456 * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and
DieterGraef 0:f9b6112278fe 1457 * SO_SNDTIMEO processing.
DieterGraef 0:f9b6112278fe 1458 */
DieterGraef 0:f9b6112278fe 1459 #ifndef LWIP_SO_SNDTIMEO
DieterGraef 0:f9b6112278fe 1460 #define LWIP_SO_SNDTIMEO 0
DieterGraef 0:f9b6112278fe 1461 #endif
DieterGraef 0:f9b6112278fe 1462
DieterGraef 0:f9b6112278fe 1463 /**
DieterGraef 0:f9b6112278fe 1464 * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and
DieterGraef 0:f9b6112278fe 1465 * SO_RCVTIMEO processing.
DieterGraef 0:f9b6112278fe 1466 */
DieterGraef 0:f9b6112278fe 1467 #ifndef LWIP_SO_RCVTIMEO
DieterGraef 0:f9b6112278fe 1468 #define LWIP_SO_RCVTIMEO 0
DieterGraef 0:f9b6112278fe 1469 #endif
DieterGraef 0:f9b6112278fe 1470
DieterGraef 0:f9b6112278fe 1471 /**
DieterGraef 0:f9b6112278fe 1472 * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
DieterGraef 0:f9b6112278fe 1473 */
DieterGraef 0:f9b6112278fe 1474 #ifndef LWIP_SO_RCVBUF
DieterGraef 0:f9b6112278fe 1475 #define LWIP_SO_RCVBUF 0
DieterGraef 0:f9b6112278fe 1476 #endif
DieterGraef 0:f9b6112278fe 1477
DieterGraef 0:f9b6112278fe 1478 /**
DieterGraef 0:f9b6112278fe 1479 * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.
DieterGraef 0:f9b6112278fe 1480 */
DieterGraef 0:f9b6112278fe 1481 #ifndef RECV_BUFSIZE_DEFAULT
DieterGraef 0:f9b6112278fe 1482 #define RECV_BUFSIZE_DEFAULT INT_MAX
DieterGraef 0:f9b6112278fe 1483 #endif
DieterGraef 0:f9b6112278fe 1484
DieterGraef 0:f9b6112278fe 1485 /**
DieterGraef 0:f9b6112278fe 1486 * SO_REUSE==1: Enable SO_REUSEADDR option.
DieterGraef 0:f9b6112278fe 1487 */
DieterGraef 0:f9b6112278fe 1488 #ifndef SO_REUSE
DieterGraef 0:f9b6112278fe 1489 #define SO_REUSE 0
DieterGraef 0:f9b6112278fe 1490 #endif
DieterGraef 0:f9b6112278fe 1491
DieterGraef 0:f9b6112278fe 1492 /**
DieterGraef 0:f9b6112278fe 1493 * SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets
DieterGraef 0:f9b6112278fe 1494 * to all local matches if SO_REUSEADDR is turned on.
DieterGraef 0:f9b6112278fe 1495 * WARNING: Adds a memcpy for every packet if passing to more than one pcb!
DieterGraef 0:f9b6112278fe 1496 */
DieterGraef 0:f9b6112278fe 1497 #ifndef SO_REUSE_RXTOALL
DieterGraef 0:f9b6112278fe 1498 #define SO_REUSE_RXTOALL 0
DieterGraef 0:f9b6112278fe 1499 #endif
DieterGraef 0:f9b6112278fe 1500
DieterGraef 0:f9b6112278fe 1501 /*
DieterGraef 0:f9b6112278fe 1502 ----------------------------------------
DieterGraef 0:f9b6112278fe 1503 ---------- Statistics options ----------
DieterGraef 0:f9b6112278fe 1504 ----------------------------------------
DieterGraef 0:f9b6112278fe 1505 */
DieterGraef 0:f9b6112278fe 1506 /**
DieterGraef 0:f9b6112278fe 1507 * LWIP_STATS==1: Enable statistics collection in lwip_stats.
DieterGraef 0:f9b6112278fe 1508 */
DieterGraef 0:f9b6112278fe 1509 #ifndef LWIP_STATS
DieterGraef 0:f9b6112278fe 1510 #define LWIP_STATS 1
DieterGraef 0:f9b6112278fe 1511 #endif
DieterGraef 0:f9b6112278fe 1512
DieterGraef 0:f9b6112278fe 1513 #if LWIP_STATS
DieterGraef 0:f9b6112278fe 1514
DieterGraef 0:f9b6112278fe 1515 /**
DieterGraef 0:f9b6112278fe 1516 * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions.
DieterGraef 0:f9b6112278fe 1517 */
DieterGraef 0:f9b6112278fe 1518 #ifndef LWIP_STATS_DISPLAY
DieterGraef 0:f9b6112278fe 1519 #define LWIP_STATS_DISPLAY 0
DieterGraef 0:f9b6112278fe 1520 #endif
DieterGraef 0:f9b6112278fe 1521
DieterGraef 0:f9b6112278fe 1522 /**
DieterGraef 0:f9b6112278fe 1523 * LINK_STATS==1: Enable link stats.
DieterGraef 0:f9b6112278fe 1524 */
DieterGraef 0:f9b6112278fe 1525 #ifndef LINK_STATS
DieterGraef 0:f9b6112278fe 1526 #define LINK_STATS 1
DieterGraef 0:f9b6112278fe 1527 #endif
DieterGraef 0:f9b6112278fe 1528
DieterGraef 0:f9b6112278fe 1529 /**
DieterGraef 0:f9b6112278fe 1530 * ETHARP_STATS==1: Enable etharp stats.
DieterGraef 0:f9b6112278fe 1531 */
DieterGraef 0:f9b6112278fe 1532 #ifndef ETHARP_STATS
DieterGraef 0:f9b6112278fe 1533 #define ETHARP_STATS (LWIP_ARP)
DieterGraef 0:f9b6112278fe 1534 #endif
DieterGraef 0:f9b6112278fe 1535
DieterGraef 0:f9b6112278fe 1536 /**
DieterGraef 0:f9b6112278fe 1537 * IP_STATS==1: Enable IP stats.
DieterGraef 0:f9b6112278fe 1538 */
DieterGraef 0:f9b6112278fe 1539 #ifndef IP_STATS
DieterGraef 0:f9b6112278fe 1540 #define IP_STATS 1
DieterGraef 0:f9b6112278fe 1541 #endif
DieterGraef 0:f9b6112278fe 1542
DieterGraef 0:f9b6112278fe 1543 /**
DieterGraef 0:f9b6112278fe 1544 * IPFRAG_STATS==1: Enable IP fragmentation stats. Default is
DieterGraef 0:f9b6112278fe 1545 * on if using either frag or reass.
DieterGraef 0:f9b6112278fe 1546 */
DieterGraef 0:f9b6112278fe 1547 #ifndef IPFRAG_STATS
DieterGraef 0:f9b6112278fe 1548 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
DieterGraef 0:f9b6112278fe 1549 #endif
DieterGraef 0:f9b6112278fe 1550
DieterGraef 0:f9b6112278fe 1551 /**
DieterGraef 0:f9b6112278fe 1552 * ICMP_STATS==1: Enable ICMP stats.
DieterGraef 0:f9b6112278fe 1553 */
DieterGraef 0:f9b6112278fe 1554 #ifndef ICMP_STATS
DieterGraef 0:f9b6112278fe 1555 #define ICMP_STATS 1
DieterGraef 0:f9b6112278fe 1556 #endif
DieterGraef 0:f9b6112278fe 1557
DieterGraef 0:f9b6112278fe 1558 /**
DieterGraef 0:f9b6112278fe 1559 * IGMP_STATS==1: Enable IGMP stats.
DieterGraef 0:f9b6112278fe 1560 */
DieterGraef 0:f9b6112278fe 1561 #ifndef IGMP_STATS
DieterGraef 0:f9b6112278fe 1562 #define IGMP_STATS (LWIP_IGMP)
DieterGraef 0:f9b6112278fe 1563 #endif
DieterGraef 0:f9b6112278fe 1564
DieterGraef 0:f9b6112278fe 1565 /**
DieterGraef 0:f9b6112278fe 1566 * UDP_STATS==1: Enable UDP stats. Default is on if
DieterGraef 0:f9b6112278fe 1567 * UDP enabled, otherwise off.
DieterGraef 0:f9b6112278fe 1568 */
DieterGraef 0:f9b6112278fe 1569 #ifndef UDP_STATS
DieterGraef 0:f9b6112278fe 1570 #define UDP_STATS (LWIP_UDP)
DieterGraef 0:f9b6112278fe 1571 #endif
DieterGraef 0:f9b6112278fe 1572
DieterGraef 0:f9b6112278fe 1573 /**
DieterGraef 0:f9b6112278fe 1574 * TCP_STATS==1: Enable TCP stats. Default is on if TCP
DieterGraef 0:f9b6112278fe 1575 * enabled, otherwise off.
DieterGraef 0:f9b6112278fe 1576 */
DieterGraef 0:f9b6112278fe 1577 #ifndef TCP_STATS
DieterGraef 0:f9b6112278fe 1578 #define TCP_STATS (LWIP_TCP)
DieterGraef 0:f9b6112278fe 1579 #endif
DieterGraef 0:f9b6112278fe 1580
DieterGraef 0:f9b6112278fe 1581 /**
DieterGraef 0:f9b6112278fe 1582 * MEM_STATS==1: Enable mem.c stats.
DieterGraef 0:f9b6112278fe 1583 */
DieterGraef 0:f9b6112278fe 1584 #ifndef MEM_STATS
DieterGraef 0:f9b6112278fe 1585 #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
DieterGraef 0:f9b6112278fe 1586 #endif
DieterGraef 0:f9b6112278fe 1587
DieterGraef 0:f9b6112278fe 1588 /**
DieterGraef 0:f9b6112278fe 1589 * MEMP_STATS==1: Enable memp.c pool stats.
DieterGraef 0:f9b6112278fe 1590 */
DieterGraef 0:f9b6112278fe 1591 #ifndef MEMP_STATS
DieterGraef 0:f9b6112278fe 1592 #define MEMP_STATS (MEMP_MEM_MALLOC == 0)
DieterGraef 0:f9b6112278fe 1593 #endif
DieterGraef 0:f9b6112278fe 1594
DieterGraef 0:f9b6112278fe 1595 /**
DieterGraef 0:f9b6112278fe 1596 * SYS_STATS==1: Enable system stats (sem and mbox counts, etc).
DieterGraef 0:f9b6112278fe 1597 */
DieterGraef 0:f9b6112278fe 1598 #ifndef SYS_STATS
DieterGraef 0:f9b6112278fe 1599 #define SYS_STATS (NO_SYS == 0)
DieterGraef 0:f9b6112278fe 1600 #endif
DieterGraef 0:f9b6112278fe 1601
DieterGraef 0:f9b6112278fe 1602 #else
DieterGraef 0:f9b6112278fe 1603
DieterGraef 0:f9b6112278fe 1604 #define LINK_STATS 0
DieterGraef 0:f9b6112278fe 1605 #define IP_STATS 0
DieterGraef 0:f9b6112278fe 1606 #define IPFRAG_STATS 0
DieterGraef 0:f9b6112278fe 1607 #define ICMP_STATS 0
DieterGraef 0:f9b6112278fe 1608 #define IGMP_STATS 0
DieterGraef 0:f9b6112278fe 1609 #define UDP_STATS 0
DieterGraef 0:f9b6112278fe 1610 #define TCP_STATS 0
DieterGraef 0:f9b6112278fe 1611 #define MEM_STATS 0
DieterGraef 0:f9b6112278fe 1612 #define MEMP_STATS 0
DieterGraef 0:f9b6112278fe 1613 #define SYS_STATS 0
DieterGraef 0:f9b6112278fe 1614 #define LWIP_STATS_DISPLAY 0
DieterGraef 0:f9b6112278fe 1615
DieterGraef 0:f9b6112278fe 1616 #endif /* LWIP_STATS */
DieterGraef 0:f9b6112278fe 1617
DieterGraef 0:f9b6112278fe 1618 /*
DieterGraef 0:f9b6112278fe 1619 ---------------------------------
DieterGraef 0:f9b6112278fe 1620 ---------- PPP options ----------
DieterGraef 0:f9b6112278fe 1621 ---------------------------------
DieterGraef 0:f9b6112278fe 1622 */
DieterGraef 0:f9b6112278fe 1623 /**
DieterGraef 0:f9b6112278fe 1624 * PPP_SUPPORT==1: Enable PPP.
DieterGraef 0:f9b6112278fe 1625 */
DieterGraef 0:f9b6112278fe 1626 #ifndef PPP_SUPPORT
DieterGraef 0:f9b6112278fe 1627 #define PPP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1628 #endif
DieterGraef 0:f9b6112278fe 1629
DieterGraef 0:f9b6112278fe 1630 /**
DieterGraef 0:f9b6112278fe 1631 * PPPOE_SUPPORT==1: Enable PPP Over Ethernet
DieterGraef 0:f9b6112278fe 1632 */
DieterGraef 0:f9b6112278fe 1633 #ifndef PPPOE_SUPPORT
DieterGraef 0:f9b6112278fe 1634 #define PPPOE_SUPPORT 0
DieterGraef 0:f9b6112278fe 1635 #endif
DieterGraef 0:f9b6112278fe 1636
DieterGraef 0:f9b6112278fe 1637 /**
DieterGraef 0:f9b6112278fe 1638 * PPPOS_SUPPORT==1: Enable PPP Over Serial
DieterGraef 0:f9b6112278fe 1639 */
DieterGraef 0:f9b6112278fe 1640 #ifndef PPPOS_SUPPORT
DieterGraef 0:f9b6112278fe 1641 #define PPPOS_SUPPORT PPP_SUPPORT
DieterGraef 0:f9b6112278fe 1642 #endif
DieterGraef 0:f9b6112278fe 1643
DieterGraef 0:f9b6112278fe 1644 #if PPP_SUPPORT
DieterGraef 0:f9b6112278fe 1645
DieterGraef 0:f9b6112278fe 1646 /**
DieterGraef 0:f9b6112278fe 1647 * NUM_PPP: Max PPP sessions.
DieterGraef 0:f9b6112278fe 1648 */
DieterGraef 0:f9b6112278fe 1649 #ifndef NUM_PPP
DieterGraef 0:f9b6112278fe 1650 #define NUM_PPP 1
DieterGraef 0:f9b6112278fe 1651 #endif
DieterGraef 0:f9b6112278fe 1652
DieterGraef 0:f9b6112278fe 1653 /**
DieterGraef 0:f9b6112278fe 1654 * PAP_SUPPORT==1: Support PAP.
DieterGraef 0:f9b6112278fe 1655 */
DieterGraef 0:f9b6112278fe 1656 #ifndef PAP_SUPPORT
DieterGraef 0:f9b6112278fe 1657 #define PAP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1658 #endif
DieterGraef 0:f9b6112278fe 1659
DieterGraef 0:f9b6112278fe 1660 /**
DieterGraef 0:f9b6112278fe 1661 * CHAP_SUPPORT==1: Support CHAP.
DieterGraef 0:f9b6112278fe 1662 */
DieterGraef 0:f9b6112278fe 1663 #ifndef CHAP_SUPPORT
DieterGraef 0:f9b6112278fe 1664 #define CHAP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1665 #endif
DieterGraef 0:f9b6112278fe 1666
DieterGraef 0:f9b6112278fe 1667 /**
DieterGraef 0:f9b6112278fe 1668 * MSCHAP_SUPPORT==1: Support MSCHAP. CURRENTLY NOT SUPPORTED! DO NOT SET!
DieterGraef 0:f9b6112278fe 1669 */
DieterGraef 0:f9b6112278fe 1670 #ifndef MSCHAP_SUPPORT
DieterGraef 0:f9b6112278fe 1671 #define MSCHAP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1672 #endif
DieterGraef 0:f9b6112278fe 1673
DieterGraef 0:f9b6112278fe 1674 /**
DieterGraef 0:f9b6112278fe 1675 * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET!
DieterGraef 0:f9b6112278fe 1676 */
DieterGraef 0:f9b6112278fe 1677 #ifndef CBCP_SUPPORT
DieterGraef 0:f9b6112278fe 1678 #define CBCP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1679 #endif
DieterGraef 0:f9b6112278fe 1680
DieterGraef 0:f9b6112278fe 1681 /**
DieterGraef 0:f9b6112278fe 1682 * CCP_SUPPORT==1: Support CCP. CURRENTLY NOT SUPPORTED! DO NOT SET!
DieterGraef 0:f9b6112278fe 1683 */
DieterGraef 0:f9b6112278fe 1684 #ifndef CCP_SUPPORT
DieterGraef 0:f9b6112278fe 1685 #define CCP_SUPPORT 0
DieterGraef 0:f9b6112278fe 1686 #endif
DieterGraef 0:f9b6112278fe 1687
DieterGraef 0:f9b6112278fe 1688 /**
DieterGraef 0:f9b6112278fe 1689 * VJ_SUPPORT==1: Support VJ header compression.
DieterGraef 0:f9b6112278fe 1690 */
DieterGraef 0:f9b6112278fe 1691 #ifndef VJ_SUPPORT
DieterGraef 0:f9b6112278fe 1692 #define VJ_SUPPORT 0
DieterGraef 0:f9b6112278fe 1693 #endif
DieterGraef 0:f9b6112278fe 1694
DieterGraef 0:f9b6112278fe 1695 /**
DieterGraef 0:f9b6112278fe 1696 * MD5_SUPPORT==1: Support MD5 (see also CHAP).
DieterGraef 0:f9b6112278fe 1697 */
DieterGraef 0:f9b6112278fe 1698 #ifndef MD5_SUPPORT
DieterGraef 0:f9b6112278fe 1699 #define MD5_SUPPORT 0
DieterGraef 0:f9b6112278fe 1700 #endif
DieterGraef 0:f9b6112278fe 1701
DieterGraef 0:f9b6112278fe 1702 /*
DieterGraef 0:f9b6112278fe 1703 * Timeouts
DieterGraef 0:f9b6112278fe 1704 */
DieterGraef 0:f9b6112278fe 1705 #ifndef FSM_DEFTIMEOUT
DieterGraef 0:f9b6112278fe 1706 #define FSM_DEFTIMEOUT 6 /* Timeout time in seconds */
DieterGraef 0:f9b6112278fe 1707 #endif
DieterGraef 0:f9b6112278fe 1708
DieterGraef 0:f9b6112278fe 1709 #ifndef FSM_DEFMAXTERMREQS
DieterGraef 0:f9b6112278fe 1710 #define FSM_DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */
DieterGraef 0:f9b6112278fe 1711 #endif
DieterGraef 0:f9b6112278fe 1712
DieterGraef 0:f9b6112278fe 1713 #ifndef FSM_DEFMAXCONFREQS
DieterGraef 0:f9b6112278fe 1714 #define FSM_DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */
DieterGraef 0:f9b6112278fe 1715 #endif
DieterGraef 0:f9b6112278fe 1716
DieterGraef 0:f9b6112278fe 1717 #ifndef FSM_DEFMAXNAKLOOPS
DieterGraef 0:f9b6112278fe 1718 #define FSM_DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */
DieterGraef 0:f9b6112278fe 1719 #endif
DieterGraef 0:f9b6112278fe 1720
DieterGraef 0:f9b6112278fe 1721 #ifndef UPAP_DEFTIMEOUT
DieterGraef 0:f9b6112278fe 1722 #define UPAP_DEFTIMEOUT 6 /* Timeout (seconds) for retransmitting req */
DieterGraef 0:f9b6112278fe 1723 #endif
DieterGraef 0:f9b6112278fe 1724
DieterGraef 0:f9b6112278fe 1725 #ifndef UPAP_DEFREQTIME
DieterGraef 0:f9b6112278fe 1726 #define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */
DieterGraef 0:f9b6112278fe 1727 #endif
DieterGraef 0:f9b6112278fe 1728
DieterGraef 0:f9b6112278fe 1729 #ifndef CHAP_DEFTIMEOUT
DieterGraef 0:f9b6112278fe 1730 #define CHAP_DEFTIMEOUT 6 /* Timeout time in seconds */
DieterGraef 0:f9b6112278fe 1731 #endif
DieterGraef 0:f9b6112278fe 1732
DieterGraef 0:f9b6112278fe 1733 #ifndef CHAP_DEFTRANSMITS
DieterGraef 0:f9b6112278fe 1734 #define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */
DieterGraef 0:f9b6112278fe 1735 #endif
DieterGraef 0:f9b6112278fe 1736
DieterGraef 0:f9b6112278fe 1737 /* Interval in seconds between keepalive echo requests, 0 to disable. */
DieterGraef 0:f9b6112278fe 1738 #ifndef LCP_ECHOINTERVAL
DieterGraef 0:f9b6112278fe 1739 #define LCP_ECHOINTERVAL 0
DieterGraef 0:f9b6112278fe 1740 #endif
DieterGraef 0:f9b6112278fe 1741
DieterGraef 0:f9b6112278fe 1742 /* Number of unanswered echo requests before failure. */
DieterGraef 0:f9b6112278fe 1743 #ifndef LCP_MAXECHOFAILS
DieterGraef 0:f9b6112278fe 1744 #define LCP_MAXECHOFAILS 3
DieterGraef 0:f9b6112278fe 1745 #endif
DieterGraef 0:f9b6112278fe 1746
DieterGraef 0:f9b6112278fe 1747 /* Max Xmit idle time (in jiffies) before resend flag char. */
DieterGraef 0:f9b6112278fe 1748 #ifndef PPP_MAXIDLEFLAG
DieterGraef 0:f9b6112278fe 1749 #define PPP_MAXIDLEFLAG 100
DieterGraef 0:f9b6112278fe 1750 #endif
DieterGraef 0:f9b6112278fe 1751
DieterGraef 0:f9b6112278fe 1752 /*
DieterGraef 0:f9b6112278fe 1753 * Packet sizes
DieterGraef 0:f9b6112278fe 1754 *
DieterGraef 0:f9b6112278fe 1755 * Note - lcp shouldn't be allowed to negotiate stuff outside these
DieterGraef 0:f9b6112278fe 1756 * limits. See lcp.h in the pppd directory.
DieterGraef 0:f9b6112278fe 1757 * (XXX - these constants should simply be shared by lcp.c instead
DieterGraef 0:f9b6112278fe 1758 * of living in lcp.h)
DieterGraef 0:f9b6112278fe 1759 */
DieterGraef 0:f9b6112278fe 1760 #define PPP_MTU 1500 /* Default MTU (size of Info field) */
DieterGraef 0:f9b6112278fe 1761 #ifndef PPP_MAXMTU
DieterGraef 0:f9b6112278fe 1762 /* #define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) */
DieterGraef 0:f9b6112278fe 1763 #define PPP_MAXMTU 1500 /* Largest MTU we allow */
DieterGraef 0:f9b6112278fe 1764 #endif
DieterGraef 0:f9b6112278fe 1765 #define PPP_MINMTU 64
DieterGraef 0:f9b6112278fe 1766 #define PPP_MRU 1500 /* default MRU = max length of info field */
DieterGraef 0:f9b6112278fe 1767 #define PPP_MAXMRU 1500 /* Largest MRU we allow */
DieterGraef 0:f9b6112278fe 1768 #ifndef PPP_DEFMRU
DieterGraef 0:f9b6112278fe 1769 #define PPP_DEFMRU 296 /* Try for this */
DieterGraef 0:f9b6112278fe 1770 #endif
DieterGraef 0:f9b6112278fe 1771 #define PPP_MINMRU 128 /* No MRUs below this */
DieterGraef 0:f9b6112278fe 1772
DieterGraef 0:f9b6112278fe 1773 #ifndef MAXNAMELEN
DieterGraef 0:f9b6112278fe 1774 #define MAXNAMELEN 256 /* max length of hostname or name for auth */
DieterGraef 0:f9b6112278fe 1775 #endif
DieterGraef 0:f9b6112278fe 1776 #ifndef MAXSECRETLEN
DieterGraef 0:f9b6112278fe 1777 #define MAXSECRETLEN 256 /* max length of password or secret */
DieterGraef 0:f9b6112278fe 1778 #endif
DieterGraef 0:f9b6112278fe 1779
DieterGraef 0:f9b6112278fe 1780 #endif /* PPP_SUPPORT */
DieterGraef 0:f9b6112278fe 1781
DieterGraef 0:f9b6112278fe 1782 /*
DieterGraef 0:f9b6112278fe 1783 --------------------------------------
DieterGraef 0:f9b6112278fe 1784 ---------- Checksum options ----------
DieterGraef 0:f9b6112278fe 1785 --------------------------------------
DieterGraef 0:f9b6112278fe 1786 */
DieterGraef 0:f9b6112278fe 1787 /**
DieterGraef 0:f9b6112278fe 1788 * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.
DieterGraef 0:f9b6112278fe 1789 */
DieterGraef 0:f9b6112278fe 1790 #ifndef CHECKSUM_GEN_IP
DieterGraef 0:f9b6112278fe 1791 #define CHECKSUM_GEN_IP 1
DieterGraef 0:f9b6112278fe 1792 #endif
DieterGraef 0:f9b6112278fe 1793
DieterGraef 0:f9b6112278fe 1794 /**
DieterGraef 0:f9b6112278fe 1795 * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.
DieterGraef 0:f9b6112278fe 1796 */
DieterGraef 0:f9b6112278fe 1797 #ifndef CHECKSUM_GEN_UDP
DieterGraef 0:f9b6112278fe 1798 #define CHECKSUM_GEN_UDP 1
DieterGraef 0:f9b6112278fe 1799 #endif
DieterGraef 0:f9b6112278fe 1800
DieterGraef 0:f9b6112278fe 1801 /**
DieterGraef 0:f9b6112278fe 1802 * CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.
DieterGraef 0:f9b6112278fe 1803 */
DieterGraef 0:f9b6112278fe 1804 #ifndef CHECKSUM_GEN_TCP
DieterGraef 0:f9b6112278fe 1805 #define CHECKSUM_GEN_TCP 1
DieterGraef 0:f9b6112278fe 1806 #endif
DieterGraef 0:f9b6112278fe 1807
DieterGraef 0:f9b6112278fe 1808 /**
DieterGraef 0:f9b6112278fe 1809 * CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.
DieterGraef 0:f9b6112278fe 1810 */
DieterGraef 0:f9b6112278fe 1811 #ifndef CHECKSUM_GEN_ICMP
DieterGraef 0:f9b6112278fe 1812 #define CHECKSUM_GEN_ICMP 1
DieterGraef 0:f9b6112278fe 1813 #endif
DieterGraef 0:f9b6112278fe 1814
DieterGraef 0:f9b6112278fe 1815 /**
DieterGraef 0:f9b6112278fe 1816 * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.
DieterGraef 0:f9b6112278fe 1817 */
DieterGraef 0:f9b6112278fe 1818 #ifndef CHECKSUM_CHECK_IP
DieterGraef 0:f9b6112278fe 1819 #define CHECKSUM_CHECK_IP 1
DieterGraef 0:f9b6112278fe 1820 #endif
DieterGraef 0:f9b6112278fe 1821
DieterGraef 0:f9b6112278fe 1822 /**
DieterGraef 0:f9b6112278fe 1823 * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.
DieterGraef 0:f9b6112278fe 1824 */
DieterGraef 0:f9b6112278fe 1825 #ifndef CHECKSUM_CHECK_UDP
DieterGraef 0:f9b6112278fe 1826 #define CHECKSUM_CHECK_UDP 1
DieterGraef 0:f9b6112278fe 1827 #endif
DieterGraef 0:f9b6112278fe 1828
DieterGraef 0:f9b6112278fe 1829 /**
DieterGraef 0:f9b6112278fe 1830 * CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.
DieterGraef 0:f9b6112278fe 1831 */
DieterGraef 0:f9b6112278fe 1832 #ifndef CHECKSUM_CHECK_TCP
DieterGraef 0:f9b6112278fe 1833 #define CHECKSUM_CHECK_TCP 1
DieterGraef 0:f9b6112278fe 1834 #endif
DieterGraef 0:f9b6112278fe 1835
DieterGraef 0:f9b6112278fe 1836 /**
DieterGraef 0:f9b6112278fe 1837 * LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from
DieterGraef 0:f9b6112278fe 1838 * application buffers to pbufs.
DieterGraef 0:f9b6112278fe 1839 */
DieterGraef 0:f9b6112278fe 1840 #ifndef LWIP_CHECKSUM_ON_COPY
DieterGraef 0:f9b6112278fe 1841 #define LWIP_CHECKSUM_ON_COPY 0
DieterGraef 0:f9b6112278fe 1842 #endif
DieterGraef 0:f9b6112278fe 1843
DieterGraef 0:f9b6112278fe 1844 /*
DieterGraef 0:f9b6112278fe 1845 ---------------------------------------
DieterGraef 0:f9b6112278fe 1846 ---------- Hook options ---------------
DieterGraef 0:f9b6112278fe 1847 ---------------------------------------
DieterGraef 0:f9b6112278fe 1848 */
DieterGraef 0:f9b6112278fe 1849
DieterGraef 0:f9b6112278fe 1850 /* Hooks are undefined by default, define them to a function if you need them. */
DieterGraef 0:f9b6112278fe 1851
DieterGraef 0:f9b6112278fe 1852 /**
DieterGraef 0:f9b6112278fe 1853 * LWIP_HOOK_IP4_INPUT(pbuf, input_netif):
DieterGraef 0:f9b6112278fe 1854 * - called from ip_input() (IPv4)
DieterGraef 0:f9b6112278fe 1855 * - pbuf: received struct pbuf passed to ip_input()
DieterGraef 0:f9b6112278fe 1856 * - input_netif: struct netif on which the packet has been received
DieterGraef 0:f9b6112278fe 1857 * Return values:
DieterGraef 0:f9b6112278fe 1858 * - 0: Hook has not consumed the packet, packet is processed as normal
DieterGraef 0:f9b6112278fe 1859 * - != 0: Hook has consumed the packet.
DieterGraef 0:f9b6112278fe 1860 * If the hook consumed the packet, 'pbuf' is in the responsibility of the hook
DieterGraef 0:f9b6112278fe 1861 * (i.e. free it when done).
DieterGraef 0:f9b6112278fe 1862 */
DieterGraef 0:f9b6112278fe 1863
DieterGraef 0:f9b6112278fe 1864 /**
DieterGraef 0:f9b6112278fe 1865 * LWIP_HOOK_IP4_ROUTE(dest):
DieterGraef 0:f9b6112278fe 1866 * - called from ip_route() (IPv4)
DieterGraef 0:f9b6112278fe 1867 * - dest: destination IPv4 address
DieterGraef 0:f9b6112278fe 1868 * Returns the destination netif or NULL if no destination netif is found. In
DieterGraef 0:f9b6112278fe 1869 * that case, ip_route() continues as normal.
DieterGraef 0:f9b6112278fe 1870 */
DieterGraef 0:f9b6112278fe 1871
DieterGraef 0:f9b6112278fe 1872 /*
DieterGraef 0:f9b6112278fe 1873 ---------------------------------------
DieterGraef 0:f9b6112278fe 1874 ---------- Debugging options ----------
DieterGraef 0:f9b6112278fe 1875 ---------------------------------------
DieterGraef 0:f9b6112278fe 1876 */
DieterGraef 0:f9b6112278fe 1877 /**
DieterGraef 0:f9b6112278fe 1878 * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is
DieterGraef 0:f9b6112278fe 1879 * compared against this value. If it is smaller, then debugging
DieterGraef 0:f9b6112278fe 1880 * messages are written.
DieterGraef 0:f9b6112278fe 1881 */
DieterGraef 0:f9b6112278fe 1882 #ifndef LWIP_DBG_MIN_LEVEL
DieterGraef 0:f9b6112278fe 1883 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
DieterGraef 0:f9b6112278fe 1884 #endif
DieterGraef 0:f9b6112278fe 1885
DieterGraef 0:f9b6112278fe 1886 /**
DieterGraef 0:f9b6112278fe 1887 * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable
DieterGraef 0:f9b6112278fe 1888 * debug messages of certain types.
DieterGraef 0:f9b6112278fe 1889 */
DieterGraef 0:f9b6112278fe 1890 #ifndef LWIP_DBG_TYPES_ON
DieterGraef 0:f9b6112278fe 1891 #define LWIP_DBG_TYPES_ON LWIP_DBG_ON
DieterGraef 0:f9b6112278fe 1892 #endif
DieterGraef 0:f9b6112278fe 1893
DieterGraef 0:f9b6112278fe 1894 /**
DieterGraef 0:f9b6112278fe 1895 * ETHARP_DEBUG: Enable debugging in etharp.c.
DieterGraef 0:f9b6112278fe 1896 */
DieterGraef 0:f9b6112278fe 1897 #ifndef ETHARP_DEBUG
DieterGraef 0:f9b6112278fe 1898 #define ETHARP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1899 #endif
DieterGraef 0:f9b6112278fe 1900
DieterGraef 0:f9b6112278fe 1901 /**
DieterGraef 0:f9b6112278fe 1902 * NETIF_DEBUG: Enable debugging in netif.c.
DieterGraef 0:f9b6112278fe 1903 */
DieterGraef 0:f9b6112278fe 1904 #ifndef NETIF_DEBUG
DieterGraef 0:f9b6112278fe 1905 #define NETIF_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1906 #endif
DieterGraef 0:f9b6112278fe 1907
DieterGraef 0:f9b6112278fe 1908 /**
DieterGraef 0:f9b6112278fe 1909 * PBUF_DEBUG: Enable debugging in pbuf.c.
DieterGraef 0:f9b6112278fe 1910 */
DieterGraef 0:f9b6112278fe 1911 #ifndef PBUF_DEBUG
DieterGraef 0:f9b6112278fe 1912 #define PBUF_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1913 #endif
DieterGraef 0:f9b6112278fe 1914
DieterGraef 0:f9b6112278fe 1915 /**
DieterGraef 0:f9b6112278fe 1916 * API_LIB_DEBUG: Enable debugging in api_lib.c.
DieterGraef 0:f9b6112278fe 1917 */
DieterGraef 0:f9b6112278fe 1918 #ifndef API_LIB_DEBUG
DieterGraef 0:f9b6112278fe 1919 #define API_LIB_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1920 #endif
DieterGraef 0:f9b6112278fe 1921
DieterGraef 0:f9b6112278fe 1922 /**
DieterGraef 0:f9b6112278fe 1923 * API_MSG_DEBUG: Enable debugging in api_msg.c.
DieterGraef 0:f9b6112278fe 1924 */
DieterGraef 0:f9b6112278fe 1925 #ifndef API_MSG_DEBUG
DieterGraef 0:f9b6112278fe 1926 #define API_MSG_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1927 #endif
DieterGraef 0:f9b6112278fe 1928
DieterGraef 0:f9b6112278fe 1929 /**
DieterGraef 0:f9b6112278fe 1930 * SOCKETS_DEBUG: Enable debugging in sockets.c.
DieterGraef 0:f9b6112278fe 1931 */
DieterGraef 0:f9b6112278fe 1932 #ifndef SOCKETS_DEBUG
DieterGraef 0:f9b6112278fe 1933 #define SOCKETS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1934 #endif
DieterGraef 0:f9b6112278fe 1935
DieterGraef 0:f9b6112278fe 1936 /**
DieterGraef 0:f9b6112278fe 1937 * ICMP_DEBUG: Enable debugging in icmp.c.
DieterGraef 0:f9b6112278fe 1938 */
DieterGraef 0:f9b6112278fe 1939 #ifndef ICMP_DEBUG
DieterGraef 0:f9b6112278fe 1940 #define ICMP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1941 #endif
DieterGraef 0:f9b6112278fe 1942
DieterGraef 0:f9b6112278fe 1943 /**
DieterGraef 0:f9b6112278fe 1944 * IGMP_DEBUG: Enable debugging in igmp.c.
DieterGraef 0:f9b6112278fe 1945 */
DieterGraef 0:f9b6112278fe 1946 #ifndef IGMP_DEBUG
DieterGraef 0:f9b6112278fe 1947 #define IGMP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1948 #endif
DieterGraef 0:f9b6112278fe 1949
DieterGraef 0:f9b6112278fe 1950 /**
DieterGraef 0:f9b6112278fe 1951 * INET_DEBUG: Enable debugging in inet.c.
DieterGraef 0:f9b6112278fe 1952 */
DieterGraef 0:f9b6112278fe 1953 #ifndef INET_DEBUG
DieterGraef 0:f9b6112278fe 1954 #define INET_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1955 #endif
DieterGraef 0:f9b6112278fe 1956
DieterGraef 0:f9b6112278fe 1957 /**
DieterGraef 0:f9b6112278fe 1958 * IP_DEBUG: Enable debugging for IP.
DieterGraef 0:f9b6112278fe 1959 */
DieterGraef 0:f9b6112278fe 1960 #ifndef IP_DEBUG
DieterGraef 0:f9b6112278fe 1961 #define IP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1962 #endif
DieterGraef 0:f9b6112278fe 1963
DieterGraef 0:f9b6112278fe 1964 /**
DieterGraef 0:f9b6112278fe 1965 * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass.
DieterGraef 0:f9b6112278fe 1966 */
DieterGraef 0:f9b6112278fe 1967 #ifndef IP_REASS_DEBUG
DieterGraef 0:f9b6112278fe 1968 #define IP_REASS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1969 #endif
DieterGraef 0:f9b6112278fe 1970
DieterGraef 0:f9b6112278fe 1971 /**
DieterGraef 0:f9b6112278fe 1972 * RAW_DEBUG: Enable debugging in raw.c.
DieterGraef 0:f9b6112278fe 1973 */
DieterGraef 0:f9b6112278fe 1974 #ifndef RAW_DEBUG
DieterGraef 0:f9b6112278fe 1975 #define RAW_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1976 #endif
DieterGraef 0:f9b6112278fe 1977
DieterGraef 0:f9b6112278fe 1978 /**
DieterGraef 0:f9b6112278fe 1979 * MEM_DEBUG: Enable debugging in mem.c.
DieterGraef 0:f9b6112278fe 1980 */
DieterGraef 0:f9b6112278fe 1981 #ifndef MEM_DEBUG
DieterGraef 0:f9b6112278fe 1982 #define MEM_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1983 #endif
DieterGraef 0:f9b6112278fe 1984
DieterGraef 0:f9b6112278fe 1985 /**
DieterGraef 0:f9b6112278fe 1986 * MEMP_DEBUG: Enable debugging in memp.c.
DieterGraef 0:f9b6112278fe 1987 */
DieterGraef 0:f9b6112278fe 1988 #ifndef MEMP_DEBUG
DieterGraef 0:f9b6112278fe 1989 #define MEMP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1990 #endif
DieterGraef 0:f9b6112278fe 1991
DieterGraef 0:f9b6112278fe 1992 /**
DieterGraef 0:f9b6112278fe 1993 * SYS_DEBUG: Enable debugging in sys.c.
DieterGraef 0:f9b6112278fe 1994 */
DieterGraef 0:f9b6112278fe 1995 #ifndef SYS_DEBUG
DieterGraef 0:f9b6112278fe 1996 #define SYS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 1997 #endif
DieterGraef 0:f9b6112278fe 1998
DieterGraef 0:f9b6112278fe 1999 /**
DieterGraef 0:f9b6112278fe 2000 * TIMERS_DEBUG: Enable debugging in timers.c.
DieterGraef 0:f9b6112278fe 2001 */
DieterGraef 0:f9b6112278fe 2002 #ifndef TIMERS_DEBUG
DieterGraef 0:f9b6112278fe 2003 #define TIMERS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2004 #endif
DieterGraef 0:f9b6112278fe 2005
DieterGraef 0:f9b6112278fe 2006 /**
DieterGraef 0:f9b6112278fe 2007 * TCP_DEBUG: Enable debugging for TCP.
DieterGraef 0:f9b6112278fe 2008 */
DieterGraef 0:f9b6112278fe 2009 #ifndef TCP_DEBUG
DieterGraef 0:f9b6112278fe 2010 #define TCP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2011 #endif
DieterGraef 0:f9b6112278fe 2012
DieterGraef 0:f9b6112278fe 2013 /**
DieterGraef 0:f9b6112278fe 2014 * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.
DieterGraef 0:f9b6112278fe 2015 */
DieterGraef 0:f9b6112278fe 2016 #ifndef TCP_INPUT_DEBUG
DieterGraef 0:f9b6112278fe 2017 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2018 #endif
DieterGraef 0:f9b6112278fe 2019
DieterGraef 0:f9b6112278fe 2020 /**
DieterGraef 0:f9b6112278fe 2021 * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit.
DieterGraef 0:f9b6112278fe 2022 */
DieterGraef 0:f9b6112278fe 2023 #ifndef TCP_FR_DEBUG
DieterGraef 0:f9b6112278fe 2024 #define TCP_FR_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2025 #endif
DieterGraef 0:f9b6112278fe 2026
DieterGraef 0:f9b6112278fe 2027 /**
DieterGraef 0:f9b6112278fe 2028 * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit
DieterGraef 0:f9b6112278fe 2029 * timeout.
DieterGraef 0:f9b6112278fe 2030 */
DieterGraef 0:f9b6112278fe 2031 #ifndef TCP_RTO_DEBUG
DieterGraef 0:f9b6112278fe 2032 #define TCP_RTO_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2033 #endif
DieterGraef 0:f9b6112278fe 2034
DieterGraef 0:f9b6112278fe 2035 /**
DieterGraef 0:f9b6112278fe 2036 * TCP_CWND_DEBUG: Enable debugging for TCP congestion window.
DieterGraef 0:f9b6112278fe 2037 */
DieterGraef 0:f9b6112278fe 2038 #ifndef TCP_CWND_DEBUG
DieterGraef 0:f9b6112278fe 2039 #define TCP_CWND_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2040 #endif
DieterGraef 0:f9b6112278fe 2041
DieterGraef 0:f9b6112278fe 2042 /**
DieterGraef 0:f9b6112278fe 2043 * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating.
DieterGraef 0:f9b6112278fe 2044 */
DieterGraef 0:f9b6112278fe 2045 #ifndef TCP_WND_DEBUG
DieterGraef 0:f9b6112278fe 2046 #define TCP_WND_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2047 #endif
DieterGraef 0:f9b6112278fe 2048
DieterGraef 0:f9b6112278fe 2049 /**
DieterGraef 0:f9b6112278fe 2050 * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.
DieterGraef 0:f9b6112278fe 2051 */
DieterGraef 0:f9b6112278fe 2052 #ifndef TCP_OUTPUT_DEBUG
DieterGraef 0:f9b6112278fe 2053 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2054 #endif
DieterGraef 0:f9b6112278fe 2055
DieterGraef 0:f9b6112278fe 2056 /**
DieterGraef 0:f9b6112278fe 2057 * TCP_RST_DEBUG: Enable debugging for TCP with the RST message.
DieterGraef 0:f9b6112278fe 2058 */
DieterGraef 0:f9b6112278fe 2059 #ifndef TCP_RST_DEBUG
DieterGraef 0:f9b6112278fe 2060 #define TCP_RST_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2061 #endif
DieterGraef 0:f9b6112278fe 2062
DieterGraef 0:f9b6112278fe 2063 /**
DieterGraef 0:f9b6112278fe 2064 * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths.
DieterGraef 0:f9b6112278fe 2065 */
DieterGraef 0:f9b6112278fe 2066 #ifndef TCP_QLEN_DEBUG
DieterGraef 0:f9b6112278fe 2067 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2068 #endif
DieterGraef 0:f9b6112278fe 2069
DieterGraef 0:f9b6112278fe 2070 /**
DieterGraef 0:f9b6112278fe 2071 * UDP_DEBUG: Enable debugging in UDP.
DieterGraef 0:f9b6112278fe 2072 */
DieterGraef 0:f9b6112278fe 2073 #ifndef UDP_DEBUG
DieterGraef 0:f9b6112278fe 2074 #define UDP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2075 #endif
DieterGraef 0:f9b6112278fe 2076
DieterGraef 0:f9b6112278fe 2077 /**
DieterGraef 0:f9b6112278fe 2078 * TCPIP_DEBUG: Enable debugging in tcpip.c.
DieterGraef 0:f9b6112278fe 2079 */
DieterGraef 0:f9b6112278fe 2080 #ifndef TCPIP_DEBUG
DieterGraef 0:f9b6112278fe 2081 #define TCPIP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2082 #endif
DieterGraef 0:f9b6112278fe 2083
DieterGraef 0:f9b6112278fe 2084 /**
DieterGraef 0:f9b6112278fe 2085 * PPP_DEBUG: Enable debugging for PPP.
DieterGraef 0:f9b6112278fe 2086 */
DieterGraef 0:f9b6112278fe 2087 #ifndef PPP_DEBUG
DieterGraef 0:f9b6112278fe 2088 #define PPP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2089 #endif
DieterGraef 0:f9b6112278fe 2090
DieterGraef 0:f9b6112278fe 2091 /**
DieterGraef 0:f9b6112278fe 2092 * SLIP_DEBUG: Enable debugging in slipif.c.
DieterGraef 0:f9b6112278fe 2093 */
DieterGraef 0:f9b6112278fe 2094 #ifndef SLIP_DEBUG
DieterGraef 0:f9b6112278fe 2095 #define SLIP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2096 #endif
DieterGraef 0:f9b6112278fe 2097
DieterGraef 0:f9b6112278fe 2098 /**
DieterGraef 0:f9b6112278fe 2099 * DHCP_DEBUG: Enable debugging in dhcp.c.
DieterGraef 0:f9b6112278fe 2100 */
DieterGraef 0:f9b6112278fe 2101 #ifndef DHCP_DEBUG
DieterGraef 0:f9b6112278fe 2102 #define DHCP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2103 #endif
DieterGraef 0:f9b6112278fe 2104
DieterGraef 0:f9b6112278fe 2105 /**
DieterGraef 0:f9b6112278fe 2106 * AUTOIP_DEBUG: Enable debugging in autoip.c.
DieterGraef 0:f9b6112278fe 2107 */
DieterGraef 0:f9b6112278fe 2108 #ifndef AUTOIP_DEBUG
DieterGraef 0:f9b6112278fe 2109 #define AUTOIP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2110 #endif
DieterGraef 0:f9b6112278fe 2111
DieterGraef 0:f9b6112278fe 2112 /**
DieterGraef 0:f9b6112278fe 2113 * SNMP_MSG_DEBUG: Enable debugging for SNMP messages.
DieterGraef 0:f9b6112278fe 2114 */
DieterGraef 0:f9b6112278fe 2115 #ifndef SNMP_MSG_DEBUG
DieterGraef 0:f9b6112278fe 2116 #define SNMP_MSG_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2117 #endif
DieterGraef 0:f9b6112278fe 2118
DieterGraef 0:f9b6112278fe 2119 /**
DieterGraef 0:f9b6112278fe 2120 * SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs.
DieterGraef 0:f9b6112278fe 2121 */
DieterGraef 0:f9b6112278fe 2122 #ifndef SNMP_MIB_DEBUG
DieterGraef 0:f9b6112278fe 2123 #define SNMP_MIB_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2124 #endif
DieterGraef 0:f9b6112278fe 2125
DieterGraef 0:f9b6112278fe 2126 /**
DieterGraef 0:f9b6112278fe 2127 * DNS_DEBUG: Enable debugging for DNS.
DieterGraef 0:f9b6112278fe 2128 */
DieterGraef 0:f9b6112278fe 2129 #ifndef DNS_DEBUG
DieterGraef 0:f9b6112278fe 2130 #define DNS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 2131 #endif
DieterGraef 0:f9b6112278fe 2132
DieterGraef 0:f9b6112278fe 2133 #endif /* __LWIP_OPT_H__ */