Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-os by
ppp_opts.h
00001 /* 00002 * Redistribution and use in source and binary forms, with or without modification, 00003 * are permitted provided that the following conditions are met: 00004 * 00005 * 1. Redistributions of source code must retain the above copyright notice, 00006 * this list of conditions and the following disclaimer. 00007 * 2. Redistributions in binary form must reproduce the above copyright notice, 00008 * this list of conditions and the following disclaimer in the documentation 00009 * and/or other materials provided with the distribution. 00010 * 3. The name of the author may not be used to endorse or promote products 00011 * derived from this software without specific prior written permission. 00012 * 00013 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00014 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00015 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00016 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00017 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00018 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00019 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00020 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00021 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00022 * OF SUCH DAMAGE. 00023 * 00024 * This file is part of the lwIP TCP/IP stack. 00025 * 00026 */ 00027 00028 #ifndef LWIP_PPP_OPTS_H 00029 #define LWIP_PPP_OPTS_H 00030 00031 #include "lwip/opt.h" 00032 00033 /** 00034 * PPP_SUPPORT==1: Enable PPP. 00035 */ 00036 #ifndef PPP_SUPPORT 00037 #define PPP_SUPPORT 0 00038 #endif 00039 00040 /** 00041 * PPPOE_SUPPORT==1: Enable PPP Over Ethernet 00042 */ 00043 #ifndef PPPOE_SUPPORT 00044 #define PPPOE_SUPPORT 0 00045 #endif 00046 00047 /** 00048 * PPPOL2TP_SUPPORT==1: Enable PPP Over L2TP 00049 */ 00050 #ifndef PPPOL2TP_SUPPORT 00051 #define PPPOL2TP_SUPPORT 0 00052 #endif 00053 00054 /** 00055 * PPPOL2TP_AUTH_SUPPORT==1: Enable PPP Over L2TP Auth (enable MD5 support) 00056 */ 00057 #ifndef PPPOL2TP_AUTH_SUPPORT 00058 #define PPPOL2TP_AUTH_SUPPORT PPPOL2TP_SUPPORT 00059 #endif 00060 00061 /** 00062 * PPPOS_SUPPORT==1: Enable PPP Over Serial 00063 */ 00064 #ifndef PPPOS_SUPPORT 00065 #define PPPOS_SUPPORT PPP_SUPPORT 00066 #endif 00067 00068 /** 00069 * LWIP_PPP_API==1: Enable PPP API (in pppapi.c) 00070 */ 00071 #ifndef LWIP_PPP_API 00072 #define LWIP_PPP_API (PPP_SUPPORT && (NO_SYS == 0)) 00073 #endif 00074 00075 /** 00076 * MEMP_NUM_PPP_PCB: the number of simultaneously active PPP 00077 * connections (requires the PPP_SUPPORT option) 00078 */ 00079 #ifndef MEMP_NUM_PPP_PCB 00080 #define MEMP_NUM_PPP_PCB 1 00081 #endif 00082 00083 #if PPP_SUPPORT 00084 00085 /** 00086 * MEMP_NUM_PPPOS_INTERFACES: the number of concurrently active PPPoS 00087 * interfaces (only used with PPPOS_SUPPORT==1) 00088 */ 00089 #ifndef MEMP_NUM_PPPOS_INTERFACES 00090 #define MEMP_NUM_PPPOS_INTERFACES MEMP_NUM_PPP_PCB 00091 #endif 00092 00093 /** 00094 * MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE 00095 * interfaces (only used with PPPOE_SUPPORT==1) 00096 */ 00097 #ifndef MEMP_NUM_PPPOE_INTERFACES 00098 #define MEMP_NUM_PPPOE_INTERFACES 1 00099 #endif 00100 00101 /** 00102 * MEMP_NUM_PPPOL2TP_INTERFACES: the number of concurrently active PPPoL2TP 00103 * interfaces (only used with PPPOL2TP_SUPPORT==1) 00104 */ 00105 #ifndef MEMP_NUM_PPPOL2TP_INTERFACES 00106 #define MEMP_NUM_PPPOL2TP_INTERFACES 1 00107 #endif 00108 00109 /** 00110 * MEMP_NUM_PPP_API_MSG: Number of concurrent PPP API messages (in pppapi.c) 00111 */ 00112 #ifndef MEMP_NUM_PPP_API_MSG 00113 #define MEMP_NUM_PPP_API_MSG 5 00114 #endif 00115 00116 /** 00117 * PPP_DEBUG: Enable debugging for PPP. 00118 */ 00119 #ifndef PPP_DEBUG 00120 #define PPP_DEBUG LWIP_DBG_OFF 00121 #endif 00122 00123 /** 00124 * PPP_INPROC_IRQ_SAFE==1 call pppos_input() using tcpip_callback(). 00125 * 00126 * Please read the "PPPoS input path" chapter in the PPP documentation about this option. 00127 */ 00128 #ifndef PPP_INPROC_IRQ_SAFE 00129 #define PPP_INPROC_IRQ_SAFE 0 00130 #endif 00131 00132 /** 00133 * PRINTPKT_SUPPORT==1: Enable PPP print packet support 00134 * 00135 * Mandatory for debugging, it displays exchanged packet content in debug trace. 00136 */ 00137 #ifndef PRINTPKT_SUPPORT 00138 #define PRINTPKT_SUPPORT 0 00139 #endif 00140 00141 /** 00142 * PPP_IPV4_SUPPORT==1: Enable PPP IPv4 support 00143 */ 00144 #ifndef PPP_IPV4_SUPPORT 00145 #define PPP_IPV4_SUPPORT (LWIP_IPV4) 00146 #endif 00147 00148 /** 00149 * PPP_IPV6_SUPPORT==1: Enable PPP IPv6 support 00150 */ 00151 #ifndef PPP_IPV6_SUPPORT 00152 #define PPP_IPV6_SUPPORT (LWIP_IPV6) 00153 #endif 00154 00155 /** 00156 * PPP_NOTIFY_PHASE==1: Support PPP notify phase support 00157 * 00158 * PPP notify phase support allows you to set a callback which is 00159 * called on change of the internal PPP state machine. 00160 * 00161 * This can be used for example to set a LED pattern depending on the 00162 * current phase of the PPP session. 00163 */ 00164 #ifndef PPP_NOTIFY_PHASE 00165 #define PPP_NOTIFY_PHASE 0 00166 #endif 00167 00168 /** 00169 * pbuf_type PPP is using for LCP, PAP, CHAP, EAP, CCP, IPCP and IP6CP packets. 00170 * 00171 * Memory allocated must be single buffered for PPP to works, it requires pbuf 00172 * that are not going to be chained when allocated. This requires setting 00173 * PBUF_POOL_BUFSIZE to at least 512 bytes, which is quite huge for small systems. 00174 * 00175 * Setting PPP_USE_PBUF_RAM to 1 makes PPP use memory from heap where continuous 00176 * buffers are required, allowing you to use a smaller PBUF_POOL_BUFSIZE. 00177 */ 00178 #ifndef PPP_USE_PBUF_RAM 00179 #define PPP_USE_PBUF_RAM 0 00180 #endif 00181 00182 /** 00183 * PPP_FCS_TABLE: Keep a 256*2 byte table to speed up FCS calculation for PPPoS 00184 */ 00185 #ifndef PPP_FCS_TABLE 00186 #define PPP_FCS_TABLE 1 00187 #endif 00188 00189 /** 00190 * PAP_SUPPORT==1: Support PAP. 00191 */ 00192 #ifndef PAP_SUPPORT 00193 #define PAP_SUPPORT 0 00194 #endif 00195 00196 /** 00197 * CHAP_SUPPORT==1: Support CHAP. 00198 */ 00199 #ifndef CHAP_SUPPORT 00200 #define CHAP_SUPPORT 0 00201 #endif 00202 00203 /** 00204 * MSCHAP_SUPPORT==1: Support MSCHAP. 00205 */ 00206 #ifndef MSCHAP_SUPPORT 00207 #define MSCHAP_SUPPORT 0 00208 #endif 00209 #if MSCHAP_SUPPORT 00210 /* MSCHAP requires CHAP support */ 00211 #undef CHAP_SUPPORT 00212 #define CHAP_SUPPORT 1 00213 #endif /* MSCHAP_SUPPORT */ 00214 00215 /** 00216 * EAP_SUPPORT==1: Support EAP. 00217 */ 00218 #ifndef EAP_SUPPORT 00219 #define EAP_SUPPORT 0 00220 #endif 00221 00222 /** 00223 * CCP_SUPPORT==1: Support CCP. 00224 */ 00225 #ifndef CCP_SUPPORT 00226 #define CCP_SUPPORT 0 00227 #endif 00228 00229 /** 00230 * MPPE_SUPPORT==1: Support MPPE. 00231 */ 00232 #ifndef MPPE_SUPPORT 00233 #define MPPE_SUPPORT 0 00234 #endif 00235 #if MPPE_SUPPORT 00236 /* MPPE requires CCP support */ 00237 #undef CCP_SUPPORT 00238 #define CCP_SUPPORT 1 00239 /* MPPE requires MSCHAP support */ 00240 #undef MSCHAP_SUPPORT 00241 #define MSCHAP_SUPPORT 1 00242 /* MSCHAP requires CHAP support */ 00243 #undef CHAP_SUPPORT 00244 #define CHAP_SUPPORT 1 00245 #endif /* MPPE_SUPPORT */ 00246 00247 /** 00248 * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET! 00249 */ 00250 #ifndef CBCP_SUPPORT 00251 #define CBCP_SUPPORT 0 00252 #endif 00253 00254 /** 00255 * ECP_SUPPORT==1: Support ECP. CURRENTLY NOT SUPPORTED! DO NOT SET! 00256 */ 00257 #ifndef ECP_SUPPORT 00258 #define ECP_SUPPORT 0 00259 #endif 00260 00261 /** 00262 * DEMAND_SUPPORT==1: Support dial on demand. CURRENTLY NOT SUPPORTED! DO NOT SET! 00263 */ 00264 #ifndef DEMAND_SUPPORT 00265 #define DEMAND_SUPPORT 0 00266 #endif 00267 00268 /** 00269 * LQR_SUPPORT==1: Support Link Quality Report. Do nothing except exchanging some LCP packets. 00270 */ 00271 #ifndef LQR_SUPPORT 00272 #define LQR_SUPPORT 0 00273 #endif 00274 00275 /** 00276 * PPP_SERVER==1: Enable PPP server support (waiting for incoming PPP session). 00277 * 00278 * Currently only supported for PPPoS. 00279 */ 00280 #ifndef PPP_SERVER 00281 #define PPP_SERVER 0 00282 #endif 00283 00284 #if PPP_SERVER 00285 /* 00286 * PPP_OUR_NAME: Our name for authentication purposes 00287 */ 00288 #ifndef PPP_OUR_NAME 00289 #define PPP_OUR_NAME "lwIP" 00290 #endif 00291 #endif /* PPP_SERVER */ 00292 00293 /** 00294 * VJ_SUPPORT==1: Support VJ header compression. 00295 */ 00296 #ifndef VJ_SUPPORT 00297 #define VJ_SUPPORT 1 00298 #endif 00299 /* VJ compression is only supported for IPv4 over PPPoS. */ 00300 #if !PPPOS_SUPPORT || !PPP_IPV4_SUPPORT 00301 #undef VJ_SUPPORT 00302 #define VJ_SUPPORT 0 00303 #endif /* !PPPOS_SUPPORT */ 00304 00305 /** 00306 * PPP_MD5_RANDM==1: Use MD5 for better randomness. 00307 * Enabled by default if CHAP, EAP, or L2TP AUTH support is enabled. 00308 */ 00309 #ifndef PPP_MD5_RANDM 00310 #define PPP_MD5_RANDM (CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT) 00311 #endif 00312 00313 /** 00314 * PolarSSL embedded library 00315 * 00316 * 00317 * lwIP contains some files fetched from the latest BSD release of 00318 * the PolarSSL project (PolarSSL 0.10.1-bsd) for ciphers and encryption 00319 * methods we need for lwIP PPP support. 00320 * 00321 * The PolarSSL files were cleaned to contain only the necessary struct 00322 * fields and functions needed for lwIP. 00323 * 00324 * The PolarSSL API was not changed at all, so if you are already using 00325 * PolarSSL you can choose to skip the compilation of the included PolarSSL 00326 * library into lwIP. 00327 * 00328 * If you are not using the embedded copy you must include external 00329 * libraries into your arch/cc.h port file. 00330 * 00331 * Beware of the stack requirements which can be a lot larger if you are not 00332 * using our cleaned PolarSSL library. 00333 */ 00334 00335 /** 00336 * LWIP_USE_EXTERNAL_POLARSSL: Use external PolarSSL library 00337 */ 00338 #ifndef LWIP_USE_EXTERNAL_POLARSSL 00339 #define LWIP_USE_EXTERNAL_POLARSSL 0 00340 #endif 00341 00342 /** 00343 * LWIP_USE_EXTERNAL_MBEDTLS: Use external mbed TLS library 00344 */ 00345 #ifndef LWIP_USE_EXTERNAL_MBEDTLS 00346 #define LWIP_USE_EXTERNAL_MBEDTLS 0 00347 #endif 00348 00349 /* 00350 * PPP Timeouts 00351 */ 00352 00353 /** 00354 * FSM_DEFTIMEOUT: Timeout time in seconds 00355 */ 00356 #ifndef FSM_DEFTIMEOUT 00357 #define FSM_DEFTIMEOUT 6 00358 #endif 00359 00360 /** 00361 * FSM_DEFMAXTERMREQS: Maximum Terminate-Request transmissions 00362 */ 00363 #ifndef FSM_DEFMAXTERMREQS 00364 #define FSM_DEFMAXTERMREQS 2 00365 #endif 00366 00367 /** 00368 * FSM_DEFMAXCONFREQS: Maximum Configure-Request transmissions 00369 */ 00370 #ifndef FSM_DEFMAXCONFREQS 00371 #define FSM_DEFMAXCONFREQS 10 00372 #endif 00373 00374 /** 00375 * FSM_DEFMAXNAKLOOPS: Maximum number of nak loops 00376 */ 00377 #ifndef FSM_DEFMAXNAKLOOPS 00378 #define FSM_DEFMAXNAKLOOPS 5 00379 #endif 00380 00381 /** 00382 * UPAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req 00383 */ 00384 #ifndef UPAP_DEFTIMEOUT 00385 #define UPAP_DEFTIMEOUT 6 00386 #endif 00387 00388 /** 00389 * UPAP_DEFTRANSMITS: Maximum number of auth-reqs to send 00390 */ 00391 #ifndef UPAP_DEFTRANSMITS 00392 #define UPAP_DEFTRANSMITS 10 00393 #endif 00394 00395 #if PPP_SERVER 00396 /** 00397 * UPAP_DEFREQTIME: Time to wait for auth-req from peer 00398 */ 00399 #ifndef UPAP_DEFREQTIME 00400 #define UPAP_DEFREQTIME 30 00401 #endif 00402 #endif /* PPP_SERVER */ 00403 00404 /** 00405 * CHAP_DEFTIMEOUT: Timeout (seconds) for retransmitting req 00406 */ 00407 #ifndef CHAP_DEFTIMEOUT 00408 #define CHAP_DEFTIMEOUT 6 00409 #endif 00410 00411 /** 00412 * CHAP_DEFTRANSMITS: max # times to send challenge 00413 */ 00414 #ifndef CHAP_DEFTRANSMITS 00415 #define CHAP_DEFTRANSMITS 10 00416 #endif 00417 00418 #if PPP_SERVER 00419 /** 00420 * CHAP_DEFRECHALLENGETIME: If this option is > 0, rechallenge the peer every n seconds 00421 */ 00422 #ifndef CHAP_DEFRECHALLENGETIME 00423 #define CHAP_DEFRECHALLENGETIME 0 00424 #endif 00425 #endif /* PPP_SERVER */ 00426 00427 /** 00428 * EAP_DEFREQTIME: Time to wait for peer request 00429 */ 00430 #ifndef EAP_DEFREQTIME 00431 #define EAP_DEFREQTIME 6 00432 #endif 00433 00434 /** 00435 * EAP_DEFALLOWREQ: max # times to accept requests 00436 */ 00437 #ifndef EAP_DEFALLOWREQ 00438 #define EAP_DEFALLOWREQ 10 00439 #endif 00440 00441 #if PPP_SERVER 00442 /** 00443 * EAP_DEFTIMEOUT: Timeout (seconds) for rexmit 00444 */ 00445 #ifndef EAP_DEFTIMEOUT 00446 #define EAP_DEFTIMEOUT 6 00447 #endif 00448 00449 /** 00450 * EAP_DEFTRANSMITS: max # times to transmit 00451 */ 00452 #ifndef EAP_DEFTRANSMITS 00453 #define EAP_DEFTRANSMITS 10 00454 #endif 00455 #endif /* PPP_SERVER */ 00456 00457 /** 00458 * LCP_DEFLOOPBACKFAIL: Default number of times we receive our magic number from the peer 00459 * before deciding the link is looped-back. 00460 */ 00461 #ifndef LCP_DEFLOOPBACKFAIL 00462 #define LCP_DEFLOOPBACKFAIL 10 00463 #endif 00464 00465 /** 00466 * LCP_ECHOINTERVAL: Interval in seconds between keepalive echo requests, 0 to disable. 00467 */ 00468 #ifndef LCP_ECHOINTERVAL 00469 #define LCP_ECHOINTERVAL 0 00470 #endif 00471 00472 /** 00473 * LCP_MAXECHOFAILS: Number of unanswered echo requests before failure. 00474 */ 00475 #ifndef LCP_MAXECHOFAILS 00476 #define LCP_MAXECHOFAILS 3 00477 #endif 00478 00479 /** 00480 * PPP_MAXIDLEFLAG: Max Xmit idle time (in ms) before resend flag char. 00481 */ 00482 #ifndef PPP_MAXIDLEFLAG 00483 #define PPP_MAXIDLEFLAG 100 00484 #endif 00485 00486 /** 00487 * PPP Packet sizes 00488 */ 00489 00490 /** 00491 * PPP_MRU: Default MRU 00492 */ 00493 #ifndef PPP_MRU 00494 #define PPP_MRU 1500 00495 #endif 00496 00497 /** 00498 * PPP_DEFMRU: Default MRU to try 00499 */ 00500 #ifndef PPP_DEFMRU 00501 #define PPP_DEFMRU 1500 00502 #endif 00503 00504 /** 00505 * PPP_MAXMRU: Normally limit MRU to this (pppd default = 16384) 00506 */ 00507 #ifndef PPP_MAXMRU 00508 #define PPP_MAXMRU 1500 00509 #endif 00510 00511 /** 00512 * PPP_MINMRU: No MRUs below this 00513 */ 00514 #ifndef PPP_MINMRU 00515 #define PPP_MINMRU 128 00516 #endif 00517 00518 /** 00519 * PPPOL2TP_DEFMRU: Default MTU and MRU for L2TP 00520 * Default = 1500 - PPPoE(6) - PPP Protocol(2) - IPv4 header(20) - UDP Header(8) 00521 * - L2TP Header(6) - HDLC Header(2) - PPP Protocol(2) - MPPE Header(2) - PPP Protocol(2) 00522 */ 00523 #if PPPOL2TP_SUPPORT 00524 #ifndef PPPOL2TP_DEFMRU 00525 #define PPPOL2TP_DEFMRU 1450 00526 #endif 00527 #endif /* PPPOL2TP_SUPPORT */ 00528 00529 /** 00530 * MAXNAMELEN: max length of hostname or name for auth 00531 */ 00532 #ifndef MAXNAMELEN 00533 #define MAXNAMELEN 256 00534 #endif 00535 00536 /** 00537 * MAXSECRETLEN: max length of password or secret 00538 */ 00539 #ifndef MAXSECRETLEN 00540 #define MAXSECRETLEN 256 00541 #endif 00542 00543 /* ------------------------------------------------------------------------- */ 00544 00545 /* 00546 * Build triggers for embedded PolarSSL 00547 */ 00548 #if !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS 00549 00550 /* CHAP, EAP, L2TP AUTH and MD5 Random require MD5 support */ 00551 #if CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM 00552 #define LWIP_INCLUDED_POLARSSL_MD5 1 00553 #endif /* CHAP_SUPPORT || EAP_SUPPORT || PPPOL2TP_AUTH_SUPPORT || PPP_MD5_RANDM */ 00554 00555 #if MSCHAP_SUPPORT 00556 00557 /* MSCHAP require MD4 support */ 00558 #define LWIP_INCLUDED_POLARSSL_MD4 1 00559 /* MSCHAP require SHA1 support */ 00560 #define LWIP_INCLUDED_POLARSSL_SHA1 1 00561 /* MSCHAP require DES support */ 00562 #define LWIP_INCLUDED_POLARSSL_DES 1 00563 00564 /* MS-CHAP support is required for MPPE */ 00565 #if MPPE_SUPPORT 00566 /* MPPE require ARC4 support */ 00567 #define LWIP_INCLUDED_POLARSSL_ARC4 1 00568 #endif /* MPPE_SUPPORT */ 00569 00570 #endif /* MSCHAP_SUPPORT */ 00571 00572 #endif /* !LWIP_USE_EXTERNAL_POLARSSL && !LWIP_USE_EXTERNAL_MBEDTLS */ 00573 00574 /* Default value if unset */ 00575 #ifndef LWIP_INCLUDED_POLARSSL_MD4 00576 #define LWIP_INCLUDED_POLARSSL_MD4 0 00577 #endif /* LWIP_INCLUDED_POLARSSL_MD4 */ 00578 #ifndef LWIP_INCLUDED_POLARSSL_MD5 00579 #define LWIP_INCLUDED_POLARSSL_MD5 0 00580 #endif /* LWIP_INCLUDED_POLARSSL_MD5 */ 00581 #ifndef LWIP_INCLUDED_POLARSSL_SHA1 00582 #define LWIP_INCLUDED_POLARSSL_SHA1 0 00583 #endif /* LWIP_INCLUDED_POLARSSL_SHA1 */ 00584 #ifndef LWIP_INCLUDED_POLARSSL_DES 00585 #define LWIP_INCLUDED_POLARSSL_DES 0 00586 #endif /* LWIP_INCLUDED_POLARSSL_DES */ 00587 #ifndef LWIP_INCLUDED_POLARSSL_ARC4 00588 #define LWIP_INCLUDED_POLARSSL_ARC4 0 00589 #endif /* LWIP_INCLUDED_POLARSSL_ARC4 */ 00590 00591 #endif /* PPP_SUPPORT */ 00592 00593 #endif /* LWIP_PPP_OPTS_H */
Generated on Tue Jul 12 2022 13:16:03 by
