iPXE - Open Source Boot Firmware

[infiniband] Add infrastructure for RC queue pairs
authorMichael Brown <mcb30@etherboot.org>
Fri, 17 Jul 2009 21:27:34 +0000 (22:27 +0100)
committerMichael Brown <mcb30@etherboot.org>
Fri, 17 Jul 2009 22:06:35 +0000 (23:06 +0100)
commitc939bc57ffc75d3833b77ba7361ce0a0501ef8ca
treec68220d4825ecd43e220c203803bf5093d15f35d
parentea6eb7f7ed32f6141813b8f0c3e382b1d2bdcbd8
[infiniband] Add infrastructure for RC queue pairs

Queue pairs are now assumed to be created in the INIT state, with a
call to ib_modify_qp() required to bring the queue pair to the RTS
state.

ib_modify_qp() no longer takes a modification list; callers should
modify the relevant queue pair parameters (e.g. qkey) directly and
then call ib_modify_qp() to synchronise the changes to the hardware.

The packet sequence number is now a property of the queue pair, rather
than of the device.

Each queue pair may have an associated address vector.  For RC queue
pairs, this is the address vector that will be programmed in to the
hardware as the remote address.  For UD queue pairs, it will be used
as the default address vector if none is supplied to ib_post_send().
src/drivers/infiniband/arbel.c
src/drivers/infiniband/hermon.c
src/drivers/infiniband/linda.c
src/drivers/net/ipoib.c
src/include/gpxe/infiniband.h
src/net/infiniband.c
src/net/infiniband/ib_gma.c
src/net/infiniband/ib_mcast.c
src/net/infiniband/ib_packet.c