Commit b43db69a authored by Ben Walker's avatar Ben Walker Committed by Jim Harris
Browse files

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: default avatarBen Walker <benjamin.walker@intel.com>
parent bb5d8e50
Loading
Loading
Loading
Loading
+3 −17
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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");
+2 −7
Original line number Diff line number Diff line
@@ -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);
+20 −4
Original line number Diff line number Diff line
@@ -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++;
		}
+0 −6
Original line number Diff line number Diff line
@@ -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;
}
Loading