All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2]  infiniband-diags/saquery.c: switchinfo support added
@ 2013-04-04  9:06 Husam Kahalah
  0 siblings, 0 replies; only message in thread
From: Husam Kahalah @ 2013-04-04  9:06 UTC (permalink / raw)
  To: ira.weiny-ral2JQCrhuEAvxtiuMwx3w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA

Added support to filter switchInfoRecords by switch LID

Signed-off-by: Husam kahalah < hkahalah-DMD6N21cJuFWk0Htik3J/w@public.gmane.org>

---
  src/saquery.c |   55 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 55 insertions(+)

diff --git a/src/saquery.c b/src/saquery.c
index 72a0fe9..832bec6 100644
--- a/src/saquery.c
+++ b/src/saquery.c
@@ -487,6 +487,41 @@ static void dump_service_record(void *data)
             cl_ntoh64(p_sr->service_data64[1]));
  }

+static void dump_switch_info_record(void *data)
+{
+    ib_switch_info_record_t *p_sir = data;
+
+    printf("SwitchInfoRecord dump:\n"
+           "\t\tRID\n"
+           "\t\tlid.....................%u\n"
+           "\t\tSwitchInfo dump:\n"
+           "\t\tlin_cap.................0x%X\n"
+           "\t\trand_cap................0x%X\n"
+           "\t\tmcast_cap...............0x%X\n"
+           "\t\tlin_top.................0x%X\n"
+           "\t\tdef_port................%u\n"
+           "\t\tdef_mcast_pri_port......%u\n"
+           "\t\tdef_mcast_not_port......%u\n"
+           "\t\tlife_state..............%u\n"
+           "\t\tlids_per_port...........0x%X\n"
+           "\t\tenforce_cap.............0x%X\n"
+           "\t\tflags...................%u\n"
+           "\t\tmcast_top...............0x%X\n",
+           cl_ntoh16(p_sir->lid),
+           cl_ntoh16(p_sir->switch_info.lin_cap),
+           cl_ntoh16(p_sir->switch_info.rand_cap),
+           cl_ntoh16(p_sir->switch_info.mcast_cap),
+           cl_ntoh16(p_sir->switch_info.lin_top),
+           p_sir->switch_info.def_port,
+           p_sir->switch_info.def_mcast_pri_port,
+           p_sir->switch_info.def_mcast_not_port,
+           p_sir->switch_info.life_state,
+           cl_ntoh16(p_sir->switch_info.lids_per_port),
+           cl_ntoh16(p_sir->switch_info.enforce_cap),
+           p_sir->switch_info.flags,
+           cl_ntoh16(p_sir->switch_info.mcast_top));
+}
+
  static void dump_inform_info_record(void *data)
  {
      char gid_str[INET6_ADDRSTRLEN];
@@ -1157,6 +1192,24 @@ static int query_service_records(const struct 
query_cmd *q, struct sa_handle * h
                      dump_service_record);
  }

+static int query_switchinfo_records(const struct query_cmd *q,
+                 struct sa_handle * h, struct query_params *p,
+                 int argc, char *argv[])
+{
+    ib_switch_info_record_t swir;
+    ib_net64_t comp_mask = 0;
+    int lid = 0;
+
+    if (argc > 0)
+        parse_lid_and_ports(h, argv[0], &lid, NULL, NULL);
+
+    memset(&swir, 0, sizeof(swir));
+    CHECK_AND_SET_VAL(lid, 16, 0, swir.lid, SWIR, LID);
+
+    return get_and_dump_any_records(h, IB_SA_ATTR_SWITCHINFORECORD, 0, 
comp_mask,
+                  &swir, sizeof(swir), dump_switch_info_record);
+}
+
  static int query_inform_info_records(const struct query_cmd *q,
                      struct sa_handle * h, struct query_params *p,
                      int argc, char *argv[])
@@ -1349,6 +1402,8 @@ static const struct query_cmd query_cmds[] = {
       "[[mlid]/[position]/[block]]", query_mft_records},
      {"GUIDInfoRecord", "GIR", IB_SA_ATTR_GUIDINFORECORD,
       "[[lid]/[block]]", query_guidinfo_records},
+    {"SwitchInfoRecord", "SWIR", IB_SA_ATTR_SWITCHINFORECORD,
+     "[lid]", query_switchinfo_records},
      {0}
  };

-- 
1.7.9.6

--
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] only message in thread

only message in thread, other threads:[~2013-04-04  9:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-04  9:06 [PATCH v2] infiniband-diags/saquery.c: switchinfo support added Husam Kahalah

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.