History log of /seL4-camkes-master/projects/lwip/src/netif/ppp/lcp.c
Revision Date Author Comments
# 5811948b 07-Aug-2016 Sylvain Rochet <gradator@gradator.net>

PPP: remove PPP_PHASE_MASTER conditions if multilink mode is disabled

PPP_PHASE_MASTER state is only used if multilink mode is enabled. Since
we don't support multilink mode checking for this state only add some
code for no value added at all.

Build-out PPP_PHASE_MASTER state check if multilink mode is disabled.


# 8dc77ef5 22-Jun-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

doxygen updates - include IPv6 in documentation. Exclude include/netif/ppp/polarssl.
Convert TODO -> @todo


# ab989c35 12-May-2016 Axel Lin <axel.lin@ingics.com>

PPP: Use LWIP_ARRAYSIZE at appropriate places

Use LWIP_ARRAYSIZE to simplify the code.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Sylvain Rochet <gradator@gradator.net>
[Sylvain Rochet <gradator@gradator.net>: added missing casts]
Signed-off-by: Sylvain Rochet <gradator@gradator.net>


# 76d25bef 21-Apr-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Work on task #13907 PPP cleanups: Move PPP options from opt.h to dedicated ppp_opts.h file


# 1fef434f 01-Oct-2015 Erik Ekman <erik.ekman@verisure.com>

PPP: Fix shadowing of global declaration

Older compilers (GCC 4.6) don't like variables with the same name as
global functions:

lwip/src/netif/ppp/lcp.c: In function 'lcp_received_echo_reply':
lwip/src/netif/ppp/lcp.c:2685:11: error: declaration of 'magic' shadows a global declaration [-Werror=shadow]
lwip/src/include/netif/ppp/magic.h:101:7: error: shadowed declaration is here [-Werror=shadow]

magic.h contains a function named magic(), so rename the variable.


# 83cddd89 18-Sep-2015 Sylvain Rochet <gradator@gradator.net>

PPP: more const and mixed u_char/char types fixes


# 41ee45d9 09-Sep-2015 Sylvain Rochet <gradator@gradator.net>

PPP: fix constness in PPP related files when PRINTPKT_SUPPORT is enabled


# 29ba3df7 30-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, re-enabled MRU defines in opt.h


# 737a6921 23-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, place print packet debug codenames in ROM


# e86a0a43 28-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, SERVER, set auth configuration before auth

Set LCP wanted options accordingly to the user auth configuration
if peer is required to authenticate itself.


# 8d052795 27-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, moved auth configuration from auth_reset() to lcp_resetci()

Prepare for PPP_SERVER support, we need to move auth configuration before
lcp_allowoptions is copied into lcp_gotoptions. Restore unused
auth_reset() function using pppd original source code.


# c4d1354c 21-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, don't use ppp_ioctl() from PPP core, assign pcb->err_code instead

Removed useless calls to ppp_ioctl(pcb, PPPCTLS_ERRCODE, …), we now assign
pcb->err_code directly instead. ppp_ioctl() is not linked anymore if user
application don't use it.


# 59b659b0 21-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, compile out auth support if none of auth protocols are enabled

Added macro PPP_AUTH_SUPPORT, if none of auth protocols are enabled
(PAP, CHAP, EAP) we reduce PPP memory usage by compiling out all
struct fields and source code used for authentication.


# 5e73068e 18-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, Removed (*datainput) from struct protent if not used

Data input is only used by CCP and ECP, which are not supported at this time,
remove this entry from struct protent to save some flash.


# b71d9ce3 18-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CORE, Removed useless enabled_flag from struct protent

Our struct protent are const everywhere to save RAM, enable/disable
flag on a const struct is useless, saving some flash, removed.


# baaa2592 16-Feb-2015 Sylvain Rochet <gradator@gradator.net>

PPP, PPPoS, removed xmit_accm, almost duplicate of out_accm

xmit_accm was meant to be a user configurable asyncmap, it was actually
broken since the introduction of ppp_new by the way we now reset the PPP
initial state, looks like no one until now is needing it anymore. If
necessary we will reintroduce this feature later properly instead of a
dirty and ugly hack into the PPP code.


# 2b3e0201 24-Dec-2014 Sylvain Rochet <gradator@gradator.net>

PPP, fixed some compiler warnings

Using -Wall -pedantic -Wparentheses -Wsequence-point
-Wswitch-default -Wextra -Wundef -Wshadow -Wpointer-arith
-Wbad-function-cast -Wc++-compat -Wwrite-strings -Wold-style-definition
-Wmissing-prototypes -Wredundant-decls -Wnested-externs -Wno-address


# da19974e 12-Oct-2014 Sylvain Rochet <gradator@gradator.net>

fixed bug #43235, cleared compiler warnings when using gcc with -Wextra option


# 4fda366b 30-Apr-2013 Sylvain Rochet <gradator@gradator.net>

PPP, added PPP notify phase support

PPP notify phase support, using compile-time PPP_NOTIFY_PHASE macro.

This can be used for example to set a LED pattern depending on the
current phase of the PPP session.

Callback example:

static void ppp_notify_phase_cb(ppp_pcb *pcb, u8_t phase, void *ctx) {
switch(phase) {
case PPP_PHASE_DEAD: /* Kept off */
case PPP_PHASE_MASTER:
/* LED Off */
break;
case PPP_PHASE_INITIALIZE: /* Session opened */
/* LED FastBlink */
break;
case PPP_PHASE_RUNNING: /* Session running */
/* LED On */
break;
default:
/* LED SlowBlink */
}
}


# 2350d941 26-Apr-2013 Sylvain Rochet <gradator@gradator.net>

PPP, added PPP_USE_PBUF_RAM compile time option

pbuf_type PPP is using for LCP, PAP, CHAP, EAP, IPCP and IP6CP packets.

Memory allocated must be single buffered for PPP to works, it requires pbuf
that are not going to be chained when allocated. This requires setting
PBUF_POOL_BUFSIZE to at least 512 bytes, which is quite huge for small systems.

Setting PPP_USE_PBUF_RAM to 1 makes PPP use memory from heap where continuous
buffers are required, allowing you to use a smaller PBUF_POOL_BUFSIZE.


# 2fa7e003 31-Jan-2013 Sylvain Rochet <gradator@gradator.net>

PPP, fixed LCP delayed up feature

LCP is stealing a bit from fsm->flags struct member for LCP delayed up feature.
Bit stealed used to be the 9th bit (0x100) but fsm->flags was reduced to u8_t to save memory,
we are now stealing the 8th bit (0x80).


# de137520 04-Jan-2013 Sylvain Rochet <gradator@gradator.net>

PPP, "try" variable used in LCP might conflict with some buggy C++ compiler


# 13ba8810 04-Jan-2013 Sylvain Rochet <gradator@gradator.net>

PPP, fixed one more IAR warnings


# e5a554f0 13-Oct-2012 Sylvain Rochet <gradator@gradator.net>

PPP, adding const pragma to FSM callbacks, saving about 350 bytes in .data segment


# 9e4aa792 13-Oct-2012 Sylvain Rochet <gradator@gradator.net>

PPP, adding const pragma to struct protent, saving about 200 bytes in .data segment


# 0eb83f6e 12-Oct-2012 Mark Lakata <mlakata@gener8.net>

PPP, IAR EWARM won't compile ppp-new due to keyword clash

The word "class" is reserved in IAR's EWARM compiler since it looks like c++.
This causes a failure to compile in the lcp code.

Arguably it is a bug in the compiler, but it is easy to work around with a
name change in the lcp.[ch] code. I fixed it by changing "class" to "class_".


# 045ee534 26-Aug-2012 Sylvain Rochet <gradator@gradator.net>

PPP, using PBUF_POOL instead of PBUF_RAM pbufs for PPP negociation packets

PPP stack does not handle chained pbuf, but PPP negociation packets
are at most ~40 bytes long, so we are only checking if the payload
can fit into the allocated pbuf (p->tot_len == p->len).


# e9b29184 21-Aug-2012 Sylvain Rochet <gradator@gradator.net>

PPP, renamed all functions using common names in utils.c that can conflict with lwIP user code during link operation


# 1ddebcc8 18-Aug-2012 Sylvain Rochet <gradator@gradator.net>

Moved PPP headers into include/netif/ppp/, fixing bug #37040.


# 4ea5c1d9 20-Jul-2012 Sylvain Rochet <gradator@gradator.net>

improved persist mode, we now clear everything we can in the PPP control block structure, ensuring we start a new session from a clean state


# b4df26a7 09-Jul-2012 Sylvain Rochet <gradator@gradator.net>

some buggy compiler get confused with duplicated labels used in enum tcp_state and fsm.h, prepending PPP's ones


# be9b23a0 06-Jul-2012 Sylvain Rochet <gradator@gradator.net>

fixed LCP Echo Request/Reply feature


# 90faecd8 03-Jul-2012 Sylvain Rochet <gradator@gradator.net>

replaced u_int{8,16,32}_t to lwIP u{8,16,32}_t types

added padding to compiler generated bitfield, this is seen as best practice,
maybe it helps buggy compilers


# 25c62780 22-Jun-2012 Sylvain Rochet <gradator@gradator.net>

fixed some endianess issues with PPPoS


# 6a11134a 22-Jun-2012 Sylvain Rochet <gradator@gradator.net>

fixed PPPoS suppport compilation


# e3309834 19-Jun-2012 Sylvain Rochet <gradator@gradator.net>

improved lcp_options structure size


# c51c55b7 19-Jun-2012 Sylvain Rochet <gradator@gradator.net>

LCP and IPCP variable size improved


# 26250f19 19-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed pcb->chap_mdtype_all


# eadd56a3 19-Jun-2012 Sylvain Rochet <gradator@gradator.net>

replaced exit code (pcb->status) with ppp_ioctl()


# a44b56dc 19-Jun-2012 Sylvain Rochet <gradator@gradator.net>

pcb->nak_buffer replaced with a pbuf


# be2d3b58 16-Jun-2012 Sylvain Rochet <gradator@gradator.net>

moved back temporarily moved structure definitions from various headers to ppp.h during unit to ppp_pcb transition


# cce5fbc7 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

fixed PPPoS xmit_accm ppp_pcb variable access


# 82a4d4ec 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

LCP global variables moved to ppp_pcb as well as input/output buffers


# 70814762 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

FSM global variables moved to ppp_pcb


# f10ddea3 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed fsm->unit


# 4a8ff6d8 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

protent prototype switched from unit to ppp_pcb


# 4b7e3af7 15-Jun-2012 Sylvain Rochet <gradator@gradator.net>

IPCP and LCP structures moved to ppp_pcb


# 19238a91 14-Jun-2012 Sylvain Rochet <gradator@gradator.net>

global variables removed from chap support


# 51bfac71 13-Jun-2012 Sylvain Rochet <gradator@gradator.net>

auth.c functions now use ppp_pcb* as first argument


# 6e2722a6 10-Jun-2012 Sylvain Rochet <gradator@gradator.net>

started the unit to ppp_pcb replacement


# fed76f29 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

added missing EAP_SUPPORT macro


# 444646b6 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

renamed ppp_control to ppp_pcb, replaced unit number to ppp_pcb in all ppp.h declared functions


# 8bd508a7 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

moved ppp_settings to ppp_control, improved PPP API to really allow multiple PPP sessions


# f94ed922 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

moved exit status global variable to ppp_control


# 7a57d28d 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

moved listen_time global variable to ppp_settings


# 42f672d8 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

phase global variable moved to ppp_control structure


# 552589f0 09-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed multilink option when multilink support is not compiled


# dc0e15a7 04-Jun-2012 Sylvain Rochet <gradator@gradator.net>

we should reduce nak_buffer[] size


# c549dba7 04-Jun-2012 Sylvain Rochet <gradator@gradator.net>

re-enabled LCP echo interval / echo fail


# bea45b3c 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

cleared IDE warnings


# 093c7b43 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

cleaned depreacted __P() and __V() macros, removed the legacy varargs.h header


# 3bad9ff5 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

ppp_impl.h is back!


# 0663421d 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

re-added PPPoS code from the previous port, it builds, maybe it works


# 2f5f86d6 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

don't build any PPP file if PPP support is disabled


# 05817aa3 03-Jun-2012 Sylvain Rochet <gradator@gradator.net>

LQR (Link Quality Report) support is now optional


# e1261c96 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed all system headers except the strict minimum


# 5531bca0 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

make it build with avr32-gcc

Disabled Unix-centric non necessary include files

Changed some include paths

Removed all printf() I put there and there for debugging.

It builds with the avr32 gcc toolchain, meaning we removed
all the pppd code requiring a unix base.


# 44c2a0a7 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

fixed most PPP compilation warnings with -pedantic


# d143acfc 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

fixed all PPP compilation warnings with -Wall


# 86ebc8e4 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed pppd.h and ppp.c, renamed pppmy.c to ppp.c and pppmy.h to ppp.h


# 29c5ee6b 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

pppd.h disabled, renamed MAX() to LWIP_MAX()


# 922d3716 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

PPP statistics optional (non working) compile time option added


# 4158222e 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

moved new_phase() to our own implementation, re-enabled new_phase() support


# 6727c434 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

PPP notifier support is now a compile time option

However, as of now, the notify() function is empty, so it requires
some work if someone want to use it.

The notify feature allows someone to be able to follow the
state of the PPP stack (auth ok, ipcp up, initialise, ...), this
is like the callback feature set by pppOverEthernetOpen() and others,
but with more details.


# 0f1c18e6 02-Jun-2012 Sylvain Rochet <gradator@gradator.net>

PPP interval timeout support disabled (using lwIP timeout support), protocol_name() moved to our PPP impl and disabled by default


# 6c908ac7 01-Jun-2012 Sylvain Rochet <gradator@gradator.net>

removed more protent fields only used by print packets functions


# 2c4bd716 01-Jun-2012 Sylvain Rochet <gradator@gradator.net>

print packet functions are now optional


# 8b866bea 01-Jun-2012 Sylvain Rochet <gradator@gradator.net>

demand support is now a compile-time option

Obviously, it requires some wiring to know if there is new activity
on a not-yet established PPP interface with the default route
already set.

I don't think any lwIP user will ever need that, all should know
when to bring the link up and down.


# 4704efa3 30-May-2012 Sylvain Rochet <gradator@gradator.net>

PAP support is now an optional compile-time feature


# 339925e8 23-May-2012 Sylvain Rochet <gradator@gradator.net>

CHAP support is now an optional compile-time feature


# 28360a7f 23-May-2012 Sylvain Rochet <gradator@gradator.net>

MSCHAP is now an optional compile-time feature


# 7736cdae 22-May-2012 Sylvain Rochet <gradator@gradator.net>

replaced BCOPY to lwip-MEMCPY


# 42827cde 22-May-2012 Sylvain Rochet <gradator@gradator.net>

more and more ppp options removal


# b88dad40 21-May-2012 Sylvain Rochet <gradator@gradator.net>

disabled almost all PPP options strings and support as well as useless file-based auth code


# 795d5807 20-May-2012 Sylvain Rochet <gradator@gradator.net>

EAP support is now optional


# 6773326d 17-May-2012 Sylvain Rochet <gradator@gradator.net>

replaced MIN to LWIP_MIN


# 8834a8b2 17-May-2012 Sylvain Rochet <gradator@gradator.net>

using UNTIMEOUT macro instead of timeout()


# bea796eb 17-May-2012 Sylvain Rochet <gradator@gradator.net>

pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup


# 54d5ee55 17-May-2012 Sylvain Rochet <gradator@gradator.net>

added LCP adaptive echo from Debian patches, I like the idea


# eb75ae05 15-May-2012 Sylvain Rochet <gradator@gradator.net>

Early development stage of an attempt to port PPPd 2.4.5 to lwIP.

PPPoE works, PPPoS code is not ported at all.

I am using the RP-PPPoE server to do my tests using the following
configuration:

$ cat /etc/ppp/pppoe-server-options
debug
login
lcp-echo-interval 10
lcp-echo-failure 10
ms-dns 192.168.4.130
ms-dns 192.168.4.231
netmask 255.255.255.0
defaultroute
noipdefault
usepeerdns

$ cat /etc/ppp/allip
192.168.4.1-200

$ pppoe-server -C isp -L 192.168.4.254 -p /etc/ppp/allip -I tap0

Plus the usual auth-lines in /etc/ppp/pap-secrets and
/etc/ppp/chap-secrets .

And the unix port minimal "echo" project slightly modified to use
the "tcpip" API, so with threads, which I am going to commit with
NO_SYS as a -Dmacro.

It still use some of the linux'ism, such as syslog() and crypt(),

I do not want to drop the syslog() supports at the moment, this is
pretty useful to debug, and we may just convert the way the syslog() is
done to provide a trace feature to our PPP users, as a compile-time
option.


# d6227aec 11-Sep-2011 Simon Goldschmidt <goldsimon@gmx.de>

splitted ppp.h to an internal and external header file to get a clear separation of which functions an application or port may use (task #11281)


# 1551bb70 11-May-2010 goldsimon <goldsimon>

Fixed bug #29855: PPP: Backport a bugfix in LcpSendEchoRequest from pppd


# 8d9fa634 22-Feb-2010 goldsimon <goldsimon>

PPP: use LWIP_DEBUGF() instead of ppp_trace()


# ea78d69c 22-Feb-2010 goldsimon <goldsimon>

Added debug output and missing casts


# 9c41e1ee 29-Jan-2010 goldsimon <goldsimon>

Replaced tabs with spaces


# 61e5301d 24-Jan-2010 goldsimon <goldsimon>

bug #26523: Compiler Warnings


# 972ca9e6 18-Jan-2010 goldsimon <goldsimon>

reorganised PPP sourcecode to 2.3.11 including some bugfix backports from 2.4.x.


# 1d45aa8d 31-Dec-2009 goldsimon <goldsimon>

Reorganised PPP source code from ucip structure to pppd structure to easily compare our code against the pppd code (around v2.3.1)


# fc2d28b8 19-Dec-2007 fbernon <fbernon>

Minor changes in PPP (coding style, tabs, idents...)


# e5a98b6a 30-Nov-2007 fbernon <fbernon>

Minor changes: fix some problems with PPPoE include path, add small comments in slip.c (unusual octal values?)


# b714cd5f 29-Nov-2007 fbernon <fbernon>

First fix for bug #21664 "PPP code is broken".


# 931fcfd0 16-Aug-2007 marcbou <marcbou>

Added PPPoE support and various PPP improvements.


# 7932bf48 11-Apr-2007 goldsimon <goldsimon>

Ongoing fix to patch #5822: converted more statements like (void)arg; into LWIP_UNUSED_ARG(arg);


# 7599985a 10-Oct-2005 christiaans <christiaans>

Some build fixes for OpenBSD.


# 45e36d9f 04-Jul-2004 likewise <likewise>

Dependencies on C library memset() etc., so include <string.h>.


# 26d9b28f 02-Jun-2003 jani <jani>

sio and PPP updates from Marc


# ff63557d 30-May-2003 jani <jani>

Cleanups in PPP: C++ comments removed, make it compile for unixsim too. Does not work yet only compiles


# 31776e23 27-May-2003 jani <jani>

add PPP stack from Marc. Work in progress