xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.0.2/src/lwipopts.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero #ifndef __LWIPOPTS_H__
2*10465441SEvalZero #define __LWIPOPTS_H__
3*10465441SEvalZero 
4*10465441SEvalZero #include <rtconfig.h>
5*10465441SEvalZero 
6*10465441SEvalZero #define ERRNO                       1
7*10465441SEvalZero 
8*10465441SEvalZero #define LWIP_IPV4                   1
9*10465441SEvalZero 
10*10465441SEvalZero #ifdef RT_USING_LWIP_IPV6
11*10465441SEvalZero #define LWIP_IPV6                   1
12*10465441SEvalZero #else
13*10465441SEvalZero #define LWIP_IPV6                   0
14*10465441SEvalZero #endif /* RT_USING_LWIP_IPV6 */
15*10465441SEvalZero 
16*10465441SEvalZero #define NO_SYS                      0
17*10465441SEvalZero #define LWIP_SOCKET                 1
18*10465441SEvalZero #define LWIP_NETCONN                1
19*10465441SEvalZero 
20*10465441SEvalZero #ifdef RT_LWIP_IGMP
21*10465441SEvalZero #define LWIP_IGMP                   1
22*10465441SEvalZero #else
23*10465441SEvalZero #define LWIP_IGMP                   0
24*10465441SEvalZero #endif
25*10465441SEvalZero 
26*10465441SEvalZero #ifdef RT_LWIP_ICMP
27*10465441SEvalZero #define LWIP_ICMP                   1
28*10465441SEvalZero #else
29*10465441SEvalZero #define LWIP_ICMP                   0
30*10465441SEvalZero #endif
31*10465441SEvalZero 
32*10465441SEvalZero #ifdef RT_LWIP_SNMP
33*10465441SEvalZero #define LWIP_SNMP                   1
34*10465441SEvalZero #else
35*10465441SEvalZero #define LWIP_SNMP                   0
36*10465441SEvalZero #endif
37*10465441SEvalZero 
38*10465441SEvalZero #ifdef RT_LWIP_DNS
39*10465441SEvalZero #define LWIP_DNS                    1
40*10465441SEvalZero #else
41*10465441SEvalZero #define LWIP_DNS                    0
42*10465441SEvalZero #endif
43*10465441SEvalZero 
44*10465441SEvalZero #define LWIP_HAVE_LOOPIF            0
45*10465441SEvalZero 
46*10465441SEvalZero #define LWIP_PLATFORM_BYTESWAP      0
47*10465441SEvalZero 
48*10465441SEvalZero #ifndef BYTE_ORDER
49*10465441SEvalZero #define BYTE_ORDER                  LITTLE_ENDIAN
50*10465441SEvalZero #endif
51*10465441SEvalZero 
52*10465441SEvalZero /* #define RT_LWIP_DEBUG */
53*10465441SEvalZero 
54*10465441SEvalZero #ifdef RT_LWIP_DEBUG
55*10465441SEvalZero #define LWIP_DEBUG
56*10465441SEvalZero #endif
57*10465441SEvalZero 
58*10465441SEvalZero /* ---------- Debug options ---------- */
59*10465441SEvalZero #ifdef LWIP_DEBUG
60*10465441SEvalZero #ifdef RT_LWIP_SYS_DEBUG
61*10465441SEvalZero #define SYS_DEBUG                   LWIP_DBG_ON
62*10465441SEvalZero #else
63*10465441SEvalZero #define SYS_DEBUG                   LWIP_DBG_OFF
64*10465441SEvalZero #endif
65*10465441SEvalZero 
66*10465441SEvalZero #ifdef RT_LWIP_ETHARP_DEBUG
67*10465441SEvalZero #define ETHARP_DEBUG                LWIP_DBG_ON
68*10465441SEvalZero #else
69*10465441SEvalZero #define ETHARP_DEBUG                LWIP_DBG_OFF
70*10465441SEvalZero #endif
71*10465441SEvalZero 
72*10465441SEvalZero #ifdef RT_LWIP_PPP_DEBUG
73*10465441SEvalZero #define PPP_DEBUG                   LWIP_DBG_ON
74*10465441SEvalZero #else
75*10465441SEvalZero #define PPP_DEBUG                   LWIP_DBG_OFF
76*10465441SEvalZero #endif
77*10465441SEvalZero 
78*10465441SEvalZero #ifdef RT_LWIP_MEM_DEBUG
79*10465441SEvalZero #define MEM_DEBUG                   LWIP_DBG_ON
80*10465441SEvalZero #else
81*10465441SEvalZero #define MEM_DEBUG                   LWIP_DBG_OFF
82*10465441SEvalZero #endif
83*10465441SEvalZero 
84*10465441SEvalZero #ifdef RT_LWIP_MEMP_DEBUG
85*10465441SEvalZero #define MEMP_DEBUG                  LWIP_DBG_ON
86*10465441SEvalZero #else
87*10465441SEvalZero #define MEMP_DEBUG                  LWIP_DBG_OFF
88*10465441SEvalZero #endif
89*10465441SEvalZero 
90*10465441SEvalZero #ifdef RT_LWIP_PBUF_DEBUG
91*10465441SEvalZero #define PBUF_DEBUG                  LWIP_DBG_ON
92*10465441SEvalZero #else
93*10465441SEvalZero #define PBUF_DEBUG                  LWIP_DBG_OFF
94*10465441SEvalZero #endif
95*10465441SEvalZero 
96*10465441SEvalZero #ifdef RT_LWIP_API_LIB_DEBUG
97*10465441SEvalZero #define API_LIB_DEBUG               LWIP_DBG_ON
98*10465441SEvalZero #else
99*10465441SEvalZero #define API_LIB_DEBUG               LWIP_DBG_OFF
100*10465441SEvalZero #endif
101*10465441SEvalZero 
102*10465441SEvalZero #ifdef RT_LWIP_API_MSG_DEBUG
103*10465441SEvalZero #define API_MSG_DEBUG               LWIP_DBG_ON
104*10465441SEvalZero #else
105*10465441SEvalZero #define API_MSG_DEBUG               LWIP_DBG_OFF
106*10465441SEvalZero #endif
107*10465441SEvalZero 
108*10465441SEvalZero #ifdef RT_LWIP_TCPIP_DEBUG
109*10465441SEvalZero #define TCPIP_DEBUG                 LWIP_DBG_ON
110*10465441SEvalZero #else
111*10465441SEvalZero #define TCPIP_DEBUG                 LWIP_DBG_OFF
112*10465441SEvalZero #endif
113*10465441SEvalZero 
114*10465441SEvalZero #ifdef RT_LWIP_NETIF_DEBUG
115*10465441SEvalZero #define NETIF_DEBUG                 LWIP_DBG_ON
116*10465441SEvalZero #else
117*10465441SEvalZero #define NETIF_DEBUG                 LWIP_DBG_OFF
118*10465441SEvalZero #endif
119*10465441SEvalZero 
120*10465441SEvalZero #ifdef RT_LWIP_SOCKETS_DEBUG
121*10465441SEvalZero #define SOCKETS_DEBUG               LWIP_DBG_ON
122*10465441SEvalZero #else
123*10465441SEvalZero #define SOCKETS_DEBUG               LWIP_DBG_OFF
124*10465441SEvalZero #endif
125*10465441SEvalZero 
126*10465441SEvalZero #ifdef RT_LWIP_DNS_DEBUG
127*10465441SEvalZero #define DNS_DEBUG                   LWIP_DBG_ON
128*10465441SEvalZero #else
129*10465441SEvalZero #define DNS_DEBUG                   LWIP_DBG_OFF
130*10465441SEvalZero #endif
131*10465441SEvalZero 
132*10465441SEvalZero #ifdef RT_LWIP_AUTOIP_DEBUG
133*10465441SEvalZero #define AUTOIP_DEBUG                LWIP_DBG_ON
134*10465441SEvalZero #else
135*10465441SEvalZero #define AUTOIP_DEBUG                LWIP_DBG_OFF
136*10465441SEvalZero #endif
137*10465441SEvalZero 
138*10465441SEvalZero #ifdef RT_LWIP_DHCP_DEBUG
139*10465441SEvalZero #define DHCP_DEBUG                  LWIP_DBG_ON
140*10465441SEvalZero #else
141*10465441SEvalZero #define DHCP_DEBUG                  LWIP_DBG_OFF
142*10465441SEvalZero #endif
143*10465441SEvalZero 
144*10465441SEvalZero #ifdef RT_LWIP_IP_DEBUG
145*10465441SEvalZero #define IP_DEBUG                    LWIP_DBG_ON
146*10465441SEvalZero #else
147*10465441SEvalZero #define IP_DEBUG                    LWIP_DBG_OFF
148*10465441SEvalZero #endif
149*10465441SEvalZero 
150*10465441SEvalZero #ifdef RT_LWIP_IP_REASS_DEBUG
151*10465441SEvalZero #define IP_REASS_DEBUG              LWIP_DBG_ON
152*10465441SEvalZero #else
153*10465441SEvalZero #define IP_REASS_DEBUG              LWIP_DBG_OFF
154*10465441SEvalZero #endif
155*10465441SEvalZero 
156*10465441SEvalZero #ifdef RT_LWIP_ICMP_DEBUG
157*10465441SEvalZero #define ICMP_DEBUG                  LWIP_DBG_ON
158*10465441SEvalZero #else
159*10465441SEvalZero #define ICMP_DEBUG                  LWIP_DBG_OFF
160*10465441SEvalZero #endif
161*10465441SEvalZero 
162*10465441SEvalZero #ifdef RT_LWIP_IGMP_DEBUG
163*10465441SEvalZero #define IGMP_DEBUG                  LWIP_DBG_ON
164*10465441SEvalZero #else
165*10465441SEvalZero #define IGMP_DEBUG                  LWIP_DBG_OFF
166*10465441SEvalZero #endif
167*10465441SEvalZero 
168*10465441SEvalZero #ifdef RT_LWIP_UDP_DEBUG
169*10465441SEvalZero #define UDP_DEBUG                   LWIP_DBG_ON
170*10465441SEvalZero #else
171*10465441SEvalZero #define UDP_DEBUG                   LWIP_DBG_OFF
172*10465441SEvalZero #endif
173*10465441SEvalZero 
174*10465441SEvalZero #ifdef RT_LWIP_TCP_DEBUG
175*10465441SEvalZero #define TCP_DEBUG                   LWIP_DBG_ON
176*10465441SEvalZero #else
177*10465441SEvalZero #define TCP_DEBUG                   LWIP_DBG_OFF
178*10465441SEvalZero #endif
179*10465441SEvalZero 
180*10465441SEvalZero #ifdef RT_LWIP_TCP_INPUT_DEBUG
181*10465441SEvalZero #define TCP_INPUT_DEBUG             LWIP_DBG_ON
182*10465441SEvalZero #else
183*10465441SEvalZero #define TCP_INPUT_DEBUG             LWIP_DBG_OFF
184*10465441SEvalZero #endif
185*10465441SEvalZero 
186*10465441SEvalZero #ifdef RT_LWIP_TCP_OUTPUT_DEBUG
187*10465441SEvalZero #define TCP_OUTPUT_DEBUG            LWIP_DBG_ON
188*10465441SEvalZero #else
189*10465441SEvalZero #define TCP_OUTPUT_DEBUG            LWIP_DBG_OFF
190*10465441SEvalZero #endif
191*10465441SEvalZero 
192*10465441SEvalZero #ifdef RT_LWIP_TCP_RTO_DEBUG
193*10465441SEvalZero #define TCP_RTO_DEBUG               LWIP_DBG_ON
194*10465441SEvalZero #else
195*10465441SEvalZero #define TCP_RTO_DEBUG               LWIP_DBG_OFF
196*10465441SEvalZero #endif
197*10465441SEvalZero 
198*10465441SEvalZero #ifdef RT_LWIP_TCP_CWND_DEBUG
199*10465441SEvalZero #define TCP_CWND_DEBUG              LWIP_DBG_ON
200*10465441SEvalZero #else
201*10465441SEvalZero #define TCP_CWND_DEBUG              LWIP_DBG_OFF
202*10465441SEvalZero #endif
203*10465441SEvalZero 
204*10465441SEvalZero #ifdef RT_LWIP_TCP_WND_DEBUG
205*10465441SEvalZero #define TCP_WND_DEBUG               LWIP_DBG_ON
206*10465441SEvalZero #else
207*10465441SEvalZero #define TCP_WND_DEBUG               LWIP_DBG_OFF
208*10465441SEvalZero #endif
209*10465441SEvalZero 
210*10465441SEvalZero #ifdef RT_LWIP_TCP_FR_DEBUG
211*10465441SEvalZero #define TCP_FR_DEBUG                LWIP_DBG_ON
212*10465441SEvalZero #else
213*10465441SEvalZero #define TCP_FR_DEBUG                LWIP_DBG_OFF
214*10465441SEvalZero #endif
215*10465441SEvalZero 
216*10465441SEvalZero #ifdef RT_LWIP_TCP_QLEN_DEBUG
217*10465441SEvalZero #define TCP_QLEN_DEBUG              LWIP_DBG_ON
218*10465441SEvalZero #else
219*10465441SEvalZero #define TCP_QLEN_DEBUG              LWIP_DBG_OFF
220*10465441SEvalZero #endif
221*10465441SEvalZero 
222*10465441SEvalZero #ifdef RT_LWIP_TCP_RST_DEBUG
223*10465441SEvalZero #define TCP_RST_DEBUG               LWIP_DBG_ON
224*10465441SEvalZero #else
225*10465441SEvalZero #define TCP_RST_DEBUG               LWIP_DBG_OFF
226*10465441SEvalZero #endif
227*10465441SEvalZero 
228*10465441SEvalZero #endif /* LWIP_DEBUG */
229*10465441SEvalZero 
230*10465441SEvalZero #define LWIP_DBG_TYPES_ON           (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT)
231*10465441SEvalZero 
232*10465441SEvalZero /* ---------- Memory options ---------- */
233*10465441SEvalZero #define MEM_ALIGNMENT               4
234*10465441SEvalZero #define MEMP_OVERFLOW_CHECK         1 ////
235*10465441SEvalZero #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 ////
236*10465441SEvalZero //#define MEM_LIBC_MALLOC             1
237*10465441SEvalZero //#define MEM_USE_POOLS               1
238*10465441SEvalZero //#define MEMP_USE_CUSTOM_POOLS       1
239*10465441SEvalZero //#define MEM_SIZE                    (1024*64)
240*10465441SEvalZero 
241*10465441SEvalZero #define MEMP_MEM_MALLOC             0
242*10465441SEvalZero 
243*10465441SEvalZero /* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application
244*10465441SEvalZero    sends a lot of data out of ROM (or other static memory), this
245*10465441SEvalZero    should be set high. */
246*10465441SEvalZero #define MEMP_NUM_PBUF               32 //16
247*10465441SEvalZero 
248*10465441SEvalZero /* the number of struct netconns */
249*10465441SEvalZero #ifdef RT_MEMP_NUM_NETCONN
250*10465441SEvalZero #define MEMP_NUM_NETCONN            RT_MEMP_NUM_NETCONN
251*10465441SEvalZero #endif
252*10465441SEvalZero 
253*10465441SEvalZero /* the number of UDP protocol control blocks. One per active RAW "connection". */
254*10465441SEvalZero #ifdef RT_LWIP_RAW_PCB_NUM
255*10465441SEvalZero #define MEMP_NUM_RAW_PCB            RT_LWIP_RAW_PCB_NUM
256*10465441SEvalZero #endif
257*10465441SEvalZero 
258*10465441SEvalZero /* the number of UDP protocol control blocks. One per active UDP "connection". */
259*10465441SEvalZero #ifdef RT_LWIP_UDP_PCB_NUM
260*10465441SEvalZero #define MEMP_NUM_UDP_PCB            RT_LWIP_UDP_PCB_NUM
261*10465441SEvalZero #endif
262*10465441SEvalZero 
263*10465441SEvalZero /* the number of simulatenously active TCP connections. */
264*10465441SEvalZero #ifdef RT_LWIP_TCP_PCB_NUM
265*10465441SEvalZero #define MEMP_NUM_TCP_PCB            RT_LWIP_TCP_PCB_NUM
266*10465441SEvalZero #endif
267*10465441SEvalZero 
268*10465441SEvalZero /* the number of simultaneously queued TCP */
269*10465441SEvalZero #ifdef RT_LWIP_TCP_SEG_NUM
270*10465441SEvalZero #define MEMP_NUM_TCP_SEG            RT_LWIP_TCP_SEG_NUM
271*10465441SEvalZero #else
272*10465441SEvalZero #define MEMP_NUM_TCP_SEG            TCP_SND_QUEUELEN
273*10465441SEvalZero #endif
274*10465441SEvalZero 
275*10465441SEvalZero /*
276*10465441SEvalZero  * You can re-define following setting in rtcofnig.h to overwrite the default
277*10465441SEvalZero  * setting in the lwip opts.h
278*10465441SEvalZero  */
279*10465441SEvalZero /* MEMP_NUM_NETBUF: the number of struct netbufs. */
280*10465441SEvalZero // #define MEMP_NUM_NETBUF             2
281*10465441SEvalZero /* MEMP_NUM_NETCONN: the number of struct netconns. */
282*10465441SEvalZero // #define MEMP_NUM_NETCONN            4
283*10465441SEvalZero 
284*10465441SEvalZero /* MEMP_NUM_TCPIP_MSG_*: the number of struct tcpip_msg, which is used
285*10465441SEvalZero    for sequential API communication and incoming packets. Used in
286*10465441SEvalZero    src/api/tcpip.c. */
287*10465441SEvalZero // #define MEMP_NUM_TCPIP_MSG_API      16
288*10465441SEvalZero // #define MEMP_NUM_TCPIP_MSG_INPKT    16
289*10465441SEvalZero 
290*10465441SEvalZero /* ---------- Pbuf options ---------- */
291*10465441SEvalZero /* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */
292*10465441SEvalZero #ifdef RT_LWIP_PBUF_NUM
293*10465441SEvalZero #define PBUF_POOL_SIZE               RT_LWIP_PBUF_NUM
294*10465441SEvalZero #endif
295*10465441SEvalZero 
296*10465441SEvalZero /* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */
297*10465441SEvalZero #ifdef RT_LWIP_PBUF_POOL_BUFSIZE
298*10465441SEvalZero #define PBUF_POOL_BUFSIZE            RT_LWIP_PBUF_POOL_BUFSIZE
299*10465441SEvalZero #endif
300*10465441SEvalZero 
301*10465441SEvalZero /* PBUF_LINK_HLEN: the number of bytes that should be allocated for a
302*10465441SEvalZero    link level header. */
303*10465441SEvalZero #define PBUF_LINK_HLEN              16
304*10465441SEvalZero 
305*10465441SEvalZero #ifdef RT_LWIP_ETH_PAD_SIZE
306*10465441SEvalZero #define ETH_PAD_SIZE                RT_LWIP_ETH_PAD_SIZE
307*10465441SEvalZero #endif
308*10465441SEvalZero 
309*10465441SEvalZero /** SYS_LIGHTWEIGHT_PROT
310*10465441SEvalZero  * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection
311*10465441SEvalZero  * for certain critical regions during buffer allocation, deallocation and memory
312*10465441SEvalZero  * allocation and deallocation.
313*10465441SEvalZero  */
314*10465441SEvalZero #define SYS_LIGHTWEIGHT_PROT        (NO_SYS==0)
315*10465441SEvalZero 
316*10465441SEvalZero #ifdef LWIP_USING_NAT
317*10465441SEvalZero #define IP_NAT                      1
318*10465441SEvalZero #else
319*10465441SEvalZero #define IP_NAT                      0
320*10465441SEvalZero #endif
321*10465441SEvalZero 
322*10465441SEvalZero /* ---------- TCP options ---------- */
323*10465441SEvalZero #ifdef RT_LWIP_TCP
324*10465441SEvalZero #define LWIP_TCP                    1
325*10465441SEvalZero #else
326*10465441SEvalZero #define LWIP_TCP                    0
327*10465441SEvalZero #endif
328*10465441SEvalZero 
329*10465441SEvalZero #define TCP_TTL                     255
330*10465441SEvalZero 
331*10465441SEvalZero /* Controls if TCP should queue segments that arrive out of
332*10465441SEvalZero    order. Define to 0 if your device is low on memory. */
333*10465441SEvalZero #define TCP_QUEUE_OOSEQ             1
334*10465441SEvalZero 
335*10465441SEvalZero /* TCP Maximum segment size. */
336*10465441SEvalZero #define TCP_MSS                     1460
337*10465441SEvalZero 
338*10465441SEvalZero /* TCP sender buffer space (bytes). */
339*10465441SEvalZero #ifdef RT_LWIP_TCP_SND_BUF
340*10465441SEvalZero #define TCP_SND_BUF                 RT_LWIP_TCP_SND_BUF
341*10465441SEvalZero #else
342*10465441SEvalZero #define TCP_SND_BUF                 (TCP_MSS * 2)
343*10465441SEvalZero #endif
344*10465441SEvalZero 
345*10465441SEvalZero /* TCP sender buffer space (pbufs). This must be at least = 2 *
346*10465441SEvalZero    TCP_SND_BUF/TCP_MSS for things to work. */
347*10465441SEvalZero #define TCP_SND_QUEUELEN            (4 * TCP_SND_BUF/TCP_MSS)
348*10465441SEvalZero 
349*10465441SEvalZero /* TCP writable space (bytes). This must be less than or equal
350*10465441SEvalZero    to TCP_SND_BUF. It is the amount of space which must be
351*10465441SEvalZero    available in the tcp snd_buf for select to return writable */
352*10465441SEvalZero #define TCP_SNDLOWAT                (TCP_SND_BUF/2)
353*10465441SEvalZero #define TCP_SNDQUEUELOWAT           TCP_SND_QUEUELEN/2
354*10465441SEvalZero 
355*10465441SEvalZero /* TCP receive window. */
356*10465441SEvalZero #ifdef RT_LWIP_TCP_WND
357*10465441SEvalZero #define TCP_WND                     RT_LWIP_TCP_WND
358*10465441SEvalZero #else
359*10465441SEvalZero #define TCP_WND                     (TCP_MSS * 2)
360*10465441SEvalZero #endif
361*10465441SEvalZero 
362*10465441SEvalZero /* Maximum number of retransmissions of data segments. */
363*10465441SEvalZero #define TCP_MAXRTX                  12
364*10465441SEvalZero 
365*10465441SEvalZero /* Maximum number of retransmissions of SYN segments. */
366*10465441SEvalZero #define TCP_SYNMAXRTX               4
367*10465441SEvalZero 
368*10465441SEvalZero /* tcpip thread options */
369*10465441SEvalZero #ifdef RT_LWIP_TCPTHREAD_PRIORITY
370*10465441SEvalZero #define TCPIP_MBOX_SIZE             RT_LWIP_TCPTHREAD_MBOX_SIZE
371*10465441SEvalZero #define TCPIP_THREAD_PRIO           RT_LWIP_TCPTHREAD_PRIORITY
372*10465441SEvalZero #define TCPIP_THREAD_STACKSIZE      RT_LWIP_TCPTHREAD_STACKSIZE
373*10465441SEvalZero #else
374*10465441SEvalZero #define TCPIP_MBOX_SIZE             8
375*10465441SEvalZero #define TCPIP_THREAD_PRIO           128
376*10465441SEvalZero #define TCPIP_THREAD_STACKSIZE      4096
377*10465441SEvalZero #endif
378*10465441SEvalZero #define TCPIP_THREAD_NAME           "tcpip"
379*10465441SEvalZero #define DEFAULT_TCP_RECVMBOX_SIZE   10
380*10465441SEvalZero 
381*10465441SEvalZero /* ---------- ARP options ---------- */
382*10465441SEvalZero #define LWIP_ARP                    1
383*10465441SEvalZero #define ARP_TABLE_SIZE              10
384*10465441SEvalZero #define ARP_QUEUEING                1
385*10465441SEvalZero 
386*10465441SEvalZero /* ---------- IP options ---------- */
387*10465441SEvalZero /* Define IP_FORWARD to 1 if you wish to have the ability to forward
388*10465441SEvalZero    IP packets across network interfaces. If you are going to run lwIP
389*10465441SEvalZero    on a device with only one network interface, define this to 0. */
390*10465441SEvalZero #define IP_FORWARD                  0
391*10465441SEvalZero 
392*10465441SEvalZero /* IP reassembly and segmentation.These are orthogonal even
393*10465441SEvalZero  * if they both deal with IP fragments */
394*10465441SEvalZero #ifdef RT_LWIP_REASSEMBLY_FRAG
395*10465441SEvalZero #define IP_REASSEMBLY               1
396*10465441SEvalZero #define IP_FRAG                     1
397*10465441SEvalZero #define IP_REASS_MAX_PBUFS          10
398*10465441SEvalZero #define MEMP_NUM_REASSDATA          10
399*10465441SEvalZero #else
400*10465441SEvalZero #define IP_REASSEMBLY               0
401*10465441SEvalZero #define IP_FRAG                     0
402*10465441SEvalZero #endif
403*10465441SEvalZero 
404*10465441SEvalZero /* ---------- ICMP options ---------- */
405*10465441SEvalZero #define ICMP_TTL                    255
406*10465441SEvalZero 
407*10465441SEvalZero /* ---------- DHCP options ---------- */
408*10465441SEvalZero /* Define LWIP_DHCP to 1 if you want DHCP configuration of
409*10465441SEvalZero    interfaces. */
410*10465441SEvalZero #ifdef RT_LWIP_DHCP
411*10465441SEvalZero #define LWIP_DHCP                   1
412*10465441SEvalZero #else
413*10465441SEvalZero #define LWIP_DHCP                   0
414*10465441SEvalZero #endif
415*10465441SEvalZero 
416*10465441SEvalZero /* 1 if you want to do an ARP check on the offered address
417*10465441SEvalZero    (recommended). */
418*10465441SEvalZero #define DHCP_DOES_ARP_CHECK         (LWIP_DHCP)
419*10465441SEvalZero 
420*10465441SEvalZero /* ---------- AUTOIP options ------- */
421*10465441SEvalZero #define LWIP_AUTOIP                 0
422*10465441SEvalZero #define LWIP_DHCP_AUTOIP_COOP       (LWIP_DHCP && LWIP_AUTOIP)
423*10465441SEvalZero 
424*10465441SEvalZero /* ---------- UDP options ---------- */
425*10465441SEvalZero #ifdef RT_LWIP_UDP
426*10465441SEvalZero #define LWIP_UDP                    1
427*10465441SEvalZero #else
428*10465441SEvalZero #define LWIP_UDP                    0
429*10465441SEvalZero #endif
430*10465441SEvalZero 
431*10465441SEvalZero #define LWIP_UDPLITE                0
432*10465441SEvalZero #define UDP_TTL                     255
433*10465441SEvalZero #define DEFAULT_UDP_RECVMBOX_SIZE   1
434*10465441SEvalZero 
435*10465441SEvalZero /* ---------- RAW options ---------- */
436*10465441SEvalZero #ifdef RT_LWIP_RAW
437*10465441SEvalZero #define LWIP_RAW                    1
438*10465441SEvalZero #else
439*10465441SEvalZero #define LWIP_RAW                    0
440*10465441SEvalZero #endif
441*10465441SEvalZero 
442*10465441SEvalZero #define DEFAULT_RAW_RECVMBOX_SIZE   1
443*10465441SEvalZero #define DEFAULT_ACCEPTMBOX_SIZE     10
444*10465441SEvalZero 
445*10465441SEvalZero /* ---------- Statistics options ---------- */
446*10465441SEvalZero #ifdef RT_LWIP_STATS
447*10465441SEvalZero #define LWIP_STATS                  1
448*10465441SEvalZero #define LWIP_STATS_DISPLAY          1
449*10465441SEvalZero #else
450*10465441SEvalZero #define LWIP_STATS                  0
451*10465441SEvalZero #endif
452*10465441SEvalZero 
453*10465441SEvalZero #if LWIP_STATS
454*10465441SEvalZero #define LINK_STATS                  1
455*10465441SEvalZero #define IP_STATS                    1
456*10465441SEvalZero #define ICMP_STATS                  1
457*10465441SEvalZero #define IGMP_STATS                  1
458*10465441SEvalZero #define IPFRAG_STATS                1
459*10465441SEvalZero #define UDP_STATS                   1
460*10465441SEvalZero #define TCP_STATS                   1
461*10465441SEvalZero #define MEM_STATS                   1
462*10465441SEvalZero #define MEMP_STATS                  1
463*10465441SEvalZero #define PBUF_STATS                  1
464*10465441SEvalZero #define SYS_STATS                   1
465*10465441SEvalZero #define MIB2_STATS                  1
466*10465441SEvalZero #endif /* LWIP_STATS */
467*10465441SEvalZero 
468*10465441SEvalZero /* ---------- PPP options ---------- */
469*10465441SEvalZero #ifdef RT_LWIP_PPP
470*10465441SEvalZero #define PPP_SUPPORT                 1      /* Set > 0 for PPP */
471*10465441SEvalZero #else
472*10465441SEvalZero #define PPP_SUPPORT                 0      /* Set > 0 for PPP */
473*10465441SEvalZero #endif
474*10465441SEvalZero 
475*10465441SEvalZero #if PPP_SUPPORT
476*10465441SEvalZero #define NUM_PPP                     1      /* Max PPP sessions. */
477*10465441SEvalZero 
478*10465441SEvalZero /* Select modules to enable.  Ideally these would be set in the makefile but
479*10465441SEvalZero  * we're limited by the command line length so you need to modify the settings
480*10465441SEvalZero  * in this file.
481*10465441SEvalZero  */
482*10465441SEvalZero #ifdef RT_LWIP_PPPOE
483*10465441SEvalZero #define PPPOE_SUPPORT               1
484*10465441SEvalZero #else
485*10465441SEvalZero #define PPPOE_SUPPORT               0
486*10465441SEvalZero #endif
487*10465441SEvalZero 
488*10465441SEvalZero #ifdef RT_LWIP_PPPOS
489*10465441SEvalZero #define PPPOS_SUPPORT               1
490*10465441SEvalZero #else
491*10465441SEvalZero #define PPPOS_SUPPORT               0
492*10465441SEvalZero #endif
493*10465441SEvalZero 
494*10465441SEvalZero #define PAP_SUPPORT                 1      /* Set > 0 for PAP. */
495*10465441SEvalZero #define CHAP_SUPPORT                1      /* Set > 0 for CHAP. */
496*10465441SEvalZero #define MSCHAP_SUPPORT              0      /* Set > 0 for MSCHAP (NOT FUNCTIONAL!) */
497*10465441SEvalZero #define CBCP_SUPPORT                0      /* Set > 0 for CBCP (NOT FUNCTIONAL!) */
498*10465441SEvalZero #define CCP_SUPPORT                 0      /* Set > 0 for CCP (NOT FUNCTIONAL!) */
499*10465441SEvalZero #define VJ_SUPPORT                  1      /* Set > 0 for VJ header compression. */
500*10465441SEvalZero #define MD5_SUPPORT                 1      /* Set > 0 for MD5 (see also CHAP) */
501*10465441SEvalZero 
502*10465441SEvalZero #endif /* PPP_SUPPORT */
503*10465441SEvalZero 
504*10465441SEvalZero /**
505*10465441SEvalZero  * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names.
506*10465441SEvalZero  * Disable this option if you use a POSIX operating system that uses the same
507*10465441SEvalZero  * names (read, write & close). (only used if you use sockets.c)
508*10465441SEvalZero  */
509*10465441SEvalZero #ifndef LWIP_POSIX_SOCKETS_IO_NAMES
510*10465441SEvalZero #define LWIP_POSIX_SOCKETS_IO_NAMES     0
511*10465441SEvalZero #endif
512*10465441SEvalZero 
513*10465441SEvalZero /**
514*10465441SEvalZero  * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT
515*10465441SEvalZero  * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set
516*10465441SEvalZero  * in seconds. (does not require sockets.c, and will affect tcp.c)
517*10465441SEvalZero  */
518*10465441SEvalZero #ifndef LWIP_TCP_KEEPALIVE
519*10465441SEvalZero #define LWIP_TCP_KEEPALIVE              1
520*10465441SEvalZero #endif
521*10465441SEvalZero 
522*10465441SEvalZero /**
523*10465441SEvalZero  * LWIP_NETIF_API==1: Support netif api (in netifapi.c)
524*10465441SEvalZero  */
525*10465441SEvalZero #ifndef LWIP_NETIF_API
526*10465441SEvalZero #define LWIP_NETIF_API                  1
527*10465441SEvalZero #endif
528*10465441SEvalZero 
529*10465441SEvalZero #ifdef LWIP_IGMP
530*10465441SEvalZero #include <stdlib.h>
531*10465441SEvalZero #define LWIP_RAND                  rand
532*10465441SEvalZero #endif
533*10465441SEvalZero /*
534*10465441SEvalZero    ------------------------------------
535*10465441SEvalZero    ---------- Socket options ----------
536*10465441SEvalZero    ------------------------------------
537*10465441SEvalZero */
538*10465441SEvalZero /*
539*10465441SEvalZero  * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
540*10465441SEvalZero  */
541*10465441SEvalZero #ifndef LWIP_SOCKET
542*10465441SEvalZero #define LWIP_SOCKET                     1
543*10465441SEvalZero #endif
544*10465441SEvalZero 
545*10465441SEvalZero /*
546*10465441SEvalZero  * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
547*10465441SEvalZero  * (only used if you use sockets.c)
548*10465441SEvalZero  */
549*10465441SEvalZero #ifdef SAL_USING_POSIX
550*10465441SEvalZero #define LWIP_COMPAT_SOCKETS             0
551*10465441SEvalZero #else
552*10465441SEvalZero #ifndef LWIP_COMPAT_SOCKETS
553*10465441SEvalZero #define LWIP_COMPAT_SOCKETS             1
554*10465441SEvalZero #endif
555*10465441SEvalZero #endif
556*10465441SEvalZero 
557*10465441SEvalZero /**
558*10465441SEvalZero  * LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and
559*10465441SEvalZero  * SO_SNDTIMEO processing.
560*10465441SEvalZero  */
561*10465441SEvalZero #ifndef LWIP_SO_SNDTIMEO
562*10465441SEvalZero #define LWIP_SO_SNDTIMEO                1
563*10465441SEvalZero #endif
564*10465441SEvalZero 
565*10465441SEvalZero /**
566*10465441SEvalZero  * LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and
567*10465441SEvalZero  * SO_RCVTIMEO processing.
568*10465441SEvalZero  */
569*10465441SEvalZero #ifndef LWIP_SO_RCVTIMEO
570*10465441SEvalZero #define LWIP_SO_RCVTIMEO                1
571*10465441SEvalZero #endif
572*10465441SEvalZero 
573*10465441SEvalZero /**
574*10465441SEvalZero  * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
575*10465441SEvalZero  */
576*10465441SEvalZero #ifndef LWIP_SO_RCVBUF
577*10465441SEvalZero #define LWIP_SO_RCVBUF                  1
578*10465441SEvalZero #endif
579*10465441SEvalZero 
580*10465441SEvalZero /**
581*10465441SEvalZero  * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.
582*10465441SEvalZero  */
583*10465441SEvalZero #ifndef RECV_BUFSIZE_DEFAULT
584*10465441SEvalZero #define RECV_BUFSIZE_DEFAULT            8192
585*10465441SEvalZero #endif
586*10465441SEvalZero 
587*10465441SEvalZero /**
588*10465441SEvalZero  * SO_REUSE==1: Enable SO_REUSEADDR option.
589*10465441SEvalZero  */
590*10465441SEvalZero #ifndef SO_REUSE
591*10465441SEvalZero #define SO_REUSE                        0
592*10465441SEvalZero #endif
593*10465441SEvalZero 
594*10465441SEvalZero /*
595*10465441SEvalZero    ------------------------------------
596*10465441SEvalZero    ------- Applications options -------
597*10465441SEvalZero    ------------------------------------
598*10465441SEvalZero */
599*10465441SEvalZero 
600*10465441SEvalZero /**
601*10465441SEvalZero  * Max. length of TFTP filename
602*10465441SEvalZero  */
603*10465441SEvalZero #ifdef RT_LWIP_TFTP_MAX_FILENAME_LEN
604*10465441SEvalZero #define TFTP_MAX_FILENAME_LEN           RT_LWIP_TFTP_MAX_FILENAME_LEN
605*10465441SEvalZero #elif defined(RT_DFS_ELM_MAX_LFN)
606*10465441SEvalZero #define TFTP_MAX_FILENAME_LEN           RT_DFS_ELM_MAX_LFN
607*10465441SEvalZero #else
608*10465441SEvalZero #define TFTP_MAX_FILENAME_LEN           64
609*10465441SEvalZero #endif
610*10465441SEvalZero 
611*10465441SEvalZero 
612*10465441SEvalZero #endif /* __LWIPOPTS_H__ */
613