xnvme

Usage: xnvme <command> [<args>]

Where <command> is one of:

  list             | List devices on the system
  enum             | Enumerate devices on the system
  info             | Retrieve derived information for given device
  idfy             | Execute an User-defined Identify Command
  idfy-ns          | Identify the given Namespace
  idfy-ctrlr       | Identify the given Controller
  idfy-cs          | Identify the Command Sets supported by the controller
  log              | Retrieve a User-defined Log
  log-erri         | Retrieve the error-information log
  log-health       | Retrieve the S.M.A.R.T. / Health information log
  feature-get      | Execute a Get-Features Command
  feature-set      | Execute a Set-Features Command
  format           | Format a NVM namespace
  sanitize         | Sanitize...
  pioc             | Pass a used-defined IO Command through
  padc             | Pass a user-defined ADmin Command through
  library-info     | Produce information about the library

See 'xnvme <command> --help' for the description of [<args>]

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

Enumerate devices

Enumerate devices, that is, controllers and namespaces available to the system:

xnvme enum --help
Usage: xnvme enum [<args>]

Enumerate devices on the system

Where <args> include:

  [ --uri uri ]                 ; System URI e.g. '10.9.8.1:8888'
  [ --flags 0xNUM ]             ; Command flags
  [ --subnqn STRING ]           ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
  [ --hostnqn STRING ]          ; The host NQN to use when connecting to NVMe over Fabrics controllers
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

Device Information

Device information:

xnvme info --help
Usage: xnvme info <uri> [<args>]

Retrieve derived information for given device

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  [ --subnqn STRING ]           ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

Controller Identification

Controller identification:

xnvme idfy-ctrlr --help
Usage: xnvme idfy-ctrlr <uri> [<args>]

Identify the given Controller

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

Namespace Identification

Namespace identification:

xnvme idfy-ns --help
Usage: xnvme idfy-ns <uri> [<args>]

Identify the given Namespace

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  [ --nsid 0xNUM ]              ; Namespace Identifier for Command Construction
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

User-defined Identification

User-defined identification:

xnvme idfy --help
Usage: xnvme idfy <uri> [<args>]

Execute an User-defined Identify Command

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  --cns 0xNUM                   ; Controller or Namespace Struct
  [ --cntid 0xNUM ]             ; Controller Identifier
  [ --nsid 0xNUM ]              ; Namespace Identifier for Command Construction
  [ --setid 0xNUM ]             ; NVM Set Identifier
  [ --uuid 0xNUM ]              ; Universally Unique Identifier
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

logs: Error-Information

Retrieving the error-information log:

xnvme log-erri --help
Usage: xnvme log-erri <uri> [<args>]

Retrieve and print log

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  [ --nsid 0xNUM ]              ; Namespace Identifier for Command Construction
  [ --limit NUM ]               ; Restrict amount to 'NUM'
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

logs: Health-Information

Retrieving the S.M.A.R.T. / health information log:

xnvme log-health --help
Usage: xnvme log-health <uri> [<args>]

Retrieve and print log

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  [ --nsid 0xNUM ]              ; Namespace Identifier for Command Construction
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

logs: User-Defined Log

Retrieve a log as defined by you:

xnvme log --help
Usage: xnvme log <uri> [<args>]

Retrieve and print log

Where <args> include:

  uri                           ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
  --lid 0xNUM                   ; Log-page IDentifier
  [ --lsp 0xNUM ]               ; Log-SPecific parameters
  [ --lpo-nbytes NUM ]          ; Log-Page Offset (in bytes)
  [ --nsid 0xNUM ]              ; Namespace Identifier for Command Construction
  [ --rae 0xNUM ]               ; Reset Async. Events
  [ --data-nbytes NUM ]         ; Data size in bytes
  [ --data-output FILE ]        ; Path to data output-file
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
  [ --admin STRING ]            ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 5, patch: 0}

Library Information

Retrieve information about the library which xnvme is linked with:

xnvme library-info
# xNVMe Library Information
ver: {major: 0, minor: 5, patch: 0}
xnvme_libconf:
  - '3p: fio;git-describe:fio-3.32'
  - '3p: libvfn;git-describe:v1.0.0-rc0'
  - '3p: spdk;git-describe:v22.05;+patches'
  - 'conf: XNVME_BE_RAMDISK_ENABLED'
  - 'conf: XNVME_BE_LINUX_ENABLED'
  - 'conf: XNVME_BE_LINUX_BLOCK_ENABLED'
  - 'conf: XNVME_BE_LINUX_BLOCK_ZONED_ENABLED'
  - 'conf: XNVME_BE_LINUX_LIBAIO_ENABLED'
  - 'conf: XNVME_BE_LINUX_LIBURING_ENABLED'
  - 'conf: XNVME_BE_LINUX_VFIO_ENABLED'
  - 'conf: XNVME_BE_POSIX_ENABLED'
  - 'conf: XNVME_BE_SPDK_ENABLED'
  - 'conf: XNVME_BE_SPDK_TRANSPORT_PCIE_ENABLED'
  - 'conf: XNVME_BE_SPDK_TRANSPORT_TCP_ENABLED'
  - 'conf: XNVME_BE_SPDK_TRANSPORT_RDMA_ENABLED'
  - 'conf: XNVME_BE_SPDK_TRANSPORT_FC_ENABLED'
  - 'conf: XNVME_BE_ASYNC_ENABLED'
  - 'conf: XNVME_BE_ASYNC_EMU_ENABLED'
  - 'conf: XNVME_BE_ASYNC_THRPOOL_ENABLED'
  - '3p: linux;LINUX_VERSION_CODE-UAPI/332544-5.19.0'
  - '3p: NVME_IOCTL_IO64_CMD'
  - '3p: NVME_IOCTL_IO64_CMD_VEC'
  - '3p: NVME_IOCTL_ADMIN64_CMD'
xnvme_be_attr_list:
  count: 8
  capacity: 8
  items:
  - name: 'spdk'
    enabled: 1

  - name: 'linux'
    enabled: 1

  - name: 'fbsd'
    enabled: 0

  - name: 'posix'
    enabled: 1

  - name: 'macos'
    enabled: 0

  - name: 'windows'
    enabled: 0

  - name: 'ramdisk'
    enabled: 1

  - name: 'vfio'
    enabled: 1