>From 5b66b604de9bc43458ca4d295c5ab14cf2c6df10 Mon Sep 17 00:00:00 2001 From: Ira Weiny <[email protected]> Date: Thu, 19 Feb 2009 17:30:14 -0800 Subject: [PATCH] infiniband-diags: Convert ibroute to "new" ibmad interface
Signed-off-by: Ira Weiny <[email protected]> --- infiniband-diags/src/ibroute.c | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) diff --git a/infiniband-diags/src/ibroute.c b/infiniband-diags/src/ibroute.c index 144d1b2..60bfdd8 100644 --- a/infiniband-diags/src/ibroute.c +++ b/infiniband-diags/src/ibroute.c @@ -49,6 +49,8 @@ #include "ibdiag_common.h" +struct ibmad_port *srcport; + static int brief, dump_all, multicast; /*******************************************/ @@ -61,12 +63,12 @@ check_switch(ib_portid_t *portid, int *nports, uint64_t *guid, int type; DEBUG("checking node type"); - if (!smp_query(ni, portid, IB_ATTR_NODE_INFO, 0, 0)) { + if (!smp_query_via(ni, portid, IB_ATTR_NODE_INFO, 0, 0, srcport)) { xdump(stderr, "nodeinfo\n", ni, sizeof ni); return "node info failed: valid addr?"; } - if (!smp_query(nd, portid, IB_ATTR_NODE_DESC, 0, 0)) + if (!smp_query_via(nd, portid, IB_ATTR_NODE_DESC, 0, 0, srcport)) return "node desc failed"; mad_decode_field(ni, IB_NODE_TYPE_F, &type); @@ -77,7 +79,7 @@ check_switch(ib_portid_t *portid, int *nports, uint64_t *guid, mad_decode_field(ni, IB_NODE_NPORTS_F, nports); mad_decode_field(ni, IB_NODE_GUID_F, guid); - if (!smp_query(sw, portid, IB_ATTR_SWITCH_INFO, 0, 0)) + if (!smp_query_via(sw, portid, IB_ATTR_SWITCH_INFO, 0, 0, srcport)) return "switch info failed: is a switch node?"; return 0; @@ -195,7 +197,8 @@ dump_multicast_tables(ib_portid_t *portid, int startlid, int endlid) mod = (block - IB_MIN_MCAST_LID/IB_MLIDS_IN_BLOCK) | (j << 28); DEBUG("reading block %x chunk %d mod %x", block, j, mod); - if (!smp_query(mft + j, portid, IB_ATTR_MULTICASTFORWTBL, mod, 0)) + if (!smp_query_via(mft + j, portid, + IB_ATTR_MULTICASTFORWTBL, mod, 0, srcport)) return "multicast forwarding table get failed"; } @@ -259,9 +262,9 @@ dump_lid(char *str, int strlen, int lid, int valid) portguid = 0; lidport.lid = lid; - if (!smp_query(nd, &lidport, IB_ATTR_NODE_DESC, 0, 100) || - !smp_query(pi, &lidport, IB_ATTR_PORT_INFO, 0, 100) || - !smp_query(ni, &lidport, IB_ATTR_NODE_INFO, 0, 100)) + if (!smp_query_via(nd, &lidport, IB_ATTR_NODE_DESC, 0, 100, srcport) || + !smp_query_via(pi, &lidport, IB_ATTR_PORT_INFO, 0, 100, srcport) || + !smp_query_via(ni, &lidport, IB_ATTR_NODE_INFO, 0, 100, srcport)) return snprintf(str, strlen, ": (unknown node and type)"); mad_decode_field(ni, IB_NODE_PORT_GUID_F, &portguid); @@ -316,7 +319,8 @@ dump_unicast_tables(ib_portid_t *portid, int startlid, int endlid) endblock = ALIGN(endlid, IB_SMP_DATA_SIZE) / IB_SMP_DATA_SIZE; for (block = startblock; block <= endblock; block++) { DEBUG("reading block %d", block); - if (!smp_query(lft, portid, IB_ATTR_LINEARFORWTBL, block, 0)) + if (!smp_query_via(lft, portid, IB_ATTR_LINEARFORWTBL, block, + 0, srcport)) return "linear forwarding table get failed"; i = block * IB_SMP_DATA_SIZE; e = i + IB_SMP_DATA_SIZE; @@ -403,12 +407,15 @@ int main(int argc, char **argv) if (argc > 2) endlid = strtoul(argv[2], 0, 0); - madrpc_init(ibd_ca, ibd_ca_port, mgmt_classes, 3); + srcport = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes, 3); + if (!srcport) + IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port); if (!argc) { - if (ib_resolve_self(&portid, 0, 0) < 0) + if (ib_resolve_self_via(&portid, 0, 0, srcport) < 0) IBERROR("can't resolve self addr"); - } else if (ib_resolve_portid_str(&portid, argv[0], ibd_dest_type, ibd_sm_id) < 0) + } else if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type, + ibd_sm_id, srcport) < 0) IBERROR("can't resolve destination port %s", argv[1]); if (multicast) @@ -419,5 +426,6 @@ int main(int argc, char **argv) if (err) IBERROR("dump tables: %s", err); + 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
