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.
2008-03-23 21:58:05 +00:00
Michael Brown
e5cea13e51
[Settings] Implement simple_settings backed with extensible DHCP options
2008-03-22 00:31:08 +00:00
Michael Brown
8afb36c3bc
[Settings] Migrate DHCP and NVO code to the new settings API (untested)
2008-03-21 22:15:31 +00:00
Michael Brown
bb32b8999c
[DHCP] Kill off some no-longer-used DHCP functions
2008-03-21 00:50:12 +00:00
Michael Brown
1edbcd4246
[Settings] Use a settings applicator to set the default TFTP URI.
2008-03-21 00:26:29 +00:00
Michael Brown
aec9b8a41b
[Settings] Use a settings applicator to configure IPv4 routes.
2008-03-21 00:01:27 +00:00
Michael Brown
eae6ac3d0b
[Settings] Convert code in src/usr to use settings API.
2008-03-20 23:42:11 +00:00
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.
2008-03-20 23:15:48 +00:00
Michael Brown
acfa14423e
[Settings] Add per-netdevice settings block
...
Add a configuration settings block for each net device. This will
provide the parent scope for settings applicable only to that network
device (e.g. non-volatile options stored on the NIC, options obtained via
DHCP, etc.).
Expose the MAC address as a setting.
2008-03-20 21:06:53 +00:00
Michael Brown
260b93bb72
[Settings] Add settings hierarchy
...
Add the notion of the settings hierarchy, complete with
register/unregister routines.
Rename set->store and get->fetch to avoid naming conflicts with get/put
as used in reference counting.
2008-03-20 21:01:32 +00:00
Michael Brown
a48b4d9948
[Settings] Start revamping the configuration settings API.
...
Add the concept of an abstract configuration setting, comprising a (DHCP)
tag value and an associated byte sequence.
Add the concept of a settings namespace.
Add functions for extracting string, IPv4 address, and signed and
unsigned integer values from configuration settings (analogous to
dhcp_snprintf(), dhcp_ipv4_option(), etc.).
Update functions for parsing and formatting named/typed options to work
with new settings API.
Update NVO commands and config UI to use new settings API.
2008-03-20 04:06:07 +00:00
Michael Brown
070cbebc26
[Timers] Initialise timers on first use
...
Timers are sometimes required before the call to initialise(), so we
cannot rely on initialise() to set up the timers before use.
Also fix a potential integer overflow issue in generic_currticks_udelay()
2008-03-18 15:23:10 +00:00
Michael Brown
2652abdc5f
[Timers] Miscellaneous timer system fixes
...
Add missing comments to timer code.
Lock system if no suitable timer source is found.
Fix initialisation order so that timers are initialised before code that
needs to use them.
2008-03-18 14:48:28 +00:00
Michael Brown
5a08b434c7
[Settings] show_setting() functions return snprintf()-style length.
...
show_setting() and related functions now return an "actual length" in the
style of snprintf(). This is to allow consumers to allocate buffers large
enough to hold the formatted setting.
2008-03-18 00:48:23 +00:00
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
...
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
2008-03-02 03:41:10 +03:00
Alexey Zaytsev
4006d229e5
Introduce the new timer subsystem.
...
Timer subsystem initialization code in core/timer.c
Split the BIOS and RTDSC timer drivers from i386_timer.c
Split arch/i386/firmware/pcbios/bios.c into the RTSDC
timer driver and arch/i386/core/nap.c
Split the headers properly:
include/unistd.h - delay functions to be used by the
gPXE core and drivers.
include/gpxe/timer.h - the fimer subsystem interface
to be used by the timer drivers
and currticks() to be used by
the code gPXE subsystems.
include/latch.h - removed
include/timer.h - scheduled for removal. Some driver
are using currticks, which is
only for core subsystems.
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
2008-03-02 03:15:07 +03:00
Michael Brown
bc3f0a25c6
[Infiniband] Add preliminary support for multi-port devices.
...
Arbel and Hermon cards both have multiple ports. Add the
infrastructure required to register each port as a separate IB
device. Don't yet register more than one port, since registration
will currently fail unless a valid link is detected.
Use ib_*_{set,get}_{drv,owner}data wrappers to access driver- and
owner-private data on Infiniband structures.
2008-02-27 13:59:56 +00:00
Michael Brown
6570203571
[Infiniband] Centralise MAD operations
...
Pull out common code for handling management datagrams from arbel.c
and hermon.c into infiniband.c.
Add port number to struct ib_device.
Add open(), close() and mad() methods to struct ib_device_operations.
2008-02-26 22:56:19 +00:00
Michael Brown
396dc6e797
[Hermon] Add driver for Mellanox Hermon (ConnectX) cards.
2008-02-23 10:51:38 +00:00
Michael Brown
105ebec4f3
Merge commit 'laptop/master'
2008-01-22 18:57:01 +00:00
Michael Brown
122abb50af
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2008-01-22 18:53:01 +00:00
Michael Brown
a2b4252d5a
Add XFER_INIT() macro.
2008-01-22 18:48:47 +00:00
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.
2008-01-08 16:46:55 +00:00
Michael Brown
74fd544101
Added the embedded pxelinux payload patch from hpa.
2008-01-08 15:51:36 +00:00
Michael Brown
f3265b4bf8
Add preliminary support for MTFTP.
2007-12-26 18:51:20 +00:00
Michael Brown
3b1efba864
Add RFC2090 TFTP multicast support.
2007-11-28 10:57:26 +00:00
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.
2007-11-21 22:10:04 +00:00
Michael Brown
0becbf5fba
Add ProxyDHCP support.
2007-11-21 21:51:43 +00:00
Michael Brown
b53ee1eb16
Merge commit 'origin/mdc-working'
2007-11-21 15:35:08 +00:00
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
2007-11-21 04:48:18 +00:00
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
2007-11-21 03:57:30 +00:00
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
2007-11-21 03:29:53 +00:00
Michael Brown
899f5b8ab2
Added definition of a UUID and uuid_ntoa() (for debugging), and
...
implemented smbios_get_uuid().
2007-11-21 02:27:07 +00:00
Marty Connor
048a234dce
Add errfile definition for new e1000.c
2007-11-18 10:45:20 -05:00
Marty Connor
8bd670301c
Add ERRFILE information for e1000_main and e1000_hw, part of the new e1000 driver
...
It is likely we will rename e1000_main to e1000 when the new e1000 driver is debugged.
2007-11-18 09:51:21 -05:00
Michael Brown
44461b1854
Merge branch 'master' into 3leaf-delivery
2007-09-21 01:27:03 +01:00
Michael Brown
1e677b2024
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-09-21 01:26:06 +01:00
Michael Brown
5793dbe96f
Infinband requires longer link-layer addresses and headers than Ethernet.
2007-09-21 01:23:57 +01:00
Michael Brown
2ee76d0c93
Added defines for Infiniband files (which can't be committed to the
...
main tree yet, but reserving the error numbers now avoids problems later).
2007-09-21 01:19:04 +01:00
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
...
to construct DHCP packets suitable for Infiniband.
2007-09-21 01:15:58 +01:00
Michael Brown
f09173326c
Moved iobuf.h assertions outside the static inline functions, so that
...
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
2007-09-21 01:13:22 +01:00
Michael Brown
30717896f5
IB can't afford many RX buffers, because the MTU is so large. Reduce
...
the TCP window to compensate.
2007-09-18 07:02:41 +01:00
Michael Brown
2f23881856
Added arbel.c
2007-09-18 06:37:22 +01:00
Michael Brown
2c56ede6f8
Moved iobuf.h assertions outside the static inline functions, so that
...
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
2007-09-17 18:38:04 +01:00
Michael Brown
bdac591726
Some interesting packet corruption happening now.
2007-09-17 13:31:13 +01:00
Michael Brown
2ed1acb9e9
Broadcast GID is now calculated by IPoIB layer.
2007-09-17 11:50:25 +01:00
Michael Brown
ab191e45db
Unicasts seem to be working. :)
2007-09-17 10:39:30 +01:00
Michael Brown
b3d3814c17
Obtains a response to the get path record!
2007-09-17 08:36:56 +01:00
Michael Brown
e05a8cd4de
Use pkey table access to determine broadcast GID directly.
2007-09-17 06:35:21 +01:00
Michael Brown
440e7926fb
Dead code removal
2007-09-17 05:12:47 +01:00
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
2007-09-17 05:04:58 +01:00
Michael Brown
67836430e6
Read port GID directly using MAD IFC.
2007-09-17 02:54:15 +01:00
Michael Brown
3c6a6bdc5d
Multicast join now works.
2007-09-17 00:24:44 +01:00
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
2007-09-16 20:54:21 +01:00
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
2007-09-16 19:03:24 +01:00
Michael Brown
b21d4ca21e
Revert to dev_priv/owner_priv scheme, rather than container_of; it
...
makes it easier to put the generic allocation code into infiniband.c
2007-09-16 17:25:15 +01:00
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
2007-09-16 14:39:51 +01:00
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
...
the number of separate allocations that need to be done).
2007-09-16 04:02:20 +01:00
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
...
using entirely our own code.
2007-09-15 23:33:25 +01:00
Michael Brown
8deef093d9
Direct polling of TX completion queue now works.
2007-09-15 20:58:29 +01:00
Michael Brown
6a791649f0
Updated MLX_* accessor macros to use implicit type information.
2007-09-15 18:44:09 +01:00
Michael Brown
a3a91fedc1
Started added poll_cq() verb.
...
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
2007-09-15 15:40:35 +01:00
Michael Brown
970951666f
arbel_post_send() has been observed to transmit a packet!
2007-09-15 02:53:05 +01:00
Michael Brown
8b27da9de1
Gets a response out of the hardware. (An error completion, to be precise.)
2007-09-15 01:35:07 +01:00
Michael Brown
38a73b55c4
Now at least compiles
2007-09-15 00:19:38 +01:00
Michael Brown
9d08b7c692
Starting to introduce an Infiniband device abstraction
2007-09-14 20:29:44 +01:00
Michael Brown
08e8dfd801
Now handling TX completions in our poll loop.
2007-09-14 11:10:25 +01:00
Michael Brown
30a19c3f1c
Can now both send and receive packets. LL header format not yet
...
fixed; still using a quick hack-up just to be able to pass through
data.
2007-09-13 14:43:12 +01:00
Michael Brown
99411e36da
Added netdev_priv() to ease Linux driver compatibility.
2007-09-13 13:34:38 +01:00
Michael Brown
7e4e5af462
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
...
to construct DHCP packets suitable for Infiniband.
2007-09-13 01:53:04 +01:00
Michael Brown
7b6d11e713
Started IB driver rewrite
2007-09-12 22:17:43 +01:00
Holger Lubitz
5d6f6fb924
Merge branch 'master' into curses
...
Conflicts:
src/include/compiler.h
src/include/readline/readline.h
created by strings branch merge. resolved.
2007-08-23 23:15:54 +02:00
Michael Brown
746d0f8feb
Merge commit 'holger/strings'
2007-08-23 21:51:57 +01:00
Holger Lubitz
c4285e148d
use malloc attribute
2007-08-20 20:29:30 +02:00
Holger Lubitz
05708503e5
use malloc attribute
2007-08-20 20:29:23 +02:00
Holger Lubitz
9386263433
use malloc attribute
2007-08-20 20:29:09 +02:00
Holger Lubitz
a0fbce4656
__nonnull changes
2007-08-20 00:34:59 +02:00
Holger Lubitz
d0867b101d
__nonnull changes
2007-08-20 00:34:46 +02:00
Holger Lubitz
d2dd4b9e31
__nonnull changes
2007-08-20 00:34:39 +02:00
Michael Brown
db61b0a577
Added error IDs for all files in drivers/net; they're likely to need them.
2007-08-19 00:29:27 +01:00
Michael Brown
0a3c2b80ea
Add start_timer_nodelay()
2007-08-13 10:59:00 -07:00
Michael Brown
54bf2621ed
Add iBFT code derived from IBM document.
...
No Microsoft intellectual property was harmed in the production of
this code.
2007-08-09 17:44:20 -07:00
Michael Brown
07f84566d5
Make read_user() non-blocking, and add select() call.
2007-08-04 01:22:52 +01:00
Michael Brown
218651e125
Display name and status of each file as it is downloaded.
2007-08-03 12:49:21 +01:00
Michael Brown
49009a4c1b
uri_get(NULL) and uri_put(NULL) are explicitly allowed.
2007-08-02 20:26:49 +01:00
Michael Brown
d4947c05b2
Allow images to hold references to the originating URI.
...
Some shuffling around of the image management code; this needs tidying up.
2007-08-02 20:18:32 +01:00
Michael Brown
9fd6a0418f
Allowed zero-cost enforced ordering of features in startup banner
...
list.
Added FEATURE() macros to most relevant (non-driver) files.
2007-08-02 14:51:03 +01:00
Michael Brown
67afe84292
Use otherwise-useless byte in DHCP feature option as a version number
2007-08-02 04:36:00 +01:00
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).
2007-08-02 04:24:39 +01:00
Michael Brown
726e366e8f
Add code for constructing single-file cpio archives on the fly
2007-08-01 23:10:30 +01:00
Michael Brown
291d69d7fd
Added support for draft version of the AoE Boot Firmware Table.
2007-07-31 14:05:03 +01:00
Michael Brown
79691961ba
Add identifier for the network device into the DHCP request.
2007-07-31 03:32:22 +01:00
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
2007-07-31 03:02:21 +01:00
Michael Brown
bf3d8fb1aa
Allowed HTTPS to be a separately configurable feature.
2007-07-30 03:01:04 +01:00
Michael Brown
3b8b06ae90
Added missing #include
2007-07-30 03:00:15 +01:00
Michael Brown
6fc9ed167e
TLS now working again.
2007-07-30 02:48:38 +01:00
Michael Brown
3b9bf40682
Preparation for adding tls.c
2007-07-29 17:16:00 +01:00
Michael Brown
a6467c99a0
Added a simple pass-through filter layer for data transfer interfaces.
2007-07-29 16:05:14 +01:00
Michael Brown
218314e712
Added HMAC code from TLS project
2007-07-29 03:09:00 +01:00
Michael Brown
43013da9bf
Quick hack to get AoE back in to the tree, on a par with the current
...
iSCSI hack.
2007-07-29 02:31:14 +01:00
Michael Brown
47a86bca2d
Prepare for iBFT merge when possible. iscsiboot.c contains a really,
...
really ugly hack at present, but that doesn't hugely matter since I'm
aiming to change the interface to iSCSI devices anyway within the next
week.
2007-07-26 02:13:38 +01:00
Michael Brown
9aa61ad5a2
Add per-file error identifiers
2007-07-24 17:11:31 +01:00
Michael Brown
f44969f7df
nameserver should be static
2007-07-17 01:21:20 +01:00
Michael Brown
7df3d4a177
Obsolete code removal
2007-07-17 01:19:35 +01:00
Michael Brown
60ce8e884d
Added missing extern
2007-07-17 01:16:24 +01:00
Michael Brown
096fa94f0c
Add support for TCP timestamps
2007-07-13 11:32:53 +01:00
Michael Brown
9dc6a1e678
Remove some obsolete stream-API files
2007-07-09 03:53:06 +01:00
Michael Brown
cc80750694
Merge branch 'master' into iscsi-update
2007-07-08 22:06:33 +01:00
Michael Brown
ed20fee0cf
Make ref_get() return the reference, for cleaner code.
2007-07-08 22:02:45 +01:00
Michael Brown
b94420a52b
Ready to start testing
2007-07-08 22:01:49 +01:00
Michael Brown
edd1b173a7
Code in place to use a hypothetical SCSI interface.
2007-07-08 19:33:26 +01:00
Michael Brown
f2fa390ae6
Everything except the SCSI interface should now be present
2007-07-08 18:51:56 +01:00
Michael Brown
9b28b25332
iSCSI updated to use data-xfer interface on the socket side (TCP).
...
SCSI interface not yet implemented.
2007-07-08 16:04:13 +01:00
Michael Brown
edded7546e
Limit xmit window to one MTU. (Path MTU discovery not yet
...
implemented; should be done at some point.)
2007-07-08 14:33:53 +01:00
Michael Brown
3e1dd0772a
Fix typo that was preventing any DHCP option applicators from being
...
applied.
2007-07-08 14:32:20 +01:00
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.
2007-07-08 14:11:07 +01:00
Michael Brown
ca4c6f9eee
Kill off unused request() method in data-xfer interface.
2007-07-08 02:10:54 +01:00
Michael Brown
4c418d2100
Use net_device_operations structure and netdev_nullify() to allow for
...
safe dropping of the netdev ref by the driver while other refs still
exist.
Add netdev_irq() method. Net device open()/close() methods should no
longer enable or disable IRQs.
Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Michael Brown
934b70d62c
Apply global DHCP options when register_dhcp_options() is called. Do
...
not apply DHCP options in dhcp_configure_netdev().
2007-07-06 17:07:50 +01:00
Michael Brown
1567b69895
Add concept of DHCP option applicators.
2007-07-05 18:38:14 +01:00
Michael Brown
539ff45fd0
Allow recording of TX and RX errors to aid in end-user debugging.
2007-07-05 17:18:27 +01:00
Michael Brown
bdd1a0f462
Make masking constants unsigned, to avoid a gcc3-only compiler warning.
2007-07-05 12:04:53 +01:00
Marty Connor
b219814627
Remove deprecation of pci_bar_size()
2007-07-04 18:28:37 -04:00
Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
2007-07-03 23:09:56 +01:00
Michael Brown
1f24ba73c4
Added missing "extern"
2007-07-03 21:12:54 +01:00
Michael Brown
cbd4542dc0
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-03 21:09:26 +01:00
Marty Connor
6be8cdbb6f
Merge branch 'master' of /pub/scm/gpxe
2007-07-03 16:02:26 -04:00
Marty Connor
9b3c4e4d79
Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot
2007-07-03 16:02:15 -04:00
Michael Brown
fae10a7ca1
We don't actually use the reset functions anywhere, and nothing really
...
provides them.
2007-07-03 20:34:51 +01:00
Michael Brown
fd86c819ba
Use a linker-table based system to automatically mark and start up
...
permanent processes, rather than requiring each one to have its own
initialisation function.
2007-07-03 20:09:14 +01:00
Marty Connor
4bcfe7507b
Merge branch 'master' of /pub/scm/gpxe
2007-07-03 13:20:54 -04:00
Marty Connor
c77704cb60
Warnings purge: src/{crypto,hci,net}
2007-07-03 13:20:22 -04:00
Michael Brown
0924cf678e
Implemented (untested) PXENV_START_UNDI.
2007-07-03 18:17:14 +01:00
Michael Brown
4968caab82
Add trivial net device statistics (TX and RX packet count), reported
...
via UNDI API and also by ifstat command; may be useful for debugging.
2007-07-03 00:15:53 +01:00
Marty Connor
0297a63877
Merge branch 'master' of ssh://rom.etherboot.org/pub/scm/gpxe
2007-07-02 15:36:19 -04:00
Marty Connor
ef7f6e72a1
Warnings purge
2007-07-02 15:28:55 -04:00
Michael Brown
332614a382
Add untested support for UNDI transmit and receive.
2007-07-02 20:05:58 +01:00
Michael Brown
5f17089b14
pxe_netdev now holds a reference to the network device.
...
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.
Add PXENV_UNDI_SET_STATION_ADDRESS.
2007-07-02 17:43:32 +01:00
Michael Brown
15f8323055
Removing obsolete files.
2007-07-01 15:30:12 +01:00
Michael Brown
95cb7aaacf
Support cards such as natsemi which treat the data as little-endian
...
(i.e. LSB transmitted first on the wire), even though SPI commands and
addresses always have to be big-endian.
2007-07-01 15:22:12 +01:00
Michael Brown
8f6a4e8140
Add gdbsym.c object to help with running gdb-to-qemu
2007-06-30 22:43:31 +01:00
Michael Brown
4472e22b5e
Implement the two UNDI API calls used by RIS.
2007-06-30 15:56:00 +01:00
Michael Brown
acd598b4f9
Don't build option-overloaded packets; they just confuse people (ISC
...
DHCPD and Windows RIS in particular).
2007-06-30 01:32:53 +01:00
Michael Brown
dffdc285b3
Obsoleted by downloader.c
2007-06-28 19:28:26 +01:00
Michael Brown
5de837cc67
Mildly ugly hack to force correct linkage.
2007-06-28 18:06:25 +01:00
Michael Brown
4b08f4cf0f
Quick hack to get image booting working again
2007-06-28 17:55:29 +01:00
Michael Brown
1ec7bb789d
Add dhcp_configure_netdev()
2007-06-28 15:18:26 +01:00
Michael Brown
6209d20779
Added monojob controller in lieu of a full working shell.
2007-06-28 14:53:12 +01:00
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).
2007-06-28 01:09:45 +01:00
Michael Brown
07dc294de8
Update DHCP to use data-xfer interface (not yet tested).
2007-06-27 23:20:36 +01:00