History log of /seL4-camkes-master/projects/lwip/src/netif/ppp/ccp.c
Revision Date Author Comments
# 42d50eba 19-Jun-2016 Sylvain Rochet <gradator@gradator.net>

PPP, move protocols initialization from ppp_clear to ppp_new

What protocols init functions are meant to is to be called once to set
the default configuration before user specific configuration is set.

Until now, we reset to the default configuration just before
reconnecting, thus without allowing any time frame to let users change
it. That was fine until one user asked to be able to do that.

This change move protocols init functions calls from ppp_clear to
ppp_new, meaning user configuration is not overwritten anymore.


# c751802f 19-Jun-2016 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, move user configuration from ccp_init to ccp_resetci

ccp_init() is meant to be called once, providing default configuration
before user specific configuration is applied. In pppd user configuration
is set just after all protocol init functions are called, in lwIP we
use protocol reset functions to do that, which is more or less the same.

Therefore, be consistent and move CCP user configuration from ccp_init
to ccp_resetci.


# 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


# 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


# 1b6d6d0d 29-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, removed unnecessary memset()

Everything is cleared in ppp_clear(), we don't need to clear all
structures twice.


# 8fe2f747 26-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, MPPE, issue CCP reset request if synchronization is lost

If MPPE synchronization is lost, it is advised to send a CCP reset
request in order to recover to a clean state.


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

PPP, place print packet debug codenames in ROM


# 42fb74ce 19-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, MPPE, handle CCP Reset-Request and Reset-Ack for MPPE


# ffb10e7a 19-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, added receive and transmit chosen protocols in ccp_flags_set() (renamed ccp_set())

We need to know which methods were chosen when CCP is up, this used to be done
using ccp_test() which we are in the process of removing.

Using non-existing method 0 instead of -1 in CCP for unset method, allowing
type change from s16_t to u8_t for method.


# f94efab6 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, added MPPE user configuration flags


# 4c0af0f7 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, MPPE, reworked MPPE debug, using ppp_pcb metadata


# fc7e327d 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, MSCHAP, CCP, MPPE: reworked key passing from CCP to MPPE

Removed mutiple copies of keys by pre-setting MPPE keys during MSCHAP
negotiation.

Improved MPPE init so we don't need to pass a buffer formatted in a
special way to MPPE, this is necessary for pppd to talk to the kernel,
we don't need that here.


# 867d13b0 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, MPPE: calling mppe_init() in ccp.c instead of using ccp_test()

We don't need this ccp_test() stuff which is used to test if kernel have
the ability to process MPPE packets. Reworked MPPE so we don't need it.


# 40991b93 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, reworked ppp_pcb ccp_localstate and all_rejected fields


# 2a005c2f 18-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, MPPE, moved MPPE global variables from MSCHAP to ppp_pcb


# b553df86 17-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, deflate, BSD compress, predictor 1 & 2 are now optional at compile time


# f753a728 17-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, compile-out a bit more MPPE code if MPPE is disabled


# 489760d2 17-Apr-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, re-added missing ccp_test()

ccp_test() is not only used to test kernel support, but also to set MPPE keys,
we will change that further, but for now, re-add the necessary ccp_test()


# dcde1c2a 26-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, added missing defines from linux/ppp-comp.h to ccp.h


# ad56a115 24-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, moved ccp_test() from ccp_addci() to ccp_resetci()

We don't need to test our available compression protocols that much, we know
what we are going to be able to use in embedded. Even PPPd don't need that.

Checking only in ccp_resetci() is enough, this way we know our cilen size
before ccp_addci() is called. PPPd is designed that *_addci() can use less
bytes than it previously asked in *_cilen(), we prefer to avoid that here.

We actually don't need at all ccp_test() calls, we know what we are
able to support at compile time, we don't need to ask the kernel like
PPPd does. This is just the first step in ccp_test() removal.


# c49fc8db 24-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP: Fix ccp_cilen returning size if both deflate_correct and deflate_draft are enabled

This fixes a bug returning 4 byte less than necessary for the addci buffer
if both deflate_correct and deflate_draft are enabled.


# 9fbe9009 19-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, MPPE, replaced #ifdef MPPE to #if MPPE_SUPPORT


# 59379323 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, various fix if MPPE is enabled


# 794c93b5 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, various compiler warnings fix


# b92ac330 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, updated to our utils.c function name


# 90bbcbf9 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, updated ccp_printpkt() prototype to match other *_printpkt()


# 151995f8 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, updated ANY_COMPRESS() to use ccp_options*


# 611b3c4c 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, commented-in unused global variables used for options


# 1dcd4cc2 18-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, reworked to our ppp_pcb* pointer and ppp_pcb->ccp* data field


# 7174578a 17-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, moved CCP global variables to ppp_pcb (ppp.h)


# 98c6a4e8 17-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, updated FSM state with our FSM state define PPP_FSM_x


# 3bd52891 17-Mar-2015 Sylvain Rochet <gradator@gradator.net>

PPP, CCP, commented-in unused PPP config file parsing


# 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.


# 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


# 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


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

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


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

started the unit to ppp_pcb replacement


# 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!


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

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


# 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


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

added pppmy.h in all .c files to easily find conflicts


# 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.


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

Linux ioctl() gone, ECP support optional, CCP support optional

Removed all the used Linux ioctl(), sys_linux.c is entirely disabled.

Replaced unecessary functions to set up a PPP link to null fonctions,
however all stuff necessary to shutdown a PPP link should be done.

Some utils functions related to I/O files are disabled too.

ECP and CCP support only set PPP attributes into the PPP kernel support,
they are now compile-time options and are disabled by default and
obviously not supported (yet? :p)


# 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


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

Revert "Removed all stuff requiring encryption."

This reverts commit c268c5e07c046eb2cb8e5798a1f3eba7e0ad13c1.

Conflicts:

src/netif/ppp/auth.c
src/netif/ppp/ppp.c
src/netif/ppp/pppmy.c
src/netif/ppp/pppmy.h


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

Removed all stuff requiring encryption.

OpenBSD DES require more than 70 kB of static memory.

The GNU libcrypt DES, for information, require more than 131 kB,
so this is probably the case with all non memory optimised DES.

PolarSSL only required 132 bytes of stack with some kB of .rodata
precomputed tables :-)

I personally don't need MS CHAP v1 or MS CHAP v2, and that was not
supported in the previous PPP port, so there is no regression,
I feel comfortable about removing those hard to port stuff.

If someone want to do the MS CHAP port, he first have to find or
do a small memory footprint DES implementation.


# 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.