Sylvain Rochet
985de035bc
PPP, CORE, now using const callbacks struct from lower level protocols
...
Saving some RAM by using callbacks struct in rodata for required
callbacks called by PPP core to PPP low level protocols.
2015-02-20 00:40:44 +01:00
Sylvain Rochet
2e40ceaaa4
CORE, enabling only PPPoL2TP is also a valid choice
2015-02-20 00:40:44 +01:00
Ivan Delamer
02a797f9f9
Modified netif flag values.
2015-02-19 16:25:30 -07:00
Ivan Delamer
b938154f6b
Removed unused netif flag for DHCP
2015-02-19 16:22:19 -07:00
Ivan Delamer
e312ebcb57
Removed unused netif flag for point to point connections
2015-02-19 16:19:29 -07:00
Sylvain Rochet
02cf50063e
PPP, PPPoX, added warnings about functions in headers which should not be called from lwIP user application
2015-02-18 23:14:30 +01:00
Sylvain Rochet
f511bec26c
PPP, PPPoS, only check PPPoS PCB pointer if PPPoS is not the only enabled lower protocol
...
We only need to keep track of existing PPPoS interfaces if PPPoS
is not the only enabled protocol.
PPP CORE does not have callbacks pointers for all PPPoS callbacks
which should actually be required for PPPoS (VJ config, asyncmap, ...),
there is too much callbacks to create and PPPoS must be kept light,
especially for users who are only using PPPoS.
But there is a drawback, PPP CORE does not know which
lower protocols it is talking to thanks to the abstraction,
therefore if PPPoS is enabled as well as PPPoE or PPPoL2TP there
might be situation where PPP CORE calls pppos_ config functions
on interfaces which are NOT PPPoS one. This is very unlikely to
happen because protocols not supported by PPPoE or PPPoL2TP are
disabled at LCP/IPCP negotiation but we are better safe than sorry.
So we check if passed PPP pointer to PPPoS configuration functions
is a PPPoS interface by checking against a linked list of existing
PPPoS interfaces.
2015-02-18 23:14:30 +01:00
Sylvain Rochet
9f93c16bbf
PPP, CORE, beautified auth protocols debug
2015-02-18 23:14:29 +01:00
Sylvain Rochet
892e75ca92
PPP, CORE, removed useless include of chap-new.h
2015-02-18 23:14:29 +01:00
Sylvain Rochet
5e73068e09
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.
2015-02-18 23:14:29 +01:00
Sylvain Rochet
b71d9ce3f6
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.
2015-02-18 23:14:29 +01:00
sg
730529353d
fixed bug #37958 "netconn API doesn't handle correctly connections half-closed by peer"
2015-02-18 22:21:26 +01:00
sg
101f57d5e0
tcp_alloc() prefers killing CLOSING/LAST_ACK over active connections (see bug #39565 ) (tcp_kill_prio(): back to old implementation)
2015-02-18 21:30:45 +01:00
sg
2cfc9e286e
"Not connected" shouldn't be fatal (as opposed to "closed")
2015-02-18 20:39:20 +01:00
sg
998ed99288
Fixed select not reporting received FIN as 'readable' in certain rare cases (bug #43779 : select(), close(), and TCP retransmission error)
2015-02-18 20:38:42 +01:00
goldsimon
9048a7f021
fixed compiler warning in dhcp.c
2015-02-18 09:02:37 +01:00
Sylvain Rochet
1c91bb5a20
PPP, PPPoS, fixed warnings with PPPDEBUG disabled
2015-02-18 00:59:27 +01:00
Sylvain Rochet
b957a81ea5
PPP, modified CHANGELOG about the previous large PPP rework
...
Done!, this is way better than before, I had this rework in mind
for a couple of years and I finally found the time to do it :-)
2015-02-17 23:25:10 +01:00
Sylvain Rochet
19fdeae4ba
PPP, chained returns up to ppp_free()
...
ppp_free() now returns lower level protocol return value if something failed.
2015-02-17 23:22:15 +01:00
Sylvain Rochet
50ecd2c12c
PPP, CORE, removed useless st variable in ppp_close()
...
Code cleaning.
2015-02-17 23:22:15 +01:00
Sylvain Rochet
07f9212799
PPP, chained returns up to ppp_open()
...
ppp_open() now returns lower level protocol return value if something failed.
2015-02-17 23:22:15 +01:00
Sylvain Rochet
8a8cba75a2
PPP, lower protocols, chained returns from local functions to callback caller
...
PPPoS,PPPoE,PPPoL2TP functions using non-void returns are now propagated
to callback caller (PPP core).
2015-02-17 23:22:15 +01:00
Sylvain Rochet
1ae3808e13
PPP, CORE, prepared for lower protocols callbacks returning state
...
Until now, callbacks used void return, preparing callbacks to return
PPPERR_ status.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
ee2936ffbf
PPP, all protocols, uniformised naming
...
Uniformised fonction naming between and inside PPPoS, PPPoE, PPPoL2TP.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
5b29f1cdec
PPP, CORE, Fixed warning with PPP_PROTOCOLNAME enabled
...
lwip/src/netif/ppp/ppp.c: In function ‘ppp_input’:
lwip/src/netif/ppp/ppp.c:769:5: warning: ISO C90 forbids mixed declarations and code [-Wpedantic]
const char *pname = protocol_name(protocol);
^
2015-02-17 23:22:14 +01:00
Sylvain Rochet
bce29ac353
PPP, CORE, code cleaning
...
Reordered functions in the order they are declared in headers.
Removed useless ppp_link_down() function.
Merged ppp_stop() and ppp_close().
Merged ppp_hup() and ppp_sighup().
2015-02-17 23:22:14 +01:00
Sylvain Rochet
f7584fa883
PPP, CORE, fixed callbacks return value
...
Fixed return value in case of abnormal termination.
Set pcb->err_code in case of failed setup link.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
18074ff98f
PPP, PPPoE, improved removal from linked list
...
Replaced naive link list removal code to a more clever one.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
4ad60b477c
PPP, PPPoS, structure size optimisation
...
Reordered PPPoS structure so there is no alignment hole for 32 and 64 bits
systems. Reduced types which were too large.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
69469496e2
PPP, PPPoS, moved out_accm from PPP core to PPPoS
...
Last PPPoS variable in PPP core moved to PPPoS.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
baaa2592a6
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.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
ecb8aa6fc1
PPP, PPPoS, merged ppp(os)_pcb_rx to pppos_pcb
...
Merged ppp(os)_pcb_rx to pppos_pcb, saved 8 bytes of pointers
and unecessary init steps.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
34210901bf
PPP, PPPoS, moved ppp.rx to pppos.rx
...
PPP rx control block moved to PPPoS
2015-02-17 23:22:14 +01:00
Sylvain Rochet
7132893863
PPP, PPPoS, re-enabled PPPCTLG_FD
...
Found a fine way to get PPP fd without making this call crash for for PPPoE
or PPPoL2TP.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
cfe04d4453
PPP, PPPoS, using PPPoS PCB pointer on VJ and pppos_ configuration functions
...
Slightly more consistent this way, and prevent using link_ctx_cb pointer
from PPPoS protocol file.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
f98f2890f3
PPP, PPPoS, check if PPPoS configuration functions are used on PPPoS
...
We don't have callbacks which can be set or cleared for PPPoS
configuration, there is too much callbacks to create and PPPoS must be
kept light, therefore PPPoS functions can be called when PPP core
configure a PPPoE or PPPoL2TP interface, this is very unlikely to
happens because protocols not supported by PPPoE or PPPoL2TP are
disabled at LCP/IPCP negotiation but being safe is still better.
Check if passed PPP pointer to PPPoS configuration functions is a PPPoS
interface by using a linked list of exiting PPPoS interfaces.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
d93c21349f
PPP, PPPoS, fixed build with PPP_FCS_TABLE=1
...
Oops, I managed to break builds with PPP_FCS_TABLE=1, fixed.
2015-02-17 23:22:14 +01:00
Sylvain Rochet
9358dbbd99
PPP, PPPoS, various static and const added
...
ppp_get_fcs() is now static, const modifier added on ppp_accm_mask
2015-02-17 23:22:13 +01:00
Sylvain Rochet
2b9d304816
PPP, PPPoS, renamed *sc pointer to *pppos, renamed *pcb pointers to *pppos and *ppp
...
It was a bit confusing and error prone having *pcb pointers for both
ppp_pcb* and pppos_pcb*, fixed confusion with a strict naming for both.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
e6465a6f44
PPP, PPPoS, moved VJ from PPP core to PPPoS
...
VJ is only available for PPPoS, moved VJ from PPP CORE to PPPoS.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
4aa9244b92
PPP, PPPoS moved fd from ppp_pcb to pppos_pcb
...
Moved fd from ppp_pcb to pppos_pcb.
However PPP ioctl PPPCTLG_FD is temporarily disabled until I found a
better solution.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
1ac4d1b793
PPP, PPPoS needs vj.h
2015-02-17 23:22:13 +01:00
Sylvain Rochet
ea205f2fcd
PPP, add PPPoS CB for PPPoS private data
...
Created a new PPPoS CB going to have PPPoS private data, so allocating a
PPPoE or a PPPoL2TP interface does not allocate as well PPPoS variables.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
9c15ffbb74
PPP: Moved PPPoS from ppp.c to pppos.c
...
Started removing from PPP core most of low level protocol PPPoS
handling to separate files, using the new low level PPP callbacks.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
09b4485870
PPP, generalized callbacks calls from PPP core, removed all PPPoE and PPPoL2TP references
...
Almost there, removed all PPPoE and PPPoL2TP references from PPP core,
using the generic callbacks interface everywhere.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
19282d6d6c
PPP, moved low level protocol connect init to low level protocol files
...
Low level protocol init machine state does not belong to PPP core,
moved those init to respective low level protocol files.
2015-02-17 23:22:13 +01:00
Sylvain Rochet
ee85aaccd2
PPP, removed low level create functions from PPP core
...
ppp_over_ethernet_create() moved from ppp.c to pppoe.c
ppp_over_l2tp_create() moved from ppp.c to pppol2tp.c
2015-02-17 23:22:13 +01:00
Sylvain Rochet
0afc34f6fc
PPP, moved ppp_write and ppp_netif_output low level protocols functions to respective low level protocol files
...
Moved ppp_write_over_ethernet() and ppp_netif_output_over_ethernet() to pppoe.c
Moved ppp_write_over_l2tp() and ppp_netif_output_over_l2tp() to pppol2tp.c
2015-02-17 23:22:13 +01:00
Sylvain Rochet
45bfccfddc
PPP, prepare new callbacks for low level protocols
...
New callbacks: write and netif_output
2015-02-17 23:22:13 +01:00
Sylvain Rochet
f8501478f6
PPP: prepared callbacks from PPP core to low level protocols
...
New PPP callback from PPP core to low level protocols, first
step about removing named calls to low level protocols from PPP core.
2015-02-17 23:22:13 +01:00