Skip to content

Commit

Permalink
[infiniband] Change IB_{QPN,QKEY,QPT} names from {SMA,GMA} to {SMI,GSI}
Browse files Browse the repository at this point in the history
The IBA specification refers to management "interfaces" and "agents".
The interface is the component that connects to the queue pair and
sends and receives MADs; the agent is the component that constructs
the reply to the MAD.

Rename the IB_{QPN,QKEY,QPT} constants as a first step towards making
this separation in gPXE.
  • Loading branch information
Michael Brown committed Aug 6, 2009
1 parent 1f7d550 commit b0c5638
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 30 deletions.
20 changes: 10 additions & 10 deletions src/drivers/infiniband/hermon.c
Expand Up @@ -831,10 +831,10 @@ static int hermon_alloc_qpn ( struct ib_device *ibdev,
port_offset = ( ibdev->port - HERMON_PORT_BASE );

switch ( qp->type ) {
case IB_QPT_SMA:
case IB_QPT_SMI:
qp->qpn = ( hermon->special_qpn_base + port_offset );
return 0;
case IB_QPT_GMA:
case IB_QPT_GSI:
qp->qpn = ( hermon->special_qpn_base + 2 + port_offset );
return 0;
case IB_QPT_UD:
Expand Down Expand Up @@ -892,15 +892,15 @@ static unsigned int hermon_rate ( struct ib_address_vector *av ) {
*/
static unsigned int hermon_sched_queue ( struct ib_device *ibdev,
struct ib_queue_pair *qp ) {
return ( ( ( qp->type == IB_QPT_SMA ) ?
return ( ( ( qp->type == IB_QPT_SMI ) ?
HERMON_SCHED_QP0 : HERMON_SCHED_DEFAULT ) |
( ( ibdev->port - 1 ) << 6 ) );
}

/** Queue pair transport service type map */
static uint8_t hermon_qp_st[] = {
[IB_QPT_SMA] = HERMON_ST_MLX,
[IB_QPT_GMA] = HERMON_ST_MLX,
[IB_QPT_SMI] = HERMON_ST_MLX,
[IB_QPT_GSI] = HERMON_ST_MLX,
[IB_QPT_UD] = HERMON_ST_UD,
[IB_QPT_RC] = HERMON_ST_RC,
};
Expand Down Expand Up @@ -1214,7 +1214,7 @@ hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
icrc, 0 /* generate ICRC */,
max_statrate, hermon_rate ( av ),
slr, 0,
v15, ( ( qp->ext_qpn == IB_QPN_SMA ) ? 1 : 0 ) );
v15, ( ( qp->ext_qpn == IB_QPN_SMI ) ? 1 : 0 ) );
MLX_FILL_1 ( &wqe->mlx.ctrl, 3, rlid, av->lid );
MLX_FILL_1 ( &wqe->mlx.data[0], 0,
byte_count, iob_len ( &headers ) );
Expand Down Expand Up @@ -1264,8 +1264,8 @@ static unsigned int
struct ib_address_vector *av,
struct io_buffer *iobuf,
union hermon_send_wqe *wqe ) = {
[IB_QPT_SMA] = hermon_fill_mlx_send_wqe,
[IB_QPT_GMA] = hermon_fill_mlx_send_wqe,
[IB_QPT_SMI] = hermon_fill_mlx_send_wqe,
[IB_QPT_GSI] = hermon_fill_mlx_send_wqe,
[IB_QPT_UD] = hermon_fill_ud_send_wqe,
[IB_QPT_RC] = hermon_fill_rc_send_wqe,
};
Expand Down Expand Up @@ -1444,8 +1444,8 @@ static int hermon_complete ( struct ib_device *ibdev,
assert ( len <= iob_tailroom ( iobuf ) );
iob_put ( iobuf, len );
switch ( qp->type ) {
case IB_QPT_SMA:
case IB_QPT_GMA:
case IB_QPT_SMI:
case IB_QPT_GSI:
case IB_QPT_UD:
assert ( iob_len ( iobuf ) >= sizeof ( *grh ) );
grh = iobuf->data;
Expand Down
20 changes: 10 additions & 10 deletions src/include/gpxe/infiniband.h
Expand Up @@ -15,17 +15,17 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <gpxe/ib_packet.h>
#include <gpxe/ib_mad.h>

/** Subnet management QPN */
#define IB_QPN_SMA 0
/** Subnet management interface QPN */
#define IB_QPN_SMI 0

/** Subnet management queue key */
#define IB_QKEY_SMA 0
/** Subnet management interface queue key */
#define IB_QKEY_SMI 0

/** General management QPN */
#define IB_QPN_GMA 1
/** General service interface QPN */
#define IB_QPN_GSI 1

/** General management queue key */
#define IB_QKEY_GMA 0x80010000UL
/** General service interface queue key */
#define IB_QKEY_GSI 0x80010000UL

/** Broadcast QPN */
#define IB_QPN_BROADCAST 0xffffffUL
Expand Down Expand Up @@ -124,8 +124,8 @@ struct ib_multicast_gid {

/** An Infiniband queue pair type */
enum ib_queue_pair_type {
IB_QPT_SMA,
IB_QPT_GMA,
IB_QPT_SMI,
IB_QPT_GSI,
IB_QPT_UD,
IB_QPT_RC,
};
Expand Down
12 changes: 6 additions & 6 deletions src/net/infiniband.c
Expand Up @@ -209,11 +209,11 @@ struct ib_queue_pair * ib_create_qp ( struct ib_device *ibdev,

/* Calculate externally-visible QPN */
switch ( type ) {
case IB_QPT_SMA:
qp->ext_qpn = IB_QPN_SMA;
case IB_QPT_SMI:
qp->ext_qpn = IB_QPN_SMI;
break;
case IB_QPT_GMA:
qp->ext_qpn = IB_QPN_GMA;
case IB_QPT_GSI:
qp->ext_qpn = IB_QPN_GSI;
break;
default:
qp->ext_qpn = qp->qpn;
Expand Down Expand Up @@ -535,15 +535,15 @@ int ib_open ( struct ib_device *ibdev ) {
}

/* Create subnet management agent */
ibdev->sma = ib_create_gma ( ibdev, IB_QPT_SMA );
ibdev->sma = ib_create_gma ( ibdev, IB_QPT_SMI );
if ( ! ibdev->sma ) {
DBGC ( ibdev, "IBDEV %p could not create SMA\n", ibdev );
rc = -ENOMEM;
goto err_create_sma;
}

/* Create general management agent */
ibdev->gma = ib_create_gma ( ibdev, IB_QPT_GMA );
ibdev->gma = ib_create_gma ( ibdev, IB_QPT_GSI );
if ( ! ibdev->gma ) {
DBGC ( ibdev, "IBDEV %p could not create GMA\n", ibdev );
rc = -ENOMEM;
Expand Down
6 changes: 3 additions & 3 deletions src/net/infiniband/ib_gma.c
Expand Up @@ -590,8 +590,8 @@ int ib_gma_request ( struct ib_gma *gma, union ib_mad *mad,
} else {
request->av.lid = ibdev->sm_lid;
request->av.sl = ibdev->sm_sl;
request->av.qpn = IB_QPN_GMA;
request->av.qkey = IB_QKEY_GMA;
request->av.qpn = IB_QPN_GSI;
request->av.qkey = IB_QKEY_GSI;
}

/* Copy MAD body */
Expand Down Expand Up @@ -656,7 +656,7 @@ struct ib_gma * ib_create_gma ( struct ib_device *ibdev,
DBGC ( gma, "GMA %p running on QPN %#lx\n", gma, gma->qp->qpn );

/* Set queue key */
gma->qp->qkey = ( ( type == IB_QPT_SMA ) ? IB_QKEY_SMA : IB_QKEY_GMA );
gma->qp->qkey = ( ( type == IB_QPT_SMI ) ? IB_QKEY_SMI : IB_QKEY_GSI );
if ( ( rc = ib_modify_qp ( ibdev, gma->qp ) ) != 0 ) {
DBGC ( gma, "GMA %p could not set queue key: %s\n",
gma, strerror ( rc ) );
Expand Down
2 changes: 1 addition & 1 deletion src/net/infiniband/ib_packet.c
Expand Up @@ -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 = ( ( qp->ext_qpn == IB_QPN_SMA ) ? IB_VL_SMP : IB_VL_DEFAULT );
vl = ( ( qp->ext_qpn == IB_QPN_SMI ) ? 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 );
Expand Down

0 comments on commit b0c5638

Please sign in to comment.