History log of /seL4-camkes-master/projects/lwip/src/include/lwip/tcp.h
Revision Date Author Comments
# b398a2a3 03-Jul-2018 Simon Goldschmidt <goldsimon@gmx.de>

fix implicit cast warnings in IAR and others

See bug #54190

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>


# 23c933fd 02-Feb-2018 Erik Ekman <erik@kryo.se>

Fix annotation in function documentation

clang failed to build:

../../../../lwip/src/include/lwip/tcp.h:180:11: error: parameter 'ERR_OK' not found in the function declaration [-Werror,-Wdocumentation]
* @param ERR_OK if OK, any error if connection should be dropped
^~~~~~


# 0e85582b 24-Jan-2018 goldsimon <goldsimon@gmx.de>

tcp: introduce ext_args per pcb

This introduces the concept of ext (external/extended) arguments per
tcp_pcb (also for listening pcbs) to store more data than just one
"void *arg" per pcb. The "arg" is for use to applications, whereas
the ext_args may be used by frameworks and leave "arg" untouched.

In addition to a void pointer, callbacks are added to help frameworks
migrate arguments from listen pcb to connection pcb and to free args
when the pcb is freed.

Signed-off-by: goldsimon <goldsimon@gmx.de>


# f3c86095 06-Jul-2017 goldsimon <goldsimon@gmx.de>

-Wconversion (still far from finished) and other minor compilation fixes...


# 1a1c360f 03-Jul-2017 goldsimon <goldsimon@gmx.de>

Fixed LWIP_TCP_SACK_VALID and its usage


# 6796bcf7 03-Jul-2017 goldsimon <goldsimon@gmx.de>

Cleaned up a bit after merging SACK_OUT support (mostly coding style)


# b1a3c37c 29-Jun-2017 Jakub Schmidtke <jschmidtke@carnegietechnologies.com>

Partial SACK (RFC 2018) support

Adds partial support for selective acknowledgements (RFC 2018).
This change makes lwIP negotiate SACK support, and include SACK
data in outgoing empty ACK packets. It does not include it
in outgoing packets with data payload.
It also does not add support for handling incoming SACKs.

Signed-off-by: goldsimon <goldsimon@gmx.de>


# 41177cfd 30-Jun-2017 goldsimon <goldsimon@gmx.de>

work on -Wconversion...


# 229c9eda 27-Jun-2017 Joel Cunningham <joel.cunningham@me.com>

tcp: switch tcpflags_t to u16_t for all cases (bug #51326)

This changes tcpflags_t to be a u16_t for all cases. The TCP Appropriate
Byte Count support added a new flag that used a bit past 8 and since this
flag is now required, tcpflags_t can no longer be a u8_t

This does not increase the size of struct tcp_pcb due to padding that
already existed (see bug #51326 for details)

Signed-off-by: goldsimon <goldsimon@gmx.de>


# fc23257c 20-Jun-2017 goldsimon <goldsimon@gmx.de>

Fix unused arg from last patch the *real* lwIP way ;-)


# b92bcc5f 19-Jun-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Fix unused arg from last patch the lwIP way


# 6e62b609 17-Jun-2017 Our Air Quality <info@ourairquality.org>

Silence some unsed variable warnings.


# 3eaf9761 31-May-2017 Joel Cunningham <joel.cunningham@me.com>

tcp: fix cwnd rollover introduced by ABC

Changes for TCP Appropriate Byte Counting introduce a potential cwnd
rollover by not taking into account integer promotion on tcpwnd_size_t
during inequality comparisions

This fixes the issue by introducing a macro TCP_WND_INC which detects
the rollover correctly and now holds the tcpwnd_size_t at the maximum
value rather than not incrementing the window. This provides a slight
performance improvement by allowing full use of the tcpwnd_size_t number
space for the congestion window


# c03fef9a 03-May-2017 Joel Cunningham <joel.cunningham@me.com>

bug #50837: add zero-window probe timeout

This commit adds a timeout to the zero-window probing (persist timer)
mechanism. LwIP has not historically had a timeout for the persist
timer, leading to unbounded blocking if connection drops during the
zero-window condition

This commit also adds two units test, one to check the RTO timeout
and a second to check the zero-window probe timeout


# 13ffc86a 02-May-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Start working task #14494: Implement SO_BINDTODEVICE
Implement binding TCP, UDP and RAW PCBs to a netif


# de90d03e 12-Apr-2017 Joel Cunningham <joel.cunningham@me.com>

tcp: task #14128 - Appropriate Byte Counting support

This commit adds TCP Appropriate Byte Counting (ABC) support based on
RFC 3465

ABC replaces the previous congestion window growth mechanism and has been
configured with limit of 2 SMSS. See task #14128 for discussion on
defaults, but the goal is to mitigate the performance impact of delayed
ACKs on congestion window growth

This commit also introduces a mechanism to track when the stack is
undergoing a period following an RTO where data is being retransmitted.

Lastly, this adds a unit test to verify RTO period tracking and some
basic ABC cwnd checking


# 7e12240a 22-Mar-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Improve TCP documentation a bit


# c18393b5 22-Mar-2017 goldsimon <goldsimon@gmx.de>

altcp: added 'addrinfo' and 'tcp_state' functions


# d58457de 22-Mar-2017 goldsimon <goldsimon@gmx.de>

tcp: move some higher level definitions from tcp.h to new file tcpbase.h (in preparation for altcp API)


# bc07fd9d 10-Feb-2017 goldsimon <goldsimon@gmx.de>

Fixed bug #47485 (tcp_close() should not fail on memory error) by retrying to send FIN from tcp_fasttmr


# 98fc82fa 31-Dec-2016 sg <goldsimon@gmx.de>

added function tcp_listen_with_backlog_and_err() to get the error reason when listening fails (bug #49861)


# 08378b7d 08-Aug-2016 goldsimon <goldsimon@gmx.de>

Improve LWIP_EVENT_API compilation


# eb3261d6 27-Jul-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Add some more TCP RAW API functions to documentation


# 59295be4 26-Jul-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Some more RAW API documentation updates
Improve structure of documentation: PPP is now a module, too


# d75ece25 25-Jul-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Add some of the .txt files in /doc subdir to doxygen documentation


# 6adeb706 19-Jul-2016 goldsimon <goldsimon@gmx.de>

change tcp_pcb->acked to be a global variable: used in one call stack only (idea by Ambroz Bizjak)


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

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


# 451277e7 24-May-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Include all lwIP files in doxygen documentation


# 27f03798 25-Mar-2016 sg <goldsimon@gmx.de>

Fixed possible problems with tcp_backlog_delayed/tcp_backlog_accepted


# c39ef75c 22-Mar-2016 goldsimon <goldsimon@gmx.de>

... and another compiler error: tcp_nagle_enable() must stay at tcpflags_t, not using u16_t


# 7bda4620 22-Mar-2016 goldsimon <goldsimon@gmx.de>

fixed wrong commit: compatibility-define tcp_accepted() was accidentally commented-out


# dd80759b 22-Mar-2016 sg <goldsimon@gmx.de>

tcp: changed accept handling to be done internally: the application does not have to call tcp_accepted() any more. Instead, when delaying accept (e.g. sockets do), call tcp_backlog_delayed()/tcp_backlog_accepted() (fixes bug #46696)


# 44e1a2d8 18-Mar-2016 sg <goldsimon@gmx.de>

define tcp_backlog_set() as dummy-define when backlog feature is disable


# b5cd90a3 03-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Add compatibility macro for tcp_new_ip6()


# f9ce31f9 02-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

TCP: Implement dual stack support using new IP_ANY_TYPE introduced at UDP


# 8cb64698 18-Feb-2016 Joel Cunningham <joel.cunningham@me.com>

Allow backlog to be updated

This commit adds support to the sockets and netconn layer to update the
backlog by calling listen when the netconn is already in the listen state.
When backlog is not enabled, the call returns successfully

This commit also introduces a macro for setting the backlog value that
prevents a 0 sized (invalid) backlog


# 1ef913cd 26-Oct-2015 Joel Cunningham <joel.cunningham@me.com>

Update snd_queuelen comment documentation

This commit updates the snd_queuelen comment documentation to reflect
that snd_queuelen tracks the number of pbufs currently in the send
buffer (unsent + unacked queues) rather than the number of pbufs
available in the buffer (which was what previous comment implied)


# 22df34fc 06-Oct-2015 sg <goldsimon@gmx.de>

minor/coding style: removed spaces before line ending (from file header)


# 490581a0 06-Oct-2015 sg <goldsimon@gmx.de>

minor/coding style: removed spaces before line ending


# 06d8dba4 28-Aug-2015 goldsimon <goldsimon@gmx.de>

fixed bug #45559: Window scaling casts u32_t to u16_t without checks


# a22a92b4 20-Aug-2015 goldsimon <goldsimon@gmx.de>

Fixed compiler warning when window scaling is enabled (tcp_sndbuf() should still return u16_t since that value can directly be passed to tcp_write())


# 614fa7b8 03-Aug-2015 goldsimon <goldsimon@gmx.de>

... and one more change to those nasty ~ operator warnings :-(


# 11f350e6 03-Aug-2015 goldsimon <goldsimon@gmx.de>

Fixed ~ warnings in a different way


# 4dc3c7a6 03-Aug-2015 goldsimon <goldsimon@gmx.de>

Fixed warnings about NULL check not required (ip_addr_isany) and implicit conversion (~)


# ce7e31cd 09-Apr-2015 sg <goldsimon@gmx.de>

task #12722 (improve IPv4/v6 address handling): renamed ip_addr_t to ip4_addr_t, renamed ipX_addr_t to ip_addr_t and added IP version;
ip_addr_t is used for all generic IP addresses for the API, ip(4/6)_addr_t are only used internally or when initializing netifs or when calling version-related functions


# 9f065c0e 23-Jan-2015 chrysn <chrysn@fsfe.org>

(api break) qualify ip_addr_t as const where feasible

this changes the callback signatures of the ip_output and the
{udp,raw}_recv functions.

changes were made by going through all header files, searching for
occurrences of ip_addr_t, qualifying them as const and if required
modifying the corresponding c files, looking for other uses of ip_addr_t
that would be required.

the following header files were not treated as i'm not using them and
wouldn't see them compiled: api.h api_msg.h dhcp.h dns.h igmp.h
netifapi.h pppapi.h snmp.h snmp_msg.h snmp_structs.h ppp.h pppol2tp.h
test/*

no modifications were done on ip6_addr_t.


# 33237419 18-Sep-2014 Simon Goldschmidt <goldsimon@gmx.de>

Parts of patch #8397 Typos corrected in comments and text outputs


# 54d4d9a8 01-Sep-2014 goldsimon <goldsimon@gmx.de>

Fix warning for compilers propagating ~'ed u8_t to int...


# 1204f15b 19-May-2014 goldsimon <goldsimon@gmx.de>

bug #35874 reserved identifier violation, 2nd part


# dbd125c7 19-May-2014 Simon Goldschmidt <goldsimon@gmx.de>

Fixed bug #35874 reserved identifier violation (removed leading underscores from header include guards)


# a44e2190 07-Feb-2014 Simon Goldschmidt <goldsimon@gmx.de>

TCP window scaling: change tcp_pcb::acked to u32_t when window scaling is enabled to prevent an overflow when more than 64 Kbytes are ACKed


# d2a89b42 06-Feb-2014 Simon Goldschmidt <goldsimon@gmx.de>

patch #6537/#7858: TCP window scaling support (OOS queueing still needs special handling)


# 796098e4 24-Apr-2013 Simon Goldschmidt <goldsimon@gmx.de>

fixed bug #38701 (wrong comment on tcp_pcb::snd_queuelen


# 7d0dab9d 12-Feb-2012 goldsimon <goldsimon@gmx.de>

partly fixed bug #25882: TCP hangs on MSS > pcb->snd_wnd (by not creating segments bigger than half the window)


# 16555ad1 12-Feb-2012 goldsimon <goldsimon@gmx.de>

tcp pcb: persist_cnt can be u8_t instead of u32_t (since it is compared against u8_t only)


# dd872906 25-Nov-2011 goldsimon <goldsimon@gmx.de>

fixed bug #31177: tcp timers can corrupt tcp_active_pcbs in some cases


# e145c1d3 22-Sep-2011 Simon Goldschmidt <goldsimon@gmx.de>

Fixed tcp_accepted define (need brackets around the parameter)


# 4b934945 26-Jun-2011 goldsimon <goldsimon>

Slightly reorderd fields of struct tcp_pcb to plug holes introduced by member alignment (to reduce RAM usage)


# d0026793 26-Jun-2011 goldsimon <goldsimon>

Cleaned up usage of sys.h a bit


# 629fad6f 17-Jun-2011 idelamer <idelamer>

Minor edits for for IPv6 compilation


# 6865806b 25-May-2011 goldsimon <goldsimon>

Combined IPv4 and IPv6 code where possible, added defines to access IPv4/IPv6 in non-IP code so that the code is more readable.


# 4bfbe7eb 17-May-2011 goldsimon <goldsimon>

... 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!)


# 856ccb5b 18-Feb-2011 goldsimon <goldsimon>

Added missing U/UL modifiers to fix 16-bit-arch portability.


# 9f0b7261 13-Mar-2010 goldsimon <goldsimon>

Fix calculation of tcp_mss(): when timestamps are on, this is pcb->mss - 12 or else NOCOPY-apps might generate unperformant PBUF_REF chains


# 43a08bef 05-Mar-2010 goldsimon <goldsimon>

tcp_accepted(): check pcb state to verify it isn't called on a connection-pcb


# b6542b97 05-Mar-2010 goldsimon <goldsimon>

task #7040 (Work on tcp_enqueue): Don't waste memory when chaining segments, added option TCP_OVERSIZE to prevent creating many small pbufs when calling tcp_write with many small blocks of data. Instead, pbufs are allocated larger than needed and the space is used for later calls to tcp_write.


# bcd4b76d 21-Feb-2010 goldsimon <goldsimon>

Moved stack-internal parts of tcp.h to tcp_impl.h, tcp.h now only contains the actual application programmer's API


# d9157a71 20-Feb-2010 goldsimon <goldsimon>

Task #10088: Correctly implement close() vs. shutdown(). Now the application does not get any more recv callbacks after calling tcp_close(). Added tcp_shutdown().


# eae97982 20-Feb-2010 goldsimon <goldsimon>

Fixed pcb leak when accept-callback is NULL and asserts are disabled


# 36043a92 20-Feb-2010 goldsimon <goldsimon>

Restructured TCP_PCB_COMMON for a smaller size (u16_t at the end)


# c637441f 16-Feb-2010 goldsimon <goldsimon>

tcp_seg(s)_free: remove return value, noone uses it


# 8768e448 12-Feb-2010 goldsimon <goldsimon>

patch #6865: use so_options SOF_REUSEADDR instead of flags TF_REUSEADDR (which has ben removed again)


# d3635c5e 12-Feb-2010 goldsimon <goldsimon>

patch #6865 (SO_REUSEADDR for TCP): if tcp_pcb.flags has TF_REUSEADDR set, allow binding to endpoint in TIME_WAIT


# 5d360a67 04-Feb-2010 goldsimon <goldsimon>

Replaced struct ip_addr by typedef ip_addr_t to make changing the actual implementation behind the typedef easier.


# 04a8b0f8 27-Jan-2010 goldsimon <goldsimon>

Added TCP_SNDQUEUELOWAT corresponding to TCP_SNDLOWAT and added tcp_sndqueuelen() - this fixes bug #28605


# 0644c4c0 27-Jan-2010 goldsimon <goldsimon>

Fixed bug #27871: Calling tcp_abort() in recv callback can lead to accessing unallocated memory. As a consequence, ERR_ABRT means the application has called tcp_abort()!


# 2d4e7687 14-Jan-2010 goldsimon <goldsimon>

Using typedefs for function prototypes and -pointers throughout the stack for clarity


# f4a9d173 10-Jan-2010 goldsimon <goldsimon>

bug #28127: remove call to tcp_output() from tcp_ack(_now)()


# cce192a6 07-Jan-2010 goldsimon <goldsimon>

Call tcp_timer_needed() with NO_SYS==1, too


# a7bcdf43 31-Dec-2009 goldsimon <goldsimon>

Remove warning for TCP_LISTEN_BACKLOG==0


# 7d46e068 03-Dec-2009 goldsimon <goldsimon>

Fixed bug #28106: dup ack for fast retransmit could have non-zero length


# 43fd5c28 26-Nov-2009 goldsimon <goldsimon>

Fixed bug #28098: Nagle can prevent fast retransmit from sending segment by basing the nagle-decision on TF_INFR also


# 43914638 26-Nov-2009 goldsimon <goldsimon>

Got the tcp_nagle_*() defines wrong (inverted) :-(


# c8d2d2a8 26-Nov-2009 goldsimon <goldsimon>

Fixed bug #28099 (API required to disable Nagle algorithm at PCB level): added tcp_nagele_*() function-like macros


# 10edf648 22-Nov-2009 goldsimon <goldsimon>

Fixed bug #27851 (TCP_EVENT_RECV(pcb, NULL,...) results in unreachable code warning) by calling tcp_recv_null if pcb->recv is null.


# dee1d82c 29-Oct-2009 kieranm <kieranm>

re-work the fast retransmission code to follow algorithm from TCP/IP
Illustrated


# bcc87ef8 25-Oct-2009 goldsimon <goldsimon>

bug-fix in the TCP_EVENT_RECV macro (has to call tcp_recved if pcb->recv is NULL to keep rcv_wnd correct)


# 6ef69ece 07-Oct-2009 goldsimon <goldsimon>

patch #6930: [PATCH trivial] TCP_RMV remove unnecessary check - removed two checks for NULL which are not necessary.


# 68f92050 07-Oct-2009 goldsimon <goldsimon>

Make tcp_debug_state_str() always available, not only in DEBUG mode


# 4d49d952 23-Aug-2009 goldsimon <goldsimon>

patch #6843: tcp.h macro optimization patch (for little endian)


# ae7a7a0a 23-Aug-2009 goldsimon <goldsimon>

Added function tcp_debug_state_str() to convert a tcp state to a human-readable string.


# 776e1926 25-Jun-2009 kieranm <kieranm>

BUG26879: set ret value in TCP_EVENT_ macros when function is not set


# c232edb8 25-Jun-2009 kieranm <kieranm>

BUG26301 and BUG26267: correct simultaneous close behaviour, and make
snd_nxt have the same meaning as in the RFCs.


# 24342eaa 03-May-2009 goldsimon <goldsimon>

Fixed bug #26349: Nagle algorithm doesn't send although segment is full (and unsent->next == NULL)


# f81ed216 09-Apr-2009 kieranm <kieranm>

Patch#6802 Add do-while-clauses to those function like macros in tcp.h


# f1a9f7ea 31-Mar-2009 kieranm <kieranm>

BUG20515: rework way TCP window updates are calculated and sent


# 4b146212 31-Mar-2009 kieranm <kieranm>

TASK9218: add support for TCP timestamp options


# efac1098 26-Mar-2009 kieranm <kieranm>

BUG25622: handle return code of tcp_enqueue in tcp_listen_input()


# d976c8e8 16-Feb-2009 goldsimon <goldsimon>

fixed bug #24440: TCP connection close problem on 64-bit host by moving accept callback function pointer to TCP_PCB_COMMON


# aa568727 19-Dec-2008 goldsimon <goldsimon>

patch #6699: fixed some warnings on platform where sizeof(int) == 2


# 2ec3c468 28-Jan-2008 jifl <jifl>

Fix incorrect units in comment for TCP_MSL. Allow override.


# f02c39a4 22-Jan-2008 fbernon <fbernon>

tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names.


# 7518acf6 14-Jan-2008 fbernon <fbernon>

rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675 "Enable to refuse data on a TCP_EVENT_RECV call". Important, behavior changes for the tcp_recv callback (see rawapi.txt).


# 32005617 04-Jan-2008 fbernon <fbernon>

rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add documentation in the rawapi.txt file.


# 99afb15c 31-Dec-2007 kieranm <kieranm>

Add persist timer


# 1ed34774 21-Dec-2007 goldsimon <goldsimon>

tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c, sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API applications have to call 'tcp_accepted(pcb)' in their accept callback to keep accepting new connections.


# 8cc32bc2 20-Dec-2007 kieranm <kieranm>

2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm)
* tcp.c, tcp_in.c, tcp_out.c, tcp.h: fix bug #20199 (better handling
of silly window avoidance and prevent lwIP from shrinking the window)


# 95425552 21-Nov-2007 goldsimon <goldsimon>

Implemented calculating the effective send-mss based on the MTU of the netif used to send. Enabled by default. Disable by setting LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21535.


# dc515c7a 21-Nov-2007 goldsimon <goldsimon>

Fixed bug #20287: tcp_output_nagle sends too early. This fixes the nagle algorithm; nagle now also works for all raw API applications and has to be explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY'


# 4a6f6093 01-Nov-2007 fbernon <fbernon>

Minor change, add comment for "apiflags" parameters.


# cbe9b050 01-Nov-2007 fbernon <fbernon>

sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h, tcp_out.c: Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used at socket api layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE at raw api layer. This option enable to delayed TCP PUSH flag on multiple "write" calls. Note that previous "copy" parameter for "write" APIs is now called "apiflags".


# 298d5cf0 01-Nov-2007 goldsimon <goldsimon>

Fixed bug #21491: The MSS option sent (with SYN) is now based on TCP_MSS instead of pcb->mss (on passive open now effectively sending our configured TCP_MSS instead of the one received).


# 199648ff 09-Oct-2007 goldsimon <goldsimon>

Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero!


# f600a868 13-Sep-2007 kleshov <kleshov>

Indentation fix


# 8205737f 07-Sep-2007 fbernon <fbernon>

sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only contains IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no size change). Use this new field to access to common pcb fields (ttl, tos, so_options, etc...). Enable to access to these fields with LWIP_TCP=0.


# e3cd1ac1 07-Sep-2007 fbernon <fbernon>

Minor changes (but in lot of files): add #if/#endif for options where they could miss. #if LWIP_xxx if always put after #include "lwip/opt.h" (note this one indirectly include cc.h). Move others includes inside #if/#endif block.


# 027a70a4 07-Sep-2007 fbernon <fbernon>

Last sanity checking centralization for "task #7142 : Sanity check user-configurable values".


# fa4b7114 02-Jul-2007 goldsimon <goldsimon>

Added some ASSERTS and casts to prevent warnings when assigning to smaller types.


# 9abbb581 01-Jul-2007 goldsimon <goldsimon>

Changed tcp_pcb->snd_queuelen from u8_t to u16_t to prevent overflowing when sending many small packets with big send buffer, added assertions and oveflow checks for snd_queuelen.


# 24e29cec 28-Jun-2007 goldsimon <goldsimon>

Fixed bug #20287: Fixed nagle algorithm (sending was done too early if a segment contained chained pbufs)


# 2aef8bad 21-Jun-2007 goldsimon <goldsimon>

Moved the nagle algorithm from netconn_write/do_write into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too.


# 8532d0d1 16-Jun-2007 goldsimon <goldsimon>

Added comments for the callback functions included in struct tcp_listen_pcb


# 066daf21 16-Jun-2007 goldsimon <goldsimon>

Added comments for the callback functions included in structs tcp_pcb, udp_pcb and raw_pcb.


# 5ee9c95e 07-Jun-2007 goldsimon <goldsimon>

Fixed a cast warning by including the type to TCP_PCB_COMMON: (Moved members common to structures tcp_pcp and tcp_listen_pcb into define TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.)


# a14bc9ed 08-Jun-2007 goldsimon <goldsimon>

Moved members common to structures tcp_pcp and tcp_listen_pcb into define TCP_PCB_COMMON (like IP_PCB) to keep (possible) code changes consistent.


# 874415a1 16-May-2007 goldsimon <goldsimon>

Added comments whether fields are host or network byte order (task #1568)


# efd3104f 13-May-2007 goldsimon <goldsimon>

Fixed bug from patch #5865 by moving the defines for socket options (lwip_set/-getsockopt) used with level IPPROTO_TCP from tcp.h to sockets.h.


# 84fc489e 10-May-2007 goldsimon <goldsimon>

Included patch #5448: include '#ifdef __cplusplus \ extern "C" {' in all header files. Now you can write your application using the lwIP stack in C++ and simply #include the core files. Note I have left out the netif/ppp/*h header files for now, since I don't know which files are included by applications and which are for internal use only.


# 79be888b 12-Apr-2007 kieranm <kieranm>

* tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission
timer is reset to fix bug#19434, with help from Oleg Tyshev.


# 05909d6f 11-Apr-2007 kieranm <kieranm>

Apply patch #5745: Fix "Constant is long" warnings with 16bit
compilers. Contributed by avatar@mmlab.cse.yzu.edu.tw


# 5c65d473 11-Mar-2007 fbernon <fbernon>

Keepalive values can be configured at run time with LWIP_TCP_KEEPALIVE, but don't change this unless you know what you're doing (default are RFC1122 compliant). Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds.

Old TCP_KEEPALIVE can always be used, and its only difference with TCP_KEEPIDLE is this last use seconds and not milliseconds with setsockopt.

Some documentation (not perfect, but...):

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/setsockopt.htm


# 86cecd67 08-Mar-2007 fbernon <fbernon>

Keepalive values can be configured at compile time, but don't change this unless you know what you're doing (default are RFC1122 compliant).


# d4b6471d 17-Nov-2006 christiaans <christiaans>

Replaced tabs with space.


# b5f46721 10-Oct-2006 christiaans <christiaans>

Partially accepted patch #5449 for ANSI C compatibility / build fixes. Fixed bug #17574 corrected UDP-Lite protocol identifier.


# e1b215aa 24-Nov-2005 christiaans <christiaans>

Introduced cc.h formatters and removed SO_REUSE from transport layers.


# a549ec03 27-Dec-2004 likewise <likewise>

Added inline source documentation.


# 4e309b79 24-Nov-2004 kieranm <kieranm>

Kieran Mansley - kjm25@cam.ac.uk - 24th Nov 2004
* Changed pcb->rttest from u16_t to u32_t - comparisons with tcp_ticks (which is u32_t) were failing after 9 hours of operation


# 252dcd86 13-Oct-2004 likewise <likewise>

Reverted back the TCP_BETWEEN macro. It does not work on all archs.


# 2ed5bc51 12-Sep-2004 kieranm <kieranm>

Kieran Mansley - kjm25@cam.ac.uk - 12th September 2004

Applied patch from Sam Jansen as detailed in
http://lists.gnu.org/archive/html/lwip-users/2004-07/msg00106.html
to correctly handle retransmission after a retransmission timeout


# a3d27e30 12-Sep-2004 kieranm <kieranm>

Add TCP_SEQ_BETWEEN macro for comparing a range of sequence numbers


# 89abd1f5 08-Sep-2004 likewise <likewise>

Do no longer try to free pbuf when TCP_EVENT_RECV() is called without a callback handler, and without packet.
The standard HTTP server failed on this (as reported by three users).


# e4295396 05-May-2004 likewise <likewise>

Re-instantiated the pack directives. Nested structs do break individual field natural alignment on arm-gcc.


# 79110ba4 05-May-2004 likewise <likewise>

Removed all structure packing directives. Protocol header fields are naturally aligned by design.
(Earlier, the 14-byte ethernet header screwed this up, this had already been fixed by adding two pad bytes.)
Assumption is that compilers do not align with larger-than-sizeof(type) boundaries.
Pre-tag PRE_PACK_REMOVE. Post-tag POST_TAG_REMOVE.


# 4ea55b1b 09-Mar-2004 jani <jani>

only include sys.h once. Noted by Tom Barker


# 475576ec 07-Feb-2004 likewise <likewise>

Updated some copyright notices to include 2004 (a few were forgotten earlier).


# 1ed40e79 06-Feb-2004 likewise <likewise>

Applied alias.diff by Ian Wienand on lwip-devel on February 4th 2004.
Using union to make explicit either tcp_listen_pcb or tcp_pcb.


# e4a6d199 14-Nov-2003 likewise <likewise>

Merged from DEVEL into main tree.


# 80145519 10-Jun-2003 kieranm <kieranm>

Changed DEBUGF to LWIP_DEBUGF


# df99ce9d 09-Jun-2003 likewise <likewise>

Replaced all tabs with two spaces (regardless of indentation is correct).


# cd65d368 19-May-2003 jani <jani>

patches 1492, 1493 and 1494 from Marc


# 9bc16878 16-Apr-2003 likewise <likewise>

Fixed tabs into spaces. Fixed other stylos.


# 441e9b84 19-Mar-2003 jani <jani>

add tcpip_callback patch from Marc


# 18df3961 21-Feb-2003 jani <jani>

byte-order handling functions are in inet.c now and the uperrcase counterparts are gone. opt.h has all the
configurable items debug does not need to be directly included.


# 7f1becc6 18-Feb-2003 davidhaas <davidhaas>

Allow minimal unix target to build in cygwin (but not necessarily run).

Applied a patch from Marc Boucher which has the following changes:

1) Fixed sys_arch.txt documentation to have new return type from
sys_thread_new.

2) Removed unnecessary casts on calling sys_timeout() in certain files.

3) Removed some unnecessary break statements after return statements.

4) Changed sys_timeout_remove() to sys_untimeout().

5) Added some forgotten #ifndef SYS_LIGHTWEIGHT_PROT to memp.c

6) Changed LWIP_DIAG and LWIP_PLATFORM_ASSERT to have do while().


# 1868b2d2 07-Feb-2003 jani <jani>

tcp_timer_needed should be a noop when using the raw API.Fix link error bug #2489


# dd2fa15e 06-Feb-2003 davidhaas <davidhaas>

Add the following features and bugfixes:

Added select() functionality to sockets library.
Support for errno in sockets library.
Byte ordering fixes.
basic lwip_ioctl(), FIONREAD, get/setsockopt() etc. support

- added additional argument to netif_add to pass state pointer so that the
if_init function has access to context information before
the interface is added, without accessing globals.

- added netif_remove()

- to conserve cpu load the tcpip_tcp_timer should only be active
when tcbs that need it exist.

- pass length of available data to callbacks for NETCONN_EVT_RCV events

- added tcpip_link_input(), a hack to allow processing of PPP
packets in tcpip_thread() context. This saves threads and context
switches.

- renamed incompatible ASSERT() macro to LWIP_ASSERT() to avoid name
collision.

- changed a bunch of %d's to %u's in format strings for unsigned values.

- added ip_frag to lwip_stats.

- changed IP_REASS_MAXAGE and IP_REASS_TMO defaults to more realistic
values.

- added sys_timeout_remove() function to cancel timeouts (needed by PPP
amongst other things).

- tolerate NULL returns from sys_arch_timeouts() since some threads might
not need to use or have timeouts.

- added sys_sem_wait_timeout()

- moved mem_malloc() function to end of mem.c to work around tasking
compiler bug.

- automatically bind to local tcp port if 0.

- allow customization of port ranges for automatic local bindings.

- corrected various typos, spelling errors, etc..

Thanks to Marc Boucher for many of these changes.


# 42309b5d 17-Jan-2003 jani <jani>

put a state field in listen PCBs to since they are often treated as normal pcbs. patch #922, bug #2114


# fa8f6cb2 13-Jan-2003 likewise <likewise>

Free incoming pbuf's in the TCP event macro if the recv callback is NULL. Fixes bug #2156.


# 2bba9bcd 10-Jan-2003 jani <jani>

make rtime field u16_t like rto otherwise it won't catch rto if that goes beyond 255.When that happens there's trouble already since 255 ticks is over 2 minutes but still...


# 5e13d495 08-Jan-2003 likewise <likewise>

Merged patch #927 which fixes "needs modifiable lvalue" compile error in TCP_REG.


# cc4df710 08-Jan-2003 likewise <likewise>

Updated lwIP module copyright years to include 2003. Committers must check theirs.


# 40abd148 05-Dec-2002 kieranm <kieranm>

Make tmr in tcp_pcb u32_t to ensure it wraps at the same time as tcp_ticks (Bug #1838)


# 6c977ad6 08-Nov-2002 likewise <likewise>

Surrounded all #include's for packed structs with #ifdef's.


# f1c0bbc6 07-Nov-2002 proff_fs <proff_fs>

Added includeds for bpstruct and epstruct.
Ports should update from using PACK_STRUCT_BEGIN and PACK_STRUCT_END to use these includes.
Maybe there should be an PACK_STRUCT_USE_INCLUDES ifdef around these, for ports for which PACK_STRUCT_BEGIN and PACK_STRUCT_END works nicely.


# 6c979fed 05-Nov-2002 cborrelli <cborrelli>

added ifndef around the TCP_TMR defines so that the user can define these values in the lwipopts.h file if needed; this change will not be seen outside the stack unless the user wants to change the default values.


# f06e9550 18-Oct-2002 likewise <likewise>

Initial revision