Skip to content

Commit 3f2304f

Browse files
Sagi GrimbergChristoph Hellwig
authored andcommitted
nvme-tcp: add NVMe over TCP host driver
This patch implements the NVMe over TCP host driver. It can be used to connect to remote NVMe over Fabrics subsystems over good old TCP/IP. The driver implements the TP 8000 of how nvme over fabrics capsules and data are encapsulated in nvme-tcp pdus and exchaged on top of a TCP byte stream. nvme-tcp header and data digest are supported as well. To connect to all NVMe over Fabrics controllers reachable on a given taget port over TCP use the following command: nvme connect-all -t tcp -a $IPADDR This requires the latest version of nvme-cli with TCP support. Signed-off-by: Sagi Grimberg <[email protected]> Signed-off-by: Roy Shterman <[email protected]> Signed-off-by: Solganik Alexander <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
1 parent ad4f530 commit 3f2304f

File tree

3 files changed

+2260
-0
lines changed

3 files changed

+2260
-0
lines changed

drivers/nvme/host/Kconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,18 @@ config NVME_FC
5757
from https://github.com/linux-nvme/nvme-cli.
5858

5959
If unsure, say N.
60+
61+
config NVME_TCP
62+
tristate "NVM Express over Fabrics TCP host driver"
63+
depends on INET
64+
depends on BLK_DEV_NVME
65+
select NVME_FABRICS
66+
help
67+
This provides support for the NVMe over Fabrics protocol using
68+
the TCP transport. This allows you to use remote block devices
69+
exported using the NVMe protocol set.
70+
71+
To configure a NVMe over Fabrics controller use the nvme-cli tool
72+
from https://github.com/linux-nvme/nvme-cli.
73+
74+
If unsure, say N.

drivers/nvme/host/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ obj-$(CONFIG_BLK_DEV_NVME) += nvme.o
77
obj-$(CONFIG_NVME_FABRICS) += nvme-fabrics.o
88
obj-$(CONFIG_NVME_RDMA) += nvme-rdma.o
99
obj-$(CONFIG_NVME_FC) += nvme-fc.o
10+
obj-$(CONFIG_NVME_TCP) += nvme-tcp.o
1011

1112
nvme-core-y := core.o
1213
nvme-core-$(CONFIG_TRACING) += trace.o
@@ -21,3 +22,5 @@ nvme-fabrics-y += fabrics.o
2122
nvme-rdma-y += rdma.o
2223

2324
nvme-fc-y += fc.o
25+
26+
nvme-tcp-y += tcp.o

0 commit comments

Comments
 (0)