summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2009-07-06 21:31:44 +0200
committerMichael Brown2009-07-18 00:06:33 +0200
commit365b8db5cfc9c53c259ca128bd14a0d3b5bf640b (patch)
treef4bd846f4d32d449cef69301af8531331080a4a9
parent[infiniband] Poll completion queues automatically (diff)
downloadipxe-365b8db5cfc9c53c259ca128bd14a0d3b5bf640b.tar.gz
ipxe-365b8db5cfc9c53c259ca128bd14a0d3b5bf640b.tar.xz
ipxe-365b8db5cfc9c53c259ca128bd14a0d3b5bf640b.zip
[infiniband] Centralise SMA and GMA queue constants
-rw-r--r--src/drivers/net/ipoib.c14
-rw-r--r--src/include/gpxe/ib_packet.h6
-rw-r--r--src/include/gpxe/infiniband.h19
-rw-r--r--src/net/infiniband/ib_packet.c2
-rw-r--r--src/net/infiniband/ib_sma.c2
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 <gpxe/ib_packet.h>
#include <gpxe/ib_mad.h>
-/** 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;