Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[infiniband] Change IB_{QPN,QKEY,QPT} names from {SMA,GMA} to {SMI,GSI}
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.