github spdk/spdk v23.09
SPDK v23.09: NVMe-oF TCP data digest chaining, JSON-RPC Go client, DIF/DIX CRC32/64

latest releases: v24.05, v24.09-pre, v24.05-rc1...
9 months ago

accel

Added spdk_accel_get_buf_align() API to get minimum buffer alignment to execute a given operation.

Added get_operation_info() callback for accel_modules to return constraints for a given operation.

bdev

Added spdk_bdev_open_async() API to allow asynchronous bdev open that waits for specified time
until the block device appears.

bdev_nvme

Added bdev_nvme_enable_controller and bdev_nvme_disable_controller RPC to enable and disable
NVMe controller. For NVMe multipath cntlid is used to select only one NVMe-oF controller.

Added cntlid field to bdev_nvme_reset_controller RPC to support resetting only one NVMe-oF
controller in multipath configuration.

bdev_raid

Added bdev_raid_remove_base_bdev RPC to remove a base bdev from existing raid bdev.

dpdk

Updated DPDK submodule to DPDK 23.07.

env

The phys_addr parameter in spdk_*_malloc() functions is now invalid. Passing non-NULL value
will return NULL from the functions. The parameter was deprecated in SPDK 19.04.
For retrieving physical addresses, spdk_vtophys() should be used instead.

go

Added JSON-RPC 2.0 client written in Go to ease communication with SPDK.
Please see the documentation at go/rpc/ and example at examples/go/.

init

Options for the JSON-RPC server initialization were added. The options are defined via the
spdk_rpc_opts structure and is passed to the existing API spdk_rpc_initialize() as a new
argument. The options include log_file and log_level.

intel-ipsec-mb

Updated intel-ipsec-mb submodule to v1.4.

jsonrpc

New APIs, spdk_jsonrpc_set_log_level and spdk_jsonrpc_set_log_file, were added to enable
logging JSON RPC calls history.

log

New APIs, spdk_flog and spdk_vflog, were added to write messages to the specified log file.

nvme

The spdk_nvme_accel_fn_table interface has been extended with callbacks allowing users to chain
multiple accel operations. Users can now send requests with an existing accel sequence by setting
the accel_sequence field in spdk_nvme_ns_cmd_ext_io_opts if the controller supports it (i.e.
sets the SPDK_NVME_CTRLR_ACCEL_SEQUENCE_SUPPORTED flag) and the user implements the necessary
spdk_nvme_accel_fn_table callbacks.

The NVMe bdev will now advertise support for accel sequences if the allow_accel_sequence flag is
set in bdev_nvme_set_options and the underlying controller also supports them.

The TCP transport will now calculate data digest using the accel sequence APIs if they're available.

Added spdk_nvme_qpair_is_connected() API to check the connection status.

nvmf

The spdk_nvmf_request::data field has been removed: instead, clients should set
->iov and ->iovcnt appropriately, as nvmf request APIs now expect any data
buffers to be described there. spdk_nvmf_request_get_data() has been removed.

transport field in listen_addresses of nvmf_get_subsystems RPC is deprecated.
trtype field should be used instead. transport field will be removed in 24.01 release.

Added spdk_nvmf_subsystem_add_listener_ext() API for accepting new connections on the provided
address, now allowing to specify additional options for the listener.

Deprecated spdk_nvmf_subsytem_any_listener_allowed() API (to be removed in 24.01) and replaced
with spdk_nvmf_subsystem_any_listener_allowed() API fixing the typo.

Added spdk_nvmf_subsystem_is_discovery() API to check whether a given susbystem is discovery
subsystem.

scripts

setup.sh now supports interactive mode for device selection and hugepage reservation.

Added backport.sh script that formalizes process of backporting commits from latest SPDK,
to specific release branches. Please see documentation.

thread

Added spdk_thread_is_app_thread() API to check if specified spdk_thread is the app thread.

util

Extended DIF support to CRC-32 and CRC-64 format of the Protection Information.

Added spdk_crc64_nvme() and spdk_crc32c_nvme(), CRC-64 and CRC-32C checksums compatible with
NVMe Protection Information.

Don't miss a new spdk release

NewReleases is sending notifications on new releases.