Michael Brown
fd07f56f0d
Note to self: learn to count.
18 gadus atpakaļ
Michael Brown
843bcc291d
Added missing __from_text16()s when passing pointers to PXE NBP.
18 gadus atpakaļ
Michael Brown
71754ada2a
Allow linking by converting functions to stubs
18 gadus atpakaļ
Michael Brown
17ecfd1d67
Allow linking by converting all functions to stubs
18 gadus atpakaļ
Michael Brown
751ae718bd
pxe_int_1a is needed by pxe_call.c
18 gadus atpakaļ
Michael Brown
d1a123b1f4
Added TFTP test code (currently just dumps file to console).
18 gadus atpakaļ
Michael Brown
3611cb17b7
Initial (untested) implementation of TFTP over the new UDP API.
18 gadus atpakaļ
Michael Brown
eda79ec32b
The prototype for strcasecmp() is apparently in strings.h.
18 gadus atpakaļ
Nikhil Chandru Rao
409f69a08a
Changed ipv4_dump() to consume only one line.
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ļ
Michael Brown
72cd29f13c
Added some TFTP definitions for use with the new UDP API.
18 gadus atpakaļ
Michael Brown
18c112d205
Added (not yet tested) PXE API entry point and support functions.
18 gadus atpakaļ
Michael Brown
d12383f1d3
Update to match the daft capitalisation in the actual PXE spec
18 gadus atpakaļ
Michael Brown
68e33224ef
gcc3 compatibility: removed ARP_NET_PROTOCOL().
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ļ
Michael Brown
010288577f
Add very, very quick and dirty hello world test
18 gadus atpakaļ
Michael Brown
885a630ddf
Fix routing when a gateway exists. This should probably be split into
a separate function.
18 gadus atpakaļ
Michael Brown
8a3f4b7de6
Set a NUL terminator before calling inet_aton.
18 gadus atpakaļ
Michael Brown
ecdcdea1af
Remove unused attribute from __table macros; the tables are no longer
static since otherwise gcc4 optimises them away completely. Also, it
really *is* an error if the table start and end are unused, so they
certainly shouldn't be marked with attribute unused.
18 gadus atpakaļ
Michael Brown
d0e4f198d6
Add iSCSI to the DHCP tests.
Start updating iscsi.c to use Nikhil's TCP API.
18 gadus atpakaļ
Nikhil Chandru Rao
6714ec745a
Minor corrections
18 gadus atpakaļ
Michael Brown
eb24eece0e
Convert some trivial functions to static inlines.
18 gadus atpakaļ
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 gadus atpakaļ
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 gadus atpakaļ
Michael Brown
e24a6cb525
Moved the basic struct sockaddr out of in.h.
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ļ
Nikhil Chandru Rao
c24546c70b
Minor changes to the network layer rx() functions
18 gadus atpakaļ
Michael Brown
beadd82208
Remove unused functions.
18 gadus atpakaļ
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 gadus atpakaļ
Michael Brown
3a0e293123
Renamed tcpip_if.[ch] to tcpip.[ch]
18 gadus atpakaļ
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 gadus atpakaļ
Michael Brown
ae277992c2
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
18 gadus atpakaļ
Michael Brown
6e3e5efaed
Accept '%i' as a synonym for '%d'.
18 gadus atpakaļ
Michael Brown
9e761f5f28
Print out "DHCP..." message just in case people think the demo is sitting
there doing nothing when it's actually waiting for a DHCP reply.
18 gadus atpakaļ
Michael Brown
a92d242008
Allow an AoE boot to be directed via DHCP, so that we have a proof of
concept demo that actually does something useful.
18 gadus atpakaļ
Michael Brown
3085f03ad4
Request Etherboot encapsulated options.
Parameter request list is yet another option that ISC dhcpd ignores
unless it's in the main options block.
Fix logic error in parsing file and sname fields.
18 gadus atpakaļ
Michael Brown
b26806cf18
Add dhcp_snprintf() for extracting DHCP string options.
18 gadus atpakaļ
Michael Brown
7ca8bcd98c
Print out the lease time, just to show how easy it is.
18 gadus atpakaļ
Michael Brown
16d04386b6
Switch default stack to Nikhil's TCP/IP stack
18 gadus atpakaļ
Michael Brown
e74e20cb55
Remove the static IP address hack from netdevice.c, and change the
default test to the DHCP test.
18 gadus atpakaļ
Michael Brown
00a1f000b1
Added dhcp_ipv4_option() and friends.
Added test code to configure the interface for IPv4 after DHCP.
18 gadus atpakaļ
Michael Brown
6a0b4c9772
Free up any allocated options if we fail
18 gadus atpakaļ
Michael Brown
764cb41456
Document memory ownership.
18 gadus atpakaļ
Michael Brown
7ca1bb0fbe
Now successfully negotiates the whole DHCPDISCOVER/OFFER/REQUEST/ACK
cycle. :)
18 gadus atpakaļ
Michael Brown
30d9bcdc6e
Rename unwieldy function
18 gadus atpakaļ
Michael Brown
9ad5cede96
Set DHCP_MESSAGE_TYPE option within the main options block. This
doesn't seem to be required by the RFCs, but at least ISC dhcpd and
ethereal refuse to recognise it otherwise.
18 gadus atpakaļ
Michael Brown
881b90e82c
Packets without a DHCP_MESSAGE_TYPE option are probably just BOOTP
packets.
18 gadus atpakaļ
Michael Brown
29b358dd39
conn->local_port is now network-endian; do not swap when comparing
against value in header.
Temporarily disable RX checksumming; it's broken and is holding up
work on higher-layer protocols
.
18 gadus atpakaļ