On Fri, 20 Feb 2009 09:23:50 -0800 Ira Weiny <[email protected]> wrote:
> On Fri, 20 Feb 2009 08:55:57 -0500 > Hal Rosenstock <[email protected]> wrote: > > > On Thu, Feb 19, 2009 at 10:05 PM, Ira Weiny <[email protected]> wrote: > > > Here is v2 of the patch series. > > > > > > I used __attribute__ ((deprecated)) on the functions which should aid > > > others > > > in realizing that these functions will go away. (It sure helped me to > > > convert > > > all the diags. > > > > > > Also I did _not_ convert ibnetdiscover as my new libibnetdisc already > > > uses the > > > new interface and I am hoping it will be accepted soon. > > > > A related issue is whether ibnetdiscover will support both the new > > library and the old way until the library is more proven via some > > build option. If it is to support both, then converting it should be > > done. > > The conversion is easy. I will do it for now to remove the build warnings. > And now that I think about it more leaving in the old and new code to be > chosen via configure is probably not a bad idea. I don't know what is going > to happen once we standardize on the mad library for decoding strings. There > are some incompatibilities there (ie 1x vs 1X and 2.5Gbps vs SDR etc.) > > I will say, however, that I tested the library extensively and the first > version's output was identical to the old version with the sole exception of > the order ports were printed in. :-D So my confidence is high it will be > accepted sooner rather than later. > > Ira Patch below: >From ad8cbf227a803d64c02872f74d7d542b815c6092 Mon Sep 17 00:00:00 2001 From: Ira Weiny <[email protected]> Date: Fri, 20 Feb 2009 14:43:48 -0800 Subject: [PATCH] infiniband-diags: convert ibnetdiscover to "new" ibmad interface Signed-off-by: Ira Weiny <[email protected]> --- infiniband-diags/src/ibnetdiscover.c | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-) diff --git a/infiniband-diags/src/ibnetdiscover.c b/infiniband-diags/src/ibnetdiscover.c index 466d522..8a840be 100644 --- a/infiniband-diags/src/ibnetdiscover.c +++ b/infiniband-diags/src/ibnetdiscover.c @@ -53,6 +53,8 @@ #include "grouping.h" #include "ibdiag_common.h" +struct ibmad_port *srcport; + static char *node_type_str[] = { "???", "ca", @@ -143,7 +145,8 @@ get_port(Port *port, int portnum, ib_portid_t *portid) port->portnum = portnum; - if (!smp_query(pi, portid, IB_ATTR_PORT_INFO, portnum, timeout)) + if (!smp_query_via(pi, portid, IB_ATTR_PORT_INFO, portnum, timeout, + srcport)) return -1; decode_port_info(pi, port); @@ -162,7 +165,7 @@ get_node(Node *node, Port *port, ib_portid_t *portid) void *pi = portinfo, *ni = node->nodeinfo, *nd = node->nodedesc; void *si = switchinfo; - if (!smp_query(ni, portid, IB_ATTR_NODE_INFO, 0, timeout)) + if (!smp_query_via(ni, portid, IB_ATTR_NODE_INFO, 0, timeout, srcport)) return -1; mad_decode_field(ni, IB_NODE_GUID_F, &node->nodeguid); @@ -176,10 +179,10 @@ get_node(Node *node, Port *port, ib_portid_t *portid) port->portnum = node->localport; port->portguid = node->portguid; - if (!smp_query(nd, portid, IB_ATTR_NODE_DESC, 0, timeout)) + if (!smp_query_via(nd, portid, IB_ATTR_NODE_DESC, 0, timeout, srcport)) return -1; - if (!smp_query(pi, portid, IB_ATTR_PORT_INFO, 0, timeout)) + if (!smp_query_via(pi, portid, IB_ATTR_PORT_INFO, 0, timeout, srcport)) return -1; decode_port_info(pi, port); @@ -190,11 +193,12 @@ get_node(Node *node, Port *port, ib_portid_t *portid) node->smalmc = port->lmc; /* after we have the sma information find out the real PortInfo for this port */ - if (!smp_query(pi, portid, IB_ATTR_PORT_INFO, node->localport, timeout)) + if (!smp_query_via(pi, portid, IB_ATTR_PORT_INFO, node->localport, + timeout, srcport)) return -1; decode_port_info(pi, port); - if (!smp_query(si, portid, IB_ATTR_SWITCH_INFO, 0, timeout)) + if (!smp_query_via(si, portid, IB_ATTR_SWITCH_INFO, 0, timeout, srcport)) node->smaenhsp0 = 0; /* assume base SP0 */ else mad_decode_field(si, IB_SW_ENHANCED_PORT0_F, &node->smaenhsp0); @@ -985,7 +989,11 @@ int main(int argc, char **argv) if (argc && !(f = fopen(argv[0], "w"))) IBERROR("can't open file %s for writing", argv[0]); - madrpc_init(ibd_ca, ibd_ca_port, mgmt_classes, 2); + srcport = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes, 2); + if (!srcport) + IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port); + mad_rpc_set_timeout(ibd_timeout, srcport); + node_name_map = open_node_name_map(node_name_map_file); if (discover(&my_portid) < 0) @@ -1000,5 +1008,6 @@ int main(int argc, char **argv) dump_topology(list, group); close_node_name_map(node_name_map); + mad_rpc_close_port(srcport); exit(0); } -- 1.5.4.5 _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
