Michael Brown
3f0b4d9ed8
Updated to use asynchronous operation model for iSCSI requests
Added CHAP authentication
18 years ago
Michael Brown
fedc186fd7
Split login into security negotation and operational parameter
negotiation phases, to allow inclusion of CHAP authentication.
18 years ago
Michael Brown
88e38fa148
We don't actually have a stdio.h header file. Our printf() functions are
defined in vsprintf.h. (This may change, since vsprintf.h is a
non-standard name, but for now it's the one to use.)
There should be no need to include vsprintf.h just for DBG() statements,
since include/compiler.h forces it in for a debug build anyway.
18 years ago
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
18 years ago
Michael Brown
0dca1dc8ce
Made eth_ntoa() public for use in legacy drivers' DBG() statements.
18 years ago
Michael Brown
095fce14f8
Added extra debugging
18 years ago
Michael Brown
cab3f4502b
Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
18 years ago
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 years ago
Nikhil Chandru Rao
d1d334b8e1
IP6 support
18 years ago
Michael Brown
f1e1dfae3d
Added RX tracing as well.
18 years ago
Michael Brown
0743dc5b0d
Added some minimal debugging for transmitted PDUs.
18 years ago
Derek Pryor
562ab6d65c
Bug fixes to the HTTP protocol code
18 years ago
Derek Pryor
0f88703019
Bug fixes to the HTTP protocol code
18 years ago
Michael Brown
db0ff1731f
Fail gracefully when set_dhcp_option() is called with options==NULL.
18 years ago
Derek Pryor
25ea34a8d7
New HTTP protocol and test code
18 years ago
Michael Brown
2497270c14
command->data_{in,out} are now userptr_t, so it is invalid to compare
against NULL.
18 years ago
Michael Brown
ea5fa82b91
Fixed variable name in assertion
18 years ago
Michael Brown
c3a4f3c5da
Towards an RFC2988-compliant timer.
18 years ago
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 years ago
Nikhil Chandru Rao
3aff701001
Changed the TCP state machines behaviour in the ESTABLISHED state
18 years ago
Michael Brown
dc8b96b446
Temporarily work around the bug when port numbers are reused between
subsequent runs.
18 years ago
Michael Brown
09688cb3b5
Correct some packet ownership and freeing bugs.
18 years ago
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 years ago
Michael Brown
065a2a486d
Port the UDP port allocation code to TCP
18 years ago
Michael Brown
de0c36a98a
Remove some of the confusion surrounding the amount to strip off from
a TCP packet before passing to newdata().
18 years ago
Michael Brown
867c7aef59
iphdr->hlen includes the IP header, so truncate packet *before*
stripping the header. Also fix an htons/ntohs confusion.
18 years ago
Marty Connor
ee9ae8130a
Remove _PROTOCOL macros for gcc 3.2 compatibility
18 years ago
Michael Brown
e9561aafc0
Derive xid dynamically from the netdev, so that we can call
create_dhcp_packet() from pxe_preboot.c, after the dhcp_session is long
gone.
Expose the functions required by pxe_preboot.c
18 years ago
Michael Brown
a3d508b648
Clarified packet ownership transfer between a few functions.
Added a large number of missing calls to free_pkb(). In the case of UDP,
no received packets were ever freed, which lead to memory exhaustion
remarkably quickly once pxelinux started up.
In general, any function with _rx() in its name which accepts a pk_buff
*must* either call free_pkb() or pass the pkb to another _rx() function
(e.g. the next layer up the stack). Since the UDP (and TCP) layers don't
pass packet buffers up to the higher-layer protocols (the
"applications"), they must free the packet buffer after calling the
application's newdata() method.
18 years ago
Michael Brown
d1a123b1f4
Added TFTP test code (currently just dumps file to console).
18 years ago
Michael Brown
3611cb17b7
Initial (untested) implementation of TFTP over the new UDP API.
18 years ago
Nikhil Chandru Rao
409f69a08a
Changed ipv4_dump() to consume only one line.
18 years ago
Nikhil Chandru Rao
8bf38fb400
Corrected bugs in the TCP logic. There might be a few more which need to be taken care of.
18 years ago
Michael Brown
68e33224ef
gcc3 compatibility: removed ARP_NET_PROTOCOL().
18 years ago
Nikhil Chandru Rao
d2bdf81505
Removed some bugs in TCP
18 years ago
Nikhil Chandru Rao
cb42e573a0
Added retransmissions to TCP
18 years ago
Michael Brown
885a630ddf
Fix routing when a gateway exists. This should probably be split into
a separate function.
18 years ago
Michael Brown
d0e4f198d6
Add iSCSI to the DHCP tests.
Start updating iscsi.c to use Nikhil's TCP API.
18 years ago
Nikhil Chandru Rao
6714ec745a
Minor corrections
18 years ago
Michael Brown
eb24eece0e
Convert some trivial functions to static inlines.
18 years ago
Michael Brown
ffe0e24249
Make the UDP senddata() methods return a status code.
udp_connect() now follows the standard BSD sockets semantics and simply
sets the default address for outgoing packets; it doesn't filter incoming
packets.
18 years ago
Michael Brown
a0a872f7f1
Updated PXE UDP implementation to use the new Etherboot UDP API.
Updated PXE API dispatcher to use copy_{to,from}_user, and moved to
arch/i386 since the implementation is quite architecture-dependent.
(The individual PXE API calls can be largely
architecture-independent.)
18 years ago
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 years ago
Nikhil Chandru Rao
9225f4edac
TCP support
18 years ago
Nikhil Chandru Rao
c24546c70b
Minor changes to the network layer rx() functions
18 years ago
Michael Brown
beadd82208
Remove unused functions.
18 years ago
Michael Brown
1ebb68e49a
Renamed trans_{rx,tx}() to tcpip_{rx,tx}(), since they are specific to
the TCP/IP protocol suite (rather than being general transport-layer
functions).
18 years ago
Michael Brown
3a0e293123
Renamed tcpip_if.[ch] to tcpip.[ch]
18 years ago
Michael Brown
21c3d63c2e
We shouldn't need to allocate a TX packet buffer when calling newdata();
if the application wants to send data then it will have to use the normal
senddata() mechanism.
18 years ago
Michael Brown
ae277992c2
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
18 years ago