[infiniband] Add the notion of an Ethernet queue pair type

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1/head
Michael Brown 2010-09-19 17:35:53 +01:00
parent 118a0ca55a
commit 26a50c3a11
3 changed files with 9 additions and 1 deletions

View File

@ -485,6 +485,7 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
struct ipoib_mac ll_src; struct ipoib_mac ll_src;
struct ipoib_peer *src; struct ipoib_peer *src;
/* Record errors */
if ( rc != 0 ) { if ( rc != 0 ) {
netdev_rx_err ( netdev, iobuf, rc ); netdev_rx_err ( netdev, iobuf, rc );
return; return;
@ -499,6 +500,12 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
return; return;
} }
ipoib_hdr = iobuf->data; ipoib_hdr = iobuf->data;
if ( ! av ) {
DBGC ( ipoib, "IPoIB %p received packet without address "
"vector\n", ipoib );
netdev_rx_err ( netdev, iobuf, -ENOTTY );
return;
}
/* Parse source address */ /* Parse source address */
if ( av->gid_present ) { if ( av->gid_present ) {

View File

@ -135,6 +135,7 @@ enum ib_queue_pair_type {
IB_QPT_GSI, IB_QPT_GSI,
IB_QPT_UD, IB_QPT_UD,
IB_QPT_RC, IB_QPT_RC,
IB_QPT_ETH,
}; };
/** An Infiniband Queue Pair */ /** An Infiniband Queue Pair */

View File

@ -483,7 +483,7 @@ void ib_complete_send ( struct ib_device *ibdev, struct ib_queue_pair *qp,
* *
* @v ibdev Infiniband device * @v ibdev Infiniband device
* @v qp Queue pair * @v qp Queue pair
* @v av Address vector * @v av Address vector, or NULL
* @v iobuf I/O buffer * @v iobuf I/O buffer
* @v rc Completion status code * @v rc Completion status code
*/ */