Michael Brown
ee4206a8a7
[DHCP] Fix up fake-packet creation as used by PXENV_GET_CACHED_INFO
Add dedicated functions create_dhcpdiscover(), create_dhcpack() and
create_proxydhcpack() for use by external code such as the PXE preboot
code.
Register ProxyDHCP options under the global scope "proxydhcp".
Unregister previously-acquired DHCP and ProxyDHCP settings when DHCP
succeeds.
преди 17 години
Marty Connor
1741e3e761
[DHCP] FIXME: quick temporary settings fix, needs update for new API
преди 17 години
Michael Brown
a462c96ffc
[Settings] DHCP is now working using the new settings API.
преди 17 години
Michael Brown
8afb36c3bc
[Settings] Migrate DHCP and NVO code to the new settings API (untested)
преди 17 години
Michael Brown
aec9b8a41b
[Settings] Use a settings applicator to configure IPv4 routes.
преди 17 години
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
преди 17 години
Michael Brown
844828cb15
[DHCP] Fix RFC4390 client identifier constructions.
RFC 4390 provides for the DHCP client identifier to contain the link-layer
hardware type and MAC address when the MAC address exceeds 16 bytes.
However, the hardware type field is only 8 bits; we were assuming 16 bits.
преди 17 години
Michael Brown
f6a8158eed
Make seek information part of the xfer metadata, rather than an entirely
separate xfer method.
Add missing .alloc_iob entries to several xfer_interface_operations
structures.
преди 17 години
Michael Brown
3311169707
When the DHCP file/sname fields are empty, don't allow them to override
their equivalent DHCP-option-specified values.
преди 17 години
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
преди 17 години
Michael Brown
b3abf25e3c
Allow DHCP server to instruct gPXE to ignore ProxyDHCP (which will
also avoid waiting for ProxyDHCP offers).
Also reduce the ProxyDHCP timeout, because it's already irritating me.
преди 17 години
Michael Brown
0becbf5fba
Add ProxyDHCP support.
преди 17 години
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
преди 17 години
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
преди 17 години
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
преди 17 години
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
преди 18 години
Michael Brown
7e4e5af462
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
преди 18 години
Michael Brown
771455653b
Bugfix: DHCP message type should be a one-byte option... (d'oh)
преди 18 години
Michael Brown
c0d99245a9
Bugfix: DHCP message type should be a one-byte option... (d'oh)
преди 18 години
Michael Brown
2ff1b1245b
Use start_timer_nodelay() in protocols which rely on the retry timer
to generate the initial transmission; this cuts off around 0.3s per
instantiated connection.
преди 18 години
Michael Brown
0acb016840
Add FEATURE() macro, plus code to display features at startup time,
and generate DHCP options to indicate features to DHCP server (and to
PXE NBPs).
преди 18 години
Michael Brown
79691961ba
Add identifier for the network device into the DHCP request.
преди 18 години
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
преди 18 години
Michael Brown
b34d4d0449
Separate the "is data ready" function of xfer_seek() into an
xfer_window() function, which can return a scalar rather than a
boolean.
преди 18 години
Michael Brown
ca4c6f9eee
Kill off unused request() method in data-xfer interface.
преди 18 години
Holger Lubitz
a4d3476e0e
convert to zalloc
преди 18 години
Michael Brown
934b70d62c
Apply global DHCP options when register_dhcp_options() is called. Do
not apply DHCP options in dhcp_configure_netdev().
преди 18 години
Michael Brown
1567b69895
Add concept of DHCP option applicators.
преди 18 години
Michael Brown
3bf5eb49d0
Can't use strncpy() to copy strings that aren't NUL-terminated to
begin with.
преди 18 години
Michael Brown
acd598b4f9
Don't build option-overloaded packets; they just confuse people (ISC
DHCPD and Windows RIS in particular).
преди 18 години
Michael Brown
c73bff7ae5
Set current working URI based on TFTP server specified by DHCP.
преди 18 години
Michael Brown
1ec7bb789d
Add dhcp_configure_netdev()
преди 18 години
Michael Brown
cf33b568dc
Forgot to set initial session state. Now works!
преди 18 години
Michael Brown
73fe1ba9dd
Kill off job::start() (it was only ever added as part of an aborted
attempt at triggering TCP-related protocols to start).
преди 18 години
Michael Brown
07dc294de8
Update DHCP to use data-xfer interface (not yet tested).
преди 18 години
Michael Brown
f77815f2b1
Kill off hotplug.h and just make net devices normal reference-counted
structures.
DHCP still broken and #if 0'd out.
преди 18 години
Anselm Martin Hoffmeister
ed7dc02a95
hoffmeis: Preparations for syslog support (LOGSERVER in DHCP, linewise
output buffering defintions and the like)
преди 18 години
Michael Brown
835d35749f
Improved debugging
преди 18 години
Michael Brown
4e20d73bb5
Gave asynchronous operations approximate POSIX signal semantics. This
will enable us to cascade async operations, which is necessary in order to
properly support DNS. (For example, an HTTP request may have to redirect
to a new location and will have to perform a new DNS lookup, so we can't
just rely on doing the name lookup at the time of parsing the initial
URL).
Anything other than HTTP is probably broken right now; I'll fix the others
up asap.
преди 18 години
Michael Brown
649b789e93
DHCP transmits via specified net device, so no need to create a dummy
routing table entry just to fool ipv4.c any more.
преди 18 години
Michael Brown
7fafa89258
A DHCP session holds a persistent reference to a network device
преди 18 години
Michael Brown
60a3f77711
Close UDP connection when DHCP completes.
преди 18 години
Michael Brown
04c09823bd
Request all the options that we're prepared to do anything with.
преди 18 години
Michael Brown
a1af111a87
Also request root-path.
преди 18 години
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.
преди 19 години
Marty Connor
6ac78f6aff
added stdio.h to includes for DBG compilation
преди 19 години
Michael Brown
cab3f4502b
Correct option number for DHCP_DNS_SERVERS, and add it to the request
list.
преди 19 години
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
преди 19 години
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.
преди 19 години
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.
преди 19 години