Dirk Ziegelmeier
5c0944e01a
Don't document tcp_send_empty_ack and tcp_keepalive - users should never need them
2016-08-09 10:17:16 +02:00
Dirk Ziegelmeier
5a09fd3e35
Don't document ip4_route and ip6_route, users should use ip_route instead
2016-08-09 10:16:40 +02:00
Dirk Ziegelmeier
85ab39985a
Fix a few incorrect uses of err_t. Found by converting lwip error codes to an enum, but I'm not sure wether I want to commit the actual enum conversion.
2016-08-08 22:15:01 +02:00
Dirk Ziegelmeier
1631307bb3
tcp.c: Partly undo Simon's changes from today (repairs doxygen docs)
2016-08-08 21:42:27 +02:00
goldsimon
eba6ae0122
minor: add a comment about where to define LWIP_RAND()
2016-08-08 09:14:50 +02:00
goldsimon
219438fb24
cleanup: move stdlib.h include to mem.c, where it belongs
2016-08-08 09:11:24 +02:00
goldsimon
08378b7d4b
Improve LWIP_EVENT_API compilation
2016-08-08 08:49:14 +02:00
David van Moolenbroek
fc66fb830c
Fix compilation for LWIP_EVENT_API
...
Without LWIP_CALLBACK_API, is no error callback function pointer in
the TCP PCB, nor is it needed, so do not attempt to access it.
2016-08-08 08:48:28 +02:00
Dirk Ziegelmeier
f55c0e7864
Move rawapi.txt description to main page - this doc really should be found and read by users
2016-08-07 20:21:27 +02:00
Axel Lin
0a7db8a9a5
PPP: remove double include for lwip/sys.h
...
Including it once is enough.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Sylvain Rochet <gradator@gradator.net>
2016-08-07 12:35:50 +02:00
Dirk Ziegelmeier
980a919c9a
Don't document IP type specific output functions, users should use IP type independent ones
2016-08-07 10:13:50 +02:00
Dirk Ziegelmeier
8d07629b71
Some documentation cleanups and include more comments that have been already in code into doxygen docs
2016-08-07 10:05:34 +02:00
Dirk Ziegelmeier
b94c8ee76f
Add some more functions and macros to documentation
2016-08-06 22:16:49 +02:00
Dirk Ziegelmeier
73131b1677
Fix doxygen warning in ip6.c
2016-08-06 20:29:35 +02:00
Dirk Ziegelmeier
87855b0e0e
Update doxgen docs: PBUF layers, IPv4 and IPv6 functions, add some missing tcp raw API functions
2016-08-06 20:28:49 +02:00
Dirk Ziegelmeier
70ee63ef3d
Documentation: Add example code for NO_SYS use case
2016-08-05 09:53:50 +02:00
sg
5f774270b6
minor: tabs -> spaces
2016-08-03 21:25:32 +02:00
David van Moolenbroek
02221cf5dc
Rename IP_HDRINCL to LWIP_IP_HDRINCL
...
In the BSD socket API world, IP_HDRINCL is a socket option for "raw"
sockets that indicates whether sent packets already include an IP
header. Within lwIP, "IP_HDRINCL" is redefined as a special value
that indicates to lwIP-internal functions that an IP header is already
included. While somewhat related, the two meanings are different and,
on platforms that define the IP_HDRINCL socket option, this results in
a conflict. This patch renames the lwIP one to "LWIP_IP_HDRINCL",
thus resolving the conflict.
2016-08-03 20:51:21 +02:00
Dirk Ziegelmeier
da83946e75
Add one more documentation sentence in tcp.c
2016-08-03 12:34:16 +02:00
goldsimon
3d379c97ec
IPv6 is NOT experimental any more :-)
2016-08-03 12:28:56 +02:00
goldsimon
018294d287
remove doubled include (tcpip.h)
2016-08-01 09:44:18 +02:00
Dirk Ziegelmeier
2f7e6d0661
Remove hard reference from netif.c to tcpip.c - avoids pulling in unnecessary code
2016-08-01 09:32:54 +02:00
Dirk Ziegelmeier
2c2d11fa4d
Update documentation of netif_input function
2016-07-30 10:40:36 +02:00
Dirk Ziegelmeier
4cb7e31d2d
Add missing #include in netif.c
2016-07-30 10:36:11 +02:00
Dirk Ziegelmeier
0c7d015ec4
Further improvement to netif input function autoselection: Select between netif_input() and tcpip_input() depending on NO_SYS setting
2016-07-30 10:29:14 +02:00
Dirk Ziegelmeier
4b67c582f6
Create netif_input function that decides according to netif flags where to pass an incoming packet.
...
Allow to pass a NULL pointer to netif_add() input function - if so, use the function mentioned above as input function.
2016-07-30 10:19:16 +02:00
sg
23cf45d252
d'oh! (fixed messed-up timeouts.h)
2016-07-27 21:48:29 +02:00
sg
53dc94d570
added LWIP_TIMERS_CUSTOM to override the default implementation of timeouts
2016-07-27 21:46:16 +02:00
sg
a326b057b3
Fix bug #48568 (timeouts does not support late firing properly) by assuming sys_check_timeouts() jitter can' be too bad
2016-07-27 21:17:15 +02:00
Dirk Ziegelmeier
70927892e1
Fix doxygen warning about debug parameters in memp.c
...
Remove documentation from them, it is not important
2016-07-27 20:34:23 +02:00
Dirk Ziegelmeier
31f941e172
More documentation updates
2016-07-27 20:34:23 +02:00
Dirk Ziegelmeier
0cb1d1144d
Integrate README file into doxygen docs instead of duplicating its content in main_page.h
2016-07-27 19:09:52 +02:00
Dirk Ziegelmeier
eb3261d6e0
Add some more TCP RAW API functions to documentation
2016-07-27 13:46:54 +02:00
Dirk Ziegelmeier
6c7eef7ac0
More documentation updates
2016-07-27 13:14:31 +02:00
Dirk Ziegelmeier
ef5c1b6590
Work on lwIP documentation
2016-07-27 13:09:33 +02:00
Dirk Ziegelmeier
ccc830c99c
Work on lwIP documentation
2016-07-27 13:03:36 +02:00
goldsimon
af97f9b239
fixed gcc compiler error in do_memp_free_pool(): obviously, SYS_ARCH_DECL_PROTECT() must be the last declaration...
2016-07-27 08:26:42 +02:00
Dirk Ziegelmeier
6b524367a3
Documentation review with Simon, minor changes
2016-07-27 08:05:38 +02:00
Dirk Ziegelmeier
c7e20150f0
Update and restructure docs of some lwip core functions
2016-07-26 19:42:16 +02:00
Dirk Ziegelmeier
c6831648e2
Document apps in doxygen module style, create more top-level categories to structure documentation
2016-07-26 19:30:05 +02:00
Dirk Ziegelmeier
8a9de94b1f
Restructure documentation. Create two top-level sections for thread-safe and callback-style APIs.
2016-07-26 18:39:53 +02:00
Dirk Ziegelmeier
67d674a59c
Document IGMP and MLD6 API in doxygen module style
2016-07-26 18:20:30 +02:00
Dirk Ziegelmeier
dc0859b8d1
Document DHCP and AUTOIP API in doxygen module style
2016-07-26 18:10:05 +02:00
Dirk Ziegelmeier
9c10daba93
Document netif API in doxygen module style
2016-07-26 17:53:07 +02:00
Dirk Ziegelmeier
0fea2bc02e
Document netconn API in doxygen module style
2016-07-26 17:40:55 +02:00
Dirk Ziegelmeier
ce19c59bb2
Document ip address function in doxygen module style
2016-07-26 17:11:01 +02:00
Dirk Ziegelmeier
8643782e5d
Document netif and lwIP in doxygen module style
2016-07-26 16:53:27 +02:00
Dirk Ziegelmeier
bd79f6c055
Document DNS, memory pools and PBUFs as modules
2016-07-26 16:40:13 +02:00
goldsimon
e030118750
moved MEM_LIBC_MALLOC code from mem.h to mem.c:
...
- it's not worth littering mem.h just to save some bytes to prevent the additional call;
- MEM_STATS now also work when MEM_LIBC_MALLOC is enabled
2016-07-26 15:02:36 +02:00
Dirk Ziegelmeier
59295be4ef
Some more RAW API documentation updates
...
Improve structure of documentation: PPP is now a module, too
2016-07-26 13:53:59 +02:00
Dirk Ziegelmeier
10acd8303d
Start to document public RAW API via doxygen
2016-07-26 13:38:43 +02:00
goldsimon
168ad22761
fixed custom pools after last memp cleanup
2016-07-26 12:26:52 +02:00
goldsimon
fb75f48751
Make lwip_cyclic_timers[] const
2016-07-26 09:08:29 +02:00
sg
00598b0b46
fix mem stats for MEM_USE_POOLS==1
2016-07-25 22:08:32 +02:00
Dirk Ziegelmeier
80be1a6bf8
Add links to new documentation pages in the relevant files
2016-07-25 08:20:39 +02:00
sg
de9054cb7a
memp: cleaned up MEMP_MEM_MALLOC:
...
- support memp stats when MEMP_MEM_MALLOC==1 (bug #48442 );
- hide MEMP_MEM_MALLOC in memp.c instead of messing up the header file;
- make MEMP_OVERFLOW_CHECK work when MEMP_MEM_MALLOC==1
2016-07-21 22:17:32 +02:00
sg
413eeef5fa
minor: moved sanity check from mem.c to init.c
2016-07-21 22:16:05 +02:00
goldsimon
523b11e664
fixed bug #48543 (TCP sent callback may prematurely report sent data when only part of a segment is acked) and don't include SYN/FIN in snd_buf counter (patch by Ambroz Bizjak)
2016-07-21 13:47:52 +02:00
goldsimon
e8ffac852e
Fixed bug #48551 (autoip_supplied_address() does not work when address is first assigned); fixed AutoIP timeouts
2016-07-20 08:28:16 +02:00
sg
98d58ffd59
minor: fixed wrong indentation
2016-07-19 22:38:34 +02:00
sg
97b8e88e69
netif_set_addr(): when removing an address (setting address to ANY), we have to remove it *before* changing netmask/gw to ensure that tcp RST segment can be sent correctly
2016-07-19 22:34:22 +02:00
sg
24a339a609
autoip: made private things private, use etharp_* shortcuts instead of etharp_raw()
2016-07-19 22:27:20 +02:00
sg
86e419425b
minor: code layout only
2016-07-19 22:06:59 +02:00
sg
d0a79ff085
fixed bug #48477 (ARP input packet might update static entry)
2016-07-19 22:01:42 +02:00
sg
dff46e3816
Fixed bug #48539 (possible crash when packet received in SYN_SENT state)
2016-07-19 21:23:21 +02:00
goldsimon
579fffd2ec
fixed task #14084 : make dhcp_supplied_address() usable in netif change callbacks triggered by changing the netif address assigned by dhcp
2016-07-19 12:58:21 +02:00
Dirk Ziegelmeier
5d4c1432c2
Fix bug #48436 : Naming clash for timers.c (with FreeRTOS)
...
Rename timers.* to timeouts.*
2016-07-19 12:44:12 +02:00
goldsimon
6adeb706a6
change tcp_pcb->acked to be a global variable: used in one call stack only (idea by Ambroz Bizjak)
2016-07-19 10:38:01 +02:00
Dirk Ziegelmeier
72208cddfa
Rename ip_frag.* to ip4_frag.*
2016-07-19 10:12:56 +02:00
Dirk Ziegelmeier
7037b340c1
Move etharp to core/ipv4, which is a more appropriate place for it
2016-07-19 09:29:51 +02:00
Dirk Ziegelmeier
06c7404461
Fix bug #48510 , DHCP requires ARP
...
Use solution 2 proposed by Jens Nielsen
2016-07-19 09:10:21 +02:00
goldsimon
6c0d78caaa
Fixed trying to send RST for unconnected (but bound) pcb
2016-07-19 09:05:48 +02:00
Dirk Ziegelmeier
4ec3d29168
Fix bug #48504 : tcp_debug_print_pcbs reads nonexisting tcp_pcb fields
2016-07-19 08:54:44 +02:00
Dirk Ziegelmeier
4ea1d62d45
Update some doxygen comments
2016-07-16 17:56:29 +02:00
sg
421dab87e8
fixed bug #48476 (TCP sent callback called wrongly due to picking up old pcb->acked
2016-07-11 21:43:39 +02:00
Dirk Ziegelmeier
01e5d6d819
memp.c: No need to init variables located in BSS section
2016-07-08 11:44:28 +02:00
Ambroz Bizjak
18c332ae51
fixed bug #48402 (Bug in skipping over TCP options)
...
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-08 11:27:50 +02:00
goldsimon
6293a835e9
fixed compiling: forgot to move one line :-(
2016-07-08 10:16:46 +02:00
goldsimon
2df636fe77
memp: fixed STATS initialization
2016-07-08 10:06:36 +02:00
goldsimon
959042aa88
memp: fixed compiling various combinations of memp stats (display etc.)
2016-07-08 08:21:57 +02:00
Dirk Ziegelmeier
087ecab891
Add some comments to places where we cast through a void* to get rid of alignment warnings
2016-07-07 21:56:43 +02:00
Dirk Ziegelmeier
212eacd9d6
Fix bug #48356 : private memp pools have no statistic counters
...
Implement struct stats_mem instance for each pool, let lwip_stats.mem[] point to these instances
2016-07-07 21:55:51 +02:00
Dirk Ziegelmeier
b91e47b518
Implement portable and overridable allocation of memory buffers
...
Fixes bug #48300 (Private mempools allocate foreign memory), bug #48354 (Portable alignment defines/include required for static allocation) and bug #47092 (Tag memory buffers like memp_memory_xxx and ram_heap with a macro so that attributes can be attached to their definitions)
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2016-07-07 13:35:13 +02:00
goldsimon
811b237bd7
dns: fixed declaration and usage of DNS_LOOKUP_LOCAL_EXTERN()
2016-07-07 13:02:47 +02:00
goldsimon
14ca418ac0
minor: coding style fixes
2016-07-05 07:36:51 +02:00
goldsimon
2fdea8b79b
fixed bug #48398 (dns: entries reused during found-callback could be aborted if ttl==0)
2016-07-04 13:55:20 +02:00
Michael Brown
2e26fc9224
tcp: Avoid 3-second delay for a half-open connection
...
If lwIP encounters a half-open connection (e.g. due to a restarted
application reusing the same port numbers) it will correctly send a
RST but will not resend the SYN until one retransmission timeout later
(approximately three seconds). This can increase the time taken by
lpxelinux.0 to fetch its configuration file from a few milliseconds to
around 30 seconds.
Fix by immediately retransmitting the SYN whenever a half-open
connection is detected.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2016-07-04 12:25:22 +02:00
goldsimon
fd83f4fb22
Fix bug #48359 (dns entries are not set to state DONE)
2016-07-04 10:22:20 +02:00
Sylvain Rochet
9d0546839c
init: fix NO_SYS targets build
...
lwip/src/core/init.c:256:32: error: "LWIP_COMPAT_MUTEX" is not defined [-Werror=undef]
#if LWIP_TCPIP_CORE_LOCKING && LWIP_COMPAT_MUTEX && !defined(LWIP_COMPAT_MUTEX_ALLOWED)
^
Setting LWIP_TCPIP_CORE_LOCKING is meaningless for NO_SYS targets,
therefore checking if LWIP_COMPAT_MUTEX is set does not make sense.
Introduced by 42dfa71f97
: Make LWIP_TCPIP_CORE_LOCKING==1 the default
(and warn if LWIP_COMPAT_MUTEX==1 in that case as mutexes are required
to prevent priority inversion on tcpip_thread operations)
2016-07-02 21:53:24 +02:00
sg
42dfa71f97
Make LWIP_TCPIP_CORE_LOCKING==1 the default (and warn if LWIP_COMPAT_MUTEX==1 in that case as mutexes are required to prevent priority inversion on tcpip_thread operations)
2016-06-30 22:37:37 +02:00
goldsimon
e6bc591a1e
fixed bug #48170 (Vulnerable to TCP RST spoofing) (original patch by Fabian Koch)
2016-06-30 08:50:42 +02:00
goldsimon
d31d2ee882
Revert "fixed bug #48170 (patch by Fabian Koch)"
...
This reverts commit 236bc19422
.
The fix introduced bug #48328 -> reverted
2016-06-30 08:41:50 +02:00
Erik Ekman
4047702928
Fix clang warning about unreachable code
...
Do check with preprocessor instead
2016-06-27 22:32:18 +02:00
Dirk Ziegelmeier
5d356c96f5
Minor: cleanup my last commit
2016-06-27 20:57:22 +02:00
Dirk Ziegelmeier
39545d2c6d
Fix clang warning about unreachable code
2016-06-27 20:56:21 +02:00
goldsimon
236bc19422
fixed bug #48170 (patch by Fabian Koch)
2016-06-27 10:31:36 +02:00
Dirk Ziegelmeier
38c0255fa2
Fix a few more CLANG format string warnings (from unix check project)
2016-06-25 13:24:48 +02:00
Dirk Ziegelmeier
102f5882d5
Fix several CLANG format string warnings
2016-06-25 13:06:31 +02:00
Dirk Ziegelmeier
8dc77ef558
doxygen updates - include IPv6 in documentation. Exclude include/netif/ppp/polarssl.
...
Convert TODO -> @todo
2016-06-22 20:18:23 +02:00
Sylvain Rochet
cfe5182380
timers: fix wrong timings for !NO_SYS targets
...
issue 1:
sys_arch_sem_wait() is supposed to return an elapsed time in ms, what could
happen given a > 1 kHz calling rate for high throughput systems is that it
might always returns 0 ms. This is a problem for systems which compute the
elapsed time from a high precision clock source.
This is what is currently happening in the unix port in sys_arch_sem_wait():
start time -> 1000000000; // ns
-- less than a ms before an event arrive --
end time -> 1000xxxxxx; // ns
return value -> (end time - start time)/1000000 -> 0
The return value is used to reduce the next timer interval, if
sys_arch_sem_wait() always return 0 no more timers are fired anymore
issue 2:
The current timer implementation for !NO_SYS targets only count elapsed
time while -waiting- for semaphore and doesn't count at all the time
spent by the stack to process packets. For CPU bound traffic patterns no
more timers are fired anymore.
Both are serious design issues which cannot be easily fixed without reworking
everything. This patch uses the properly implemented timers for NO_SYS targets
for !NO_SYS targets and merge them both into one single timers implementation.
2016-06-20 16:17:55 +02:00