nvmf: Remove spdk_nvmf_transport from public API
The details of the structure were removed earlier, but now remove all references even to a pointer to the structure. The user can refer to transports by their string name. Change-Id: I273356f46329ea5372dcd951eda6f14767477d69 Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
bb5d8e506c
commit
b43db69a44
@ -482,7 +482,6 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp)
|
||||
for (i = 0; i < MAX_LISTEN_ADDRESSES; i++) {
|
||||
char *transport_name, *listen_addr;
|
||||
char *traddr, *trsvcid;
|
||||
const struct spdk_nvmf_transport *transport;
|
||||
int numa_node = -1;
|
||||
|
||||
transport_name = spdk_conf_section_get_nmval(sp, "Listen", i, 0);
|
||||
@ -492,12 +491,6 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp)
|
||||
break;
|
||||
}
|
||||
|
||||
transport = spdk_nvmf_transport_get(transport_name);
|
||||
if (transport == NULL) {
|
||||
SPDK_ERRLOG("Unknown transport type '%s'\n", transport_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
ret = spdk_nvmf_parse_addr(listen_addr, &traddr, &trsvcid);
|
||||
if (ret < 0) {
|
||||
SPDK_ERRLOG("Unable to parse transport address '%s'\n", listen_addr);
|
||||
@ -513,7 +506,7 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp)
|
||||
spdk_nvmf_subsystem_get_nqn(app_subsys->subsystem));
|
||||
}
|
||||
}
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, transport, traddr, trsvcid);
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, transport_name, traddr, trsvcid);
|
||||
|
||||
free(traddr);
|
||||
free(trsvcid);
|
||||
@ -711,15 +704,8 @@ spdk_nvmf_parse_subsystem_for_rpc(const char *name,
|
||||
|
||||
/* Parse Listen sections */
|
||||
for (i = 0; i < num_listen_addresses; i++) {
|
||||
const struct spdk_nvmf_transport *transport;
|
||||
|
||||
transport = spdk_nvmf_transport_get(addresses[i].transport);
|
||||
if (transport == NULL) {
|
||||
SPDK_ERRLOG("Unknown transport type '%s'\n", addresses[i].transport);
|
||||
return -1;
|
||||
}
|
||||
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, transport, addresses[i].traddr, addresses[i].trsvcid);
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, addresses[i].transport, addresses[i].traddr,
|
||||
addresses[i].trsvcid);
|
||||
}
|
||||
|
||||
/* Parse Host sections */
|
||||
|
@ -78,7 +78,7 @@ dump_nvmf_subsystem(struct spdk_json_write_ctx *w, struct nvmf_tgt_subsystem *tg
|
||||
TAILQ_FOREACH(listen_addr, &subsystem->listen_addrs, link) {
|
||||
spdk_json_write_object_begin(w);
|
||||
spdk_json_write_name(w, "transport");
|
||||
spdk_json_write_string(w, spdk_nvmf_transport_get_name(listen_addr->transport));
|
||||
spdk_json_write_string(w, listen_addr->trname);
|
||||
spdk_json_write_name(w, "traddr");
|
||||
spdk_json_write_string(w, listen_addr->traddr);
|
||||
spdk_json_write_name(w, "trsvcid");
|
||||
|
@ -63,7 +63,6 @@ struct spdk_nvmf_conn;
|
||||
struct spdk_nvmf_request;
|
||||
struct spdk_bdev;
|
||||
struct spdk_nvme_ctrlr;
|
||||
struct spdk_nvmf_transport;
|
||||
struct spdk_nvmf_request;
|
||||
struct spdk_nvmf_conn;
|
||||
|
||||
@ -78,7 +77,7 @@ enum spdk_nvmf_subsystem_mode {
|
||||
struct spdk_nvmf_listen_addr {
|
||||
char *traddr;
|
||||
char *trsvcid;
|
||||
const struct spdk_nvmf_transport *transport;
|
||||
char *trname;
|
||||
TAILQ_ENTRY(spdk_nvmf_listen_addr) link;
|
||||
};
|
||||
|
||||
@ -172,8 +171,7 @@ nvmf_find_subsystem(const char *subnqn, const char *hostnqn);
|
||||
|
||||
int
|
||||
spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
const struct spdk_nvmf_transport *transport,
|
||||
char *traddr, char *trsvcid);
|
||||
char *trname, char *traddr, char *trsvcid);
|
||||
|
||||
int
|
||||
spdk_nvmf_subsystem_add_host(struct spdk_nvmf_subsystem *subsystem,
|
||||
@ -194,9 +192,6 @@ const char *spdk_nvmf_subsystem_get_nqn(struct spdk_nvmf_subsystem *subsystem);
|
||||
enum spdk_nvmf_subtype spdk_nvmf_subsystem_get_type(struct spdk_nvmf_subsystem *subsystem);
|
||||
enum spdk_nvmf_subsystem_mode spdk_nvmf_subsystem_get_mode(struct spdk_nvmf_subsystem *subsystem);
|
||||
|
||||
const struct spdk_nvmf_transport *spdk_nvmf_transport_get(const char *name);
|
||||
const char *spdk_nvmf_transport_get_name(const struct spdk_nvmf_transport *transport);
|
||||
|
||||
void spdk_nvmf_acceptor_poll(void);
|
||||
|
||||
void spdk_nvmf_handle_connect(struct spdk_nvmf_request *req);
|
||||
|
@ -173,6 +173,7 @@ spdk_nvmf_delete_subsystem(struct spdk_nvmf_subsystem *subsystem)
|
||||
TAILQ_REMOVE(&subsystem->listen_addrs, listen_addr, link);
|
||||
free(listen_addr->traddr);
|
||||
free(listen_addr->trsvcid);
|
||||
free(listen_addr->trname);
|
||||
free(listen_addr);
|
||||
subsystem->num_listen_addrs--;
|
||||
}
|
||||
@ -199,12 +200,17 @@ spdk_nvmf_delete_subsystem(struct spdk_nvmf_subsystem *subsystem)
|
||||
|
||||
int
|
||||
spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
const struct spdk_nvmf_transport *transport,
|
||||
char *traddr, char *trsvcid)
|
||||
char *trname, char *traddr, char *trsvcid)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
const struct spdk_nvmf_transport *transport;
|
||||
int rc;
|
||||
|
||||
transport = spdk_nvmf_transport_get(trname);
|
||||
if (!transport) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
listen_addr = calloc(1, sizeof(*listen_addr));
|
||||
if (!listen_addr) {
|
||||
return -1;
|
||||
@ -223,7 +229,13 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
return -1;
|
||||
}
|
||||
|
||||
listen_addr->transport = transport;
|
||||
listen_addr->trname = strdup(trname);
|
||||
if (!listen_addr->trname) {
|
||||
free(listen_addr->traddr);
|
||||
free(listen_addr->trsvcid);
|
||||
free(listen_addr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
TAILQ_INSERT_HEAD(&subsystem->listen_addrs, listen_addr, link);
|
||||
subsystem->num_listen_addrs++;
|
||||
@ -280,6 +292,7 @@ spdk_format_discovery_log(struct spdk_nvmf_discovery_log_page *disc_log, uint32_
|
||||
struct spdk_nvmf_subsystem *subsystem;
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry;
|
||||
const struct spdk_nvmf_transport *transport;
|
||||
|
||||
TAILQ_FOREACH(subsystem, &g_subsystems, entries) {
|
||||
if (subsystem->subtype == SPDK_NVMF_SUBTYPE_DISCOVERY) {
|
||||
@ -300,7 +313,10 @@ spdk_format_discovery_log(struct spdk_nvmf_discovery_log_page *disc_log, uint32_
|
||||
entry->subtype = subsystem->subtype;
|
||||
snprintf(entry->subnqn, sizeof(entry->subnqn), "%s", subsystem->subnqn);
|
||||
|
||||
listen_addr->transport->listen_addr_discover(listen_addr, entry);
|
||||
transport = spdk_nvmf_transport_get(listen_addr->trname);
|
||||
assert(transport != NULL);
|
||||
|
||||
transport->listen_addr_discover(listen_addr, entry);
|
||||
}
|
||||
numrec++;
|
||||
}
|
||||
|
@ -108,9 +108,3 @@ spdk_nvmf_transport_get(const char *name)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *
|
||||
spdk_nvmf_transport_get_name(const struct spdk_nvmf_transport *transport)
|
||||
{
|
||||
return transport->name;
|
||||
}
|
||||
|
@ -122,6 +122,8 @@ struct spdk_nvmf_transport {
|
||||
int spdk_nvmf_transport_init(void);
|
||||
int spdk_nvmf_transport_fini(void);
|
||||
|
||||
const struct spdk_nvmf_transport *spdk_nvmf_transport_get(const char *name);
|
||||
|
||||
extern const struct spdk_nvmf_transport spdk_nvmf_transport_rdma;
|
||||
|
||||
#endif /* SPDK_NVMF_TRANSPORT_H */
|
||||
|
@ -48,6 +48,12 @@ SPDK_LOG_REGISTER_TRACE_FLAG("nvmf", SPDK_TRACE_NVMF)
|
||||
|
||||
struct spdk_nvmf_globals g_nvmf_tgt;
|
||||
|
||||
const struct spdk_nvmf_transport *
|
||||
spdk_nvmf_transport_get(const char *trname)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int32_t
|
||||
spdk_nvme_ctrlr_process_admin_completions(struct spdk_nvme_ctrlr *ctrlr)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user