Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e399441d authored by James Smart's avatar James Smart Committed by Sagi Grimberg
Browse files

nvme-fabrics: Add host support for FC transport



Implements the FC-NVME T11 definition of how nvme fabric capsules are
performed on an FC fabric. Utilizes a lower-layer API to FC host adapters
to send/receive FC-4 LS operations and FCP operations that comprise NVME
over FC operation.

The T11 definitions for FC-4 Link Services are implemented which create
NVMeOF connections.  Implements the hooks with blk-mq to then submit admin
and io requests to the different connections.

Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
Reviewed-by: default avatarJay Freyensee <james_p_freyensee@linux.intel.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent d6d20012
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8665,6 +8665,7 @@ L: linux-nvme@lists.infradead.org
S:	Supported
F:	include/linux/nvme-fc.h
F:	include/linux/nvme-fc-driver.h
F:	drivers/nvme/host/fc.c

NVMEM FRAMEWORK
M:	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+17 −0
Original line number Diff line number Diff line
@@ -43,3 +43,20 @@ config NVME_RDMA
	  from https://github.com/linux-nvme/nvme-cli.

	  If unsure, say N.

config NVME_FC
	tristate "NVM Express over Fabrics FC host driver"
	depends on BLOCK
	depends on HAS_DMA
	select NVME_CORE
	select NVME_FABRICS
	select SG_POOL
	help
	  This provides support for the NVMe over Fabrics protocol using
	  the FC transport.  This allows you to use remote block devices
	  exported using the NVMe protocol set.

	  To configure a NVMe over Fabrics controller use the nvme-cli tool
	  from https://github.com/linux-nvme/nvme-cli.

	  If unsure, say N.
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ obj-$(CONFIG_NVME_CORE) += nvme-core.o
obj-$(CONFIG_BLK_DEV_NVME)		+= nvme.o
obj-$(CONFIG_NVME_FABRICS)		+= nvme-fabrics.o
obj-$(CONFIG_NVME_RDMA)			+= nvme-rdma.o
obj-$(CONFIG_NVME_FC)			+= nvme-fc.o

nvme-core-y				:= core.o
nvme-core-$(CONFIG_BLK_DEV_NVME_SCSI)	+= scsi.o
@@ -12,3 +13,5 @@ nvme-y += pci.o
nvme-fabrics-y				+= fabrics.o

nvme-rdma-y				+= rdma.o

nvme-fc-y				+= fc.o

drivers/nvme/host/fc.c

0 → 100644
+2586 −0

File added.

Preview size limit exceeded, changes collapsed.