From 365b8db5cfc9c53c259ca128bd14a0d3b5bf640b Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 6 Jul 2009 20:31:44 +0100 Subject: [infiniband] Centralise SMA and GMA queue constants --- src/drivers/net/ipoib.c | 14 +++++++------- src/include/gpxe/ib_packet.h | 6 ------ src/include/gpxe/infiniband.h | 19 ++++++++++++++----- src/net/infiniband/ib_packet.c | 2 +- src/net/infiniband/ib_sma.c | 2 +- 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c index a559d015..d6815ec5 100644 --- a/src/drivers/net/ipoib.c +++ b/src/drivers/net/ipoib.c @@ -394,8 +394,8 @@ static int ipoib_get_path_record ( struct ipoib_device *ipoib, memset ( &av, 0, sizeof ( av ) ); av.lid = ibdev->sm_lid; av.sl = ibdev->sm_sl; - av.qpn = IB_SA_QPN; - av.qkey = IB_GLOBAL_QKEY; + av.qpn = IB_QPN_GMA; + av.qkey = IB_QKEY_GMA; /* Post send request */ if ( ( rc = ib_post_send ( ibdev, ipoib->meta.qp, &av, @@ -455,8 +455,8 @@ static int ipoib_mc_member_record ( struct ipoib_device *ipoib, memset ( &av, 0, sizeof ( av ) ); av.lid = ibdev->sm_lid; av.sl = ibdev->sm_sl; - av.qpn = IB_SA_QPN; - av.qkey = IB_GLOBAL_QKEY; + av.qpn = IB_QPN_GMA; + av.qkey = IB_QKEY_GMA; /* Post send request */ if ( ( rc = ib_post_send ( ibdev, ipoib->meta.qp, &av, @@ -511,7 +511,7 @@ static int ipoib_transmit ( struct net_device *netdev, av.gid_present = 1; if ( dest->mac.qpn == htonl ( IPOIB_BROADCAST_QPN ) ) { /* Broadcast */ - av.qpn = IB_BROADCAST_QPN; + av.qpn = IB_QPN_BROADCAST; av.lid = ipoib->broadcast_lid; gid = &ipoib->broadcast_gid; } else { @@ -835,7 +835,7 @@ static int ipoib_open ( struct net_device *netdev ) { IPOIB_META_NUM_CQES, &ipoib_meta_cq_op, IPOIB_META_NUM_SEND_WQES, IPOIB_META_NUM_RECV_WQES, - IB_GLOBAL_QKEY ) ) != 0 ) { + IB_QKEY_GMA ) ) != 0 ) { DBGC ( ipoib, "IPoIB %p could not allocate metadata QP: %s\n", ipoib, strerror ( rc ) ); goto err_create_meta_qset; @@ -847,7 +847,7 @@ static int ipoib_open ( struct net_device *netdev ) { IPOIB_DATA_NUM_CQES, &ipoib_data_cq_op, IPOIB_DATA_NUM_SEND_WQES, IPOIB_DATA_NUM_RECV_WQES, - IB_GLOBAL_QKEY ) ) != 0 ) { + IB_QKEY_GMA ) ) != 0 ) { DBGC ( ipoib, "IPoIB %p could not allocate data QP: %s\n", ipoib, strerror ( rc ) ); goto err_create_data_qset; diff --git a/src/include/gpxe/ib_packet.h b/src/include/gpxe/ib_packet.h index fb959126..a014352e 100644 --- a/src/include/gpxe/ib_packet.h +++ b/src/include/gpxe/ib_packet.h @@ -106,12 +106,6 @@ enum ib_bth_opcode { BTH_OPCODE_UD_SEND = 0x64, }; -/** Default Infiniband partition key */ -#define IB_PKEY_NONE 0xffff - -/** Subnet management queue pair number */ -#define IB_QPN_SMP 0 - /** An Infiniband Datagram Extended Transport Header */ struct ib_datagram_extended_transport_header { /** Queue key */ diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h index 41c55ac5..be22b7fe 100644 --- a/src/include/gpxe/infiniband.h +++ b/src/include/gpxe/infiniband.h @@ -15,14 +15,23 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include -/** Subnet administrator QPN */ -#define IB_SA_QPN 1 +/** Subnet management QPN */ +#define IB_QPN_SMA 0 + +/** Subnet management queue key */ +#define IB_QKEY_SMA 0 + +/** General management QPN */ +#define IB_QPN_GMA 1 + +/** General management queue key */ +#define IB_QKEY_GMA 0x80010000UL /** Broadcast QPN */ -#define IB_BROADCAST_QPN 0xffffffUL +#define IB_QPN_BROADCAST 0xffffffUL -/** Subnet administrator queue key */ -#define IB_GLOBAL_QKEY 0x80010000UL +/** Default Infiniband partition key */ +#define IB_PKEY_NONE 0xffff /** * Maximum payload size diff --git a/src/net/infiniband/ib_packet.c b/src/net/infiniband/ib_packet.c index d67ba1d7..3170a205 100644 --- a/src/net/infiniband/ib_packet.c +++ b/src/net/infiniband/ib_packet.c @@ -76,7 +76,7 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf, lrh_len = ( payload_len + iob_len ( iobuf ) - orig_iob_len ); /* Construct LRH */ - vl = ( ( av->qpn == IB_QPN_SMP ) ? IB_VL_SMP : IB_VL_DEFAULT ); + vl = ( ( av->qpn == IB_QPN_SMA ) ? IB_VL_SMP : IB_VL_DEFAULT ); lrh->vl__lver = ( vl << 4 ); lnh = ( grh ? IB_LNH_GRH : IB_LNH_BTH ); lrh->sl__lnh = ( ( av->sl << 4 ) | lnh ); diff --git a/src/net/infiniband/ib_sma.c b/src/net/infiniband/ib_sma.c index 5fd1319c..007b4d1a 100644 --- a/src/net/infiniband/ib_sma.c +++ b/src/net/infiniband/ib_sma.c @@ -460,7 +460,7 @@ int ib_create_sma ( struct ib_sma *sma, struct ib_device *ibdev, ib_qp_set_ownerdata ( sma->qp, sma ); /* If we don't get QP0, we can't function */ - if ( sma->qp->qpn != IB_QPN_SMP ) { + if ( sma->qp->qpn != IB_QPN_SMA ) { DBGC ( sma, "SMA %p on QPN %lx, needs to be on QPN 0\n", sma, sma->qp->qpn ); rc = -ENOTSUP; -- cgit v1.2.3-55-g7522