* [PATCH] osmtest/SA client: Only set attribute offset for RMPP operations
@ 2010-08-27 12:37 Hal Rosenstock
[not found] ` <20100827123717.GA15888-Wuw85uim5zDR7s880joybQ@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Hal Rosenstock @ 2010-08-27 12:37 UTC (permalink / raw)
To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
diff --git a/opensm/libvendor/osm_vendor_ibumad_sa.c b/opensm/libvendor/osm_vendor_ibumad_sa.c
index 3a7d54a..a81a6b7 100644
--- a/opensm/libvendor/osm_vendor_ibumad_sa.c
+++ b/opensm/libvendor/osm_vendor_ibumad_sa.c
@@ -2,7 +2,7 @@
* Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2007,2009 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- * Copyright (c) 2009 HNR Consulting. All rights reserved.
+ * Copyright (c) 2009,2010 HNR Consulting. All rights reserved.
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
@@ -342,6 +342,7 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind,
static atomic32_t trans_id;
boolean_t sync;
osmv_query_req_t *p_query_req_copy;
+ uint32_t sa_size;
OSM_LOG_ENTER(p_log);
@@ -401,8 +402,8 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind,
p_sa_mad->rmpp_flags = IB_RMPP_FLAG_ACTIVE;
#endif
if (p_sa_mad->comp_mask) {
- memcpy(p_sa_mad->data, p_sa_mad_data->p_attr,
- ib_get_attr_size(p_sa_mad_data->attr_offset));
+ p_sa_mad_data->attr_offset ? (sa_size = ib_get_attr_size(p_sa_mad_data->attr_offset)) : (sa_size = IB_SA_DATA_SIZE);
+ memcpy(p_sa_mad->data, p_sa_mad_data->p_attr, sa_size);
}
/*
@@ -488,6 +489,7 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
/* Set the request information. */
sa_mad_data.method = IB_MAD_METHOD_GETTABLE;
sa_mad_data.attr_mod = 0;
+ sa_mad_data.attr_offset = 0;
/* Set the MAD attributes and component mask correctly. */
switch (p_query_req->query_type) {
@@ -497,7 +499,11 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
if (p_user_query->method)
sa_mad_data.method = p_user_query->method;
- sa_mad_data.attr_offset = p_user_query->attr_offset;
+#ifdef DUAL_SIDED_RMPP
+ if (sa_mad_data.method == IB_MAD_METHOD_GETMULTI ||
+ sa_mad_data.method == IB_MAD_METHOD_GETTRACETABLE)
+ sa_mad_data.attr_offset = p_user_query->attr_offset;
+#endif
sa_mad_data.attr_id = p_user_query->attr_id;
sa_mad_data.attr_mod = p_user_query->attr_mod;
sa_mad_data.comp_mask = p_user_query->comp_mask;
@@ -507,8 +513,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
case OSMV_QUERY_ALL_SVC_RECS:
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_NAME\n");
sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_service_record_t));
sa_mad_data.comp_mask = 0;
sa_mad_data.p_attr = &u.svc_rec;
break;
@@ -518,8 +522,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
sa_mad_data.method = IB_MAD_METHOD_GET;
sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
sa_mad_data.comp_mask = IB_SR_COMPMASK_SNAME;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_service_record_t));
sa_mad_data.p_attr = &u.svc_rec;
memcpy(u.svc_rec.service_name, p_query_req->p_query_input,
sizeof(ib_svc_name_t));
@@ -529,8 +531,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_ID\n");
sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
sa_mad_data.comp_mask = IB_SR_COMPMASK_SID;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_service_record_t));
sa_mad_data.p_attr = &u.svc_rec;
u.svc_rec.service_id =
*(ib_net64_t *) (p_query_req->p_query_input);
@@ -540,8 +540,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 CLASS_PORT_INFO\n");
sa_mad_data.method = IB_MAD_METHOD_GET;
sa_mad_data.attr_id = IB_MAD_ATTR_CLASS_PORT_INFO;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_class_port_info_t));
sa_mad_data.comp_mask = 0;
sa_mad_data.p_attr = &u.class_port_info;
break;
@@ -549,8 +547,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
case OSMV_QUERY_NODE_REC_BY_NODE_GUID:
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 NODE_REC_BY_NODE_GUID\n");
sa_mad_data.attr_id = IB_MAD_ATTR_NODE_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_node_record_t));
sa_mad_data.comp_mask = IB_NR_COMPMASK_NODEGUID;
sa_mad_data.p_attr = &u.node_rec;
u.node_rec.node_info.node_guid =
@@ -560,8 +556,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
case OSMV_QUERY_PORT_REC_BY_LID:
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID\n");
sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_portinfo_record_t));
sa_mad_data.comp_mask = IB_PIR_COMPMASK_LID;
sa_mad_data.p_attr = &u.port_info;
u.port_info.lid = *(ib_net16_t *) (p_query_req->p_query_input);
@@ -572,8 +566,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID_AND_NUM\n");
sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_portinfo_record_t));
sa_mad_data.comp_mask =
IB_PIR_COMPMASK_LID | IB_PIR_COMPMASK_PORTNUM;
sa_mad_data.p_attr = p_user_query->p_attr;
@@ -584,8 +576,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n");
sa_mad_data.attr_id = IB_MAD_ATTR_VLARB_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_vl_arb_table_record_t));
sa_mad_data.comp_mask =
IB_VLA_COMPMASK_LID | IB_VLA_COMPMASK_OUT_PORT |
IB_VLA_COMPMASK_BLOCK;
@@ -597,8 +587,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n");
sa_mad_data.attr_id = IB_MAD_ATTR_SLVL_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_slvl_table_record_t));
sa_mad_data.comp_mask =
IB_SLVL_COMPMASK_LID | IB_SLVL_COMPMASK_OUT_PORT |
IB_SLVL_COMPMASK_IN_PORT;
@@ -609,8 +597,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_PORT_GUIDS\n");
memset(&u.path_rec, 0, sizeof(ib_path_rec_t));
sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_path_rec_t));
sa_mad_data.comp_mask =
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
u.path_rec.num_path = 0x7f;
@@ -629,8 +615,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_GIDS\n");
memset(&u.path_rec, 0, sizeof(ib_path_rec_t));
sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_path_rec_t));
sa_mad_data.comp_mask =
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
u.path_rec.num_path = 0x7f;
@@ -648,8 +632,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
memset(&u.path_rec, 0, sizeof(ib_path_rec_t));
sa_mad_data.method = IB_MAD_METHOD_GET;
sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_path_rec_t));
sa_mad_data.comp_mask =
(IB_PR_COMPMASK_DLID | IB_PR_COMPMASK_SLID);
sa_mad_data.p_attr = &u.path_rec;
@@ -665,8 +647,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_SET\n");
sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_member_rec_t));
sa_mad_data.comp_mask = p_user_query->comp_mask;
sa_mad_data.p_attr = p_user_query->p_attr;
break;
@@ -676,8 +656,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind,
p_user_query = (osmv_user_query_t *) p_query_req->p_query_input;
OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_DELETE\n");
sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- sa_mad_data.attr_offset =
- ib_get_attr_offset(sizeof(ib_member_rec_t));
sa_mad_data.comp_mask = p_user_query->comp_mask;
sa_mad_data.p_attr = p_user_query->p_attr;
break;
diff --git a/opensm/osmtest/osmt_multicast.c b/opensm/osmtest/osmt_multicast.c
index 34422b7..5c938b5 100644
--- a/opensm/osmtest/osmt_multicast.c
+++ b/opensm/osmtest/osmt_multicast.c
@@ -2,6 +2,7 @@
* Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005,2008 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Copyright (c) 2010 HNR Consulting. All rights reserved.
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
@@ -65,7 +66,6 @@ static void __osmt_print_all_multicast_records(IN osmtest_t * const p_osmt)
memset(&user, 0, sizeof(user));
user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- user.attr_offset = ib_get_attr_offset(sizeof(*mcast_record));
req.query_type = OSMV_QUERY_USER_DEFINED;
req.timeout_ms = p_osmt->opt.transaction_timeout;
@@ -167,7 +167,6 @@ ib_api_status_t osmt_query_mcast(IN osmtest_t * const p_osmt)
context.p_osmt = p_osmt;
user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t));
req.query_type = OSMV_QUERY_USER_DEFINED;
req.timeout_ms = p_osmt->opt.transaction_timeout;
@@ -303,14 +302,12 @@ osmt_send_mcast_request(IN osmtest_t * const p_osmt,
req.query_type = OSMV_QUERY_USER_DEFINED;
user.method = IB_MAD_METHOD_GET;
user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t));
} else if (is_set == 0xff) {
OSM_LOG(&p_osmt->log, OSM_LOG_VERBOSE,
"Set USER DEFINED QUERY\n");
req.query_type = OSMV_QUERY_USER_DEFINED;
user.method = IB_MAD_METHOD_SET;
user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t));
}
/* TODO : Check the validity of all user fields in order to use
diff --git a/opensm/osmtest/osmt_service.c b/opensm/osmtest/osmt_service.c
index a203b0c..6f27109 100644
--- a/opensm/osmtest/osmt_service.c
+++ b/opensm/osmtest/osmt_service.c
@@ -2,6 +2,7 @@
* Copyright (c) 2006-2008 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Copyright (c) 2010 HNR Consulting. All rights reserved.
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
@@ -121,7 +122,6 @@ osmt_register_service(IN osmtest_t * const p_osmt,
IB_SR_COMPMASK_SLEASE |
IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME;
}
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
@@ -226,7 +226,6 @@ osmt_register_service_with_full_key(IN osmtest_t * const p_osmt,
IB_SR_COMPMASK_SLEASE |
IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME;
}
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
@@ -373,7 +372,6 @@ osmt_register_service_with_data(IN osmtest_t * const p_osmt,
IB_SR_COMPMASK_SDATA32_1 |
IB_SR_COMPMASK_SDATA64_0 | IB_SR_COMPMASK_SDATA64_1;
}
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
/* Dump to Service Data b4 send */
@@ -486,7 +484,6 @@ osmt_get_service_by_id_and_name(IN osmtest_t * const p_osmt,
user.method = IB_MAD_METHOD_GET;
user.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
user.comp_mask = IB_SR_COMPMASK_SID | IB_SR_COMPMASK_SNAME;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
@@ -607,7 +604,6 @@ osmt_get_service_by_id(IN osmtest_t * const p_osmt,
user.method = IB_MAD_METHOD_GET;
user.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
user.comp_mask = IB_SR_COMPMASK_SID;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
@@ -739,7 +735,6 @@ osmt_get_service_by_name_and_key(IN osmtest_t * const p_osmt,
user.method = IB_MAD_METHOD_GET;
user.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
user.comp_mask = IB_SR_COMPMASK_SNAME | IB_SR_COMPMASK_SKEY;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
if (status != IB_SUCCESS) {
@@ -1092,7 +1087,6 @@ osmt_delete_service_by_name(IN osmtest_t * const p_osmt,
user.method = IB_MAD_METHOD_DELETE;
user.attr_id = IB_MAD_ATTR_SERVICE_RECORD;
user.comp_mask = IB_SR_COMPMASK_SNAME;
- user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t));
user.p_attr = &svc_rec;
status = osmv_query_sa(p_osmt->h_bind, &req);
diff --git a/opensm/osmtest/osmtest.c b/opensm/osmtest/osmtest.c
index d96fb28..af17d15 100644
--- a/opensm/osmtest/osmtest.c
+++ b/opensm/osmtest/osmtest.c
@@ -2,7 +2,7 @@
* Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2007 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- * Copyright (c) 2009 HNR Consulting. All rights reserved.
+ * Copyright (c) 2009,2010 HNR Consulting. All rights reserved.
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
@@ -563,7 +563,6 @@ osmtest_get_all_recs(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.attr_id = attr_id;
- user.attr_offset = ib_get_attr_offset((uint16_t) attr_size);
req.query_type = OSMV_QUERY_USER_DEFINED;
req.timeout_ms = p_osmt->opt.transaction_timeout;
@@ -719,7 +718,6 @@ osmtest_get_node_rec(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.comp_mask = IB_NR_COMPMASK_NODEGUID;
user.attr_id = IB_MAD_ATTR_NODE_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -793,7 +791,6 @@ osmtest_get_node_rec_by_lid(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.comp_mask = IB_NR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_NODE_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -1057,7 +1054,6 @@ osmtest_get_port_rec(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.comp_mask = IB_PIR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_PORTINFO_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4171,7 +4167,6 @@ osmtest_get_link_rec_by_lid(IN osmtest_t * const p_osmt,
if (to_lid)
user.comp_mask |= IB_LR_COMPMASK_TO_LID;
user.attr_id = IB_MAD_ATTR_LINK_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4249,7 +4244,6 @@ osmtest_get_guidinfo_rec_by_lid(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.comp_mask = IB_GIR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_GUIDINFO_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4328,7 +4322,6 @@ osmtest_get_pkeytbl_rec_by_lid(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.comp_mask = IB_PKEY_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_PKEY_TBL_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4407,7 +4400,6 @@ osmtest_get_sw_info_rec_by_lid(IN osmtest_t * const p_osmt,
if (lid)
user.comp_mask = IB_SWIR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_SWITCH_INFO_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4486,7 +4478,6 @@ osmtest_get_lft_rec_by_lid(IN osmtest_t * const p_osmt,
if (lid)
user.comp_mask = IB_LFTR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_LFT_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4565,7 +4556,6 @@ osmtest_get_mft_rec_by_lid(IN osmtest_t * const p_osmt,
if (lid)
user.comp_mask = IB_MFTR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_MFT_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
@@ -4637,7 +4627,6 @@ osmtest_sminfo_record_request(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.attr_id = IB_MAD_ATTR_SMINFO_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
p_sm_info_opt = p_options;
if (p_sm_info_opt->sm_guid != 0) {
record.sm_info.guid = p_sm_info_opt->sm_guid;
@@ -4737,7 +4726,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt,
p_context->p_osmt = p_osmt;
user.attr_id = attr_id;
if (attr_id == IB_MAD_ATTR_INFORM_INFO_RECORD) {
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
p_inform_info_rec_opt = p_options;
if (p_inform_info_rec_opt->subscriber_gid.unicast.prefix != 0 &&
p_inform_info_rec_opt->subscriber_gid.unicast.
@@ -4751,7 +4739,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt,
user.comp_mask |= IB_IIR_COMPMASK_ENUM;
user.p_attr = &record;
} else {
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(rec));
/* comp mask bits below are for InformInfoRecord rather than InformInfo */
/* as currently no comp mask bits defined for InformInfo!!! */
user.comp_mask = IB_IIR_COMPMASK_SUBSCRIBE;
@@ -4900,7 +4887,6 @@ osmtest_validate_single_node_rec_lid(IN osmtest_t * const p_osmt,
context.p_osmt = p_osmt;
user.comp_mask = IB_NR_COMPMASK_LID;
user.attr_id = IB_MAD_ATTR_NODE_RECORD;
- user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
user.p_attr = &record;
req.query_type = OSMV_QUERY_USER_DEFINED;
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 3+ messages in thread[parent not found: <20100827123717.GA15888-Wuw85uim5zDR7s880joybQ@public.gmane.org>]
* Re: [PATCH] osmtest/SA client: Only set attribute offset for RMPP operations [not found] ` <20100827123717.GA15888-Wuw85uim5zDR7s880joybQ@public.gmane.org> @ 2010-09-01 19:27 ` Sasha Khapyorsky 2010-09-01 19:29 ` Hal Rosenstock 0 siblings, 1 reply; 3+ messages in thread From: Sasha Khapyorsky @ 2010-09-01 19:27 UTC (permalink / raw) To: Hal Rosenstock; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA Hi Hal, On 08:37 Fri 27 Aug , Hal Rosenstock wrote: > The patch description would be very useful. What is motivation for such changes? Sasha > Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > diff --git a/opensm/libvendor/osm_vendor_ibumad_sa.c b/opensm/libvendor/osm_vendor_ibumad_sa.c > index 3a7d54a..a81a6b7 100644 > --- a/opensm/libvendor/osm_vendor_ibumad_sa.c > +++ b/opensm/libvendor/osm_vendor_ibumad_sa.c > @@ -2,7 +2,7 @@ > * Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved. > * Copyright (c) 2002-2007,2009 Mellanox Technologies LTD. All rights reserved. > * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. > - * Copyright (c) 2009 HNR Consulting. All rights reserved. > + * Copyright (c) 2009,2010 HNR Consulting. All rights reserved. > * > * This software is available to you under a choice of one of two > * licenses. You may choose to be licensed under the terms of the GNU > @@ -342,6 +342,7 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind, > static atomic32_t trans_id; > boolean_t sync; > osmv_query_req_t *p_query_req_copy; > + uint32_t sa_size; > > OSM_LOG_ENTER(p_log); > > @@ -401,8 +402,8 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind, > p_sa_mad->rmpp_flags = IB_RMPP_FLAG_ACTIVE; > #endif > if (p_sa_mad->comp_mask) { > - memcpy(p_sa_mad->data, p_sa_mad_data->p_attr, > - ib_get_attr_size(p_sa_mad_data->attr_offset)); > + p_sa_mad_data->attr_offset ? (sa_size = ib_get_attr_size(p_sa_mad_data->attr_offset)) : (sa_size = IB_SA_DATA_SIZE); > + memcpy(p_sa_mad->data, p_sa_mad_data->p_attr, sa_size); > } > > /* > @@ -488,6 +489,7 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > /* Set the request information. */ > sa_mad_data.method = IB_MAD_METHOD_GETTABLE; > sa_mad_data.attr_mod = 0; > + sa_mad_data.attr_offset = 0; > > /* Set the MAD attributes and component mask correctly. */ > switch (p_query_req->query_type) { > @@ -497,7 +499,11 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > if (p_user_query->method) > sa_mad_data.method = p_user_query->method; > - sa_mad_data.attr_offset = p_user_query->attr_offset; > +#ifdef DUAL_SIDED_RMPP > + if (sa_mad_data.method == IB_MAD_METHOD_GETMULTI || > + sa_mad_data.method == IB_MAD_METHOD_GETTRACETABLE) > + sa_mad_data.attr_offset = p_user_query->attr_offset; > +#endif > sa_mad_data.attr_id = p_user_query->attr_id; > sa_mad_data.attr_mod = p_user_query->attr_mod; > sa_mad_data.comp_mask = p_user_query->comp_mask; > @@ -507,8 +513,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > case OSMV_QUERY_ALL_SVC_RECS: > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_NAME\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_service_record_t)); > sa_mad_data.comp_mask = 0; > sa_mad_data.p_attr = &u.svc_rec; > break; > @@ -518,8 +522,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > sa_mad_data.method = IB_MAD_METHOD_GET; > sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > sa_mad_data.comp_mask = IB_SR_COMPMASK_SNAME; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_service_record_t)); > sa_mad_data.p_attr = &u.svc_rec; > memcpy(u.svc_rec.service_name, p_query_req->p_query_input, > sizeof(ib_svc_name_t)); > @@ -529,8 +531,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_ID\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > sa_mad_data.comp_mask = IB_SR_COMPMASK_SID; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_service_record_t)); > sa_mad_data.p_attr = &u.svc_rec; > u.svc_rec.service_id = > *(ib_net64_t *) (p_query_req->p_query_input); > @@ -540,8 +540,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 CLASS_PORT_INFO\n"); > sa_mad_data.method = IB_MAD_METHOD_GET; > sa_mad_data.attr_id = IB_MAD_ATTR_CLASS_PORT_INFO; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_class_port_info_t)); > sa_mad_data.comp_mask = 0; > sa_mad_data.p_attr = &u.class_port_info; > break; > @@ -549,8 +547,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > case OSMV_QUERY_NODE_REC_BY_NODE_GUID: > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 NODE_REC_BY_NODE_GUID\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_NODE_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_node_record_t)); > sa_mad_data.comp_mask = IB_NR_COMPMASK_NODEGUID; > sa_mad_data.p_attr = &u.node_rec; > u.node_rec.node_info.node_guid = > @@ -560,8 +556,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > case OSMV_QUERY_PORT_REC_BY_LID: > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_portinfo_record_t)); > sa_mad_data.comp_mask = IB_PIR_COMPMASK_LID; > sa_mad_data.p_attr = &u.port_info; > u.port_info.lid = *(ib_net16_t *) (p_query_req->p_query_input); > @@ -572,8 +566,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID_AND_NUM\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_portinfo_record_t)); > sa_mad_data.comp_mask = > IB_PIR_COMPMASK_LID | IB_PIR_COMPMASK_PORTNUM; > sa_mad_data.p_attr = p_user_query->p_attr; > @@ -584,8 +576,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_VLARB_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_vl_arb_table_record_t)); > sa_mad_data.comp_mask = > IB_VLA_COMPMASK_LID | IB_VLA_COMPMASK_OUT_PORT | > IB_VLA_COMPMASK_BLOCK; > @@ -597,8 +587,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_SLVL_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_slvl_table_record_t)); > sa_mad_data.comp_mask = > IB_SLVL_COMPMASK_LID | IB_SLVL_COMPMASK_OUT_PORT | > IB_SLVL_COMPMASK_IN_PORT; > @@ -609,8 +597,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_PORT_GUIDS\n"); > memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); > sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_path_rec_t)); > sa_mad_data.comp_mask = > (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH); > u.path_rec.num_path = 0x7f; > @@ -629,8 +615,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_GIDS\n"); > memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); > sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_path_rec_t)); > sa_mad_data.comp_mask = > (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH); > u.path_rec.num_path = 0x7f; > @@ -648,8 +632,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); > sa_mad_data.method = IB_MAD_METHOD_GET; > sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_path_rec_t)); > sa_mad_data.comp_mask = > (IB_PR_COMPMASK_DLID | IB_PR_COMPMASK_SLID); > sa_mad_data.p_attr = &u.path_rec; > @@ -665,8 +647,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_SET\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_member_rec_t)); > sa_mad_data.comp_mask = p_user_query->comp_mask; > sa_mad_data.p_attr = p_user_query->p_attr; > break; > @@ -676,8 +656,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, > p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; > OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_DELETE\n"); > sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - sa_mad_data.attr_offset = > - ib_get_attr_offset(sizeof(ib_member_rec_t)); > sa_mad_data.comp_mask = p_user_query->comp_mask; > sa_mad_data.p_attr = p_user_query->p_attr; > break; > diff --git a/opensm/osmtest/osmt_multicast.c b/opensm/osmtest/osmt_multicast.c > index 34422b7..5c938b5 100644 > --- a/opensm/osmtest/osmt_multicast.c > +++ b/opensm/osmtest/osmt_multicast.c > @@ -2,6 +2,7 @@ > * Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved. > * Copyright (c) 2002-2005,2008 Mellanox Technologies LTD. All rights reserved. > * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. > + * Copyright (c) 2010 HNR Consulting. All rights reserved. > * > * This software is available to you under a choice of one of two > * licenses. You may choose to be licensed under the terms of the GNU > @@ -65,7 +66,6 @@ static void __osmt_print_all_multicast_records(IN osmtest_t * const p_osmt) > memset(&user, 0, sizeof(user)); > > user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - user.attr_offset = ib_get_attr_offset(sizeof(*mcast_record)); > > req.query_type = OSMV_QUERY_USER_DEFINED; > req.timeout_ms = p_osmt->opt.transaction_timeout; > @@ -167,7 +167,6 @@ ib_api_status_t osmt_query_mcast(IN osmtest_t * const p_osmt) > > context.p_osmt = p_osmt; > user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); > > req.query_type = OSMV_QUERY_USER_DEFINED; > req.timeout_ms = p_osmt->opt.transaction_timeout; > @@ -303,14 +302,12 @@ osmt_send_mcast_request(IN osmtest_t * const p_osmt, > req.query_type = OSMV_QUERY_USER_DEFINED; > user.method = IB_MAD_METHOD_GET; > user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); > } else if (is_set == 0xff) { > OSM_LOG(&p_osmt->log, OSM_LOG_VERBOSE, > "Set USER DEFINED QUERY\n"); > req.query_type = OSMV_QUERY_USER_DEFINED; > user.method = IB_MAD_METHOD_SET; > user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); > } > > /* TODO : Check the validity of all user fields in order to use > diff --git a/opensm/osmtest/osmt_service.c b/opensm/osmtest/osmt_service.c > index a203b0c..6f27109 100644 > --- a/opensm/osmtest/osmt_service.c > +++ b/opensm/osmtest/osmt_service.c > @@ -2,6 +2,7 @@ > * Copyright (c) 2006-2008 Voltaire, Inc. All rights reserved. > * Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved. > * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. > + * Copyright (c) 2010 HNR Consulting. All rights reserved. > * > * This software is available to you under a choice of one of two > * licenses. You may choose to be licensed under the terms of the GNU > @@ -121,7 +122,6 @@ osmt_register_service(IN osmtest_t * const p_osmt, > IB_SR_COMPMASK_SLEASE | > IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME; > } > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > status = osmv_query_sa(p_osmt->h_bind, &req); > @@ -226,7 +226,6 @@ osmt_register_service_with_full_key(IN osmtest_t * const p_osmt, > IB_SR_COMPMASK_SLEASE | > IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME; > } > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > status = osmv_query_sa(p_osmt->h_bind, &req); > @@ -373,7 +372,6 @@ osmt_register_service_with_data(IN osmtest_t * const p_osmt, > IB_SR_COMPMASK_SDATA32_1 | > IB_SR_COMPMASK_SDATA64_0 | IB_SR_COMPMASK_SDATA64_1; > } > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > /* Dump to Service Data b4 send */ > @@ -486,7 +484,6 @@ osmt_get_service_by_id_and_name(IN osmtest_t * const p_osmt, > user.method = IB_MAD_METHOD_GET; > user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > user.comp_mask = IB_SR_COMPMASK_SID | IB_SR_COMPMASK_SNAME; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > status = osmv_query_sa(p_osmt->h_bind, &req); > @@ -607,7 +604,6 @@ osmt_get_service_by_id(IN osmtest_t * const p_osmt, > user.method = IB_MAD_METHOD_GET; > user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > user.comp_mask = IB_SR_COMPMASK_SID; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > status = osmv_query_sa(p_osmt->h_bind, &req); > @@ -739,7 +735,6 @@ osmt_get_service_by_name_and_key(IN osmtest_t * const p_osmt, > user.method = IB_MAD_METHOD_GET; > user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > user.comp_mask = IB_SR_COMPMASK_SNAME | IB_SR_COMPMASK_SKEY; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > status = osmv_query_sa(p_osmt->h_bind, &req); > if (status != IB_SUCCESS) { > @@ -1092,7 +1087,6 @@ osmt_delete_service_by_name(IN osmtest_t * const p_osmt, > user.method = IB_MAD_METHOD_DELETE; > user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; > user.comp_mask = IB_SR_COMPMASK_SNAME; > - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); > user.p_attr = &svc_rec; > > status = osmv_query_sa(p_osmt->h_bind, &req); > diff --git a/opensm/osmtest/osmtest.c b/opensm/osmtest/osmtest.c > index d96fb28..af17d15 100644 > --- a/opensm/osmtest/osmtest.c > +++ b/opensm/osmtest/osmtest.c > @@ -2,7 +2,7 @@ > * Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved. > * Copyright (c) 2002-2007 Mellanox Technologies LTD. All rights reserved. > * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. > - * Copyright (c) 2009 HNR Consulting. All rights reserved. > + * Copyright (c) 2009,2010 HNR Consulting. All rights reserved. > * > * This software is available to you under a choice of one of two > * licenses. You may choose to be licensed under the terms of the GNU > @@ -563,7 +563,6 @@ osmtest_get_all_recs(IN osmtest_t * const p_osmt, > > p_context->p_osmt = p_osmt; > user.attr_id = attr_id; > - user.attr_offset = ib_get_attr_offset((uint16_t) attr_size); > > req.query_type = OSMV_QUERY_USER_DEFINED; > req.timeout_ms = p_osmt->opt.transaction_timeout; > @@ -719,7 +718,6 @@ osmtest_get_node_rec(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.comp_mask = IB_NR_COMPMASK_NODEGUID; > user.attr_id = IB_MAD_ATTR_NODE_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -793,7 +791,6 @@ osmtest_get_node_rec_by_lid(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.comp_mask = IB_NR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_NODE_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -1057,7 +1054,6 @@ osmtest_get_port_rec(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.comp_mask = IB_PIR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4171,7 +4167,6 @@ osmtest_get_link_rec_by_lid(IN osmtest_t * const p_osmt, > if (to_lid) > user.comp_mask |= IB_LR_COMPMASK_TO_LID; > user.attr_id = IB_MAD_ATTR_LINK_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4249,7 +4244,6 @@ osmtest_get_guidinfo_rec_by_lid(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.comp_mask = IB_GIR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_GUIDINFO_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4328,7 +4322,6 @@ osmtest_get_pkeytbl_rec_by_lid(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.comp_mask = IB_PKEY_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_PKEY_TBL_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4407,7 +4400,6 @@ osmtest_get_sw_info_rec_by_lid(IN osmtest_t * const p_osmt, > if (lid) > user.comp_mask = IB_SWIR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_SWITCH_INFO_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4486,7 +4478,6 @@ osmtest_get_lft_rec_by_lid(IN osmtest_t * const p_osmt, > if (lid) > user.comp_mask = IB_LFTR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_LFT_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4565,7 +4556,6 @@ osmtest_get_mft_rec_by_lid(IN osmtest_t * const p_osmt, > if (lid) > user.comp_mask = IB_MFTR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_MFT_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > @@ -4637,7 +4627,6 @@ osmtest_sminfo_record_request(IN osmtest_t * const p_osmt, > > p_context->p_osmt = p_osmt; > user.attr_id = IB_MAD_ATTR_SMINFO_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > p_sm_info_opt = p_options; > if (p_sm_info_opt->sm_guid != 0) { > record.sm_info.guid = p_sm_info_opt->sm_guid; > @@ -4737,7 +4726,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt, > p_context->p_osmt = p_osmt; > user.attr_id = attr_id; > if (attr_id == IB_MAD_ATTR_INFORM_INFO_RECORD) { > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > p_inform_info_rec_opt = p_options; > if (p_inform_info_rec_opt->subscriber_gid.unicast.prefix != 0 && > p_inform_info_rec_opt->subscriber_gid.unicast. > @@ -4751,7 +4739,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt, > user.comp_mask |= IB_IIR_COMPMASK_ENUM; > user.p_attr = &record; > } else { > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(rec)); > /* comp mask bits below are for InformInfoRecord rather than InformInfo */ > /* as currently no comp mask bits defined for InformInfo!!! */ > user.comp_mask = IB_IIR_COMPMASK_SUBSCRIBE; > @@ -4900,7 +4887,6 @@ osmtest_validate_single_node_rec_lid(IN osmtest_t * const p_osmt, > context.p_osmt = p_osmt; > user.comp_mask = IB_NR_COMPMASK_LID; > user.attr_id = IB_MAD_ATTR_NODE_RECORD; > - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); > user.p_attr = &record; > > req.query_type = OSMV_QUERY_USER_DEFINED; > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] osmtest/SA client: Only set attribute offset for RMPP operations 2010-09-01 19:27 ` Sasha Khapyorsky @ 2010-09-01 19:29 ` Hal Rosenstock 0 siblings, 0 replies; 3+ messages in thread From: Hal Rosenstock @ 2010-09-01 19:29 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA On Wed, Sep 1, 2010 at 3:27 PM, Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org> wrote: > Hi Hal, > > On 08:37 Fri 27 Aug , Hal Rosenstock wrote: >> > > The patch description would be very useful. I thought the subject line was sufficiently descriptive but I guess not. > What is motivation for such changes? Most of what the SA client is doing is not RMPP (for example, a GetTable is not RMPP but is requesting RMPP). SA AttributeOffset only needs to be set in RMPP DATA packets. -- Hal > Sasha > >> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> --- >> diff --git a/opensm/libvendor/osm_vendor_ibumad_sa.c b/opensm/libvendor/osm_vendor_ibumad_sa.c >> index 3a7d54a..a81a6b7 100644 >> --- a/opensm/libvendor/osm_vendor_ibumad_sa.c >> +++ b/opensm/libvendor/osm_vendor_ibumad_sa.c >> @@ -2,7 +2,7 @@ >> * Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved. >> * Copyright (c) 2002-2007,2009 Mellanox Technologies LTD. All rights reserved. >> * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. >> - * Copyright (c) 2009 HNR Consulting. All rights reserved. >> + * Copyright (c) 2009,2010 HNR Consulting. All rights reserved. >> * >> * This software is available to you under a choice of one of two >> * licenses. You may choose to be licensed under the terms of the GNU >> @@ -342,6 +342,7 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind, >> static atomic32_t trans_id; >> boolean_t sync; >> osmv_query_req_t *p_query_req_copy; >> + uint32_t sa_size; >> >> OSM_LOG_ENTER(p_log); >> >> @@ -401,8 +402,8 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind, >> p_sa_mad->rmpp_flags = IB_RMPP_FLAG_ACTIVE; >> #endif >> if (p_sa_mad->comp_mask) { >> - memcpy(p_sa_mad->data, p_sa_mad_data->p_attr, >> - ib_get_attr_size(p_sa_mad_data->attr_offset)); >> + p_sa_mad_data->attr_offset ? (sa_size = ib_get_attr_size(p_sa_mad_data->attr_offset)) : (sa_size = IB_SA_DATA_SIZE); >> + memcpy(p_sa_mad->data, p_sa_mad_data->p_attr, sa_size); >> } >> >> /* >> @@ -488,6 +489,7 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> /* Set the request information. */ >> sa_mad_data.method = IB_MAD_METHOD_GETTABLE; >> sa_mad_data.attr_mod = 0; >> + sa_mad_data.attr_offset = 0; >> >> /* Set the MAD attributes and component mask correctly. */ >> switch (p_query_req->query_type) { >> @@ -497,7 +499,11 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> if (p_user_query->method) >> sa_mad_data.method = p_user_query->method; >> - sa_mad_data.attr_offset = p_user_query->attr_offset; >> +#ifdef DUAL_SIDED_RMPP >> + if (sa_mad_data.method == IB_MAD_METHOD_GETMULTI || >> + sa_mad_data.method == IB_MAD_METHOD_GETTRACETABLE) >> + sa_mad_data.attr_offset = p_user_query->attr_offset; >> +#endif >> sa_mad_data.attr_id = p_user_query->attr_id; >> sa_mad_data.attr_mod = p_user_query->attr_mod; >> sa_mad_data.comp_mask = p_user_query->comp_mask; >> @@ -507,8 +513,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> case OSMV_QUERY_ALL_SVC_RECS: >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_NAME\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_service_record_t)); >> sa_mad_data.comp_mask = 0; >> sa_mad_data.p_attr = &u.svc_rec; >> break; >> @@ -518,8 +522,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> sa_mad_data.method = IB_MAD_METHOD_GET; >> sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> sa_mad_data.comp_mask = IB_SR_COMPMASK_SNAME; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_service_record_t)); >> sa_mad_data.p_attr = &u.svc_rec; >> memcpy(u.svc_rec.service_name, p_query_req->p_query_input, >> sizeof(ib_svc_name_t)); >> @@ -529,8 +531,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 SVC_REC_BY_ID\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> sa_mad_data.comp_mask = IB_SR_COMPMASK_SID; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_service_record_t)); >> sa_mad_data.p_attr = &u.svc_rec; >> u.svc_rec.service_id = >> *(ib_net64_t *) (p_query_req->p_query_input); >> @@ -540,8 +540,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 CLASS_PORT_INFO\n"); >> sa_mad_data.method = IB_MAD_METHOD_GET; >> sa_mad_data.attr_id = IB_MAD_ATTR_CLASS_PORT_INFO; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_class_port_info_t)); >> sa_mad_data.comp_mask = 0; >> sa_mad_data.p_attr = &u.class_port_info; >> break; >> @@ -549,8 +547,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> case OSMV_QUERY_NODE_REC_BY_NODE_GUID: >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 NODE_REC_BY_NODE_GUID\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_NODE_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_node_record_t)); >> sa_mad_data.comp_mask = IB_NR_COMPMASK_NODEGUID; >> sa_mad_data.p_attr = &u.node_rec; >> u.node_rec.node_info.node_guid = >> @@ -560,8 +556,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> case OSMV_QUERY_PORT_REC_BY_LID: >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_portinfo_record_t)); >> sa_mad_data.comp_mask = IB_PIR_COMPMASK_LID; >> sa_mad_data.p_attr = &u.port_info; >> u.port_info.lid = *(ib_net16_t *) (p_query_req->p_query_input); >> @@ -572,8 +566,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PORT_REC_BY_LID_AND_NUM\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_portinfo_record_t)); >> sa_mad_data.comp_mask = >> IB_PIR_COMPMASK_LID | IB_PIR_COMPMASK_PORTNUM; >> sa_mad_data.p_attr = p_user_query->p_attr; >> @@ -584,8 +576,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_VLARB_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_vl_arb_table_record_t)); >> sa_mad_data.comp_mask = >> IB_VLA_COMPMASK_LID | IB_VLA_COMPMASK_OUT_PORT | >> IB_VLA_COMPMASK_BLOCK; >> @@ -597,8 +587,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_VLARB_BY_LID_PORT_BLOCK\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_SLVL_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_slvl_table_record_t)); >> sa_mad_data.comp_mask = >> IB_SLVL_COMPMASK_LID | IB_SLVL_COMPMASK_OUT_PORT | >> IB_SLVL_COMPMASK_IN_PORT; >> @@ -609,8 +597,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_PORT_GUIDS\n"); >> memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); >> sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_path_rec_t)); >> sa_mad_data.comp_mask = >> (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH); >> u.path_rec.num_path = 0x7f; >> @@ -629,8 +615,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 PATH_REC_BY_GIDS\n"); >> memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); >> sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_path_rec_t)); >> sa_mad_data.comp_mask = >> (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH); >> u.path_rec.num_path = 0x7f; >> @@ -648,8 +632,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> memset(&u.path_rec, 0, sizeof(ib_path_rec_t)); >> sa_mad_data.method = IB_MAD_METHOD_GET; >> sa_mad_data.attr_id = IB_MAD_ATTR_PATH_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_path_rec_t)); >> sa_mad_data.comp_mask = >> (IB_PR_COMPMASK_DLID | IB_PR_COMPMASK_SLID); >> sa_mad_data.p_attr = &u.path_rec; >> @@ -665,8 +647,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_SET\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_member_rec_t)); >> sa_mad_data.comp_mask = p_user_query->comp_mask; >> sa_mad_data.p_attr = p_user_query->p_attr; >> break; >> @@ -676,8 +656,6 @@ osmv_query_sa(IN osm_bind_handle_t h_bind, >> p_user_query = (osmv_user_query_t *) p_query_req->p_query_input; >> OSM_LOG(p_log, OSM_LOG_DEBUG, "DBG:001 OSMV_QUERY_UD_MULTICAST_DELETE\n"); >> sa_mad_data.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - sa_mad_data.attr_offset = >> - ib_get_attr_offset(sizeof(ib_member_rec_t)); >> sa_mad_data.comp_mask = p_user_query->comp_mask; >> sa_mad_data.p_attr = p_user_query->p_attr; >> break; >> diff --git a/opensm/osmtest/osmt_multicast.c b/opensm/osmtest/osmt_multicast.c >> index 34422b7..5c938b5 100644 >> --- a/opensm/osmtest/osmt_multicast.c >> +++ b/opensm/osmtest/osmt_multicast.c >> @@ -2,6 +2,7 @@ >> * Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved. >> * Copyright (c) 2002-2005,2008 Mellanox Technologies LTD. All rights reserved. >> * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. >> + * Copyright (c) 2010 HNR Consulting. All rights reserved. >> * >> * This software is available to you under a choice of one of two >> * licenses. You may choose to be licensed under the terms of the GNU >> @@ -65,7 +66,6 @@ static void __osmt_print_all_multicast_records(IN osmtest_t * const p_osmt) >> memset(&user, 0, sizeof(user)); >> >> user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - user.attr_offset = ib_get_attr_offset(sizeof(*mcast_record)); >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> req.timeout_ms = p_osmt->opt.transaction_timeout; >> @@ -167,7 +167,6 @@ ib_api_status_t osmt_query_mcast(IN osmtest_t * const p_osmt) >> >> context.p_osmt = p_osmt; >> user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> req.timeout_ms = p_osmt->opt.transaction_timeout; >> @@ -303,14 +302,12 @@ osmt_send_mcast_request(IN osmtest_t * const p_osmt, >> req.query_type = OSMV_QUERY_USER_DEFINED; >> user.method = IB_MAD_METHOD_GET; >> user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); >> } else if (is_set == 0xff) { >> OSM_LOG(&p_osmt->log, OSM_LOG_VERBOSE, >> "Set USER DEFINED QUERY\n"); >> req.query_type = OSMV_QUERY_USER_DEFINED; >> user.method = IB_MAD_METHOD_SET; >> user.attr_id = IB_MAD_ATTR_MCMEMBER_RECORD; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_member_rec_t)); >> } >> >> /* TODO : Check the validity of all user fields in order to use >> diff --git a/opensm/osmtest/osmt_service.c b/opensm/osmtest/osmt_service.c >> index a203b0c..6f27109 100644 >> --- a/opensm/osmtest/osmt_service.c >> +++ b/opensm/osmtest/osmt_service.c >> @@ -2,6 +2,7 @@ >> * Copyright (c) 2006-2008 Voltaire, Inc. All rights reserved. >> * Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved. >> * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. >> + * Copyright (c) 2010 HNR Consulting. All rights reserved. >> * >> * This software is available to you under a choice of one of two >> * licenses. You may choose to be licensed under the terms of the GNU >> @@ -121,7 +122,6 @@ osmt_register_service(IN osmtest_t * const p_osmt, >> IB_SR_COMPMASK_SLEASE | >> IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME; >> } >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> status = osmv_query_sa(p_osmt->h_bind, &req); >> @@ -226,7 +226,6 @@ osmt_register_service_with_full_key(IN osmtest_t * const p_osmt, >> IB_SR_COMPMASK_SLEASE | >> IB_SR_COMPMASK_SKEY | IB_SR_COMPMASK_SNAME; >> } >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> status = osmv_query_sa(p_osmt->h_bind, &req); >> @@ -373,7 +372,6 @@ osmt_register_service_with_data(IN osmtest_t * const p_osmt, >> IB_SR_COMPMASK_SDATA32_1 | >> IB_SR_COMPMASK_SDATA64_0 | IB_SR_COMPMASK_SDATA64_1; >> } >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> /* Dump to Service Data b4 send */ >> @@ -486,7 +484,6 @@ osmt_get_service_by_id_and_name(IN osmtest_t * const p_osmt, >> user.method = IB_MAD_METHOD_GET; >> user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> user.comp_mask = IB_SR_COMPMASK_SID | IB_SR_COMPMASK_SNAME; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> status = osmv_query_sa(p_osmt->h_bind, &req); >> @@ -607,7 +604,6 @@ osmt_get_service_by_id(IN osmtest_t * const p_osmt, >> user.method = IB_MAD_METHOD_GET; >> user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> user.comp_mask = IB_SR_COMPMASK_SID; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> status = osmv_query_sa(p_osmt->h_bind, &req); >> @@ -739,7 +735,6 @@ osmt_get_service_by_name_and_key(IN osmtest_t * const p_osmt, >> user.method = IB_MAD_METHOD_GET; >> user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> user.comp_mask = IB_SR_COMPMASK_SNAME | IB_SR_COMPMASK_SKEY; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> status = osmv_query_sa(p_osmt->h_bind, &req); >> if (status != IB_SUCCESS) { >> @@ -1092,7 +1087,6 @@ osmt_delete_service_by_name(IN osmtest_t * const p_osmt, >> user.method = IB_MAD_METHOD_DELETE; >> user.attr_id = IB_MAD_ATTR_SERVICE_RECORD; >> user.comp_mask = IB_SR_COMPMASK_SNAME; >> - user.attr_offset = ib_get_attr_offset(sizeof(ib_service_record_t)); >> user.p_attr = &svc_rec; >> >> status = osmv_query_sa(p_osmt->h_bind, &req); >> diff --git a/opensm/osmtest/osmtest.c b/opensm/osmtest/osmtest.c >> index d96fb28..af17d15 100644 >> --- a/opensm/osmtest/osmtest.c >> +++ b/opensm/osmtest/osmtest.c >> @@ -2,7 +2,7 @@ >> * Copyright (c) 2006-2009 Voltaire, Inc. All rights reserved. >> * Copyright (c) 2002-2007 Mellanox Technologies LTD. All rights reserved. >> * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. >> - * Copyright (c) 2009 HNR Consulting. All rights reserved. >> + * Copyright (c) 2009,2010 HNR Consulting. All rights reserved. >> * >> * This software is available to you under a choice of one of two >> * licenses. You may choose to be licensed under the terms of the GNU >> @@ -563,7 +563,6 @@ osmtest_get_all_recs(IN osmtest_t * const p_osmt, >> >> p_context->p_osmt = p_osmt; >> user.attr_id = attr_id; >> - user.attr_offset = ib_get_attr_offset((uint16_t) attr_size); >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> req.timeout_ms = p_osmt->opt.transaction_timeout; >> @@ -719,7 +718,6 @@ osmtest_get_node_rec(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.comp_mask = IB_NR_COMPMASK_NODEGUID; >> user.attr_id = IB_MAD_ATTR_NODE_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -793,7 +791,6 @@ osmtest_get_node_rec_by_lid(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.comp_mask = IB_NR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_NODE_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -1057,7 +1054,6 @@ osmtest_get_port_rec(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.comp_mask = IB_PIR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_PORTINFO_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4171,7 +4167,6 @@ osmtest_get_link_rec_by_lid(IN osmtest_t * const p_osmt, >> if (to_lid) >> user.comp_mask |= IB_LR_COMPMASK_TO_LID; >> user.attr_id = IB_MAD_ATTR_LINK_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4249,7 +4244,6 @@ osmtest_get_guidinfo_rec_by_lid(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.comp_mask = IB_GIR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_GUIDINFO_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4328,7 +4322,6 @@ osmtest_get_pkeytbl_rec_by_lid(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.comp_mask = IB_PKEY_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_PKEY_TBL_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4407,7 +4400,6 @@ osmtest_get_sw_info_rec_by_lid(IN osmtest_t * const p_osmt, >> if (lid) >> user.comp_mask = IB_SWIR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_SWITCH_INFO_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4486,7 +4478,6 @@ osmtest_get_lft_rec_by_lid(IN osmtest_t * const p_osmt, >> if (lid) >> user.comp_mask = IB_LFTR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_LFT_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4565,7 +4556,6 @@ osmtest_get_mft_rec_by_lid(IN osmtest_t * const p_osmt, >> if (lid) >> user.comp_mask = IB_MFTR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_MFT_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> @@ -4637,7 +4627,6 @@ osmtest_sminfo_record_request(IN osmtest_t * const p_osmt, >> >> p_context->p_osmt = p_osmt; >> user.attr_id = IB_MAD_ATTR_SMINFO_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> p_sm_info_opt = p_options; >> if (p_sm_info_opt->sm_guid != 0) { >> record.sm_info.guid = p_sm_info_opt->sm_guid; >> @@ -4737,7 +4726,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt, >> p_context->p_osmt = p_osmt; >> user.attr_id = attr_id; >> if (attr_id == IB_MAD_ATTR_INFORM_INFO_RECORD) { >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> p_inform_info_rec_opt = p_options; >> if (p_inform_info_rec_opt->subscriber_gid.unicast.prefix != 0 && >> p_inform_info_rec_opt->subscriber_gid.unicast. >> @@ -4751,7 +4739,6 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt, >> user.comp_mask |= IB_IIR_COMPMASK_ENUM; >> user.p_attr = &record; >> } else { >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(rec)); >> /* comp mask bits below are for InformInfoRecord rather than InformInfo */ >> /* as currently no comp mask bits defined for InformInfo!!! */ >> user.comp_mask = IB_IIR_COMPMASK_SUBSCRIBE; >> @@ -4900,7 +4887,6 @@ osmtest_validate_single_node_rec_lid(IN osmtest_t * const p_osmt, >> context.p_osmt = p_osmt; >> user.comp_mask = IB_NR_COMPMASK_LID; >> user.attr_id = IB_MAD_ATTR_NODE_RECORD; >> - user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record)); >> user.p_attr = &record; >> >> req.query_type = OSMV_QUERY_USER_DEFINED; >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-09-01 19:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-27 12:37 [PATCH] osmtest/SA client: Only set attribute offset for RMPP operations Hal Rosenstock
[not found] ` <20100827123717.GA15888-Wuw85uim5zDR7s880joybQ@public.gmane.org>
2010-09-01 19:27 ` Sasha Khapyorsky
2010-09-01 19:29 ` Hal Rosenstock
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox