[ofw] [PATCH] opensm/libvendor-ibal - Support OSMV_QUERY_MULTIPATH_REC queries
Hal Rosenstock
hal.rosenstock at gmail.com
Fri May 21 05:25:55 PDT 2010
On Thu, May 20, 2010 at 6:03 PM, Smith, Stan <stan.smith at intel.com> wrote:
>
> Support OSMV_QUERY_MULTIPATH_REC queries.
>
> signed-off-by: stan smith <stan.smith at intel.com>
>
> --- a/ulp/opensm/user/libvendor/osm_vendor_mlx_sa.c Thu May 20 14:58:29 2010
> +++ b/ulp/opensm/user/libvendor/osm_vendor_mlx_sa.c Thu May 20 14:41:42 2010
> @@ -827,6 +827,46 @@
> sa_mad_data.p_attr = p_user_query->p_attr;
> break;
>
> +#ifdef DUAL_SIDED_RMPP
> + case OSMV_QUERY_MULTIPATH_REC:
> + OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 MULTIPATH_REC\n");
> + /* Validate sgid/dgid counts against SA client limit */
> + p_mpr_req = (osmv_multipath_req_t *) p_query_req->p_query_input;
> + if (p_mpr_req->sgid_count + p_mpr_req->dgid_count >
> + IB_MULTIPATH_MAX_GIDS) {
> + OSM_LOG(p_log, OSM_LOG_ERROR, "DBG:001 MULTIPATH_REC "
> + "SGID count %d DGID count %d max count %d\n",
> + p_mpr_req->sgid_count, p_mpr_req->dgid_count,
> + IB_MULTIPATH_MAX_GIDS);
> + CL_ASSERT(0);
> + return IB_ERROR;
> + }
> + memset(&u.multipath_rec, 0, sizeof(ib_multipath_rec_t));
> + sa_mad_data.method = IB_MAD_METHOD_GETMULTI;
> + sa_mad_data.attr_id = IB_MAD_ATTR_MULTIPATH_RECORD;
> + sa_mad_data.attr_offset =
> + ib_get_attr_offset(sizeof(ib_multipath_rec_t));
> + sa_mad_data.p_attr = &u.multipath_rec;
> + sa_mad_data.comp_mask = p_mpr_req->comp_mask;
> + u.multipath_rec.num_path = p_mpr_req->num_path;
> + if (p_mpr_req->reversible)
> + u.multipath_rec.num_path |= 0x80;
> + else
> + u.multipath_rec.num_path &= ~0x80;
> + u.multipath_rec.pkey = p_mpr_req->pkey;
> + ib_multipath_rec_set_sl(&u.multipath_rec, p_mpr_req->sl);
> + ib_multipath_rec_set_qos_class(&u.multipath_rec, 0);
> + u.multipath_rec.independence = p_mpr_req->independence;
> + u.multipath_rec.sgid_count = p_mpr_req->sgid_count;
> + u.multipath_rec.dgid_count = p_mpr_req->dgid_count;
> + j = 0;
> + for (i = 0; i < p_mpr_req->sgid_count; i++, j++)
> + u.multipath_rec.gids[j] = p_mpr_req->gids[j];
> + for (i = 0; i < p_mpr_req->dgid_count; i++, j++)
> + u.multipath_rec.gids[j] = p_mpr_req->gids[j];
> + break;
> +#endif
> +
> default:
> osm_log(p_log, OSM_LOG_ERROR,
> "osmv_query_sa DBG:001 %s", "UNKNOWN\n");
Should this patch also be pushed to Linux
(opensm/libvendor/osm_vendor_mlx_sa.c) ?
-- Hal
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
>
More information about the ofw
mailing list