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.
2008-02-27 16:55:46 +00: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
ea5ad4be91
[Infiniband] Fix typo in debug statement
2008-02-23 10:48:18 +00:00
Michael Brown
563955ce37
[Infiniband] Add missing list_del()s in ib_create_qp() failure path.
2008-02-23 10:48:10 +00:00
Michael Brown
428c6342bc
Fixes for EqualLogic iSCSI targets:
...
Allow port numbers in iSCSI redirection.
Wait for SCSI status, not just the final data-in (which may be followed
by an explicit SCSI Response PDU if the S bit is not set).
2008-02-07 22:46:26 +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
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
3311169707
When the DHCP file/sname fields are empty, don't allow them to override
...
their equivalent DHCP-option-specified values.
2008-01-07 13:50:32 +00:00
Michael Brown
82bae302b1
Fix off-by-one error (discovered by Shao Miller).
2008-01-07 13:12:43 +00:00
Michael Brown
f3265b4bf8
Add preliminary support for MTFTP.
2007-12-26 18:51:20 +00:00
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
2007-12-06 14:16:46 -06:00
Michael Brown
798f7f6b8e
Kill off some warnings-problematic debug statements in ndp.c; the code
...
is non-functional anyway.
2007-12-07 01:51:08 +00:00
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
2007-12-07 00:11:43 +00:00
Michael Brown
423e9d72f3
udp_open_promisc() calls udp_open_common() with peer==NULL.
2007-11-28 11:56:14 +00:00
Michael Brown
3b1efba864
Add RFC2090 TFTP multicast support.
2007-11-28 10:57:26 +00:00
Michael Brown
f770744ee0
Quick hack to be able to accept transfers from servers that don't
...
supply options.
2007-11-25 16:06:29 +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
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
c194b0c4bf
Work around a bug in the OpenSolaris iSCSI target.
...
We didn't specify values for MaxRecvDataSegmentLength and
MaxBurstLength (to save space, since we were happy with the
RFC-defined default values of 8kB and 256kB respectively). However,
the OpenSolaris target (incorrectly) assumes default values of zero
for these parameters.
The upshot was that the OpenSolaris target would get stuck in an
endless loop trying to send us the first 512-byte sector, zero bytes
at a time, and would eventually run out of memory and core-dump.
Fixed by explicitly specifying the default values for these two
parameters.
2007-11-05 13:29:05 +00:00
Michael Brown
2303c45d65
Force a netdevice poll in net_tx() before attempting to transmit
...
packet, to work around the problem whereby small TX rings get backed
up because we haven't yet poll()ed for TX completions.
2007-10-04 14:46:56 +01:00
Michael Brown
267a4483ab
Added an almost obscene amount of debugging and assertion code while
...
tracking down a bug that turned out to be a free_iob() used where I
needed a netdev_tx_complete(). This left the freed I/O buffer on the
net device's TX list, with bad, bad consequences later.
Also fixed the bug in question.
2007-09-17 19:01:10 +01:00
Michael Brown
387a1a8556
Minor debug message improvement.
2007-09-17 18:57:32 +01:00
Michael Brown
f6f1f2b7bb
Prepare for adding a metadata queue to IPoIB
2007-09-17 06:12:33 +01:00
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
2007-09-17 05:04:58 +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
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
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
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
c0d99245a9
Bugfix: DHCP message type should be a one-byte option... (d'oh)
2007-09-13 01:13:57 +01:00
Michael Brown
7b6d11e713
Started IB driver rewrite
2007-09-12 22:17:43 +01:00
Michael Brown
972f293e46
Check for correct block number in tftp_rx_data().
...
(Problem observed by Clay McClure in VMware Fusion.)
2007-09-08 19:30:25 +01:00
Michael Brown
00d93c6dd9
Minor style fix: structure fields are generally initialised in the
...
order in which they occur.
2007-09-06 13:37:47 +01:00
Marty Connor
14e1d3cc4d
TFTP default blocksize fix from Vampyre
2007-08-30 13:51:38 -04:00
Michael Brown
746d0f8feb
Merge commit 'holger/strings'
2007-08-23 21:51:57 +01:00
Holger Lubitz
f92096d180
use malloc attribute
2007-08-20 20:30:24 +02:00
Holger Lubitz
bc9f960b66
use malloc attribute
2007-08-20 20:30:17 +02:00
Holger Lubitz
6f0eca1400
use malloc attribute
2007-08-20 20:30:11 +02:00
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.
2007-08-13 11:03:33 -07:00
Michael Brown
0a3c2b80ea
Add start_timer_nodelay()
2007-08-13 10:59:00 -07: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
Holger Lubitz
fdd5fbe3ae
fix gcc 4.2.1 warning: initialized field overwritten
2007-08-02 01:56:50 +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
847ac4f336
tls_change_cipher() can complain about null cipher and digest
...
algorithms; we only need the pubkey check disabled (and only because
pubkey algorithms are not yet integrated into the crypto_algorithm
subsystem).
2007-07-30 03:30:27 +01:00
Michael Brown
60e3aa4d75
Change #warnings to FIXMEs, so that we can build without NO_WERROR=1
2007-07-30 03:06:08 +01:00
Michael Brown
bf3d8fb1aa
Allowed HTTPS to be a separately configurable feature.
2007-07-30 03:01:04 +01:00
Michael Brown
6fc9ed167e
TLS now working again.
2007-07-30 02:48:38 +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
e3484e26eb
Merge branch 'symcheck2'
2007-07-28 22:55:31 +01:00
Holger Lubitz
e6cfa7ced9
make http_open static
2007-07-27 21:59:09 +02:00
Holger Lubitz
fa11865de0
make add_ndp_entry static
2007-07-27 21:37:29 +02: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
94415b7669
Added missing "static" declarations
2007-07-17 01:42:10 +01:00
Michael Brown
f44969f7df
nameserver should be static
2007-07-17 01:21:20 +01:00
Michael Brown
096fa94f0c
Add support for TCP timestamps
2007-07-13 11:32:53 +01:00
Michael Brown
eb530845d4
Adjust received length to take into account any already-received data
...
in tcp_rx_data().
Clarify comments on discarding duplicate or out-of-order data.
2007-07-13 11:31:58 +01:00
Michael Brown
d5735c631c
Avoid reusing auto-allocated ports after connection close.
2007-07-13 11:25:00 +01:00
Michael Brown
b3e44a24b1
May be required in some disconnect scenarios
2007-07-10 06:31:11 +01:00
Michael Brown
9dc6a1e678
Remove some obsolete stream-API files
2007-07-09 03:53:06 +01:00
Michael Brown
fd4fcb57db
Add missing static
2007-07-09 01:04:54 +01:00
Michael Brown
fabd0f5fec
Fix TX state machine and miscellaneous other bits.
2007-07-09 00:52:45 +01:00
Michael Brown
ef9fd938d0
Fix root-path parsing.
2007-07-09 00:00:34 +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
237e23c1c9
Add debug message when nameserver setting is applied/changed via DHCP.
2007-07-08 14:31:51 +01:00
Michael Brown
35afb379af
TCP limits advertised TCP window to size of application window
...
obtained via xfer_window().
2007-07-08 14:14:59 +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
Holger Lubitz
a4d3476e0e
convert to zalloc
2007-07-06 21:08:54 +02:00
Holger Lubitz
389c63d7c4
convert to zalloc
2007-07-06 21:08:41 +02:00
Holger Lubitz
32e4ca8ae3
convert to zalloc
2007-07-06 21:08:29 +02:00
Holger Lubitz
da3c785816
convert to zalloc
2007-07-06 20:52:58 +02:00
Holger Lubitz
2b9fb513f4
convert to zalloc
2007-07-06 20:52:01 +02:00
Holger Lubitz
7872b890fe
convert to zalloc
2007-07-06 20:50:32 +02:00
Holger Lubitz
7fa85d19b9
convert to zalloc
2007-07-06 20:49:26 +02:00
Holger Lubitz
dc6c1c294d
convert to zalloc
2007-07-06 20:47:15 +02: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
8156f6bd19
Switch compiler warning on tcp_open() to a #warning
2007-07-05 12:00:35 +01:00
Michael Brown
a5f33ea283
Added missing line to set return status code.
2007-07-03 21:22:12 +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