bdev/nvme: Factor out ctrlr info json dump into a helper function
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I7f1e08ff13d890cb780e7b66c18a77ab85c82029 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12311 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
13ca6e52d3
commit
50b6329ca0
@ -2422,6 +2422,56 @@ bdev_nvme_get_memory_domains(void *ctx, struct spdk_memory_domain **domains, int
|
||||
return spdk_nvme_ctrlr_get_memory_domains(nvme_ns->ctrlr->ctrlr, domains, array_size);
|
||||
}
|
||||
|
||||
static const char *
|
||||
nvme_ctrlr_get_state_str(struct nvme_ctrlr *nvme_ctrlr)
|
||||
{
|
||||
if (nvme_ctrlr->destruct) {
|
||||
return "deleting";
|
||||
} else if (spdk_nvme_ctrlr_is_failed(nvme_ctrlr->ctrlr)) {
|
||||
return "failed";
|
||||
} else if (nvme_ctrlr->resetting) {
|
||||
return "resetting";
|
||||
} else if (nvme_ctrlr->reconnect_is_delayed > 0) {
|
||||
return "reconnect_is_delayed";
|
||||
} else {
|
||||
return "enabled";
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nvme_ctrlr_info_json(struct spdk_json_write_ctx *w, struct nvme_ctrlr *nvme_ctrlr)
|
||||
{
|
||||
struct spdk_nvme_transport_id *trid;
|
||||
const struct spdk_nvme_ctrlr_opts *opts;
|
||||
|
||||
spdk_json_write_object_begin(w);
|
||||
|
||||
spdk_json_write_named_string(w, "state", nvme_ctrlr_get_state_str(nvme_ctrlr));
|
||||
|
||||
#ifdef SPDK_CONFIG_NVME_CUSE
|
||||
size_t cuse_name_size = 128;
|
||||
char cuse_name[cuse_name_size];
|
||||
|
||||
int rc = spdk_nvme_cuse_get_ctrlr_name(nvme_ctrlr->ctrlr, cuse_name, &cuse_name_size);
|
||||
if (rc == 0) {
|
||||
spdk_json_write_named_string(w, "cuse_device", cuse_name);
|
||||
}
|
||||
#endif
|
||||
trid = &nvme_ctrlr->active_path_id->trid;
|
||||
spdk_json_write_named_object_begin(w, "trid");
|
||||
nvme_bdev_dump_trid_json(trid, w);
|
||||
spdk_json_write_object_end(w);
|
||||
|
||||
opts = spdk_nvme_ctrlr_get_opts(nvme_ctrlr->ctrlr);
|
||||
spdk_json_write_named_object_begin(w, "host");
|
||||
spdk_json_write_named_string(w, "nqn", opts->hostnqn);
|
||||
spdk_json_write_named_string(w, "addr", opts->src_addr);
|
||||
spdk_json_write_named_string(w, "svcid", opts->src_svcid);
|
||||
spdk_json_write_object_end(w);
|
||||
|
||||
spdk_json_write_object_end(w);
|
||||
}
|
||||
|
||||
static void
|
||||
nvme_namespace_info_json(struct spdk_json_write_ctx *w,
|
||||
struct nvme_ns *nvme_ns)
|
||||
|
@ -234,6 +234,8 @@ void nvme_bdev_ctrlr_for_each(nvme_bdev_ctrlr_for_each_fn fn, void *ctx);
|
||||
void nvme_bdev_dump_trid_json(const struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_json_write_ctx *w);
|
||||
|
||||
void nvme_ctrlr_info_json(struct spdk_json_write_ctx *w, struct nvme_ctrlr *nvme_ctrlr);
|
||||
|
||||
struct nvme_ns *nvme_ctrlr_get_ns(struct nvme_ctrlr *nvme_ctrlr, uint32_t nsid);
|
||||
struct nvme_ns *nvme_ctrlr_get_first_active_ns(struct nvme_ctrlr *nvme_ctrlr);
|
||||
struct nvme_ns *nvme_ctrlr_get_next_active_ns(struct nvme_ctrlr *nvme_ctrlr, struct nvme_ns *ns);
|
||||
|
@ -537,60 +537,18 @@ SPDK_RPC_REGISTER("bdev_nvme_attach_controller", rpc_bdev_nvme_attach_controller
|
||||
SPDK_RPC_RUNTIME)
|
||||
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_attach_controller, construct_nvme_bdev)
|
||||
|
||||
static const char *
|
||||
nvme_ctrlr_get_state_str(struct nvme_ctrlr *nvme_ctrlr)
|
||||
{
|
||||
if (nvme_ctrlr->destruct) {
|
||||
return "deleting";
|
||||
} else if (spdk_nvme_ctrlr_is_failed(nvme_ctrlr->ctrlr)) {
|
||||
return "failed";
|
||||
} else if (nvme_ctrlr->resetting) {
|
||||
return "resetting";
|
||||
} else if (nvme_ctrlr->reconnect_is_delayed > 0) {
|
||||
return "reconnect_is_delayed";
|
||||
} else {
|
||||
return "enabled";
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
rpc_dump_nvme_bdev_controller_info(struct nvme_bdev_ctrlr *nbdev_ctrlr, void *ctx)
|
||||
{
|
||||
struct spdk_json_write_ctx *w = ctx;
|
||||
struct spdk_nvme_transport_id *trid;
|
||||
struct nvme_ctrlr *nvme_ctrlr;
|
||||
const struct spdk_nvme_ctrlr_opts *opts;
|
||||
|
||||
spdk_json_write_object_begin(w);
|
||||
spdk_json_write_named_string(w, "name", nbdev_ctrlr->name);
|
||||
|
||||
spdk_json_write_named_array_begin(w, "ctrlrs");
|
||||
TAILQ_FOREACH(nvme_ctrlr, &nbdev_ctrlr->ctrlrs, tailq) {
|
||||
spdk_json_write_object_begin(w);
|
||||
|
||||
spdk_json_write_named_string(w, "state", nvme_ctrlr_get_state_str(nvme_ctrlr));
|
||||
|
||||
#ifdef SPDK_CONFIG_NVME_CUSE
|
||||
size_t cuse_name_size = 128;
|
||||
char cuse_name[cuse_name_size];
|
||||
|
||||
int rc = spdk_nvme_cuse_get_ctrlr_name(nvme_ctrlr->ctrlr, cuse_name, &cuse_name_size);
|
||||
if (rc == 0) {
|
||||
spdk_json_write_named_string(w, "cuse_device", cuse_name);
|
||||
}
|
||||
#endif
|
||||
trid = &nvme_ctrlr->active_path_id->trid;
|
||||
spdk_json_write_named_object_begin(w, "trid");
|
||||
nvme_bdev_dump_trid_json(trid, w);
|
||||
spdk_json_write_object_end(w);
|
||||
|
||||
opts = spdk_nvme_ctrlr_get_opts(nvme_ctrlr->ctrlr);
|
||||
spdk_json_write_named_object_begin(w, "host");
|
||||
spdk_json_write_named_string(w, "nqn", opts->hostnqn);
|
||||
spdk_json_write_named_string(w, "addr", opts->src_addr);
|
||||
spdk_json_write_named_string(w, "svcid", opts->src_svcid);
|
||||
spdk_json_write_object_end(w);
|
||||
spdk_json_write_object_end(w);
|
||||
nvme_ctrlr_info_json(w, nvme_ctrlr);
|
||||
}
|
||||
spdk_json_write_array_end(w);
|
||||
spdk_json_write_object_end(w);
|
||||
|
@ -97,6 +97,9 @@ spdk_nvme_ctrlr_get_default_io_qpair_opts(struct spdk_nvme_ctrlr *ctrlr,
|
||||
memset(opts, 0, opts_size);
|
||||
}
|
||||
|
||||
DEFINE_STUB(spdk_nvme_ctrlr_get_opts, const struct spdk_nvme_ctrlr_opts *,
|
||||
(struct spdk_nvme_ctrlr *ctrlr), NULL);
|
||||
|
||||
DEFINE_STUB(spdk_nvme_ctrlr_get_max_xfer_size, uint32_t,
|
||||
(const struct spdk_nvme_ctrlr *ctrlr), 0);
|
||||
|
||||
@ -122,6 +125,9 @@ DEFINE_STUB(spdk_nvme_ctrlr_cmd_io_raw_with_md, int, (struct spdk_nvme_ctrlr *ct
|
||||
struct spdk_nvme_qpair *qpair, struct spdk_nvme_cmd *cmd, void *buf,
|
||||
uint32_t len, void *md_buf, spdk_nvme_cmd_cb cb_fn, void *cb_arg), 0);
|
||||
|
||||
DEFINE_STUB(spdk_nvme_cuse_get_ctrlr_name, int, (struct spdk_nvme_ctrlr *ctrlr, char *name,
|
||||
size_t *size), 0);
|
||||
|
||||
DEFINE_STUB(spdk_nvme_ns_get_max_io_xfer_size, uint32_t, (struct spdk_nvme_ns *ns), 0);
|
||||
|
||||
DEFINE_STUB(spdk_nvme_ns_get_extended_sector_size, uint32_t, (struct spdk_nvme_ns *ns), 0);
|
||||
|
Loading…
Reference in New Issue
Block a user