summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe/tcp.h
Commit message (Collapse)AuthorAgeFilesLines
* [build] Rename gPXE to iPXEMichael Brown2010-04-201-318/+0Star
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [tcp] Improve robustness in the presence of duplicated received packetsMichael Brown2009-06-231-0/+10
| | | | | | | | | | | | | | | | | | | | | | gPXE responds to duplicated ACKs with an immediate retransmission, which can lead to a sorceror's apprentice syndrome. It also responds to out-of-range (or old duplicate) ACKs with a RST, which can cause valid connections to be dropped. Fix the sorceror's apprentice syndrome by leaving the retransmission timer running (and so inhibiting the immediate retransmission) when we receive a potential duplicate ACK. This seems to match the behaviour of Linux observed via wireshark traces. Fix the RST issue by sending RST only on out-of-range ACKs that occur before the connection is fully established, as per RFC 793. These problems were exposed during development of the 802.11 wireless link layer; the 802.11 protocol has a failure mode that can easily cause duplicated packets. The fixes were tested in a controlled way by faking large numbers of duplicated packets in the rtl8139 driver. Originally-fixed-by: Joshua Oreman <oremanj@rwcr.net>
* [legal] Add a selection of FILE_LICENCE declarationsMichael Brown2009-05-181-0/+2
| | | | | Add FILE_LICENCE declarations to almost all files that make up the various standard builds of gPXE.
* Modify gPXE core and drivers to work with the new timer subsystemAlexey Zaytsev2008-03-021-1/+0Star
| | | | Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
* IB can't afford many RX buffers, because the MTU is so large. ReduceMichael Brown2007-09-181-1/+2
| | | | the TCP window to compensate.
* Add support for TCP timestampsMichael Brown2007-07-131-3/+44
|
* Remove some obsolete stream-API filesMichael Brown2007-07-091-1/+0Star
|
* Limit xmit window to one MTU. (Path MTU discovery not yetMichael Brown2007-07-081-0/+8
| | | | implemented; should be done at some point.)
* Updated tcp.c to provide a standardised data transfer interface.Michael Brown2007-05-251-2/+0Star
|
* pkbuff->iobuf changeoverMichael Brown2007-05-191-3/+3
| | | | | | | | Achieved via Perl using: perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \ -e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \ -e 's/pkb/iobuf/g; s/PKB/IOB/g;'
* Changed to use the generic stream API.Michael Brown2007-01-311-99/+2Star
|
* Use total free memory as advertised window. This seems to be sufficientMichael Brown2007-01-181-25/+14Star
| | | | to avoid drops even on slow NICs.
* Increase window size to 64kB. Line rate downloads on a 100Mbps link,Michael Brown2007-01-181-9/+30
| | | | anyone?
* Advertise a larger MSS to improve TCP performance.Michael Brown2007-01-131-1/+23
|
* Use whole bytes for the ACKED and RCVD portions of tcp_state; itMichael Brown2006-12-301-3/+3
| | | | produces slightly smaller code.
* Redefine TCP state to include "flags that have been sent" rather thanMichael Brown2006-12-291-28/+31
| | | | | | "flags that are currently being sent". This allows at least one special case (checking that we haven't already sent a FIN in tcp_rx_fin()) to be collapsed.
* Merge changes from mcb-tcp-fixes branch.Michael Brown2006-12-281-140/+240
|
* Update ftp.c to work with Nikhil's TCP stack.Michael Brown2006-12-051-4/+4
| | | | Remove the now-totally-obsolete sockaddr_in field from tcp.h.
* Removed some bugs in TCPNikhil Chandru Rao2006-08-081-3/+2Star
|
* Added retransmissions to TCPNikhil Chandru Rao2006-08-071-0/+6
|
* Added features that will be required for PXE UDP support.Michael Brown2006-08-021-4/+8
| | | | | | | Introduced struct sockaddr_tcpip, to simplify code that deals with both IPv4 and IPv6 addresses. Reorganised parts of tcpip.c and udp.c.
* TCP supportNikhil Chandru Rao2006-08-011-0/+106
|
* Made the temporary buffer part of the TCP senddata() API, to ease theMichael Brown2006-06-181-3/+11
| | | | | | transition away from uIP. Prepared ipv4.c for transition away from uIP.
* Added tcp_kick(). This speed up LILO and GRUB booting by almost twoMichael Brown2006-05-271-0/+1
| | | | orders of magnitude.
* Merge TCP aborted(), timedout() and closed() methods into a singleMichael Brown2006-04-301-15/+11Star
| | | | closed() method with a reason code.
* Make tcp_connect() void; it will eventually have no failure case.Michael Brown2006-04-301-1/+1
|
* Header rearrangement.Michael Brown2006-04-241-3/+3
| | | | | | | | | I want to get to the point where any header in include/ reflects a standard user-level header (e.g. a POSIX header), while everything that's specific to gPXE lives in include/gpxe/. Headers that reflect a Linux header (e.g. if_ether.h) should also be in include/gpxe/, with the same name as the Linux header and, preferably, the same names used for the definitions.
* Added tcp_buffer, to give applications a zero-cost place to build data toMichael Brown2006-04-051-0/+2
| | | | be transmitted.
* Split non-TCP portions of the stack out into ip.[ch].Michael Brown2006-03-241-2/+0Star
| | | | Added set_ipaddr().
* Moved uIP wrapper out of prototester.c and into proto/tcp.c.Michael Brown2006-03-231-0/+102