Marty Connor [Wed, 9 Aug 2006 04:42:14 +0000 (04:42 +0000)]
Remove _PROTOCOL macros for gcc 3.2 compatibility
Marty Connor [Wed, 9 Aug 2006 03:43:41 +0000 (03:43 +0000)]
Make VERSION_MAJOR for gPXE be 0
Michael Brown [Wed, 9 Aug 2006 03:25:11 +0000 (03:25 +0000)]
Corrected documentation
Michael Brown [Wed, 9 Aug 2006 03:22:29 +0000 (03:22 +0000)]
Removed obsolete line merged in with the cmdline stuff
Michael Brown [Wed, 9 Aug 2006 03:21:02 +0000 (03:21 +0000)]
Do no evil. :)
Michael Brown [Wed, 9 Aug 2006 03:00:11 +0000 (03:00 +0000)]
Attempt a PXE NBP boot as the TFTP test.
Michael Brown [Wed, 9 Aug 2006 02:59:19 +0000 (02:59 +0000)]
Implement enough of PXENV_GET_CACHED_INFO to support pxelinux.
Michael Brown [Wed, 9 Aug 2006 02:58:27 +0000 (02:58 +0000)]
Added pxe_netdev; a slight hack for now, but will need to be done
properly for the PXE UNDI API anyway.
Michael Brown [Wed, 9 Aug 2006 02:56:40 +0000 (02:56 +0000)]
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
Michael Brown [Wed, 9 Aug 2006 02:37:05 +0000 (02:37 +0000)]
Aborted
Marty Connor [Wed, 9 Aug 2006 02:30:35 +0000 (02:30 +0000)]
Merge of Fredrik Hultin command_line
Michael Brown [Wed, 9 Aug 2006 01:57:02 +0000 (01:57 +0000)]
Add a couple of small but vital parts to PXENV_UDP_WRITE.
Michael Brown [Wed, 9 Aug 2006 01:24:32 +0000 (01:24 +0000)]
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.
Michael Brown [Wed, 9 Aug 2006 00:56:07 +0000 (00:56 +0000)]
Note to self: learn to count.
Michael Brown [Wed, 9 Aug 2006 00:39:21 +0000 (00:39 +0000)]
Added missing __from_text16()s when passing pointers to PXE NBP.
Michael Brown [Wed, 9 Aug 2006 00:25:29 +0000 (00:25 +0000)]
Allow linking by converting functions to stubs
Michael Brown [Wed, 9 Aug 2006 00:22:28 +0000 (00:22 +0000)]
Allow linking by converting all functions to stubs
Michael Brown [Wed, 9 Aug 2006 00:16:57 +0000 (00:16 +0000)]
pxe_int_1a is needed by pxe_call.c
Michael Brown [Wed, 9 Aug 2006 00:09:29 +0000 (00:09 +0000)]
Added TFTP test code (currently just dumps file to console).
Michael Brown [Tue, 8 Aug 2006 23:45:52 +0000 (23:45 +0000)]
Initial (untested) implementation of TFTP over the new UDP API.
Michael Brown [Tue, 8 Aug 2006 22:52:16 +0000 (22:52 +0000)]
The prototype for strcasecmp() is apparently in strings.h.
Nikhil Chandru Rao [Tue, 8 Aug 2006 22:26:35 +0000 (22:26 +0000)]
Changed ipv4_dump() to consume only one line.
Nikhil Chandru Rao [Tue, 8 Aug 2006 22:25:20 +0000 (22:25 +0000)]
Corrected bugs in the TCP logic. There might be a few more which need to be taken care of.
Michael Brown [Tue, 8 Aug 2006 22:01:16 +0000 (22:01 +0000)]
Added some TFTP definitions for use with the new UDP API.
Michael Brown [Tue, 8 Aug 2006 20:43:33 +0000 (20:43 +0000)]
Added (not yet tested) PXE API entry point and support functions.
Michael Brown [Tue, 8 Aug 2006 20:43:05 +0000 (20:43 +0000)]
Update to match the daft capitalisation in the actual PXE spec
Michael Brown [Tue, 8 Aug 2006 17:44:25 +0000 (17:44 +0000)]
gcc3 compatibility: removed ARP_NET_PROTOCOL().
Nikhil Chandru Rao [Tue, 8 Aug 2006 03:42:30 +0000 (03:42 +0000)]
Removed some bugs in TCP
Nikhil Chandru Rao [Mon, 7 Aug 2006 18:52:26 +0000 (18:52 +0000)]
Added retransmissions to TCP
Michael Brown [Mon, 7 Aug 2006 18:49:10 +0000 (18:49 +0000)]
Add very, very quick and dirty hello world test
Michael Brown [Mon, 7 Aug 2006 17:51:19 +0000 (17:51 +0000)]
Fix routing when a gateway exists. This should probably be split into
a separate function.
Michael Brown [Mon, 7 Aug 2006 17:50:41 +0000 (17:50 +0000)]
Set a NUL terminator before calling inet_aton.
Michael Brown [Mon, 7 Aug 2006 17:06:31 +0000 (17:06 +0000)]
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.
Michael Brown [Mon, 7 Aug 2006 16:48:24 +0000 (16:48 +0000)]
Add iSCSI to the DHCP tests.
Start updating iscsi.c to use Nikhil's TCP API.
Nikhil Chandru Rao [Mon, 7 Aug 2006 07:37:23 +0000 (07:37 +0000)]
Minor corrections
Michael Brown [Thu, 3 Aug 2006 23:42:03 +0000 (23:42 +0000)]
Convert some trivial functions to static inlines.
Michael Brown [Thu, 3 Aug 2006 23:10:14 +0000 (23:10 +0000)]
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.
Michael Brown [Wed, 2 Aug 2006 23:08:10 +0000 (23:08 +0000)]
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.)
Michael Brown [Wed, 2 Aug 2006 00:06:30 +0000 (00:06 +0000)]
Moved the basic struct sockaddr out of in.h.
Michael Brown [Wed, 2 Aug 2006 00:02:21 +0000 (00:02 +0000)]
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.
Nikhil Chandru Rao [Tue, 1 Aug 2006 20:46:50 +0000 (20:46 +0000)]
TCP support
Nikhil Chandru Rao [Tue, 1 Aug 2006 20:27:26 +0000 (20:27 +0000)]
Minor changes to the network layer rx() functions
Michael Brown [Tue, 1 Aug 2006 14:26:02 +0000 (14:26 +0000)]
Remove unused functions.
Michael Brown [Tue, 1 Aug 2006 14:22:04 +0000 (14:22 +0000)]
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).
Michael Brown [Tue, 1 Aug 2006 14:18:09 +0000 (14:18 +0000)]
Renamed tcpip_if.[ch] to tcpip.[ch]
Michael Brown [Tue, 1 Aug 2006 14:13:58 +0000 (14:13 +0000)]
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.
Michael Brown [Tue, 1 Aug 2006 14:12:27 +0000 (14:12 +0000)]
Request bootfile name; it doesn't seem to be automatically supplied by
all servers.
Michael Brown [Tue, 25 Jul 2006 14:33:20 +0000 (14:33 +0000)]
Accept '%i' as a synonym for '%d'.
Michael Brown [Thu, 20 Jul 2006 14:20:11 +0000 (14:20 +0000)]
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.
Michael Brown [Thu, 20 Jul 2006 14:15:23 +0000 (14:15 +0000)]
Allow an AoE boot to be directed via DHCP, so that we have a proof of
concept demo that actually does something useful.
Michael Brown [Thu, 20 Jul 2006 14:14:41 +0000 (14:14 +0000)]
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.
Michael Brown [Thu, 20 Jul 2006 14:13:11 +0000 (14:13 +0000)]
Add dhcp_snprintf() for extracting DHCP string options.
Michael Brown [Thu, 20 Jul 2006 03:02:34 +0000 (03:02 +0000)]
Print out the lease time, just to show how easy it is.
Michael Brown [Thu, 20 Jul 2006 02:53:15 +0000 (02:53 +0000)]
Switch default stack to Nikhil's TCP/IP stack
Michael Brown [Thu, 20 Jul 2006 02:51:52 +0000 (02:51 +0000)]
Remove the static IP address hack from netdevice.c, and change the
default test to the DHCP test.
Michael Brown [Thu, 20 Jul 2006 02:49:59 +0000 (02:49 +0000)]
Added dhcp_ipv4_option() and friends.
Added test code to configure the interface for IPv4 after DHCP.
Michael Brown [Thu, 20 Jul 2006 02:25:39 +0000 (02:25 +0000)]
Free up any allocated options if we fail
Michael Brown [Thu, 20 Jul 2006 02:23:42 +0000 (02:23 +0000)]
Document memory ownership.
Michael Brown [Thu, 20 Jul 2006 02:19:06 +0000 (02:19 +0000)]
Now successfully negotiates the whole DHCPDISCOVER/OFFER/REQUEST/ACK
cycle. :)
Michael Brown [Thu, 20 Jul 2006 00:24:25 +0000 (00:24 +0000)]
Rename unwieldy function
Michael Brown [Thu, 20 Jul 2006 00:18:50 +0000 (00:18 +0000)]
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.
Michael Brown [Thu, 20 Jul 2006 00:03:25 +0000 (00:03 +0000)]
Packets without a DHCP_MESSAGE_TYPE option are probably just BOOTP
packets.
Michael Brown [Thu, 20 Jul 2006 00:03:01 +0000 (00:03 +0000)]
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
.
Michael Brown [Thu, 20 Jul 2006 00:01:50 +0000 (00:01 +0000)]
Clarify hexiness of header length
Michael Brown [Wed, 19 Jul 2006 23:38:05 +0000 (23:38 +0000)]
Correct TCP/IP checksum generation.
Michael Brown [Wed, 19 Jul 2006 21:56:27 +0000 (21:56 +0000)]
udp_open() takes ports in network-endian order.
Nikhil Chandru Rao [Wed, 19 Jul 2006 21:05:58 +0000 (21:05 +0000)]
Minor edits
Michael Brown [Wed, 19 Jul 2006 20:50:50 +0000 (20:50 +0000)]
Now capable of sending what, to me, looks like a valid DHCPDISCOVER
(apart from the bad UDP checksum).
Michael Brown [Wed, 19 Jul 2006 20:38:49 +0000 (20:38 +0000)]
Make udp_send() call udp_sendto(), rather than vice-versa.
Michael Brown [Wed, 19 Jul 2006 20:16:46 +0000 (20:16 +0000)]
A small but very critical bug.
Michael Brown [Wed, 19 Jul 2006 18:45:18 +0000 (18:45 +0000)]
Use more standardised format specifiers in debug messages (e.g. %p for
a pointer).
Michael Brown [Wed, 19 Jul 2006 18:21:30 +0000 (18:21 +0000)]
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.
Michael Brown [Wed, 19 Jul 2006 18:16:48 +0000 (18:16 +0000)]
Add pkb_available()
Michael Brown [Wed, 19 Jul 2006 18:11:31 +0000 (18:11 +0000)]
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.
Michael Brown [Wed, 19 Jul 2006 17:58:27 +0000 (17:58 +0000)]
Add block identification to debug messages
Michael Brown [Wed, 19 Jul 2006 17:49:31 +0000 (17:49 +0000)]
Added some debug messages and DHCP test code
Michael Brown [Wed, 19 Jul 2006 17:32:13 +0000 (17:32 +0000)]
Proof of concept: transmit a single DHCPDISCOVER and dump out any
parsed DHCP responses.
Michael Brown [Wed, 19 Jul 2006 17:29:18 +0000 (17:29 +0000)]
Added missing prototype
Michael Brown [Wed, 19 Jul 2006 17:01:06 +0000 (17:01 +0000)]
Beginnings of DHCP protocol implementation
Michael Brown [Wed, 19 Jul 2006 17:00:40 +0000 (17:00 +0000)]
Add net/udp
Michael Brown [Wed, 19 Jul 2006 17:00:32 +0000 (17:00 +0000)]
Add some DHCP options that we are likely to use
Michael Brown [Wed, 19 Jul 2006 16:58:44 +0000 (16:58 +0000)]
Correct typo
Nikhil Chandru Rao [Wed, 19 Jul 2006 16:27:54 +0000 (16:27 +0000)]
Minor edit in net/udp.c
Nikhil Chandru Rao [Wed, 19 Jul 2006 16:25:23 +0000 (16:25 +0000)]
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
Michael Brown [Wed, 19 Jul 2006 16:16:51 +0000 (16:16 +0000)]
Added macros for generating static DHCP options
Michael Brown [Wed, 19 Jul 2006 12:12:45 +0000 (12:12 +0000)]
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.
Michael Brown [Wed, 19 Jul 2006 11:05:38 +0000 (11:05 +0000)]
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.
Michael Brown [Mon, 17 Jul 2006 19:19:17 +0000 (19:19 +0000)]
This file breaks "make blib"; please find a way to avoid doing this.
Derek Pryor [Mon, 17 Jul 2006 16:38:20 +0000 (16:38 +0000)]
The first packet (ClientHello Handshake) can be constructed and is accepted
by SSL servers. Framework.c allows me to test the library against a given
https server.
Michael Brown [Mon, 17 Jul 2006 13:07:14 +0000 (13:07 +0000)]
Fix creation of the htype field; the ll_proto field from which it is
derived is a 16-bit big-endian field, but htype is only 8 bits wide.
Michael Brown [Mon, 17 Jul 2006 13:04:29 +0000 (13:04 +0000)]
Tidy up hex_dump() output.
Michael Brown [Mon, 17 Jul 2006 12:47:22 +0000 (12:47 +0000)]
Add sketch code to reassemble a DHCP packet from our internal "everything
is a DHCP option" data structures.
We need this code in order to be able to return a DHCP packet to a PXE NBP
which reflects options from our multiple sources (e.g. NVS and DHCP
server). This is expensive, but necessary. Having paid this cost, we may
as well try to use the same code to generate our DHCP request packets,
since the process is similar.
Michael Brown [Sat, 15 Jul 2006 19:24:55 +0000 (19:24 +0000)]
Add (untested) code for parsing a received DHCP packet and constructing a
DHCP options block from the contents.
Michael Brown [Thu, 13 Jul 2006 20:49:04 +0000 (20:49 +0000)]
Add code to modify DHCP option values within a block.
Michael Brown [Thu, 13 Jul 2006 18:27:23 +0000 (18:27 +0000)]
How did this ever work properly before?
Derek Pryor [Mon, 10 Jul 2006 13:26:20 +0000 (13:26 +0000)]
Adding SSL Constructs header file. (First version)
Nikhil Chandru Rao [Fri, 30 Jun 2006 08:52:03 +0000 (08:52 +0000)]
Added fragment reassembly code
Marty Connor [Thu, 29 Jun 2006 19:04:25 +0000 (19:04 +0000)]
fix printf format args
Marty Connor [Thu, 29 Jun 2006 18:07:02 +0000 (18:07 +0000)]
Removed vestigal FILO code
Marty Connor [Thu, 29 Jun 2006 17:58:48 +0000 (17:58 +0000)]
Added bin/.blib.list to VERYCLEANUP so .bin directory is made empty