[infiniband] Pass address vector in receive completions
authorMichael Brown <mcb30@etherboot.org>
Thu, 6 Nov 2008 21:20:30 +0000 (21:20 +0000)
committerMichael Brown <mcb30@etherboot.org>
Tue, 11 Nov 2008 05:31:07 +0000 (05:31 +0000)
commit830e19eb54f4ee2e6629612a3f296fbdba18e531
treed3ad10c7e951221b0b3aeb05852249721f77cd92
parent0de5f7af6db39ea9173caa0015a63353174d72ce
[infiniband] Pass address vector in receive completions

Receive completion handlers now get passed an address vector
containing the information extracted from the packet headers
(including the GRH, if present), and only the payload remains in the
I/O buffer.

This breaks the symmetry between transmit and receive completions, so
remove the ib_completer_t type and use an ib_completion_queue_operations
structure instead.

Rename the "destination QPN" and "destination LID" fields in struct
ib_address_vector to reflect its new dual usage.

Since the ib_completion structure now contains only an IB status code,
("syndrome") replace it with a generic gPXE integer status code.
src/drivers/infiniband/arbel.c
src/drivers/infiniband/hermon.c
src/drivers/net/ipoib.c
src/include/gpxe/infiniband.h
src/net/infiniband.c