Michael Brown
feade5da6e
[Settings] Expose SMBIOS via settings API
In particular, expose the system UUID as a setting ("smbios/uuid").
hace 16 años
Michael Brown
aa74a7d53c
[DHCP] Add support for ProxyDHCP requests
The PXE spec is (as usual) unclear on precisely when ProxyDHCPREQUESTs
should be issued. We adapt the following, slightly paranoid approach:
If an offer contains an IP address, then it is a normal DHCPOFFER.
If an offer contains an option #60 "PXEClient", then it is a
ProxyDHCPOFFER. Note that the same packet can be both a normal
DHCPOFFER and a ProxyDHCPOFFER.
After receiving the normal DHCPACK, if we have received a
ProxyDHCPOFFER, we unicast a ProxyDHCPREQUEST back to the ProxyDHCP
server on port 4011. If we time out waiting for a ProxyDHCPACK, we
treat this as a non-fatal error.
hace 16 años
Michael Brown
83617e5b1c
[DHCP] Save precious packet-aligned memory by copying DHCP responses
Copy DHCP responses to a standard malloc()ed buffer, rather than
retaining the I/O buffer that they arrived in.
hace 16 años
Michael Brown
92d15eff30
[Settings] Remove assumption that all settings have DHCP tag values
Allow for settings to be described by something other than a DHCP option
tag if desirable. Currently used only for the MAC address setting.
Separate out fake DHCP packet creation code from dhcp.c to fakedhcp.c.
Remove notion of settings from dhcppkt.c.
Rationalise dhcp.c to use settings API only for final registration of the
DHCP options, rather than using {store,fetch}_setting throughout.
hace 16 años
Michael Brown
7234f91bf8
[DHCP] Fix DHCP state confusion.
DHCP code was using an incorrect check for whether to construct a
DHCPDISCOVER or DHCPREQUEST packet.
hace 16 años
Michael Brown
23e077666b
[Settings] copy_settings() should not fail if some settings are missing!
hace 16 años
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.
hace 16 años
Marty Connor
1741e3e761
[DHCP] FIXME: quick temporary settings fix, needs update for new API
hace 16 años
Michael Brown
a462c96ffc
[Settings] DHCP is now working using the new settings API.
hace 16 años
Michael Brown
8afb36c3bc
[Settings] Migrate DHCP and NVO code to the new settings API (untested)
hace 16 años
Michael Brown
1edbcd4246
[Settings] Use a settings applicator to set the default TFTP URI.
hace 16 años
Michael Brown
aec9b8a41b
[Settings] Use a settings applicator to configure IPv4 routes.
hace 16 años
Michael Brown
cf03304620
[Settings] Introduce settings applicators.
Convert DHCP option applicators in dns.c and iscsi.c to settings
applicators.
Kill off DHCP option applicators.
hace 16 años
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
hace 16 años
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.
hace 16 años
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.
hace 17 años
Michael Brown
3311169707
When the DHCP file/sname fields are empty, don't allow them to override
their equivalent DHCP-option-specified values.
hace 17 años
Michael Brown
f3265b4bf8
Add preliminary support for MTFTP.
hace 17 años
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
hace 17 años
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
hace 17 años
Michael Brown
3b1efba864
Add RFC2090 TFTP multicast support.
hace 17 años
Michael Brown
f770744ee0
Quick hack to be able to accept transfers from servers that don't
supply options.
hace 17 años
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.
hace 17 años
Michael Brown
0becbf5fba
Add ProxyDHCP support.
hace 17 años
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
hace 17 años
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
hace 17 años
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
hace 17 años
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
hace 17 años
Michael Brown
7e4e5af462
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
hace 17 años
Michael Brown
771455653b
Bugfix: DHCP message type should be a one-byte option... (d'oh)
hace 17 años
Michael Brown
c0d99245a9
Bugfix: DHCP message type should be a one-byte option... (d'oh)
hace 17 años
Michael Brown
972f293e46
Check for correct block number in tftp_rx_data().
(Problem observed by Clay McClure in VMware Fusion.)
hace 17 años
Michael Brown
00d93c6dd9
Minor style fix: structure fields are generally initialised in the
order in which they occur.
hace 17 años
Marty Connor
14e1d3cc4d
TFTP default blocksize fix from Vampyre
hace 17 años
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.
hace 17 años
Michael Brown
9fd6a0418f
Allowed zero-cost enforced ordering of features in startup banner
list.
Added FEATURE() macros to most relevant (non-driver) files.
hace 17 años
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).
hace 17 años
Michael Brown
79691961ba
Add identifier for the network device into the DHCP request.
hace 17 años
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
hace 17 años
Michael Brown
f44969f7df
nameserver should be static
hace 17 años
Michael Brown
237e23c1c9
Add debug message when nameserver setting is applied/changed via DHCP.
hace 17 años
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.
hace 17 años
Michael Brown
ca4c6f9eee
Kill off unused request() method in data-xfer interface.
hace 17 años
Holger Lubitz
a4d3476e0e
convert to zalloc
hace 17 años
Holger Lubitz
da3c785816
convert to zalloc
hace 17 años
Holger Lubitz
2b9fb513f4
convert to zalloc
hace 17 años
Michael Brown
934b70d62c
Apply global DHCP options when register_dhcp_options() is called. Do
not apply DHCP options in dhcp_configure_netdev().
hace 17 años
Michael Brown
1567b69895
Add concept of DHCP option applicators.
hace 17 años
Michael Brown
d7e471f654
Improve debugging
hace 17 años
Michael Brown
3bf5eb49d0
Can't use strncpy() to copy strings that aren't NUL-terminated to
begin with.
hace 17 años