Commit b397546e authored by Seth Howell's avatar Seth Howell Committed by Tomasz Zawadzki
Browse files

lib/nvmf: get_transport now takes a string.



This function previously accepted a trtype enum, but needs to be able
to accept a string to support custom transports.

Change-Id: I931aed30ca3be65468552ffa1bb1ef3f91275fda
Signed-off-by: default avatarSeth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479601


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 5b3e6cd1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1009,12 +1009,12 @@ int spdk_nvmf_transport_destroy(struct spdk_nvmf_transport *transport);
 * Get an existing transport from the target
 *
 * \param tgt The NVMe-oF target
 * \param type The transport type to get
 * \param transport_name The name of the transport type to get.
 *
 * \return the transport or NULL if not found
 */
struct spdk_nvmf_transport *spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt,
		enum spdk_nvme_transport_type type);
		const char *transport_name);

/**
 * Get the first transport registered with the given target
+2 −2
Original line number Diff line number Diff line
@@ -951,7 +951,7 @@ nvmf_fc_ls_process_cass(uint32_t s_id,
	uint8_t rc = FCNVME_RJT_RC_NONE;
	uint8_t ec = FCNVME_RJT_EXP_NONE;
	struct spdk_nvmf_transport *transport = spdk_nvmf_tgt_get_transport(ls_rqst->nvmf_tgt,
						(enum spdk_nvme_transport_type) SPDK_NVMF_TRTYPE_FC);
						SPDK_NVME_TRANSPORT_NAME_FC);

	SPDK_DEBUGLOG(SPDK_LOG_NVMF_FC_LS,
		      "LS_CASS: ls_rqst_len=%d, desc_list_len=%d, cmd_len=%d, sq_size=%d, "
@@ -1086,7 +1086,7 @@ nvmf_fc_ls_process_cioc(struct spdk_nvmf_fc_nport *tgtport,
	uint8_t rc = FCNVME_RJT_RC_NONE;
	uint8_t ec = FCNVME_RJT_EXP_NONE;
	struct spdk_nvmf_transport *transport = spdk_nvmf_tgt_get_transport(ls_rqst->nvmf_tgt,
						(enum spdk_nvme_transport_type) SPDK_NVMF_TRTYPE_FC);
						SPDK_NVME_TRANSPORT_NAME_FC);

	SPDK_DEBUGLOG(SPDK_LOG_NVMF_FC_LS,
		      "LS_CIOC: ls_rqst_len=%d, desc_list_len=%d, cmd_len=%d, "
+4 −5
Original line number Diff line number Diff line
@@ -550,7 +550,7 @@ spdk_nvmf_tgt_listen(struct spdk_nvmf_tgt *tgt,
	const char *trtype;
	int rc;

	transport = spdk_nvmf_tgt_get_transport(tgt, trid->trtype);
	transport = spdk_nvmf_tgt_get_transport(tgt, trid->trstring);
	if (!transport) {
		trtype = spdk_nvme_transport_id_trtype_str(trid->trtype);
		if (trtype != NULL) {
@@ -611,7 +611,7 @@ void spdk_nvmf_tgt_add_transport(struct spdk_nvmf_tgt *tgt,
{
	struct spdk_nvmf_tgt_add_transport_ctx *ctx;

	if (spdk_nvmf_tgt_get_transport(tgt, transport->ops->type)) {
	if (spdk_nvmf_tgt_get_transport(tgt, transport->ops->name)) {
		cb_fn(cb_arg, -EEXIST);
		return; /* transport already created */
	}
@@ -661,16 +661,15 @@ spdk_nvmf_tgt_find_subsystem(struct spdk_nvmf_tgt *tgt, const char *subnqn)
}

struct spdk_nvmf_transport *
spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt, enum spdk_nvme_transport_type type)
spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt, const char *transport_name)
{
	struct spdk_nvmf_transport *transport;

	TAILQ_FOREACH(transport, &tgt->transports, link) {
		if (transport->ops->type == type) {
		if (!strncasecmp(transport->ops->name, transport_name, SPDK_NVMF_TRSTRING_MAX_LEN)) {
			return transport;
		}
	}

	return NULL;
}

+0 −4
Original line number Diff line number Diff line
@@ -367,10 +367,6 @@ struct spdk_nvmf_subsystem {
	TAILQ_ENTRY(spdk_nvmf_subsystem)	entries;
};


struct spdk_nvmf_transport *spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt,
		enum spdk_nvme_transport_type);

int spdk_nvmf_poll_group_add_transport(struct spdk_nvmf_poll_group *group,
				       struct spdk_nvmf_transport *transport);
int spdk_nvmf_poll_group_update_subsystem(struct spdk_nvmf_poll_group *group,
+1 −1
Original line number Diff line number Diff line
@@ -1694,7 +1694,7 @@ spdk_rpc_nvmf_create_transport(struct spdk_jsonrpc_request *request,
		return;
	}

	if (spdk_nvmf_tgt_get_transport(tgt, trtype)) {
	if (spdk_nvmf_tgt_get_transport(tgt, ctx->trtype)) {
		SPDK_ERRLOG("Transport type '%s' already exists\n", ctx->trtype);
		spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
						     "Transport type '%s' already exists\n", ctx->trtype);
Loading