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