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 роки тому
Michael Brown
e24a6cb525
Moved the basic struct sockaddr out of in.h.
18 роки тому
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 роки тому
Nikhil Chandru Rao
9225f4edac
TCP support
18 роки тому
Nikhil Chandru Rao
c24546c70b
Minor changes to the network layer rx() functions
18 роки тому
Michael Brown
beadd82208
Remove unused functions.
18 роки тому
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 роки тому
Michael Brown
3a0e293123
Renamed tcpip_if.[ch] to tcpip.[ch]
18 роки тому
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 роки тому
Michael Brown
ae277992c2
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
18 роки тому
Michael Brown
6e3e5efaed
Accept '%i' as a synonym for '%d'.
18 роки тому
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 роки тому
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 роки тому
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 роки тому
Michael Brown
b26806cf18
Add dhcp_snprintf() for extracting DHCP string options.
18 роки тому
Michael Brown
7ca8bcd98c
Print out the lease time, just to show how easy it is.
18 роки тому
Michael Brown
16d04386b6
Switch default stack to Nikhil's TCP/IP stack
18 роки тому
Michael Brown
e74e20cb55
Remove the static IP address hack from netdevice.c, and change the
default test to the DHCP test.
18 роки тому
Michael Brown
00a1f000b1
Added dhcp_ipv4_option() and friends.
Added test code to configure the interface for IPv4 after DHCP.
18 роки тому
Michael Brown
6a0b4c9772
Free up any allocated options if we fail
18 роки тому
Michael Brown
764cb41456
Document memory ownership.
18 роки тому
Michael Brown
7ca1bb0fbe
Now successfully negotiates the whole DHCPDISCOVER/OFFER/REQUEST/ACK
cycle. :)
18 роки тому
Michael Brown
30d9bcdc6e
Rename unwieldy function
18 роки тому
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 роки тому
Michael Brown
881b90e82c
Packets without a DHCP_MESSAGE_TYPE option are probably just BOOTP
packets.
18 роки тому
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 роки тому
Michael Brown
36c94eae78
Clarify hexiness of header length
18 роки тому
Michael Brown
2c0eb6eb1d
Correct TCP/IP checksum generation.
18 роки тому
Michael Brown
0768670fd8
udp_open() takes ports in network-endian order.
18 роки тому
Nikhil Chandru Rao
13dbf5494d
Minor edits
18 роки тому
Michael Brown
224529d8dd
Now capable of sending what, to me, looks like a valid DHCPDISCOVER
(apart from the bad UDP checksum).
18 роки тому
Michael Brown
a38010fb0e
Make udp_send() call udp_sendto(), rather than vice-versa.
18 роки тому
Michael Brown
7c84b74185
A small but very critical bug.
18 роки тому
Michael Brown
82f3295794
Use more standardised format specifiers in debug messages (e.g. %p for
a pointer).
18 роки тому
Michael Brown
ab633f6a73
Reserve space for lower-layer headers when allocating packet buffer.
Use pkb_available() rather than pkb_len() (which will always return 0
on a freshly allocated buffer).
udp_send() should assume that the buffer has already been allocated.
18 роки тому
Michael Brown
6858b14a34
Add pkb_available()
18 роки тому
Michael Brown
e8daeb62b1
Eliminate confusion between functions that return pointers and
functions that return status codes.
Zero the DHCP packet buffer *before* creating the options structures
inside it.
18 роки тому
Michael Brown
3369f93036
Add block identification to debug messages
18 роки тому
Michael Brown
6d9d48537e
Added some debug messages and DHCP test code
18 роки тому
Michael Brown
317b962b65
Proof of concept: transmit a single DHCPDISCOVER and dump out any
parsed DHCP responses.
18 роки тому
Michael Brown
76070cd226
Added missing prototype
18 роки тому
Michael Brown
16fc9858db
Beginnings of DHCP protocol implementation
18 роки тому
Michael Brown
a7011edfd4
Add net/udp
18 роки тому
Michael Brown
bf0cdd42cf
Add some DHCP options that we are likely to use
18 роки тому
Michael Brown
e0668ad8df
Correct typo
18 роки тому
Nikhil Chandru Rao
bf515d3d65
Minor edit in net/udp.c
18 роки тому
Nikhil Chandru Rao
ab577e1a3a
The following edits were made: \
1. Updated UDP send data code\
2. Corrected internet checksum\
3. Moved udp_buffer() and udp_buflen() to udp.c from udp.h
18 роки тому
Michael Brown
b8d619e822
Added macros for generating static DHCP options
18 роки тому
Michael Brown
254fe6e00e
Split DHCP packet creation into two parts: creating the basic packet
structure, and populating it with options. This should allow us to
use the same basic options list for both DHCPDISCOVER and DHCPREQUEST,
plus making it much easier to set the non-constant parameters
(e.g. requested IP address) in request packets.
18 роки тому
Michael Brown
e40ebb67de
Allow for calling find_dhcp_option() with "options" set to NULL, in order
to search through all registered option blocks.
Move some static inlines that are likely to be used frequently into
dhcpopts.c as normal functions, to save space.
18 роки тому