Michael Brown
3f0b4d9ed8
Updated to use asynchronous operation model for iSCSI requests
Added CHAP authentication
il y a 18 ans
Michael Brown
fedc186fd7
Split login into security negotation and operational parameter
negotiation phases, to allow inclusion of CHAP authentication.
il y a 18 ans
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.
il y a 18 ans
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
il y a 18 ans
Michael Brown
0dca1dc8ce
Made eth_ntoa() public for use in legacy drivers' DBG() statements.
il y a 18 ans
Michael Brown
095fce14f8
Added extra debugging
il y a 18 ans
Michael Brown
cab3f4502b
Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
il y a 18 ans
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
il y a 18 ans
Nikhil Chandru Rao
d1d334b8e1
IP6 support
il y a 18 ans
Michael Brown
f1e1dfae3d
Added RX tracing as well.
il y a 18 ans
Michael Brown
0743dc5b0d
Added some minimal debugging for transmitted PDUs.
il y a 18 ans
Derek Pryor
562ab6d65c
Bug fixes to the HTTP protocol code
il y a 18 ans
Derek Pryor
0f88703019
Bug fixes to the HTTP protocol code
il y a 18 ans
Michael Brown
db0ff1731f
Fail gracefully when set_dhcp_option() is called with options==NULL.
il y a 18 ans
Derek Pryor
25ea34a8d7
New HTTP protocol and test code
il y a 18 ans
Michael Brown
2497270c14
command->data_{in,out} are now userptr_t, so it is invalid to compare
against NULL.
il y a 18 ans
Michael Brown
ea5fa82b91
Fixed variable name in assertion
il y a 18 ans
Michael Brown
c3a4f3c5da
Towards an RFC2988-compliant timer.
il y a 18 ans
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.
il y a 18 ans
Nikhil Chandru Rao
3aff701001
Changed the TCP state machines behaviour in the ESTABLISHED state
il y a 18 ans
Michael Brown
dc8b96b446
Temporarily work around the bug when port numbers are reused between
subsequent runs.
il y a 18 ans
Michael Brown
09688cb3b5
Correct some packet ownership and freeing bugs.
il y a 18 ans
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.
il y a 18 ans
Michael Brown
065a2a486d
Port the UDP port allocation code to TCP
il y a 18 ans
Michael Brown
de0c36a98a
Remove some of the confusion surrounding the amount to strip off from
a TCP packet before passing to newdata().
il y a 18 ans
Michael Brown
867c7aef59
iphdr->hlen includes the IP header, so truncate packet *before*
stripping the header. Also fix an htons/ntohs confusion.
il y a 18 ans
Marty Connor
ee9ae8130a
Remove _PROTOCOL macros for gcc 3.2 compatibility
il y a 18 ans
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
il y a 18 ans
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.
il y a 18 ans
Michael Brown
d1a123b1f4
Added TFTP test code (currently just dumps file to console).
il y a 18 ans
Michael Brown
3611cb17b7
Initial (untested) implementation of TFTP over the new UDP API.
il y a 18 ans
Nikhil Chandru Rao
409f69a08a
Changed ipv4_dump() to consume only one line.
il y a 18 ans
Nikhil Chandru Rao
8bf38fb400
Corrected bugs in the TCP logic. There might be a few more which need to be taken care of.
il y a 18 ans
Michael Brown
68e33224ef
gcc3 compatibility: removed ARP_NET_PROTOCOL().
il y a 18 ans
Nikhil Chandru Rao
d2bdf81505
Removed some bugs in TCP
il y a 18 ans
Nikhil Chandru Rao
cb42e573a0
Added retransmissions to TCP
il y a 18 ans
Michael Brown
885a630ddf
Fix routing when a gateway exists. This should probably be split into
a separate function.
il y a 18 ans
Michael Brown
d0e4f198d6
Add iSCSI to the DHCP tests.
Start updating iscsi.c to use Nikhil's TCP API.
il y a 18 ans
Nikhil Chandru Rao
6714ec745a
Minor corrections
il y a 18 ans
Michael Brown
eb24eece0e
Convert some trivial functions to static inlines.
il y a 18 ans
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.
il y a 18 ans
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.)
il y a 18 ans
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.
il y a 18 ans
Nikhil Chandru Rao
9225f4edac
TCP support
il y a 18 ans
Nikhil Chandru Rao
c24546c70b
Minor changes to the network layer rx() functions
il y a 18 ans
Michael Brown
beadd82208
Remove unused functions.
il y a 18 ans
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).
il y a 18 ans
Michael Brown
3a0e293123
Renamed tcpip_if.[ch] to tcpip.[ch]
il y a 18 ans
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.
il y a 18 ans
Michael Brown
ae277992c2
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
il y a 18 ans