NVM Express has ratified TCP as a new transport for NVMe-oF! The announcement can be found here. Quoting from the NVM Express announcement:

What’s really exciting about NVMe/TCP is that it enables efficient end-to-end NVMe operations between NVMe-oF host(s) and NVMe-oF controller devices interconnected by any standard IP network with excellent performance and latency characteristics. This allows large-scale data centers to utilize their existing ubiquitous Ethernet infrastructure with multi-layered switch topologies and traditional Ethernet network adapters. NVMe/TCP is designed to layer over existing software based TCP transport implementations as well as future hardware accelerated implementations.

Ziye Yang has been actively working on SPDK support for NVMe-oF TCP, and has a patch that is now available for testing. This patch adds NVMe-oF TCP support to both the SPDK NVMe-oF target as well as the SPDK NVMe host initiator. This support will likely be merged in the next couple of weeks, so we welcome any code review or testing feedback!