Loading app/nvmf_tgt/conf.c +5 −2 Original line number Diff line number Diff line Loading @@ -451,6 +451,7 @@ spdk_nvmf_construct_subsystem(const char *name, { struct spdk_nvmf_subsystem *subsystem; struct nvmf_tgt_subsystem *app_subsys; struct spdk_nvmf_listen_addr *listen_addr; enum spdk_nvmf_subsystem_mode mode; int i; uint64_t mask; Loading Loading @@ -519,8 +520,10 @@ spdk_nvmf_construct_subsystem(const char *name, } } spdk_nvmf_subsystem_add_listener(subsystem, addresses[i].transport, addresses[i].traddr, addresses[i].trsvcid); listen_addr = spdk_nvmf_tgt_listen(addresses[i].transport, addresses[i].traddr, addresses[i].trsvcid); assert(listen_addr != NULL); spdk_nvmf_subsystem_add_listener(subsystem, listen_addr); } /* Parse Host sections */ Loading app/nvmf_tgt/nvmf_rpc.c +3 −1 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ dump_nvmf_subsystem(struct spdk_json_write_ctx *w, struct nvmf_tgt_subsystem *tg struct spdk_nvmf_listen_addr *listen_addr; struct spdk_nvmf_host *host; struct spdk_nvmf_subsystem *subsystem = tgt_subsystem->subsystem; struct spdk_nvmf_subsystem_allowed_listener *allowed_listener; spdk_json_write_object_begin(w); Loading @@ -76,7 +77,8 @@ dump_nvmf_subsystem(struct spdk_json_write_ctx *w, struct nvmf_tgt_subsystem *tg spdk_json_write_name(w, "listen_addresses"); spdk_json_write_array_begin(w); TAILQ_FOREACH(listen_addr, &subsystem->listen_addrs, link) { TAILQ_FOREACH(allowed_listener, &subsystem->allowed_listeners, link) { listen_addr = allowed_listener->listen_addr; spdk_json_write_object_begin(w); spdk_json_write_name(w, "transport"); spdk_json_write_string(w, listen_addr->trname); Loading include/spdk/nvmf.h +15 −4 Original line number Diff line number Diff line Loading @@ -115,6 +115,11 @@ struct spdk_nvmf_ctrlr_ops { void (*detach)(struct spdk_nvmf_subsystem *subsystem); }; struct spdk_nvmf_subsystem_allowed_listener { struct spdk_nvmf_listen_addr *listen_addr; TAILQ_ENTRY(spdk_nvmf_subsystem_allowed_listener) link; }; /* * The NVMf subsystem, as indicated in the specification, is a collection * of virtual controller sessions. Any individual controller session has Loading Loading @@ -149,12 +154,11 @@ struct spdk_nvmf_subsystem { TAILQ_HEAD(, spdk_nvmf_session) sessions; TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs; uint32_t num_listen_addrs; TAILQ_HEAD(, spdk_nvmf_host) hosts; uint32_t num_hosts; TAILQ_HEAD(, spdk_nvmf_subsystem_allowed_listener) allowed_listeners; TAILQ_ENTRY(spdk_nvmf_subsystem) entries; }; Loading @@ -181,9 +185,16 @@ bool spdk_nvmf_subsystem_exists(const char *subnqn); bool spdk_nvmf_subsystem_host_allowed(struct spdk_nvmf_subsystem *subsystem, const char *hostnqn); struct spdk_nvmf_listen_addr * spdk_nvmf_tgt_listen(const char *trname, const char *traddr, const char *trsvcid); int spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem, const char *trname, const char *traddr, const char *trsvcid); struct spdk_nvmf_listen_addr *listen_addr); bool spdk_nvmf_subsystem_listener_allowed(struct spdk_nvmf_subsystem *subsystem, struct spdk_nvmf_listen_addr *listen_addr); int spdk_nvmf_subsystem_add_host(struct spdk_nvmf_subsystem *subsystem, Loading lib/nvmf/nvmf.c +10 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, g_nvmf_tgt.discovery_log_page = NULL; g_nvmf_tgt.discovery_log_page_size = 0; TAILQ_INIT(&g_nvmf_tgt.subsystems); TAILQ_INIT(&g_nvmf_tgt.listen_addrs); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queues Per Session: %d\n", max_queues_per_sess); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queue Depth: %d\n", max_queue_depth); Loading @@ -80,6 +81,15 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, int spdk_nvmf_tgt_fini(void) { struct spdk_nvmf_listen_addr *listen_addr, *listen_addr_tmp; TAILQ_FOREACH_SAFE(listen_addr, &g_nvmf_tgt.listen_addrs, link, listen_addr_tmp) { TAILQ_REMOVE(&g_nvmf_tgt.listen_addrs, listen_addr, link); g_nvmf_tgt.discovery_genctr++; spdk_nvmf_listen_addr_destroy(listen_addr); } spdk_nvmf_transport_fini(); return 0; Loading lib/nvmf/nvmf_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ struct spdk_nvmf_tgt { TAILQ_HEAD(, spdk_nvmf_subsystem) subsystems; struct spdk_nvmf_discovery_log_page *discovery_log_page; size_t discovery_log_page_size; TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs; }; extern struct spdk_nvmf_tgt g_nvmf_tgt; Loading Loading
app/nvmf_tgt/conf.c +5 −2 Original line number Diff line number Diff line Loading @@ -451,6 +451,7 @@ spdk_nvmf_construct_subsystem(const char *name, { struct spdk_nvmf_subsystem *subsystem; struct nvmf_tgt_subsystem *app_subsys; struct spdk_nvmf_listen_addr *listen_addr; enum spdk_nvmf_subsystem_mode mode; int i; uint64_t mask; Loading Loading @@ -519,8 +520,10 @@ spdk_nvmf_construct_subsystem(const char *name, } } spdk_nvmf_subsystem_add_listener(subsystem, addresses[i].transport, addresses[i].traddr, addresses[i].trsvcid); listen_addr = spdk_nvmf_tgt_listen(addresses[i].transport, addresses[i].traddr, addresses[i].trsvcid); assert(listen_addr != NULL); spdk_nvmf_subsystem_add_listener(subsystem, listen_addr); } /* Parse Host sections */ Loading
app/nvmf_tgt/nvmf_rpc.c +3 −1 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ dump_nvmf_subsystem(struct spdk_json_write_ctx *w, struct nvmf_tgt_subsystem *tg struct spdk_nvmf_listen_addr *listen_addr; struct spdk_nvmf_host *host; struct spdk_nvmf_subsystem *subsystem = tgt_subsystem->subsystem; struct spdk_nvmf_subsystem_allowed_listener *allowed_listener; spdk_json_write_object_begin(w); Loading @@ -76,7 +77,8 @@ dump_nvmf_subsystem(struct spdk_json_write_ctx *w, struct nvmf_tgt_subsystem *tg spdk_json_write_name(w, "listen_addresses"); spdk_json_write_array_begin(w); TAILQ_FOREACH(listen_addr, &subsystem->listen_addrs, link) { TAILQ_FOREACH(allowed_listener, &subsystem->allowed_listeners, link) { listen_addr = allowed_listener->listen_addr; spdk_json_write_object_begin(w); spdk_json_write_name(w, "transport"); spdk_json_write_string(w, listen_addr->trname); Loading
include/spdk/nvmf.h +15 −4 Original line number Diff line number Diff line Loading @@ -115,6 +115,11 @@ struct spdk_nvmf_ctrlr_ops { void (*detach)(struct spdk_nvmf_subsystem *subsystem); }; struct spdk_nvmf_subsystem_allowed_listener { struct spdk_nvmf_listen_addr *listen_addr; TAILQ_ENTRY(spdk_nvmf_subsystem_allowed_listener) link; }; /* * The NVMf subsystem, as indicated in the specification, is a collection * of virtual controller sessions. Any individual controller session has Loading Loading @@ -149,12 +154,11 @@ struct spdk_nvmf_subsystem { TAILQ_HEAD(, spdk_nvmf_session) sessions; TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs; uint32_t num_listen_addrs; TAILQ_HEAD(, spdk_nvmf_host) hosts; uint32_t num_hosts; TAILQ_HEAD(, spdk_nvmf_subsystem_allowed_listener) allowed_listeners; TAILQ_ENTRY(spdk_nvmf_subsystem) entries; }; Loading @@ -181,9 +185,16 @@ bool spdk_nvmf_subsystem_exists(const char *subnqn); bool spdk_nvmf_subsystem_host_allowed(struct spdk_nvmf_subsystem *subsystem, const char *hostnqn); struct spdk_nvmf_listen_addr * spdk_nvmf_tgt_listen(const char *trname, const char *traddr, const char *trsvcid); int spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem, const char *trname, const char *traddr, const char *trsvcid); struct spdk_nvmf_listen_addr *listen_addr); bool spdk_nvmf_subsystem_listener_allowed(struct spdk_nvmf_subsystem *subsystem, struct spdk_nvmf_listen_addr *listen_addr); int spdk_nvmf_subsystem_add_host(struct spdk_nvmf_subsystem *subsystem, Loading
lib/nvmf/nvmf.c +10 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, g_nvmf_tgt.discovery_log_page = NULL; g_nvmf_tgt.discovery_log_page_size = 0; TAILQ_INIT(&g_nvmf_tgt.subsystems); TAILQ_INIT(&g_nvmf_tgt.listen_addrs); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queues Per Session: %d\n", max_queues_per_sess); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queue Depth: %d\n", max_queue_depth); Loading @@ -80,6 +81,15 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, int spdk_nvmf_tgt_fini(void) { struct spdk_nvmf_listen_addr *listen_addr, *listen_addr_tmp; TAILQ_FOREACH_SAFE(listen_addr, &g_nvmf_tgt.listen_addrs, link, listen_addr_tmp) { TAILQ_REMOVE(&g_nvmf_tgt.listen_addrs, listen_addr, link); g_nvmf_tgt.discovery_genctr++; spdk_nvmf_listen_addr_destroy(listen_addr); } spdk_nvmf_transport_fini(); return 0; Loading
lib/nvmf/nvmf_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ struct spdk_nvmf_tgt { TAILQ_HEAD(, spdk_nvmf_subsystem) subsystems; struct spdk_nvmf_discovery_log_page *discovery_log_page; size_t discovery_log_page_size; TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs; }; extern struct spdk_nvmf_tgt g_nvmf_tgt; Loading