ConOpSys V2970
P004.07
ANVILEX control operating system
ConOpSys
Engine
Communication
LwIP
src
include
netif
ppp
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
33
/**
34
* PPP_SUPPORT==1: Enable PPP.
35
*/
36
#ifndef PPP_SUPPORT
37
#define PPP_SUPPORT 0
38
#endif
39
40
/**
41
* PPPOE_SUPPORT==1: Enable PPP Over Ethernet
42
*/
43
#ifndef PPPOE_SUPPORT
44
#define PPPOE_SUPPORT 0
45
#endif
46
47
/**
48
* PPPOL2TP_SUPPORT==1: Enable PPP Over L2TP
49
*/
50
#ifndef PPPOL2TP_SUPPORT
51
#define PPPOL2TP_SUPPORT 0
52
#endif
53
54
/**
55
* PPPOL2TP_AUTH_SUPPORT==1: Enable PPP Over L2TP Auth (enable MD5 support)
56
*/
57
#ifndef PPPOL2TP_AUTH_SUPPORT
58
#define PPPOL2TP_AUTH_SUPPORT PPPOL2TP_SUPPORT
59
#endif
60
61
/**
62
* PPPOS_SUPPORT==1: Enable PPP Over Serial
63
*/
64
#ifndef PPPOS_SUPPORT
65
#define PPPOS_SUPPORT PPP_SUPPORT
66
#endif
67
68
/**
69
* LWIP_PPP_API==1: Enable PPP API (in pppapi.c)
70
*/
71
#ifndef LWIP_PPP_API
72
#define LWIP_PPP_API (PPP_SUPPORT && (NO_SYS == 0))
73
#endif
74
75
#if PPP_SUPPORT
76
77
/**
78
* MEMP_NUM_PPP_PCB: the number of simultaneously active PPP
79
* connections (requires the PPP_SUPPORT option)
80
*/
81
#ifndef MEMP_NUM_PPP_PCB
82
#define MEMP_NUM_PPP_PCB 1
83
#endif
84
85
/**
86
* PPP_NUM_TIMEOUTS_PER_PCB: the number of sys_timeouts running in parallel per
87
* ppp_pcb. See the detailed explanation at the end of ppp_impl.h about simultaneous
88
* timers analysis.
89
*/
90
#ifndef PPP_NUM_TIMEOUTS_PER_PCB
91
#define PPP_NUM_TIMEOUTS_PER_PCB (1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT)
92
#endif
93
94
/* The number of sys_timeouts required for the PPP module */
95
#define PPP_NUM_TIMEOUTS (PPP_SUPPORT * PPP_NUM_TIMEOUTS_PER_PCB * MEMP_NUM_PPP_PCB)
96
97
/**
98
* MEMP_NUM_PPPOS_INTERFACES: the number of concurrently active PPPoS
99
* interfaces (only used with PPPOS_SUPPORT==1)
100
*/
101
#ifndef MEMP_NUM_PPPOS_INTERFACES
102
#define MEMP_NUM_PPPOS_INTERFACES MEMP_NUM_PPP_PCB
103
#endif
104
105
/**
106
* MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE
107
* interfaces (only used with PPPOE_SUPPORT==1)
108
*/
109
#ifndef MEMP_NUM_PPPOE_INTERFACES
110
#define MEMP_NUM_PPPOE_INTERFACES 1
111
#endif
112
113
/**
114
* MEMP_NUM_PPPOL2TP_INTERFACES: the number of concurrently active PPPoL2TP
115
* interfaces (only used with PPPOL2TP_SUPPORT==1)
116
*/
117
#ifndef MEMP_NUM_PPPOL2TP_INTERFACES
118
#define MEMP_NUM_PPPOL2TP_INTERFACES 1
119
#endif
120
121
/**
122
* MEMP_NUM_PPP_API_MSG: Number of concurrent PPP API messages (in pppapi.c)
123
*/
124
#ifndef MEMP_NUM_PPP_API_MSG
125
#define MEMP_NUM_PPP_API_MSG 5
126
#endif
127
128
/**
129
* PPP_DEBUG: Enable debugging for PPP.
130
*/
131
#ifndef PPP_DEBUG
132
#define PPP_DEBUG LWIP_DBG_OFF
133
#endif
134
135
/**
136
* PPP_INPROC_IRQ_SAFE==1 call pppos_input() using tcpip_callback().
137
*
138
* Please read the "PPPoS input path" chapter in the PPP documentation about this option.
139
*/
140
#ifndef PPP_INPROC_IRQ_SAFE
141
#define PPP_INPROC_IRQ_SAFE 0
142
#endif
143
144
/**
145
* PRINTPKT_SUPPORT==1: Enable PPP print packet support
146
*
147
* Mandatory for debugging, it displays exchanged packet content in debug trace.
148
*/
149
#ifndef PRINTPKT_SUPPORT
150
#define PRINTPKT_SUPPORT 0
151
#endif
152
153
/**
154
* PPP_IPV4_SUPPORT==1: Enable PPP IPv4 support
155
*/
156
#ifndef PPP_IPV4_SUPPORT
157
#define PPP_IPV4_SUPPORT (LWIP_IPV4)
158
#endif
159
160
/**
161
* PPP_IPV6_SUPPORT==1: Enable PPP IPv6 support
162
*/
163
#ifndef PPP_IPV6_SUPPORT
164
#define PPP_IPV6_SUPPORT (LWIP_IPV6)
165
#endif
166
167
/**
168
* PPP_NOTIFY_PHASE==1: Support PPP notify phase support
169
*
170
* PPP notify phase support allows you to set a callback which is
171
* called on change of the internal PPP state machine.
172
*
173
* This can be used for example to set a LED pattern depending on the
174
* current phase of the PPP session.
175
*/
176
#ifndef PPP_NOTIFY_PHASE
177
#define PPP_NOTIFY_PHASE 0
178
#endif
179
180
/**
181
* pbuf_type PPP is using for LCP, PAP, CHAP, EAP, CCP, IPCP and IP6CP packets.
182
*
183
* Memory allocated must be single buffered for PPP to works, it requires pbuf
184
* that are not going to be chained when allocated. This requires setting
185
* PBUF_POOL_BUFSIZE to at least 512 bytes, which is quite huge for small systems.
186
*
187
* Setting PPP_USE_PBUF_RAM to 1 makes PPP use memory from heap where continuous
188
* buffers are required, allowing you to use a smaller PBUF_POOL_BUFSIZE.
189
*/
190
#ifndef PPP_USE_PBUF_RAM
191
#define PPP_USE_PBUF_RAM 0
192
#endif
193
194
/**
195
* PPP_FCS_TABLE: Keep a 256*2 byte table to speed up FCS calculation for PPPoS
196
*/
197
#ifndef PPP_FCS_TABLE
198
#define PPP_FCS_TABLE 1
199
#endif
200
201
/**
202
* PAP_SUPPORT==1: Support PAP.
203
*/
204
#ifndef PAP_SUPPORT
205
#define PAP_SUPPORT 0
206
#endif
207
208
/**
209
* CHAP_SUPPORT==1: Support CHAP.
210
*/
211
#ifndef CHAP_SUPPORT
212
#define CHAP_SUPPORT 0
213
#endif
214
215
/**
216
* MSCHAP_SUPPORT==1: Support MSCHAP.
217
*/
218
#ifndef MSCHAP_SUPPORT
219
#define MSCHAP_SUPPORT 0
220
#endif
221
#if MSCHAP_SUPPORT
222
/* MSCHAP requires CHAP support */
223
#undef CHAP_SUPPORT
224
#define CHAP_SUPPORT 1
225
#endif
/* MSCHAP_SUPPORT */
226
227
/**
228
* EAP_SUPPORT==1: Support EAP.
229
*/
230
#ifndef EAP_SUPPORT
231
#define EAP_SUPPORT 0
232
#endif
233
234
/**
235
* CCP_SUPPORT==1: Support CCP.
236
*/
237
#ifndef CCP_SUPPORT
238
#define CCP_SUPPORT 0
239
#endif
240
241
/**
242
* MPPE_SUPPORT==1: Support MPPE.
243
*/
244
#ifndef MPPE_SUPPORT
245
#define MPPE_SUPPORT 0
246
#endif
247
#if MPPE_SUPPORT
248
/* MPPE requires CCP support */
249
#undef CCP_SUPPORT
250
#define CCP_SUPPORT 1
251
/* MPPE requires MSCHAP support */
252
#undef MSCHAP_SUPPORT
253
#define MSCHAP_SUPPORT 1
254
/* MSCHAP requires CHAP support */
255
#undef CHAP_SUPPORT
256
#define CHAP_SUPPORT 1
257
#endif
/* MPPE_SUPPORT */
258
259
/**
260
* CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET!
261
*/
262
#ifndef CBCP_SUPPORT
263
#define CBCP_SUPPORT 0
264
#endif
265
266
/**
267
* ECP_SUPPORT==1: Support ECP. CURRENTLY NOT SUPPORTED! DO NOT SET!
268
*/
269
#ifndef ECP_SUPPORT
270
#define ECP_SUPPORT 0
271
#endif
272
273
/**
274
* DEMAND_SUPPORT==1: Support dial on demand. CURRENTLY NOT SUPPORTED! DO NOT SET!
275
*/
276
#ifndef DEMAND_SUPPORT
277
#define DEMAND_SUPPORT 0
278
#endif
279
280
/**
281
* LQR_SUPPORT==1: Support Link Quality Report. Do nothing except exchanging some LCP packets.
282
*/
283
#ifndef LQR_SUPPORT
284
#define LQR_SUPPORT 0
285
#endif
286
287
/**
288
* PPP_SERVER==1: Enable PPP server support (waiting for incoming PPP session).
289
*
290
* Currently only supported for PPPoS.
291
*/
292
#ifndef PPP_SERVER
293
#define PPP_SERVER 0
294
#endif
295
296
#if PPP_SERVER
297
/*
298
* PPP_OUR_NAME: Our name for authentication purposes
299
*/
300
#ifndef PPP_OUR_NAME
301
#define PPP_OUR_NAME "lwIP"
302
#endif
303
#endif
/* PPP_SERVER */
304
305
/**
306
* VJ_SUPPORT==1: Support VJ header compression.
307
*/
308
#ifndef VJ_SUPPORT
309
#define VJ_SUPPORT 1
310
#endif
311
/* VJ compression is only supported for TCP over IPv4 over PPPoS. */
312
#if !PPPOS_SUPPORT || !PPP_IPV4_SUPPORT || !LWIP_TCP
313
#undef VJ_SUPPORT
314
#define VJ_SUPPORT 0
315
#endif
/* !PPPOS_SUPPORT */
316
317
/**
318
* PPP_MD5_RANDM==1: Use MD5 for better randomness.
319
* Enabled by default if CHAP, EAP, or L2TP AUTH support is enabled.
320
*/
321
#ifndef PPP_MD5_RANDM
322
#define PPP_MD5_RANDM (CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT)
323
#endif
324
325
/**
326
* PolarSSL embedded library
327
*
328
*
329
* lwIP contains some files fetched from the latest BSD release of
330
* the PolarSSL project (PolarSSL 0.10.1-bsd) for ciphers and encryption
331
* methods we need for lwIP PPP support.
332
*
333
* The PolarSSL files were cleaned to contain only the necessary struct
334
* fields and functions needed for lwIP.
335
*
336
* The PolarSSL API was not changed at all, so if you are already using
337
* PolarSSL you can choose to skip the compilation of the included PolarSSL
338
* library into lwIP.
339
*
340
* If you are not using the embedded copy you must include external
341
* libraries into your arch/cc.h port file.
342
*
343
* Beware of the stack requirements which can be a lot larger if you are not
344
* using our cleaned PolarSSL library.
345
*/
346
347
/**
348
* LWIP_USE_EXTERNAL_POLARSSL: Use external PolarSSL library
349
*/
350
#ifndef LWIP_USE_EXTERNAL_POLARSSL
351
#define LWIP_USE_EXTERNAL_POLARSSL 0
352
#endif
353
354
/**
355
* LWIP_USE_EXTERNAL_MBEDTLS: Use external mbed TLS library
356
*/
357
#ifndef LWIP_USE_EXTERNAL_MBEDTLS
358
#define LWIP_USE_EXTERNAL_MBEDTLS 0
359
#endif
360
361
/*
362
* PPP Timeouts
363
*/
364
365
/**
366
* FSM_DEFTIMEOUT: Timeout time in seconds
367
*/
368
#ifndef FSM_DEFTIMEOUT
369
#define FSM_DEFTIMEOUT 6
370
#endif
371
372
/**
373
* FSM_DEFMAXTERMREQS: Maximum Terminate-Request transmissions
374
*/
375
#ifndef FSM_DEFMAXTERMREQS
376
#define FSM_DEFMAXTERMREQS 2
377
#endif
378
379
/**
380
* FSM_DEFMAXCONFREQS: Maximum Configure-Request transmissions
381
*/
382
#ifndef FSM_DEFMAXCONFREQS
383
#define FSM_DEFMAXCONFREQS 10
384
#endif
385
386
/**
387
* FSM_DEFMAXNAKLOOPS: Maximum number of nak loops
388
*/
389
#ifndef FSM_DEFMAXNAKLOOPS
390
#define FSM_DEFMAXNAKLOOPS 5
391
#endif
392
393
/**
394
* UPAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req
395
*/
396
#ifndef UPAP_DEFTIMEOUT
397
#define UPAP_DEFTIMEOUT 6
398
#endif
399
400
/**
401
* UPAP_DEFTRANSMITS: Maximum number of auth-reqs to send
402
*/
403
#ifndef UPAP_DEFTRANSMITS
404
#define UPAP_DEFTRANSMITS 10
405
#endif
406
407
#if PPP_SERVER
408
/**
409
* UPAP_DEFREQTIME: Time to wait for auth-req from peer
410
*/
411
#ifndef UPAP_DEFREQTIME
412
#define UPAP_DEFREQTIME 30
413
#endif
414
#endif
/* PPP_SERVER */
415
416
/**
417
* CHAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req
418
*/
419
#ifndef CHAP_DEFTIMEOUT
420
#define CHAP_DEFTIMEOUT 6
421
#endif
422
423
/**
424
* CHAP_DEFTRANSMITS: max # times to send challenge
425
*/
426
#ifndef CHAP_DEFTRANSMITS
427
#define CHAP_DEFTRANSMITS 10
428
#endif
429
430
#if PPP_SERVER
431
/**
432
* CHAP_DEFRECHALLENGETIME: If this option is > 0, rechallenge the peer every n seconds
433
*/
434
#ifndef CHAP_DEFRECHALLENGETIME
435
#define CHAP_DEFRECHALLENGETIME 0
436
#endif
437
#endif
/* PPP_SERVER */
438
439
/**
440
* EAP_DEFREQTIME: Time to wait for peer request
441
*/
442
#ifndef EAP_DEFREQTIME
443
#define EAP_DEFREQTIME 6
444
#endif
445
446
/**
447
* EAP_DEFALLOWREQ: max # times to accept requests
448
*/
449
#ifndef EAP_DEFALLOWREQ
450
#define EAP_DEFALLOWREQ 10
451
#endif
452
453
#if PPP_SERVER
454
/**
455
* EAP_DEFTIMEOUT: Timeout (seconds) for rexmit
456
*/
457
#ifndef EAP_DEFTIMEOUT
458
#define EAP_DEFTIMEOUT 6
459
#endif
460
461
/**
462
* EAP_DEFTRANSMITS: max # times to transmit
463
*/
464
#ifndef EAP_DEFTRANSMITS
465
#define EAP_DEFTRANSMITS 10
466
#endif
467
#endif
/* PPP_SERVER */
468
469
/**
470
* LCP_DEFLOOPBACKFAIL: Default number of times we receive our magic number from the peer
471
* before deciding the link is looped-back.
472
*/
473
#ifndef LCP_DEFLOOPBACKFAIL
474
#define LCP_DEFLOOPBACKFAIL 10
475
#endif
476
477
/**
478
* LCP_ECHOINTERVAL: Interval in seconds between keepalive echo requests, 0 to disable.
479
*/
480
#ifndef LCP_ECHOINTERVAL
481
#define LCP_ECHOINTERVAL 0
482
#endif
483
484
/**
485
* LCP_MAXECHOFAILS: Number of unanswered echo requests before failure.
486
*/
487
#ifndef LCP_MAXECHOFAILS
488
#define LCP_MAXECHOFAILS 3
489
#endif
490
491
/**
492
* PPP_MAXIDLEFLAG: Max Xmit idle time (in ms) before resend flag char.
493
*/
494
#ifndef PPP_MAXIDLEFLAG
495
#define PPP_MAXIDLEFLAG 100
496
#endif
497
498
/**
499
* PPP Packet sizes
500
*/
501
502
/**
503
* PPP_MRU: Default MRU
504
*/
505
#ifndef PPP_MRU
506
#define PPP_MRU 1500
507
#endif
508
509
/**
510
* PPP_DEFMRU: Default MRU to try
511
*/
512
#ifndef PPP_DEFMRU
513
#define PPP_DEFMRU 1500
514
#endif
515
516
/**
517
* PPP_MAXMRU: Normally limit MRU to this (pppd default = 16384)
518
*/
519
#ifndef PPP_MAXMRU
520
#define PPP_MAXMRU 1500
521
#endif
522
523
/**
524
* PPP_MINMRU: No MRUs below this
525
*/
526
#ifndef PPP_MINMRU
527
#define PPP_MINMRU 128
528
#endif
529
530
/**
531
* PPPOL2TP_DEFMRU: Default MTU and MRU for L2TP
532
* Default = 1500 - PPPoE(6) - PPP Protocol(2) - IPv4 header(20) - UDP Header(8)
533
* - L2TP Header(6) - HDLC Header(2) - PPP Protocol(2) - MPPE Header(2) - PPP Protocol(2)
534
*/
535
#if PPPOL2TP_SUPPORT
536
#ifndef PPPOL2TP_DEFMRU
537
#define PPPOL2TP_DEFMRU 1450
538
#endif
539
#endif
/* PPPOL2TP_SUPPORT */
540
541
/**
542
* MAXNAMELEN: max length of hostname or name for auth
543
*/
544
#ifndef MAXNAMELEN
545
#define MAXNAMELEN 256
546
#endif
547
548
/**
549
* MAXSECRETLEN: max length of password or secret
550
*/
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 */
opt.h
Generated on Thu Mar 10 2022 03:50:20 for ConOpSys V2970 by
1.9.1