svn commit: r216907 - in projects/ofed/base/contrib/ofed/management: infiniband-diags infiniband-diags/man infiniband-diags/src libibcommon libibmad libibumad opensm opensm/include/opensm opensm/op...

Jeff Roberson jeff at FreeBSD.org
Mon Jan 3 05:21:54 UTC 2011


Author: jeff
Date: Mon Jan  3 05:21:53 2011
New Revision: 216907
URL: http://svn.freebsd.org/changeset/base/216907

Log:
   - Upgrade opensm to 3.3.0
  
  Sponsored by:	Isilon Systems, iX Systems, and Panasas.

Modified:
  projects/ofed/base/contrib/ofed/management/infiniband-diags/configure.in
  projects/ofed/base/contrib/ofed/management/infiniband-diags/man/saquery.8
  projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibping.c
  projects/ofed/base/contrib/ofed/management/infiniband-diags/src/saquery.c
  projects/ofed/base/contrib/ofed/management/infiniband-diags/src/sminfo.c
  projects/ofed/base/contrib/ofed/management/infiniband-diags/src/smpquery.c
  projects/ofed/base/contrib/ofed/management/libibcommon/configure.in
  projects/ofed/base/contrib/ofed/management/libibmad/configure.in
  projects/ofed/base/contrib/ofed/management/libibumad/configure.in
  projects/ofed/base/contrib/ofed/management/opensm/configure.in
  projects/ofed/base/contrib/ofed/management/opensm/include/opensm/osm_pkey.h
  projects/ofed/base/contrib/ofed/management/opensm/opensm/Makefile.am
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_console.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_node_info_rcv.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_pkey.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_pkey_mgr.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_port_info_rcv.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_mcmember_record.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_pkey_record.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_slvl_record.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sa_vlarb_record.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_sm.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_state_mgr.c
  projects/ofed/base/contrib/ofed/management/opensm/opensm/osm_ucast_mgr.c

Modified: projects/ofed/base/contrib/ofed/management/infiniband-diags/configure.in
==============================================================================
--- projects/ofed/base/contrib/ofed/management/infiniband-diags/configure.in	Mon Jan  3 05:14:39 2011	(r216906)
+++ projects/ofed/base/contrib/ofed/management/infiniband-diags/configure.in	Mon Jan  3 05:21:53 2011	(r216907)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(infiniband-diags, 1.4.4, general at lists.openfabrics.org)
+AC_INIT(infiniband-diags, 1.5.0, general at lists.openfabrics.org)
 AC_CONFIG_AUX_DIR(config)
 AM_CONFIG_HEADER(config.h)
 AM_INIT_AUTOMAKE

Modified: projects/ofed/base/contrib/ofed/management/infiniband-diags/man/saquery.8
==============================================================================
--- projects/ofed/base/contrib/ofed/management/infiniband-diags/man/saquery.8	Mon Jan  3 05:14:39 2011	(r216906)
+++ projects/ofed/base/contrib/ofed/management/infiniband-diags/man/saquery.8	Mon Jan  3 05:21:53 2011	(r216907)
@@ -105,7 +105,7 @@ for node name map file format.  Only use
 Supported query names (and aliases):
  ClassPortInfo (CPI)
  NodeRecord (NR)
- PortInfoRecord (PIR)
+ PortInfoRecord (PIR) [[lid]/[port]]
  SL2VLTableRecord (SL2VL) [[lid]/[in_port]/[out_port]]
  PKeyTableRecord (PKTR) [[lid]/[port]/[block]]
  VLArbitrationTableRecord (VLAR) [[lid]/[port]/[block]]

Modified: projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibping.c
==============================================================================
--- projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibping.c	Mon Jan  3 05:14:39 2011	(r216906)
+++ projects/ofed/base/contrib/ofed/management/infiniband-diags/src/ibping.c	Mon Jan  3 05:21:53 2011	(r216907)
@@ -194,7 +194,7 @@ main(int argc, char **argv)
 	int timeout = 0, udebug = 0, server = 0, flood = 0;
 	int oui = IB_OPENIB_OUI;
 	uint64_t rtt;
-	uint count = ~0;
+	unsigned count = ~0;
 	extern int ibdebug;
 	char *err;
 	char *ca = 0;

Modified: projects/ofed/base/contrib/ofed/management/infiniband-diags/src/saquery.c
==============================================================================
--- projects/ofed/base/contrib/ofed/management/infiniband-diags/src/saquery.c	Mon Jan  3 05:14:39 2011	(r216906)
+++ projects/ofed/base/contrib/ofed/management/infiniband-diags/src/saquery.c	Mon Jan  3 05:21:53 2011	(r216907)
@@ -49,6 +49,7 @@
 #define _GNU_SOURCE
 #include <getopt.h>
 
+#include <infiniband/mad.h>
 #include <infiniband/opensm/osm_log.h>
 #include <infiniband/vendor/osm_vendor_api.h>
 #include <infiniband/vendor/osm_vendor_sa_api.h>
@@ -62,8 +63,8 @@ struct query_cmd {
 	const char *name, *alias;
 	ib_net16_t query_type;
 	const char *usage;
-	int (*handler)(const struct query_cmd *q, osm_bind_handle_t bind_handle,
-		       int argc, char *argv[]);
+	int (*handler) (const struct query_cmd * q, osm_bind_handle_t h,
+			int argc, char *argv[]);
 };
 
 char *argv0 = "saquery";
@@ -77,14 +78,14 @@ static ib_net64_t smkey = OSM_DEFAULT_SA
  */
 #define MAX_PORTS (8)
 #define DEFAULT_SA_TIMEOUT_MS (1000)
-osmv_query_res_t   result;
-osm_log_t          log_osm;
-osm_mad_pool_t     mad_pool;
-osm_vendor_t      *vendor = NULL;
-int                osm_debug = 0;
-uint32_t           sa_timeout_ms = DEFAULT_SA_TIMEOUT_MS;
-char		  *sa_hca_name = NULL;
-uint32_t           sa_port_num = 0;
+osmv_query_res_t result;
+osm_log_t log_osm;
+osm_mad_pool_t mad_pool;
+osm_vendor_t *vendor = NULL;
+int osm_debug = 0;
+uint32_t sa_timeout_ms = DEFAULT_SA_TIMEOUT_MS;
+char *sa_hca_name = NULL;
+uint32_t sa_port_num = 0;
 
 enum {
 	ALL,
@@ -96,44 +97,54 @@ enum {
 	NAME_OF_GUID,
 } node_print_desc = ALL;
 
-char              *requested_name = NULL;
-ib_net16_t         requested_lid = 0;
-int                requested_lid_flag = 0;
-ib_net64_t         requested_guid = 0;
-int                requested_guid_flag = 0;
+char *requested_name = NULL;
+ib_net16_t requested_lid = 0;
+int requested_lid_flag = 0;
+ib_net64_t requested_guid = 0;
+int requested_guid_flag = 0;
+
+static void format_buf(char *in, char *out, unsigned size)
+{
+	unsigned i;
+
+	for (i = 0; i < size - 3 && *in; i++) {
+		*out++ = *in;
+		if (*in++ == '\n' && *in) {
+			*out++ = '\t';
+			*out++ = '\t';
+		}
+	}
+	*out = '\0';
+}
 
 /**
  * Call back for the various record requests.
  */
-static void
-query_res_cb(osmv_query_res_t *res)
+static void query_res_cb(osmv_query_res_t * res)
 {
 	result = *res;
 }
 
-static void
-print_node_desc(ib_node_record_t *node_record)
+static void print_node_desc(ib_node_record_t * node_record)
 {
 	ib_node_info_t *p_ni = &(node_record->node_info);
 	ib_node_desc_t *p_nd = &(node_record->node_desc);
 
-	if (p_ni->node_type == IB_NODE_TYPE_CA)
-	{
+	if (p_ni->node_type == IB_NODE_TYPE_CA) {
 		printf("%6d  \"%s\"\n",
 		       cl_ntoh16(node_record->lid),
 		       clean_nodedesc((char *)p_nd->description));
 	}
 }
 
-static void
-print_node_record(ib_node_record_t *node_record)
+static void print_node_record(ib_node_record_t * node_record)
 {
 	ib_node_info_t *p_ni = NULL;
 	ib_node_desc_t *p_nd = NULL;
 	char *name;
 
 	p_ni = &(node_record->node_info);
-        p_nd = &(node_record->node_desc);
+	p_nd = &(node_record->node_desc);
 
 	switch (node_print_desc) {
 	case LID_ONLY:
@@ -146,15 +157,15 @@ print_node_record(ib_node_record_t *node
 	case NAME_OF_LID:
 	case NAME_OF_GUID:
 		name = remap_node_name(node_name_map,
-					  cl_ntoh64(p_ni->node_guid),
-					  (char *)p_nd->description);
+				       cl_ntoh64(p_ni->node_guid),
+				       (char *)p_nd->description);
 		printf("%s\n", name);
 		free(name);
 		return;
 	case ALL:
 	default:
 		break;
-        }
+	}
 
 	printf("NodeRecord dump:\n"
 	       "\t\tlid.....................0x%X\n"
@@ -177,18 +188,18 @@ print_node_record(ib_node_record_t *node
 	       cl_ntoh16(node_record->resv),
 	       p_ni->base_version,
 	       p_ni->class_version,
-	       ib_get_node_type_str( p_ni->node_type ),
+	       ib_get_node_type_str(p_ni->node_type),
 	       p_ni->num_ports,
-	       cl_ntoh64( p_ni->sys_guid ),
-	       cl_ntoh64( p_ni->node_guid ),
-	       cl_ntoh64( p_ni->port_guid ),
-	       cl_ntoh16( p_ni->partition_cap ),
-	       cl_ntoh16( p_ni->device_id ),
-	       cl_ntoh32( p_ni->revision ),
-	       ib_node_info_get_local_port_num( p_ni ),
-	       cl_ntoh32( ib_node_info_get_vendor_id( p_ni )),
+	       cl_ntoh64(p_ni->sys_guid),
+	       cl_ntoh64(p_ni->node_guid),
+	       cl_ntoh64(p_ni->port_guid),
+	       cl_ntoh16(p_ni->partition_cap),
+	       cl_ntoh16(p_ni->device_id),
+	       cl_ntoh32(p_ni->revision),
+	       ib_node_info_get_local_port_num(p_ni),
+	       cl_ntoh32(ib_node_info_get_vendor_id(p_ni)),
 	       clean_nodedesc((char *)node_record->node_desc.description)
-	       );
+	    );
 }
 
 static void dump_path_record(void *data)
@@ -215,30 +226,29 @@ static void dump_path_record(void *data)
 	       "\t\tresv2...................0x%X\n"
 	       "\t\tresv3...................0x%X\n"
 	       "",
-	       cl_ntoh64( p_pr->service_id ),
+	       cl_ntoh64(p_pr->service_id),
 	       inet_ntop(AF_INET6, p_pr->dgid.raw, gid_str, sizeof gid_str),
 	       inet_ntop(AF_INET6, p_pr->sgid.raw, gid_str2, sizeof gid_str2),
-	       cl_ntoh16( p_pr->dlid ),
-	       cl_ntoh16( p_pr->slid ),
-	       cl_ntoh32( p_pr->hop_flow_raw ),
+	       cl_ntoh16(p_pr->dlid),
+	       cl_ntoh16(p_pr->slid),
+	       cl_ntoh32(p_pr->hop_flow_raw),
 	       p_pr->tclass,
 	       p_pr->num_path,
-	       cl_ntoh16( p_pr->pkey ),
-	       ib_path_rec_qos_class( p_pr ),
-	       ib_path_rec_sl( p_pr ),
+	       cl_ntoh16(p_pr->pkey),
+	       ib_path_rec_qos_class(p_pr),
+	       ib_path_rec_sl(p_pr),
 	       p_pr->mtu,
 	       p_pr->rate,
 	       p_pr->pkt_life,
 	       p_pr->preference,
-	       *(uint32_t*)&p_pr->resv2,
-	       *((uint16_t*)&p_pr->resv2 + 2)
-	       );
+	       *(uint32_t *) & p_pr->resv2, *((uint16_t *) & p_pr->resv2 + 2)
+	    );
 }
 
 static void dump_class_port_info(void *data)
 {
-	char   gid_str[INET6_ADDRSTRLEN];
-	char   gid_str2[INET6_ADDRSTRLEN];
+	char gid_str[INET6_ADDRSTRLEN];
+	char gid_str2[INET6_ADDRSTRLEN];
 	ib_class_port_info_t *class_port_info = data;
 
 	printf("SA ClassPortInfo:\n"
@@ -266,28 +276,28 @@ static void dump_class_port_info(void *d
 	       ib_class_cap_mask2(class_port_info),
 	       ib_class_resp_time_val(class_port_info),
 	       inet_ntop(AF_INET6, &(class_port_info->redir_gid), gid_str,
-			sizeof gid_str),
+			 sizeof gid_str),
 	       cl_ntoh32(class_port_info->redir_tc_sl_fl),
 	       cl_ntoh16(class_port_info->redir_lid),
 	       cl_ntoh16(class_port_info->redir_pkey),
 	       cl_ntoh32(class_port_info->redir_qp),
 	       cl_ntoh32(class_port_info->redir_qkey),
 	       inet_ntop(AF_INET6, &(class_port_info->trap_gid), gid_str2,
-			sizeof gid_str2),
+			 sizeof gid_str2),
 	       cl_ntoh32(class_port_info->trap_tc_sl_fl),
 	       cl_ntoh16(class_port_info->trap_lid),
 	       cl_ntoh16(class_port_info->trap_pkey),
 	       cl_ntoh32(class_port_info->trap_hop_qp),
 	       cl_ntoh32(class_port_info->trap_qkey)
-	      );
+	    );
 }
 
 static void dump_portinfo_record(void *data)
 {
 	ib_portinfo_record_t *p_pir = data;
-	const ib_port_info_t * const p_pi = &p_pir->port_info;
+	const ib_port_info_t *const p_pi = &p_pir->port_info;
 
-        printf("PortInfoRecord dump:\n"
+	printf("PortInfoRecord dump:\n"
 	       "\t\tEndPortLid..............0x%X\n"
 	       "\t\tPortNum.................0x%X\n"
 	       "\t\tbase_lid................0x%X\n"
@@ -296,15 +306,34 @@ static void dump_portinfo_record(void *d
 	       "",
 	       cl_ntoh16(p_pir->lid),
 	       p_pir->port_num,
-	       cl_ntoh16( p_pi->base_lid ),
-	       cl_ntoh16( p_pi->master_sm_base_lid ),
-	       cl_ntoh32( p_pi->capability_mask )
-               );
+	       cl_ntoh16(p_pi->base_lid),
+	       cl_ntoh16(p_pi->master_sm_base_lid),
+	       cl_ntoh32(p_pi->capability_mask)
+	    );
+}
+
+static void dump_one_portinfo_record(void *data)
+{
+	char buf[2048], buf2[4096];
+	ib_portinfo_record_t *pir = data;
+	ib_port_info_t *pi = &pir->port_info;
+
+	mad_dump_portinfo(buf, sizeof(buf), pi, sizeof(*pi));
+
+	format_buf(buf, buf2, sizeof(buf2));
+
+	printf("PortInfoRecord dump:\n"
+		"\tRID:\n"
+		"\t\tEndPortLid..............%u\n"
+		"\t\tPortNum.................0x%x\n"
+		"\t\tReserved................0x%x\n"
+		"\tPortInfo dump:\n\t\t%s",
+		cl_ntoh16(pir->lid), pir->port_num, pir->resv, buf2);
 }
 
 static void dump_multicast_group_record(void *data)
 {
-	char   gid_str[INET6_ADDRSTRLEN];
+	char gid_str[INET6_ADDRSTRLEN];
 	ib_member_rec_t *p_mcmr = data;
 	uint8_t sl;
 	ib_member_get_sl_flow_hop(p_mcmr->sl_flow_hop, &sl, NULL, NULL);
@@ -317,21 +346,17 @@ static void dump_multicast_group_record(
 	       "\t\tSL......................0x%X\n"
 	       "",
 	       inet_ntop(AF_INET6, p_mcmr->mgid.raw, gid_str, sizeof gid_str),
-	       cl_ntoh16( p_mcmr->mlid ),
-	       p_mcmr->mtu,
-	       cl_ntoh16( p_mcmr->pkey ),
-	       p_mcmr->rate,
-	       sl
-	       );
+	       cl_ntoh16(p_mcmr->mlid),
+	       p_mcmr->mtu, cl_ntoh16(p_mcmr->pkey), p_mcmr->rate, sl);
 }
 
 static void dump_multicast_member_record(void *data)
 {
-	char   gid_str[INET6_ADDRSTRLEN];
-	char   gid_str2[INET6_ADDRSTRLEN];
+	char gid_str[INET6_ADDRSTRLEN];
+	char gid_str2[INET6_ADDRSTRLEN];
 	ib_member_rec_t *p_mcmr = data;
-	uint16_t mlid = cl_ntoh16( p_mcmr->mlid );
-	int      i = 0;
+	uint16_t mlid = cl_ntoh16(p_mcmr->mlid);
+	int i = 0;
 	char *node_name = "<unknown>";
 
 	/* go through the node records searching for a port guid which matches
@@ -339,9 +364,12 @@ static void dump_multicast_member_record
 	 * This gives us a node name to print, if available.
 	 */
 	for (i = 0; i < result.result_cnt; i++) {
-		ib_node_record_t *nr = osmv_get_query_node_rec(result.p_result_madw, i);
-		if (nr->node_info.port_guid == p_mcmr->port_gid.unicast.interface_id) {
-			node_name = clean_nodedesc((char *)nr->node_desc.description);
+		ib_node_record_t *nr =
+		    osmv_get_query_node_rec(result.p_result_madw, i);
+		if (nr->node_info.port_guid ==
+		    p_mcmr->port_gid.unicast.interface_id) {
+			node_name =
+			    clean_nodedesc((char *)nr->node_desc.description);
 			break;
 		}
 	}
@@ -349,10 +377,8 @@ static void dump_multicast_member_record
 	if (requested_name) {
 		if (strtol(requested_name, NULL, 0) == mlid) {
 			printf("\t\tPortGid.................%s (%s)\n",
-				inet_ntop(AF_INET6, p_mcmr->port_gid.raw,
-					gid_str, sizeof gid_str),
-			       node_name
-			      );
+			       inet_ntop(AF_INET6, p_mcmr->port_gid.raw,
+					 gid_str, sizeof gid_str), node_name);
 		}
 	} else {
 		printf("MCMemberRecord member dump:\n"
@@ -364,42 +390,31 @@ static void dump_multicast_member_record
 		       "\t\tNodeDescription.........%s\n"
 		       "",
 		       inet_ntop(AF_INET6, p_mcmr->mgid.raw, gid_str,
-				sizeof gid_str),
-		       cl_ntoh16( p_mcmr->mlid ),
+				 sizeof gid_str),
+		       cl_ntoh16(p_mcmr->mlid),
 		       inet_ntop(AF_INET6, p_mcmr->port_gid.raw,
-				gid_str2, sizeof gid_str2),
-		       p_mcmr->scope_state,
-		       p_mcmr->proxy_join,
-		       node_name
-		      );
+				 gid_str2, sizeof gid_str2),
+		       p_mcmr->scope_state, p_mcmr->proxy_join, node_name);
 	}
 }
 
 static void dump_service_record(void *data)
 {
-	char   gid_str[INET6_ADDRSTRLEN];
+	char gid_str[INET6_ADDRSTRLEN];
 	char buf_service_key[35];
 	char buf_service_name[65];
 	ib_service_record_t *p_sr = data;
 
 	sprintf(buf_service_key,
 		"0x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
-		p_sr->service_key[0],
-		p_sr->service_key[1],
-		p_sr->service_key[2],
-		p_sr->service_key[3],
-		p_sr->service_key[4],
-		p_sr->service_key[5],
-		p_sr->service_key[6],
-		p_sr->service_key[7],
-		p_sr->service_key[8],
-		p_sr->service_key[9],
-		p_sr->service_key[10],
-		p_sr->service_key[11],
-		p_sr->service_key[12],
-		p_sr->service_key[13],
-		p_sr->service_key[14],
-		p_sr->service_key[15]);
+		p_sr->service_key[0], p_sr->service_key[1],
+		p_sr->service_key[2], p_sr->service_key[3],
+		p_sr->service_key[4], p_sr->service_key[5],
+		p_sr->service_key[6], p_sr->service_key[7],
+		p_sr->service_key[8], p_sr->service_key[9],
+		p_sr->service_key[10], p_sr->service_key[11],
+		p_sr->service_key[12], p_sr->service_key[13],
+		p_sr->service_key[14], p_sr->service_key[15]);
 	strncpy(buf_service_name, (char *)p_sr->service_name, 64);
 	buf_service_name[64] = '\0';
 
@@ -441,11 +456,11 @@ static void dump_service_record(void *da
 	       "\t\tServiceData64.1.........0x%016" PRIx64 "\n"
 	       "\t\tServiceData64.2.........0x%016" PRIx64 "\n"
 	       "",
-	       cl_ntoh64( p_sr->service_id ),
+	       cl_ntoh64(p_sr->service_id),
 	       inet_ntop(AF_INET6, p_sr->service_gid.raw, gid_str,
-			sizeof gid_str),
-	       cl_ntoh16( p_sr->service_pkey ),
-	       cl_ntoh32( p_sr->service_lease ),
+			 sizeof gid_str),
+	       cl_ntoh16(p_sr->service_pkey),
+	       cl_ntoh32(p_sr->service_lease),
 	       buf_service_key,
 	       buf_service_name,
 	       p_sr->service_data8[0], p_sr->service_data8[1],
@@ -456,32 +471,34 @@ static void dump_service_record(void *da
 	       p_sr->service_data8[10], p_sr->service_data8[11],
 	       p_sr->service_data8[12], p_sr->service_data8[13],
 	       p_sr->service_data8[14], p_sr->service_data8[15],
-	       cl_ntoh16( p_sr->service_data16[0] ),
-	       cl_ntoh16( p_sr->service_data16[1] ),
-	       cl_ntoh16( p_sr->service_data16[2] ),
-	       cl_ntoh16( p_sr->service_data16[3] ),
-	       cl_ntoh16( p_sr->service_data16[4] ),
-	       cl_ntoh16( p_sr->service_data16[5] ),
-	       cl_ntoh16( p_sr->service_data16[6] ),
-	       cl_ntoh16( p_sr->service_data16[7] ),
-	       cl_ntoh32( p_sr->service_data32[0] ),
-	       cl_ntoh32( p_sr->service_data32[1] ),
-	       cl_ntoh32( p_sr->service_data32[2] ),
-	       cl_ntoh32( p_sr->service_data32[3] ),
-	       cl_ntoh64( p_sr->service_data64[0] ),
-	       cl_ntoh64( p_sr->service_data64[1] )
-	      );
+	       cl_ntoh16(p_sr->service_data16[0]),
+	       cl_ntoh16(p_sr->service_data16[1]),
+	       cl_ntoh16(p_sr->service_data16[2]),
+	       cl_ntoh16(p_sr->service_data16[3]),
+	       cl_ntoh16(p_sr->service_data16[4]),
+	       cl_ntoh16(p_sr->service_data16[5]),
+	       cl_ntoh16(p_sr->service_data16[6]),
+	       cl_ntoh16(p_sr->service_data16[7]),
+	       cl_ntoh32(p_sr->service_data32[0]),
+	       cl_ntoh32(p_sr->service_data32[1]),
+	       cl_ntoh32(p_sr->service_data32[2]),
+	       cl_ntoh32(p_sr->service_data32[3]),
+	       cl_ntoh64(p_sr->service_data64[0]),
+	       cl_ntoh64(p_sr->service_data64[1])
+	    );
 }
 
 static void dump_inform_info_record(void *data)
 {
-	char   gid_str[INET6_ADDRSTRLEN];
-	char   gid_str2[INET6_ADDRSTRLEN];
+	char gid_str[INET6_ADDRSTRLEN];
+	char gid_str2[INET6_ADDRSTRLEN];
 	ib_inform_info_record_t *p_iir = data;
 	uint32_t qpn;
-	uint8_t  resp_time_val;
+	uint8_t resp_time_val;
 
-	ib_inform_info_get_qpn_resp_time(p_iir->inform_info.g_or_v.generic.qpn_resp_time_val, &qpn, &resp_time_val);
+	ib_inform_info_get_qpn_resp_time(p_iir->inform_info.g_or_v.generic.
+					 qpn_resp_time_val, &qpn,
+					 &resp_time_val);
 
 	if (p_iir->inform_info.is_generic) {
 		printf("InformInfoRecord dump:\n"
@@ -501,20 +518,21 @@ static void dump_inform_info_record(void
 		       "\t\tnode_type...............0x%06X\n"
 		       "",
 		       inet_ntop(AF_INET6, p_iir->subscriber_gid.raw, gid_str,
-				sizeof gid_str),
-		       cl_ntoh16( p_iir->subscriber_enum ),
+				 sizeof gid_str),
+		       cl_ntoh16(p_iir->subscriber_enum),
 		       inet_ntop(AF_INET6, p_iir->inform_info.gid.raw, gid_str2,
-				sizeof gid_str2),
-		       cl_ntoh16( p_iir->inform_info.lid_range_begin ),
-		       cl_ntoh16( p_iir->inform_info.lid_range_end ),
+				 sizeof gid_str2),
+		       cl_ntoh16(p_iir->inform_info.lid_range_begin),
+		       cl_ntoh16(p_iir->inform_info.lid_range_end),
 		       p_iir->inform_info.is_generic,
 		       p_iir->inform_info.subscribe,
-		       cl_ntoh16( p_iir->inform_info.trap_type ),
-		       cl_ntoh16( p_iir->inform_info.g_or_v.generic.trap_num ),
-		       cl_ntoh32( qpn ),
+		       cl_ntoh16(p_iir->inform_info.trap_type),
+		       cl_ntoh16(p_iir->inform_info.g_or_v.generic.trap_num),
+		       cl_ntoh32(qpn),
 		       resp_time_val,
-		       cl_ntoh32(ib_inform_info_get_prod_type( &p_iir->inform_info ))
-		      );
+		       cl_ntoh32(ib_inform_info_get_prod_type
+				 (&p_iir->inform_info))
+		    );
 	} else {
 		printf("InformInfoRecord dump:\n"
 		       "\t\tRID\n"
@@ -533,20 +551,21 @@ static void dump_inform_info_record(void
 		       "\t\tvendor_id...............0x%06X\n"
 		       "",
 		       inet_ntop(AF_INET6, p_iir->subscriber_gid.raw, gid_str,
-				sizeof gid_str),
-		       cl_ntoh16( p_iir->subscriber_enum ),
+				 sizeof gid_str),
+		       cl_ntoh16(p_iir->subscriber_enum),
 		       inet_ntop(AF_INET6, p_iir->inform_info.gid.raw,
-				gid_str2, sizeof gid_str2),
-		       cl_ntoh16( p_iir->inform_info.lid_range_begin ),
-		       cl_ntoh16( p_iir->inform_info.lid_range_end ),
+				 gid_str2, sizeof gid_str2),
+		       cl_ntoh16(p_iir->inform_info.lid_range_begin),
+		       cl_ntoh16(p_iir->inform_info.lid_range_end),
 		       p_iir->inform_info.is_generic,
 		       p_iir->inform_info.subscribe,
-		       cl_ntoh16( p_iir->inform_info.trap_type ),
-		       cl_ntoh16( p_iir->inform_info.g_or_v.vend.dev_id ),
-		       cl_ntoh32( qpn ),
+		       cl_ntoh16(p_iir->inform_info.trap_type),
+		       cl_ntoh16(p_iir->inform_info.g_or_v.vend.dev_id),
+		       cl_ntoh32(qpn),
 		       resp_time_val,
-		       cl_ntoh32(ib_inform_info_get_prod_type( &p_iir->inform_info ))
-		      );
+		       cl_ntoh32(ib_inform_info_get_prod_type
+				 (&p_iir->inform_info))
+		    );
 	}
 }
 
@@ -594,7 +613,7 @@ static void dump_one_vlarb_record(void *
 	       "\t\tPort.......................%u\n"
 	       "\t\tBlock......................%u\n",
 	       cl_ntoh16(vlarb->lid), vlarb->port_num, vlarb->block_num);
-	for (i = 0; i < 32 ; i += 16) {
+	for (i = 0; i < 32; i += 16) {
 		printf("\t\tVL    :%2u|%2u|%2u|%2u|%2u|%2u|%2u|%2u|"
 		       "%2u|%2u|%2u|%2u|%2u|%2u|%2u|%2u|",
 		       e[i + 0].vl, e[i + 1].vl, e[i + 2].vl, e[i + 3].vl,
@@ -624,7 +643,7 @@ static void dump_one_pkey_tbl_record(voi
 	       "\t\tBlock......................%u\n"
 	       "\t\tPKey Table:\n",
 	       cl_ntoh16(pktr->lid), pktr->port_num, pktr->block_num);
-	for (i = 0; i < 32 ; i += 8)
+	for (i = 0; i < 32; i += 8)
 		printf("\t\t0x%04x 0x%04x 0x%04x 0x%04x"
 		       " 0x%04x 0x%04x 0x%04x 0x%04x\n",
 		       cl_ntoh16(p[i + 0]), cl_ntoh16(p[i + 1]),
@@ -642,10 +661,9 @@ static void dump_one_lft_record(void *da
 	printf("LFT Record dump:\n"
 	       "\t\tLID........................%u\n"
 	       "\t\tBlock......................%u\n"
-	       "\t\tLFT:\n\t\tLID\tPort Number\n",
-	       cl_ntoh16(lftr->lid), block);
-	for (i = 0; i < 64 ; i++)
-		printf("\t\t%u\t%u\n", block*64 + i, lftr->lft[i]);
+	       "\t\tLFT:\n\t\tLID\tPort Number\n", cl_ntoh16(lftr->lid), block);
+	for (i = 0; i < 64; i++)
+		printf("\t\t%u\t%u\n", block * 64 + i, lftr->lft[i]);
 	printf("\n");
 }
 
@@ -654,20 +672,21 @@ static void dump_one_mft_record(void *da
 	ib_mft_record_t *mftr = data;
 	unsigned position = cl_ntoh16(mftr->position_block_num) >> 12;
 	unsigned block = cl_ntoh16(mftr->position_block_num) &
-			 IB_MCAST_BLOCK_ID_MASK_HO;
+	    IB_MCAST_BLOCK_ID_MASK_HO;
 	int i;
 	printf("MFT Record dump:\n"
 	       "\t\tLID........................%u\n"
 	       "\t\tPosition...................%u\n"
 	       "\t\tBlock......................%u\n"
-		"\t\tMFT:\n\t\tMLID\tPort Mask\n",
+	       "\t\tMFT:\n\t\tMLID\tPort Mask\n",
 	       cl_ntoh16(mftr->lid), position, block);
 	for (i = 0; i < IB_MCAST_BLOCK_SIZE; i++)
-		printf("\t\t0x%x\t0x%x\n", IB_LID_MCAST_START_HO + block*64 + i,
+		printf("\t\t0x%x\t0x%x\n",
+		       IB_LID_MCAST_START_HO + block * 64 + i,
 		       cl_ntoh16(mftr->mft[i]));
 	printf("\n");
 }
-static void dump_results(osmv_query_res_t *r, void (*dump_func)(void *))
+static void dump_results(osmv_query_res_t * r, void (*dump_func) (void *))
 {
 	int i;
 	for (i = 0; i < r->result_cnt; i++) {
@@ -676,8 +695,7 @@ static void dump_results(osmv_query_res_
 	}
 }
 
-static void
-return_mad(void)
+static void return_mad(void)
 {
 	/*
 	 * Return the IB query MAD to the pool as necessary.
@@ -692,13 +710,12 @@ return_mad(void)
  * Get any record(s)
  */
 static ib_api_status_t
-get_any_records(osm_bind_handle_t bind_handle,
+get_any_records(osm_bind_handle_t h,
 		ib_net16_t attr_id, ib_net32_t attr_mod, ib_net64_t comp_mask,
-		void *attr, ib_net16_t attr_offset,
-		ib_net64_t sm_key)
+		void *attr, ib_net16_t attr_offset, ib_net64_t sm_key)
 {
-	ib_api_status_t   status;
-	osmv_query_req_t  req;
+	ib_api_status_t status;
+	osmv_query_req_t req;
 	osmv_user_query_t user;
 
 	memset(&req, 0, sizeof(req));
@@ -719,7 +736,7 @@ get_any_records(osm_bind_handle_t bind_h
 	req.p_query_input = &user;
 	req.sm_key = sm_key;
 
-	if ((status = osmv_query_sa(bind_handle, &req)) != IB_SUCCESS) {
+	if ((status = osmv_query_sa(h, &req)) != IB_SUCCESS) {
 		fprintf(stderr, "Query SA failed: %s\n",
 			ib_get_err_str(status));
 		return status;
@@ -738,12 +755,10 @@ get_any_records(osm_bind_handle_t bind_h
  * Get all the records available for requested query type.
  */
 static ib_api_status_t
-get_all_records(osm_bind_handle_t bind_handle,
-		ib_net16_t query_id,
-		ib_net16_t attr_offset,
-		int trusted)
+get_all_records(osm_bind_handle_t h,
+		ib_net16_t query_id, ib_net16_t attr_offset, int trusted)
 {
-	return get_any_records(bind_handle, query_id, 0, 0, NULL, attr_offset,
+	return get_any_records(h, query_id, 0, 0, NULL, attr_offset,
 			       trusted ? smkey : 0);
 }
 
@@ -751,23 +766,25 @@ get_all_records(osm_bind_handle_t bind_h
  * return the lid from the node descriptor (name) supplied
  */
 static ib_api_status_t
-get_lid_from_name(osm_bind_handle_t bind_handle, const char *name, ib_net16_t *lid)
+get_lid_from_name(osm_bind_handle_t h, const char *name, ib_net16_t * lid)
 {
-	int               i = 0;
+	int i = 0;
 	ib_node_record_t *node_record = NULL;
-	ib_node_info_t   *p_ni = NULL;
-	ib_net16_t        attr_offset = ib_get_attr_offset(sizeof(*node_record));
-	ib_api_status_t   status;
+	ib_node_info_t *p_ni = NULL;
+	ib_net16_t attr_offset = ib_get_attr_offset(sizeof(*node_record));
+	ib_api_status_t status;
 
-	status = get_all_records(bind_handle, IB_MAD_ATTR_NODE_RECORD, attr_offset, 0);
+	status = get_all_records(h, IB_MAD_ATTR_NODE_RECORD, attr_offset, 0);
 	if (status != IB_SUCCESS)
 		return (status);
 
 	for (i = 0; i < result.result_cnt; i++) {
 		node_record = osmv_get_query_node_rec(result.p_result_madw, i);
 		p_ni = &(node_record->node_info);
-		if (name && strncmp(name, (char *)node_record->node_desc.description,
-				    sizeof(node_record->node_desc.description)) == 0) {
+		if (name
+		    && strncmp(name, (char *)node_record->node_desc.description,
+			       sizeof(node_record->node_desc.description)) ==
+		    0) {
 			*lid = cl_ntoh16(node_record->lid);
 			break;
 		}
@@ -776,40 +793,43 @@ get_lid_from_name(osm_bind_handle_t bind
 	return (status);
 }
 
-static ib_net16_t
-get_lid(osm_bind_handle_t bind_handle, const char * name)
+static ib_net16_t get_lid(osm_bind_handle_t h, const char *name)
 {
 	ib_net16_t rc_lid = 0;
 
 	if (!name)
-		return(0);
+		return (0);
 	if (isalpha(name[0]))
-		assert(get_lid_from_name(bind_handle, name, &rc_lid) == IB_SUCCESS);
+		assert(get_lid_from_name(h, name, &rc_lid) == IB_SUCCESS);
 	else
 		rc_lid = atoi(name);
 	if (rc_lid == 0)
 		fprintf(stderr, "Failed to find lid for \"%s\"\n", name);
-        return (rc_lid);
+	return (rc_lid);
 }
 
-static int parse_lid_and_ports(osm_bind_handle_t bind_handle,
+static int parse_lid_and_ports(osm_bind_handle_t h,
 			       char *str, int *lid, int *port1, int *port2)
 {
 	char *p, *e;
 
-	if (port1) *port1 = -1;
-	if (port2) *port2 = -1;
+	if (port1)
+		*port1 = -1;
+	if (port2)
+		*port2 = -1;
 
 	p = strchr(str, '/');
-	if (p) *p = '\0';
+	if (p)
+		*p = '\0';
 	if (lid)
-		*lid = get_lid(bind_handle, str);
+		*lid = get_lid(h, str);
 
 	if (!p)
 		return 0;
 	str = p + 1;
 	p = strchr(str, '/');
-	if (p) *p = '\0';
+	if (p)
+		*p = '\0';
 	if (port1) {
 		*port1 = strtoul(str, &e, 0);
 		if (e == str)
@@ -832,29 +852,28 @@ static int parse_lid_and_ports(osm_bind_
  * Get the portinfo records available with IsSM or IsSMdisabled CapabilityMask bit on.
  */
 static ib_api_status_t
-get_issm_records(osm_bind_handle_t bind_handle, ib_net32_t capability_mask)
+get_issm_records(osm_bind_handle_t h, ib_net32_t capability_mask)
 {
 	ib_portinfo_record_t attr;
 
-	memset( &attr, 0, sizeof ( attr ) );
+	memset(&attr, 0, sizeof(attr));
 	attr.port_info.capability_mask = capability_mask;
 
-	return get_any_records(bind_handle, IB_MAD_ATTR_PORTINFO_RECORD,
+	return get_any_records(h, IB_MAD_ATTR_PORTINFO_RECORD,
 			       cl_hton32(1 << 31), IB_PIR_COMPMASK_CAPMASK,
 			       &attr,
 			       ib_get_attr_offset(sizeof(ib_portinfo_record_t)),
 			       0);
 }
 
-static ib_api_status_t
-print_node_records(osm_bind_handle_t bind_handle)
+static ib_api_status_t print_node_records(osm_bind_handle_t h)
 {
-	int               i = 0;
+	int i = 0;
 	ib_node_record_t *node_record = NULL;
-	ib_net16_t        attr_offset = ib_get_attr_offset(sizeof(*node_record));
-	ib_api_status_t   status;
+	ib_net16_t attr_offset = ib_get_attr_offset(sizeof(*node_record));
+	ib_api_status_t status;
 
-	status  = get_all_records(bind_handle, IB_MAD_ATTR_NODE_RECORD, attr_offset, 0);
+	status = get_all_records(h, IB_MAD_ATTR_NODE_RECORD, attr_offset, 0);
 	if (status != IB_SUCCESS)
 		return (status);
 
@@ -880,7 +899,8 @@ print_node_records(osm_bind_handle_t bin
 			if (!requested_name ||
 			    (strncmp(requested_name,
 				     (char *)node_record->node_desc.description,
-				     sizeof(node_record->node_desc.description)) == 0)) {
+				     sizeof(node_record->node_desc.
+					    description)) == 0)) {
 				print_node_record(node_record);
 				if (node_print_desc == UNIQUE_LID_ONLY) {
 					return_mad();
@@ -894,18 +914,17 @@ print_node_records(osm_bind_handle_t bin
 }
 
 static ib_api_status_t
-get_print_path_rec_lid(osm_bind_handle_t bind_handle,
-		       ib_net16_t src_lid,
-		       ib_net16_t dst_lid)
-{
-	osmv_query_req_t      req;
-	osmv_lid_pair_t       lid_pair;
-	ib_api_status_t       status;
+get_print_path_rec_lid(osm_bind_handle_t h,
+		       ib_net16_t src_lid, ib_net16_t dst_lid)
+{
+	osmv_query_req_t req;
+	osmv_lid_pair_t lid_pair;
+	ib_api_status_t status;
 
 	lid_pair.src_lid = cl_hton16(src_lid);
 	lid_pair.dest_lid = cl_hton16(dst_lid);
 
-	memset( &req, 0, sizeof( req ) );
+	memset(&req, 0, sizeof(req));
 
 	req.query_type = OSMV_QUERY_PATH_REC_BY_LIDS;
 	req.timeout_ms = sa_timeout_ms;
@@ -916,7 +935,7 @@ get_print_path_rec_lid(osm_bind_handle_t
 	req.p_query_input = (void *)&lid_pair;
 	req.sm_key = 0;
 
-	if ((status = osmv_query_sa(bind_handle, &req)) != IB_SUCCESS) {
+	if ((status = osmv_query_sa(h, &req)) != IB_SUCCESS) {
 		fprintf(stderr, "ERROR: Query SA failed: %s\n",
 			ib_get_err_str(status));
 		return (status);
@@ -933,18 +952,17 @@ get_print_path_rec_lid(osm_bind_handle_t
 }
 
 static ib_api_status_t
-get_print_path_rec_gid(osm_bind_handle_t bind_handle,
-		       const ib_gid_t *src_gid,
-		       const ib_gid_t *dst_gid)
-{
-	osmv_query_req_t      req;
-	osmv_gid_pair_t       gid_pair;
-	ib_api_status_t       status;
+get_print_path_rec_gid(osm_bind_handle_t h,
+		       const ib_gid_t * src_gid, const ib_gid_t * dst_gid)
+{
+	osmv_query_req_t req;
+	osmv_gid_pair_t gid_pair;
+	ib_api_status_t status;
 
 	gid_pair.src_gid = *src_gid;
 	gid_pair.dest_gid = *dst_gid;
 
-	memset( &req, 0, sizeof( req ) );
+	memset(&req, 0, sizeof(req));
 
 	req.query_type = OSMV_QUERY_PATH_REC_BY_GIDS;
 	req.timeout_ms = sa_timeout_ms;
@@ -955,7 +973,7 @@ get_print_path_rec_gid(osm_bind_handle_t
 	req.p_query_input = (void *)&gid_pair;
 	req.sm_key = 0;
 
-	if ((status = osmv_query_sa(bind_handle, &req)) != IB_SUCCESS) {
+	if ((status = osmv_query_sa(h, &req)) != IB_SUCCESS) {
 		fprintf(stderr, "ERROR: Query SA failed: %s\n",
 			ib_get_err_str(status));
 		return (status);
@@ -971,13 +989,12 @@ get_print_path_rec_gid(osm_bind_handle_t
 	return (status);
 }
 
-static ib_api_status_t
-get_print_class_port_info(osm_bind_handle_t bind_handle)
+static ib_api_status_t get_print_class_port_info(osm_bind_handle_t h)
 {
-	osmv_query_req_t      req;
-	ib_api_status_t       status;
+	osmv_query_req_t req;
+	ib_api_status_t status;
 
-	memset( &req, 0, sizeof( req ) );
+	memset(&req, 0, sizeof(req));
 
 	req.query_type = OSMV_QUERY_CLASS_PORT_INFO;
 	req.timeout_ms = sa_timeout_ms;
@@ -988,7 +1005,7 @@ get_print_class_port_info(osm_bind_handl
 	req.p_query_input = NULL;
 	req.sm_key = 0;
 
-	if ((status = osmv_query_sa(bind_handle, &req)) != IB_SUCCESS) {
+	if ((status = osmv_query_sa(h, &req)) != IB_SUCCESS) {
 		fprintf(stderr, "ERROR: Query SA failed: %s\n",
 			ib_get_err_str(status));
 		return (status);
@@ -1004,13 +1021,13 @@ get_print_class_port_info(osm_bind_handl
 	return (status);
 }
 
-static ib_api_status_t
-print_path_records(osm_bind_handle_t bind_handle)
+static int query_path_records(const struct query_cmd *q,
+			      osm_bind_handle_t h, int argc, char *argv[])
 {
 	ib_net16_t attr_offset = ib_get_attr_offset(sizeof(ib_path_rec_t));
 	ib_api_status_t status;
 
-	status = get_all_records(bind_handle, IB_MAD_ATTR_PATH_RECORD, attr_offset, 0);
+	status = get_all_records(h, IB_MAD_ATTR_PATH_RECORD, attr_offset, 0);
 	if (status != IB_SUCCESS)
 		return (status);
 
@@ -1019,13 +1036,12 @@ print_path_records(osm_bind_handle_t bin
 	return (status);
 }
 
-static ib_api_status_t
-print_portinfo_records(osm_bind_handle_t bind_handle)
+static ib_api_status_t print_issm_records(osm_bind_handle_t h)
 {
-	ib_api_status_t       status;
+	ib_api_status_t status;
 
 	/* First, get IsSM records */
-	status = get_issm_records(bind_handle, IB_PORT_CAP_IS_SM);
+	status = get_issm_records(h, IB_PORT_CAP_IS_SM);
 	if (status != IB_SUCCESS)
 		return (status);
 
@@ -1034,7 +1050,7 @@ print_portinfo_records(osm_bind_handle_t
 	return_mad();
 
 	/* Now, get IsSMdisabled records */
-	status = get_issm_records(bind_handle, IB_PORT_CAP_SM_DISAB);
+	status = get_issm_records(h, IB_PORT_CAP_SM_DISAB);
 	if (status != IB_SUCCESS)
 		return (status);
 
@@ -1045,21 +1061,22 @@ print_portinfo_records(osm_bind_handle_t
 	return (status);
 }
 
-static ib_api_status_t
-print_multicast_member_records(osm_bind_handle_t bind_handle)
+static ib_api_status_t print_multicast_member_records(osm_bind_handle_t h)
 {
-	osmv_query_res_t  mc_group_result;
-	ib_api_status_t   status;
+	osmv_query_res_t mc_group_result;
+	ib_api_status_t status;
 
-	status = get_all_records(bind_handle, IB_MAD_ATTR_MCMEMBER_RECORD,
-				 ib_get_attr_offset(sizeof(ib_member_rec_t)), 1);
+	status = get_all_records(h, IB_MAD_ATTR_MCMEMBER_RECORD,
+				 ib_get_attr_offset(sizeof(ib_member_rec_t)),
+				 1);
 	if (status != IB_SUCCESS)
 		return (status);
 
 	mc_group_result = result;
 
-	status  = get_all_records(bind_handle, IB_MAD_ATTR_NODE_RECORD,
-				  ib_get_attr_offset(sizeof(ib_node_record_t)), 0);
+	status = get_all_records(h, IB_MAD_ATTR_NODE_RECORD,
+				 ib_get_attr_offset(sizeof(ib_node_record_t)),
+				 0);
 	if (status != IB_SUCCESS)
 		goto return_mc;
 
@@ -1076,13 +1093,13 @@ return_mc:
 	return (status);
 }
 
-static ib_api_status_t
-print_multicast_group_records(osm_bind_handle_t bind_handle)
+static ib_api_status_t print_multicast_group_records(osm_bind_handle_t h)
 {
-	ib_api_status_t   status;
+	ib_api_status_t status;
 
-	status = get_all_records(bind_handle, IB_MAD_ATTR_MCMEMBER_RECORD,
-				 ib_get_attr_offset(sizeof(ib_member_rec_t)), 0);
+	status = get_all_records(h, IB_MAD_ATTR_MCMEMBER_RECORD,
+				 ib_get_attr_offset(sizeof(ib_member_rec_t)),
+				 0);
 	if (status != IB_SUCCESS)
 		return (status);
 
@@ -1091,13 +1108,67 @@ print_multicast_group_records(osm_bind_h
 	return (status);
 }
 
-static ib_api_status_t

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list