6f2265734d
After supporting ANA reporting by default, Linux kernel 5.3 reported error when parsing NVMe ANA log. The newer kernel fixed the issue but we should optionalize ANA reporting feature to avoid error for Linux kernel 5.3 or before. Add a bool variable ana_reporting to struct spdk_nvmf_subsystem and disable ANA reporting and initialization of related variables if it is false. We can expose MNAN (Maximum Number of Allowed Namespaces) even if ANA reporting is disabled. But MNAN is not required if ANA reporting is disabled. So do not set MNAN if it is false too. Add a public API spdk_nvmf_subsystem_set_ana_reporting() to set ana_reporting by the nvmf_create_subssytem RPC. The next patch will add ana_reporting to nvmf_create_subsystem RPC. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Icc77773b4c9513daba2f1a9fdaf951d80574f379 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3850 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Monica Kenguva <monica.kenguva@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
121 lines
3.5 KiB
Plaintext
121 lines
3.5 KiB
Plaintext
{
|
|
global:
|
|
|
|
# public functions in nvmf.h
|
|
spdk_nvmf_tgt_create;
|
|
spdk_nvmf_tgt_destroy;
|
|
spdk_nvmf_tgt_get_name;
|
|
spdk_nvmf_get_tgt;
|
|
spdk_nvmf_get_first_tgt;
|
|
spdk_nvmf_get_next_tgt;
|
|
spdk_nvmf_tgt_write_config_json;
|
|
spdk_nvmf_tgt_listen;
|
|
spdk_nvmf_tgt_stop_listen;
|
|
spdk_nvmf_tgt_accept;
|
|
spdk_nvmf_poll_group_create;
|
|
spdk_nvmf_get_optimal_poll_group;
|
|
spdk_nvmf_poll_group_destroy;
|
|
spdk_nvmf_poll_group_add;
|
|
spdk_nvmf_poll_group_get_stat;
|
|
spdk_nvmf_qpair_disconnect;
|
|
spdk_nvmf_qpair_get_peer_trid;
|
|
spdk_nvmf_qpair_get_local_trid;
|
|
spdk_nvmf_qpair_get_listen_trid;
|
|
spdk_nvmf_subsystem_create;
|
|
spdk_nvmf_subsystem_destroy;
|
|
spdk_nvmf_subsystem_start;
|
|
spdk_nvmf_subsystem_stop;
|
|
spdk_nvmf_subsystem_pause;
|
|
spdk_nvmf_subsystem_resume;
|
|
spdk_nvmf_tgt_find_subsystem;
|
|
spdk_nvmf_subsystem_get_first;
|
|
spdk_nvmf_subsystem_get_next;
|
|
spdk_nvmf_subsystem_add_host;
|
|
spdk_nvmf_subsystem_remove_host;
|
|
spdk_nvmf_subsystem_set_allow_any_host;
|
|
spdk_nvmf_subsystem_get_allow_any_host;
|
|
spdk_nvmf_subsystem_host_allowed;
|
|
spdk_nvmf_subsystem_get_first_host;
|
|
spdk_nvmf_subsystem_get_next_host;
|
|
spdk_nvmf_host_get_nqn;
|
|
spdk_nvmf_subsystem_add_listener;
|
|
spdk_nvmf_subsystem_remove_listener;
|
|
spdk_nvmf_subsystem_listener_allowed;
|
|
spdk_nvmf_subsystem_get_first_listener;
|
|
spdk_nvmf_subsystem_get_next_listener;
|
|
spdk_nvmf_subsystem_listener_get_trid;
|
|
spdk_nvmf_subsystem_allow_any_listener;
|
|
spdk_nvmf_subsytem_any_listener_allowed;
|
|
spdk_nvmf_ns_opts_get_defaults;
|
|
spdk_nvmf_subsystem_add_ns;
|
|
spdk_nvmf_subsystem_remove_ns;
|
|
spdk_nvmf_subsystem_get_first_ns;
|
|
spdk_nvmf_subsystem_get_next_ns;
|
|
spdk_nvmf_subsystem_get_ns;
|
|
spdk_nvmf_subsystem_get_max_namespaces;
|
|
spdk_nvmf_ns_get_id;
|
|
spdk_nvmf_ns_get_bdev;
|
|
spdk_nvmf_ns_get_opts;
|
|
spdk_nvmf_subsystem_get_sn;
|
|
spdk_nvmf_subsystem_set_sn;
|
|
spdk_nvmf_subsystem_get_mn;
|
|
spdk_nvmf_subsystem_set_mn;
|
|
spdk_nvmf_subsystem_get_nqn;
|
|
spdk_nvmf_subsystem_get_type;
|
|
spdk_nvmf_subsystem_get_max_nsid;
|
|
spdk_nvmf_transport_opts_init;
|
|
spdk_nvmf_transport_create;
|
|
spdk_nvmf_transport_destroy;
|
|
spdk_nvmf_tgt_get_transport;
|
|
spdk_nvmf_transport_get_first;
|
|
spdk_nvmf_transport_get_next;
|
|
spdk_nvmf_get_transport_opts;
|
|
spdk_nvmf_get_transport_type;
|
|
spdk_nvmf_get_transport_name;
|
|
spdk_nvmf_tgt_add_transport;
|
|
spdk_nvmf_transport_listen;
|
|
spdk_nvmf_transport_stop_listen;
|
|
spdk_nvmf_transport_stop_listen_async;
|
|
spdk_nvmf_transport_poll_group_get_stat;
|
|
spdk_nvmf_transport_poll_group_free_stat;
|
|
spdk_nvmf_rdma_init_hooks;
|
|
spdk_nvmf_subsystem_set_ana_reporting;
|
|
|
|
# public functions in nvmf_cmd.h
|
|
spdk_nvmf_ctrlr_identify_ctrlr;
|
|
spdk_nvmf_ctrlr_identify_ns;
|
|
spdk_nvmf_set_custom_admin_cmd_hdlr;
|
|
spdk_nvmf_set_passthru_admin_cmd;
|
|
spdk_nvmf_bdev_ctrlr_nvme_passthru_admin;
|
|
spdk_nvmf_request_get_bdev;
|
|
spdk_nvmf_request_get_ctrlr;
|
|
spdk_nvmf_request_get_subsystem;
|
|
spdk_nvmf_request_get_data;
|
|
spdk_nvmf_request_get_cmd;
|
|
spdk_nvmf_request_get_response;
|
|
spdk_nvmf_request_get_req_to_abort;
|
|
spdk_nvmf_bdev_ctrlr_abort_cmd;
|
|
|
|
# public functions in nvmf_transport.h
|
|
spdk_nvmf_transport_register;
|
|
spdk_nvmf_tgt_new_qpair;
|
|
spdk_nvmf_ctrlr_connect;
|
|
spdk_nvmf_ctrlr_data_init;
|
|
spdk_nvmf_ctrlr_get_regs;
|
|
spdk_nvmf_request_free_buffers;
|
|
spdk_nvmf_request_get_buffers;
|
|
spdk_nvmf_request_get_buffers_multi;
|
|
spdk_nvmf_request_get_dif_ctx;
|
|
spdk_nvmf_request_exec;
|
|
spdk_nvmf_request_exec_fabrics;
|
|
spdk_nvmf_request_free;
|
|
spdk_nvmf_request_complete;
|
|
spdk_nvmf_ctrlr_get_subsystem;
|
|
spdk_nvmf_ctrlr_get_id;
|
|
spdk_nvmf_req_get_xfer;
|
|
spdk_nvmf_poll_group_remove;
|
|
|
|
|
|
local: *;
|
|
};
|