Michael Brown
b9f9230661
Work around another instance of the port re-use bug.
18 gadus atpakaļ
Michael Brown
cc0b92652f
Call closed() method only when the connection is genuinely in the
TCP_CLOSED state (i.e. after the final FIN/ACK exchange), and has been
removed from the list of TCP connections.
18 gadus atpakaļ
Michael Brown
fcc70c9d60
Ensure that tcp_rx() always frees its received packet buffer.
18 gadus atpakaļ
Michael Brown
28c711b91d
Killed off spurious <stdio.h> inclusion
18 gadus atpakaļ
Michael Brown
3fbfbad0f7
Avoid calling NULL methods!
18 gadus atpakaļ
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
18 gadus atpakaļ
Nikhil Chandru Rao
dccb8358bd
Fixed a bug in the TCP state machine. Added a transition from ESTABLISHED to LAST_ACK on receiving a FIN,ACK
18 gadus atpakaļ
Michael Brown
f0718d562f
Don't call stop_timer() from within the timer expiry callback; it's
already stopped.
Don't call start_timer() when sending a dataless ACK. This may or may
not be the right thing to do; I can't tell.
Back out broken "send ACK only if required to" logic temporarily.
18 gadus atpakaļ
Nikhil Chandru Rao
3aff701001
Changed the TCP state machines behaviour in the ESTABLISHED state
18 gadus atpakaļ
Michael Brown
dc8b96b446
Temporarily work around the bug when port numbers are reused between
subsequent runs.
18 gadus atpakaļ
Michael Brown
09688cb3b5
Correct some packet ownership and freeing bugs.
18 gadus atpakaļ
Michael Brown
43d601b678
out_flags was being set but never used.
Use just random() to allocate initial sequence numbers; the previous
algorithm ended up with a high probability of zeroing the high word.
18 gadus atpakaļ
Michael Brown
065a2a486d
Port the UDP port allocation code to TCP
18 gadus atpakaļ
Michael Brown
de0c36a98a
Remove some of the confusion surrounding the amount to strip off from
a TCP packet before passing to newdata().
18 gadus atpakaļ
Marty Connor
ee9ae8130a
Remove _PROTOCOL macros for gcc 3.2 compatibility
18 gadus atpakaļ
Nikhil Chandru Rao
8bf38fb400
Corrected bugs in the TCP logic. There might be a few more which need to be taken care of.
18 gadus atpakaļ
Nikhil Chandru Rao
d2bdf81505
Removed some bugs in TCP
18 gadus atpakaļ
Nikhil Chandru Rao
cb42e573a0
Added retransmissions to TCP
18 gadus atpakaļ
Nikhil Chandru Rao
6714ec745a
Minor corrections
18 gadus atpakaļ
Michael Brown
467e9627cc
Added features that will be required for PXE UDP support.
Introduced struct sockaddr_tcpip, to simplify code that deals with
both IPv4 and IPv6 addresses.
Reorganised parts of tcpip.c and udp.c.
18 gadus atpakaļ
Nikhil Chandru Rao
9225f4edac
TCP support
18 gadus atpakaļ
Michael Brown
8637834031
Made the temporary buffer part of the TCP senddata() API, to ease the
transition away from uIP.
Prepared ipv4.c for transition away from uIP.
19 gadus atpakaļ
Michael Brown
3c8aafa209
Simplify RX data path.
Kill off the static single net device and move to proper dynamic
registration (which we need with the new device model).
Break the (flawed) assumption that all network-layer protocols can use
ARP; such network-layer protocols (i.e. IPv4) must now register as an ARP
protocol using ARP_NET_PROTOCOL() and provide a single method for checking
the existence of a local network-layer address.
19 gadus atpakaļ
Michael Brown
bbd9e28061
Simplify TX datapath.
19 gadus atpakaļ
Michael Brown
f743de4858
Added tcp_kick(). This speed up LILO and GRUB booting by almost two
orders of magnitude.
19 gadus atpakaļ
Michael Brown
9e1becaf8a
Merge TCP aborted(), timedout() and closed() methods into a single
closed() method with a reason code.
19 gadus atpakaļ
Michael Brown
04b6a1e004
Make all TCP methods optional; at least FTP data is a read-only
connection and so legitimately ignores acked() and senddata().
19 gadus atpakaļ
Michael Brown
7af478b30d
Make tcp_connect() void; it will eventually have no failure case.
19 gadus atpakaļ
Michael Brown
9c9208a132
Put the TCP connection periodic processing in tcp.c, where it belongs.
19 gadus atpakaļ
Michael Brown
592a5a99c8
Moved uIP and tcp.c from proto/ to net/
19 gadus atpakaļ
Michael Brown
c8a7133e9f
Added tcp_buffer, to give applications a zero-cost place to build data to
be transmitted.
19 gadus atpakaļ
Michael Brown
ee058362fa
We don't need to know anything about ARP
19 gadus atpakaļ
Michael Brown
b44332eb7d
Split non-TCP portions of the stack out into ip.[ch].
Added set_ipaddr().
19 gadus atpakaļ
Michael Brown
a4a0244aa3
Moved uIP wrapper out of prototester.c and into proto/tcp.c.
19 gadus atpakaļ
Michael Brown
531371efa2
Removed to make way for the uIP-based tcp.c.
19 gadus atpakaļ
Michael Brown
53a4436d94
TFTP upgraded to use a core function library (in tftpcore.c) which will be
shared between TFTP, TFTM and MTFTP protocols.
20 gadus atpakaļ
Michael Brown
a918abc036
Split TCP code out into proto/tcp.c
20 gadus atpakaļ