ReactOS 0.4.16-dev-470-g91b8923
ppp_opts.h
Go to the documentation of this file.
1/*
2 * Redistribution and use in source and binary forms, with or without modification,
3 * are permitted provided that the following conditions are met:
4 *
5 * 1. Redistributions of source code must retain the above copyright notice,
6 * this list of conditions and the following disclaimer.
7 * 2. Redistributions in binary form must reproduce the above copyright notice,
8 * this list of conditions and the following disclaimer in the documentation
9 * and/or other materials provided with the distribution.
10 * 3. The name of the author may not be used to endorse or promote products
11 * derived from this software without specific prior written permission.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
16 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
18 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
20 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
21 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
22 * OF SUCH DAMAGE.
23 *
24 * This file is part of the lwIP TCP/IP stack.
25 *
26 */
27
28#ifndef LWIP_PPP_OPTS_H
29#define LWIP_PPP_OPTS_H
30
31#include "lwip/opt.h"
32
36#ifndef PPP_SUPPORT
37#define PPP_SUPPORT 0
38#endif
39
43#ifndef PPPOE_SUPPORT
44#define PPPOE_SUPPORT 0
45#endif
46
50#ifndef PPPOE_SCNAME_SUPPORT
51#define PPPOE_SCNAME_SUPPORT 0
52#endif
53
57#ifndef PPPOL2TP_SUPPORT
58#define PPPOL2TP_SUPPORT 0
59#endif
60
64#ifndef PPPOL2TP_AUTH_SUPPORT
65#define PPPOL2TP_AUTH_SUPPORT PPPOL2TP_SUPPORT
66#endif
67
71#ifndef PPPOS_SUPPORT
72#define PPPOS_SUPPORT PPP_SUPPORT
73#endif
74
78#ifndef LWIP_PPP_API
79#define LWIP_PPP_API (PPP_SUPPORT && (NO_SYS == 0))
80#endif
81
82#if PPP_SUPPORT
83
88#ifndef MEMP_NUM_PPP_PCB
89#define MEMP_NUM_PPP_PCB 1
90#endif
91
97#ifndef PPP_NUM_TIMEOUTS_PER_PCB
98#define PPP_NUM_TIMEOUTS_PER_PCB (2 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT)
99#endif
100
101/* The number of sys_timeouts required for the PPP module */
102#define PPP_NUM_TIMEOUTS (PPP_SUPPORT * PPP_NUM_TIMEOUTS_PER_PCB * MEMP_NUM_PPP_PCB)
103
108#ifndef MEMP_NUM_PPPOS_INTERFACES
109#define MEMP_NUM_PPPOS_INTERFACES MEMP_NUM_PPP_PCB
110#endif
111
116#ifndef MEMP_NUM_PPPOE_INTERFACES
117#define MEMP_NUM_PPPOE_INTERFACES 1
118#endif
119
124#ifndef MEMP_NUM_PPPOL2TP_INTERFACES
125#define MEMP_NUM_PPPOL2TP_INTERFACES 1
126#endif
127
131#ifndef MEMP_NUM_PPP_API_MSG
132#define MEMP_NUM_PPP_API_MSG 5
133#endif
134
138#ifndef PPP_DEBUG
139#define PPP_DEBUG LWIP_DBG_OFF
140#endif
141
147#ifndef PPP_INPROC_IRQ_SAFE
148#define PPP_INPROC_IRQ_SAFE 0
149#endif
150
156#ifndef PRINTPKT_SUPPORT
157#define PRINTPKT_SUPPORT 0
158#endif
159
163#ifndef PPP_IPV4_SUPPORT
164#define PPP_IPV4_SUPPORT (LWIP_IPV4)
165#endif
166
170#ifndef PPP_IPV6_SUPPORT
171#define PPP_IPV6_SUPPORT (LWIP_IPV6)
172#endif
173
183#ifndef PPP_NOTIFY_PHASE
184#define PPP_NOTIFY_PHASE 0
185#endif
186
190#ifndef PPP_FCS_TABLE
191#define PPP_FCS_TABLE 1
192#endif
193
197#ifndef PAP_SUPPORT
198#define PAP_SUPPORT 0
199#endif
200
204#ifndef CHAP_SUPPORT
205#define CHAP_SUPPORT 0
206#endif
207
211#ifndef MSCHAP_SUPPORT
212#define MSCHAP_SUPPORT 0
213#endif
214#if MSCHAP_SUPPORT
215/* MSCHAP requires CHAP support */
216#undef CHAP_SUPPORT
217#define CHAP_SUPPORT 1
218#endif /* MSCHAP_SUPPORT */
219
223#ifndef EAP_SUPPORT
224#define EAP_SUPPORT 0
225#endif
226
230#ifndef CCP_SUPPORT
231#define CCP_SUPPORT 0
232#endif
233
237#ifndef MPPE_SUPPORT
238#define MPPE_SUPPORT 0
239#endif
240#if MPPE_SUPPORT
241/* MPPE requires CCP support */
242#undef CCP_SUPPORT
243#define CCP_SUPPORT 1
244/* MPPE requires MSCHAP support */
245#undef MSCHAP_SUPPORT
246#define MSCHAP_SUPPORT 1
247/* MSCHAP requires CHAP support */
248#undef CHAP_SUPPORT
249#define CHAP_SUPPORT 1
250#endif /* MPPE_SUPPORT */
251
255#ifndef CBCP_SUPPORT
256#define CBCP_SUPPORT 0
257#endif
258
262#ifndef ECP_SUPPORT
263#define ECP_SUPPORT 0
264#endif
265
269#ifndef DEMAND_SUPPORT
270#define DEMAND_SUPPORT 0
271#endif
272
276#ifndef LQR_SUPPORT
277#define LQR_SUPPORT 0
278#endif
279
285#ifndef PPP_SERVER
286#define PPP_SERVER 0
287#endif
288
289#if PPP_SERVER
290/*
291 * PPP_OUR_NAME: Our name for authentication purposes
292 */
293#ifndef PPP_OUR_NAME
294#define PPP_OUR_NAME "lwIP"
295#endif
296#endif /* PPP_SERVER */
297
303#ifndef VJ_SUPPORT
304#define VJ_SUPPORT 0
305#endif
306/* VJ compression is only supported for TCP over IPv4 over PPPoS. */
307#if !PPPOS_SUPPORT || !PPP_IPV4_SUPPORT || !LWIP_TCP
308#undef VJ_SUPPORT
309#define VJ_SUPPORT 0
310#endif /* !PPPOS_SUPPORT */
311
316#ifndef PPP_MD5_RANDM
317#define PPP_MD5_RANDM (CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT)
318#endif
319
345#ifndef LWIP_USE_EXTERNAL_POLARSSL
346#define LWIP_USE_EXTERNAL_POLARSSL 0
347#endif
348
352#ifndef LWIP_USE_EXTERNAL_MBEDTLS
353#define LWIP_USE_EXTERNAL_MBEDTLS 0
354#endif
355
356/*
357 * PPP Timeouts
358 */
359
363#ifndef FSM_DEFTIMEOUT
364#define FSM_DEFTIMEOUT 6
365#endif
366
370#ifndef FSM_DEFMAXTERMREQS
371#define FSM_DEFMAXTERMREQS 2
372#endif
373
377#ifndef FSM_DEFMAXCONFREQS
378#define FSM_DEFMAXCONFREQS 10
379#endif
380
384#ifndef FSM_DEFMAXNAKLOOPS
385#define FSM_DEFMAXNAKLOOPS 5
386#endif
387
391#ifndef UPAP_DEFTIMEOUT
392#define UPAP_DEFTIMEOUT 6
393#endif
394
398#ifndef UPAP_DEFTRANSMITS
399#define UPAP_DEFTRANSMITS 10
400#endif
401
402#if PPP_SERVER
406#ifndef UPAP_DEFREQTIME
407#define UPAP_DEFREQTIME 30
408#endif
409#endif /* PPP_SERVER */
410
414#ifndef CHAP_DEFTIMEOUT
415#define CHAP_DEFTIMEOUT 6
416#endif
417
421#ifndef CHAP_DEFTRANSMITS
422#define CHAP_DEFTRANSMITS 10
423#endif
424
425#if PPP_SERVER
429#ifndef CHAP_DEFRECHALLENGETIME
430#define CHAP_DEFRECHALLENGETIME 0
431#endif
432#endif /* PPP_SERVER */
433
437#ifndef EAP_DEFREQTIME
438#define EAP_DEFREQTIME 6
439#endif
440
444#ifndef EAP_DEFALLOWREQ
445#define EAP_DEFALLOWREQ 10
446#endif
447
448#if PPP_SERVER
452#ifndef EAP_DEFTIMEOUT
453#define EAP_DEFTIMEOUT 6
454#endif
455
459#ifndef EAP_DEFTRANSMITS
460#define EAP_DEFTRANSMITS 10
461#endif
462#endif /* PPP_SERVER */
463
468#ifndef LCP_DEFLOOPBACKFAIL
469#define LCP_DEFLOOPBACKFAIL 10
470#endif
471
475#ifndef LCP_ECHOINTERVAL
476#define LCP_ECHOINTERVAL 0
477#endif
478
482#ifndef LCP_MAXECHOFAILS
483#define LCP_MAXECHOFAILS 3
484#endif
485
489#ifndef PPP_MAXIDLEFLAG
490#define PPP_MAXIDLEFLAG 100
491#endif
492
503#ifndef PPP_MRU
504#define PPP_MRU 1500
505#endif
506
517#ifndef PPP_MAXMRU
518#define PPP_MAXMRU 1500
519#endif
520
526#ifndef PPP_MINMRU
527#define PPP_MINMRU 128
528#endif
529
535#if PPPOL2TP_SUPPORT
536#ifndef PPPOL2TP_DEFMRU
537#define PPPOL2TP_DEFMRU 1450
538#endif
539#endif /* PPPOL2TP_SUPPORT */
540
544#ifndef MAXNAMELEN
545#define MAXNAMELEN 256
546#endif
547
551#ifndef MAXSECRETLEN
552#define MAXSECRETLEN 256
553#endif
554
555/* ------------------------------------------------------------------------- */
556
557/*
558 * Build triggers for embedded PolarSSL
559 */
560#if !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS
561
562/* CHAP, EAP, L2TP AUTH and MD5 Random require MD5 support */
563#if CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM
564#define LWIP_INCLUDED_POLARSSL_MD5 1
565#endif /* CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM */
566
567#if MSCHAP_SUPPORT
568
569/* MSCHAP require MD4 support */
570#define LWIP_INCLUDED_POLARSSL_MD4 1
571/* MSCHAP require SHA1 support */
572#define LWIP_INCLUDED_POLARSSL_SHA1 1
573/* MSCHAP require DES support */
574#define LWIP_INCLUDED_POLARSSL_DES 1
575
576/* MS-CHAP support is required for MPPE */
577#if MPPE_SUPPORT
578/* MPPE require ARC4 support */
579#define LWIP_INCLUDED_POLARSSL_ARC4 1
580#endif /* MPPE_SUPPORT */
581
582#endif /* MSCHAP_SUPPORT */
583
584#endif /* !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS */
585
586/* Default value if unset */
587#ifndef LWIP_INCLUDED_POLARSSL_MD4
588#define LWIP_INCLUDED_POLARSSL_MD4 0
589#endif /* LWIP_INCLUDED_POLARSSL_MD4 */
590#ifndef LWIP_INCLUDED_POLARSSL_MD5
591#define LWIP_INCLUDED_POLARSSL_MD5 0
592#endif /* LWIP_INCLUDED_POLARSSL_MD5 */
593#ifndef LWIP_INCLUDED_POLARSSL_SHA1
594#define LWIP_INCLUDED_POLARSSL_SHA1 0
595#endif /* LWIP_INCLUDED_POLARSSL_SHA1 */
596#ifndef LWIP_INCLUDED_POLARSSL_DES
597#define LWIP_INCLUDED_POLARSSL_DES 0
598#endif /* LWIP_INCLUDED_POLARSSL_DES */
599#ifndef LWIP_INCLUDED_POLARSSL_ARC4
600#define LWIP_INCLUDED_POLARSSL_ARC4 0
601#endif /* LWIP_INCLUDED_POLARSSL_ARC4 */
602
603#endif /* PPP_SUPPORT */
604
605/* Default value if unset */
606#ifndef PPP_NUM_TIMEOUTS
607#define PPP_NUM_TIMEOUTS 0
608#endif /* PPP_NUM_TIMEOUTS */
609
610#endif /* LWIP_PPP_OPTS_H */