numam-spdk/lib/nvmf/spdk_nvmf.map
Shuhei Matsumoto 6f2265734d lib/nvmf: Optionalize ANA reporting feature
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>
2020-08-21 08:22:40 +00:00

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: *;
};