bdev_nvme_rpc: Update bdev_nvme_get_io_paths RPC

This RPC prints only cntlid, to identify a controller
it is needed to issue bdev_get_bdevs and find more info
using cntlid. Printing the controller's trid helps to
identify the controller faster.

Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com>
Change-Id: I97325b822528ef9e71afbe2ff1c30b3bce2ae203
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13655
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
This commit is contained in:
Alexey Marchuk 2022-07-13 09:25:58 +03:00 committed by Konrad Sztyber
parent 269737b902
commit 36589e1e44
2 changed files with 22 additions and 4 deletions

View File

@ -3455,7 +3455,13 @@ Example response:
"cntlid": 0,
"current": true,
"connected": true,
"accessible": true
"accessible": true,
"transport": {
"trtype": "RDMA",
"traddr": "1.2.3.4",
"trsvcid": "4420",
"adrfam": "IPv4"
}
}
]
}

View File

@ -6656,21 +6656,33 @@ nvme_io_path_info_json(struct spdk_json_write_ctx *w, struct nvme_io_path *io_pa
struct nvme_ns *nvme_ns = io_path->nvme_ns;
struct nvme_ctrlr *nvme_ctrlr = io_path->qpair->ctrlr;
const struct spdk_nvme_ctrlr_data *cdata;
const struct spdk_nvme_transport_id *trid;
const char *adrfam_str;
spdk_json_write_object_begin(w);
spdk_json_write_named_string(w, "bdev_name", nvme_ns->bdev->disk.name);
cdata = spdk_nvme_ctrlr_get_data(nvme_ctrlr->ctrlr);
trid = spdk_nvme_ctrlr_get_transport_id(nvme_ctrlr->ctrlr);
spdk_json_write_named_uint32(w, "cntlid", cdata->cntlid);
spdk_json_write_named_bool(w, "current", io_path == io_path->nbdev_ch->current_io_path);
spdk_json_write_named_bool(w, "connected", nvme_io_path_is_connected(io_path));
spdk_json_write_named_bool(w, "accessible", nvme_ns_is_accessible(nvme_ns));
spdk_json_write_named_object_begin(w, "transport");
spdk_json_write_named_string(w, "trtype", trid->trstring);
spdk_json_write_named_string(w, "traddr", trid->traddr);
if (trid->trsvcid[0] != '\0') {
spdk_json_write_named_string(w, "trsvcid", trid->trsvcid);
}
adrfam_str = spdk_nvme_transport_id_adrfam_str(trid->adrfam);
if (adrfam_str) {
spdk_json_write_named_string(w, "adrfam", adrfam_str);
}
spdk_json_write_object_end(w);
spdk_json_write_object_end(w);
}