)]}'
{
  "commit": "aa23ce8f013391abe1447fd5db699b33aa9cce4e",
  "tree": "d945c043f0a219fbe012ef37cc1274d3f8ee09c5",
  "parents": [
    "474d47a5bec0f78f3aaef1cf37979a3b1e4e4947"
  ],
  "author": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Tue Jun 16 04:14:51 2026 +0000"
  },
  "committer": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Tue Jul 28 10:59:32 2026 -0700"
  },
  "message": "nvme-cli: Bump SRCREV to 73d468229 and package libnvme-cli\n\nBump nvme-cli SRCREV to 73d468229cf2dfd2dd9f8c7c21406174f85b172d to\nsupport OOB set-feature commands. This version also includes the upstreamed\nfix for the MCTP open SIGSEGV (b/538280251).\n\nRe-adapt and fix 0001-add-libnvme_cli.patch to work with the bumped\nversion. Resolve compile errors caused by header decoupling by adding\nnecessary includes in print utilities and OCP/Solidigm plugins.\n\nCorrect packaging rules by prioritizing the main package ${PN} to ensure\nthe real library libnvme-cli.so is packaged in the main package, while\nunversioned symlink libnvme3.so is correctly assigned to the -dev package.\nRemove unused NetworkManager files.\n\nShortlog:\nAkhilesh RN (1):\n      linux: Update size when telemetry controller initiated data is unavailable\n\nAlexandr Goncharov (1):\n      tree: fix store uuid/nguid from sysfs\n\nAlfred Wingate (1):\n      build: remove symbol which doesn\u0027t exist in libnvme-mi.so\n\nAlistair Francis (1):\n      fabrics: set persistent when connecting to a discovery controller\n\nAnant Mashiana (2):\n      completions: added Solidigm plugin to autocomplete scripts\n      plugins/solidigm: Added extra VU fields to id-ctrl\n\nAndreas Hindborg (2):\n      Fix bug in `nvme_identify_iocs`\n      Fix a bug where CSI was not passed to to nvme_ns_mgmt\n\nAndrew Jeffery (1):\n      mi: Probe quirks on first command submission\n\nAndrew Meir (2):\n      Add support for codeql sweeps\n      Updates to codeql config\n\nAnkit Kumar (6):\n      types.h: Add missing enum for power state descriptor\n      types.h: add missing enum for optional admin command support\n      types.h: add missing enum for firmware updates\n      types.h: add missing description and enum for log page att\n      types.h: add missing enum for optional nvm command\n      types.h: add missing enum for format nvm attributes\n\nAnkit Soni (4):\n      types: added new fields in nvme_nvme_id_ns\n      build: update libnvme wrap\n      nvme-print: added new fields for nvm_id_ns\n      libnvme: add lockdown log page support(LID : 0x14)\n\nAnuj Gupta (1):\n      ioctl: nvme_uring_cmd add structure and opcodes\n\nArbaz Khan (3):\n      type: Added enums for ANSAN and RGCNS bit of OAES field\n      type: Using enums of ANSAN and RGCNS bit for OAES\n      types,util: Added Enums for missing status codes\n\nArno DUBOIS (1):\n      docs: add missing API types documentation\n\nArthur Shau (11):\n      plugins/ocp: Reorganize OCP plugin source code\n      plugins/ocp: Fix typos in Latency Monitor Log\n      plugins/ocp: Add missing fields in Latency Monitor Log\n      plugins/ocp: Fix endianness in Latency Monitor Log output\n      plugins/ocp: Add OCP set latency monitor feature command\n      plugins/ocp: Add telemetry-log command to OCP plugin\n      plugins/ocp: Rename FW activation history command\n      plugins/ocp: Fix printing order of various Latency Monitor Log buckets\n      ocp: Add Get DSSD Power State Feature (FID: C7h)\n      ocp: Switch OCP plugin to use semantic versioning\n      docs: Add missing OCP plugin docs to meson\n\nArunpandian J (35):\n      nvme: Add Media Unit Status log page(LID: 0x10)\n      Clean up Patch for types.h, ioctl.h\n      nvme: Add Supported Capacity Configuration List log page(LID: 0x11)\n      nvme: Add Enhanced Controller Meta Data(FID: 0x7D)\n      types: Added doc description for fields used\n      ioctl.h: Add description for fields used\n      linux: Streamline documentation\n      log: Fix whitespacing in documentation\n      tree: Add missing documentation\n      types.h: Add missing documentaion for all the log pages\n      types.h: doc update for ZNS structures\n      types: doc field update for NVM commands, Feature Identifiers\n      types: All MI command related structure doc field update\n      types: Add doc field for admin opcodes, FIDs, LIDs, Identify commands\n      types: Add doc section for enum fields\n      types: Add missing doc for ZNS, NVMe OF, NVMe command set\n      types: status code type value update as per NVMe specification\n      util: Add status code values in generic status to errno conversion\n      util: Congregate status code values to return EINVAL\n      util: Add status code values in order to return errno\n      types: Add missing doc field description\n      fabrics: Streamlining documentation\n      ioctl: Align arguments indentation with braces\n      test: print test logs for pass case\n      tests: Add tests for controller reset\n      plugins/ocp: Add Device capability(LID: 0xC4) log page\n      completions: Add bash completion for OCP Device capability(LID: 0xC4) log page\n      Documentation: Add document for OCP Device capability(LID: 0xC4) log page\n      doc: Fix typo in documentation\n      plugins/ocp: Add DSSD Power state feature(FID: C7h)\n      Documentation: Add document for DSSD Power state feature(FID: C7h)\n      completions: Add bash completion for DSSD Power state feature(FID: C7h)\n      completions: Add bash completions for telemetry string log page\n      Documentations: Add document for telemetry string log page\n      plugins/ocp: Add OCP Telemetry String log page, Telemetry log page\n\nBao Tran (1):\n      nvme-print: Split max power flags\n\nBean Li (1):\n      nvme: do not include meta data for PRACT\u003d1 and MD\u003d8 (version 2)\n\nBen Chuang (2):\n      util: Fixed nvme_id_ns_flbas_to_lbaf_inuse()\n      test: Add unit test for nvme_id_ns_flbas_to_lbaf_inuse()\n\nBen Reese (2):\n      Plugin: ScaleFlux Adding Status Command\n      ScaleFlux Plugin Cleanup AER Values\n\nBenjamin Drung (2):\n      doc: Fix spelling mistakes found by lintian\n      examples: Fix wrong indentation in discover-loop.py\n\nBoris Glimcher (19):\n      pyproject.toml instead of setup.py for new packaging\n      Add workflow to publish to PyPI and TestPyPI\n      Workflow: temporary disable publish to PyPI, starting with TestPyPI\n      CI: rename branch main to master\n      openssl: update to patch-3 to fix installation issue\n      test: adding dependency on pynvme\n      CI: add test for subproject fallbacks compilation\n      CI: add python wheel build in addition to source package\n      dist: add missing BuildRequires to spec file\n      rpm: add makefile rule for rpms\n      CI: fixing dist packaging error\n      readme: Add github badges\n      ci: add code coverage\n      ci: create first dependabot.yml\n      doc: add quickstart and installation\n      doc: update installation doc\n      build: use uuid wrap for fallback build\n      ci: add static library compilation\n      build: switch to new python meson backend\n\nBrando (1):\n      doc: Fixing compile instruction in README\n\nBrandon Capener (13):\n      build: fix spelling\n      build: initial windows support\n      build: remove unneeded windows check\n      linux: Add crypto.c and no-crypto.c with shims for methods implemented in linux.c Adds compatibility shims for linux.c methods when building on Windows.\n      build: remove default prefix option\n      build: include more source files in windows build\n      tree: split platform code into separate files\n      lib: add windows direct open transport handle support\n      tree: minor refactor of subsystem init\n      tree: add global context to libnvme_get_ctrl_transport\n      tree: add windows tree support\n      nvme: add windows support for rpmb hash functions\n      nvme: enable cli for windows build\n\nBrandon Paupore (31):\n      ioctl: Add Timeout Parameter for Zone Management Commands\n      types: Enable telemetry data area 4 in base\n      Add lbstm support for create-ns\n      Remove nvme_init_id_ns\n      libnvme: 64-bit Reference Tags and TP-4068 changes\n      types: Add support for the OAQD ID controller field\n      types: Support Phy Rx Eye Opening Measurement Log\n      nvme: Add support for the OAQD ID controller field\n      nvme: Fix for fdpa reserved field printing\n      nvme: Introduce nvme_realloc function\n      nvme: Spport Phy Rx Eye Opening Measurement Log\n      plugins/wdc: cleanup line lengths\n      plugins/wdc: enhanced SN861 device support\n      ioctl: MSB variable-size storage/reference tags\n      ocp: fix for power-state argument checking\n      ocp: support OCP 2.5 Set Telemetry Profile feature\n      ocp: support OCP DSSD Async Event Config feature\n      ocp: Unify line start spacing as tabs\n      plugins/ocp: underflow + index fixes for telemetry\n      wdc: add support for SNTMP drive\n      wdc: rework log retrieval and parsing\n      sndk: rework shared capabilities with wdc plugin\n      sndk: vs-internal-log udui support\n      wdc: invalid customer ID fix\n      ocp: fix Ext SMART log page version 5 checking\n      ocp: minor feature name fixes\n      plugins: update default telemetry retrieval DA\n      nvme-print: support PEL VS Events and Info\n      plugin: cleanup vs-internal-log documentation\n      nvme-print: expose PEL print functions\n      ocp: add Persistent Event log support\n\nBrenden Bain (2):\n      sed: fixing SID and MSID reporting\n      sed: clarifying SUM sed policy reporting\n\nBroc Going (84):\n      min: Cleaned up usage of MIN in favor of safer CCAN min.\n      mi: fix build with MI support disabled\n      lib: Give blkdev and chardev checks platform-agnostic names\n      fabrics: Made more includes conditional on fabrics support\n      nvme: Make mmap functionality conditional on mmap support\n      ioclt: Add libnvme wrapper for updating block size after format\n      json: Enables json printing and ocp plugin without fabrics\n      mem: implement allocation helpers for Windows\n      mem: implement huge page allocation APIs for Windows\n      private: include ifaddrs when needed\n      nbft: Moves public nbft methods from libnvme to libnvmf\n      util: add cross-platform compatibility for errno values.\n      nvme: return NVMe status codes for protocol errors\n      lib-types: introduce file descriptor abstraction\n      mem-win: Remove unneeded includes and definitions.\n      nvme: Use libnvme_free for all memory allocated with libnvme_alloc\n      ocp: Fix no-uuid parsing in ocp_clear_feature\n      ocp: Fix fw activation log error reporting for negative err values\n      micron-nvme: Use libnvme_alloc for log data buffers\n      micron-nvme: Fix telemetry log reading\n      micron-nvme: Fix vs-drive-info output format check\n      micron-nvme: Clean up vs-nand-stats\n      micron-nvme: Fix error reporting for commands that were failing silently\n      sighdl: Add windows compatibility for sighdl\n      amzn-nvme: Use signal if sigaction is not supported\n      common: Add compatibility wrappers for common functions.\n      util: Move get_entity_name and get_entity_version into util-fabrics.\n      mem-win: Disable Windows min/max macros in favor of project solutions\n      nvme-print-json: Replace uint with __u32\n      endian: Remove redundant _WIN64 check\n      micron-nvme: Add support for telemetry data area 4\n      micron-nvme: Fix unchecked string copies of path strings\n      ocp: Fix ocp internal-log output-format handling\n      ioctl: Add Windows ioctl support\n      check-public-symbols: Update text reading to work on Windows also\n      ibm-nvme: Use memset instead of bzero for standard compatibility\n      plugins: Fix casting errors when using unsigned long\n      ocp-nvme: Replace fstat checking of S_ISBLK with built-in check\n      log: Add Windows compatibility for __libnvme_msg formatting\n      util: Add compatibility for libnvme_random_uuid\n      fdp: Remove unused linux/fs.h include\n      nvme-print: Fix nvme_bar_cap cps field alignment\n      top: Make top a conditional feature and disable by default on Windows\n      common: Add cross-platform wrapper for opening raw data files\n      nvme: Add O_BINARY setting to stderr and stdout on Windows\n      ioctl-win: Update sanitize implementation to use new ioctl\n      ioctl-win: Assert ctrl handle for Windows format nvm\n      micron: Clean up formatting and remove unneeded macros\n      micron: Add cross-platform support for getting drive model\n      micron: Add cross-platform handling of PCIe correctable errors.\n      micron: Add platform-specific GetOSConfig implementations\n      micron: Add .zip file support and fix rm errors on Windows\n      micron: Update plugin version to 2.1.0\n      micron: Fix command injection vulnerabilities\n      solidigm: Apply fixes to allow compilation on Windows\n      micron: Fix buffer overflow vulnerabilities\n      micron: Fix possible NULL pointer dereference issues\n      micron: Fix temp directory access security\n      nvme: Open files using nvme_open_rawdata to fix Windows issues\n      ioctl-win: Implement reset_ctrl_device using a PnP-level reset.\n      tests: Add is_windows check and skip unsupported tests on Windows\n      tests: Configure PATH for tests in a platform-agnostic way.\n      tests: Update get features test base on Windows capabilities\n      test-uint128: Update tostr_test locale handling to be Windows compatible\n      test: Update build configuration to support testing on Windows\n      tests/plugins: Expand testing framework to support plugin tests\n      tests: Add linting support for all python files recursively under tests.\n      nvme_test: Update run_ns_io to be platform agnostic.\n      plugins: Add build support on Windows\n      build: Add statically-linked build support for Windows.\n      build: Copy libnvme DLL for running and testing Windows shared builds\n      readme: Add readme section on Windows build and environment setup script\n      nvme-print: Update generic name listing to be platform independent\n      pci-ids: Add nvme-pci-ids for cross-platform reading of IDs\n      nvme-models: Update product name detection to use nvme-pci-ids\n      micron: Use new nvme-pci-ids to get PCI IDs\n      tests/micron: Add vs-internal-log tests for micron plugin.\n      micron: Fix vs-internal-log return value on error\n      tests/micron: Add micron vs-temperature-stats tests and fix command\n      tests/micron: Add micron vs-pcie-stats tests and fix command issues\n      tests/micron: Add micron clear-pcie-correctable-errors tests\n      micron: Fix vs-pcie-stats output-format handling\n      tests/micron: Add micron vs-drive-info tests\n      nvme: Add nvme args support for different supported output formats\n\nBrooke Ellis (4):\n      nbft: fix sizeof operand mismatch in pointer array allocations\n      plugins/wdc: fix typed malloc size expressions for log buffers\n      nbft: fix missing error checks for ftell() and rewind()\n      test: replace rewind() with fseek() to enable error detection\n\nBryan Gurney (1):\n      nvme: set eds to true if controller supports 128 bit hostid\n\nCaleb Sander (57):\n      json_discovery_log: avoid buffer overrun\n      nvme-print: Fix printing of u32 values\n      fabrics: handle /dev/nvme-fabrics read failure\n      fabrics: check genctr after getting discovery entries\n      nvmf-autoconnect: restart service to avoid dropping AEN\n      ioctl: fix RAE bit on last Get Log Page command\n      nvme-print: fix argument order for show functions\n      fabrics: only look for matching ctrl on same host\n      test: add infra for mocking passthru ioctls\n      test: add discovery log page tests\n      build: clean up version script\n      ioctl: remove nsid from nvme_identify_secondary_ctrl_list()\n      test: pass a large enough buffer to nvme_identify_ns_descs()\n      ioctl: use available Identify helper functions\n      test: add tests for Identify functions\n      fabrics: only look for spaces in strchomp()\n      fabrics: unconditionally strip discovery entry strings\n      test: account for discovery log page entry stripping\n      ioctl: correct feature IDs in Get/Set Features commands\n      ioctl: set correct bits in Set Features commands\n      ioctl: pass data for Get/Set Features commands\n      ioctl: avoid sending uninitialized timestamp\n      ioctl: don\u0027t set SAVE bit on unsaveable features\n      ioctl: pass ENDGID in nvme_get_features_endurance_event_cfg()\n      ioctl: export nvme_{g,s}et_features_iocs_profile()\n      ioctl: fix swapped parameters in nvme_set_features_host_id()\n      ioctl: pass NSID in Get/Set Features commands that use it\n      ioctl: implement nvme_set_features_lba_range()\n      test: add tests for Get/Set Features functions\n      fabrics: use SECTYPE to determine whether to use TLS\n      readme: clarify that LD_PRELOAD is not needed for ASAN\n      readme: add instructions for enabling UBSAN\n      test: make LD_PRELOAD tests work with ASAN\n      test: don\u0027t pass NULL to memcmp() or memset()\n      nbft: Avoid unaligned pointer dereferences\n      test: Avoid unaligned pointer dereferences\n      types: Cast values to u32 if shift overflows int\n      mi: Cast values to u32 if shift overflows int\n      test: Cast values to u32 if shift overflows int\n      types: add Host Behavior Support field definitions\n      print-stdout: print Host Behavior Support correctly\n      fabrics: clear RAE for discovery log page commands\n      fabrics: avoid redundant Get Log Page on retry\n      fabrics: fetch smaller Discovery Log Page header\n      fabrics: have nvmf_get_discovery_log() call nvmf_get_discovery_wargs()\n      fabrics: avoid redundant args in nvme_discovery_log()\n      libnvme-wrap: exit on VOID_FN lookup failure\n      tree: fix incorrect return value\n      cleanup: add cleanup functions\n      tree: use cleanup functions\n      fabrics: use cleanup functions\n      json: use cleanup functions\n      linux: use cleanup functions\n      util: use cleanup functions\n      cleanup: remove unused cleanup_charp()\n      nvme: simplify cleanup_nvme_dev()\n      nvme: Remove unused cfg argument from NVME_ARGS() macro\n\nCaleb Sander Mateos (37):\n      sysfs: minimize heap allocations of sysfs paths\n      test: use diff to compare sysfs output\n      nvme-wrap: remove unused nvme_cli_get_log_ana_groups()\n      ioctl: fix nvme_get_log_ana_groups() pointer type\n      ioctl: respect rae in nvme_get_log_ana()\n      ioctl: replace nvme_ana_rsp_hdr in doc comments\n      ioctl: add support for atomic, piecewise ANA log fetch\n      test: support returning shorter buffer in mock ioctl\n      test: log mock ioctl command fields in hexadecimal\n      test: add mock ioctl tests for atomic ANA log fetch\n      libnvme: export nvme_mi_admin_get_ana_log_atomic()\n      linux: add nvme_get_ana_log_len_from_id_ctrl()\n      build: update libnvme wrap\n      nvme: fix maximum ANA log page length calculation\n      nvme: use libnvme\u0027s atomic ANA log page fetch\n      test: add test cases for argconfig option values\n      test: add test cases for argconfig comma-separated array parsing\n      util: remove argconfig CFG_SIZE type\n      util: remove argconfig_parse_val() declaration\n      util: make argconfig_set_opt_val() a void function\n      util: use cleanup to avoid goto in argconfig_parse()\n      util: remove redundant NULL check in argconfig_print_help()\n      util: inline argconfig_parse_byte()\n      util: remove redundant cast in argconfig_parse_type()\n      util: remove unnecessary parentheses in argconfig_parse_type()\n      util: remove empty default case in argconfig functions\n      util: reduce arguments passed to argconfig_parse_type()\n      util: reduce complexity of argconfig_parse_val()\n      util: consolidate call paths to argconfig_parse_type()\n      util: reduce allocation sizes in argconfig_parse()\n      util: introduce is_null_or_empty() to avoid strlen()\n      util: remove redundant loop condition in argconfig_parse()\n      util: avoid duplication in argconfig_parse_comma_sep_array*()\n      nvme: use argconfig_parse_comma_sep_array_u16() in attach-ns\n      util: remove unnecessary NULL check in cleanup_nvme_root()\n      nvme: avoid unnecessary dup() + close() in io_mgmt_send()\n      fabrics: remove unused _discover_from_json_config_file() argument\n\nCarl Moran (2):\n      plugins/wdc: fix json output for vs-nand-stats\n      plugins/wdc: json output format not actually json\n\nChaitanya Kulkarni (6):\n      libnvme: code cleanup src/nvme/fabrics.c\n      libnvme: code cleanup src/nvme/filters.c\n      libnvme: code cleanup src/nvme/ioctl.c\n      libnvme: code cleanup src/nvme/tree.c\n      libnvme: code cleanup src/nvme/util.c\n      nvme/types.h: avoid using anon enums\n\nChaithanya shoba (2):\n      plugins/micron: Add support for OCP telemetry log parsing\n      plugins/micron: Move OCP internal log parsing from Micron to OCP Plugin.\n\nChangqing Li (1):\n      mock.c: fix checking of HAVE_GLIBC_IOCTL\n\nChris Leech (4):\n      nvmf-keys: udev rule should be using /etc/nvme\n      linux: TLS PSK derivation fixes\n      libnvme: TLS PSK derivation fixes\n      linux: fix HKDF TLS key derivation back to OpenSSL 3.0.8\n\nChris Patterson (1):\n      types: fix regression for vendor-specific field in nvme_id_ns\n\nChristophe Vu-Brugier (1):\n      doc: fix minor mistake in README.md about dependencies\n\nChuck Horkin (7):\n      prefix: Use Request or Response Length in DLEN and DOFF for MI\n      mi_xfer: Added nvme_mi_mi_xfer API\n      mi: Add support for multiple csi buffers\n      mi: Introduce asynchronous event message handling\n      mi: Additional define options for older systems with SIOCMCTPALLOC\n      mi:     nvme_mi_mi_xfer() is overly restrictive\n      mi-mctp: Fix compile bug in test/mi-mctp.c when !HAVE_LINUX_MCTP_H\n\nClayton Craft (1):\n      tree: support apple-nvme transport\n\nDaniel Néri (3):\n      nvme-print: add fallback for non-standard locale category\n      plugins/netapp: add include of libgen.h for basename(3) prototype\n      examples: remove unnecessary include of \u003cbits/pthreadtypes.h\u003e\n\nDaniel Wagner (1663):\n      fabrics: Refactor uuid_from_device_tree\n      pynvme: Add install target to Makefile\n      libnvme.map: Sort global export section\n      libnvme.map: Add missing exports for nvme-cli\n      Makefile: Install log.h header file\n      libnvme.map: Add nvme_get_attr\n      Merge pull request #52 from igaw/build-meson\n      Merge pull request #47 from hreinecke/cleanup-sym\n      Merge pull request #48 from hreinecke/dump-config\n      Merge pull request #50 from hreinecke/csi\n      build: Add meson CI workflow\n      fabrics: Do not overflow when reading systemd_uuid\n      Merge pull request #61 from jk-ozlabs/cross\n      Merge pull request #56 from igaw/meson-ci\n      fabrics: Remove \u0027UUID derived from machine-id\u0027 feature\n      build: Allow subproject meson builds\n      Merge pull request #64 from igaw/meson-subproject\n      build: Set minimum version for json-c\n      Merge pull request #66 from jk-ozlabs/fixes\n      build: Split libtool versioning from project versioning\n      Merge pull request #67 from igaw/libjson-c-min-version\n      Merge pull request #69 from birkelund/meson-fixes\n      Merge pull request #68 from igaw/set-lib-version\n      build: Add fallback dependency for json-c\n      Merge pull request #70 from igaw/fallback-json-c\n      Merge pull request #71 from martin-belanger/update-python-examples\n      Merge pull request #73 from martin-belanger/fix-python-dependency\n      build: Add missing json-c.wrap\n      Merge pull request #8 from birkelund/types\n      Merge pull request #78 from igaw/json-c.wrap\n      Merge pull request #77 from jk-ozlabs/ccan-fix\n      Merge pull request #79 from birkelund/meson-install-missing-header\n      libnvme.map: Expose symbols for Python binding\n      Merge pull request #75 from jk-ozlabs/fixes\n      Merge pull request #81 from igaw/fix-python-lib\n      ccan: Add *.c files to the build\n      Merge pull request #60 from martin-belanger/add-init-method\n      Merge pull request #86 from birkelund/fix-virt-mgmt\n      Merge pull request #87 from martin-belanger/add-python-testsv2\n      Merge pull request #83 from igaw/ccan-build-c-files\n      Merge pull request #89 from martin-belanger/rm-duplicate-line\n      Merge pull request #93 from tbzatek/docs-updates-4\n      Merge pull request #98 from martin-belanger/fix-iface-offset\n      Merge pull request #101 from sc108-lee/fix/id_psd\n      Merge pull request #106 from hreinecke/fixes\n      types: Add Identify CNS 0x18 Domain List Support\n      ioctl: Fix rae parameter order in __nvme_get_log\n      types: nvme_id_ns rsvd area modified as lbaf fields\n      build: Remove meson help text from meson.build\n      build: Adopt libsystemd versioning scheme\n      Merge pull request #94 from igaw/merge-nvme-cli-monolithic\n      build: Update json-c dependencies\n      workflows: Don\u0027t install libjson-c-dev\n      Merge pull request #107 from igaw/update-json-c-dep\n      build: Lower json-c dependencies\n      workflows: Install libjson-c-dev\n      Merge pull request #103 from minwooim/for-chrdev-name\n      build: Update json-c.wrap\n      build: Rename config.h to libnvme-config.h\n      Merge pull request #116 from igaw/update-json-c-wrap\n      build: Set include dirs when buidling configurator\n      Merge pull request #117 from igaw/update-json-c-wrap\n      Merge pull request #119 from minwooim/for-fix-chrdev-to-generic\n      build: Do not use the configurator for meson\n      Merge pull request #126 from igaw/drop-configurator\n      Merge pull request #131 from sc108-lee/fix/json-c\n      Merge pull request #130 from sc108-lee/remove/unused_doc\n      Merge pull request #129 from martin-belanger/document-sanitize-address\n      build: Enable ccan debug code for debug build\n      Merge pull request #137 from tbzatek/fabrics-fixes-2\n      Merge pull request #138 from tbzatek/fabrics-fixes-3\n      Merge pull request #142 from sc108-lee/add_map\n      Merge pull request #141 from igaw/ccan-debug-build\n      Merge pull request #143 from sc108-lee/tp4076\n      Merge branch \u0027pel_header_fix\u0027\n      types: Add documentation to enum nvme_csi\n      ioctl: Add Offset Type to get_log_page()\n      Merge pull request #144 from igaw/add_get_log_page_fields_2.0\n      types: Add Controller Metadata and Namespace Metadata\n      Merge pull request #147 from sc108-lee/add/gitignore\n      Merge pull request #146 from igaw/add-ctrl-metadata-and-ns-metadata\n      fabrics: Declare loop index at the beginning of the block\n      Merge pull request #153 from igaw/build-fix-fabrics\n      util: Define inline function as static inline\n      Merge pull request #156 from igaw/build-static-inline\n      lib: Resort libnvme.map\n      build: Avoid including wrong config.h as subpackage\n      build: Use _dep postfix for all dependency objects\n      build: Set C dialect and warning level\n      Merge pull request #159 from igaw/build-cleanups\n      Merge pull request #155 from martin-belanger/replace-make-by-meson\n      build: Remove unused configurator\n      Merge pull request #162 from igaw/build-cleanup-makefile-drop\n      linux: Add nvme_get_logical_block_size()\n      linux: Add support to generate DH-HMAC-CHAP keys\n      Merge pull request #158 from igaw/nvme_gen_dhchap_key\n      Merge pull request #151 from igaw/logical-block-size\n      build: Remove in-tree config files from gitignore\n      build: Detect if Python.h header is present\n      Merge pull request #163 from igaw/build-check-python-devel\n      build: Fix *.wrap exclude pattern in .gitignore\n      build: Remove more in tree build artifacts\n      Merge pull request #167 from martin-belanger/fix-the-docs\n      libnvme.map: Export nvme_io\n      Merge pull request #150 from hreinecke/api-rework\n      ioctl: Remove declration of nvme_set_features_iocs_profile()\n      Merge pull request #172 from hreinecke/host_traddr\n      ioctl: Rearrange members in nvme_identify_args\n      ioctl: Rearrange members in nvme_get_log_args\n      ioctl: Rearrange members in nvme_set_features_args\n      ioctl: Rearrange members in nvme_get_features_args\n      ioctl: Rearrange members in nvme_format_nvm_args\n      ioctl: Rearrange members in nvme_ns_mgmt_args\n      ioctl: Rearrange members in nvme_ns_attach_args\n      ioctl: Rearrange members in nvme_fw_download_args\n      ioctl: Rearrange members in nvme_fw_commit_args\n      ioctl: Rearrange members in nvme_security_send_args\n      ioctl: Rearrange members in nvme_security_receive_args\n      ioctl: Rearrange members in nvme_get_lba_status_args\n      ioctl: Rearrange members in nvme_directive_send_args\n      ioctl: Rearrange members in nvme_directive_recv_args\n      ioctl: Rearrange members in nvme_capacity_mgmt_args\n      ioctl: Rearrange members in nvme_lockdown_args\n      ioctl: Rearrange members in nvme_set_property_args\n      ioctl: Rearrange members in nvme_get_property_args\n      ioctl: Rearrange members in nvme_sanitize_nvm_args\n      ioctl: Rearrange members in nvme_virtual_mgmt_args\n      ioctl: Rearrange members in nvme_io_args\n      ioctl: Rearrange members in nvme_dsm_args\n      ioctl: Rearrange members in nvme_copy_args\n      ioctl: Rearrange members in nvme_resv_acquire_args\n      ioctl: Rearrange members in nvme_resv_register_args\n      ioctl: Rearrange members in nvme_resv_release_args\n      ioctl: Rearrange members in nvme_resv_report_args\n      ioctl: Rearrange members in nvme_zns_mgmt_send_args\n      ioctl: Rearrange members in nvme_zns_mgmt_recv_args\n      ioctl: Rearrange members in nvme_zns_append_args\n      log: Introduce libnvme error codes\n      Merge pull request #173 from igaw/add-error-codes\n      Merge pull request #171 from igaw/struct-layout-v2\n      Merge pull request #108 from hreinecke/scan-rework\n      ioctl: Set provided timestamp nvme_set_features_timestamp\n      tree: Skip invalid pointer when scanning topology\n      Merge pull request #175 from igaw/fix-tests\n      build: Add __nvme_msg back to exported symbols\n      Merge pull request #176 from igaw/fix-exports\n      Merge pull request #180 from sc108-lee/fix/ssl\n      linux: Include missing stddef.h\n      Merge pull request #183 from igaw/add-missing-stddef\n      Merge pull request #164 from sc108-lee/add/flbas_to_lbaf_inuse\n      Merge pull request #185 from martin-belanger/ccan-static-lib\n      src: Use PRIu64 format specifier for uint64 types\n      Merge pull request #157 from Arunpandian15/Media_Unit_Status_Log_Page\n      Merge pull request #191 from hreinecke/tls\n      ioctl: Initialize all members in nvme_get_log_args\n      Merge pull request #192 from igaw/fix-nvme_get_log_args\n      Merge pull request #201 from Arunpandian15/types_h_cleanup\n      ioctl: Set errno when command args check fails\n      util: Set errno in error case nvme_get_directive_receive_length\n      ioctl: Fix struct nvme_get_log_args memberm alignment\n      ioctl: Sort members their natural size\n      linux: Rename __nvme_get_log_page()\n      libvnme: Remove\t__nvme_msg from export map\n      Merge pull request #207 from igaw/rename-__nvme_get_log_page\n      Merge pull request #205 from igaw/fix-64bit-alignment\n      Merge pull request #214 from hreinecke/kdoc\n      Merge pull request #217 from martin-belanger/fix-license\n      Merge pull request #215 from hreinecke/regen-doc\n      Merge pull request #211 from hreinecke/config-errors\n      Merge pull request #199 from Arunpandian15/Supported_Cap_Config_List_Log_Page\n      Merge pull request #224 from Arunpandian15/Enhanced_ctrl_MD\n      Merge pull request #166 from sc108-lee/for-upstream/tp4095\n      doc: Remove unused make.bat file\n      tree: Remove doublicated declaration\n      types: Fix doc description\n      doc: Mesonize documentation generation\n      doc: Fix sphinx setup\n      doc: Regenerate all documentation\n      Merge pull request #222 from igaw/mesonize-doc\n      build: Make CI build fail on warnings\n      Merge pull request #225 from igaw/fail-on-warnings\n      Merge pull request #223 from hreinecke/json-mandatory\n      Merge pull request #213 from jeffreyalien/telemetry-da4-2\n      build: Add kernel-doc CI build\n      Merge pull request #226 from linux-nvme/kernel-doc-ci\n      tree: Remove dead !LIBUUID code\n      Merge pull request #227 from igaw/cleanup-libuuid-dep\n      Merge pull request #221 from hreinecke/dump-tree\n      tree: Remove CONFIG_JSONC ifdefs\n      Merge pull request #230 from sc108-lee/fix/io_cmd\n      tree: Fix memleaks in __nvme_free_ns() and nvme_scan_subsystem()\n      build: make Python memory allocations valgrind friendly\n      Merge pull request #233 from igaw/fix-mem-leak\n      Merge pull request #238 from samiWaheed/master\n      Merge pull request #239 from hanumanthuh/master\n      Merge pull request #237 from Arunpandian15/cleanup_Description\n      Merge pull request #234 from jeffreyalien/uuidx-parm\n      Merge pull request #242 from Arunpandian15/doc_update\n      Merge pull request #245 from Arunpandian15/cleanup_17\n      Merge pull request #249 from AkhileshRN/telemetry_ctlr\n      Merge pull request #247 from Arunpandian15/types_h_doc_field\n      log: Allow nvme_msg usage with invalid root pointer\n      Merge pull request #246 from igaw/fix-nvme_msg\n      Merge pull request #250 from Arunpandian15/types_h_doc_21\n      Merge pull request #248 from igaw/tp8010-support-refactored\n      Merge pull request #252 from Arunpandian15/doc_mi\n      fabrics: add default port number for NVMe/TCP I/O controllers\n      Merge pull request #253 from igaw/port-default-port-for-discovery\n      doc: Do not precomple HTML doc anymore\n      doc: Regenerate all documentation\n      build: Use boolean type for docs-build default\n      Merge pull request #254 from Arunpandian15/mi_types\n      Merge pull request #255 from Arunpandian15/types_doc_24\n      Merge pull request #256 from Arunpandian15/doc_types_25\n      Merge pull request #258 from Arunpandian15/types_doc_28\n      Merge pull request #261 from martin-belanger/move-ccan-out-of-public-headers\n      Merge pull request #262 from Arunpandian15/util_01\n      Merge pull request #259 from Arunpandian15/fix_sct\n      Merge pull request #257 from glimchb/setuptools\n      Merge pull request #266 from glimchb/actionbranch\n      fabrics: Do not swap bytes for system uuid\n      Merge pull request #264 from igaw/fix-system-uuid\n      tree: Ignore traddr case in nvme_lookup_ctrl()\n      Merge pull request #270 from igaw/fix-pel\n      Merge pull request #269 from Arunpandian15/util_sc_02\n      Merge pull request #267 from igaw/traddr-case-insesitive\n      Merge pull request #272 from Arunpandian15/sc\n      build: Depend on libssl when using the fallback dependency\n      Merge pull request #273 from igaw/fix-libssl-dep\n      Merge pull request #236 from birkelund/meson-fixes\n      linux: Include private.h\n      linux: Add log.h back\n      doc: Regenerate all documentation\n      Merge pull request #274 from sc108-lee/status_code_type\n      Merge pull request #275 from Arunpandian15/types_05\n      Merge pull request #277 from glimchb/openssl\n      Merge pull request #278 from sc108-lee/list_ns\n      Merge pull request #280 from glimchb/test\n      Merge pull request #281 from glimchb/opensslci\n      Merge pull request #282 from glimchb/wheel2\n      doc: Regenerate all documentation\n      Merge pull request #289 from glimchb/rpm\n      fabrics: Allow to change sysconfdir for hostnqn and hostid file\n      Merge pull request #294 from hreinecke/disc-ttrsvcid\n      Merge pull request #293 from igaw/fix-sysconfdir\n      Merge pull request #290 from glimchb/rpm\n      tree: Add support for default trsvcid for all controllers\n      fabrics: Correctly stringify default hostnqn and hostid paths\n      Merge pull request #297 from igaw/fix-stringify-hostnqn\n      doc: Provide SYSCONFDIR without quotes\n      Merge pull request #301 from Arunpandian15/doc_20\n      Merge pull request #299 from tbzatek/covscan-fixes-1\n      Merge pull request #302 from martin-gpy/update_log_level\n      Merge pull request #304 from tbzatek/init-subsystem-1\n      fabrics: Avoid out of bounds string chomping\n      Merge pull request #309 from tbzatek/init-subsystem-2\n      Merge pull request #311 from glimchb/ci\n      Merge pull request #313 from glimchb/badges\n      Merge pull request #314 from glimchb/codecov\n      Merge pull request #310 from igaw/nvme_chomp\n      Merge pull request #292 from tbzatek/errno-fixes-1\n      Merge pull request #306 from jeffreyalien/nvme-2.0-2\n      fabrics: Free old traddr in nvmf_add_ctrl\n      Merge pull request #308 from Arunpandian15/tests_23_03\n      Merge pull request #315 from igaw/fix-host-traddr-free\n      Merge pull request #307 from bjpaupor/lbstm\n      Merge pull request #318 from hreinecke/display-tree\n      ioctl: Remove attribute packed and alignedof for args structs\n      Merge pull request #325 from martin-belanger/fix-dim-tas\n      Merge pull request #321 from igaw/remove-packed-attribute\n      doc: Regenerate all documentation\n      Merge pull request #331 from jk-ozlabs/fixes\n      tree: Remove default port setting for TCP and RDMA ports\n      Merge pull request #333 from jk-ozlabs/fixes\n      Merge pull request #332 from linux-nvme/fix-discovery-tcp-port\n      doc: Regenerate all documentation\n      build: Add git ref to the binary\n      doc: Build ReST documantion as standalone target\n      ci: publish only sdist on PyPi\n      Merge pull request #339 from igaw/pypi-sdist-only\n      Merge pull request #343 from igaw/build-rst-doc\n      Merge pull request #337 from nekopsykose/scope-delimiter\n      Merge pull request #341 from glimchb/dep\n      Merge pull request #338 from TotalCaesar659/patch-1\n      Merge pull request #348 from linux-nvme/dependabot/github_actions/actions/upload-artifact-3\n      Merge pull request #347 from linux-nvme/dependabot/github_actions/actions/setup-python-3\n      Merge pull request #346 from linux-nvme/dependabot/github_actions/codecov/codecov-action-3\n      Merge pull request #345 from linux-nvme/dependabot/github_actions/actions/checkout-3\n      Merge pull request #342 from cions/fix-cxx11-narrowing\n      Merge pull request #344 from glimchb/doc\n      util: add function to retrieve version information\n      fabrics: Lower log level in __nvmf_add_ctrl\n      Merge pull request #351 from igaw/fix-log-level\n      fabrics: Remove double connection error logging\n      Merge pull request #352 from igaw/fix-log-level\n      Merge pull request #350 from glimchb/doc\n      Merge pull request #340 from igaw/add-git-version\n      Merge pull request #354 from eli-schwartz/uuid_h-name\n      Merge pull request #349 from glimchb/master\n      Merge pull request #357 from t-8ch/host_mem_buf-feature-length\n      Merge pull request #359 from glimchb/master\n      Merge pull request #360 from martin-gpy/nvme_config_segfault\n      licenses: Remove old dir from initial ccan import\n      log: Change license to LGPL-2.1-or-later\n      treewide: Add SPDX identifier\n      meson: Use SPDX identifier as license text\n      libnvme: Export nvme_ctrl_get_config\n      tree: Factor lookup code for controller\n      fabrics: Consider config from file when adding new controller\n      Merge pull request #358 from jeffreyalien/tp-4068-4084\n      Merge pull request #363 from igaw/apply-file-config\n      Merge pull request #362 from ankit-sam/master\n      fabrics: Introduce connection connect error mapping\n      Merge pull request #366 from sc108-lee/export-symbol\n      Merge pull request #365 from jeffreyalien/master\n      Merge pull request #353 from igaw/introduce-connection-error-mapping\n      Merge pull request #371 from CodeConstruct/optional-cxx\n      Merge pull request #370 from ankit-sam/master\n      Merge pull request #372 from CodeConstruct/32-bit\n      Merge pull request #76 from jk-ozlabs/mi\n      ioctl: Add inline to nvme_identify_cns_nsid and nvme_get_log_ana\n      Merge pull request #379 from igaw/fix-libnvme-mi-build\n      fabrics: restructrure nvmf_get_discovery_log\n      doc: move update instruction into template\n      doc: update Python binding documentation\n      README: add note about min kernel version\n      Merge pull request #380 from igaw/add-kernel-dep-note\n      ci: add python version to setup-python environment\n      Merge pull request #381 from igaw/add-version-to-setup-python\n      Merge pull request #376 from linux-nvme/dependabot/github_actions/actions/setup-python-4\n      Merge pull request #375 from hreinecke/subsys-ns-lookup\n      Merge pull request #383 from jeffreyalien/stc-control-bit-fix\n      Merge pull request #384 from CodeConstruct/api-types\n      Merge pull request #386 from CodeConstruct/mi\n      Merge pull request #387 from jeffreyalien/master\n      Merge pull request #388 from CodeConstruct/conf-host-endian-fix\n      Merge pull request #391 from CodeConstruct/mi\n      Merge pull request #389 from CodeConstruct/powerpc\n      Merge pull request #392 from CodeConstruct/mi+admin\n      doc: Add kernel-doc to header files\n      Merge pull request #390 from igaw/update-doc\n      test: Remove code dependency for mi test\n      Merge pull request #397 from igaw/fix-coderage-report\n      Merge pull request #398 from hreinecke/ctrl-auth\n      Merge pull request #399 from CodeConstruct/mi-kdoc\n      Merge pull request #402 from CodeConstruct/mi-kdoc\n      Merge pull request #400 from CodeConstruct/mi-test-ep-init\n      Merge pull request #403 from CodeConstruct/mi-cov-visibility\n      Merge pull request #396 from CodeConstruct/mi+scan\n      Merge pull request #405 from CodeConstruct/mi-h\n      doc: Workaround kenrel-doc code scanner\n      Merge pull request #406 from CodeConstruct/mi-ep-scan\n      Merge pull request #409 from sc108-lee/libsystemd\n      Merge branch \u0027mi-mctp-test\u0027 of https://github.com/CodeConstruct/libnvme\n      Merge pull request #410 from CodeConstruct/mi+mpr\n      Merge pull request #413 from CodeConstruct/not-cascading-style-sheets\n      Merge pull request #415 from CodeConstruct/mi-config\n      Merge pull request #418 from CodeConstruct/mi-retvals\n      Merge pull request #378 from igaw/fix-nvmf_get_discovery_log\n      nvme: Fix typos in header files\n      nvme: Whitespace cleanups in header files\n      nvme: More whitespace cleanup reported by checkpatch\n      Merge pull request #419 from igaw/spell-checking\n      Merge pull request #421 from martin-belanger/eflag-1\n      Merge pull request #422 from martin-belanger/eflag-2\n      build: Add workflow to create release from tags\n      Merge pull request #416 from CodeConstruct/kdoc-test\n      build: Add release automation script\n      Merge pull request #424 from igaw/add-release-script\n      Merge pull request #423 from martin-belanger/eflag-3\n      build: Explicitly check return values when using run_command\n      Merge pull request #427 from CodeConstruct/docs\n      Merge pull request #428 from igaw/fix-doc-build\n      Regenerate all documentation\n      Release v1.1-rc0\n      Merge pull request #432 from CodeConstruct/mi-timeout\n      workflow: Only publish proper releases to PyPI\n      build: Support release candidate version strings\n      build: Update release version rules\n      build: Update version before regenerating docs\n      Merge pull request #435 from martin-belanger/add-missing-attrs-to-python\n      Merge pull request #436 from CodeConstruct/mi-glp\n      Merge pull request #414 from sc108-lee/rpm\n      build: Add support to build against LibreSSL\n      Merge pull request #439 from igaw/add-libressl-support\n      ioctl: Honor rae in nvme_get_nsid_log\n      build: Drop -nostdinc for LibreSSL header checks\n      Merge pull request #441 from igaw/drop-nostdinc-libressl\n      Merge pull request #443 from martin-gpy/dump_output\n      Merge pull request #440 from igaw/fix-rae-users\n      Merge pull request #442 from ismaell/posix\n      Merge pull request #449 from tbzatek/errno-fixes-2\n      Merge pull request #450 from hreinecke/json-sync\n      Regenerate all documentation\n      Merge pull request #433 from igaw/build-support-pypi-rc-uploads\n      util: Add LINE_MAX define\n      Merge pull request #453 from igaw/add-line-max-define\n      build: Extend release script to support micro version releases\n      Merge pull request #457 from CodeConstruct/mi+admin\n      Merge pull request #458 from CodeConstruct/mi-mtu-conf\n      Merge pull request #460 from CodeConstruct/mpr\n      Merge pull request #461 from hreinecke/dhchap-templating.v2\n      Merge pull request #463 from martin-gpy/authkey_unavailable_segfault\n      doc: Install pre-compiled man pages to the correct path\n      Merge pull request #464 from igaw/fix-man-page-dir\n      docs: Relax regex in identifier match in list-man-pages.sh\n      Merge pull request #465 from martin-gpy/update_schema\n      Merge pull request #469 from CodeConstruct/action-warn-fix\n      Merge pull request #470 from linux-nvme/dependabot/github_actions/actions/checkout-3\n      Merge pull request #473 from martin-belanger/add-lsp-to-get-dlp4\n      Merge pull request #476 from martin-belanger/add-tp8010-defs\n      Merge pull request #480 from CodeConstruct/dev/mi-id-secondary\n      Merge pull request #481 from CodeConstruct/dev/mi-status\n      Merge pull request #479 from CodeConstruct/dev/ci-cross\n      Merge pull request #484 from CodeConstruct/dev/mi-symvers\n      Merge pull request #482 from CodeConstruct/dev/mi-firmware\n      Merge pull request #483 from martin-belanger/add-pleo-support\n      Merge pull request #486 from martin-belanger/add-pleo-support-py\n      Merge pull request #487 from martin-belanger/eliminate-empty-arguments\n      Merge pull request #488 from martin-belanger/fix-examples\n      json: Enforce correctly formatted JSON config files\n      json: Verify JSON config file starts with an array\n      Merge pull request #489 from drakedog2008/description\n      Merge pull request #493 from maurizio-lombardi/memleak\n      Merge pull request #491 from igaw/harden-json-parser\n      Merge pull request #499 from CodeConstruct/pr/log-page\n      fabrics: Use fallthrough statement\n      Merge pull request #494 from ikegami-t/set-feature-0dh\n      Merge pull request #501 from safl/mk\n      Merge pull request #502 from CodeConstruct/pr/mi-status\n      Merge pull request #503 from CodeConstruct/pr/mi-conf-err\n      Merge pull request #504 from CodeConstruct/pr/mi-conf-mtu\n      util: Do not expose fallthrough defines\n      Merge pull request #507 from igaw/private-fallhtrough-define\n      Merge pull request #508 from martin-gpy/add_is_persistent\n      util: Add simple UUID type\n      Merge pull request #497 from igaw/drop-libuuid\n      ioctl: Set log page offset for nvme_get_log_telemetry_host\n      mi: Set log page offset for nvme_get_log_telemetry_host\n      build: Update min version of meson to 0.48\n      Merge pull request #510 from igaw/pass-lpo-arg\n      Merge pull request #511 from igaw/build-min-verison-fix\n      fabrics: Duplicate strings when merging configs\n      Merge pull request #512 from igaw/fix-merge-config\n      types: Move enum nvme_data_tfr to types\n      Merge pull request #513 from igaw/move-def\n      build: Update version to v1.2\n      doc: Regenerate all docs for v1.2\n      build: Remove usused pkg-config template\n      Merge pull request #519 from igaw/pkg-config\n      ioctl: Move nvme_get_log_page() to ioctl.h\n      ioctl: Use nvme_get_log_page() in helpers\n      Merge pull request #515 from CodeConstruct/dev/mi-ctrl-list-nsid\n      Merge pull request #517 from drakedog2008/pr/bug-fix\n      Merge pull request #514 from CodeConstruct/dev/mi-quirks\n      Merge pull request #520 from CodeConstruct/pr/mi-status\n      Merge pull request #521 from martin-belanger/release-python-gil\n      Merge pull request #528 from jinliangw/master\n      Merge pull request #529 from CodeConstruct/pr/be\n      Merge pull request #531 from dankamongmen/dankamongmen/meson-0.50.0\n      doc: Generate rst documentation on the fly for readthedocs\n      Merge pull request #532 from igaw/generate-rst-readthedocs\n      build: Drop meson version test for 0.48\n      build: Allow static linking\n      Merge pull request #533 from igaw/static-build\n      build: Always set CONFIG_LIBSYSTEMD variable\n      Merge pull request #534 from igaw/cleanup-static-build\n      build: Run cross build test under qemu\n      Merge pull request #535 from igaw/run-cross-tests\n      build: Do not install libuuid in cross builds\n      build: Add s390x cross build target\n      Merge pull request #536 from igaw/run-cross-tests\n      build: Drop --werror for fallback builds\n      Merge pull request #538 from martin-belanger/fix-uuid-size\n      Merge pull request #540 from CodeConstruct/pr/mi-endpoint-close\n      Merge pull request #542 from CodeConstruct/dev/mi-libdbus\n      Merge pull request #546 from tbzatek/valgrind-fixes-1\n      Merge pull request #545 from jinliangw/rename_tmp\n      Merge pull request #548 from tbzatek/valgrind-fixes-2\n      Merge pull request #539 from jinliangw/master\n      Merge pull request #547 from jinliangw/in_band_get_log_fix\n      Merge pull request #551 from jinliangw/spsp_fix\n      Merge pull request #552 from birkelund/tp4146\n      nvme: Output zero padded hostid in resv-report command\n      Merge pull request #1761 from igaw/fix-recv-report-hostid\n      Merge pull request #554 from drakedog2008/pr/timeout\n      build: Remove unused uuid.wrap\n      build: Add D-Bus fallback\n      build: Add libdbus to build default build environment\n      Merge pull request #555 from igaw/build-libdbus-wrap\n      Merge pull request #558 from birkelund/tp4146\n      Merge pull request #1756 from birkelund/tp4146\n      build: Renaming and cleanups of workflow files\n      build: Add AppImage build workflows\n      Merge pull request #1769 from igaw/create-appimage\n      build: Set projects default to debug and prefix /usr/local\n      ioctl: Initialize all members in nvme_fdp_reclaim_unit-handle_status\n      util: Add ECONNECTREFUSED to enum nvme_connect_err\n      fabrics: Change string for NVMF_DISC_EFLAGS_NONE\n      fabrics: Add nqn to connect/disconnect log entry\n      Merge pull request #557 from igaw/misc-fabric-fixes\n      tree: Add unique discovery controller flag\n      Merge pull request #556 from igaw/add-unique-disc-ctrl\n      build: Set projects default to debug and prefix /usr/local\n      fabrics: Do not overwrite errno with return code\n      fabrics: Use endian helper when reading discovery log entries\n      fabrics: Add support for binary output\n      nvme: Ingore LOG_NOTICE level\n      fabrics: Update error message when connect attemp fails\n      fabrics: Set discovery KATO also for current disc crtl\n      fabrics: Do not attempt to reconnect to already connected ctrls\n      Merge pull request #1768 from igaw/misc-fabric-fixes\n      build: Update libnvme wrap\n      fabrics: Prefer unique disc ctrl over well known\n      ioctl: Initialize non-trivial designated initializers\n      Merge pull request #560 from igaw/fix-non-trivial-designeded-initializers\n      fabrics: Handle DUPRETINFO and EPCSD when doing discovery\n      fabrics: Do not disconnect unique disc ctrl on default\n      gitignore: Ignore clang build artifacts\n      gitignore: Ignore clang build artifacts\n      Merge pull request #1749 from ikegami-t/smart-log\n      Merge pull request #1770 from igaw/dst-wait\n      build: Upload latest AppImage\n      Merge pull request #1771 from igaw/appimage-release\n      build: The release workflow can\u0027t tag\n      Merge pull request #1772 from ikegami-t/util-print\n      Merge pull request #1765 from igaw/make-pdc-default\n      fabrics: Always sanitize discovery log entries\n      Merge pull request #1774 from ikegami-t/util-maint\n      tree: Add persistent_discovery_ctrl config flag\n      Merge pull request #1773 from linux-nvme/dependabot/github_actions/actions/upload-artifact-3\n      Merge pull request #564 from igaw/make-pdc-optional\n      Merge pull request #562 from igaw/sanitize-disc-log\n      build: Update libnvme wrap\n      fabrics: Make PDC behavior configurable\n      Merge pull request #1775 from igaw/make-pdc-optional\n      Merge pull request #565 from CodeConstruct/pr/563\n      Merge pull request #566 from birkelund/fix-event-timestamp\n      fabrics: Fix discovery controller filter function\n      fabrics: Fix already connected test\n      fabrics: Pass discovery ctrl to __discover()\n      Merge pull request #1777 from birkelund/tp4146-fixes\n      Merge pull request #1779 from ikegami-t/util-suffix\n      fabrics: Avoid buffer overrun in strchomp\n      Merge pull request #1780 from calebsander/fix/strip-spaces\n      Merge pull request #567 from igaw/fix-strchomp\n      Merge pull request #1778 from igaw/pdc-fixes\n      build: Update libnvme version dependency on release\n      Merge pull request #1781 from igaw/release-update-libnvme-version\n      Merge pull request #569 from ikegami-t/dst\n      build: Bump libnvme wrap\n      Merge pull request #1782 from ikegami-t/dst\n      build: Update version to v1.3\n      doc: Regenerate all docs for v1.3\n      build: Bump libnvme.wrap release v1.3\n      build: Update version to v2.3\n      doc: Regenerate all docs for v2.3\n      Merge pull request #570 from tbzatek/nss\n      nvme: Support effects-log for fabrics ctrl\n      Merge pull request #1794 from igaw/effects-log\n      build: Enable Azure Pipeline again\n      Merge pull request #1795 from igaw/add-blkttests\n      build: Also trigger Azure Pipeline for PR\n      util: Add crc32 implementation\n      build: Use prefixdir directly on sysconfdir\n      build: Use prefixdir directly on sysconfdir\n      build: Make json-c dependency optional again\n      build: Update dbus.wrap\n      Merge pull request #575 from igaw/update-dbus-wrap\n      fabrics: Do not ignore one char whitespace when string sanitizing\n      Merge pull request #576 from igaw/fix-strchomp-callers\n      Merge pull request #573 from igaw/fix-muon-build\n      Merge pull request #1799 from igaw/fix-muon-build\n      Merge pull request #1798 from igaw/drop-zlib\n      util: Reimplement suffix_si_parse\n      util: Update suffix_binary_parse API\n      Merge pull request #1790 from igaw/reimplement-suffix_si_parse\n      Merge pull request #1789 from ikegami-t/get-feature-status\n      util: Numbers without any suffix are also valid\n      Merge pull request #1802 from igaw/fix-suffix_binary_parse-regression\n      build: Update library paths for AppImage\n      Merge pull request #1809 from igaw/fix-appimage\n      Merge pull request #1805 from martin-belanger/fix-doc\n      Merge pull request #574 from igaw/make-json-c-optional\n      build: Set defaults for libdbus to disabled\n      build: Rename meson.yml to build.yml\n      build: Add muon build\n      Merge pull request #577 from igaw/build-updates\n      fabrics: No need to sanitize trsvcid and traddr\n      plugins/solidigm: Use struct json_object instead of typedef\n      plugins/solidigm: Use json_create_object wrapper\n      nvme-print: Move JSON printing function into a new file\n      nvme: Make json-c optional again\n      Merge pull request #1800 from igaw/make-json-c-optional\n      Merge pull request #1814 from jeffreyalien/latency-log\n      Merge pull request #1817 from sc108-lee/completion\n      Merge pull request #1819 from innogritkenny/master\n      doc: --storage-tag-check doesn\u0027t take any arguments\n      ioctl: Set file descriptor in nvme_get_log_page()\n      mi: Add nvme_mi_admin_get_log_page\n      build: Bump libnvme wrap\n      nvme: Use fprintf for error message logging in get_log()\n      nvme: Use chunked read in get_log()\n      build: Update CI build targets\n      build: Streamline workflows with nvme-cli\n      build: Add s390x cross build and enable cross tests\n      build: Add muon build target\n      build: Enable test in muon minimal build\n      nvme: Fix type in error message\n      nvme: Factor out parse telemetry log da element\n      nvme: Refactor get telemetry log page helper\n      nvme: Add rae argument to telemetry-log command\n      fabrics: Fix ordering for auto connect services\n      build: Initialize sysconfdir\n      build: Initialize sysconfdir\n      build: Upload all log files on failure\n      build: Upload all log files on failure\n      build: Add action build back\n      plugins/solidigm: Do not overwrite previously initialized variable\n      nvme: Use correct ABORT type for self abort test\n      plugins/inspur: Cast vendor specific smart log value\n      build: Add build action back\n      build: Update json-c wrap\n      build: Update OpenSSL wrap\n      build: Update libnvme wrap\n      doc: Update build script to use correct meson verbs\n      doc: Do not hardcode default location for config files\n      fabrics: Add define for DMI sysinfo\n      fabrics: Filter out invalid UUIDs from DMI\n      build: Update version to v1.4\n      doc: Regenerate all docs for v1.4\n      build: Bump libnvme to v1.4\n      build: Update version to v2.4\n      doc: Regenerate all docs for v2.4\n      build: Add external AppImage upload workflow\n      build: Use sftp transport for AppImage deploy step\n      build: Deploy AppImage only for push on master\n      build: Fetch all references before using git describe\n      tree: Fix argument check in nvme_bytes_to_lba\n      nvme-print: Use enum nvme_print_flags for nvme_show_id_ctrl\n      fabrics: Do not pass unsupported options to kernel\n      tree: Fix offset argument check in nvme_bytes_to_lba\n      build: Disable fallback on default\n      build: Update wrap mode defaults\n      build: Make json-c dependency lookup not fail\n      build: Extend summary section\n      build: Simple muon build configuration\n      build: Bump libnvme wrap\n      build: Disable fallback on default\n      build: Make json-c dependency lookup not fail\n      build: Extend summary section\n      build: Update wrap mode defaults\n      doc: Update REAMDE\n      build: Fix appimage configuration\n      build: Extend static linked binary build test\n      doc: Update README\n      python: Update test data\n      ioctl: Explicitly initialize all members of struct nvme_ns_mgmt_args\n      build: Install missing s390 library\n      test: Add unit test for ctrl lookups\n      build: Install missing s390 library\n      build: Do not use json-c fallback for muon minimal build\n      nvme-print-json: Update function sigs for !json-c builds\n      nbft: Make json-c output depending on config flag\n      nbft: Add stdlib.h include\n      nbft: Add include util/types.h\n      nvme-print: Double function definition\n      nvme-print: Export generic to string functions\n      nvme-print: Unify flag passing into functions\n      nvme-print: Split add_bitmap implementation\n      fabrics: Move printing functions to the print files\n      print: Introduce print ops structure\n      nvme-print-json: Refactor json print code to use nvme_print_ops\n      nvme-print-stdout: Refactor stdout print code to use print_ops\n      nvme-print-binary: Refactor binary print code to use print_ops\n      nvme: Use correct metadata buffer size\n      nvme: Use correct data buffer size\n      fabrics: Revert \u0027fabrics: prevent \u0027nvme connect\u0027 to well-known discovery NQN\u0027\n      fabrics: Do not print device on connect per default\n      plugins/nbft: Use common code to parse print flags\n      util: Add ignored error code\n      fabrics: Filter discovery ctrls out during application context check\n      tree: Ignore NULL address pointer for phy slot lookup\n      fabrics: Relax match on well known disc ctrl lookup\n      build: Bump libnvme wrap\n      build: Reformat build_opionts.txt\n      fabrics: Add support for volatile configuration\n      nvmf-autoconnect: Annotate the context to autoconnect\n      doc: Add information on --context\n      scripts: Move helper scripts to a central place\n      scripts: Call update doc script from top level dir\n      scripts: Sync release script\n      build: Move CI build steps into a scripts\n      scripts: Use spaces instead of tabs\n      util: Provide empty nvme_ipaddrs_eq for static builds\n      build: Use containers with matrix build\n      docs: Update file modes\n      scripts: Move helper scripts to a central place\n      scripts: Execute the scripts from toplevel directory\n      scripts: Update update-docs.sh scripts\n      scripts: Make release script project neutral\n      build: Bump libnvme wrap\n      build: Use containers with matrix build\n      nvme-print: Fix typo in callback definition\n      nvme-print: Move num argument parsing into callbacks\n      nvme-print: Remove left overs from refactoring\n      build: Update cross instruction and drop verbose test flag\n      build: Update version to v1.5\n      doc: Regenerate all docs for v1.5\n      build: Bump libnvme wrap\n      build: Update version to v2.5\n      doc: Regenerate all docs for v2.5\n      tree: Scan all subsystems\n      fabrics: Consider also all hosts settings for context match\n      ccan: Remove unused documentation\n      ccan: Add htable, strset and dependencies\n      nvme-print-stdout: Support subsys reachable from several hosts\n      build: Bump libnvme wrap\n      nvme-print-stdout: List only ctrls which are part of ns\n      tree: Add getter for subsystem iopolicy\n      build: Bump libnvme wrap\n      nvme-print: Fix show-topolocy for ctrls\n      nvme-print-stdout: Do not show non reachable ns in namespace topology\n      nvme-print: Show subsystem iopolicy\n      util: Set errno to 0 before strtol/stroul call\n      fabrics: Read the supported options lazy\n      fabrics: Do not pass disable_sqflow if not supported\n      mi: remove nsid from nvme_mi_admin_identify_secondary_ctrl_list()\n      build: Bump libnvme wrap\n      nvme: Update list secondary command\n      test: make all function static\n      test: fix lookup test case\n      build: use prebuild container images for cross builds\n      build: use debian container for release-python build\n      build: use container for coverage build\n      build: checkout repo in coverage build\n      build: avoid unused static inline function warning for clang\n      build: use prebuild containers for builds\n      build: fix AppImage yaml file\n      build: more style fixes for AppImage build\n      build: fix coverage report build\n      build: fix generation of coverage report\n      build: run tests before coverage tool\n      build: run tests before coverage tool\n      build: use latest container instead fixed version\n      build: use latest container instead fixed version\n      build: Bump libnvme wrap\n      test: use non deprecated API\n      nvme: fw_download use nvme_alloc only\n      nvme: append huge to nvme_{alloc|free} function\n      util: add cleanup function for generic memory allocations\n      nvme: introduce alloc helper with alignment support\n      nvme: allocate aligned payloads for all nvme commands\n      nvme: auto free nvme_dev resource\n      build: abort CI builds on first error\n      plugins/solidigm: use static log macro to calc bitmask\n      build: abort CI builds on first error\n      build: bump libnvme wrap\n      completion: add \u0027version\u0027 and \u0027help\u0027 to list\n      util: handle utf-8 thousend separators correctly\n      unit: add locale number test\n      build: Update version to v1.6\n      doc: Regenerate all docs for v1.6\n      build: bump libnvme wrap to v1.6\n      build: Update version to v2.6\n      doc: Regenerate all docs for v2.6\n      build: upload artifacts only for upstream repo\n      build: upload artifacts only for upstream repo\n      nvme: use block-count arg if provided\n      nvme: do not include meta data for PRACT\u003d1 and MD\u003d8\n      build: do not setup python\n      ioctl: use lsp arg in nvme_get_log_boot_partition\n      build: Bump libnvme wrap\n      fabrics: autoconnect: explicitly express module dependency\n      mailmap: only show contributer\u0027s name\n      plugins/ocp: update nvme_show_select_result call\n      nvme-print-json: remove obj_print helper\n      nvme-print-json: use human helper everywhere\n      doc: remove invalid hostkey info for --dhchap-secret\n      build: do not rebuild muon/samu every time\n      build: pass the linker argument via muon argument\n      build: remove the wrap feature dependency for muon\n      build: do not rebuild muon/samu every time\n      build: pass the linker argument via muon argument\n      doc: add additional build instructions\n      doc: mention build helper script for muon build instruction\n      nvme: return error code in get_persistent_event_log\n      nvme: auto cleanup buffers\n      nvme: auto cleanup filedescriptors\n      util/mem: move alloc helper to util section\n      nvme: replace libhugetlbfs with mmap and madvise\n      build: remove libhugetlbfs references\n      nvme: validate output format split status from flag return value\n      build: add CFLAGS back when building with muon\n      build: ignore external code for code coverage check\n      build: add checkpatch to catch style issues\n      build: ignore external code for code coverage check\n      build: add codecov configuration\n      build: add codecov configuration\n      tree: read all attributes from sysfs when available\n      tree: do not open blk device on default\n      build: construct path to config.h manually\n      build: update json-c and openssl wrap\n      build: Update version to v1.7\n      doc: Regenerate all docs for v1.7\n      build: update json-c wrap\n      build: Update libnvme wrap to v1.7\n      doc: fix lockdown document\n      build: Update version to v2.7\n      doc: Regenerate all docs for v2.7\n      build: use single string to name tests\n      build: use build container with python support\n      tree: do no free ns on error in nvme_ns_init\n      build: handle patch level versioning\n      build: Update version to v1.7.1\n      doc: Regenerate all docs for v1.7.1\n      build: fix release python tag match\n      build: checkout full repo for checkpatch\n      nvme-print-json: Revert field name changes\n      build: Update version to v2.7.1\n      doc: Regenerate all docs for v2.7.1\n      build: checkout full repo for checkpatch\n      json-schema: add keyring and tls_key details\n      tree: use logical block size for lba\n      libnvme: export nvme_dump_tree\n      json: dump the output to the user selected filedescriptor\n      nvme: allow to overwrite base sysfs path\n      nvme: allow to overwrite hostnqn and hostid\n      test: read and dump sysfs tar file\n      nbft: fixup include for libnvme\n      nbft: do not issue an error if ACPI tables are missing\n      tree: do not issue an error when subsys lookup fails during scanning\n      nvme-print-json: append array object in json_support_log\n      build: Update version to v1.8\n      doc: Regenerate all docs for v1.8\n      build: bump libnvme version\n      build: Update version to v2.8\n      doc: Regenerate all docs for v2.8\n      build: bump libnvme wrap\n      log: move nvme_{set|get}_debug to log.c\n      ioctl: export nvme_submit_passthru{64} as weak symbol\n      ioctl: remove incomplete debug logging infrastructure\n      build: bump libnvme wrap\n      nvme: remove unused declaration\n      nvme: update include for libnvme\n      logging: move logging code to a new file\n      logging: track log level globally\n      nvme: track verbose level\n      logging: output ioctl debugging info\n      nvme: do not issue warning when nvme_core module is not loaded\n      build: bump libnvme wrap\n      nvme: do not scan topology when mmaping registers\n      nvme: extend error message for ns scan failures\n      tree: fix lba_count size calculation\n      build: bump libnvme wrap\n      build: bump libnvme wrap\n      logging: fix error handling for ioctl passthru wrappers\n      fabrics: align identify command payload\n      Revert \"logging: fix error handling for ioctl passthru wrappers\"\n      Revert \"ioctl: Return NVMe status in nvme_directive_send_id_endir()\"\n      Revert \"ioctl: add nvme_get_features_host_id2()\"\n      Revert \"ioctl: add nvme_get_features_timestamp2()\"\n      Revert \"ioctl: add nvme_set_features_iocs_profile2()\"\n      Revert \"ioctl: add nvme_set_features_host_id2()\"\n      Revert \"ioctl: add nvme_set_features_host_behavior2()\"\n      Revert \"ioctl: add nvme_set_features_timestamp2()\"\n      Revert \"ioctl: Update stub functions to match documentation\"\n      Revert \"ioctl: Update function documentation\"\n      Revert \"fabrics: retry discovery log page when DNR is not set\"\n      Revert \"ioctl: return EPROTO when an NVMe status occurred\"\n      Revert \"build(deps): bump AppImageCrafters/build-appimage from 1.3 to 2\"\n      nvmf-connect: systemd hardening effort\n      tree: use strtou32 to read lba_size\n      nvme: identify primary ctrl do not accept nsid\n      nvmf-autoconnect: fix string encoding\n      build: Update version to v1.9\n      doc: Regenerate all docs for v1.9\n      build: bump libnvme wrap\n      build: Update version to v2.9\n      doc: Regenerate all docs for v2.9\n      plugins/spdk: drop the plugin\n      build: Update version to v2.9.1\n      doc: Regenerate all docs for v2.9.1\n      libnvme: sort export map\n      log: keep log level logic in one place\n      log: split log variables from root object\n      build: bump libnvme wrap\n      nvme: use cleanup helper for nvme_root_t objects\n      nvme: initialize default library logging\n      linux: default init cleanup variable\n      build: bump libnvme wrap\n      build: separate builds of libnvme and nvme-cli\n      doc: remove unused release variable\n      build: reorder release commits\n      doc: fix ocp format issues\n      build: reorder release commits\n      fabrics: skip namespace scan for fabric commands\n      nvme-print-stdout: refactor subsys config\n      linux: add nvme_revoke_tls_key\n      build: bump libnvme wrap\n      nvme: use stdout for exporting TLS keys\n      nvme: strip newline when parsing TLS key files\n      nvme: use cleanup helper for STREAM objects\n      fabrics: use cleanup helper for STREAM objects\n      nvme-rpmb: use cleanup helper for STREAM objects\n      nvme: use cleanup helper to close file descriptor\n      nvme: factor out import key function\n      nvme: return error code/message for TLS commands\n      nvme: add support to revoke TLS key\n      build: sort documentation files entries\n      doc: fix tls-key --keyfile shorthand\n      doc: add tls-key --revoke documentation\n      completion: add support for tls-key\n      doc: fix micron ocp telemetry log parse title\n      build: add documentation CI build\n      build: add documentation CI build\n      build: always CI build documentation\n      tree: preserve parsing order of a config file\n      json: filter out pcie transport\n      test: revamp sysfs tree dump test\n      test: add config dump test\n      test: add config-pcie-with-tcp-config test case\n      fabrics: extend hostnqn/hostid variable inject interface\n      tree: add helper to lookup hostnqn/hostid\n      test: add hostnqn lookup test\n      build: bump libnvme wrap\n      fabrics: use cleanup helper to free nvme root object\n      fabrics: extend already connected message\n      fabrics: use helper to lookup default hostnqn/hostid\n      fabrics: first read config before topology scanning\n      fabrics: refactore discover from json config\n      fabrics: connect all hosts in config.json\n      build: do not overwrite conf data from main meson.build\n      build: show git version used during configuration\n      build: add static build target\n      build: show git version used during configuration\n      build: fetch complete git history\n      build: use official download action\n      utils: add missing header\n      utils: cleanup includes in utils.h\n      utils: fix print formatting option\n      fabrics: use cleanup helper where possible\n      fabrics: do not report error when no modules are loaded when disconnecting\n      fabrics: check if json config is existing\n      fabrics: drop --disable-sqflow alias -d\n      fabrics: drop --quiet alias -S\n      test: return error code\n      nvme: extend help message when mmap regs fails\n      fabrics: do not leak nvme_ctrl_t object on connect\n      doc: Regenerate all docs for v1.10\n      Release v1.10\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.10\n      Release v2.10\n      docs: rename ocp-unsupported-req-log file\n      build: add install step to doc CI build\n      build: add install step to doc CI build\n      doc: Regenerate all docs for v2.10.1\n      Release v2.10.1\n      build: fix libnvme dependency\n      doc: Regenerate all docs for v2.10.2\n      Release v2.10.2\n      build: use linux-nvme/ci-containers\n      build: use linux-nvme/ci-containers\n      linux: reorder variable declarations\n      linux: use ssize_t as return type for nvme_identity_len\n      linux: only return the description of a key\n      test: make config-diff more flexible to use\n      test: add test case for importing/exporting PSKs\n      linux: add import/export function for TLS pre-shared keys\n      test: extend psk to test new \u0027versioned\u0027 API\n      tree: add getter/setters for TLS PSK\n      json: move keystore operations out of the JSON parser\n      test: add pre-shared key json tests\n      tree: move dhchap and tls sysfs parser into separate functions\n      tree: read tls_configured_key and tls_keyring from sysfs\n      linux: export keys to config\n      linux: handle key import correctly\n      fabrics: rename first argument for argument macros\n      fabrics: use hex numbers when generating command line options\n      fabrics: add ctrl connect interface\n      fabrics: fix map error level in __nvmf_add_ctrl\n      util: added error code for ENOKEY\n      tree: do no export tls keys when not provided by user\n      json: do not escape strings when printing the configuration\n      build: bump libnvme wrap\n      nvme: use unsigned char for hmac and identity\n      fabrics: add support to connect to accept a configuration\n      fabrics: add support to connect to accept a PSK command line\n      docs: update TLS options\n      nvmf-keys: add udev rule to import tls keys\n      nvme: export tls keys honoring version and hmac\n      nvme: set file permission for keyfile to owner only\n      nvme: rename identity to version\n      nvme: add support to add derive TLS PSK to keyfile\n      docs: update gen-tls-key arguments\n      nvme: return correct error code in append_keyfile\n      nvme: add support to append TLS PSK to keyfile for check-tls-key\n      docs: update check-tls-key arguments\n      doc: Regenerate all docs for v1.11\n      Release v1.11\n      build: bump libnvme wrap\n      scripts: handle libnvme version update correctly\n      doc: Regenerate all docs for v2.11\n      Release v2.11\n      linux: fix derive_psk_digest OpenSSL 1.1 version\n      linux: do not return w/o OpenSSL support enabled\n      docs: add howto to setup TLS connections\n      linux: do not do any keyring ops when no key is provided\n      fabrics: do not attempt to import keys if tls is not enabled\n      doc: Regenerate all docs for v1.11.1\n      Release v1.11.1\n      test/mock: pass thru unknown ioctls\n      tests: do not unconditionally depend on dlsym\n      build: bump libnvme wrap\n      doc: remove TLS documentation\n      ioctl: fix io_uring whitespace damages\n      build: bump wraps\n      build: bump wrap\n      build: automatically add a thank you note on PR merge\n      build: fix REST API call and permissions for thanks you note\n      build: add thank you bot\n      build: add github token to comment step\n      build: remove thank you bot\n      build: remove thank you bot\n      tests: monitor /dev for new nvme block device\n      plugins/ocp: fix telemetry parser buffer overflow\n      build: checkpatch ignore new/del/mov files\n      build: sync checkpatch config file\n      build: checkpatch limit line length to 100 chars\n      build: checkpatch limit line length to 100 chars\n      nvme: do not output debug infos on info level\n      Revert \"nvme: add flush command chardev handle error message\"\n      Revert \"nvme: use blkdev for direct if namespace-id specified\"\n      Revert \"argconfig: add argconfig_get_value()\"\n      examples: fix time stamp prefix printf format string\n      pyproject.toml: allow newer meson version\n      build: update min meson dependency\n      build: request c++ compiler for host and build machine\n      build: drop support for openssl 1\n      build: bump libnvme wrap\n      util/types: fix print format string\n      plugins/virtium: fix print format string\n      plugins/sed: use platform depended cast for pointer type\n      util/logging: fix print format string\n      nvme: enforce ns granularity on ns create\n      build: do not include config.h globally\n      nvme: use correct parser type for nvmsetid and endgid option\n      build: ignore PREFER_DEFINED_ATTRIBUTE_MACRO\n      doc: Regenerate all docs for v1.12\n      Release v1.12\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.12\n      Release v2.12\n      build: fix python release workflows\n      build: enable python test release and fix release tag\n      build: use correct syntax to fetch container\n      build: use v1 branch pypi publish action\n      build: use trusted publisher authentication\n      pyproject: add description metadata\n      build: set permissions for release-python\n      build: disable twine metadata check\n      build: update packaging for twine\n      build: install pip\n      build: use pipx for installing packaging\n      build: install packaging globally\n      build: install packaging in upload containers\n      gitignore: ignore .build-tools\n      src: update include directive\n      mailmap: show only contributers name\n      Revert \"nvme-print-json: display only verbose output\"\n      ioctl: return status code when using liburing\n      build: bump libnvme wrap\n      build: bump libnvme wrap\n      fabrics: retry connect command on EINTR\n      build: fix python upload workflows\n      build: update gh-action-pypi-publish dependency\n      build: use the correct version syntax for actions\n      build: set python version to 3.10\n      doc: Regenerate all docs for v1.13\n      Release v1.13\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.13\n      Release v2.13\n      build: allow to specify tag for workflow_dispatch\n      build: upload unique pypi test versions\n      build: add cleanup task for pypi test uploads\n      build: fix test pypi cleanup task\n      build: cleanup python test pypi upload\n      build: split \u0027dev\u0027 postfix from version string\n      biuld: patch the meson.build for test pypi upload\n      src: introduce unreleased export section\n      scripts: update UNRELEASED export map on release\n      build: update readthedocs commands\n      build: use newer build container for readthedocs\n      mi: fix unrleased section name\n      build: run nightly build only for linux-nvme\n      Revert \"fabrics: retry connect command on EINTR\"\n      build: bump libnvme wrap\n      util: add SIGINT handler\n      nvme: retry commands on EAGAIN and EINTR\n      nvme: check errno not return value\n      fabrics: refactor error propagation in nvmf_connect\n      build: make \u0027clean\u0027 target an alias for \u0027purge\u0027\n      build: always use meson commands\n      build: fix the static build\n      build: make \u0027clean\u0027 target an alias for \u0027purge\u0027\n      build: disable netdb test for static builds\n      doc: Regenerate all docs for v1.14\n      Release v1.14\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.14\n      Release v2.14\n      ioctl: only use io_uring for char devices\n      doc: fix return value description for nvme_scan_topology\n      ioctl: introduce force xfer length configuration knob\n      nvme: add command line argument to disable retries\n      doc: add note about huge TLB when using fw-download\n      build: disable liburing support per default\n      tree: filter tree after scan has completed\n      nvme: extend filter to match device name\n      nvme-print: suppress output when no ctrl is present for list-subsys\n      tree: free ctrl attributes when (re)configure ctrl\n      Revert \"linux: TLS PSK derivation fixes\"\n      json: do not leak port_obj for PCI devices\n      tree: always set the host key\n      doc: Regenerate all docs for v1.15\n      Release v1.15\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.15\n      Release v2.15\n      udev: rename 71-nvme-hpe.rules to 71-nvmf-hpe.rules\n      build: fix static build\n      build: add valgrind test option to build script\n      build: run tests with valgrind for default builds\n      build: add valgrind test option to build script\n      build: run tests with valgrind for default builds\n      build: replace AppImage with static build binary\n      tree: do not try to strdup NULL pointer\n      build: bump libnvme wrap\n      linux: use EVP_PKEY_CTX_add1_hkdf_info only once in compat function\n      test: add hkdf_add1 test\n      build: bump libnvme wrap\n      build: don\u0027t mark build fail when coverage fails\n      build: don\u0027t mark build fail when coverage fails\n      CI: add expect package for blktests\n      doc/nvme-write: fix short hand argument for --block-size\n      test/mi: initialize struct args\n      tree: preserve dhchap_key to during scan\n      doc: Regenerate all docs for v1.16\n      Release v1.16\n      build: bump libnvme wrap\n      doc: Regenerate all docs for v2.16\n      Release v2.16\n      lib: import libnvme sources\n      libnvme: hookup the library into the build\n      build: add native compiler to cross compiler config\n      build: disable force-fallback-for libnvme\n      map: merge all symbols into 2.0 section\n      ioctl: remove deprecated functions\n      src: merge libnvme-mi into libnvme\n      api-types: replace nvme_root_t with struct nvme_global_ctx\n      src: introduce transport handle abstraction\n      api-types: remove unused fd members\n      linux: add nvme_transport_handle_get_fd\n      linux: add nvme_transport_handle_get_name\n      linux: add nvme_transport_handle_is_{blk|char}dev\n      mi: replace nvme_mi_ctrl_t with struct nvme_transport_handle\n      linux: add MI support to nvme_{open|close}\n      linux: add nvme_transport_handle_is_{direct|mi}\n      ioctl: add support for MI passthru\n      ioctl: add alignment and length check to nvme_fw_download\n      mi: replace dedicated MI API with generic one\n      nvme-cli: update to libnvme API changes\n      rrc: return error codes directly\n      nvme-cli: update error handling\n      ioctl: add nvme_identify_partial\n      mi: remove nvme_mi_admin_identify{_partial}\n      ioctl: remove struct args backwards compatibility\n      src: rename struct command *cmd to acmd\n      ioctl: rework nvme_identify commands\n      src: rework nvme_identify commands\n      ioctl: rework nvme_get_log commands\n      ioctl: add nvme_init_log_lpo helper\n      ioctl: rework nvme_set_features commands\n      ioctl: rework nvme_get_features commands\n      ioctl: rework nvme_format_nvm command\n      ioctl: rework nvme_ns_mgmt commands\n      ioctl: rework nvme_ns_attach commands\n      ioctl: rework nvme_fw_download command\n      ioctl: rework nvme_fw_commit command\n      ioctl: rework nvme_security_send command\n      ioctl: rework nvme_security_receive command\n      ioctl: rework nvme_get_lba_status command\n      ioctl: rework nvme_directive_send commands\n      src: rework nvme_directive_send command\n      ioctl: rework nvme_directive_recv commands\n      src: rework nvme_directive_recv command\n      ioctl: rework nvme_capacity_mgmt commands\n      src: rework nvme_capacity_mgmt command\n      ioctl: rework nvme_lockdown command\n      ioctl: rework nvme_set_property command\n      ioctl: rework nvme_get_property command\n      ioctl: rework nvme_sanitize_nvm command\n      ioctl: rework nvme_dev_self_test command\n      ioctl: rework nvme_virtual_mgmt command\n      ioctl: rework nvme_resv_acquire command\n      ioctl: rework nvme_resv_register command\n      ioctl: rework nvme_resv_release command\n      ioctl: rework nvme_resv_report command\n      ioctl: rework nvme_io_mgmt_recv commands\n      ioctl: rework nvme_io_mgmt_send commands\n      ioctl: rework nvme_zns_mgmt_send commands\n      ioctl: rework nvme_zns_mgmt_recv commands\n      ioctl: rework nvme_zns_append commands\n      ioctl: rework nvme_dim_send command\n      ioctl: rework nvme_lm_cqd command\n      ioctl: rework nvme_lm_track_send command\n      ioctl: rework nvme_lm_migration_send command\n      ioctl: rework nvme_lm_migration_recv command\n      ioctl: rework nvme_lm_set_features_data_queue command\n      ioctl: rework nvme_lm_get_features_data_queue command\n      ioctl: rework nvme_io commands\n      ioctl: rework nvme_copy command\n      ioctl: remove unused enum features\n      src: merge api-types.h content into types.h\n      plugins: replace nvme_scan with nvme_scan_topology\n      libnvme: remove unused project config files\n      build: switch back to 80 char checkpatch config\n      build: move libnvme github workflows to top dir\n      build: mark repo as safe for git\n      libnvme/mi: always initialize timeout_save\n      plugins/sandisk: update calling arguments\n      build: avoid breaking cross builds with OpenSSL enabled\n      nvme: use io passthru for write_uncor\n      ioctl: fix dms command\n      fabrics: interpret return code from nvme_create_ctrl correctly\n      nvme: dsm: make context atttribute optional again\n      libnvme: use 64-bit version struct nvme_passtru_cmd everywhere\n      ioctl: add hooks into submission path\n      src: drop result argument from submit API\n      ioctl: fix return code handling in uring code\n      nvme: add fallback support for block vs char device to dsm command\n      nvme: add fallback support for block vs char device to flush command\n      nvme: factor out get_pi_info from submit_io\n      nvme: do not use initialize PI tags unconditionally\n      doc: add how to use the CI containers to build\n      ioctl: use dummy passthru command\n      nvme: handle absence of PI support in IO commands\n      nvme: add fallback support for block vs char device to verify command\n      build: merge libnvme build into the nvme-cli build scripts\n      util: move nvme_strerror to libraray\n      fabrics: move __discover to the library\n      fabrics: move json config based discovery to library\n      fabrics: move connect config json code to the library\n      fabrics: move nbft code to the library\n      fabrics: move host_traddr and host_iface to ctrl\n      fabrics: add context to common fabrics arg parser\n      fabrics: move discovery config file code to library\n      fabrics: move final discovery code to library\n      fabrics: generalize nvmf_discovery_ctx to nvmf_context\n      fabrics: move connect logic to library\n      fabrics: remove duplicate arguments from discover/connect\n      fabrics: add documentation to the new discovery/connnect API\n      doc: update readme on libnvme dependency\n      fabrics: correctly set host traddr and iface\n      fabrics: set hostnqn and hostid for fabrics context\n      fabrics: set crypto info to fabrics context\n      linux: filter out key errors when looking up identity\n      fabrics: add missing default context assignment\n      nvme: init result_def in get_feature_id_changed\n      build: move pyproject.toml to root dir\n      build: update python workflow\n      build: handle PyPi versioning scheme for library versioning\n      build: merge all symbols into 2.0 sections\n      build: change linker script to use the .ld extension\n      test: print command string\n      tree: remove nvme_update_config\n      fabrics: reorder and align fabric_args assigments\n      build: use proper shell variable expansion\n      build: replace the version patching with mesonpy approach\n      build: commit CI-generated version so sdist gets correct metadata\n      build: add sdist build step back\n      build: fix yaml syntax for libnvme release python workflow\n      fabrics: open transport handle for discovery controller\n      fabrics: move config modify code to library\n      tree: remove unused default_host variable\n      tree: add nvme_host_get\n      tree: separate create host code from nvme_lookup_host\n      tree: add nvme_subsystem_get\n      tree: make nvme_lookup_ctrl and nvme_ctrl_find private\n      test: don\u0027t fail in ioctl mock for unknown ioctl\n      tree: add nvme_global_ctx to struct nvme_ns and struct nvme_ctrl\n      tree: get global context directly\n      test: add global context discovery test case\n      linux: add global context as first argument to crypto API\n      nbft: add global context as first argument to nbft API\n      log: remove deprecated default global context functions\n      build: remove obsolete \u0027nvme\u0027 ignore\n      docs: update readme to include more badges\n      build: replace qus with setup-qemu-action\n      linux: add possibility to disable IOCTL probing\n      fabrics: rename fabrics_args to nvmf_args\n      nvme: rename nvme_config to nvme_args\n      fabrics: add global default command line arguments\n      nvme: replace OPT_ARGS with NVME_ARGS\n      tree: cleanup paths when freeing namespace\n      build: add coverity workflow\n      build: coverity: use curl and build in debian.python\n      build: remove duplicate workflows\n      docs: update readthedocs setup\n      build: fix readthedocs html install path\n      build: do not fail build job on \u0027negative\u0027 coverage report\n      build: use our own containers for RTD\n      build: drop the \u0027os\u0027 in RTD build\n      build: rtd: use build.jobs instead of build.commands\n      build: rtd: don\u0027t specify format and install asciidoc dependency\n      build: rtd: only build html docs for nvme-cli\n      build: rtd: reduce bulid dependency\n      build: rtd: add sphinx dependency\n      build: rtd: install asciidoc via pip\n      build: rtd: fix pip install step\n      build: rtd: fix html lookup path in copy step\n      json: update nvme_dump_config to a file descriptor\n      fabrics: do no try do disconnect invalid ctrl\n      build: disable coverage reports\n      build: pin all GitHub Actions to SHA of latest release version\n      build: remove unused libnvme codecov configuration\n      build: remove unused scripts from libnvme\n      build: merge update-docs script\n      src: use standard lookup for libnvme include\n      ioctl: use correct defines for set_features field encode\n      test: add header include test\n      libnvme: include main headers where possible\n      libnvme: drop a few unused headers\n      nvme: use nvme_ns_rescan instead open coding\n      ioctl: make IOCTL defines private\n      ioctl: always define the passthru data structs\n      cmds: move command function to their own header\n      build: sort install_headers alphabetically\n      cmds: move nvme commands to cmds header\n      linux: reduce the number of includes\n      cmds: move nvme cmds from util to cmds.h or types.h\n      tree: reduce the number of includes\n      nbft: include nvme/types.h instead nvme/util.h\n      crc32: add spdx license tag\n      base64: update spdx tag\n      log: drop the tree.h header include\n      mi: drop the types.h include\n      lib: move library definition into new headers\n      util: move functions into private header\n      log: move logging definition to lib.h\n      tree: move nvme_ns_*_transport_handle to private header\n      mi: replace nvme_mi_*global_context with nvme_*_global_context\n      mi: make nvme_mi_admin_admin_passthru private\n      lib-types: move struct nvme_passthrue_cmd up\n      fabrics: rename nvme_free_uri to nvmf_free_uri\n      cmds: avoid possible infinite loop\n      cmds: free id_ctrl after use in nvme_get_telemetry_max\n      mi: fix nvme_mi_create_global_ctx removal\n      nvme: remove -t as alias for --timeout\n      build: only try to upload if it\u0027s linux-nvme/nvme-cli repo\n      build: github workflow cleanups\n      build: fix syntax error in upload workflow\n      build: update workflow name\n      build: fix upload condition\n      build: replace debian.python with debian container\n      build: disable libraries for static build\n      build: no need to update libnvme subproject\n      build: update release version string acceptance test\n      doc: Regenerate all docs for v3.0-a.1\n      build: add Fedora and Tubmleweed to the build matrix\n      mi: verify length of data before reading header\n      misc: initialize memory before using in tests\n      build: update checkout action versioning\n      build: use distro CFLAGS\n      tree: gracefully handle empty dirs\n      tree: fix spdx tag for tree.py test\n      util: update spdx license fro sighdl\n      docs: update license for rtd yaml files\n      example: update license for discovery-loop.py\n      licenses: add missing spdx tags\n      licenses: consolidate license texts\n      doc: add security info\n      build: re-enable docs build update-docs.sh\n      build: drop libnvme wrap update in release.sh\n      doc: Regenerate all docs for v3.0-a.2\n      Release v3.0-a.2\n      build: commit all doc updates when releasing\n      tree: handle error when trying to get transport handle\n      tree: propagate error code for nvme_scan_ctrl\n      test: ignore ENOENT and EACCES from nvme_scan_topology\n      tree: remove nvme_scan\n      filters: return error code\n      doc: prefix local mandir and htmldir paths\n      doc: Regenerate all docs for v3.0-a.3\n      Release v3.0-a.3\n      build: ignore patch version updates for actions\n      fabrics: sanitize FC traddr\n      src: order includes per common recommendation\n      build: upload versioned binary to SFTP server\n      build: replace ftp-deployer with inline sshpass+sftp\n      build: add SSH options to sftp\n      build: switch to plain sftp without sshpass\n      nvme: help compiler to figure out figuring init of variables\n      tree: always initialize ns variable\n      util/types: include missing header for time_t\n      no-json: update function arguments\n      nbft: move nbft_file_entry to nbft header\n      fabrics: move nvmf_default_config to tree\n      linux: move the hostid/hostnqn function\n      lib: remove the unreleased linker section\n      libnvme: make fabrics optional\n      build: use meson static build to test fabrics\u003ddisabled\n      build: use cflags array instead string\n      linux: fix typos in documentation\n      nvme: move non-nvme_init_* helper functions to nvme-cli\n      cmds: remove nvme_fw_download_seq\n      cmds: group all nvme_init_* functions\n      cmds: move nvme_init_* implementations to header\n      nvme-cmds: move nvme_ns_detach/attach_ctrl to nvme-cli\n      uring: move io_uring code to new file\n      cmds: move nvme_get_log and related code to cmds.c\n      cmds: move nvme_get_log_atomic down\n      lib: update function names to follow pattern\n      build: replace ncipollo/release-action with gh release\n      docs: update reamde badges\n      build: add dedicated docs target\n      build: set workspace dir for codecov\n      build: add windows build workflow\n      examples: include select.h header\n      fabrics: dump config on stdout\n      fabrics: do not print device name when dumping config\n      linux: fix return value in nvme_lookup_key\n      build: resort libnvme linker scripts\n      linux: add nvme_create_raw_secret\n      fabris: add nvmf_context_free\n      fabrics: allow tls key to be a pin\n      nvme-print-json: do not enable verbose mode on default\n      fabrics: use uuid from hostnqn for hostid\n      docs: move global/fabrics options into separate files\n      tests: don\u0027t enforce NS management support for local testing\n      tests: skip tests which rely on namespace management\n      tests: add native TAP protocol support\n      tests: ensure TAP output and test output separate\n      tests: update documentation\n      CI: update to nightly tests to use meson test framework\n      build: honor the users input for libdbus option\n      libnvme: introduce libnvme prefix for library API\n      mi: move types into mi-types.h\n      mi: use libnvme prefix for mi API\n      build: reorder nightly build configuration\n      tests/tap_runner: intercept stderr\n      CI: upload meson logs from nightly run\n      tests: fix config lookup path\n      tests: fix tap_runner to route diagnostic output to stderr\n      tests: move diagnostic output behind debug flag\n      CI: update the upload path for nightly build\n      lib: avoid kernel logging cmd does not match nsid\n      tests: use common exec_cmd helper\n      tests: log all cmds input/output\n      CI: enable debug logging level for nightly run\n      tests: don\u0027t run Python tests in parallel\n      nvme: expose tls mode in use\n      fabrics: issue a warning on invalid traddr format\n      tests: modernize subprocess calls\n      libnvme: rename nvmf_ API prefix to libnvmf_\n      cleanup: rename __cleanup__ to __cleanup\n      cleanup: rename _cleanup_free_ to __cleanup_free\n      cleanup: rename _cleanup_file_ to __cleanup_file\n      cleanup: rename _cleanup_dir_ to __cleanup_dir\n      cleanup: rename _cleanup_fd_ to __cleanup_fd\n      cleanup: rename _cleanup_addrinfo_ to __cleanup_addrinfo\n      cleanup: rename _cleanup_uri_ to __cleanup_uri\n      cleanup: rename _cleanup_huge_ to __cleanup_huge\n      cleanup: rename _cleanup_nvme_ctrl_ to __cleanup_nvme_ctrl\n      cleanup: rename _cleanup_nvme_global_ctx_ to __cleanup_nvme_global_ctx\n      cleanup: rename _cleanup_nvmf_context_ to __cleanup_nvmf_context\n      cleanup: rename _cleanup_nvme_transport_handle_ to __cleanup_nvme_transport_handle\n      cleanup: rename _cleanup_dirents_ to __cleanup_dirents\n      cleanup: rename _cleanup_evp_mac_ctx_ to __cleanup_evp_mac_ctx\n      cleanup: rename _cleanup_evp_mac_ to __cleanup_evp_mac\n      cleanup: rename _cleanup_evp_pkey_ctx_ to __cleanup_evp_pkey_ctx\n      cleanup: rename _cleanup_tokener_ to __cleanup_tokener\n      zns: fix check for valid global context\n      compiler-attributes: rename header to match pattern\n      cleanup: move optional cleanups to C files\n      cleanup: move POSIX API cleanup helpers into a separate file\n      uring: move no-uring implementation into C file\n      private: make fabrics parts optional in global context\n      mi: make management interface support optional\n      private: remove unused ioctl.h include\n      lib: define LIBNVME_LOG_* levels to replace syslog.h LOG_* constants\n      lib: add LIBNVME_ prefix to DEFAULT_LOGLEVEL\n      libnvme: add nvme- prefix to types.h and cmds.h\n      endian: provide endian helpers when missing\n      types: provide base types when missing\n      CI: select ucrt64 compiler\n      generate-accessors: extend struct annotation with default mode qualifier\n      build: make json-c dependent on fabrics\n      tree: use traddr_is_hostname from fabrics\n      fabrics: move libnvmf_context to private-fabrics header\n      fabrics: don\u0027t return config from merge_config\n      libnvme: update Python binding to use libnvmf_context\n      libnvme: embed libnvme_fabrics_config in libnvmf_context\n      fabrics: replace fabrics options with fabrics context\n      fabrics: move connect/disconnect to fabrics API\n      fabrics: add _id postfix to TLS keys in libnvme_fabrics_options\n      fabrics: add missing common arguments to nvmf_args\n      fabrics: use context at controller creation time\n      private: replace typedefs with direct definitions\n      generate-accessors: output added list with correct formatting\n      fabrics: retire libnvme_fabrics_config from public API\n      fabrics: add tls_configured_key to merge/update logic\n      private-fabrics: fix spelling in comment\n      generate-accessors: add char double-pointer accessor support\n      fabrics: move URI data struct to private API\n      build: drop windows guard on no-json\n      build: handle libdbus and liburing dependencies generically\n      nbft: move spec types into separate header\n      nbft: use libnbft_ prefix for library types\n      libnvme: make free functions null-pointer safe\n      python: remove redundant null check\n      docs: add new libnvme headers\n      doc: Regenerate all docs for v3.0-a.4\n      Release v3.0-a.4\n      generate-accessors: fix invalid kdoc banners\n      doc: Regenerate all docs for v3.0-a.5\n      Release v3.0-a.5\n      fabrics: do not re-initialize nvmf_args\n      private: add indentation to !accessor commands\n      python: add missing define for handwritten getter\n      nvme: initialize default timeout for format command\n      nvme: enable support for --no-ioclt-probing for open_exclusive\n      nvme-print: fix traddr transformation for ave discovery log\n      nvme: add O_TRUNC when opening output files for read commands\n      feat: add support for Host Behavior Support\n      tests: use feat command to handle host behavior\n      tests: fix ms byte decoding\n      tests: split copy test into subtests\n      tests: add mcl/mssrl/msrc limit checks to nvme_copy_test\n      tests: only setup cdfe for requested descriptor version\n      tests: check and format namespace for copy test\n      tests: skip 16-bit guard copy tests when namespace is in 64-bit guard PI mode\n      tests: handle PI and MS settings\n      tests: skip write-uncor test when not supported\n      build: generate coverage report for nightly tests\n      build: switch to gcovr\n      CI: install gcovr for nightly build run\n      CI: tune codecov setup for nightly builds\n      CI: set codecov slug\n      CI: set the slug environment variable explicitly\n      CI: explicitly set project metadata for codecov\n      build: re-sort entries in linker scripts\n      mem: move memory allocator helpers\n      nvme: replace nvme_(re)alloc with libnvme_(re)alloc\n      mem: move alloc_huge and free_huge to library\n      mem: introduce libnvme_free\n      table: add fallback reallocarray implemenation\n      nvme: replace posix_memalign with libnvme_alloc\n      CI: upload nightly coverage via GH action\n      CI: update download-artifact version for nightly-tests\n      log: open-code dprintf\n      linux: replace getline with fgets\n      nvme-print-stdout: rework effects log output\n      nvme-models: replace getline with fgets for portability\n      nvme-models: change id to device name\n      nvme-print: print product name if available\n      libnvme-mi: move linker symbols into separate script\n      nvme: remove MI feature support when disabled\n      CI: use kubevirt artifacts for nightly codecov upload\n      ioctl: defer ioctl version probing until first use\n      CI: fix missing coverage data in codecov uploads\n      nvme-models: suppress missing sysfs entry messages\n      CI: disable Codecov push trigger\n      nvme-cmds: sort commands according the spec order\n      nvme-cmds: fix typos in documentation\n      nvme-cmds: split header according to spec grouping\n      nvme-types: move fabrics definitions into separate header\n      nvme-types: move zns definitions into separate header\n      nvme-types: move nvm definitions into separate header\n      nvme-types: move mi definitions into separate header\n      nvme-types: move base definitions into separate header\n      nvme: add support for global options before command\n      nvme: use nvme_args directly to check flag\n      plugins/netapp: use nvme_args directly to check flag\n      unit: extend command line test\n      plugins: rename -v/-o short options\n      doc: update -o short option documentation\n      plugins/virtium: use snprintf instead strncpy\n      doc: update global options placement\n      doc: reformat synopsis to avoid overlong line\n      nvme-types: add spec reference to DOC section\n      nvme-types: add missing documentation\n      nvme-types: add or update missing types and accessors\n      nvme-types-mi: remove backwards compat defines\n      nvme-types-mi: update reserved field name\n      nvme-types-base: drop depricated mask\n      nvme-types-base: rename notification mask features\n      nvme-types-nbft: rename nbft type header\n      nvme-types-nbft: update to v1.3\n      libnvme: consolidate kdoc return text\n      libnvme-mi: use callbacks for mi submit logging\n      tests: harden JSON parsing\n      build: install libnvme as versioned libnvme3 artifacts\n      build: handle should_faild deprecation\n      nvme-print-json: split fabrics Address into fields\n      ioctl: improve async passthru API\n      test: add async test case\n      docs: update repors section in REAMDE\n      nvme-types-base: add padding to nvme_lm_nvme_controller_state_data union\n      ioctl-linux: do no use uring for MI\n      no-uring: check if handle is valid\n      ioctl: rename command passthru API\n      build: enable liburing build target and test\n      ioctl: rename passthru functions\n      lib: fix overlong lines\n      linux: move crypto APIs in new header\n      lib: remove log arguments from global context constructor\n      scan: refactor filter API\n      tree: unexport libnvme_host_get_ids\n      fabrics: move hostnqn/hostid code to fabrics files\n      tree-linux: move all sysfs-related code to this file\n      build: add coverity scan back\n      build: replace wget with curl\n      build: undo clang-analyzer job renaming\n      doc: Regenerate all docs for v3.0-b.1\n      Release v3.0-b.1\n      build: install headers into versioned subdirectory\n      build: install man/html pages into versioned subdirectory\n      doc: Regenerate all docs for v3.0-b.2\n      Release v3.0-b.2\n      libnvme-wrap: drop unused code\n      plugins: add newline after json output\n      nvme-print: add nvme_show_verbose_* helpder\n      nvme-print-json: only output json if none empty\n      nvme-print-json: centralize init/finish\n      nvme: do not print status message on default\n      nvme-print: use status variable instead of errno\n      libnvme: rename Python binding to libnvme3\n      doc: Regenerate all docs for v3.0-b.3\n      Release v3.0-b.3\n      pyproject: fix toml syntax\n      plugins/ocp: fix casting from pointers with different size\n      plugins/solidigm: update printf formatting for 64bit types\n      libnvme: replace environment options with explicit APIs\n      libnvme/config: clarify internal documentation\n      doc: update the URL for the latest binary for testing\n      fabrics: make libnvmf_host_get_ids a public API\n      fabrics: check arguments in libnvmf_host_get_ids\n      lib: add global context setters for hostnqn/hostid\n      lib: add global context to libnvme_read_hostnqn/hostid\n      libnvme/test: replace env configuration with explicit\n      libnvme/examples: set default hostnqn/hostid on global ctx\n      libnvme/fabrics: decouple hostnqn pointer lifetime from fctx\n      libnvme/fabrics: do not look up hostnqn/hostid implicitly\n      libnvme/tree: do not set hostsymname in libnvme_get_host\n      libnvme/tree: rename nvme_alloc_subsystem\n      libnvme/tree: only do a lookup in libnvme_lookup_host\n      libnvme/tree: only do a lookup in libnvme_lookup_subystem\n      libnvme/tree: only do a lookup in libnvme_lookup_ctrl\n      fabrics: create handle for existing discovery controller\n      nvme-print: handle NULL phy slot pointer\n\nDavid Santamaría Rogado (1):\n      udev: don\u0027t spread variables through all nodes\n\nDedow, Karl (1):\n      plugins/ocp: Fix whitespace and style issues\n\nDennis Maisenbacher (67):\n      tests: Use raw string for compiling regex\n      tests: fix nvme_attach_detach_ns_test\n      tests: Fix nvme_copy_test python traceback fails\n      tests: Fixup nvme_create_max_ns_test\n      tests: Improve nvme_ctrl_reset_test\n      tests: Adjust ncap and nsze for nvme_format_test\n      tests: Fix nvme_get_features_test\n      tests: Use correct flag in vendor specific id-ctrl\n      tests: Fix nvme_smart_log_test\n      tests: Add feature check to nvme_compare_test\n      tests: Fix nvme_get_lba_status_test and nvme_lba_status_log_test\n      tests: Create default ns on tearDown\n      CI: Add workflow for running tests on real nvme device\n      build: Add token for coverage test\n      build: Add token for coverage test\n      tests: Introduce configurable nvme binary path\n      tests: Use json output for parsing\n      tests: use current LBA format as I/O block size\n      tests: Remove unneeded sleep statements\n      tests: Refactor prints\n      tests: Fix `subprosess.call` calls\n      tests: Use container image to run nightly tests\n      CI: add missing bind-mount option for /dev\n      tests: fix LBA format calculation\n      tests: read LBA size for validation\n      tests: fix hex to base-10 conversion in id-ctrl output\n      tests: check if verify command is supported\n      CI: move to self-hosted GitHub ARC infrastructure\n      test: add missing tests for identify functions\n      test: add tests for log functions\n      ioctl: fix nvme_lm_set_features_ctrl_data_queue\n      test: add missing tests for features functions\n      test: add tests for zns functions\n      test: add tests for miscellaneous ioctl functions\n      CI: adopt kubevirt-action for self-hosted ARC\n      ioctl: fix nvme_directive_recv_stream_status\n      test: move _cleanup_free_ to util.h\n      test: add tests for miscellaneous ioctl functions\n      nvme: fix timeout ioctl arguments\n      CI: allow manual workflow dispatches to run\n      CI: add nightly blktests\n      CI: improve nightly blktests\n      CI: checkout commit that triggered the workflow\n      CI: continue independent test cases on previous failure\n      nvme: nvme_get_log use nvme_passthru_cmd directly\n      src: rework nvme_set_features commands\n      src: rework nvme_get_features commands\n      src: rework nvme_format_nvm command\n      src: rework nvme_ns_mgmt commands\n      src: rework nvme_ns_attach commands\n      src: rework nvme_fw_download commands\n      src: rework nvme_resv_release commands\n      src: rework nvme_resv_report commands\n      src: rework nvme_io_mgmt_recv commands\n      src: rework nvme_io_mgmt_send commands\n      python: adjust README to use global_ctx\n      python: update error handling for bindings\n      nvme: refactor PI tagging for uniform behavior\n      CI: use podman as container runtime\n      CI: fix podman device permissions\n      CI: Add host_devices list to kubevirt-action\n      nvme: return a status from get_pif_sts()\n      nvme: introduce Qualified Protection Information Format (QPIF)\n      tests: add Qualified Protection Information Format (QPIF) testcase\n      libnvme: add CIU and CIRN to Identify Controller data structure\n      libnvme: fix NVME_SC_EXCEEDS_MAX_NS_SANITIZE status code value\n      libnvme: remove duplicate NVME_SC_FEAT_IOCS_COMBINATION_REJECTED\n\nDmitry Sherstoboev (4):\n      plugins/lm: Pass numd option to nvme_lm_migration_recv\n      types: Fix Live Migration SEQIND Shift and Mask\n      plugins/lm: Refine Sequence Indicator description and macro usage\n      types: Change LM CDQ sz argument from u8 to u32.\n\nDmitry V. Levin (1):\n      udev: fix warning reported by udevadm verify\n\nEli Schwartz (2):\n      fix broken includes for the uuid.h header\n      reduce the exposed interface for libnvme_dep\n\nFahim Hassan (8):\n      nvme: fix uninitialized variable in get_feature_id_changed()\n      nvme: fix uninitialized variable in passthru()\n      libnvme: fix uninitialized argument in libnvme_get_lba_status_log()\n      nvme: fix inverted null check in is_ns_mgmt_support()\n      nvme: fix potential use of uninitialized flags in passthru()\n      plugins/sed: fix null pointer dereference in sedopal_print_locking_features()\n      nvme: fix null pointer dereference in get_log_offset()\n      libnvme: validate context in libnvme_rescan_ctrl()\n\nFelix Yan (2):\n      doc: Fix short option name for cfg-file\n      doc: Fix config-schema.json\u0027s URL\n\nFrancis Pravin (59):\n      nvme: remove double free in persistent-event-log\n      nvme: fix fw-commit MUD result message\n      types: add enum for Protection Information Format\n      nvme-print-stdout: fix to print the log line by line\n      nvme-print-stdout: print MEM bit of CTRATT field\n      types: add new filed added in TP4141a\n      nvme-print-stdout: fix format index in stdout_nvm_id_ns\n      build: update libnvme wrap\n      nvme-print-stdout: Add helper function to print PIF in string form\n      nvme-print: print the new fields added in TP4141a\n      nvme: choose PIF from QPIF if QPIFS supports and PIF is QTYPE\n      nvme: add helper function to get pif and sts value\n      nvme: check MD size with PI size when PRACT set to 1\n      nvme: use proper mask to get correct lbafu value\n      types: Changed the space into tap space\n      types: add new fields added in TP4165\n      nvme-print: print the new fields added in TP4165\n      types: add new fields added in TP4142\n      types: Add enum for Completion Condition of Get LBA status command\n      build: update libnvme wrap\n      nvme-print: use Completion Condition enum\n      nvme-print: print the new fields added in TP4142\n      nvme-print-json: print CMBEBS and CMBSWTP in json format\n      nvme-print-json: print controller register values in offset order\n      nvme-print: print NSSES field of CAP register\n      libnvme: add EMVS support to sanitize command\n      types: Added enum for SMVES event of PEL log\n      build: update libnvme wrap\n      nvme: add EMVS support to sanitize command\n      nvme-print-stdout: print VERS bit of SANICAP field\n      doc: Add sanitize command emvs option\n      nvme-print: Add Sanitize Media Verification Event in PEL log\n      types: Add ETPVDS and SSI fields of sanitize status log\n      nvme-print: use NVME_GET in sanitize log\n      nvme-print: print the new fields added in Sanitize log - TP4152\n      types: add enum for the fields added in TP4160\n      build: bump libnvme wrap\n      nvme-print-stdout: print MAXWZD and NSZS bits of ONCS field\n      nvme: add Namespace Zeroes support to Write Zeroes command\n      doc: Add write zeroes command namespace-zeroes option\n      types: add enum for the fields added in TP4058\n      nvme: add the new Self-test Code of Device Self-test command\n      nvme-print-stdout: add human readable output for DSTO field\n      types: Update id-ns fields based on NVM Command Set Spec 1.1\n      types: Update nvm-id-ns fields based on NVM Command Set Spec 1.1\n      types,util: add Asynchronous Event Configuration NVMe 2.1 definitions\n      build: bump libnvme wrap\n      nvme-print: print new id-ns fields added in NVM Command Set Spec 1.1\n      types: add HDISNS field of Host Behavior Support feature\n      nvme-print: print new fields of nvm_id_ctrl\n      nvme-print: print Host Behavior Support feature fields\n      types: add enum for Identify I/O Command Set Data Structure\n      build: bump libnvme wrap\n      nvme-print: add human readable output for IOCS Data Structure\n      nvme-print: print new fields of Asynchronous Event Configuration\n      types: Update nvme_id_independent_id_ns fields based on NVMe 2.1 spec\n      nvme-print: print new fields of nvme_id_independent_id_ns\n      types,util: add enums for Boot Partition Write Protection Config feature\n      nvme-print: print Boot Partition Write Protection Config feature field\n\nGiulio Benetti (1):\n      examples: Make examples build selectable\n\nGollu Appalanaidu (12):\n      nvme: add identify controller structure 2.0 spec. fields\n      ioctl: add CDW2 and CDW3 support for Write Zeroes and Verify Command\n      ioctl: Change IOCTL for read, write and compare commands\n      ioctl: add multiple update detected result value in fw commit\n      types: add capacity management command support\n      types: add spinup control feature (fid\u003d0x1A)\n      types: add boot partition log support\n      types: add support for fid supported and effects log(lid \u003d 0x12)\n      types: add supported log pages log page (lid \u003d 0x00)\n      ioctl: add lockdown command support\n      types: add identify endurance group list (cns 0x19) support\n      nvme: add optional copy format support id ctrl field\n\nGopinath P (1):\n      plugin/ocp: Added the OCP Get Feature FID\u003dC3h command API\n\nGopinath P/Gopinath P (1):\n      plugin/ocp: Added OCP 2.7 smart extended log changes Updated the smart extended log page structure, json and stdout print ocp2.7 enhancement.\n\nGreg Joyce (12):\n      sed: Add plugin for basic SED Opal operations\n      sed: Confirm entered password before initialization.\n      sed: update SED password when initalizing\n      sed: only re-read partition table after unlock.\n      sed: perform a tper revert after lsp revert\n      tree: handle no address phy slot dirs\n      plugins/sed: add sid password change\n      sed: add \u0027--read-only\u0027 to lock/unlock commands\n      sed: extended discovery feature code printing\n      sed: improved contextual error messages\n      sed: add SED man pages\n      sed: better error messages for revert and password\n\nGuangzong Chen (1):\n      libnvme: fix SIGSEGV in __libnvme_transport_handle_open_mi\n\nGuzebing (1):\n      nvme: check MUD support before firmware commit\n\nHan Han (3):\n      spec: Use the correct url of libnvme\n      spec: Fix the sub-include dir name to nvme\n      examples: Add src/ into the include and library path\n\nHannes Reinecke (367):\n      Make systemd and uuid optional\n      Parse \u0027address\u0027 string into components\n      Fixup libuuid compilation\n      fabrics: fixup hostid size\n      fabrics: add mapping functions for discovery log entries\n      tree: Make functions static\n      Match systemd version with nvme-cli\n      tree: add \u0027nvme_host\u0027 structure\n      util: export nvme_get_attr()\n      test: allow passing in controller name\n      tree,fabrics: use topology information for discovery\n      tree,fabrics: per-controller configuration\n      tree,fabrics: detect discovery loops\n      fabrics: add \u0027verbose\u0027 option\n      tree: implement nvme_ctrl_is_persistent()\n      fabrics: \u0027tos\u0027 is invalid for loop\n      JSON configuration file handling\n      tree: add \u0027nvme_update_config()\u0027 as API function\n      tree: move config_file argument into nvme_root\n      types: add NVME_LOG_LPO_NONE\n      fabrics: Read system UUID from DMI and merge hostnqn generation functions\n      ioctl: add definitions for Namespace Write Protect Feature\n      ioctl: add \u0027nsid\u0027 parameter to nvme_identify_secondary_ctrl_list()\n      Add logging functionality to libnvme\n      tree: argument checking for nvme_create_ctrl()\n      fabrics: blank out invalid arguments in build_options()\n      fabrics: add fast_io_fail_tmo option\n      tree,fabrics: add \u0027host_iface\u0027 controller option\n      fabrics,tree: Fixes for PCIe devices\n      tree: error checking in nvme_ns_init()\n      tree: initialize subsystem in nvme_init_ctrl()\n      tree: error checking in nvme_init_ctrl()\n      tree: controller subsystem pointer might be NULL\n      tree: move static declarations into private header file\n      tree: Move structures to private.h\n      tree: add refcounting for objects\n      tree: add nvme_rescan_ctrl()\n      tree: export nvme_free_host()\n      tree: export nvme_free_subsystem()\n      tree: rename nvme_disconnect_ctrl()\n      tree: re-read \u0027state\u0027 attribute\n      Add SWIG interface generator files\n      examples/discover-loop.py: python example for nvme discovery\n      test/tree.py: add test script for the python binding\n      tree: check hostnqn and hostid when scanning topology\n      libnvme.i: decode discover log page entry fields\n      tree: initialize all lists\n      tree: rework topology deallocation\n      log: export last error message\n      libnvme.i: display last error message on connect()\n      libnvme.i: add a \u0027log_level\u0027 function to nvme_root object\n      tree: add error logging when failing to lookup subsystem name\n      tree: use \u0027stat\u0027 to lookup nvme controller\n      tree: rename __nvme_init_ctrl() to nvme_configure_ctrl()\n      tree: implement nvme_deconfigure_ctrl()\n      tree: do not free \u0027path\u0027 in nvme_init_ctrl()\n      tree: avoid crash on unset subsystem in nvme_ctrl_get_host{nqn,id}\n      fabrics: add nvme_host_t as argument to build_options()\n      tree: set errno in nvme_create_ctrl()\n      json: use nvme_msg() instead of fprintf()\n      tree.h: remove stale declaration of nvme_ctrl_get_nqn()\n      tree: rework topology for multiple hosts\n      src/Makefile: fixup depencendy for private.h\n      private.h: drop \u0027hostid\u0027 and \u0027hostnqn\u0027 from nvme_ctrl_t\n      examples,test: depend on libnvme.a\n      tree: fixup crash on pcie controller for older kernels\n      tree: better logging output\n      tree: free \u0027subsysnqn\u0027\n      tree: set default ANA state to \u0027optimized\u0027\n      tree: rework ctrl address generation\n      Merge pull request #39 from verschwindibussen/fix-shared-build\n      Merge pull request #33 from hreinecke/scanning\n      Merge pull request #42 from martin-belanger/scoped-ipv6\n      Merge pull request #46 from martin-belanger/fix-compiler-warning\n      Merge pull request #45 from igaw/update-mapfile\n      tree: remove nvme_ctrl_get_host{nqn,id}\n      fabrics: make uuid_from_device_tree and uuid_from_dmi static\n      tree: make nvme_init_ctrl() an internal symbol\n      json: allow \u0027NULL\u0027 argument to json_update_config()\n      tree: add nvme_dump_config()\n      Create make.yml\n      Merge pull request #49 from linux-nvme/hreinecke-workflow\n      Add nvme_identify_active_ns_list_csi() and nvme_identify_allocated_ns_list_csi()\n      Fix version number for meson build\n      Merge pull request #53 from hreinecke/meson-fix\n      Merge pull request #55 from igaw/fix-uuid-read-overflow\n      Merge pull request #63 from igaw/remove-systemd-dep\n      Merge pull request #58 from martin-belanger/add-more-to-python\n      Merge pull request #59 from martin-belanger/reowrk-python-exceptions\n      Add json config schema\n      Merge pull request #102 from hreinecke/config\n      Remove references to nvme_ctrl_get_nqn()\n      fabrics: use nvme_msg() instead of fprintf()\n      fabrics: decode new discovery log entry type \u00273\u0027\n      fabrics: decode discover log page flags\n      Distinguish between \u0027nvm\u0027 and \u0027discovery\u0027 subsystems\n      fabrics: set \u0027discovery\u0027 argument for unique discovery controllers\n      Merge pull request #105 from hreinecke/discovery\n      Merge pull request #109 from igaw/json-c-dep\n      fabrics: add nvmf_default_config()\n      Merge pull request #110 from hreinecke/default-config\n      Add missing symbols for discovery to map file\n      Merge pull request #112 from hreinecke/map-update\n      Merge pull request #114 from martin-belanger/add-tp8013-to-python\n      fabrics: add missing function documentation and mapfile update\n      Merge pull request #115 from hreinecke/doc-update\n      Add \u0027timeout\u0027 parameter to ioctl function\n      Add \u0027result\u0027 argument to ioctl wrapper functions\n      Merge pull request #99 from wxiong38/pel_coredump\n      Merge pull request #118 from hreinecke/timeout\n      log: fixup SPDX license\n      Merge pull request #120 from hreinecke/spdx\n      Implement \u0027dhchap_key\u0027 host and controller attributes\n      Merge pull request #100 from hreinecke/auth.v5\n      Add authentication keys to JSON schema\n      Sanitize zns command arguments\n      Merge pull request #121 from hreinecke/json-fix\n      Merge pull request #122 from hreinecke/zns-args\n      tree: fixup loop address handling\n      Merge pull request #132 from hreinecke/loop-fix\n      Merge pull request #134 from hreinecke/discovery-fix\n      Merge pull request #133 from sc108-lee/update-id-ctrl\n      Merge pull request #136 from martin-belanger/memleak-swig-module\n      Decode TLS1.3 transport security\n      Merge pull request #152 from hreinecke/tsas\n      Use argument structure for nvme_get_log()\n      Inline nvme_get_log() wrapper functions\n      Use argument structure for nvme_set_features() and nvme_get_features()\n      Use argument structure for nvme_identify()\n      Inline nvme_identify() wrapper functions\n      Use argument structure for nvme_format_nvm() and nvme_ns_mgmt()\n      Use argument structure for nvme_fw_download()\n      Use argument structure for nvme_fw_commit()\n      Use argument structure for nvme_security_send() and nvme_security_receive()\n      Use argument structure for nvme_get_lba_status()\n      Use argument structure for nvme_directive_send() and nvme_directive_receive()\n      Use argument structure for nvme_capacity_mgmt()\n      Use argument structure for nvme_lockdown()\n      Use argument structure for nvme_set_property() and nvme_get_property()\n      Use argument structure for nvme_sanize_nvm()\n      Use argument structure for nvme_dev_self_test()\n      Use argument structure for nvme_virtual_mgmt()\n      Use argument structure for NVMe I/O commands\n      Use argument structure for nvme_dsm()\n      Use argument structure for nvme_copy()\n      Use argument structure for NVMe reservation commands\n      Use argument structure for nvme_zns_mgmt_send() and nvme_zns_mgmt_recv()\n      Use argument structure for nvme_zns_append()\n      Inline nvme_flush()\n      tree: use name as argument to nvme_ctrl_lookup_subsystem_name()\n      tree: drop \u0027path\u0027 argument from nvme_init_subsystem()\n      tree: lookup correct subsystem in nvme_scan_ctrl()\n      tree: scan controllers before scanning subsystems in nvme_scan_topology()\n      Move \u0027host_traddr\u0027 and \u0027host_iface\u0027 into fabrics configuration\n      Implement nvme_errno_to_string()\n      Merge pull request #177 from hreinecke/connect_err\n      fabrics: do not treat ctrl_loss_tmo values of \u0027-1\u0027 as invalid\n      Merge pull request #178 from tbzatek/docs-updates-5\n      Merge pull request #135 from hreinecke/ctrl-loss-args\n      Merge pull request #186 from igaw/print-format-specifier\n      fabrics: add fabrics config option \u0027tls\u0027\n      tree: only open controller device node if required\n      Merge pull request #194 from hreinecke/ctrl-init\n      fabrics: kill \u0027disable_sqflow\u0027 argument to nvmf_add_ctrl()\n      Merge pull request #195 from hreinecke/disable-sqflow\n      fabrics: Remove nvmf_add_ctrl_opts()\n      fabrics: Update prototype documentation\n      fabrics: remove documentation for nvmf_add_ctrl_opts()\n      Merge pull request #196 from hreinecke/rc-cleanup\n      Update README.md\n      Merge pull request #203 from igaw/fix-error-codes\n      Merge hostname2traddr()\n      Add \u0027nvme_root_t\u0027 argument to nvme_msg()\n      Move global logging variables into nvme_root_t\n      Remove stale definition for nvme_log_message\n      libnvme/tests: fixup create-ctrl-obj.py\n      Merge pull request #204 from igaw/fix-nvme_get_log_args-layout\n      Rework nvme_scan_filter()\n      Merge pull request #202 from hreinecke/msg-redirect\n      Remove nvme_reset_topology()\n      Rename nvme_path_get_subsystem()\n      tree: document function prototypes\n      Return error from nvme_read_config()\n      Ignore errors when opening JSON configuration file\n      Merge pull request #209 from hreinecke/doc-proto\n      ioctl.h: fixup kernel-doc comments\n      linux.h: fixup kernel-doc comments\n      tree.h: fixup kernel-doc comments\n      types.h: fixup kernel-doc comments\n      fabrics.c: fixup kernel-doc comments\n      util.h: fixup kernel-doc comments\n      Fixup sphinx warnings\n      Regenerate libnvme.rst\n      Add documentation section descriptions\n      Fixup wrong kernel-doc annotations\n      tree: fixup memory leak in nvme_scan_ctrl()\n      tree: restart controller lookup\n      Add scripts to regenerate documentation\n      tree: loop controllers can have transport addresses\n      tree: loop address may be NULL\n      Merge pull request #219 from hreinecke/lookup-restart\n      tree: do not set dhchap_key to \u0027none\u0027\n      Merge pull request #220 from hreinecke/dhchap-fix\n      tree: do not print function twice\n      json: remove wrapper definitions\n      Make JSON-C mandatory during built\n      tree: add nvme_dump_tree()\n      Merge pull request #229 from igaw/remove-jsonc-ifdefs\n      Document filter functions\n      Merge pull request #284 from hreinecke/filter-doc\n      tree: link paths to namespaces in nvme_subsystem_scan_namespace()\n      tree: add nvme_ctrl_get_ana_state()\n      Merge pull request #283 from hreinecke/ana-path\n      tree: fixup coredump during nvme discover\n      linux: fixup log page offset in nvme_get_log_page()\n      Merge pull request #296 from igaw/set_default_trsvcid\n      Merge pull request #298 from hreinecke/log-page-len\n      meson: build display-tree example\n      tree: add debugging messages during scanning\n      tree: do not return error when filtering out subsystems\n      Merge pull request #319 from hreinecke/scan-filter\n      json: fix endless loop scanning for controllers\n      Merge pull request #320 from hreinecke/json-scan\n      fabrics: add \u0027nvmf_update_config()\u0027\n      Merge pull request #322 from hreinecke/update-config\n      libnvme: export \u0027nvme_lookup_ctrl()\u0027\n      Merge pull request #323 from hreinecke/export-symbol\n      tree: move nvme_init_subsystem() into nvme_lookup_subsystem()\n      tree: make subsystem name mandatory in nvme_scan_ctrl()\n      tree: rework nvme_scan_subsystem()\n      Merge pull request #324 from hreinecke/subsystem-rework\n      Update function prototype documentation\n      Merge pull request #327 from hreinecke/doc-update\n      tree: always allocate config file in nvme_read_config()\n      Merge pull request #329 from hreinecke/read_config\n      tree: update nvme_scan_filter_t usage\n      tree: filter out namespaces\n      tree: add namespace path iterators\n      tree: remove \u0027ctrl_get_ana_state()\u0027\n      tree: add \u0027f_args\u0027 argument to pass user data to the filter function\n      Merge pull request #330 from hreinecke/filter-ns\n      examples/telemetry-listen: coverity fixes\n      fabrics: coverity fixes\n      tree: coverity fixes\n      test/zns: coverity fixes\n      Merge pull request #356 from hreinecke/coverity\n      Merge pull request #361 from igaw/clarify-license\n      tree: simplifiy nvme_subsystem_lookup_namespace()\n      tree: make nvme_subsystem_scan_namespace() idempotent\n      tree: make nvme_ctrl_scan_namespace() idempotent\n      fabrics: Update controller authentication in nvmf_add_ctrl()\n      json: fixup dhchap_ctrl_key definitions\n      libnvme: accessors for dhchap_key variables\n      tree: rename controller \u0027dhchap_key\u0027 to \u0027dhchap_ctrl_key\u0027\n      Parse dhchap_host_key on controller level\n      Update json config schema for missing dhchap host key\n      linux: add nvme_lookup_keyring()\n      nvme: add \u0027nvme_insert_tls_key()\u0027 function\n      linux: add key helper functions\n      fabrics: add configuration option \u0027keyring\u0027\n      fabrics: add configuration option \u0027tls_key\u0027\n      nvme-gen-tls-key: add options to derive a TLS key\n      nvme-check-tls-key: add options to derive a \u0027retained\u0027 TLS key\n      nvme-connect: enable option \u0027--tls\u0027\n      nvme-(discover,connect,connect-all): enable options \u0027--keyring\u0027 and \u0027--tls_key\u0027\n      Print out correct TREQ strings for discovery\n      libnvme: add \u0027application\u0027 setting to the subsystem\n      libnvme: add \u0027application\u0027 setting to nvme_root\n      fabrics: filter out subsystems with non-matching application string\n      src/nvme/tree.c: make __nvme_scan_subsystem() returning bool\n      Merge pull request #737 from prashanth-nayak/hkdf_expand_label\n      libnvme: separate out a function \u0027select_hmac\u0027\n      libnvme: separate out \u0027gen_tls_identity\u0027 and reshuffle \u0027derive_nvme_keys\u0027\n      libnvme: Add base64 functions\n      libnvme: support NVMe TLS identities version 1\n      libnvme: Implement \u0027nvme_generate_tls_key_identity()\u0027\n      nvme: fixup length calculation for \u0027nvme gen-tls-key --secret\u0027\n      Merge pull request #748 from hreinecke/TP8018\n      libnvme: fixup error codes\n      libnvme: reshuffle nvme_generate_tls_key_identity()\n      Merge pull request #749 from hreinecke/TP8018-fixes\n      subprojects/libnvme: update wrapper for TP8018\n      nvme: Add version \u00271\u0027 identifier for nvme-gen-tls-key\n      nvme: print out the resulting TLS identity for \u0027nvme check-tls-key\u0027\n      nvme: sanitize nvme-gen-tls-key\n      Merge pull request #2165 from martin-gpy/warnings_verbose_level\n      meson.build: fixup \u0027join\u0027 syntax\n      Merge pull request #770 from hreinecke/fix-join.v2\n      fabrics: add \u0027concat\u0027 option\n      build: Update libnvme wrap\n      nvme-fabrics: enable option \u0027concat\u0027\n      linux: allow for NULL argument in nvme_lookup_keyring()\n      linux: add nvme_read_key()\n      linux: add nvme_update_key()\n      crc32: Add CRC32 algorithm\n      linux: add nvme_export_tls_key()\n      linux: add nvme_import_tls_key()\n      linux: rework nvme_insert_tls_key_versioned()\n      tree: read TLS key in nvme_configure_ctrl()\n      json: export TLS key in PSK interchange format\n      json: import TLS key from PSK interchange format\n      json: dump TLS key data in PSK interchange format\n      linux: Add nvme_scan_tls_keys()\n      config-schema.json.in: tls keys and keyrings are strings\n      fabrics: keyring is a long\n      libnvme: add missing symbol nvme_scan_tls_keys\n      nvme: use library functions for importing and exporting TLS keys\n      build: bump libnvme wrap\n      nvme: add new function \u0027tls_key\u0027\n      ioctl: return EPROTO when an NVMe status occurred\n      fabrics: retry discovery log page when DNR is not set\n      ioctl: Update function documentation\n      ioctl: Update stub functions to match documentation\n      ioctl: add nvme_set_features_timestamp2()\n      ioctl: add nvme_set_features_host_behavior2()\n      ioctl: add nvme_set_features_host_id2()\n      ioctl: add nvme_set_features_iocs_profile2()\n      ioctl: add nvme_get_features_timestamp2()\n      ioctl: add nvme_get_features_host_id2()\n      ioctl: Return NVMe status in nvme_directive_send_id_endir()\n      tree: optionally skip namespaces during scanning\n      linux: update TLS version 1 PSK derivation\n      linux: fixup PSK HMAC type \u00270\u0027 handling\n      sed: add \u0027--read-only\u0027 to \u0027sed initialize\u0027\n      fabrics: make \u0027disconnect\u0027 accepting only -n or -d\n      linux: set errno when nvme_generate_tls_key_identity() fails\n      test/psk: add testcase for TLS identity derivation\n      linux: rename __nvme_insert_tls_key() to __nvme_import_tls_key()\n      linux: rename __nvme_insert_tls_key_versioned() to __nvme_insert_tls_key()\n      nvme.i: fix crash on ctrl.discover() without a connection\n      nvme.i: decode \u0027tsas\u0027 discovery log page entry\n      nvme.i: fixup typo in nvme:discover\n      libnvme/nvme.i: Update subsystem definitions\n      examples/discovery-loop.py: update to use tcp transport\n      nvme/linux: add fallback implementation for nvme_insert_tls_key_compat()\n      libnvme.wrap: update to latest version\n      nvme: add --compat flag for \u0027gen-tls-key\u0027 and \u0027check-tls-key\u0027\n      libnvme/nvme.i: raise exception when disconnect fails\n      python: support \u0027with\u0027 statement for objects\n      examples/discover-loop.py: rework to use \u0027with\u0027 statement\n      examples/discover-loop.py: actually implement a discovery loop\n      nvme/linux: check for empty digest in gen_tls_identity()\n      libnvme/fabrics: remove duplicate discovery functions\n      libnvme: clarify dhchap key usage\n      fabrics: update dhchap options for discovery\n      fabrics: allow dhchap authentication for unique discovery controller\n      libnvme: drop duplicate function nvme_ctrl_get_address()\n      libnvme: drop nvme_subsystem accessors from tree.c\n      libnvme: generate read-only accessor for \u0027phy_slot\u0027\n      libnvme: read-only controller accessors\n      libnvme: read-only subsystem accessors\n      libnvme: read-only host accessors\n      libnvme: auto-generate \u0027subsysnqn\u0027 accessors\n      libnvme/fabrics; Use nvmf_context as argument to lookup_ctrl()\n      libnvme/fabrics: drop fabric_args from __create_discovery_ctrl()\n      libnvme: drop fabric_args\n      libnvme: drop \u0027struct nvmf_discovery_ctx\u0027\n      libnvme: use \u0027struct nvmf_context\u0027 as argument for __nvme_lookup_ctrl()\n      libnvme: use \u0027struct nvmf_context\u0027 as argument to _candidate_init()\n      libnvme; use \u0027struct nvmf_context\u0027 as argument to nvme_ctrl_find()\n      libnvme: Separate out _nvme_create_ctrl()\n      libnvme: use \u0027struct nvmf_context\u0027 as argument to nvmf_connect_disc_entry()\n      libnvme: Introduct _nvme_ctrl_match_config()\n      libnvme: make __nvme_lookup_ctrl() static\n      libnvme: Re-implement __nvme_lookup_ctrl()\n      libnvme: convert test/tree.c to \u0027struct nvmf_context\u0027\n      libnvme: Drop __nvme_lookup_ctrl()\n\nHanumanthu H (1):\n      add cdw13 for set_feature_args structure\n\nHao Jiang (8):\n      Add pkgconfig for libnvme-mi\n      mi: Fix C++ compiler errors\n      Add more details for return code of MI admin cmds\n      mi: Init ctrl_id within xfer\n      mi: Allow zero as a controller ID in nvme_mi_scan_ep\n      mi: add timeout functions to .map\n      mi: fix the return error code.\n      mi: fix the rc for nvme_mi_scan_ep\n\nHaro Panosyan (2):\n      plugins/solidigm : Fixing vs-internal-log to generate identify per allocated namespace.\n      plugin/solidigm fixing identify logs generation\n\nHasan Polat (2):\n      ioctl: update nvme_set_var_size_tags() to properly use reftag\n      doc: fix format command info\n\nHeitor Alves de Siqueira (1):\n      plugins/virtium: use time_t for time_stamp values\n\nIsmael Luceno (1):\n      Fix poll.h includes\n\nIsrael Rukshin (3):\n      fabrics: Fix fast_io_fail_tmo option\n      libnvme: Introduce functions to generate host identifier and host NQN\n      fabrics: Always pass hostid and hostnqn\n\nJayden Stenfort (3):\n      Plugin: ScaleFlux Seperating Types\n      Plugin: ScaleFlux Spelling\u0026Typo Fixes\n      Plugin: ScaleFlux Use NVME_NSID_ALL\n\nJeff Lien (13):\n      linux: Add size and data area parm to nvme_get_telemetry_log\n      linux: Change nvme_get_log_page to use nvme_get_log_args parm\n      types: Add Host Initiated Data Gen Number to telemetry log struct\n      types: Update persistent event entry struct added new fields\n      types: Add new Identify constant\n      types: Add support for get log - MI Command Supported\n      types: Add new enums and defines for TP-4084\n      doc: Add function nvme_init_copy_range_f1 doc\n      ioctl: Fix STC mask for device-self-test command\n      types: Add Storage Tag Check IO Control flag\n      ioctl:  Fixed get log LSP and LSI mask values\n      build: Add api-types.h to install headers\n      linux: Add nvme_get_uuid_list function\n\nJeffrey Lien (2):\n      plugins/wdc: Fix data Formatting for Latency Monitor Log Page\n      wdc: Add support for SN861 drive\n\nJeremy Kerr (119):\n      Separate libs from link flags to fix link-order compile failure\n      Build c++ objects with c++ compiler\n      ioctl: Fix incorrect cdw initialisation in nvme_set_features\n      configure: simplify config-host.h \u0026 config-host.mak generation\n      meson.build: Add ccan-required configuration macros\n      Unify configuration includes, use meson-generated configuration data\n      pynvme: Make swig optional \u0026 python bindings conditional on swig\n      log: we use bool, so include stdbool.h\n      types.h: heal -\u003e health\n      private.h: Add required includes\n      Revert \"src/Makefile: fix ccan config.h\"\n      Revert \"meson: revert to using the ccan configurator\"\n      makefiles: use config.h in examples/ \u0026 tests/\n      configure: include ccan config from top-level config.h\n      meson: use correct byteswap macro name\n      log.h: include tree.h for nvme_root_t\n      test: drop hardware-dependent tests from meson test target\n      meson: only build test/cpp if a c++ compiler is available\n      examples: Fix printf format warnings on 32-bit\n      libnvme-mi: Introduce NVMe Managament Interface library\n      mi: Add basic tests\n      examples/mi-mctp: Add subcommand support\n      mi: Add NVMe-MI Read MI Data Structure commands for controller and controller list\n      mi: Add initial Admin channel commands\n      examples/mi-mctp: Add identify subcommand\n      test/mi: Improve test OK reporting, print log data separately\n      api: move _args defintions to api-types.h\n      mi: change admin channel functions to use _args structs\n      example: provide an example of both the full and partial identify commands\n      meson: use host target for defining endianness\n      Fix %llx/%lx build warnings on powerpc\n      mi: remove unused nvme_mi_admin_identify()\n      mi: be consistent with mi function prefixes\n      mi: Add simple Admin command test\n      mi: Add Admin error test\n      mi: fixes for MI Identify command serialisation\n      mi: Add Admin channel Get Log Page command\n      examples/mi-mctp: Add Get Log Page example\n      mi: Add direct admin transfer API\n      mi: Add security send \u0026 security receive commands\n      mi: rename start argument to _read_mi_data_ctrl_list function\n      mi: Add kernel-doc documentation to mi header\n      workflows: Add mi.h to documentation format check\n      mi: Add initial mi document\n      doc: check-in processed mi.rst\n      MI: reinstate init_ep and crc32 functions for use in test\n      test: define separate library for MI unit tests\n      mi: free endpoints on root destruction\n      doc: Add MCTP scan details to mi document\n      MI: install top-level libnvme-mi.h header\n      mi: track controller lifetime under endpoint and provide endpoint scan\n      test: move some common test tools to test/utils.c\n      test: Add initial tests for mi-mctp layer\n      mi: be pedantic with message sizes and offsets\n      mi: be pedantic with response message format\n      mi: check response status after each submit()\n      mi-mctp: better handling for error/unexpected responses\n      test: move test_peer-\u003erx_fn function to transmit path\n      mi-mctp: Add support for More Processing Required responses\n      types: fix typo on nvme_mi_ccs definitions in public API\n      mi: Add types for MI Get/Set Configuration data\n      mi: Add MI configuration commands\n      mi: Add examples for MI configuration commands\n      mi: Add extended MI response status values\n      mi-mctp: suppress error on scanning endpoints we already have\n      mi: make return values + errno consistent across error paths\n      doc/meson: provide a full-path version of api_files\n      doc: Add a kdoc test for API docs\n      doc: remove github workflow for doc check\n      doc: Use correct variable in configure_file input\n      mi: Add endpoint get/set timeout API\n      mi: Add maximum More Processing Required limit API\n      mi-mctp: Add timeout support to MCTP transport\n      mi: unify MI Get Log Page function with ioctl API\n      mi: Implement Get \u0026 Set Features Admin commands\n      mi: Add identify helpers for namespace lists\n      mi: Add identify helpers for namespaces\n      mi: Add identify helper for nsid-capable Controller List\n      mi: Implement Namespace Management command and create/delete helpers\n      mi: Implement NS attach command and helpers\n      mi: Implement Format NVM command\n      mi: Implement Sanitize command\n      mi: Add Get Log Page helpers\n      example/mi-conf: Add an example for MI transport configuration\n      mi: Allow Admin-message sized More Processing Required responses\n      examples/mi-mctp: fix warning for possibly uninitialised variable\n      github workflows: Add an armhf cross build\n      github workflows: Add a powerpc64le cross build\n      mi: Add Identify function for secondary controller list\n      mi: Introduce a helper for response status, unify values with ioctls\n      mi: Move post-1.1 symbols to 1_2 section of libnvme-mi.map\n      mi: Add firmware download and commit commands\n      mi: fix get_log_page chunked offset check\n      mi: Distinguish MI status from NVMe (CDW3) status\n      mi: add nvme_mi_status_to_string()\n      examples/mi-conf: Initialise sd_bus_error\n      examples/mi-conf: account for MCTP header in route MTU\n      mi: Issue a NSID-specific Controller List Identify in nsid_ctrl_list()\n      mi: Introduce quirks and endpoint probing\n      mi: Allow probe suppression via an environment variable\n      mi: Add inter-command-delay quirk\n      mi: Add model detection via identify in nvme_mi_ep_probe()\n      mi: Print applied quirks\n      doc: Add documentation for MI probe behaviour\n      mi: Add inter-command-delay quirk for Samsung MZUL2512 devices\n      mi: Fix status extraction from cdw3 field\n      mi: endian fixes\n      mi: call nvme_mi_close on endpoint error path\n      MI: switch from libsdbus to libdbus\n      test: mi: Explicitly zero args for test API invocations\n      test: mi: Provide a full request buffer for invalid admin req tests\n      mi: Add nvme_mi_ctrl_id to retrieve controller ID\n      mi: don\u0027t return from mi_mctp_submit with a tag held\n      mi: implement length and offset alignment checks in admin_xfer()\n      mi-mctp: use a linear response buffer\n      mi: allow non-4-byte-aligned responses\n      mi-mctp: Fix free() in error path of mi_open_mctp\n      nvme: fw-download offset only describes FW offset, not file offset\n      tests: mi: Add test for dlen/doff values through raw admin_xfer interface\n\nJesse Taube (5):\n      fabrics: Fix next_line parser.\n      libnvme/json: Allow hostnqn to be optional\n      libnvme/json: Allow subsys nqn to be optional\n      fabrics: Use setup_common_context in create_common_context\n      fabrics: Use do-while instead of goto in next_line\n\nJian Zhang (7):\n      example: fix mi identify failed with error cntid\n      mi: add control primitive command\n      examples: add control primitive in mi-mctp\n      util: avoid min macro pollution\n      test: check the namespace is not cluttered with min/max\n      meson: pass -D_GNU_SOURCE to reallocarray detection\n      sandisk: fix -Wformat-truncation warning in sndk_vs_internal_fw_log()\n\nJim Munn (19):\n      build: Fix build failure in generate-accessors with -Werror set.\n      feat: fix bugs in arbitration and power-thresh commands\n      feat: Fixed uidx parameter bug.\n      feat: Add power measurement feature support.\n      util/mem: fix NULL dereference in nvme_realloc() on allocation failure\n      nvme: Add power-measurement-log command (LID 0x25)\n      nvme-print: Decode Sample Rate Scale\n      nvme-print: Decode 2 new bits in ctratt.\n      build: use MSYS2 UCRT64 for Windows CI build\n      util: Fix buffer overflow in process_field_size_default\n      completions: fix ocp plugin command list and description\n      ocp: normalize command descriptions for consistency\n      completions: add power-measurement-log command\n      fix: remove -j/--json completion for top-level subcommands\n      util: add json_object_add_value_bool() macro\n      gitignore: ignore unit-py build artifacts\n      fabrics: load fabrics module after parsing args\n      util: add optional argconfig parse hook\n      build: add python-jsonschema to Windows UCRT64 deps\n\nJinliang Wang (9):\n      mi: Add Identify helper for ns-descs and primary-ctrl-caps\n      mi: add nvme_mi_admin_admin_passthru\n      mi: fix rc checking\n      mi: rename tmp variable inside nvme_mi_admin_get_log\n      mi: use lpo and numd to chunk big get log page command\n      ioctl: fix log page offset\n      mi: fix location of spsp1 and spsp0\n      mi: set correct rc and errno when crc mismatch\n      mi: restore default ep timeout during admin_passthru\n\nJohn Meneghini (1):\n      nbft: make lookup_ctrl function public\n\nJonathan Teh (1):\n      tree: fix memory leak in nvme_ctrl_lookup_subsystem_name\n\nJonghyeon Kim (2):\n      plugins/mangoboost: Add plugin to support MangoBoost\n      Documentation: Add man page for mangoboost command\n\nJoy Gu (4):\n      avoid casting pointer arguments to argconfig functions\n      types: add cross-namespace copy formats, status codes, ONCS bits\n      nvme: allow set-features to take input from stdin\n      nvme-copy: support cross-namespace copy\n\nKarthik Balan (1):\n      plugins/ocp: fixed crash in telemetry string log output format json\n\nKeith Busch (100):\n      Initial libnvme commit\n      Add a telemetry scan example\n      Add exported symbols to libnvme.map\n      Add nvme display tree example\n      examples/telemetry: Fix scanning uevent file\n      examples: Add column disaply of topology\n      examples: Add loop discover example\n      Add documentation\n      tests: Remove some of the output\n      Add license information\n      Add README\n      util: Fix default log transfer length typo\n      tests: Fix fw log check\n      Import ccan modules\n      Split host and controller telemetry log API\n      Consolodate features into common header\n      Update .gitignore\n      Make systemd-devel optional\n      Add c++ inclusion support\n      Add licence tags, copyright, and author comments\n      Apply kernel-doc comments to more structs and enums\n      Move ccan up a directory\n      Fix copyright comments\n      Set up ccan make dependency correctly\n      Add man pages for exports\n      Fill in more documentation details\n      Update .gitignore\n      Integration fixes\n      Fix typo in comments\n      Testing rst html options\n      Merge branch \u0027master\u0027 of https://github.com/linux-nvme/libnvme\n      Fix split line documentation\n      Fix install make targets\n      Merge branch \u0027master\u0027 of https://github.com/linux-nvme/libnvme\n      Fix status code mask\n      Typo fixes\n      Move feature field decoding to utilitiies\n      Fix double free discover log\n      Merge pull request #1 from safl/master\n      Fill out additional documentation fields\n      Merge branch \u0027master\u0027 of https://github.com/linux-nvme/libnvme\n      Export single namespace open\n      Define all nvme registers\n      fix comment typo\n      Explicit casting from void *\n      minor updates\n      have tree export directly opening namespaces\n      generic whitespace strip routine\n      export metadata size\n      zns and ns-types\n      report zones helpers\n      fix up get_nsid api\n      update and inline feature decoding\n      common code all the complex value accessors\n      fix mmio accesses\n      document corner case for large nsids\n      update doc cross links\n      add lba status log helper\n      Merge pull request #2 from tbzatek/get_log_cdw10_mask\n      fix log numdu mask\n      Merge pull request #3 from tbzatek/docs-updates-1\n      Merge pull request #4 from tbzatek/build-pkg-config\n      Merge pull request #6 from hreinecke/address-parse\n      Merge pull request #5 from hreinecke/master\n      updates from integration\n      fix integration breakage\n      Merge pull request #7 from hreinecke/topology.v2\n      Merge pull request #9 from birkelund/fixes\n      Merge pull request #10 from hreinecke/nvme-cli\n      Merge pull request #11 from hreinecke/int-fixes\n      Merge pull request #12 from birkelund/fix\n      Merge pull request #13 from hreinecke/swig.v3\n      Merge pull request #14 from hreinecke/realloc\n      re-arm discovery AEN\n      Merge pull request #19 from tbzatek/status-to-string\n      Merge pull request #20 from tbzatek/json-c-build-fixes\n      Merge pull request #21 from martin-belanger/move-python-to-separate-dir\n      Merge pull request #24 from tbzatek/docs-updates-2\n      Merge pull request #15 from jk-ozlabs/fixes\n      Merge pull request #26 from hreinecke/discovery-fixes\n      Merge pull request #27 from martin-belanger/fix-empty-model\n      Merge pull request #29 from martin-belanger/fix-compilation-warning\n      Merge pull request #28 from hreinecke/topology\n      Merge pull request #30 from martin-belanger/fix-compilation-warning\n      Merge pull request #31 from martin-belanger/fix-compilation-warning\n      Revert \"tree: rework topology for multiple hosts\"\n      Merge pull request #34 from wxiong38/hostnqn_uuid_ibm\n      Merge pull request #36 from verschwindibussen/refactor-uuid_from_device_tree\n      Merge pull request #37 from verschwindibussen/install-pynvme\n      Merge pull request #38 from metaspace/nvme-iocs-wrong-cns\n      Merge pull request #40 from metaspace/fix_csi_create\n      Merge pull request #41 from birkelund/add-cap-css-csi\n      Merge pull request #522 from igaw/use-nvme_get_log_page\n      nvme: Add wait for device self test\n      fix endians\n      nvme-cli: fix extended metadata size calculation\n      nvme: fix directive receive identify offsets\n      don\u0027t include newlines in already wrapped text\n      nvme-cli: attach ns to local controller if none specified\n      libnvme: do not byte swap command dwords\n\nKhem Raj (1):\n      plugins/ssstc: Replace __uint16_t with uint16_t\n\nKlaus Jensen (26):\n      Typo fix\n      nvme/fabrics: fix compile error\n      types: add NVME_CAP_CSS_CSI\n      update libnvme.map\n      meson: use library() and rely on user settings\n      src/Makefile: fix ccan config.h\n      meson: revert to using the ccan configurator\n      types: move command parameters from ioctl.h\n      types: move the feature shift/masks from util.h\n      linux: move linux specific stuff from util.{c,h}\n      types: remove endian/mmio helpers\n      src/meson.build: install missing linux.h\n      ioctl: fix mask values for virt mgmt\n      meson: do not leak internal include directories\n      types: add fdp data structures and helpers\n      types: nsid is unused in reclaim unit handle usage\n      build: bump libnvme to f83b2c4c4738\n      nvme: add io management send/recv commands\n      nvme: add flexible data placement management commands\n      types: use nvme_timestamp for fdp events\n      nvme-print: print unused reclaim unit handles\n      nvme-print: prettify the fdp event printing\n      plugins/fdp: use the right command-line switch\n      nvme-print: print 64 bit values with json add_value_uint64\n      build: bump libnvme\n      nvme-print: pretty print fdp event timestamp\n\nKou Wenqi (1):\n      nvme: do not report error when nvme_core module is not loaded\n\nLaiwenhu (1):\n      nvme: validate storage tag size correctly\n\nLaraib Javed (5):\n      plugins/sandisk: fix memory leak in sndk_get_enc_drive_capabilities()\n      libnvme: fix null pointer dereference in _discovery_config_json()\n      nvme: remove dead initialization of data_written in get_telemetry_log()\n      netapp: fix dead store in netapp_smdevices_get_info() and netapp_ontapdevices_get_info()\n      wdc: fix null pointer dereference in get_dev_mgmt_log_page_lid_data()\n\nLeonardo da Cunha (53):\n      util: Added function to find specific UUID in UUID list.\n      plugins/solidigm: Compressing vs-internal-log log files into zip file.\n      plugins/ocp: Split ocp_get_uuid_index() into find and get functions.\n      plugins/ocp: Adjusted variable type size carrying UUID index to 8 bit.\n      plugins/solidigm: Improved Solidigm UUID index detection.\n      plugins/solidigm: Additional LID for temperature statistics.\n      types: Added Command and Feature Lockdown LID\n      plugins/solidigm: Automatic enabling Data Area 4 when retrieving Telemetry.\n      nvme-print: Added \"Command and Feature Lockdown\" string to LID 0x14\n      plugins/solidigm: Added log pages to vs-internal-logs\n      plugins/solidigm: Added workload-tracker command\n      plugins/solidigm: Added Workload Tracker Triggers and Wall Time\n      completion: add solidgm work-tracker binding\n      completion: add ocp set-telemetry-profile to zsh\n      Documentation: Added solidigm plugin commands\n      plugins/solidigm: Automatic retry smaller log chunk size.\n      plugins/fdp: Added FDP feature subcommand.\n      doc: Add nvme-fdp-feature command\n      completions: Added fdp feature auto-completion.\n      Documentation: Added solidigm plugin commands to main manual page.\n      plugins/solidigm: parse-telemetry-log aware of OCP2.5 binaries\n      plugins/solidigm: Fix parse-telemetry-log command parsing error handling.\n      documentation: Updated solidigm parse-telemetry-log source-file.\n      completions: Update solidigm parse-telemetry-log --sourcefile\n      plugins/solidigm: Updated SMART PLL Lock Loss counters field\n      plugins/solidigm: Added missing log descriptions and uuid support to some logs.\n      Documentation: updated solidigm workload tracker page\n      completions: Updated solidigm workload tracker command\n      plugin/solidigm: Additional product Telemetry parsing support.\n      plugin/solidigm: Added EXTENDED vs-internal-log option.\n      plugins/ocp: Add --all-ns option to command set-error-injection.\n      plugins/ocp: Add --all-ns option to command get-error-injection.\n      completions: Added ocp get/set_error_injection options.\n      plugins/solidigm: Added debug info to parse-telemetry-log.\n      plugins/solidigm: Better string handling on Telemetry parsing.\n      plugins/solidigm: Additional nlog warning instrumentation.\n      nvme-print-stdout: Display id-ctrl ONCS fields according to NVMe spec v.2.3\n      plugins/solidigm: Added wildcard and filters to telemetry parsing.\n      plugins/solidigm: Added some Vendor specific SMART Attribute IDs.\n      plugins/solidigm: parse telemetry error message improvements.\n      plugins/solidigm: Reverting VU SMART attribute names change.\n      plugins/solidigm: Enabled Telemetry side trace items parsing.\n      plugins/solidigm: Added Telemetry config metadata to parser output.\n      plugins/solidigm: Warning for missing Telemetry object config\n      plugins/solidigm: Fixed parse Telemetry of multidimensional arrays\n      plugins/solidigm: Removed some header includes.\n      plugins/solidigm: Removed Telemetry parser array to string conversion.\n      plugins/solidigm: Bug Fix reversed Telemetry array dimensions order.\n      plugins/solidigm: Additional telemetry configuration wildcard.\n      plugins/solidigm: Additional signature detection into Telemetry parser.\n      plugins/solidigm: BugFix dumping large telemetry logs.\n      libnvme: bugfix enabled retrieval of large persistent event log.\n      plugins/solidigm: Bug fix retrieval of large PEL.\n\nLiang Yan (2):\n      build: Add vscode directory into ignore\n      linux: Allocate aligned payload for nvme_get_telemetry_log\n\nLingkai Zuo (1):\n      plugins/amzn: Add stats support for EC2 local storage instance type\n\nLior Weintraub (1):\n      examples: fix incorrect controller status in MI info output\n\nMarkus Kurz (21):\n      src: rework nvme_dsm command\n      src: rework nvme_fw_commit command\n      src: rework nvme_security_send command\n      src: rework nvme_security_receive command\n      src: rework nvme_get_lba_status command\n      src: rework nvme_lockdown command\n      src: rework nvme_set_property command\n      src: rework nvme_get_property command\n      src: rework nvme_sanitize_nvm command\n      src: rework nvme_dev_self_test command\n      src: rework nvme_virtual_mgmt command\n      src: rework nvme_resv_acquire command\n      src: rework nvme_resv_register command\n      src: rework nvme_zns_mgmt_send command\n      src: rework nvme_zns_mgmt_recv command\n      src: rework nvme_zns_append command\n      src: rework nvme_lm_cdq command\n      src: rework nvme_lm_track_send command\n      src: rework nvme_lm_migration_send command\n      src: rework nvme_lm_migration_recv command\n      zns: add error check zns report zones\n\nMartin Belanger (286):\n      Makefile: fix libnvme_wrap targets\n      fabrics: Remove trailing newline from debugging messages\n      Merge branch \u0027logging.v2\u0027 of https://github.com/hreinecke/libnvme\n      fix memory leak\n      rename Python class names using SWIG\u0027s %rename\n      Move \u0027Python bindings\u0027 SWIG and Makefile to \u0027pynvme\u0027 directory\n      add README file for python bindings\n      Bug fix in Python SWIG module\n      Merge latest changes from master branch\n      Default empty model attribute to \u0027undefined\u0027\n      Fix compiler warning\n      Fix memory leaks and double free\n      Un-stub nvme_free_ctrl(). In other words, nvme_free_ctrl() will now properly delete ctrl objects\n      Add support for scoped IPv6\n      Fix compiler warning.\n      build: Add support for meson build system\n      Clean up Python exception handling\n      Expose C enums and #defines in Python module. Add persistent_set() method to the Python nvme_ctrl class.\n      Make Python Bindings optional\n      [Python]: Fix inaccurate Python examples\n      Add Python init() method. Move nvme_init_ctrl() from private.h to tree.h Addess review comments.\n      Add Python tests to meson framework.\n      Removed a duplicate line (read from file). I checked with Hannes and he confirmed that the line was added by mistake.\n      Fix python unit tests when run as a subproject of another project (#91)\n      Fix reading of system UUID on Debian\n      Fix host_iface offset.\n      Add discovery_ctrl_set() to Python bindings.\n      Document meson\u0027s -Db_sanitize\u003daddress option\n      Fix memory leak.\n      Replacing make by meson.\n      fix error building the man pages\n      Define ccan as a static library\n      fix license info\n      python: Add dump_config\n      tree: Add host symbolic name\n      types: Add DCTYPE to nvme_id_psd\n      tree: Add cntrltype and dctype to the controller object\n      types: Add Discovery Information Managment types\n      util: Add key-value helpers and OS identification tools\n      ioctl: Add nvme_dim_send()\n      fabrics: Add support to register with a DC\n      Move ccan definitions out of public headers.\n      fabrics: Invoke nvmf_dim() with provided tas argument\n      fabrics: add NCC to nvmf_disc_eflags\n      python: add eflags to discovery log page\n      python: add __version__ to libnvme python package\n      python: add missing ctrl attrs to Python bindings\n      examples: Add missing free()\n      fabrics: Add new TP8010 definitions\n      fabrics: Add nvmf_get_discovery_wargs()\n      python: Use nvmf_get_discovery_wargs()\n      fabrics: Filter out empty strings in add_argument()\n      examples: LID supported must be shifted right by 16\n      python: Release GIL on blocking calls\n      fabrics: Fix bad UUID size introduced in recent UUID changes\n      docs: Fixed typos and missing options\n      fabrics: Ensure host-traddr/iface consistency for \"connect-all\"\n      python: Fix segmentation fault during garbage collection\n      python: Return PyObject* from __str__() instead of a static char[]\n      python test: Check there is no SIGSEGV during garbage collection\n      python: Reformat SWIG input file\n      python, meson: Assert that deps are present for -Dpython\u003dtrue\n      Python: Add hostnqn_from_file() and hostid_from_file()\n      Python: Add support for setting/getting Host DHCHAP key\n      build, meson: Print option summary\n      build: Print option summary\n      python: Remove redundant host.set_key() method\n      python: Add setter property for controller DHCHAP Key\n      python: Change python option from combo to feature\n      nbft: Doc typo - Use nvme_nbft_free() instead of nbft_free()\n      Python: Add NBFT support\n      NBFT: Remove documentation from nbft.c since it\u0027s also in nbft.h\n      Python: make NBFT data more pythonic\n      Python: Suppress swig warnings about unnamed struct\n      python/swig: Wrap swig-sensitive struct inside #ifwdef SWIG\n      python/swig: Check swig version to determine whether -py3 is needed\n      Python: Fix crash during garbage collection\n      util: Add ipaddrs_eq() to check whether two IP addresses are equal\n      util: rename ipaddrs_eq() to nvme_ipaddrs_eq() and make public.\n      test: Add more code coverage for nvme_ipaddrs_eq()\n      tree: Use nvme_ipaddrs_eq() to compare IP addresses\n      tree: missing closedir() causes fd leak for \"/sys/bus/pci/slots\"\n      tree: Don\u0027t open nvme devices until it\u0027s absolutely required\n      json: fix seg. fault converting NULL to JSON string\n      meson: Don\u0027t hard-code path to \"internal/config.h\"\n      util: Split _nvme_ipaddrs_eq() from nvme_ipaddrs_eq()\n      tree: Add nvme_ctrl_get_src_addr() to get the controller\u0027s src_addr\n      test: add tests for nvme_ctrl_get_src_addr()\n      util: Add functions to parse the system\u0027s interfaces\n      tree: Improve TCP controller matching algorithm\n      test: add tests for new tcp controller matching algorithm\n      tree: Use early return instead of else statements\n      fabrics: lookup_discovery_ctrl() must look under host and not root\n      fabrics: For TCP/RDMA, compare IP addresses with nvme_ipaddrs_eq()\n      tree: Add 2 new public functions to lookup existing controllers\n      build: Update libnvme git SHA to pull the right version\n      fabrics: Removing duplicate code and moving to libnvme\n      README: Fix meson/python build badges\n      docs: Fix Read-the-Docs configuration (deprecated config param)\n      README: Fix meson build badge\n      build, CI: Add a GitHub Action to run the checkpatch.pl script\n      build: Update meson commands in Makefile\n      Makefile: Add new targets and update meson command syntax\n      Makefile: Add new targets and update meson command syntax\n      python, swig: add missing controller attributes\n      tree: handle the case when host_iface/host_traddr are set to \"none\"\n      python: fix typo in nvmf_discovery_log\n      python: Don\u0027t exit immediately on discovery fail.\n      python: fix iterators failing on empty lists\n      python: remove \"iter\" elements\n      meson: Use configure_file() `install` instead of install_data()\n      python bindings: add some definitions for backward compatibility\n      libnvme: Rename NVME_LOG_*_DISCOVER to NVME_LOG_*_DISCOVERY\n      meson: build libnvme directly instead of as a subproject\n      libnvme: add accessor code generation\n      docs: Fix URLs referencing deprecated libnvme repo\n      docs: Fix read-the-docs\n      PyPI: add meson options to build without nvme executable\n      PyPI: Do not install/build nvme components\n      PyPI: fix missing symbolic link libnvme.so.x -\u003e  libnvme.so.X.Y.Z\n      PyPI: Only use major version for libnvme.so\n      libnvme: Add nvme_getifaddrs()\n      docs: Make documentation build depend on -Dlibnvme and -Dnvme\n      ci: use total commit count for unique TestPyPI dev version\n      ci: do not push to TestPyPi when a git tag is pushed to repo\n      libnvme: commit pre-generated accessor files and simplify build\n      build: rename LIBNVME_ACCESSORS_3_0 to LIBNVME_ACCESSORS_3\n      libnvme.ld: remove duplicate symbols found in accessors.ld\n      libnvme: move accessor generator to tools/generator/\n      libnvme: remove stale symbols from libnvme.ld and libnvmf.ld\n      libnvme: replace accessor generator with Python and add in-source annotations\n      libnvme: annotate public API symbols with __public\n      python-libnvme: drop 1.x backward-compatibility shims\n      doc: update and polish README.md\n      doc: document default installation paths and how to override them\n      nvmf: fix timeout not applied to discovery log commands\n      nvmf: fix generator emitting setters for read-only members in .ld files\n      nvmf: clean up discovery args struct initialization\n      nvmf: replace nvmf_get_discovery_log() with opaque-args API\n      doc: consolidate contributor guidance into CONTRIBUTING.md\n      test: add unit tests for static helpers in fabrics.c\n      generate-accessors: fix stale examples and redundant code\n      generate-accessors: switch annotations to // comment style\n      generate-accessors: add lifecycle and default-value generation\n      swig: fix bugs introduced in libnvmf_context refactor\n      swig: replace libnvmf_context with dict-based ctrl constructor\n      swig: fix Py_NewRef compatibility with Python \u003c 3.10\n      swig: guard against silent attribute typos on SWIG objects\n      libnvme: move fabrics-only helpers to util-fabrics.c\n      libnvme: add missing prototypes for exported symbols\n      libnvme: add check-public-headers test\n      swig: replace hand-written accessor wrappers with auto-generated #defines\n      libnvme: rename !accessors: member annotation to !access:\n      libnvme: replace single-mode access annotation with a two-axis model\n      libnvme: prep accessor annotations and generator for Python bindings redesign\n      libnvme: rename libnvme_ns_get_uuid to libnvme_ns_copy_uuid\n      python bindings: redesign Phase 1 — generator-emitted SWIG fragments\n      python bindings: redesign Phase 2 — API surface polish\n      ci: replace webispy/checkpatch-action with upstream checkpatch.pl\n      python bindings: add PUBLISHING.md\n      python bindings: add exception hierarchy\n      python bindings: remove deprecated files\n      Makefile: add checkpatch targets\n      ci: extend check-accessors to cover all generated files\n      python bindings: table-driven fabrics config dict parsing\n      nvme.i: fix brace style for C function definitions\n      libnvme: introduce async/sync passthru API\n      libnvme: guard libnvme_submit_admin/io_passthru() against NULL hdl\n      libnvme: fix libnvme_wait_admin_passthru() ignoring CQE result\n      uring: annotate unused arguments\n      libnvme: fix uring_state never updated in __libnvme_transport_handle_open_uring()\n      libnvme: add __libnvme_ prefix to all compiler attributes\n      tree: extract TCP ctrl matching into tree-fabrics.c\n      tree: move TLS/DHChap sysfs readers to tree-fabrics.c\n      tree: rename fabrics-only functions to libnvmf_ prefix\n      fabrics: rename callbacks to hooks\n      fabrics: group hooks and user_data into struct libnvmf_hooks\n      tree/fabrics: introduce libnvme_ctrl_params and embed in libnvmf_context\n      fabrics: fix libnvmf_connect() not propagating resolved TLS key IDs\n      tree: decouple ctrl-find/alloc from libnvmf_context\n      tree: move ctrl-find cluster to tree-fabrics.c\n      ci: add no-fabrics build config and unit tests\n      build: add valgrind test setup\n      build: add ASan+UBSan test setup\n      build: add valgrind suppressions and ASan+UBSan CI flag\n      libnvme: fix hostid leak in libnvme_create_host()\n      generator: add nested struct accessor support\n      libnvme: apply annotation to nested structs\n      fabrics: replace hand-written APIs with generated ones\n      libnvme: remove libnvmf_ctrl_get_fabrics_config()\n      libnvmf: add convenience setters for parameter groups\n      libnvme: add libnvme_ctrl_is_transport_fabric()\n      libnvme: add NVMe controller ownership registry\n      nvme: add registry plugin and orchestrator column\n      libnvmf: wire registry into connect and disconnect paths\n      nvme: add man pages for registry commands and update disconnect-all\n      libnvme: move fabrics include list into its own file\n      libnvme: pass global context to registry public APIs\n      libnvme-python: make registry python test robust to spawn/forkserver\n      nvme: rework the registry command-line interface\n      fabrics: use -t for the disconnect-all --transport short option\n      fabrics: add --owner to connect, connect-all and discover\n      libnvme: test that registry attribute values round-trip verbatim\n      libnvme: guard registry cleanup against instance reuse with uevent_seqnum\n      doc: add libnvme registry overview (REGISTRY.md)\n      nvmf-autoconnect: tag connections with --owner\u003dautoconnect\n      tests: update registry CLI test for reworked nvme registry interface\n      python-ci: run the unit tests a second time without valgrind\n      libnvme/json: free the subsystem object when skipping discovery subsystems\n      libnvme/json: fix misplaced \"required\" keys in the config schema\n      libnvme/json: write the config as an object, keep reading the legacy array\n      libnvme/test: fix exit-code capture in config-diff.sh\n      libnvme/json: persist the registry owner in the config file\n      doc: document nvme-cli-ai companion repository\n      libnvme: drop the log messages from the no-netdb stubs\n      libnvme: add shared fabrics helpers in preparation for exclusion list\n      libnvme: add the libnvmf_tid transport identity\n      libnvme: add the NVMe-oF exclusion list\n      plugins/exclusion: add the nvme exclusion management plugin\n      nvme-cli/fabrics: add --exclude to nvme disconnect\n      doc: add NVMe-oF exclusion list documentation\n      doc: move REGISTRY.md under libnvme/design/\n      nvme-cli/fabrics: note an excluded target on connect under --verbose\n      libnvme: substitute RUNDIR into the registry udev rule\n      plugins/exclusion: operate on the default list when --name is omitted\n      libnvme: make discovery connects honor the exclusion list\n      libnvme/doc: state the library/application boundary\n      libnvme/doc: add the smart-TID design\n      libnvme/tid: reject hostnames, canonicalize numeric addresses\n      libnvme/tid: drop get_hash() and equal()\n      libnvme/tid: replace per-field setters with a set_identity triplet\n      libnvme/fabrics: use str(), not get_canonical(), in the exclusion log\n      libnvme/tid: group functions by role in tid.c/tid.h\n      libnvme/util: reimplement numeric address helpers without getaddrinfo\n      libnvme: reject hostname addresses instead of resolving them\n      nvme-cli/fabrics: resolve hostnames before handing addresses to libnvme\n      libnvme/test: drop the netdb gating from the libnvme tests\n      libnvme: classify scoped IPv6 addresses with the TID\u0027s numeric test\n      doc: add NVMe-oF connection configuration documentation\n      libnvme/config: add an internal INI reader\n      libnvme/config: add the parameter store and key table\n      libnvme/config: add an INI-format NVMe-oF config parser\n      libnvme/config: resolve the cascade into the connection list\n      libnvme/config: publish the resolved configuration API\n      libnvme/config: add the connect argument emitter\n      libnvme/fabrics: use host_iface, not trsvcid, in libnvmf_add_ctrl()\n      meson: stop deriving RUNDIR from --prefix\n      nvme-cli/fabrics: add --idempotent to nvme connect\n      libnvme/fabrics: add --devid-file to nvme connect\n      libnvme/config: add the configuration write side\n      libnvme/config: deduplicate CONFIG_MAIN_PATH\n      libnvme/python: add config_read() and config_validate()\n      doc: add NEWS.md\n      nvme-cli: add the config.json reader for INI conversion\n      fabrics, nvme-cli: add the discovery.conf reader for INI conversion\n      nvme-cli: add the config-convert command\n      libnvme/design: fix stale config-convert references in CONFIG.md\n      doc: add nvme-config-convert man page\n      tests: extract shared command/logging infra into TestNVMeBase\n      tests: add end-to-end coverage for nvme config-convert\n      libnvme/config: apply a parameter store to a connect context\n      fabrics, nvme-cli: consume the INI config directly from the CLI\n      libnvme: fix regressions from the implicit host-lookup removal\n      libnvme: consolidate libnvme_get_host() into tree.c\n      libnvme/fabrics: drop the dead JSON config loops and parser hooks\n      meson: stop installing an empty discovery.conf stub by default\n      nvme-cli: retire --dump-config from discover/connect-all/connect\n      doc: add nvme-fabrics.conf(5) man page and sample file\n      libnvme/test: check fopen() before fclose() in config-emit\n      nvme-cli: rework \"nvme config\" into config-validate/config-show\n      nvme, plugins/config: migrate config-* into a config plugin\n      nvme: fabrics_config_validate: reject a missing config file\n      nvme: fix a crash in config-validate/config-show/config-convert under -o json\n      libnvme: fix bogus host-lookup failure in NBFT discovery\n      nvme: fix legacy config.json auto-conversion naming\n      libnvme: drop the legacy JSON config path and json.c/json-c\n      libnvme/test: replace tree-dump with a JSON-free scan_topology test\n      libnvme/test: restore hostnqn precedence test coverage\n      fabrics: don\u0027t resolve host_traddr as a hostname\n      libnvme: validate FC WWN addressing in tid_sanitize_addr()\n      nvme: add JSON output to config show\n      doc: add man pages for config show and validate\n      libnvme: write registry entry on an already-connected controller\n      fabrics: check registry owner before connect-all/discover\n      libnvme: let the accessor generator override the naming segment\n      libnvme: generate the trivial libnvme_global_ctx bool accessors\n\nMartin George (125):\n      fabrics: update log level for write failures\n      tree: avoid segfault if subsysnqn is not available\n      fabrics: sanitize dump-config output\n      nvme-tree: avoid segfault if auth keys are unavailable\n      json-schema: add dhchap_key details to host section\n      libnvme.map: add nvme_ctrl_is_persistent()\n      nvme-print: fix segfault in supported-log-pages json output\n      nvme-doc: update man page for supported-log-pages\n      nvme: fix block count and data size logic\n      nvme-print: sanitize supported-log-pages output\n      fabrics: fix fc config JSON file handling\n      fabrics: prevent \u0027nvme connect\u0027 to well-known discovery NQN\n      nvme-print: fix counter while looping through uuid_list\n      nvme-tree: avoid warning in \u0027list-subsys\u0027\n      tree: fix segfault in nvme_scan_subsystem()\n      udev-rule: apply round-robin iopolicy on i/o subsystems alone\n      udev-rules: set ctrl_loss_tmo to -1 for ONTAP NVMe/TCP\n      udev-rules: rename netapp udev rule\n      json-schema: add keyring and tls_key details\n      nvme: restric hmac options for gen-tls-key\n      fabrics: fix invalid output format error during nvme connect\n      fabrics: fix connect error if hostid file does not exist\n      nvme-print-stdout: enhance connect message\n      fabrics: move hostid/hostnqn warnings to verbose level\n      linux: avoid segfault in check-tls-key due to null hostnqn/subsysnqn\n      nvme: print inserted tls key for check-tls-key\n      nvme-print: fix typo in list verbose output\n      nvme-print: print more details in ns-descs verbose output\n      nvme-netapp: add nspath tlv handling\n      nvme: print retained key for gen-tls-key\u0027s -i option too\n      nvme: check-tls-key fails despite having hostnqn file\n      tree: fix mem leak in nvme_ns_init()\n      fabrics: fix mem leak in nvmf_check_hostid_and_hostnqn()\n      nvme: fix mem leak in multiple key related functions\n      tree: fix segfault in nvme_free_tree()\n      nvme: update parse_args() return value handling\n      nvme: fix verbose logging\n      fabrics: print an error for ENOENT too\n      nvme: avoid segfault in show-topology\n      fabrics: avoid potential segfault in nvmf_dim()\n      netapp: fix uninitialized value from heap error\n      netapp: segregate the print routines\n      netapp: print output for single device too\n      nvme-print: add subsystype to the list-subsys output\n      nvme-print: update subsys verbose outputs\n      nvme-print: sanitize error-log output\n      nvme: update nvme_insert_tls_key_versioned() return handling\n      fabrics: fix incorrect access filename check\n      netapp-smdevices: segregate print routines\n      netapp-smdevices: print single device output too\n      tree: fix dhchap_key mem leak\n      tree: fix dhchap_ctrl_key mem leak\n      tree: fix tls key mem leak\n      nvme: fix uninitialized value in error-log\n      nvme-print-stdout: update changed-ns-list-log output\n      nvme-print-json: update JSON verbose output for nvm-id-ctrl\n      nvme-print-json: display only verbose output\n      nvme: update tls_key() handling\n      netapp-smdev: add err msg for no smdevices\n      netapp-ontapdev: add err msg for no ontapdevices\n      netapp-ontapdev: add verbose output\n      netapp-ontapdev-doc: add verbose details\n      nvme: update messages for few misc functions\n      fabrics: update return values for dim\n      netapp-ontapdev: fix fw version handling\n      netapp-ontapdev: fix JSON output for nsze \u0026 nuse\n      nvme-netapp: update err messages\n      netapp-smdev: remove redundant code\n      netapp-smdev-doc: add verbose details\n      netapp-smdev: add verbose output\n      udev-rules-ontap: switch to queue-depth iopolicy\n      nvme-print-stdout: add descriptions for nsze, ncap \u0026 nuse\n      nvme-print-stdout: add details in list-ns verbose output\n      nvme: make -v output consistent with -H output for nvme get-property\n      nvme: make -v output consistent with -H output for nvme get-feature\n      nvme: make get-feature JSON output print everything\n      nvme: check for valid output format\n      netapp-ontapdev: update basestr headers in verbose output\n      netapp-smdev: update basestr header in verbose output\n      netapp-ontapdev: update err msg for no ontapdevices\n      netapp-smdev: update err msg for no smdevices\n      netapp-ontapdev: correct the basestr header\n      tree: add routine to fetch subsys model\n      tree: add routine to fetch subsys firmware rev\n      netapp-ontapdev: add subsysname to the verbose output\n      netapp-ontapdev: add subsysname to regular output\n      nvme-print: display model in list-subsys output\n      nvme-print: display fw-rev in list-subsys output\n      tree: add routine to fetch subsys serial number\n      build: bump libnvme wrap\n      nvme-print: display serial num in list-subsys output\n      nvme: fix mem leak in nvme copy\n      netapp-ontapdev: update invalid device handling\n      netapp-smdev: update invalid device handling\n      libnvme: sanitize free() handling\n      nvme-cli: sanitize free() handling\n      nvme: update the tls \u0027compat\u0027 option documentation\n      test/mi: avoid compile warning in test_admin_invalid_formats()\n      fabrics: fix uninitialized value in _nvmf_discovery()\n      fabrics: fix mem leak at nvmf_discovery_config_file()\n      fabrics: fix concat during nvme connect-all\n      fabrics: add error if --tls and --concat are invoked together\n      fabrics: add error if no dhchap-secret is specified with --concat\n      fabrics: add error if dhchap-ctrl-secret is specified with --concat\n      fabrics: fix fabrics_connect() error message\n      fabrics: fix mem leak at nvmf_connect()\n      fabrics: add additional debug messages for --tls and --concat\n      tree: fix mem leak in list-subsys verbose option\n      nvme: sanitize call to strerror()\n      nvme: standardize nvme_strerror() usage\n      tree: update nvme_scan_ctrl() return handling\n      fabrics: update get_entity_name() return handling\n      nvme: update format specifier in nvme_show_error()\n      tree: fix nvme_subsystem_scan_namespaces() return handling\n      nvme: fix segfault at nvme_match_devname()\n      nvme-print: align print output for get-feature host behavior\n      nvme-print: align print output for get-reg cc\n      nvme-print: align print output for get-reg cap\n      fabrics: permit bi-auth with secure concat TLS\n      tree: avoid updating --tls in nvme_read_sysfs_tls()\n      fabrics: add helper to update tls and concat\n      fabrics: update device connect message\n      fabrics: avoid connect segfault for invalid param\n      fabrics: sanitize traddr \u0026 trsvcid handling during connect-all\n      nvme: ensure log_level is properly updated\n\nMartin Joerg (1):\n      nvme: Fix invalid memory access in show_registers\n\nMartin Wilck (5):\n      fabrics: fix conditions in nvmf-autoconnect.service\n      fabrics: autoconnect: add service unit for connecting NBFT subsystems\n      fabrics: add udev rule to avoid renaming nbft interfaces\n      nbft: avoid duplicate entries in ssns-\u003ehfis\n      nvmf-autoconnect: add NetworkManager dispatcher script\n\nMateusz Kozlowski (2):\n      nvme: Fix nvme format block-size option handling\n      plugins/zns: Fix offset in report zones\n\nMatt Johnston (4):\n      mi: provide a facility for transports to describe endpoints\n      mi: Add MI endpoints to root_t, and add iterators\n      mi: Add facility to scan MI endpoints from MCTP daemon\n      examples/mi-mctp: Add \u0027dbus\u0027 option\n\nMaurizio Lombardi (23):\n      mi: fix a memory leak in nvme_mi_open_mctp()\n      mi: fix a static checker warning in examples/mi-mctp\n      util: fix a file handle leak in nvme_uuid_random()\n      fabrics: fix a check-after-dereference error in nvmf_discovery_log()\n      nvme: fix rnlpt to_string() values.\n      fabrics: fix potential invalid memory access in __nvmf_supported_option()\n      Revert \"nvme: Masks SSTAT in sanize-log output\"\n      libnvme: fix a memory leak in read_discovery()\n      libnvme: fix a memory leak when calling read_ssns()\n      create-ns: align the namespaces to 1Mib boundaries when using SI suffixes\n      fabrics: check the read() return value\n      nvme: fix error path if write() fails in get_telemetry_log()\n      types: add the nvme Cancel command opcode\n      nvme-print: add the cancel opcode to the nvme_cmd_to_string() list\n      nvme: telemetry: report the correct error if the ioctl() fails.\n      nvme-print-json: add missing va_end()\n      linux: avoid potential null pointer dereference\n      mi-mctp: initialize the rc variable in handle_mctp_endpoint()\n      plugins/solidigm: fix use after free.\n      ns_descs: prevent buffer overrun and memory corruption\n      nvme: Fix get-feature on big-endian systems\n      libnvme: propagate the error to the caller if nvme_get_log_page() fails\n      Add nvme_fabrics module loading function\n\nMichal Rábek (8):\n      lib: save one strdup by using GNU basename() implementation\n      build: fix musl build\n      build: add a musl build configuration\n      ci: add a musl build job\n      test: fix musl libc test fail due to locale differences\n      test: fix \u0027diff --unified\u0027 failing on Alpine Linux\n      ci: add build job in an Alpine container with musl\n      build: add an option to specify a list of plugins to include\n\nMilan Broz (1):\n      sed: Fix parsing of Discovery0 features\n\nMinh Hoang (Storage HW) (1):\n      Fixed OCP Latency Monitor stdout spacing in column header\n\nMinsik Jeon (8):\n      nvme: use correct telemetry log size\n      rpm: Add missing rule and service files\n      nvme-print-json: Bugfix status json key of sanitize-log\n      plugins/fdp: bugfix error check to validate output format\n      nvme: Support show-regs for nvmeof\n      plugins/ocp: Align ocp_smart_extended_log struct.\n      ocp-nvme: Update ocp v2.6 Smart Information Extended\n      ocp-nvme: Add missing data media_dies_offline to smart_extended_log.\n\nMinwoo Im (7):\n      tree: add namespace chrdev name to nvme_ns\n      tree: rename namespace function name chrdev to generic\n      types: add opcode field to error log page (TP4113)\n      build: Bump up libnvme wrap\n      print: print csi and opcode in error log (TP4113)\n      tree: fix generic device open failure\n      nvme-print: Unify number base format for nsid\n\nNate Thornton (15):\n      ioctl: set data length when retrieving LBA status\n      types: Add TP4159 PCIe Infrastructure for Live Migration definitions\n      types: Live Migration\n      ioctl: Live Migration\n      build: bump libnvme wrap\n      print: OACS Host Managed Live Migration Support (HMLMS)\n      plugin/lm: Introduce Live Migration plugin\n      types: Add Create Queue Specific (CQS) shift and mask for LM CDQ command\n      nvme: add --block-size option to io commands to bypass identify commands.\n      completions: add --block-size option to io commands to bypass identify commands.\n      docs: update with new --block-size\u003d argument for compare/read/write\n      logging: suppress logging except during normal output\n      ocp: Add all statistics to the map table\n      lm: Migration Recv displayed suspend status is incorrect\n      nvme: Allow commit action \u003d 0b011 (replace and activate immediate)\n\nNick darkfiberiru Wolff (1):\n      nvme: apply user-specified timeout via transport handle\n\nNilay Shroff (52):\n      nvme: Don\u0027t seg fault if given device is not char/block device\n      libnvme : record the nvme pci adapter physical slot\n      tree: Add NVM subsystem controller identifier\n      fabrics : allow host to create duplicate connections to target\n      nvme-print: Print cntlid number for controller\n      tree: add support for discovering nvme paths using sysfs multipath link\n      tree: add queue-depth attribute for nvme path object\n      tree: add attribute numa_nodes for NVMe path object\n      test: extend sysfs tree dump test\n      nvme-list: fix verbose JSON output for \u0027nvme list\u0027 command\n      nvme-list: make verbose JSON output backward compatible\n      nvme: support \u003cdevice\u003e option in show-topology command\n      nvme: extend show-topology command to add support for multipath\n      nvme: add common APIs for printing tabular format output\n      nvme: add support for printing show-topology in tabular form\n      nvme: avoid printing iopolicy in list-subsys output\n      nvme: add iopolicy field in JSON output\n      nvme-cli: extend show-topology tabular output for non-multipath subsys\n      nvme-cli: extend show-topology tabular output for multipath subsys\n      libnvme: annotate libnvme_path::ana_state with !accessors:none\n      libnvme: annotate libnvme_path::numa_nodes with !accessors:none\n      libnvme: annotate libnvme_subsystem::iopolicy with !accessors:none\n      libnvme: add support for retrieving per-path gendisk I/O statistics\n      libnvme: add support for retrieving namespace gendisk I/O statistics\n      libnvme: add support for per-path diagnostic counters\n      libnvme: add support for namespace diagnostic counters\n      libnvme: add support for nshead diagnostic counters\n      libnvme: add support for ctrl diagnostic counters\n      nvme: add support for unsigned and long types in table_get_value_width()\n      nvme: use table_get_value_width() in table_print_centered()\n      nvme: add support for float and double types in table_print_XXX()\n      nvme: allow table output to be directed to a FILE stream\n      nvme: add sigaction for SIGWINCH\n      nvme: add generic top-like dashboard framework\n      nvme: add nvme top command\n      nvme-top: avoid NULL dereference on non-multipath host\n      libnvme: fix memleak in libnvme_subsystem_set_ns_path\n      nvme-top: preserve selected subsystem across topology refresh\n      util/table: fix memory leak in table_add_columns_filter()\n      util/table: extend table APIs to support fixed width column\n      nvme: use AUTO_WIDTH for show topology tabular output\n      nvme-top: use fixed width columns\n      build: add Clang Static Analyzer support\n      libnvme: update diag attribute paths\n      libnvme: rename diag attributes and update paths\n      build: add Clang analyzer workflow\n      build: use fedora container for analyzer workflow\n      nvme-top: restore selected subsystem to the first entry\n      nvme-top: support paging in the top dashboard\n      nvme-top: synthesize NVMe kobject uevent on ENOBUFS\n      libnvme: return status from libnvme_refresh_topology()\n      nvme-top: avoid recreating the global NVMe context on topology updates\n\nNitesh Shetty (1):\n      nvme: plugins/fdp, check endurance group identifier\n\nNitin Sao (9):\n      types: add new field added in TP4090\n      types: add new field added in TP4099\n      build: bump libnvme wrap\n      nvme-print: add new field added in TP4090\n      nvme-print: Added print for two new fields for HMB feature\n      types: Added new controller attribute as per TP4104\n      types: Added new field CSER in enum as per TP4167\n      build: bump libnvme wrap\n      nvme-print-stdout: Added print for new field CSER (TP4167)\n\nOliver Upton (1):\n      common.h: Avoid using unsupported load/store instructions in arm64 VMs\n\nPaul Wood (1):\n      ocp-telemetry-decode: fix ascii string lookup\n\nPrashanth Nayak (2):\n      nvme: Add length field to Hkdf-Expand-Label computation\n      linux: Correct error handling for derive_psk_digest\n\nPraveen Kumar B/Praveen Kumar B (1):\n      pulgin/ocp: Added the OCP2.7 supported Get feature FID\u003dCAh command api\n\nSagi Grimberg (7):\n      fabrics: restore hostname traddr support\n      fabrics: fix endless loop in connect-all for NVME_NQN_CURR\n      fabrics: don\u0027t treat host_traddr \u0027none\u0027 as a valid hostname\n      nvme-print: print the nvme generic name in json output as well\n      nvme-print: fix wrong list-subsys output when ns are attached to different ctrls\n      make: fix make rpm target\n      udev: Add custom udev rule for the Vast Data Block array\n\nSam James (5):\n      test: handle POSIX ioctl prototype\n      meson: make building tests conditional\n      Use C99 types for uint32_t\n      nvme: Use C99 types for uint32_t\n      plugins/innogrit: `u_char` -\u003e `unsigned char`\n\nSami Waheed (1):\n      Update ioctl.h\n\nSarah Ahmed (8):\n      fabrics: fix inverted child controller check in _nvmf_discovery()\n      wdc-nvme: fix null dereference of sph in get_dev_mgmt_log_page_lid_data()\n      tree: replace strdup with xstrdup in nvme_alloc_subsystem()\n      wdc-nvme: validate PCI ID lookup in wdc_log_page_directory()\n      sfx-nvme: fix sizeof mismatch in calloc in nvme_dump_evtlog()\n      ioctl-linux: fix uninitialized cmd32.result in ioctl_passthru32()\n      ocp-smart-extended-log: fix sizeof mismatch in malloc for get_c0_log_page()\n      wdc-nvme: replace wdc_get_pci_ids() with nvme_get_pci_ids()\n\nSebastian Brzezinka (3):\n      nvme-print: check if controller belong to SPDK\n      plugins/spdk: plugin to list SPDK subsystems\n      nvme-print: expand the maximum field length to prevent misalignment\n\nShin\u0027ichiro Kawasaki (1):\n      fabrics: Use corresponding hostid when hostnqn is generated\n\nSimon A. F. Lund (2):\n      Fix dependency on systemd\n      Makefile: add \u0027make uninstall\u0027\n\nSivaprasad Gutha (4):\n      plugins/micron: update to support latest products\n      plugins/micron: adding missing product support\n      nvme: plot eye chart data and hex dumping VS eye data\n      nvme: Added message key for printable eye in normal format\n\nStefan Hajnoczi (1):\n      nvme: fix /dev/spkd/ typo\n\nStellios Leventis (1):\n      plugins/wdc: Extend SN530 support.\n\nStephen Bates (1):\n      ocp-nvme: Add a different formatting for JSON output\n\nStephen Cheng (1):\n      tree: Fix potential NULL pointer dereference in nvme_host_get_ids()\n\nSteve Chang (1):\n      doc: fix typos and grammar issues in README.md\n\nSteven Seungcheol Lee (81):\n      types: fix wrong bits nvme_id_psd apw[178:176], aps[183:182]\n      types: Add New fields on PEL based on NVMe 2.0a\n      types: Add Identify for CNS 08h NVMe spec 2.0a based\n      types: fix(Add missing fields rrl, frl, lbafe)\n      types: Add missing Zone Attributes Information on zone descriptor\n      doc: There is no nvme_host_mem_buf_desc in source files\n      Add libjson version check on configure to fix build error\n      doc: Add ocfs explaination\n      Add missing function(nvme_get_log_zns_changed_zones) to map file\n      zns: Add support for zone random write area (zrwa)\n      build: Add subpackages contents to .gitignore\n      meson: ssl version checking allowed version only\n      util: modify flbas rsvd bits to be used\n      ioctl: Modify identify command argument based on spec\n      types: Add NVM Command Set id-ns structure\n      ioctl: Add identify ioctl for CNS 09h, 0Ah\n      nvme: Add nulbaf(Number of Unique Capability LBA Formats) field on nvmd_id_ns\n      nvme: get log domain id included in Log Specific Identifier\n      ioctl: nvme_io_args.dspec(Directive Specific) value is 16 bits\n      types: fix status code type bug (wrong masking)\n      types.h: Key Value Command Set Identifier added (NVME_CSI_KV)\n      ioctl.h: ns list bug fix (wrong cns value)\n      libnvme: export \u0027nvme_scan_ctrls\u0027\n      meson: libsystemd \u003c\u003d 219 does not support sd-bus, sd-event\n      rpmbuild: Enable \u0027make rpm\u0027 to build rpm pkgs #408\n      completion: fix typo, add missing args\n      nvme.c: Check Firmware Update Granularity in fwdl\n      doc: fix kernel-doc-check warning\n      fdp: Fix wrong Reclaim Unit Handle Status size\n      nvme: Fix parameter limit range\n      types.h: Add FDP related Status Code\n      types: Add ns-mgmt host software specified fields\n      types: Add IO command set specific field on nsmgmt\n      nvme-print: Add VWCNP on NSFEAT of id-ns\n      nvme-print: Add new fields print on id directive\n      nvme: Add dtype, dspec on write-zeroes, write-uncor\n      nvme: Add ns-mgmt host software specified fields\n      nvme: Add zns specfic field for create ns\n      build: Bump libnvme.wrap to align create ns args\n      ioctl: io management send, receive args fix\n      fdp: set-events feature is saveable\n      nvme: fix io_mgmt args parse error\n      build: Bump libnvme wrap to fix io_mgmt apis\n      nvme-wrap: do_admin_args_op should not clear args timeout\n      nvme: Do not map status to errno codes\n      tree: Modify label name close_fd to close_dev\n      Makefile: add standalone build\n      meson: Add libhugetlbfs option to not included in static\n      build: Add static build on CI target\n      build: bump libnvme to disable tests option\n      nvme: reduce identify cmd issue\n      nvme: fix overflow possiblity\n      README: Add make static explanation\n      nvme: fix lbaf inuse to use 6:5 bits\n      ioctl: refactoring set_features\n      ocp-nvme: remove ocp log page version checking\n      ocp-nvme: Add LMDATA-37 for Latency Monitor Log\n      ocp-nvme: ocp plugin version update\n      ocp-nvme: Recommit removed patch\n      types: Add id-ctrl CTRATT.RHII enum\n      ocp-nvme: Update ocp v2.6 Hardware Component\n      ocp-nvme: Add Error Injection type from ocp2.6\n      rpm: use defined prefix from meson\n      nvme-print: Add id-ctrl CTRATT.RHII, using enum\n      build: bump libnvme wrap\n      print: Supported Log lidsp print updated NVMe v2.1\n      nvme: telemetry ctrl-init need to clear RAE\n      ioctl,types: telemetry log update based NVMe v2.1\n      mi: telemetry log update based NVMe v2.1\n      build: bump libnvme wrap\n      nvme: Host-init telemetry log mcda field added\n      types: Update id-ctrl field based on NVMe 2.1 spec\n      types: use __le16 instead of __u16 for data fields\n      types: Add enum for nvme_id_ctrl.trattr\n      ocp: TCG Configuration Log field added ocp v2.6\n      build: bump libnvme wrap\n      print: Add missing fid to string\n      print: id-ctrl print updated based on NVMe v2.1\n      plugins/ocp: Use structure for ocp smart log\n      nvme: add error message for mmap_registers\n      mi: Add ISH bit (admin command cflags)\n\nStuart Hayes (6):\n      nbft: add NBFT v1.0 table support\n      nbft: added NBFT v1.0 table support\n      nbft: add the nbft show plugin\n      nbft: fix tcp/dhcp address fallback retry\n      fabrics: fix NULL dereference in nvmf_update_tls_concat\n      nbft: use the correct interfaces for NBFT connections\n\nSwapna Samoju (1):\n      micron: add smart-log and id-ctrl commands\n\nSwapnil Dinkar (1):\n      plugins/amzn: add stats support\n\nTetsuya TAKAHASHI (2):\n      ocp: fix GUID output\n      ocp: fix option handling in internal-log\n\nThomas Weißschuh (1):\n      util: Add feature length for host memory buffer\n\nThu Nguyen (1):\n      Update mctp APIs to mctp codeconstruct version 2.0\n\nTokunori Ikegami (767):\n      util: Add get feature length 2 API to support direction parameter\n      nvme-print: Display smart log data units read and written SI value\n      util: Add file stream parameter to print word wrapped\n      MAINT: util: Delete duplicated OPT_LONG definition\n      util: Parse suffix binary value as unsinged long long correctly\n      doc: Add storage-tag option description for compare, read and write commands\n      types: Add abort self-test code value definition\n      nvme: Use self-test code definition values instead hard-coded values\n      nvme: Ignore device self-test wait option for abort operation\n      nvme: Add device self-test SIGINT signal handling for wait option to abort\n      nvme: Move static variable definitions to top of file\n      doc: Update device-self-test command documentation\n      nvme: Use abort self-test code definition value instead hard-code value\n      nvme: Filter out status flags for get feature command\n      unit: Add test-argconfig-parse\n      util: Revert JSON output to plain numbers\n      nvme: Continue get feature on invalid NS error to get multiple feature ids\n      nvme: Align get feature data buffer length by page size to allocate\n      util: Add argconfig seen flag parameter to check if feature NSID set\n      plugins/ocp: Add support for EOL/PLP failure mode feature\n      plugins/ocp: Add support for clear PCIe correctable error counters feature\n      plugins/ocp: Refactor to clear feature identifier C1h and C3h\n      plugins/ocp: Add set feature EOL/PLP failure mode no-uuid option\n      util: Introduce argconfig simple helper to check seen condition\n      nvme: Check fw-commit command support MUD\n      nvme-print: Fix nvme show status function indentation errors\n      util: Use argconfig commandline options pointer directly\n      nvme: Fix format command function indentation errors\n      util: Cleanup argconfig parse function\n      nvme-print-json: Add json output status function\n      nvme: Add support for NVMe-MI receive command\n      nvme: Fix passthru command function indentation errors\n      nvme: Use stdout for passthru and submit_io commands success messages\n      nvme: Add support for NVMe-MI send command\n      doc: Add eol-plp-failure-mode command documentation\n      doc: Add clear-pcie-correctable-error-counters command documentation\n      doc: Add nvme-mi-recv command documentation\n      doc: Add nvme-mi-send command documentation\n      doc: Documentations maintenance changes\n      nvme: Fix format command to skip to reread NSID all block device\n      nvme-printf: Add show error function for nvme list command json output\n      util: Check output format json for json error message output\n      nvme: Use nvme show error API to outptu stderr messages for json format\n      nvme: Check validate output format err value instead of flags\n      nvme: Fix indentation errors around nvme show error API\n      fabrics: Fix linux kernel check patch errors and warnings\n      fabrics: Return errno value as negative\n      nvme-print-json: Use vasprintf instead of vsnprintf to allocate string\n      nvme: Add nvme_show_perror to use instead of perror for json output\n      nvme: Fix linux kernel check patch errors\n      nvme: Fix linux kernel check patch warnings\n      util: Delete unused argconfig help function\n      util: Delete unused argconfig file types\n      util: Delete unused argconfig subopts type\n      util: Add argconfig parse value function\n      nvme: Change sanitize command action option to use argconfig parse value\n      util: Delete argconfig value length to calcurate instead\n      util: Split to set argconfig option value\n      util: Delete argconfig value type to add option value as va lists instead\n      util: Delete unnecessary argconfig definitions OPT_VAL and CFG_VAL\n      nvme: Fix get-feature command sel parameter check to allow value 8\n      completions: Add json command option\n      completions: Fix nvm-id-ns-lba-format command zsh definition\n      completions: bash: Add id-domain command\n      completions: bash: Delete unsupported id-iocs command options\n      nvme: Set effects-log command csi option help message string\n      Fix incorrect article \u0027an\u0027 as \u0027a\u0027 to use for descriptions and message\n      completions: Add missing zsh commands descriptions\n      doc: Correct nvme-show-hostnqn command NAME description\n      completions: Add bash option values handling for sanitize command action\n      completions: Add ocp commands bash completion\n      completions: Add ocp commands zsh completion\n      completions: Add ocp sub commands zsh completion\n      completions: Add zsh option values handling for sanitize command action\n      util: Fix suffix_si_parse to parse no decimal point but suffix value correctly\n      nvme: Fix io-passthru command read metadata output\n      nvme: Split passthru commands read output\n      fabrics: Change NVMF_OPTS as NVMF_ARGS to fix linux kernel check patch error\n      fabrics: Fix NVMF_ARGS macro indentation error\n      nvme-print: Fix nvme_show_error() to call va_end() for json output format\n      nvme-print-json: Add json output result function\n      nvme-print: Add nvme show result function\n      ocp: Add eol plp failure mode json outputs\n      plugins/ocp: Fix ocp-nvme.c linux kernel check patch errors\n      plugins/ocp: Fix ocp-nvme.c linux kernel check patch warnings\n      plugins/ocp: Fix remaining files linux kernel check patch warnings\n      plugin: Fix files linux kernel check patch errors and warnings\n      plugins/toshiba: Fix linux kernel check patch errors and warnings\n      util: Fix argconfig.c linux kernel check patch error and warnings\n      util: Fix base64.c linux kernel check patch errors and warnings\n      util: Fix crc32.c linux kernel check patch errors and warnings\n      util: Fix types.c linux kernel check patch warnings\n      plugin: Change version and usage names for linux kernel check patch warnings\n      util: Move falltrhough feature check to meson.build\n      plugins/wdc: Refactor wdc-nvme.c for linux kernel check patch errors and warnings\n      plugins/wdc: Fix wdc-utils.c linux kernel check patch errors and warnings\n      plugins/amzn: Fix amzn-nvme.c linux kernel check patch error and warnings\n      plugins/dera: Fix dera-nvme.c linux kernel check patch errors and warnings\n      plugins/fdb: Fix fdb.c linux kernel check patch warnings\n      plugins/huawei: Fix huawei-nvme.c linux kernel check patch errors and warnings\n      plugins/innogrit: Fix innogrit-nvme.c linux kernel check patch errors\n      plugins/inspur: Fix inspur-nvme.c space indentation to tab indentation\n      plugins/inspur: Fix inspur-nvme.c linux kernel check patch warnings\n      plugins/intel: Fix intel-nvme.c linux kernel check patch errors and warnings\n      plugins/memblaze: Fix memblaze-nvme.c space indentation to tab indentation\n      plugins/memblaze: Fix memblaze-utils.h space indentation to tab indentation\n      plugins/memblaze: Fix memblaze-nvme.c linux kernel check patch errors and warnings\n      plugins/micron: Fix micron-nvme.c space indentation to tab indentation\n      plugins/micron: Fix micron-nvme.c linux kernel check patch errors and warnings\n      plugins/nbft: Fix nbft-plugin.c linux kernel check patch warnings\n      plugins/netapp: Fix netapp-nvme.c linux kernel check patch errors and warnings\n      plugins/scaleflux: Fix sfx-nvme.c linux kernel check patch errors and warnings\n      plugins/seagate: Fix seagate-nvme.c linux kernel check patch warnings\n      plugins/shannon: Fix shannon-nvme.c linux kernel check patch errors and warnings\n      plugins/solidigm: Fix linux kernel check patch errors and warnings\n      plugins/transcend: Fix transcend-nvme.c linux kernel check patch errors and warnings\n      plugins/virtium: Fix virtium-nvme.c linux kernel check patch errors and warnings\n      plugins/ymtc: Fix ymtc-nvme.c space indentation to tab indentation\n      plugins/ymtc: Fix ymtc-nvme.c linux kernel check patch warning\n      plugins/zns: Fix zns.c linux kernel check patch errors and warnings\n      nvme: Fix quoted string split across lines to use quoted newline\n      plugins/micron: Correct NULL pointer checking error\n      fabrics: Add EADDRNOTAVAIL error mapping\n      util: Use HAVE_NETDB instead of HAVE_LIBNSS\n      json: Use memory block allocated by realloc() instead printbuf\n      nvme: Add support for create-ns command endg-id option parameter\n      util: Set LC_ALL\u003dC as default if -H option is not used\n      util: Delete unused CFG_BOOL argconfig type as duplicated with CFG_FLAG\n      README: Correct hugetlbfs spelling error\n      nvme-rpmb: Fix nvme_show_id_ctrl_rpmbs() definition error\n      nvme: Revert passthru and submit_io to print status to stderr from stdout\n      types: Add support for EGFEAT, Domain Identifier, TEGCAP and UEGCAP\n      nvme-print: Fix endurance_log whitespace changes\n      nvme-print: Add support for EGFEAT, Domain Identifier, TEGCAP and UEGCAP\n      Fix incorrect article \u0027an\u0027 as \u0027a\u0027 to use for a description\n      ioctl: Add debugging feature to show command outputs\n      log: Add nvme root global variable to set for default output\n      types: Define FLBAS MASK and SHIFT to use NVME_GET\n      types: Use NVME_SET for status type mask to get status value\n      util: Split argconfig output format json function to set and get\n      util: Fix to set argconfig output format json option correctly\n      nvme: Add verbose default option to show command debug output\n      fabrics: Fix NVMF_ARGS macro to use parameter n correctly\n      nvme: Change to use NVME_ARGS verbose default option from OPT_ARGS\n      nvme: Add output-format default option instead of argconfig json option\n      nvme-print-stdout: Add CAP.CPS and CAP.NSSS human readable outputs\n      nvme-print-stdout: Fix to set stdout_list_item print function missed\n      nvme-print-json: Change order list functions and set NULL if unimplemented\n      nvme-print-binary: Set list function to NULL if unimplemented\n      nvme-print: Add nvme_zns_finish_zone_list() API function\n      nvme-print: Add nvme_zns_start_zone_list() API function\n      nvme-print-json: Add directive print function\n      nvme-print-stdout: Fix coding style errors\n      nvme-print-json: Add id_iocs print function\n      nvme-print-json: Combine variable definition and setting value\n      nvme-print-json: Add lba_status print function\n      nvme-print-json: Use json_print to print and free object\n      nvme-print-json: Add select_result print function\n      nvme-print-json: Add show_feature_fields print function\n      nvme-print-json: Add TMPTH feature print function\n      nvme-print-json: Add feature fields print functions\n      nvme-print-json: Add host memory buffer and timestamp features print functions\n      nvme: Change to use NVME_FLBAS_META_EXT() macro to check flbas value\n      nvme: Change phy-rx-eom-log command to use NVME_ARGS instead\n      nvme: Change short option -o and -v duplicated to upper case\n      doc: Change short option -o and -v duplicated to upper case\n      completions: Change short option -o and -v duplicated to upper case\n      completions: Add nvme-mi-recv nad nvme-mi-send commands completions\n      doc: Add nvme commands --output-format and --verbose options\n      doc: Add id-ns-granularity command\n      doc: Add list-secondary command\n      doc: Add id-uuid command\n      doc: Add virt-mgmt command\n      nvme-print: Correct to print correct ascii character string length\n      build: Add -std\u003dc99 to CFLAGS for muon on CentOS 7\n      nvme-print-json: Update formatting and codying style\n      nvme-print-json: Add remaining feature fields print functions\n      nvme: Fix get-feature command mixed stdout and json outputs\n      nvme-print-json: Change d() output to use d_json()\n      nvme: Replace get feature command stderr output to nvme_show_error()\n      nvme-print-json: Add single_property printf function\n      nvme-print-json: Add static \"result\" and \"erorr\" strings variables\n      nvme-print-json: Print persistent_event_log no log data result correctly\n      nvme-print-json: Replace effects_log_list print to use json_print()\n      nvme-print-json: Remove unnecessary string newline code\n      nvme-print-json: Split persistent_event_log print function\n      nvme-print-json: Add root_add_result() to output result message\n      nvme-print-json: Add json_zns_changed print function\n      nvme-print-json: Unify json_list and jroot object names to root\n      nvme-print-json: Add id_ctrl_rpmbs print function\n      nvme-print-json: Add lba_range print function\n      nvme-print-json: Add lba_status_info print function\n      nvme-print-json: Add list_item print function\n      nvme-print-json: Replace lba_status_log printf() to root_add_result()\n      nvme-print-json: Update lba_status_log to use root_add_***() and obj_add_***()\n      nvme-print-json: Update feature_show_fields_*** to use root/obj_add_***()\n      nvme-print-json: Replase json_object_add_value_string() to obj/root_add_str()\n      nvme-print-json: Replase json_object_add_value_uint64() to obj/root_add_uint64()\n      nvme-print-json: Replase json_object_add_value_int() to obj/root_add_int()\n      nvme-print-json: Replase json_object_add_value_uint() to obj/root_add_uint()\n      nvme-print-json: Replase json_object_add_value_array() to obj/root_add_array()\n      nvme-print-json: Replase json_array_add_value_object() to array_add_obj()\n      nvme-print-json: Replase json_object_add_value_object() to obj/root_add_obj()\n      nvme-print-json: Replase json_object_add_value_uint128() to obj/root_add_uint128()\n      nvme-print-json: Replase json_array_add_value_string() to array_add_str()\n      nvme-print-json: Combine duplicated json key and val string variables\n      nvme-print-json: Add readable format cap, vs, cc, csts, nssr and crto registers\n      nvme-print-json: Add remaining controller registers readable format\n      nvme-print-json: Delete static const char string global variables\n      nvme-print-json: Use r instead of root and use obj_add_***(r, ..., ...)\n      nvme-print: Add nvme_show_error_status() to merge error message and status\n      nvme-print-json: Add show_init/finish calls to report features in array\n      nvme-print-json: Change to report error and data in array\n      nvme-print-json: Change to report feature select in array\n      nvme-print-json: Change to report status and message in array\n      build: Add -std\u003dc99 for bootstrapping muon\n      build: remove the wrap feature dependency for muon\n      build: Disable muon bestline for CentOS 7 build error\n      types: Add controller properties CMBEBS, CMBSWTP and NSSD\n      types: Add persistent event log reporting context definitions\n      types: Add PEL reporting context port identifier type definitions\n      Revert \"nvme-print-json: remove obj_print helper\"\n      nvme: Add show-regs and get-property commands NSSD print outputs\n      nvme-print-stdout: Use persistent event log RCI definitions\n      nvme-print: Add PEL RCI port identifier type printf function\n      nvme-print: Fix nvme_host_metadata_type_to_string() indentation errors\n      nvme-print-stdout: Delete duplicated if condition checking line\n      nvme-print-json, nvme-print-stdout: Use CHAR_BIT definition\n      nvme-print, common: Fix for whitespace change\n      nvme: Delete duplicated semicolon\n      nvme: Delete unusual fallthrough for cases have no body\n      nvme-print-stdout: Fix linux kernel check patch errors\n      nvme-print-stdout: Check sscanf return value\n      nvme-print-stdout: Fix channel configuration descriptors pointer\n      doc: Fix documentation file mode 100755 to 100644\n      doc: Fix get-property and set-property offset and value descriptions\n      micron-nvme: Unuse stat() to check if strMainDirName exists\n      doc: Add get-feature cdw11 and set-feature cdw12 parameters\n      doc: Fix admin and io passthru cdw parameters description\n      nvme-print-stdout: Use NVME_PMRCAP register definition to print\n      nvme-print-stdout: Use NVME_PMRCTL_EN register definition to print\n      nvme-print-stdout: Use NVME_PMRSTS register definitions to print\n      nvme-print-stdout: Use NVME_PMREBS register definitions to print\n      nvme-print-stdout: Use NVME_PMRSWTP register definitions to print\n      nvme-print-stdout: Use NVME_PMRMSC register definitions to print\n      types: Add PEL header additional information definitions\n      types: Add boot partition information definitions\n      types: Fix enum nvme_pel_rci documentation error\n      types: Add PEL set feature event layout definitions\n      ioctl: Move nvme_cmd_dword_fields definitions into header file\n      nvme-print-stdout: Split line length exceeded 100 columns\n      nvme-print-stdout: Fix LBA status DSLBA output as hexadecimal\n      nvme-print-stdout: Change hexadecimal value 0x prefix to use %#x\n      logging: Split to output ioctl latency by log info level\n      nvme-print: Add PEL EHAI port identifier type printf function\n      nvme-print-stdout: Use NVME_SET_FEAT_EVENT register definitions\n      nvme-print-stdout: Use NVME_GET for FID supported and effects FSP\n      nvme-print-stdout: Use NVME_GET for MI commands supported and effects CSP\n      nvme-print-stdout: Use NVME_BOOT_PARTITION_INFO field definitions\n      nvme: Delete unused nvme root scanned\n      plugins/wdc: Whitespace changes\n      plugins/wdc: Fix narrow index variable type in for loop to __u32\n      types: Fix EOM header optional data present fields definition\n      types: Add optional data present filed mask and shift definition\n      nvme: Fix to cleanup free raw_secret memory allocated\n      nvme-print-stdout: use FDP configuration attributes definitions\n      nvme-print-stdout: use NVME_MAJOR and NVME_MINOR definitions\n      nvme-print-stdout: use controller configuration definitions\n      nvme-print-stdout: use CSTS definitions\n      nvme-print-stdout: use admin queue attributes definitions\n      types: Fix NVME_CSTS_SHST_MASK definition\n      nvme-print: Use EOM optional data present macros changed\n      nvme-print: Refactor CMBLOC and PMRSTS registers function\n      nvme-print: Change PMRSZU string function as unit string\n      nvme: Refactor mmap_registers to add writable parameter\n      nvme-print: Add register print functions\n      nvme-print-stdout: Add register print functions\n      nvme-print-json: Add register print functions\n      nvme: Add support for get-reg and set-reg commands\n      ioctl: Add nvme_ns_mgmt_delete_timeout()\n      types: Fix boot partition read offset (BPROF) mask value\n      nvme-print-stdout: Use NVME_CMBLOC definitions\n      nvme-print-stdout: Use NVME_CMBSZ definitions\n      nvme-print-stdout: Use NVME_BPINFO definitions\n      nvme-print-stdout: Use NVME_BPRSEL definitions\n      types: Add NVME_CMBEBS property definitions\n      types: Add CMBSWTP property definitions\n      types: Add NVME_CMIC definitions\n      nvme: Add fw-download warning message for FWUG alignment error\n      nvme: Change fw-download xfer initialization to set 0\n      types: Add enum nvme_csts documentation\n      types: add controller status shutdown type (CSTS.ST) definition\n      build: bump libnvme wrap\n      nvme-print-stdout: Use NVME_CMBMSC/STS/EBS/SWTP definitions\n      nvme-print: Use NVME_UNIT definitions\n      types: Add enum nvme_unit/cmbebs/cmbswtp/flbas/cmic documentation\n      types: add enum nvme_cap documentation\n      types: add CAP.CPS and CAP.NSSS definitions\n      test: add CSTS.ST, CAP.CPS and CAP.NSSS registers\n      examples: fix mi-mctp build warning errors\n      nvme-print-stdout: Use NVME_CMIC definitions\n      nvme-print-stdout: Add CSTS.ST register stdout print\n      types: Fix PMRWBM register name\n      types: fix CRTO.CRIMT mask value definition\n      types: add controller properties enum documentation\n      types: add ASQ, ACQ and BPMBL controller properties definitions\n      nvme-print-json: add obj_add_uint_0nx() function\n      nvme-print-json: add obj_d() function\n      nvme-print-json: add support set feature event in PEL\n      nvme-print-json: add support telemetry log create event in PEL\n      nvme-print-json: use NVME_BOOT_PARTITION_INFO field definitions\n      nvme-print-json: use NVME_MAJOR and NVME_MINOR definitions\n      nvme-print-json, nvme-print-stdout: add tertiary version number\n      nvme-print-json: use controller configuration definitions\n      nvme-print-stdout: use POWER_OF_TWO macro\n      nvme-print-json: use CSTS definitions\n      nvme-print-json: use admin queue attributes definitions\n      nvme-print-stdout: fix ASQB, ACQB and BMBBA prints\n      doc: add nvme connet ctrl-loss-tmo description\n      nvme-print-json: Fix linux kernel check patch errors\n      nvme-print-json: Fix channel configuration descriptors pointer\n      nvme-print-stdout: Fix PMRWBM register name\n      nvme-print-json: Use NVME_PMRxxx register definitions to print\n      nvme-print-json: Fix LBA status DSLBA output as hexadecimal\n      nvme: Add nvme_cfg global variable for NVME_ARGS default options\n      nvme: Add nvme_cfg timeout default option\n      nvme: Change NVME_DEFAULT_IOCTL_TIMEOUT to use nvme_cfg timeout\n      nvme: Add support for delete-ns command timeout option\n      doc: Add nvme commands timeout option\n      completions: Fix bash-nvme-completion.sh indentation errors\n      completions: Fix _nvme indentation errors\n      completions: Change fw-activate command name to fw-commit\n      completions: Add /dev/nvme argument missed\n      completions: Add io-mgmt-recv/send commands zsh completions\n      completions: Add timeout option zsh completions\n      completions: Add timeout option bash completions\n      types: add PEL vendor specific and TCG defined events definitions\n      nvme-print: Print PEL reserved event string\n      build: bump libnvme wrap\n      nvme-print: add PEL vendor specific and TCG defined events strings\n      nvme: Add smart-log command fahrenheit option\n      doc: Add smart-log command fahrenheit option\n      completions: add smart-log command fahrenheit option\n      nvme-print-binary: Fix binary_smart_log indentation error\n      nvme-print-stdout: Fix stdout_smart_log indentation error\n      nvme-print: Fix nvme_show_smart_log indentation error\n      nvme-print: Use \u0027unsigned int\u0027 instead of \u0027unsigned\u0027\n      nvme: add flags type nvme_print_flags_t\n      nvme: change _cleanup_file_ to _cleanup_fd_\n      nvme-print: check locale to use temperatures in degrees fahrenheit\n      nvme: delete smart-log command fahrenheit option\n      nvme: add get-feature and id-ctrl commands fahrenheit outputs\n      nvme-print-json: add get-feature command fahrenheit temperature output\n      nvme: use _cleanup_free_ type buffer for get-feature command\n      nvme: extern NVME_ARGS macro definition\n      ocp: use NVME_ARGS macro definition by eol-plp-failure-mode command\n      nvme-rpmb: send RPMB_REQ_READ_RESULT for authentication key programming\n      ocp: set UUID index for eol-plp-failure-mode command to get\n      doc: fix ocp eol-plp-failure-mode select short option\n      ocp: fix eol-plp-failure-mode command sel option value\n      ocp: add get-error-injection command\n      doc: add ocp get-error-injection command\n      completions: add ocp get-error-injection command\n      nvme-print-binary: add effects-log command output missed\n      ccan: Add freed pointer checking to delete strset member\n      ocp: add set-error-injection command\n      doc: add ocp set-error-injection command\n      completions: add ocp set-error-injection command\n      nvme: return -ENXIO value to open device if errno not set\n      tree: fix nvme_read_config() to not set errno if return 0\n      nvme-print: use LC_MEASUREMENT to check fahrenheit temperature\n      nvme-print-stdout: use NVME_FEAT util definitions\n      util: extern uint128_t_to_double() function\n      logging: add print_info function\n      nvme-print-stdout: add print_array function\n      ocp: fix to set return value to get c9 log page data\n      ocp: fix to return c9 log page data error to open file\n      ocp: Change C9 function names to use c9 instead\n      ocp: fix ocp-nvme.c coding style errors\n      nvme-print-json: use _cleanup_free_\n      nvme: use NVME_GET_FEATURES_SEL_SUPPORTED definition\n      ocp: add get-enable-ieee1667-silo command\n      ocp: add error recovery log page version 3\n      ocp: add SMART / health information extended log page version 4\n      nvme-print-json: extern json object add functions\n      nvme: use NVME_CTRL_FNA definitions\n      types: add NVME_CHECK() definition to check nvme register field value\n      ocp: add support for hwcomp log page\n      ocp: add hwcomp dummy definition\n      ocp: add hwcomp log command comp-id option\n      ocp: add hwcomp log command list option\n      ocp: add hwcomp log json output\n      doc: add ocp hardware-component-log command\n      completions: add ocp hardware-component-log command\n      ocp: split ocp-hwcomp log\n      build: bump libnvme wrap\n      nvme: use NVME_CHECK() to check get features select field value\n      types: add NVME_VAL() definition\n      types: add NVME_CTRL_FNA definitions to get field values\n      ocp: fix to set log data pointer allocated\n      ocp: include util/types.h to use nvme_uint128_t\n      types: add NVME_CTRL_OAES_TTHR definition\n      types: add NVME_CTRL_OAES get macro definitions\n      nvme-print-stdout: use NVME_CTRL_OAES definitions\n      nvme: use NVME_GET_FEATURES_SEL definitions\n      nvme: separate get NVME_GET_FEATURES_SEL_CHANGED definition\n      doc: add get-feature command changed option\n      completions: add get-feature command changed option\n      nvme-print: fix error information log page endianness error\n      nvme: fix to convert metadata size to native byte order\n      ocp-print: move json code into separate files\n      plugins: update meson.build file to always build ocp plugin\n      ocp: split ocp-fw-activation-history print codes\n      ocp: split smart extended log print codes\n      ocp: move ocp telemetry log print function into ocp-print\n      ocp: split latency monitor log print codes\n      ocp: split unsupported requirement log print codes\n      ocp: split error recovery log print codes\n      ocp: split device capabilities log print codes\n      ocp: split telemetry string log print codes\n      ocp: split TCG configuration log print codes\n      ocp: build ocp-nvme.c and ocp-telemetry-decode.c without json\n      ocp: fix ocp-nvme.c indentation errors\n      ocp: fix ocp-print-stdout.c indentation error\n      ocp: remove callback function cast\n      ocp: combine to use GUID length definitions\n      types: add NVMe 2.1 get log page LIDs\n      types: add struct nvme_id_ctrl_nvm ver and lbamqf member variables\n      ocp: fix firmware activation history entry endian\n      ocp: fix TCG configuration log endian\n      ocp: fix latency monitoring data structure entry endian\n      opc: fix hardware component descriptions bytes number\n      types: add NVME_ID_CTRL_NVM_LBAMQF definitions\n      ocp: set UUID index to get hwcomp log\n      build: change muon setup command and parameter\n      nvme-print-stdout: add nvm-id-ctrl command VER and LBAMQF fields\n      ocp: set UUID index to get extended smart log\n      ocp: delete internal-log command telemetry type none value definition\n      ocp: update internal-log command telemetry type description\n      plugins: build plugins not depended on json without json\n      nvme-wrap: add nvme_cli_set_features() API function\n      ocp: add ocp-types.h file for OCP requirements definitions\n      ocp: add set-enable-ieee1667-silo command\n      nvme: disable output-format option json value without json-c\n      amzn: enable amzn-nvme.c build without json-c dependencies checking\n      amzn: use PRIu64 printf format string instead of llu\n      dapustor: enable dapustor-nvme.c build without json-c dependencies checkin\n      dell: build plugin not depended on json without json\n      fdp: build plugin not depended on json without json\n      huawei: enable huawei-nvme.c build without json-c dependencies checking\n      intel: enable intel-nvme.c build without json-c dependencies checking\n      micron: enable micron-nvme.c build without json-c dependencies checking\n      ocp: add ocp_get_log_simple() to set UUID index\n      amzn: avoid sprinkling ifdefs and use flags\n      plugins: introduce OPT_FLAG_JSON for command option json\n      nbft: enable nbft-plugin.c build without json-c dependencies checking\n      netapp: enable netapp-nvme.c build without json-c dependencies checking\n      nvidia: build plugin not depended on json without json\n      types: fix lm data field unsigned values to little endian\n      types: error information log entry status field definitions\n      scaleflux: use PRIu64 printf format string instead of llu\n      scaleflux: enable sfx-nvme.c build without json-c dependencies checking\n      seagate: enable seagate-nvme.c build without json-c dependencies checking\n      ssstc: build plugin not depended on json without json\n      wdc: enable wdc-nvme.c build without json-c dependencies checking\n      util: cast to use empty function json_object_array_add parameter k\n      micron: avoid sprinkling ifdefs\n      intel: avoid sprinkling ifdefs\n      netapp: avoid sprinkling ifdefs\n      dapustor: avoid sprinkling ifdefs\n      util: clean up json.h file\n      types: add NVMe 2.1 identify power state descriptor fields\n      nvme-print-json: update register print code to use libnvme definition\n      nvme-print-json: update id-ctrl print code to use libnvme definition\n      nvme: fix to use NVME_VAL() for CQ entry status field filter\n      nvme-print: move obj_add_* definitions into util/json.h\n      ocp: use struct nvme_timestamp type for FAHE-5 timestamp field\n      ocp: remove unnecessary 64 bits mask\n      ocp-print: use int48_to_long() to print 48 bits values\n      util: introduce int56_to_long() type conversion helper\n      ocp: add ocp dssd log id and feature id definitions\n      ocp: fix to check hwcomp log size if valid\n      ocp: change hwcomp log size variable name to log_bytes\n      nvme-print: add NVMe 2.1 get log page LIDs string\n      types: Add NVMe 2.1 feature ID definitions\n      types: add NVMe 2.1 admin command opcode definitions\n      types: add NVMe 2.1 identify command CNS definitions\n      ioctl: add nvme_get_endgid_log()\n      ioctl: add nvme_get_log_rotational_media_info()\n      ioctl: add nvme_get_log_dispersed_ns_participating_nss()\n      ioctl: add nvme_get_log_mgmt_addr_list()\n      ioctl: add nvme_get_log_reachability_groups()\n      ioctl: add nvme_get_log_reachability_associations()\n      ioctl: add nvme_get_log_changed_alloc_ns_list()\n      ioctl: add nvme_get_log_host_discover()\n      ioctl: add nvme_get_log_ave_discover()\n      ioctl: add nvme_get_log_pull_model_ddc_req()\n      types: add NVME_FEAT_FDPE_*** definitions\n      build: bump libnvme wrap\n      nvme-print: add NVMe 2.1 get and set features FIDs string\n      nvme-print-stdout: fix to print PEL set feature event FDP events\n      nvme-print-stdout: use libnvme FDP events feature definitions\n      nvme-print-stdout: split PEL set feature event function\n      nvme-print-stdout: split PEL functions\n      nvme-print: add NVMe 2.1 admin commands strings\n      types: add I/O command fabric commands opcode definition\n      types: fix enum nvme_psd definitions indentation errors\n      types: add spinup control and pls features definition\n      mi: add nvme_mi_admin_get_log_mgmt_addr_list()\n      types: move STR_LEN definition from json.h\n      nvme-print-stdout: add NVMe 2.1 identify power state descriptor fields\n      nvme-print-json: add NVMe 2.1 identify power state descriptor fields\n      build: bump libnvme wrap\n      nvme: add mgmt-addr-list-log command\n      nvme-print-json: add json_mgmt_addr_list_log()\n      nvme-print-binary: add binary_mgmt_addr_list_log()\n      doc: fix ocp-hardware-component-log documentation errors\n      completions: fix ocp hardware-component-log zsh completion\n      completions: add mgmt-addr-list-log command\n      doc: add mgmt-addr-list-log command\n      nvme-print-stdout: add get feature pls mode print\n      nvme-print-json: add get feature pls mode print\n      nvme-print-stdout: use NVME_CTRL_OACS definitions\n      types: add NVME_CTRL_OACS definitions\n      nvme: add NS management commands error message output\n      argconfig: add argconfig_get_value()\n      nvme: use blkdev for direct if namespace-id specified\n      nvme: add flush command chardev handle error message\n      tests: correct to check blkdev for NS attached\n      tests: add blkdev checking after NS creation\n      tests: add verbose options for NS management commands\n      nvme: add rotational-media-info-log command\n      Revert \"tests: add blkdev checking after NS creation\"\n      mi: fix indentation errors\n      ioctl: add libnvme-mi NVMe 2.1 log page APIs\n      completions: add rotational-media-info-log command\n      doc: add rotational-media-info-log command\n      nvme: change attach-ns to error out if wrong device given\n      ocp: fix to free hwcomp log desc memory allocated\n      build: bump libnvme wrap\n      nvme-wrap: use rotational media information log libnvme-mi API\n      nvme-wrap: handle get log rotational media info correctly\n      nvme: add NVMe 2.1 changed-alloc-ns-list-log command\n      doc: add changed-alloc-ns-list-log command\n      completions: fix mgmt-addr-list-log command\n      completions: add changed-alloc-ns-list-log command\n      nvme: add dispersed-ns-participating-nss-log command\n      doc: add dispersed-ns-participating-nss-log command\n      completions: add dispersed-ns-participating-nss-log command\n      completions: add and fix io-mgmt-recv and io-mgmt-send commands\n      nvme: add reachability-groups-log command\n      doc: add reachability-groups-log command\n      completions: add reachability-groups-log command\n      ioctl: fix nvme_get_log_reachability_groups() parameters order\n      types: fix nvme_reachability_association_desc member variable name\n      nvme: fix reachability-groups-log command perror message\n      mi: fix nvme_mi_admin_get_log_reachability_groups() parameters order\n      build: bump libnvme wrap\n      nvme-wrap: do_admin_op() get_log_reachability_groups parameters order\n      nvme: add reachability-associations-log command\n      doc: add reachability-associations-log command\n      completions: add reachability-associations-log command\n      nvme-print-binary: fix to output reachability associations log length\n      nvme-print-binary: fix to output reachability groups log length\n      nvme-print-binary: fix to output dispersed ns participating nss log length\n      nvme-print-binary: fix to output phy rx eom log length\n      nvme-wrap: fix get_log_reachability_associations parameters order\n      libnvme: export nvmf_exat_ptr_next\n      build: bump libnvme wrap\n      nvme: add host-discovery-log command\n      completions: fix zsh completions array parameter names\n      completions: add host-discovery-log command\n      doc: add host-discovery-log command\n      nvme-print-json: delete json_host_discovery_log printf error code\n      nvme: add ave-discovery-log command\n      doc: add ave-discovery-log command\n      completions: add ave-discovery-log command\n      types: add SLM and CP command set indicator values\n      nvme: fix ave-discovery-log command LID setting\n      nvme: add pull-model-ddc-req-log command\n      doc: add pull-model-ddr-req-log command\n      completions: add pull-model-ddc-req-log command\n      plugins: move meson.build solidigm-nvme.c into solidigm/meson.build\n      plugins: sort subdir list as alphabetical order\n      ocp: replace no-uuid option help string to use no_uuid variable\n      nvme-print-json: set allocation error string directly\n      nvme-print: add nvme_show_perror() variable number arguments\n      plugins: add NVMe feature extension\n      nvme-print: use allocation error string variable\n      nvme: fix to set nvme_io_args reftag value\n      types: add performance attribute structures\n      types: add performance characteristics feature access values\n      util: add performance characteristics feature decode function\n      types: add performance characteristics attribute type values\n      types: add performance characteristics attribute definitions\n      util: add performance characteristic feature length\n      build: bump libnvme wrap\n      nvme: add performance characteristic feature output\n      nvme-print-json: add performance characteristic feature output\n      feat: add perf-characteristics command\n      plugin: translate -h into commands\n      feat: add hctm command\n      nvme: add dry-run NVME_ARGS default option\n      util: add FDP events feature length\n      mi: add nvme_mi_submit entry and exit weak functions\n      nvme: add general_help str parameter to filter sub-commands\n      types: add temperature threshold feature TMPTHH field\n      ioctl: add temperature threshold TMPSEL and THSEL parameters to get\n      feat: combine get functions\n      nvme: delete host identifier feature length checking\n      nvme: make --opcode argument mandatory\n      doc: add opcode description as mandatory\n      feat: add FEAT_ARGS to use instead of NVME_ARGS\n      nvme: add output-format-version option\n      nvme: add dir-send command human-readable deprecated help text\n      feat: add timestamp command\n      feat: add temp-thresh command\n      feat: fix to set perfc feature save argument correctly\n      doc: update dir-send command documentation on -H\n      build: delete docs\u003ddisabled muon build option\n      logging: add nvme_mi_submit entry and exit functions\n      sighdl: include stddef header file for NULL definition\n      nvme-print: add show_key_value print_ops\n      nvme: output NS management command result by json\n      tests: validate create-ns command nsid json output\n      nvme-print-json: reverse pel power on reset parameter order error\n      examples: add explicit pthread dependency to meson\n      wdc: fix muon build warning\n      util: add json_object_add_string() function\n      nvme-print-json: output actual lbaf data size for verbose mode\n      nvme: output copy command success message for json format\n      nvme-print-json: count json_show_init() and json_show_finish() calls\n      nvme: change get_dev() to call nvme_show_init() for debug log level\n      logging: output command and latency debug for json format\n      wdc: use HAVE_TM_GMTOFF meson configuration variable\n      nvme: change NS management status message as error\n      types: add SMART / health information CW shift and mask values\n      feat: add arbitration command\n      nvme-print-stdout: add format command relatives prints\n      doc: add nvme list namespace usage sizes description\n      nvme-print-stdout: add name space usage binary suffix verbose print\n      nvme: output nvme_alloc_huge() error message\n      nvme: add get-log command symbolic names\n      doc: add get-log command symbolic names\n      nvme: add get and set feature commands symbolic names\n      doc: add get and set feature commands symbolic names\n      feat: add volatile-wc command\n      nvme-print-stdout: add get log command verbose outputs\n      nvme-print-stdout: add ANA, PEL and LBA status log verbose outputs\n      ioctl: fix nvme_get_log_endurance_grp_evt() description\n      nvme-print: fix stdout_endurance_group_event_agg_log() parameter\n      nvme-print-stdout: add get log verbose outputs\n      mi: add arbitration feature get function\n      mi: add power management feature functions\n      mi: correct mi admin feature functions map file\n      build: bump libnvme wrap\n      nvme-wrap: add power management and arbitration features functions\n      nvme-print-stdout: add get-log command verbose outputs\n      nvme-print: print both celsius and fahrenheit temperature values\n      util: add table_init_with_columns() function\n      util: allow table_add_columns() to set column width\n      util: remove unnecessary row end padding print\n      nvme-print-stdout: replace nvme simple list with generic table\n      util: use switch case statements instead of repeated else if\n      util: move to add final padding printf between each columns\n      util: rename table_init() to table_create()\n      zns: replace zns list with generic table\n      nvme-print-stdout: fix detailed list row field width\n      ioctl: fix get_log_partial to use uring for link type direct\n      fabrics: fix nvme_get_adrfam function description parameter ctrl as c\n      test: fix ioctl/logs.c -Wint-in-bool-context warnings\n      ioctl: introduce nvme_identify helper functions\n      ioctl: introduce get log helper functions\n      ioctl: introduce get/set feature helper functions\n      ioctl: rework nvme_dsm command\n      nvme: rework nvme_io command\n      nvme: rework nvme_copy command\n      ioctl: refactor nvme_get_log_partial uring\n      test/zns: fix kernel-doc-check warnings\n      examples: fix mi-mctp.c kernel-doc-check warning\n      examples: do not use \"/**\" opening comment mark\n      test: fix mi.c kernel-doc-check warning\n      linux: change nvme_transport_handle_get_name to return base name\n      nvme: fix to call nvme_submit_io_passthru for I/O commands\n      nvme: fix copy_cmd to get pif and sts values\n      nvme: correct to check dry-run option\n      types: add NVMe 2.3 opcode, fid and lid definitions\n      nvme: add support for sanitize-ns command\n      nvme: add sanitize ns specific status code string\n      doc: correct id-ns vendor-specific short option\n      nvme-print-stdout: change stdout_d() to not print equal line\n      nvme-print-stdout: print equal line by stdout_d() for debug log level\n      nvme-print: introduce nvme_show_err() helper function\n      nvme: fix get_pi_info() handling for submit_io() error\n      nvme-print: introduce nvme_show_cmd_err() helper function\n      nvme: correct sanitize in progress definition name\n      nvme: check chardev for resets and rescan\n      nvme: Combine duplicated char dev error message string variables\n      nvme: fix to add device open error message\n      feat: add power-limit command\n      feat: add power-thresh command\n      util: fix argconfig_match_val() to check option value length\n      nvme: add fw-commit command ca option values\n      nvme: check fw-commit command ca value with definition\n      nvme, doc: update fw-commit action help message and documentation\n      libnvme: replace fprintf to nvme_msg\n      libnvme/fabrics: fix inet_pton_with_scope function header description\n      libnvme/fabrics: replace fprintf to nvme_msg\n      libnvme/json: check write return value for build warnings\n      libnvme/linux: allow /dev/ngX device as character device\n      nvme: allow char dev filter for show-topology and list-subsys commands\n      nvme-print-stdout: fix get feature 128-bit host id print\n      nvme-print-stdout: delete stdout_feat_perfc fid parameter unused\n      libnvme/ioctl: introduce ioctl_io64 nvme transport direct handle\n      nvme-print-json: fix get feature 128-bit host id print\n      nvme-print-stdout: fix to use le64_to_cpu for host id feature print\n      nvme-print, ocp-print-json: fix to output alloc_error\n      libnvme/test: add to test copy desc format 0h\n      libnvme: rename copy_range and add new fields\n      libnvme/cmds: change copy desc format tags to big-endian\n      nvme: change default output format version to 2\n      feat: add err-recovery command\n      feat: add num-queues command\n      nvme-print: fix nvme_show_cmd_err to pass admin parameter\n      nvme-print: change nvme_show_cmd_err cmd parameter to opcode\n      nvme: add get and set features specific status code string\n      doc: add output-format-version option description\n      nvme: change nvme_show_err parameters order\n      nvme-print: change nvme_show_err parameter msg to fmt\n      feat: use nvme_show_err() helper function\n      tests: fix python TypeError errors\n      nvme: handle get-feature output format in nvme-print layer\n      nvme: use new error handling helper for get-feature error handling\n      doc: add error-log command description for fields and ordering\n      nvme: introdue error-log filter logic option arguments\n      nvme-print-stdout: fix error-log endian errors\n      nvme-print-stdout: fix error-log indentation errors\n      nvme-print-json: add to print error-log fields missed\n      nvme-print-json: fix error-log checkpatch warnings\n      nvme-print: use error-log STS fields API macros\n      doc: introdue error-log filter logic option arguments\n      completions: introdue error-log filter logic option arguments\n      nvme-types-base: rename nvme_cmd_get_log_telemetry_host_lsp\n      nvme: use #pragma once to reduce header file #ifndef code\n      build: use fallthrough attribute instead of __fallthrough__\n      build: use NVME_ prefix for HAVE_FOO defines\n      nvme-print: fix LBA range type 0h as general purpose\n      nvme: call nvme_show_finish by closing transport handle\n      feat: sort feat commands list by FID ordering\n      nvme: use DSM max ranges macro definition\n      nvme: add support for sanitize wait option\n      nvme: add support for sanitize repeat option\n      nvme-types-base: add sanicap vers and nvers definitions\n      nvme: add support for sanitize sanicap verification\n      doc: add sanitize command wait and repeat options\n      completions: add sanitize command wait and repeat options\n      logging: add data and metadata dump to show command\n      logging: add log level debug verbose\n      util: add argconfig hidden parameter\n      nvme: drop deprecated human-readable option\n      doc: remove human-readable option\n      completions: remove human-readable option\n      tests: replace human-readable option to verbose option\n      util: replace to check human-readable option to verbose option\n      feat: use command line args verbose setting to show feature\n      fabrics: make uuid_from_dmi_entries more robust\n      fabrics: split uuid_from_dmi_entries file read function\n\nTomas Bzatek (93):\n      ioctl: Fix NVME_LOG_CDW10_NUMDL_MASK\n      Docs strings updates\n      build: Include libnvme.pc in the default make target\n      util: Add nvme_status_to_string()\n      types: Add new status codes\n      util: Add strings for new status codes\n      build: Fix build without json-c\n      types: Device self-test doc strings update\n      types: Fix a typo in the NVME_FORMAT_MSET_EXTENEDED constant\n      types: Doc strings update for Sanitize and Format operations\n      build: Change library version to be a valid number\n      types: Fabrics doc strings updates\n      fabrics: Don\u0027t include trailing newline in nvmf_hostnqn_generate()\n      tree: Handle NULL hostid in nvme_lookup_host()\n      docs: Fix a typo in README.md\n      types: TP8013 and TP8014 doc strings updates\n      tree: nvme_configure_ctrl(): Set errno to zero on success\n      tree: Clarify NULL return values from nvme_get_attr()\n      fabrics: Add missing break in a switch\n      fabrics: Fix leaking ctrl in nvmf_connect_disc_entry()\n      tree: Avoid dereferencing nvme_subsystem_t before its check for NULL\n      tree: Fix leaking \u0027name\u0027 in nvme_subsystem_lookup_namespace()\n      tree: Fix subsystem initialization in nvme_scan_ctrl()\n      tree: Handle NULL subsysname in nvme_scan_ctrl()\n      fabrics: Fix build_options() return values\n      fabrics: Fix uuid_from_dmi_entries() read buffer initialization\n      tree: Fix leaking struct nvme_ns.generic_name\n      build: Fix nss code snippet includes\n      nbft: Move added symbols to LIBNVME_1_5\n      nbft: Add a simple unit test\n      nbft: Fix nbft_ssns_flags endianness test\n      nbft: Parse the {HOSTID,HOSTNQN}_CONFIGURED flags\n      util: Introduce alloc helper with alignment support\n      tree: Allocate aligned payloads for ns scan\n      linux: Allocate aligned payloads for id_ctrl and id_ns calls\n      fabrics: Allocate aligned payloads for id_ctrl and discovery log calls\n      tree: Fix clearing application strings\n      doc: Fix nvme-connect manpage --application option string\n      fabrics: Explicitly initialize auto-cleanup variables\n      linux: Explicitly initialize auto-cleanup variables\n      tree: Explicitly initialize auto-cleanup variables\n      util: Explicitly initialize auto-cleanup variables\n      nbft: Fix (struct nbft_info_subsystem_ns).num_hfis off-by-one\n      tests: Fix diffs output for duplicate HFI entries\n      tests: Add sample NBFT table from Dell PowerEdge R760\n      tests: Add sample NBFT table from Dell PowerEdge R660\n      linux: Explicitly initialize auto-cleanup variables\n      log: Introduce nvme_get_logging_level()\n      log: Respect DEFAULT_LOGLEVEL on uninitialized logging\n      doc: Document the NBFT API\n      nbft: Add SSNS \u0027unavailable\u0027 flag\n      nbft: Add SSNS \u0027discovered\u0027 flag\n      tests: Adapt to added NBFT SSNS flags\n      tests: Add complex NBFT table from Dell R660\n      nbft: Whitespace fixes\n      json: Fix uninitialized variables\n      build: Switch default meson buildtype to \u0027debugoptimized\u0027\n      nvme-print-json: Fix uninitialized variable\n      nvme-print-stdout: Fix uninitialized variable\n      plugins/sed: Fix uninitialized variable\n      plugins/nbft: Fix uninitialized variables\n      nbft: Fix uninitialized variable\n      plugins/nbft: Print the new SSNS flags\n      plugins/nbft: Implement verbose logging\n      nbft: Fix \u0027verbose\u0027 argument type\n      nbft: Silence connection failures for unavailable SSNS\n      nbft: Pause logging for expected connection failures\n      nbft: Include SSNS index in error messages\n      build: Switch default meson buildtype to \u0027debugoptimized\u0027\n      nbft: Refactor connection attempt out\n      nbft: Fix scandir() error check\n      tests: Add sample NBFT table with mpath IPv4+IPv6 discovery\n      util: Add string constant for ENVME_CONNECT_IGNORED\n      linux: Fix uninitialized variables\n      plugins/nbft: Use default library logging\n      fabrics: Introduce simple URI parser\n      tests: Add uriparser tests\n      fabrics: Unescape URI elements\n      fabrics: Make some symbols public\n      util/cleanup: Add cleanup for struct nvme_fabrics_uri\n      nbft: Perform actual discovery\n      nbft: Skip SSNS records pointing to well-known discovery NQN\n      nbft: Reuse existing discovery controller\n      linux: Remove the use of OpenSSL Engine API\n      nbft: Report proper error codes from discover_from_nbft()\n      tests: Add sample NBFT table with empty HFI ipv6 address\n      tests: Add an empty NBFT table\n      libnvme/tests: Fix a libvnme typo\n      libnvme/mi: Fix a libvnme typo\n      nvme-types-nbft: Update to Boot Specification rev. 1.3\n      nbft: Extend the parser for Boot Specification rev. 1.3\n      nbft: Use original flags instead of individual bool members\n      nbft: Add Security Profile Descriptor API\n\nTomas Winkler (3):\n      wdc: add wdc_is_zn350() wrapper\n      wdc: make char pointer arguments and variables const where appropriate\n      wdc: use libnvme\u0027s nvme_uuid_find() for UUID lookup\n\nTomasz Zawadzki (1):\n      plugins/spdk: plugin to list SPDK controllers\n\nTotalCaesar659 (1):\n      Update URLs to HTTPS\n\nUmer Saleem (4):\n      tree: Add PCI physical slot number for controller\n      libnvme.wrap: Bump to 42ac453\n      nvme-print-stdout: Print PCI physical slot number for controller\n      nvme-print-json: Print PCI pysical slot number for controller\n\nVasuki Manikarnike (1):\n      udev: Add custom udev rules for HPE Alletra Storage\n\nVigneshwaran Saravanan (9):\n      plugins/ocp: Added ocp unsupported requirements log page\n      plugin/ocp_fid_c6h:Added the ocp C6h feature api Reviewed-by: Karthik Balan karthik.b82@samsung.com, Arunpandian J arun.j@samsung.com Signed-off-by: Vigneshwaran Saravanan/SSD TS Dev /SSIR/Engineer/Samsung Electronics \u003cs.vignesh@samsung.com\u003e\n      plugins/ocp:Added the ocp C6h feature api Reviewed-by: Karthik Balan karthik.b82@samsung.com, Arunpandian J arun.j@samsung.com Signed-off-by: Vigneshwaran Saravanan/SSD TS Dev /SSIR/Engineer/Samsung Electronics \u003cs.vignesh@samsung.com\u003e\n      plugins/ocp: Add ocp TCG Configuration Log Page\n      plugins/ocp: Update telemetry string log page (C9h)\n      plugins/ocp: fix UAF when printing telemetry log\n      plugins/ocp: Added OCP 2.6 telemetry support Updated the Telemetry Structure and Enum to support the OCP 2.6 spec\n      plugin/ocp: Added the OCP Get Feature FID\u003dC5h command api\n      plugin/ocp: Added the OCP Get Feature FID\u003dC8h command api\n\nVikash Kumar (1):\n      nvme: allocate payload buffer in create-ns command\n\nVincent Fu (2):\n      nvme-print-stdout: fix storage tag size label\n      nvme-print: omit size of protection information\n\nVishal Pankaj Chandratreya (2):\n      Changed \u0027Kelvin\u0027 to \u0027kelvin\u0027, as recommended by the BIPM.\n      Made temperature readouts in line with the SI.\n\nWarner Losh (7):\n      sed_opal: Only build when we really have sed_opal headers\n      meson.build: Fix spelling of sed-opal.h filename\n      examples: Include sys/stat.h for S_I* constants\n      ccan/endian.h: Only define __{BIG,LITTLE}_ENDIAN if undefined.\n      solidigm: Eliminate \u003clinux/limits.h\u003e\n      micron: Add missing newline\n      wdc: On FreeBSD, get the timezone the same as with real glibc\n\nWei Hou (2):\n      util/types: Move convert_ts to util/types\n      util/types: Add generic spinner\n\nWen Xiong (4):\n      libnvme: Add new events support in PEL\n      ioctl: Set lsp to action in nvme_get_log_persistent_event\n      plugins/ibm: Add IBM specific plugins code\n      plugins/ibm: show persist events log\n\nWilfred Mallawa (1):\n      nvme: fix security buffer allocation size\n\nXiaoyuan Zhang (6):\n      nvme-print-stdout: fix persistent-event-log set feature event output\n      plugins: Add a new DapuStor plugin and the smart-log-add command\n      plugins/dapustor: dapustor smart-log-add update\n      completions: add the zsh completion of the dapustor plugin\n      plugins/dapustor: smart-log-add fix\n      nvme-print: fix Arbitration Mechanism Supported\n\nYi Zhang (1):\n      Fix common misspellings from codespell project\n\nZhen Wang (3):\n      plugins/amzn: Enable namespace metrics for EC2 local storage\n      plugins/amzn: Handle EC2 local storage controller devices\n      amzn: Add interval polling for NVMe latency stats\n\nchengjike (1):\n      fix path-\u003enentry bugs\n\ncions (1):\n      ioctl.h: Fix clang -Wc++11-narrowing error\n\nda Cunha, Leonardo (11):\n      plugins/ocp: Use network byte order for OCP UUID value\n      plugins/solidigm: Add uuid index resolution\n      plugins/solidigm: Fixes and clean-up of Telemetry parse code. Fixed parsing of 64 bit values. Fixed COD field name. Fixed compilation warnings when compiling for 32 bit. Added missing free(). Consolidated single entry function to telemetry parser. Consolidated use of integer types.\n      plugin/solidigm: Added vs-internal-log command.\n      plugins/solidigm: Formated log page directory table consistently with \"nvme list\" format.\n      nvme: Fix retrieval of telemetry log up to specified data area.\n      linux: Added functions to enable faster telemetry data retrieval. Moved telemetry data area support detection into separate function. Added possibility to modify data transfer chunk size. Enable telemetry extraction up to specified data area. Removed some printf() and perror().\n      nvme: Fixed segmentation fault when getting host initiated telemetry\n      plugins/solidigm: internal-logs Telemetry auto detect last data area. Faster telemetry retrieval using large buffers.\n      plugins/solidigm: Added support for temperature statistics log page\n      plugins/solidigm: Added OCP 2.0 vs-drive-info command.\n\ndependabot[bot] (62):\n      build(deps): bump codecov/codecov-action from 1 to 3\n      build(deps): bump actions/setup-python from 1 to 3\n      build(deps): bump actions/upload-artifact from 1 to 3\n      build(deps): bump actions/checkout from 2 to 3\n      build(deps): bump actions/setup-python from 3 to 4\n      build(deps): bump actions/checkout from 2 to 3\n      build(deps): bump actions/upload-artifact from 2 to 3\n      build(deps): bump sand4rt/ftp-deployer from 1.4 to 1.7\n      build(deps): bump actions/checkout from 3 to 4\n      build(deps): bump actions/checkout from 3 to 4\n      build(deps): bump actions/checkout from 3 to 4\n      build(deps): bump actions/checkout from 3 to 4\n      build(deps): bump actions/upload-artifact from 3 to 4\n      build(deps): bump actions/download-artifact from 3 to 4\n      build(deps): bump dawidd6/action-download-artifact from 2 to 3\n      build(deps): bump github/codeql-action from 2 to 3\n      build(deps): bump actions/upload-artifact from 3 to 4\n      build(deps): bump codecov/codecov-action from 3 to 4\n      build(deps): bump codecov/codecov-action from 3 to 4\n      build(deps): bump sand4rt/ftp-deployer from 1.7 to 1.8\n      build(deps): bump AppImageCrafters/build-appimage from 1.3 to 2\n      build(deps): bump dawidd6/action-download-artifact from 3 to 5\n      build(deps): bump dawidd6/action-download-artifact from 5 to 6\n      build(deps): bump mosteo-actions/docker-run from 1 to 2\n      build(deps): bump mosteo-actions/docker-run from 1 to 2\n      build(deps): bump codecov/codecov-action from 4 to 5\n      build(deps): bump codecov/codecov-action from 4 to 5\n      build(deps): bump pypa/gh-action-pypi-publish@release/v1.5\n      build(deps): Bump actions/download-artifact from 4 to 5\n      build(deps): bump actions/download-artifact from 4 to 5\n      build(deps): bump actions/checkout from 4 to 5\n      build(deps): Bump actions/checkout from 4 to 5\n      build(deps): Bump pypa/gh-action-pypi-publish in /.github/workflows\n      build(deps): bump github/codeql-action from 3 to 4\n      build(deps): Bump actions/upload-artifact from 4 to 5\n      build(deps): Bump actions/download-artifact from 5 to 6\n      build(deps): bump actions/upload-artifact from 4 to 5\n      build(deps): bump actions/download-artifact from 5 to 6\n      build(deps): bump actions/checkout from 5 to 6\n      build(deps): bump actions/upload-artifact from 5 to 6\n      build(deps): bump actions/download-artifact from 6 to 7\n      build(deps): bump github/codeql-action from 4.32.4 to 4.32.5\n      build(deps): bump actions/download-artifact from 7.0.0 to 8.0.0\n      build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0\n      build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0\n      build(deps): bump docker/login-action from 3.7.0 to 4.0.0\n      build(deps): bump github/codeql-action from 4.32.5 to 4.33.0\n      build(deps): bump github/codeql-action from 4.33.0 to 4.34.1\n      build(deps): bump codecov/codecov-action from 5.5.2 to 6.0.0\n      build(deps): bump github/codeql-action from 4.34.1 to 4.35.1\n      build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0\n      build(deps): bump docker/login-action from 4.0.0 to 4.1.0\n      build(deps): bump docker/setup-qemu-action from 4.0.0 to 4.1.0\n      build(deps): bump github/codeql-action from 4.35.1 to 4.36.0\n      build(deps): bump docker/login-action from 4.1.0 to 4.2.0\n      build(deps): bump codecov/codecov-action from 6.0.0 to 7.0.0\n      build(deps): bump msys2/setup-msys2 from 2.31.0 to 2.32.0\n      build(deps): bump actions/checkout from 6.0.2 to 7.0.0\n      build(deps): bump docker/setup-qemu-action from 4.1.0 to 4.2.0\n      build(deps): bump github/codeql-action/analyze from 4.36.0 to 4.37.0\n      build(deps): bump docker/login-action from 4.2.0 to 4.4.0\n      build(deps): bump github/codeql-action/init from 4.36.0 to 4.37.0\n\nduanhaoqiang (1):\n      nvme: Enforce length to a multiple of 4 in get_log_page\n\ng0l4 (1):\n      nvme: fix ignored interruption in format command\n\nhris Patterson (1):\n      nvme-print-json: include vs for identify namespace\n\nhsdhillo (4):\n      plugins/solidigm: Added Marketing Name Log support for Solidigm.\n      plugins/solidigm: Replace snprintf with asprintf\n      plugins/solidigm: Telemetry null check json object\n      plugins/solidigm: smart attribute C7 named dynamically, add desc for E7, E8\n\nhuahuang94 (1):\n      plugin/dera: update dera smart-log-add command output\n\ninnogritkenny (3):\n      plugins/innogrit: modify command opcode for eventlog and cdump\n      plugins/innogrit: Add vendor command get-eventlog and get-cdump\n      plugins/innogrit: modify for project tacoma\n\njaya.ganthan (1):\n      plugin/ocp: Added implementation for 0xC1 log page\n\njeff-lien-sndk (32):\n      wdc: Fix for get-drive-status wdc plugin command\n      sndk: Add support for new PCI device id\n      sndk: Add support for retrieving data area 4\n      sndk: Add support for the Sandisk UUID\n      linux:  Add functions to set and clear etdas bit\n      nvme: Enable retrieving telemetry log data area 4\n      sndk: Use libnvme functions to set/clear etdas bit\n      ocp: Fixes to telemetry-string-log command\n      ocp: Update/Fix Man page for telemetry-string-log command\n      ocp: Fix telemetry string log json format parsing\n      ocp: Add support for retrieving telemetry data area 4\n      ocp: Update man page documentation for internal-log command\n      ocp: Update completions for ocp internal-log and telemetry-string-log\n      wdc: Fix SN861 capabilities in NVME-OF cases\n      sndk: Add drive-resize support for SN861 Drives\n      sndk: Support fabric attached SN861\n      sndk: Fix SN861 drive-resize capability\n      sndk: And support for new Sandisk devices\n      sndk: Add plugin command support for SN-861\n      plugins/sandisk:  Use Correct PCI Vendor ID for SNESSD1 Drives\n      plugin/wdc: Fix UUID search for SN640 and SN655\n      plugins/ocp: Prevent Seg Fault during Telemetry log Parsing\n      ocp: Fix core dump during telemetry log decode\n      sndk: Add support for additional UUID\n      sndk: Add Clear Assert Capability to 2 Sandisk Drives\n      sndk: vs-internal-log command fixes and enhancements\n      ocp: handle C9 log page read fails\n      sndk: avoid buffer overflow when reading file name\n      id-ctrl: Add NVMe 2.3 id controller fields\n      sndk: Add support for new Sandisk drives\n      sndk: Add support for new Sandisk devices\n      telemetry-log: Fix telemetry-log invalid argument error\n\njeff-lien-wdc (32):\n      wdc: Add support for SN861 2nd pci device id\n      wdc: Fix UUID index fallback mechanism\n      wdc: Fix vs-smart-add-log Command for SN650 and SN655\n      plugins/wdc: Plugin fixes and updates\n      plugins/wdc: Add Debug Log Collection Support\n      wdc: Add support for the get-drive-status command to SN861\n      ocp: Fix timestamp displayed by fw-activate-history command\n      wdc:  Fix timestamp displayed by vs-firmware-activate-history command\n      wdc: Review changes and build fixes\n      wdc: Fix compiler warning.\n      ocp: OCP 2.5 Telemetry DA 1 and 2 Parsing Updates\n      ocp: Update Plugin Version\n      wdc: Update and refactor the C0h log page parsing\n      wdc: OCP 2.5 Log Page Updates\n      wdc: Add Support for new SN-861 PCI device id\n      Add Support for new SN655 PCI Device ID\n      wdc: Add Support for SN5100S\n      ocp: Fixes for OCP 2.5 Telemetry DA1 FIFO Event Parsing\n      wdc: Fix for Reading WDC C2 Vendor Unique Log Page\n      wdc:  Fixes for SNTMP Capabilities\n      ocp: Fixes for OCP 2.5 Telemetry Stats Parsing\n      ocp: Update ocp plugin version\n      sandisk: Add sandisk plugin\n      sndk: Add documentation for Sandisk plugin commands\n      ocp: Fix print_formatted_var_size_str and json_add_formatted_var_size_str\n      ocp: Fix Parsing of Statistics Snapshot FIFO Event\n      wdc:  Fixed check for supported log pages\n      wdc: Fix for vs-smart-add-log wdc plugin command\n      wdc:  Add support for cu_smart-log command on SN861\n      wdc: Add support for clear-assert-dump to SNTMP drives\n      sndk: Add sndk cu-smart-log plugin command\n      wdc: Fix uuid-index setting for WD 0xC2 log page\n\njinhua.huang (10):\n      plugins/memblaze: Add smart-log-add and latency-feature functions\n      nvme/plugins: fix mismatch operator\n      plugins/memblaze: code-format on leading indent and align\n      plugins/memblaze: code refactor on using cleanup_nvme_dev\n      plugins/memblaze: code refactor on applying __packed on more structs\n      plugins/memblaze: fix code mis-type error\n      plugins/memblaze: add performance stats\n      plugins/memblaze: fix a wrong id on smart-log-add\n      plugins/memblaze: update smart-log-add-x ids\n      plugins/memblaze: extract smart log add-x (0xCA) into separate file\n\njunjin-reflect (1):\n      nvme-rpmb: print error message when setting auth key fails\n\nkdedow (9):\n      plugins/ocp: SMART cloud log bug fixes.\n      plugins/ocp: OCP 2.0 field updates for SMART cloud log\n      plugins/ocp: Move SMART cloud log methods to separate file for reusability\n      plugins/ocp: Add SMART cloud log to solidigm plugin\n      plugins/ocp: Add firmware activation history log to OCP plugin\n      plugins/solidigm: Add firmware activation history log to Solidigm plugin\n      solidigm: Add supported log pages log feature to Solidigm plugin\n      solidigm: Changes to supported log pages feature requested by review\n      solidigm: Reduce memory usage in supported log pages feature\n\nkobyou (1):\n      plugins/ssstc: add a new plugin for SSSTC driver\n\nlebao (1):\n      nvme-print-stdout: print frl1/2/3 values for zns id-ns\n\nleonardo.da.cunha (6):\n      plugins/solidigm: Added NLog support to Telemetry parsing. Telemetry Reason Identifier fields changed to start with lower case.\n      plugins/solidigm: Added Identify controller VU extensions parsing.\n      plugins/ocp: Reorganized clear feature code for better reuse\n      plugins/solidigm: Added command to clear PCIe Correctable Error Counters according to OCP 2.0\n      plugins/ocp: changed command clear-pcie-correctable-error-counters to match OCP 2.0 spec. Fixed some function name typos.\n      plugins/solidigm: Added OCP 2.0 compatibility version command\n\nletli (2):\n      tests: mock io_uring_get_probe\n      ioctl: get_log_page by nvme uring cmd\n\nliuzhen (1):\n      ocp-nvme: fix the error display of Hardware Component Log\n\nmh2022-meta (1):\n      Fixed latency_monitor_feature_enable to be 01h as per OCP spec v2.0\n\nnick black (1):\n      build: require meson 0.50.0+\n\norbisai0security (2):\n      plugin: use snprintf for fixed-size formatting buffers\n      nvme-pring: add buffer-length checks\n\npaumr (2):\n      doc: show where self-test results can be found\n      doc: added commit conventions to contribution guidelines\n\npsykose (1):\n      fabrics: use \u0027%\u0027 instead of SCOPE_DELIMITER\n\nrick (2):\n      types: add kv opcodes\n      nvme-print: print KV command set page header\n\nroot (2):\n      nvme-cli: nvme gen-hostnqn use partition UUID on IBM\n      libnvme: core dump when running nvme persistent-event-log\n\nsfindley102892 (1):\n      ocp: Add Statistics Identifier String Table Size to JSON\n\nshankara (3):\n      nvme-print: Added missing logpage names in nvme_log_to_string function\n      plugins/solidigm: log page name extraction using nvme_log_to_string function\n      plugins/solidigm: Added re_sku_count smart atrribute\n\nsunxing (1):\n      nvme-print: Use attrs_info as key for Zone Attributes Information\n\nthieule742 (1):\n      types: Fix nvme_ns_id_desc packing\n\nyjin (1):\n      plugins/sfx: sfx-nvme add expand-cap \u0026 dump evtlog cmd\n\nzerone (1):\n      types: Update position of elbatm in struct nvme_copy_range{_f1}\n\nzguo (1):\n      list-ctrl: limit to JSON and normal output\n\nzhangxiaoyuan (1):\n      nvme: use argconfig_parse_seen to check conditions\n\nнаб (1):\n      docs: nvme-id-doman: dom{ia \u003d\u003e ai}n\n\n丁剑 (1):\n      log: high latency timestamp issue\n\n胡玮文 (1):\n      nvme: fix virtual_mgmt cntlid parsing order\n\n\nTested: Verified id-ctrl, get-feature, and set-feature work via MCTP on target hardware. Logs: https://paste.googleplex.com/4798663367983104\nFusion-Link: http://fusion2/ci/kokoro/prod%3Agbmc%2Ffirmware-build%2Ffirmware%2Fredacted_gbmc_platforms/activity/b56710df-5e93-4477-87b3-346fa5d67d38\nGoogle-Bug-Id: 524301009, 538280251\nChange-Id: I472a1065ac36a32d18ff9f541e2ad0ac4ba2c901\nSigned-off-by: Guangzong Chen \u003cguangzong@google.com\u003e\nTAG\u003dagy\nCONV\u003d231941b8-bb00-4012-9013-a0a6fc44d387\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e19eb7c647147e3501668960b313b08727f170f8",
      "old_mode": 33188,
      "old_path": "recipes-connectivity/nvme-cli/nvme-cli/0001-add-libnvme_cli.patch",
      "new_id": "4f9f4a5d9d65b3a51e77a8620d42cc32091bdf87",
      "new_mode": 33188,
      "new_path": "recipes-connectivity/nvme-cli/nvme-cli/0001-add-libnvme_cli.patch"
    },
    {
      "type": "modify",
      "old_id": "744fbea81b4d3c5ee35914e1a43f128495dde863",
      "old_mode": 33188,
      "old_path": "recipes-connectivity/nvme-cli/nvme-cli_2.1.2.git.bb",
      "new_id": "1b4301438e1bb100a0f0cfc147adf8a43e0020b9",
      "new_mode": 33188,
      "new_path": "recipes-connectivity/nvme-cli/nvme-cli_2.1.2.git.bb"
    }
  ]
}
