A couple of noteworthy features made it to this release:
- A parser for the NBFT table (per NVMe-oF boot specification v1.0).
The [Timberland SIG](https://github.com/timberland-sig) provided the code for this.
- Ignoring fabric connect attempts if the execution context doesn't match.
This feature allows to make different users of libnvme to coexist, e.g. nvme-cli, nvme-stas or blktests without trying
to manage the same resource
And as usual there are plenty of fixes all over the place.
A big thanks to contributions from Benjamin Drung, Caleb Sander, Hannes Reinecke, Jeremy Kerr, Lior Weintraub, Martin Belanger, Maurizio Lombardi, Steven Seungcheol Lee, Stuart Hayes, Tokunori Ikegami, Tomas Bzatek, Umer Saleem.
Benjamin Drung (1):
examples: Fix wrong indentation in discover-loop.py
Caleb Sander (3):
fabrics: handle /dev/nvme-fabrics read failure
fabrics: check genctr after getting discovery entries
ioctl: fix RAE bit on last Get Log Page command
Daniel Wagner (27):
tree: Fix argument check in nvme_bytes_to_lba
fabrics: Do not pass unsupported options to kernel
tree: Fix offset argument check in nvme_bytes_to_lba
build: Disable fallback on default
build: Update wrap mode defaults
build: Make json-c dependency lookup not fail
build: Extend summary section
build: Simple muon build configuration
doc: Update README
python: Update test data
ioctl: Explicitly initialize all members of struct nvme_ns_mgmt_args
build: Install missing s390 library
test: Add unit test for ctrl lookups
util: Add ignored error code
fabrics: Filter discovery ctrls out during application context check
tree: Ignore NULL address pointer for phy slot lookup
fabrics: Relax match on well known disc ctrl lookup
scripts: Move helper scripts to a central place
scripts: Call update doc script from top level dir
scripts: Sync release script
build: Move CI build steps into a scripts
scripts: Use spaces instead of tabs
util: Provide empty nvme_ipaddrs_eq for static builds
build: Use containers with matrix build
build: Update cross instruction and drop verbose test flag
build: Update version to v1.5
doc: Regenerate all docs for v1.5
Hannes Reinecke (3):
libnvme: add 'application' setting to the subsystem
libnvme: add 'application' setting to nvme_root
fabrics: filter out subsystems with non-matching application string
Jeremy Kerr (1):
mi: Add nvme_mi_ctrl_id to retrieve controller ID
Lior Weintraub (1):
examples: fix incorrect controller status in MI info output
Martin Belanger (12):
nbft: Doc typo - Use nvme_nbft_free() instead of nbft_free()
Python: Add NBFT support
NBFT: Remove documentation from nbft.c since it's also in nbft.h
Python: make NBFT data more pythonic
Python: Suppress swig warnings about unnamed struct
python/swig: Wrap swig-sensitive struct inside ifwdef SWIG
python/swig: Check swig version to determine whether -py3 is needed
Python: Fix crash during garbage collection
util: Add ipaddrs_eq() to check whether two IP addresses are equal
util: rename ipaddrs_eq() to nvme_ipaddrs_eq() and make public.
test: Add more code coverage for nvme_ipaddrs_eq()
tree: Use nvme_ipaddrs_eq() to compare IP addresses
Maurizio Lombardi (1):
fabrics: fix potential invalid memory access in __nvmf_supported_option()
Steven Seungcheol Lee (4):
types.h: Add FDP related Status Code
types: Add ns-mgmt host software specified fields
types: Add IO command set specific field on nsmgmt
ioctl: io management send, receive args fix
Stuart Hayes (1):
nbft: add NBFT v1.0 table support
Tokunori Ikegami (3):
fabrics: Add EADDRNOTAVAIL error mapping
util: Use HAVE_NETDB instead of HAVE_LIBNSS
json: Use memory block allocated by realloc() instead printbuf
Tomas Bzatek (4):
nbft: Move added symbols to LIBNVME_1_5
nbft: Add a simple unit test
nbft: Fix nbft_ssns_flags endianness test
nbft: Parse the {HOSTID,HOSTNQN}_CONFIGURED flags
Umer Saleem (1):
tree: Add PCI physical slot number for controller