SPDK v19.01: NVMe-oF TCP/IP Transport, Open Channel SSD Flash Translation Layer, Caching bdev based on OCF, ISA-L Support, DIF/DIX library

On behalf of the SPDK community I’m pleased to announce the release of SPDK 19.01!

This release contains the following new features:

  • NVMe-oF TCP/IP Transport: New TCP/IP transport can now be used in NVMe-oF target and NVMe driver.
  • Open Channel SSD Flash Translation Layer: Added flash translation layer module allowing for using Open Channel SSDs as block devices. The module is split into the library (located in lib/ftl) and bdev_ftl(lib/bdev/ftl). Please see documentation for more details. This feature is considered as experimental.
  • Caching bdev based on OCF: New virtual bdev module based on Open CAS Framework has been added. This provides a high performance block storage caching on top of any underlying bdev. This feature is considered as experimental.
  • vhost: A security vulnerability has been identified and fixed in the SPDK vhost target. A malicious vhost client (i.e. virtual machine) could carefully construct a circular descriptor chain which would result in a partial denial of service in the SPDK vhost target. These types of descriptor chains are now properly detected by the vhost target. All SPDK vhost users serving untrusted vhost clients are strongly recommended to upgrade. (Reported by Dima Stepanov and Evgeny Yakovlev.)
  • ISA-L Support: ISA-L has been added as an SPDK submodule. ISA-L is enabled by default on x86 architecture to accelerate algorithms such as CRC for iSCSI and NVMe-oF.
  • DIF/DIX library: New DIF APIs has been added to generate and verify DIF by byte granularity for both DIF and DIX formats.

The full changelog for this release is available here.

New Contributors

This quarterly release contains 735 commits from 47 different authors. More than 60k lines of code were changed in this release, most of those were additions. This averages to around 1000 lines of code changed per work day !

We’d especially like to recognize all of our first time contributors:

  • Arshad Hussain
  • Evgeniy Kochetov
  • Honghui Wang
  • Igor Konopko
  • Jie Wang
  • Jin Yu
  • Kefu Chai
  • Konrad Sztyber
  • Lavar Askew
  • Liang Yan
  • Lorneli
  • Richael Zhuang
  • Tone Zhang
  • Wojciech Malikowski
  • Zahra Khatami

Thanks to everyone for your contributions, participation, and effort!