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: 0, patch: 25}

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
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'posix'
  [ --help ]                    ; Show usage / help

See 'xnvme --help' for other commands

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

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'
  [ --dev-nsid 0xNUM ]          ; Namespace Identifier for Device Handle
  [ --be STRING ]               ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'posix'
  [ --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: 0, patch: 25}

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'
  [ --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', 'posix'
  [ --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: 0, patch: 25}

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'
  [ --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', 'posix'
  [ --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: 0, patch: 25}

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'
  --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', 'posix'
  [ --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: 0, patch: 25}

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'
  [ --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', 'posix'
  [ --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: 0, patch: 25}

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'
  [ --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', 'posix'
  [ --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: 0, patch: 25}

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'
  --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', 'posix'
  [ --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: 0, patch: 25}

Library Information

Retrieve information about the library which xnvme is linked with:

xnvme library-info
# xNVMe Library Information
ver: {major: 0, minor: 0, patch: 25}
xnvme_3p:
  - 'fio;git-describe:fio-3.27'
  - 'libnvme;git-rev:master/a458217'
  - 'liburing;git-describe:liburing-2.0'
  - 'spdk;git-describe:v21.04;+patches'
  - 'linux;LINUX_VERSION_CODE-UAPI/330286-5.10.46'
xnvme_be_attr_list:
  count: 4
  capacity: 4
  items:
  - name: 'spdk'
    enabled: 1
    schemes: ['pci', 'pcie', 'fab', 'spdk']

  - name: 'linux'
    enabled: 1
    schemes: ['file', 'lnx']

  - name: 'fbsd'
    enabled: 0
    schemes: ['file', 'fbsd']

  - name: 'posix'
    enabled: 1
    schemes: ['file', 'psx']