> -----Original Message-----
> From: [email protected] [mailto:linux-rdma-
> Subject: [PATCHv3 infiniband-diags] saquery: Add SMInfoRecord support
>
>
> This patch is the combination of 2 patches:
> infiniband_diags/src/saquery.c: Add SMInfoRecord support
> infiniband_diags/doc/rst/saquery.8.in.rst: Add support to the manual
>
> Signed-off-by: Husam Kahalah <[email protected]>
> Signed-off-by: Hal Rosenstock <[email protected]>
Thanks Applied after rebase'ing against current master branch.
Ira
> ---
> This patch is based on Husam's previous patch for this.
>
> diff --git a/doc/rst/saquery.8.in.rst b/doc/rst/saquery.8.in.rst index
> 8d87096..0551917 100644
> --- a/doc/rst/saquery.8.in.rst
> +++ b/doc/rst/saquery.8.in.rst
> @@ -156,6 +156,7 @@ Supported query names (and aliases):
> MFTRecord (MFTR) [[mlid]/[position]/[block]]
> GUIDInfoRecord (GIR) [[lid]/[block]]
> SwitchInfoRecord (SWIR) [lid]
> + SMInfoRecord (SMIR) [lid]
>
>
>
> diff --git a/src/saquery.c b/src/saquery.c index 26b2a9d..8f59253 100644
> --- a/src/saquery.c
> +++ b/src/saquery.c
> @@ -489,6 +489,30 @@ static void dump_service_record(void *data)
> cl_ntoh64(p_sr->service_data64[1]));
> }
>
> +static void dump_sm_info_record(void *data) {
> + ib_sminfo_record_t *p_smr = data;
> + const ib_sm_info_t *const p_smi = &p_smr->sm_info;
> + uint8_t priority, state;
> + priority = ib_sminfo_get_priority(p_smi);
> + state = ib_sminfo_get_state(p_smi);
> +
> + printf("SMInfoRecord dump:\n"
> + "\t\tRID\n"
> + "\t\tLID...................%u\n"
> + "\t\tSMInfo dump:\n"
> + "\t\tGUID..................0x%016" PRIx64 "\n"
> + "\t\tSM_Key................0x%016" PRIx64 "\n"
> + "\t\tActCount..............%u\n"
> + "\t\tPriority..............%u\n"
> + "\t\tSMState...............%u\n",
> + cl_ntoh16(p_smr->lid),
> + cl_ntoh64(p_smr->sm_info.guid),
> + cl_ntoh64(p_smr->sm_info.sm_key),
> + cl_ntoh32(p_smr->sm_info.act_count),
> + priority, state);
> +}
> +
> static void dump_switch_info_record(void *data) {
> ib_switch_info_record_t *p_sir = data; @@ -1194,6 +1218,25 @@
> static int query_service_records(const struct query_cmd *q, struct
> sa_handle * h
> dump_service_record);
> }
>
> +static int query_sm_info_records(const struct query_cmd *q,
> + struct sa_handle * h, struct query_params
> *p,
> + int argc, char *argv[])
> +{
> + ib_sminfo_record_t smir;
> + ib_net64_t comp_mask = 0;
> + int lid = 0;
> +
> + if (argc > 0)
> + parse_lid_and_ports(h, argv[0], &lid, NULL, NULL);
> +
> + memset(&smir, 0, sizeof(smir));
> + CHECK_AND_SET_VAL(lid, 16, 0, smir.lid, SMIR, LID);
> +
> + return get_and_dump_any_records(h,
> IB_SA_ATTR_SMINFORECORD, 0,
> + comp_mask, &smir, sizeof(smir),
> + dump_sm_info_record);
> +}
> +
> static int query_switchinfo_records(const struct query_cmd *q,
> struct sa_handle * h, struct query_params
> *p,
> int argc, char *argv[])
> @@ -1406,6 +1449,8 @@ static const struct query_cmd query_cmds[] = {
> "[[lid]/[block]]", query_guidinfo_records},
> {"SwitchInfoRecord", "SWIR", IB_SA_ATTR_SWITCHINFORECORD,
> "[lid]", query_switchinfo_records},
> + {"SMInfoRecord", "SMIR", IB_SA_ATTR_SMINFORECORD,
> + "[lid]", query_sm_info_records},
> {0}
> };
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the
> body of a message to [email protected] 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html