Skip to content

Commit e399441

Browse files
jsmart-ghsagigrimberg
authored andcommitted
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: James Smart <[email protected]> Reviewed-by: Jay Freyensee <[email protected]> Reviewed-by: Johannes Thumshirn <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
1 parent d6d2001 commit e399441

File tree

4 files changed

+2607
-0
lines changed

4 files changed

+2607
-0
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8665,6 +8665,7 @@ L: [email protected]
86658665
S: Supported
86668666
F: include/linux/nvme-fc.h
86678667
F: include/linux/nvme-fc-driver.h
8668+
F: drivers/nvme/host/fc.c
86688669

86698670
NVMEM FRAMEWORK
86708671
M: Srinivas Kandagatla <[email protected]>

drivers/nvme/host/Kconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,20 @@ config NVME_RDMA
4343
from https://github.com/linux-nvme/nvme-cli.
4444

4545
If unsure, say N.
46+
47+
config NVME_FC
48+
tristate "NVM Express over Fabrics FC host driver"
49+
depends on BLOCK
50+
depends on HAS_DMA
51+
select NVME_CORE
52+
select NVME_FABRICS
53+
select SG_POOL
54+
help
55+
This provides support for the NVMe over Fabrics protocol using
56+
the FC transport. This allows you to use remote block devices
57+
exported using the NVMe protocol set.
58+
59+
To configure a NVMe over Fabrics controller use the nvme-cli tool
60+
from https://github.com/linux-nvme/nvme-cli.
61+
62+
If unsure, say N.

drivers/nvme/host/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ obj-$(CONFIG_NVME_CORE) += nvme-core.o
22
obj-$(CONFIG_BLK_DEV_NVME) += nvme.o
33
obj-$(CONFIG_NVME_FABRICS) += nvme-fabrics.o
44
obj-$(CONFIG_NVME_RDMA) += nvme-rdma.o
5+
obj-$(CONFIG_NVME_FC) += nvme-fc.o
56

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

1415
nvme-rdma-y += rdma.o
16+
17+
nvme-fc-y += fc.o

0 commit comments

Comments
 (0)