diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index 9fd519c4f..d3a63c81a 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -467,6 +467,7 @@ nvmf_write_subsystem_config_json(struct spdk_json_write_ctx *w, spdk_json_write_named_uint32(w, "min_cntlid", spdk_nvmf_subsystem_get_min_cntlid(subsystem)); spdk_json_write_named_uint32(w, "max_cntlid", spdk_nvmf_subsystem_get_max_cntlid(subsystem)); + spdk_json_write_named_bool(w, "ana_reporting", nvmf_subsystem_get_ana_reporting(subsystem)); /* } "params" */ spdk_json_write_object_end(w); diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index 0d4c72da2..7cb99b160 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -387,6 +387,7 @@ void nvmf_subsystem_set_ana_state(struct spdk_nvmf_subsystem *subsystem, const struct spdk_nvme_transport_id *trid, enum spdk_nvme_ana_state ana_state, spdk_nvmf_tgt_subsystem_listen_done_fn cb_fn, void *cb_arg); +bool nvmf_subsystem_get_ana_reporting(struct spdk_nvmf_subsystem *subsystem); /** * Sets the controller ID range for a subsystem. diff --git a/lib/nvmf/nvmf_rpc.c b/lib/nvmf/nvmf_rpc.c index 8ba9974f0..d5ed637a5 100644 --- a/lib/nvmf/nvmf_rpc.c +++ b/lib/nvmf/nvmf_rpc.c @@ -2221,8 +2221,10 @@ dump_nvmf_subsystem_listener(struct spdk_json_write_ctx *w, spdk_json_write_named_string(w, "trsvcid", trid->trsvcid); spdk_json_write_object_end(w); - spdk_json_write_named_string(w, "ana_state", - nvme_ana_state_str(listener->ana_state)); + if (nvmf_subsystem_get_ana_reporting(listener->subsystem)) { + spdk_json_write_named_string(w, "ana_state", + nvme_ana_state_str(listener->ana_state)); + } spdk_json_write_object_end(w); } diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 4a6fbe4e6..7ac6f13fd 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -2871,6 +2871,12 @@ spdk_nvmf_subsystem_set_ana_reporting(struct spdk_nvmf_subsystem *subsystem, return 0; } +bool +nvmf_subsystem_get_ana_reporting(struct spdk_nvmf_subsystem *subsystem) +{ + return subsystem->flags.ana_reporting; +} + struct subsystem_listener_update_ctx { struct spdk_nvmf_subsystem_listener *listener; diff --git a/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c b/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c index 0c725e3da..84bd0b3d1 100644 --- a/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c +++ b/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c @@ -91,6 +91,7 @@ DEFINE_STUB(spdk_nvmf_subsystem_get_next_host, struct spdk_nvmf_host *, (struct spdk_nvmf_subsystem *subsystem, struct spdk_nvmf_host *prev_host), NULL); DEFINE_STUB(spdk_nvmf_subsystem_get_first_ns, struct spdk_nvmf_ns *, (struct spdk_nvmf_subsystem *subsystem), NULL); +DEFINE_STUB(nvmf_subsystem_get_ana_reporting, bool, (struct spdk_nvmf_subsystem *subsystem), false); DEFINE_STUB_V(spdk_nvmf_ns_get_opts, (const struct spdk_nvmf_ns *ns, struct spdk_nvmf_ns_opts *opts, size_t opts_size)); DEFINE_STUB(spdk_nvmf_ns_get_id, uint32_t, (const struct spdk_nvmf_ns *ns), 0);