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: 9b272e138d ("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>
This commit is contained in:
Neta Ostrovsky 2021-10-25 13:37:07 +03:00 committed by Stephen Hemminger
parent 7a235a101b
commit ad3a118f88
1 changed files with 16 additions and 3 deletions

View File

@ -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,