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