Skip to content

Releases: linux-nvme/libnvme

v1.16.2

Choose a tag to compare

@github-actions github-actions released this 16 Jun 09:44

What's Changed

  • tree: Fix potential NULL pointer dereference in nvme_host_get_ids() by @stephenchengCloud in #1091
  • Improve workflows by @igaw in #1101
  • Various concat fixes by @igaw in #1100
  • Handle invalid traddr in discovery log by @igaw in #1102
  • tree: fix nvme_subsystem_scan_namespaces() return handling by @igaw in #1105
  • build(deps): Bump docker/login-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #1106

New Contributors

Full Changelog: v1.16.1...v1.16.2

v1.16.1

Choose a tag to compare

@github-actions github-actions released this 07 Nov 17:22

What's Changed

  • build: avoid breaking cross builds with OpenSSL enabled by @igaw in #1090

Full Changelog: v1.16...v1.16.1

v1.16

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:34

This is the last normal update of this 1.x series, and thus this branch enters maintenance mode. The next major development cycle has started and one of the changes is to move the library to the nvme-cli repo. The library still stays separate but not the repo. There was just too much hassle to keep those two project synchronized.

Anyway, expect only bug fixes here.

What's Changed

Full Changelog: v1.15...v1.16

v1.15

Choose a tag to compare

@github-actions github-actions released this 25 Jul 08:05

What's Changed

New Contributors

Full Changelog: v1.14...v1.15

v1.14

Choose a tag to compare

@github-actions github-actions released this 20 May 10:17

There aren't many big changes in this release. Besides the usual adding of new definitions the EINTR handling is removed. It is now handled in nvme-cli directly because it's necessary to handle signals properly and installing a signal handler in the library is not a good idea.

What's Changed

Full Changelog: v1.13...v1.14

v1.13

Choose a tag to compare

@github-actions github-actions released this 11 Apr 11:22

There were some rather anoying regressions in the last release (#980, linux-nvme/nvme-cli#2761), which this release is addressing.

Another problem which popped up, is that kernel change is causing a regression. The kernel started to return a new error code. libnvme will now retry to connect when writing to /dev/nvme-fabrics returns -ENTR (linux-nvme/nvme-cli#2760).

The PyPi is broken and thus no Python release for the time being. Hopefully this gets fixed soon (#976)

Thanks to everyone contributing to this project!

Changqing Li (1):
      mock.c: fix checking of HAVE_GLIBC_IOCTL

Daniel Wagner (23):
      build: fix python release workflows
      build: enable python test release and fix release tag
      build: use correct syntax to fetch container
      build: use v1 branch pypi publish action
      build: use trusted publisher authentication
      pyproject: add description metadata
      build: set permissions for release-python
      build: disable twine metadata check
      build: update packaging for twine
      build: install pip
      build: use pipx for installing packaging
      build: install packaging globally
      build: install packaging in upload containers
      gitignore: ignore .build-tools
      src: update include directive
      ioctl: return status code when using liburing
      fabrics: retry connect command on EINTR
      build: fix python upload workflows
      build: update gh-action-pypi-publish dependency
      build: use the correct version syntax for actions
      build: set python version to 3.10
      doc: Regenerate all docs for v1.13
      Release v1.13

Dmitry Sherstoboev (1):
      types: Fix Live Migration SEQIND Shift and Mask

Francis Pravin (1):
      types: Update nvme_id_independent_id_ns fields based on NVMe 2.1 spec

Keith Busch (1):
      libnvme: do not byte swap command dwords

Martin George (2):
      tree: add routine to fetch subsys model
      tree: add routine to fetch subsys firmware rev

Tokunori Ikegami (4):
      types: add performance attribute structures
      types: add performance characteristics feature access values
      util: add performance characteristics feature decode function
      types: add performance characteristics attribute type values

v1.12

Choose a tag to compare

@github-actions github-actions released this 17 Mar 09:30

There aren't many interesting changes in this release. Most of the changed in this release are due adding missing bits and pieces from the v2.1 nvme spec. Obviously, there the usual bug fixes, but nothing serious.

The only thing which might be causing some problems is the updated version dependency on meson. The good news is, that if this is causing troubles, we can disable one of the tests which depends on meson feature to properly configure. But let's see how it goes.

Thanks to all who contributed to this release in every form, e.g. by bug reports, documentation fixes or code changes!

This release switches to the newer dbus API for mctpd (corresponding to mctpd version 2.0 and later). If you're using libnvme's MCTP-device endpoint enumeration functions (nvme_mi_for_each_endpoint), you will need to update to mctpd v2.x or later.

Arbaz Khan (1):
      types,util: Added Enums for missing status codes

Chuck Horkin (1):
      mi_xfer: Added nvme_mi_mi_xfer API

 Daniel Wagner (23):
      linux: fix derive_psk_digest OpenSSL 1.1 version
      linux: do not return w/o OpenSSL support enabled
      linux: do not do any keyring ops when no key is provided
      fabrics: do not attempt to import keys if tls is not enabled
      doc: Regenerate all docs for v1.11.1
      Release v1.11.1
      test/mock: pass thru unknown ioctls
      tests: do not unconditionally depend on dlsym
      ioctl: fix io_uring whitespace damages
      build: bump wraps
      build: add thank you bot
      build: add github token to comment step
      build: remove thank you bot
      build: checkpatch limit line length to 100 chars
      examples: fix time stamp prefix printf format string
      pyproject.toml: allow newer meson version
      build: update min meson dependency
      build: request c++ compiler for host and build machine
      build: drop support for openssl 1
      build: do not include config.h globally
      build: ignore PREFER_DEFINED_ATTRIBUTE_MACRO
      doc: Regenerate all docs for v1.12
      Release v1.12

Dennis Maisenbacher (1):
      build: Add token for coverage test

Francis Pravin (7):
      types: add enum for the fields added in TP4160
      types: add enum for the fields added in TP4058
      types: Update id-ns fields based on NVM Command Set Spec 1.1
      types: Update nvm-id-ns fields based on NVM Command Set Spec 1.1
      types,util: add Asynchronous Event Configuration NVMe 2.1 definitions
      types: add HDISNS field of Host Behavior Support feature
      types: add enum for Identify I/O Command Set Data Structure

Jian Zhang (2):
      util: avoid min macro pollution
      test: check the namespace is not cluttered with min/max

Martin Belanger (2):
      Makefile: Add new targets and update meson command syntax
      python, swig: add missing controller attributes

Nate Thornton (2):
      types: Live Migration
      ioctl: Live Migration

Steven Seungcheol Lee (7):
      types: Add id-ctrl CTRATT.RHII enum
      rpm: use defined prefix from meson
      ioctl,types: telemetry log update based NVMe v2.1
      mi: telemetry log update based NVMe v2.1
      types: Update id-ctrl field based on NVMe 2.1 spec
      types: use __le16 instead of __u16 for data fields
      types: Add enum for nvme_id_ctrl.trattr

Thu Nguyen (1):
      Update mctp APIs to mctp codeconstruct version 2.0

Tokunori Ikegami (30):
      types: add NVME_ID_CTRL_NVM_LBAMQF definitions
      types: fix lm data field unsigned values to little endian
      types: error information log entry status field definitions
      types: add NVMe 2.1 identify power state descriptor fields
      types: Add NVMe 2.1 feature ID definitions
      types: add NVMe 2.1 admin command opcode definitions
      types: add NVMe 2.1 identify command CNS definitions
      ioctl: add nvme_get_endgid_log()
      ioctl: add nvme_get_log_rotational_media_info()
      ioctl: add nvme_get_log_dispersed_ns_participating_nss()
      ioctl: add nvme_get_log_mgmt_addr_list()
      ioctl: add nvme_get_log_reachability_groups()
      ioctl: add nvme_get_log_reachability_associations()
      ioctl: add nvme_get_log_changed_alloc_ns_list()
      ioctl: add nvme_get_log_host_discover()
      ioctl: add nvme_get_log_ave_discover()
      ioctl: add nvme_get_log_pull_model_ddc_req()
      types: add NVME_FEAT_FDPE_*** definitions
      types: add I/O command fabric commands opcode definition
      types: fix enum nvme_psd definitions indentation errors
      types: add spinup control and pls features definition
      mi: add nvme_mi_admin_get_log_mgmt_addr_list()
      types: add NVME_CTRL_OACS definitions
      mi: fix indentation errors
      ioctl: add libnvme-mi NVMe 2.1 log page APIs
      ioctl: fix nvme_get_log_reachability_groups() parameters order
      types: fix nvme_reachability_association_desc member variable name
      mi: fix nvme_mi_admin_get_log_reachability_groups() parameters order
      libnvme: export nvmf_exat_ptr_next
      types: add SLM and CP command set indicator values

dependabot[bot] (2):
      build(deps): bump codecov/codecov-action from 4 to 5
      build(deps): bump pypa/gh-action-pypi-publish@release/v1.5

letli (2):
      tests: mock io_uring_get_probe
      ioctl: get_log_page by nvme uring cmd

v1.11.1

Choose a tag to compare

@github-actions github-actions released this 15 Nov 15:22

The TLS changes in v1.11 introduce a bug. When TLS is not used, libnvme would still tried to operate on the psk keystore (CONFIG_NVME_TLS). 'nvme connect' operation would fail with Failed to set keyring in this case (see linux-nvme/nvme-cli#2573 for more details).

Headsup for packager: if your kernel doesn't enable CONFIG_NVME_TCP_TLS and CONFIG_NVME_HOST_AUTH, you should update to libnvme v1.11.1.

v1.11

Choose a tag to compare

@github-actions github-actions released this 31 Oct 09:13

Boooh Hallowien release!

ChatGPT says:

The libnvme v1.11 release includes several enhancements and bug fixes. Key improvements involve updates to support new NVMe specification features, including enhanced compatibility and configuration options. This release also refines the command-line tool and improves documentation for better usability.

And that is pretty much what was happening. There are a bunch of new types/fields (thanks everyone contributing to this!). Various small fixes here and there.

I spend some time to figure out the TLS key handling and added support for the upcoming configred_tls sysfs attribute (Linux v6.12).

In short there shouldn't be any big surprises in this release.

Ankit Soni (2):
      types: added new fields in nvme_nvme_id_ns
      libnvme: add lockdown log page support(LID : 0x14)

Arbaz Khan (1):
      type: Added enums for ANSAN and RGCNS bit of OAES field

Chuck Horkin (1):
      prefix: Use Request or Response Length in DLEN and DOFF for MI

Daniel Wagner (25):
      build: add install step to doc CI build
      build: use linux-nvme/ci-containers
      linux: reorder variable declarations
      linux: use ssize_t as return type for nvme_identity_len
      linux: only return the description of a key
      test: make config-diff more flexible to use
      test: add test case for importing/exporting PSKs
      linux: add import/export function for TLS pre-shared keys
      test: extend psk to test new 'versioned' API
      tree: add getter/setters for TLS PSK
      json: move keystore operations out of the JSON parser
      test: add pre-shared key json tests
      tree: move dhchap and tls sysfs parser into separate functions
      tree: read tls_configured_key and tls_keyring from sysfs
      linux: export keys to config
      linux: handle key import correctly
      fabrics: rename first argument for argument macros
      fabrics: use hex numbers when generating command line options
      fabrics: add ctrl connect interface
      fabrics: fix map error level in __nvmf_add_ctrl
      util: added error code for ENOKEY
      tree: do no export tls keys when not provided by user
      json: do not escape strings when printing the configuration
      doc: Regenerate all docs for v1.11
      Release v1.11

Francis Pravin (5):
      types: add new fields added in TP4142
      types: Add enum for Completion Condition of Get LBA status command
      libnvme: add EMVS support to sanitize command
      types: Added enum for SMVES event of PEL log
      types: Add ETPVDS and SSI fields of sanitize status log

Hannes Reinecke (1):
      linux: fixup PSK HMAC type '0' handling

Jeremy Kerr (1):
      tests: mi: Add test for dlen/doff values through raw admin_xfer interface

Jian Zhang (2):
      mi: add control primitive command
      examples: add control primitive in mi-mctp

Martin George (3):
      tree: fix dhchap_key mem leak
      tree: fix dhchap_ctrl_key mem leak
      tree: fix tls key mem leak

Nate Thornton (1):
      types: Add TP4159 PCIe Infrastructure for Live Migration definitions

Nitin Sao (1):
      types: Added new field CSER in enum as per TP4167

Prashanth Nayak (1):
      linux: Correct error handling for derive_psk_digest

Steven Seungcheol Lee (1):
      ioctl: refactoring set_features

Tokunori Ikegami (7):
      types: add NVME_CHECK() definition to check nvme register field value
      types: add NVME_VAL() definition
      types: add NVME_CTRL_FNA definitions to get field values
      types: add NVME_CTRL_OAES_TTHR definition
      types: add NVME_CTRL_OAES get macro definitions
      types: add NVMe 2.1 get log page LIDs
      types: add struct nvme_id_ctrl_nvm ver and lbamqf member variables

rick (1):
      types: add kv opcodes

v1.10

Choose a tag to compare

@github-actions github-actions released this 02 Aug 07:54

Thanks to everyone contributing to this release.

There are bug fixes all over the places, from build fixes to normal bug fixes.

Noteworthy changes are from Caleb who updated/extended the ANA log fetcher/parser, Hannes updating the TLS feature. I've updated the config.json handling, so the nvme-cli will be able to connect to all resources defined in the config.json.

Once more, big thanks to everyone involved, if it is via code or bug reports. All highly appreciated.

Andrew Jeffery (1):
      mi: Probe quirks on first command submission

Caleb Sander Mateos (9):
      ioctl: fix nvme_get_log_ana_groups() pointer type
      ioctl: respect rae in nvme_get_log_ana()
      ioctl: replace nvme_ana_rsp_hdr in doc comments
      ioctl: add support for atomic, piecewise ANA log fetch
      test: support returning shorter buffer in mock ioctl
      test: log mock ioctl command fields in hexadecimal
      test: add mock ioctl tests for atomic ANA log fetch
      libnvme: export nvme_mi_admin_get_ana_log_atomic()
      linux: add nvme_get_ana_log_len_from_id_ctrl()

Daniel Wagner (22):
      libnvme: sort export map
      log: keep log level logic in one place
      log: split log variables from root object
      linux: default init cleanup variable
      doc: remove unused release variable
      build: reorder release commits
      linux: add nvme_revoke_tls_key
      build: add documentation CI build
      build: always CI build documentation
      tree: preserve parsing order of a config file
      json: filter out pcie transport
      test: revamp sysfs tree dump test
      test: add config dump test
      test: add config-pcie-with-tcp-config test case
      fabrics: extend hostnqn/hostid variable inject interface
      tree: add helper to lookup hostnqn/hostid
      test: add hostnqn lookup test
      build: do not overwrite conf data from main meson.build
      build: show git version used during configuration
      test: return error code
      doc: Regenerate all docs for v1.10
      Release v1.10

Francis Pravin (4):
      types: add enum for Protection Information Format
      types: add new filed added in TP4141a
      types: Changed the space into tap space
      types: add new fields added in TP4165

Greg Joyce (1):
      tree: handle no address phy slot dirs

Hannes Reinecke (2):
      tree: optionally skip namespaces during scanning
      linux: update TLS version 1 PSK derivation

Hao Jiang (2):
      mi: fix the return error code.
      mi: fix the rc for nvme_mi_scan_ep

Hasan Polat (1):
      ioctl: update nvme_set_var_size_tags() to properly use reftag

Israel Rukshin (1):
      libnvme: Introduce functions to generate host identifier and host NQN

Jinliang Wang (1):
      mi: restore default ep timeout during admin_passthru

Martin George (1):
      tree: fix segfault in nvme_free_tree()

Maurizio Lombardi (3):
      types: add the nvme Cancel command opcode
      linux: avoid potential null pointer dereference
      mi-mctp: initialize the rc variable in handle_mctp_endpoint()

Nitin Sao (3):
      types: add new field added in TP4090
      types: add new field added in TP4099
      types: Added new controller attribute as per TP4104

Sam James (1):
      Use C99 types for uint32_t

Tokunori Ikegami (2):
      types: add PEL vendor specific and TCG defined events definitions
      tree: fix nvme_read_config() to not set errno if return 0

Tomas Bzatek (5):
      linux: Fix uninitialized variables
      fabrics: Introduce simple URI parser
      tests: Add uriparser tests
      fabrics: Unescape URI elements
      linux: Remove the use of OpenSSL Engine API

Warner Losh (2):
      examples: Include sys/stat.h for S_I* constants
      ccan/endian.h: Only define __{BIG,LITTLE}_ENDIAN if undefined.

dependabot[bot] (1):
      build(deps): bump mosteo-actions/docker-run from 1 to 2