Commit eb705f0d authored by Ben Walker's avatar Ben Walker
Browse files

nvmf: Add a request.h/c



Only move nvmf_request definitions from nvmf_internal.h
for now. Subsequent patches will move more.

Change-Id: If47472542515fd050cc78d95540eb25beee59d2a
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 631f5f27
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,6 +38,6 @@ LIBNAME = nvmf
C_SRCS = nvmf_admin_cmd.c nvmf_io_cmd.c \
	 rdma.c port.c conn.c controller.c \
	 host.c subsystem_grp.c conf.c \
	 nvmf.c session.c
	 nvmf.c request.c session.c

include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@
#include "spdk/nvmf_spec.h"
#include "conn.h"
#include "rdma.h"
#include "request.h"
#include "session.h"
#include "spdk/queue.h"
#include "spdk/log.h"
+0 −42
Original line number Diff line number Diff line
@@ -78,45 +78,8 @@
#define TRACE_NVMF_LIB_COMPLETE			SPDK_TPOINT_ID(TRACE_GROUP_NVMF, 0x7)
#define TRACE_NVMF_IO_COMPLETE			SPDK_TPOINT_ID(TRACE_GROUP_NVMF, 0x8)

union nvmf_h2c_msg {
	struct spdk_nvmf_capsule_cmd			nvmf_cmd;
	struct spdk_nvme_cmd				nvme_cmd;
	struct spdk_nvmf_fabric_prop_set_cmd		prop_set_cmd;
	struct spdk_nvmf_fabric_prop_get_cmd		prop_get_cmd;
	struct spdk_nvmf_fabric_connect_cmd		connect_cmd;
};
SPDK_STATIC_ASSERT(sizeof(union nvmf_h2c_msg) == 64, "Incorrect size");

union nvmf_c2h_msg {
	struct spdk_nvmf_capsule_rsp			nvmf_rsp;
	struct spdk_nvme_cpl				nvme_cpl;
	struct spdk_nvmf_fabric_prop_set_rsp		prop_set_rsp;
	struct spdk_nvmf_fabric_prop_get_rsp		prop_get_rsp;
	struct spdk_nvmf_fabric_connect_rsp		connect_rsp;
};
SPDK_STATIC_ASSERT(sizeof(union nvmf_c2h_msg) == 16, "Incorrect size");

#define NVMF_H2C_MAX_MSG (sizeof(union nvmf_h2c_msg))
#define NVMF_C2H_MAX_MSG (sizeof(union nvmf_c2h_msg))

#define NVMF_CNTLID_SUBS_SHIFT 8

struct nvmf_request {
	struct nvmf_session		*session;
	struct nvme_qp_tx_desc		*tx_desc;
	struct nvme_qp_rx_desc		*rx_desc;
	uint16_t			cid;		/* command identifier */
	uint64_t			remote_addr;
	uint32_t			rkey;
	uint32_t			length;
	enum spdk_nvme_data_transfer	xfer;
	void				*data;
	union nvmf_h2c_msg		*cmd;
	union nvmf_c2h_msg		*rsp;

	TAILQ_ENTRY(nvmf_request) 	entries;
};

/*
 * Some NVMe command definitions not provided in the nvme_spec.h file
 */
@@ -158,11 +121,6 @@ struct spdk_nvmf_globals {
	uint16_t	   sin_port;
};

/**
 * Send the response and transfer data from controller to host if required.
 */
int spdk_nvmf_request_complete(struct nvmf_request *req);

void
nvmf_complete_cmd(void *rsp, const struct spdk_nvme_cpl *cmp);

+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

#include "nvmf.h"
#include "nvmf_internal.h"
#include "request.h"
#include "session.h"
#include "subsystem_grp.h"
#include "spdk/log.h"
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
#include <infiniband/verbs.h>

#include "nvmf_internal.h"
#include "request.h"
#include "spdk/nvmf_spec.h"

/* Define the Admin Queue Rx/Tx Descriptors */
Loading