diff options
author | Neta Ostrovsky <netao@nvidia.com> | 2021-10-25 13:37:07 +0300 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2021-10-29 15:04:45 -0700 |
commit | ad3a118f885382f03f975d70e5d607e70befc7dd (patch) | |
tree | 775d4376c4130c09931e9c652033d8634ab122e3 /rdma | |
parent | 7a235a101b326156305c9a593d1f9f12f1465d04 (diff) | |
download | iproute2-ad3a118f885382f03f975d70e5d607e70befc7dd.tar.gz |
rdma: Fix SRQ resource tracking information json
Fix the json output for the QPs that are associated with the SRQ -
The qpn are now displayed in a json array.
Sample output before the fix:
$ rdma res show srq lqpn 126-141 -j -p
[ {
"ifindex":0,
"ifname":"ibp8s0f0",
"srqn":4,
"type":"BASIC",
"lqpn":["126-128,130-140"],
"pdn":9,
"pid":3581,
"comm":"ibv_srq_pingpon"
},{
"ifindex":0,
"ifname":"ibp8s0f0",
"srqn":5,
"type":"BASIC",
"lqpn":["141"],
"pdn":10,
"pid":3584,
"comm":"ibv_srq_pingpon"
} ]
Sample output after the fix:
$ rdma res show srq lqpn 126-141 -j -p
[ {
"ifindex":0,
"ifname":"ibp8s0f0",
"srqn":4,
"type":"BASIC",
"lqpn":["126-128","130-140"],
"pdn":9,
"pid":3581,
"comm":"ibv_srq_pingpon"
},{
"ifindex":0,
"ifname":"ibp8s0f0",
"srqn":5,
"type":"BASIC",
"lqpn":["141"],
"pdn":10,
"pid":3584,
"comm":"ibv_srq_pingpon"
} ]
Fixes: 9b272e138d23 ("rdma: Add SRQ resource tracking information")
Signed-off-by: Neta Ostrovsky <netao@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'rdma')
-rw-r--r-- | rdma/res-srq.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/rdma/res-srq.c b/rdma/res-srq.c index c14ac5d8..5d8f3842 100644 --- a/rdma/res-srq.c +++ b/rdma/res-srq.c @@ -26,11 +26,24 @@ static void print_type(struct rd *rd, uint32_t val) srq_types_to_str(val)); } -static void print_qps(const char *str) +static void print_qps(char *qp_str) { - if (!strlen(str)) + char *qpn; + + if (!strlen(qp_str)) return; - print_color_string(PRINT_ANY, COLOR_NONE, "lqpn", "lqpn %s ", str); + + open_json_array(PRINT_ANY, "lqpn"); + print_color_string(PRINT_FP, COLOR_NONE, NULL, " ", NULL); + qpn = strtok(qp_str, ","); + while (qpn) { + print_color_string(PRINT_ANY, COLOR_NONE, NULL, "%s", qpn); + qpn = strtok(NULL, ","); + if (qpn) + print_color_string(PRINT_FP, COLOR_NONE, NULL, ",", NULL); + } + print_color_string(PRINT_FP, COLOR_NONE, NULL, " ", NULL); + close_json_array(PRINT_JSON, NULL); } static int filter_srq_range_qps(struct rd *rd, struct nlattr **qp_line, |