106 Commits

Author SHA1 Message Date
Sylvain Rochet
44b527415f PPP, slight API change, great code factorisation
Created new ppp_over_X_create() functions which only prepare the PPP session without starting it
Removed ppp_reopen() and all of its sub ppp_over_X_reopen()
Removed PPPoL2TP reconnect() function, merged to connect()
Added ppp_open() able to start or restart any session
2013-04-22 23:58:51 +02:00
Sylvain Rochet
bd3ade31fa PPP, added define for u_long, u_int, u_short, u_char for compilers or toolchains which don't have them 2013-04-22 21:16:02 +02:00
Sylvain Rochet
d03d2e6d3d PPP, added ppp_addrs() macro to get the pointer of the ppp->addrs struct 2013-04-22 21:09:28 +02:00
Sylvain Rochet
6751ac4970 PPP, moved FSM configuration to ppp_settings struct 2012-12-09 22:25:28 +01:00
Sylvain Rochet
6764957d06 PPP, moved EAP configuration to ppp_settings struct 2012-12-09 21:45:14 +01:00
Sylvain Rochet
c719ba7bf3 PPP, moved PAP configuration to ppp_settings struct 2012-12-09 21:22:19 +01:00
Sylvain Rochet
31d7293b17 PPP, moved EAP timeouts and max requests default values to opt.h 2012-12-09 20:40:41 +01:00
Sylvain Rochet
defef2222a PPP, improved PAP and CHAP timeout/request/maxrequests configuration values 2012-12-09 20:24:22 +01:00
Sylvain Rochet
63459f65fb PPP, moved DEFLOOPBACKFAIL from ppp/lcp.h to lwip/opt.h 2012-12-09 19:28:53 +01:00
Sylvain Rochet
c68e1ceb64 PPP, using timeouts values defined in opt.h instead of values defined in PPP headers or statically assigned values 2012-12-09 18:42:06 +01:00
Sylvain Rochet
7f97e354b4 PPP, switched chap_digests linked list to a const table in .rodata/flash, saving about 100 bytes in .data segment if chap(md5) and mschap is enabled 2012-10-14 02:04:36 +02:00
Sylvain Rochet
e5a554f0b5 PPP, adding const pragma to FSM callbacks, saving about 350 bytes in .data segment 2012-10-13 18:54:25 +02:00
Sylvain Rochet
9e4aa79278 PPP, adding const pragma to struct protent, saving about 200 bytes in .data segment 2012-10-13 18:38:18 +02:00
Mark Lakata
0eb83f6ee6 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_".
2012-10-12 20:17:40 +02:00
Sylvain Rochet
e81f092520 PPP, changed all the code enclosed between PPP_SERVER #if macro to our PPP PCB structure, making it easier to support PPP server in the future 2012-09-27 23:53:20 +02:00
Sylvain Rochet
af56eebc6a PPP, cleaned MTU,MRU variables 2012-09-01 19:44:43 +02:00
Sylvain Rochet
fbbde125d9 PPP, removed unnecessary ethif from ppp_pcb 2012-09-01 15:05:21 +02:00
Sylvain Rochet
dbaefd6126 PPP, cleaned persist and holdoff features 2012-09-01 14:43:31 +02:00
Sylvain Rochet
7920b6e163 PPP, don't allocate twice struct eth_hdr per PPPoE pbuf 2012-08-25 16:21:58 +02:00
Sylvain Rochet
e9b29184d0 PPP, renamed all functions using common names in utils.c that can conflict with lwIP user code during link operation 2012-08-21 20:21:38 +02:00
Sylvain Rochet
0d02b8d1f6 added <stdlib.h> to ppp_impl.h, some PPP modules are using strtol() 2012-08-21 20:03:57 +02:00
Sylvain Rochet
98c0fcc659 Added <string.h> header to ppp_impl.h, this appears to be required, found out by Ivan Delamer. 2012-08-18 22:43:23 +02:00
Sylvain Rochet
1ddebcc862 Moved PPP headers into include/netif/ppp/, fixing bug #37040. 2012-08-18 22:40:19 +02:00
Sylvain Rochet
c58c27ed8b removed time-based PPP phase state machine hacks from PPPoE dans PPPoL2TP
Our PPP phase state machine is now clean, we can safely remove time based
hacks in PPPoE dans PPPoL2TP.
2012-07-24 22:50:17 +02:00
Sylvain Rochet
3c122117fc improved PPP API, added ppp_reopen()
This is now the user choice to re-establish the session in the link status callback
by either calling the ppp_reopen() to re-establish or ppp_delete() to free the PPP
control block. Without user intervention, the PPP control block now stay in the dead
phase, allowing the user to re-establish or delete the control block later.
2012-07-22 20:53:54 +02:00
Sylvain Rochet
91af8878e1 saved some bytes from PPPoE control block, improved PADI retries 2012-07-15 15:07:07 +02:00
Sylvain Rochet
78565026ac L2TP output netif is now selectable, making it useful to select a default route for the L2TP tunnel, in case the default interface is set to the L2TP PPP interface 2012-07-12 01:11:08 +02:00
Sylvain Rochet
de6be743c6 added holdoff support for PPPoE and PPPoL2TP when persist mode is used 2012-07-11 23:50:33 +02:00
Sylvain Rochet
f534e80c71 added L2TPv2 (PPP over L2TP, a.k.a. UDP tunnels) support
Supported:
 - L2TPv2 (PPP over L2TP, a.k.a. UDP tunnels)
 - LAC

 Not supported:
 - LNS (require PPP server support)
 - L2TPv3 ethernet pseudowires
 - L2TPv3 VLAN pseudowire
 - L2TPv3 PPP pseudowires
 - L2TPv3 IP encapsulation
 - L2TPv3 IP pseudowire
 - L2TP tunnel switching - http://tools.ietf.org/html/draft-ietf-l2tpext-tunnel-switching-08
 - Multiple tunnels per UDP socket, as well as multiple sessions per tunnel
 - Hidden AVPs
2012-07-09 23:25:32 +02:00
Sylvain Rochet
336ba8f419 pppoe now have access to the ppp_pcb structure, removed "persist" option copy 2012-06-10 01:08:37 +02:00
Sylvain Rochet
5abdc99f3e no more PPP unit number in PPPoE, now using ppp_pcb 2012-06-10 01:00:50 +02:00
Sylvain Rochet
a9ac45c5f0 added PPPoE persist support (don't timeout sending PADI packets) 2012-06-07 01:48:12 +02:00
Sylvain Rochet
7ef99ee6f3 added a persist option (enabled by default for now until we add a way for users to pass a ppp_settings structure)
improved PPPoE state machine and added persist mode support
2012-06-07 00:46:19 +02:00
Sylvain Rochet
e44aada634 improved PPPoE callback with state values, so that PPP know exactly what is happening on the PPPoE side 2012-06-06 23:42:20 +02:00
Sylvain Rochet
2e227f868b PPPoE is now guessing its MTU from the underlying netif MTU (in most cases 1500 minus 8 = 1492, which is the most common PPPoE MTU) 2012-06-05 22:22:35 +02:00
goldsimon
08b497faea fixed bug #34684: Clear the arp table cache when netif is brought down 2011-11-22 21:44:28 +01:00
goldsimon
3d1a306518 SLIP netif: add support for multiple input strategies (threaded, polling, RX from ISR) 2011-10-21 22:25:44 +02:00
goldsimon
4bfbe7ebeb ... and finally, we got a first working version of a dual-stack lwIP runnin IPv4 and IPv6 in parallel - big thanks to Ivan Delamer! (this is work in progress, so please beware, test a lot and report problems!) 2011-05-17 19:35:14 +00:00
goldsimon
0885555521 Fixed broken VLAN support. 2011-03-29 18:56:26 +00:00
goldsimon
856ccb5bb7 Added missing U/UL modifiers to fix 16-bit-arch portability. 2011-02-18 13:31:28 +00:00
goldsimon
25f33c8444 struct etharp_hdr: split _hwlen_protolen into two u8_t's to prevent using htons on little-endian platforms 2010-05-16 16:26:12 +00:00
goldsimon
5d0785e47a PPPoE now uses its own MEMP pool instead of the heap (moved struct pppoe_softc from ppp_oe.c to ppp_oe.h) 2010-05-16 14:34:16 +00:00
goldsimon
d656e9f28e Added option LWIP_ARP_FILTER_NETIF to use multiple IPs on one hardware interface (by using multiple netifs, each with its own IP) 2010-05-10 14:10:46 +00:00
goldsimon
72c580236e Create overridable macros for copying 2-byte-aligned IP addresses and MAC addresses 2010-04-29 04:57:31 +00:00
goldsimon
5fd410db4b Added support for static ARP table entries (added option ETHARP_SUPPORT_STATIC_ENTRIES) (+ added test); refactored the etharp code a bit 2010-03-20 11:45:25 +00:00
goldsimon
4e764017c1 Fixed bug #29148 (Incorrect PBUF_POOL_BUFSIZE for ports where ETH_PAD_SIZE > 0) by moving definition of ETH_PAD_SIZE to opt.h and basing PBUF_LINK_HLEN on it. 2010-03-14 10:16:43 +00:00
goldsimon
4c9fe60693 Fixed ARP input processing: only add a new entry if a request was directed as us (RFC 826, Packet Reception), otherwise only update existing entries; internalized some functions 2010-02-14 18:08:16 +00:00
goldsimon
077caac76d task #10153 (Integrate loopif into netif.c) - loopif does not have to be created by the port any more, just define LWIP_HAVE_LOOPIF to 1. 2010-02-09 16:01:24 +00:00
goldsimon
5d360a6711 Replaced struct ip_addr by typedef ip_addr_t to make changing the actual implementation behind the typedef easier. 2010-02-04 18:47:44 +00:00
goldsimon
1dd8300e69 Added comments 2010-01-29 14:41:54 +00:00